From ca34ff4e49dda620d60a4300d4a775ce4319482c Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Wed, 16 Mar 2022 16:06:05 -0700 Subject: [PATCH 001/429] Add the dbgshim API for .NET Core This is set of APIs that have been around for a while and never documented until some new ones for .NET 6.0 were added. --- ...clrenumeration-function-for-silverlight.md | 65 ++++++++++++++ .../debugging/closeclrenumeration-function.md | 18 ++-- .../debugging/closeresumehandle-function.md | 52 +++++++++++ ...edebugginginterfacefromversion-function.md | 63 +++++++++++++ ...debugginginterfacefromversion2-function.md | 71 +++++++++++++++ ...debugginginterfacefromversion3-function.md | 75 ++++++++++++++++ ...ebugginginterfacefromversionex-function.md | 67 ++++++++++++++ .../createprocessforlaunch-function.md | 76 ++++++++++++++++ ...ringfrommodule-function-for-silverlight.md | 84 +++++++++++++++++ .../createversionstringfrommodule-function.md | 26 +++--- .../debugging/debugging-enumerations.md | 3 + .../debugging/dotnet-debugging.md | 67 ++++++++++++++ .../enumerateclrs-function-for-silverlight.md | 80 +++++++++++++++++ .../debugging/enumerateclrs-function.md | 20 ++--- ...ificationevent-function-for-silverlight.md | 66 ++++++++++++++ .../getstartupnotificationevent-function.md | 21 ++--- ...nglibraryprovider-providelibrary-method.md | 2 +- ...iclrdebugginglibraryprovider2-interface.md | 42 +++++++++ ...libraryprovider2-providelibrary2-method.md | 82 +++++++++++++++++ ...iclrdebugginglibraryprovider3-interface.md | 43 +++++++++ ...raryprovider3-provideunixlibrary-method.md | 90 +++++++++++++++++++ ...yprovider3-providewindowslibrary-method.md | 90 +++++++++++++++++++ .../libraryproviderindextype-enumeration.md | 59 ++++++++++++ .../pstartup_callback-function-pointer.md | 65 ++++++++++++++ .../registerforruntimestartup-function.md | 65 ++++++++++++++ .../registerforruntimestartup3-function.md | 75 ++++++++++++++++ .../registerforruntimestartupex-function.md | 69 ++++++++++++++ .../debugging/resumeprocess-function.md | 52 +++++++++++ .../debugging/silverlight-debugging.md | 10 +-- .../framework/unmanaged-api/debugging/toc.yml | 54 ++++++++++- .../unregisterforruntimestartup-function.md | 50 +++++++++++ includes/net-core-60-md.md | 1 + 32 files changed, 1646 insertions(+), 57 deletions(-) create mode 100644 docs/framework/unmanaged-api/debugging/closeclrenumeration-function-for-silverlight.md create mode 100644 docs/framework/unmanaged-api/debugging/closeresumehandle-function.md create mode 100644 docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion-function.md create mode 100644 docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md create mode 100644 docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md create mode 100644 docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversionex-function.md create mode 100644 docs/framework/unmanaged-api/debugging/createprocessforlaunch-function.md create mode 100644 docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function-for-silverlight.md create mode 100644 docs/framework/unmanaged-api/debugging/dotnet-debugging.md create mode 100644 docs/framework/unmanaged-api/debugging/enumerateclrs-function-for-silverlight.md create mode 100644 docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function-for-silverlight.md create mode 100644 docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md create mode 100644 docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md create mode 100644 docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md create mode 100644 docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md create mode 100644 docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-providewindowslibrary-method.md create mode 100644 docs/framework/unmanaged-api/debugging/libraryproviderindextype-enumeration.md create mode 100644 docs/framework/unmanaged-api/debugging/pstartup_callback-function-pointer.md create mode 100644 docs/framework/unmanaged-api/debugging/registerforruntimestartup-function.md create mode 100644 docs/framework/unmanaged-api/debugging/registerforruntimestartup3-function.md create mode 100644 docs/framework/unmanaged-api/debugging/registerforruntimestartupex-function.md create mode 100644 docs/framework/unmanaged-api/debugging/resumeprocess-function.md create mode 100644 docs/framework/unmanaged-api/debugging/unregisterforruntimestartup-function.md create mode 100644 includes/net-core-60-md.md diff --git a/docs/framework/unmanaged-api/debugging/closeclrenumeration-function-for-silverlight.md b/docs/framework/unmanaged-api/debugging/closeclrenumeration-function-for-silverlight.md new file mode 100644 index 0000000000000..f21f5cdda34d3 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/closeclrenumeration-function-for-silverlight.md @@ -0,0 +1,65 @@ +--- +description: "Learn more about: CloseCLREnumeration Function for Silverlight" +title: "CloseCLREnumeration Function for Silverlight" +ms.date: "03/30/2017" +api_name: + - "CloseCLREnumeration" +api_location: + - "dbgshim.dll" +api_type: + - "COM" +f1_keywords: + - "CloseCLREnumeration" +helpviewer_keywords: + - "debugging API [Silverlight]" + - "Silverlight, debugging" + - "CloseCLR Enumeration function" +ms.assetid: 5e3c3958-80bb-43b1-a96b-dd3e6dbd9cd7 +topic_type: + - "apiref" +--- +# CloseCLREnumeration Function for Silverlight + +Closes any valid common language runtime (CLR) continue-startup events located in an array of handles returned by the [EnumerateCLRs function](enumerateclrs-function.md), and frees the memory for the handle and string path arrays. + +## Syntax + +```cpp +HRESULT CloseCLREnumeration ( + [in] DWORD pHandleArray, + [in] LPWSTR** pStringArray, + [in] DWORD* dwArrayLength +); +``` + +## Parameters + + `pHandleArray` + [in] Pointer to the array of event handles returned from the [EnumerateCLRs function](enumerateclrs-function.md). + + `pStringArray` + [in] Pointer to the array of CLR string paths returned from the [EnumerateCLRs function](enumerateclrs-function.md). + + `dwArrayLength` + [in] DWORD that contains the size (length) of either `pHandleArray` or `pStringArray` (they are the same). + +## Return Value + + S_OK + Handles opened by the [EnumerateCLRs function](enumerateclrs-function.md) are closed, and memory allocated for the handle and string arrays is freed. + + E_INVALIDARG + The length of `pHandleArray` does not match the length that is passed in `dwArrayLength`. + + E_FAIL (or other E_ return codes) + The function is unable to free the memory for `pHandleArray` and `pStringArray`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Framework Versions:** 3.5 SP1 diff --git a/docs/framework/unmanaged-api/debugging/closeclrenumeration-function.md b/docs/framework/unmanaged-api/debugging/closeclrenumeration-function.md index ba0ed12dbbea5..c52f3756fd3d6 100644 --- a/docs/framework/unmanaged-api/debugging/closeclrenumeration-function.md +++ b/docs/framework/unmanaged-api/debugging/closeclrenumeration-function.md @@ -1,18 +1,16 @@ --- description: "Learn more about: CloseCLREnumeration Function" title: "CloseCLREnumeration Function" -ms.date: "03/30/2017" +ms.date: "03/21/2022" api_name: - "CloseCLREnumeration" api_location: - "dbgshim.dll" -api_type: - - "COM" f1_keywords: - "CloseCLREnumeration" helpviewer_keywords: - - "debugging API [Silverlight]" - - "Silverlight, debugging" + - "debugging API [.NET Core]" + - ".NET Core, debugging" - "CloseCLR Enumeration function" ms.assetid: 5e3c3958-80bb-43b1-a96b-dd3e6dbd9cd7 topic_type: @@ -34,13 +32,13 @@ HRESULT CloseCLREnumeration ( ## Parameters - `pHandleArray` + `pHandleArray`\ [in] Pointer to the array of event handles returned from the [EnumerateCLRs function](enumerateclrs-function.md). - `pStringArray` + `pStringArray`\ [in] Pointer to the array of CLR string paths returned from the [EnumerateCLRs function](enumerateclrs-function.md). - `dwArrayLength` + `dwArrayLength`\ [in] DWORD that contains the size (length) of either `pHandleArray` or `pStringArray` (they are the same). ## Return Value @@ -56,10 +54,10 @@ HRESULT CloseCLREnumeration ( ## Requirements - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). **Header:** dbgshim.h **Library:** dbgshim.dll - **.NET Framework Versions:** 3.5 SP1 + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/closeresumehandle-function.md b/docs/framework/unmanaged-api/debugging/closeresumehandle-function.md new file mode 100644 index 0000000000000..bc048ffb0a474 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/closeresumehandle-function.md @@ -0,0 +1,52 @@ +--- +description: "Learn more about: CloseResumeHandle Function" +title: "CloseResumeHandle Function" +ms.date: "03/21/2022" +api_name: + - "CloseResumeHandle" +api_location: + - "dbgshim.dll" +f1_keywords: + - "CloseResumeHandle" +helpviewer_keywords: + - "debugging API [.NET Core]" + - ".NET Core, debugging" + - "CloseResumeHandle function" +ms.assetid: 5e3c3958-80bb-43b1-a96b-dd3e6dbd9cd7 +topic_type: + - "apiref" +--- +# CloseResumeHandle Function + +Closes the handle returned by the [CreateProcessForLaunch function](createprocessforlaunch-function.md). + +## Syntax + +```cpp +HRESULT CloseResumeHandle ( + [in] HANDLE hResumeHandle +); +``` + +## Parameters + + `hResumeHandle`\ + [in] The resume handle returned by [CreateProcessForLaunch function](createprocessforlaunch-function.md). + +## Return Value + + S_OK + The handle was successfully closed. + + E_FAIL (or other E_ return codes) + The handle was invalid. + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion-function.md b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion-function.md new file mode 100644 index 0000000000000..0705455665617 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion-function.md @@ -0,0 +1,63 @@ +--- +description: "Learn more about: CreateDebuggingInterfaceFromVersion Function for .NET Core" +title: "CreateDebuggingInterfaceFromVersion Function for .NET Core" +ms.date: "03/21/2022" +f1_keywords: + - "CreateDebuggingInterfaceFromVersion" +helpviewer_keywords: + - "CreateDebuggingInterfaceFromVersion function" + - "debugging API [.NET Core]" + - ".NET Core, debugging" +ms.assetid: 35c7a18f-133a-4584-bd25-bb338568b0c6 +--- +# CreateDebuggingInterfaceFromVersion Function for .NET Core + +Accepts a common language runtime (CLR) version string that is returned from the [CreateVersionStringFromModule function](createversionstringfrommodule-function.md), and returns a corresponding debugger interface (typically, [ICorDebug](icordebug-interface.md)). + +## Syntax + +```cpp +HRESULT CreateDebuggingInterfaceFromVersion ( + [in] LPCWSTR szDebuggeeVersion, + [out] IUnknown** ppCordb, +); +``` + +## Parameters + + `szDebuggeeVersion`\ + [in] Version string of the CLR in the target debuggee, which is returned by the [CreateVersionStringFromModule function](createversionstringfrommodule-function.md). + + `ppCordb`\ + [out] Pointer to a pointer to a COM object (`IUnknown`). This object will be cast to an [ICorDebug](icordebug-interface.md) object before it is returned. + +## Return Value + + `S_OK`\ + `ppCordb` references a valid object that implements the [ICorDebug interface](icordebug-interface.md) interface. + + `E_INVALIDARG`\ + Either `szDebuggeeVersion` or `ppCordb` is null. + + `CORDBG_E_DEBUG_COMPONENT_MISSING`\ + A component that is necessary for CLR debugging cannot be located. Either _mscordbi.dll_ or _mscordaccore.dll_ was not found in the same directory as the target CoreCLR.dll. + + `CORDBG_E_INCOMPATIBLE_PROTOCOL`\ + Either mscordbi.dll or mscordaccore.dll is not the same version as the target CoreCLR.dll. + + `E_FAIL` (or other `E_` return codes)\ + Unable to return an [ICorDebug interface](icordebug-interface.md). + +## Remarks + + The interface that is returned provides the facilities for attaching to a CLR in a target process and debugging the managed code that the CLR is running. + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md new file mode 100644 index 0000000000000..f07cfb843121e --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md @@ -0,0 +1,71 @@ +--- +description: "Learn more about: CreateDebuggingInterfaceFromVersion2 Function" +title: "CreateDebuggingInterfaceFromVersion2 Function" +ms.date: "03/21/2022" +f1_keywords: + - "CreateDebuggingInterfaceFromVersion2" +helpviewer_keywords: + - "CreateDebuggingInterfaceFromVersion2 function" + - "debugging API [.NET Core]" + - ".NET Core, debugging" +ms.assetid: 35c7a18f-133a-4584-bd25-bb338568b0c6 +--- +# CreateDebuggingInterfaceFromVersion2 Function for .NET Core + +Accepts a common language runtime (CLR) version string that is returned from the [CreateVersionStringFromModule](createversionstringfrommodule-function.md) function, and returns a corresponding debugger interface (typically, [ICorDebug](icordebug-interface.md)). + +## Syntax + +```cpp +HRESULT CreateDebuggingInterfaceFromVersion2 ( + [in] int iDebuggerVersion, + [in] LPCWSTR szDebuggeeVersion, + [in] LPCWSTR szApplicationGroupId, + [out] IUnknown** ppCordb, +); +``` + +## Parameters + + `iDebuggerVersion`\ + [in] The version of interface the debugger expects. + + `szDebuggeeVersion`\ + [in] Version string of the CLR in the target debuggee, which is returned by the [CreateVersionStringFromModule](createversionstringfrommodule-function.md) function. + + `szApplicationGroupId`\ + [in] A string representing the application group ID of a sandboxed process running in Mac. Pass NULL if the process is not running in a sandbox and other platforms. + + `ppCordb`\ + [out] Pointer to a pointer to a COM object (`IUnknown`). This object will be cast to an [ICorDebug](icordebug-interface.md) object before it is returned. + +## Return Value + + `S_OK`\ + `ppCordb` references a valid object that implements the [ICorDebug interface](icordebug-interface.md) interface. + + `E_INVALIDARG`\ + Either `szDebuggeeVersion` or `ppCordb` is null. + + `CORDBG_E_DEBUG_COMPONENT_MISSING`\ + A component that is necessary for CLR debugging cannot be located. Either _mscordbi.dll_ or _mscordaccore.dll_ was not found in the same directory as the target CoreCLR.dll. + + `CORDBG_E_INCOMPATIBLE_PROTOCOL`\ + Either mscordbi.dll or mscordaccore.dll is not the same version as the target CoreCLR.dll. + + `E_FAIL` (or other `E_` return codes)\ + Unable to return an [ICorDebug interface](icordebug-interface.md). + +## Remarks + + The interface that is returned provides the facilities for attaching to a CLR in a target process and debugging the managed code that the CLR is running. + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_31](../../../../includes/net-core-31-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md new file mode 100644 index 0000000000000..fdb1e921545ae --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md @@ -0,0 +1,75 @@ +--- +description: "Learn more about: CreateDebuggingInterfaceFromVersion3 Function" +title: "CreateDebuggingInterfaceFromVersion3 Function" +ms.date: "03/21/2022" +f1_keywords: + - "CreateDebuggingInterfaceFromVersion3" +helpviewer_keywords: + - "CreateDebuggingInterfaceFromVersion3 function" + - "debugging API [.NET Core]" + - ".NET Core, debugging" +ms.assetid: 35c7a18f-133a-4584-bd25-bb338568b0c6 +--- +# CreateDebuggingInterfaceFromVersion3 Function for .NET Core + +Accepts a common language runtime (CLR) version string that is returned from the [CreateVersionStringFromModule](createversionstringfrommodule-function.md) function, and returns a corresponding debugger interface (typically, [ICorDebug](icordebug-interface.md)). + +## Syntax + +```cpp +HRESULT CreateDebuggingInterfaceFromVersion3 ( + [in] int iDebuggerVersion, + [in] LPCWSTR szDebuggeeVersion, + [in] LPCWSTR szApplicationGroupId, + [in] ICLRDebuggingLibraryProvider3* pLibraryProvider, + [out] IUnknown** ppCordb, +); +``` + +## Parameters + + `iDebuggerVersion`\ + [in] The version of interface the debugger expects. + + `szDebuggeeVersion`\ + [in] Version string of the CLR in the target debuggee, which is returned by the [CreateVersionStringFromModule](createversionstringfrommodule-function.md) function. + + `szApplicationGroupId`\ + [in] A string representing the application group ID of a sandboxed process running in Mac. Pass NULL if the process is not running in a sandbox and other platforms. + + `pLibraryProvider`\ + [in] A callback interface instance for locating DBI and DAC. See [ICLRDebuggingLibraryProvider3](iclrdebugginglibraryprovider3-interface.md) interface. + + `ppCordb`\ + [out] Pointer to a pointer to a COM object (`IUnknown`). This object will be cast to an [ICorDebug](icordebug-interface.md) object before it is returned. + +## Return Value + + `S_OK`\ + `ppCordb` references a valid object that implements the [ICorDebug interface](icordebug-interface.md) interface. + + `E_INVALIDARG`\ + Either `szDebuggeeVersion` or `ppCordb` is null. + + `CORDBG_E_DEBUG_COMPONENT_MISSING`\ + A component that is necessary for CLR debugging cannot be located. Either _mscordbi.dll_ or _mscordaccore.dll_ was not found in the same directory as the target CoreCLR.dll. + + `CORDBG_E_INCOMPATIBLE_PROTOCOL`\ + Either mscordbi.dll or mscordaccore.dll is not the same version as the target CoreCLR.dll. + + `E_FAIL` (or other `E_` return codes)\ + Unable to return an [ICorDebug interface](icordebug-interface.md). + +## Remarks + + The interface that is returned provides the facilities for attaching to a CLR in a target process and debugging the managed code that the CLR is running. + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_60](../../../../includes/net-core-60-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversionex-function.md b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversionex-function.md new file mode 100644 index 0000000000000..e338f3237bcc9 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversionex-function.md @@ -0,0 +1,67 @@ +--- +description: "Learn more about: CreateDebuggingInterfaceFromVersionEx Function" +title: "CreateDebuggingInterfaceFromVersionEx Function" +ms.date: "03/21/2022" +f1_keywords: + - "CreateDebuggingInterfaceFromVersionEx" +helpviewer_keywords: + - "CreateDebuggingInterfaceFromVersionEx function" + - "debugging API [.NET Core]" + - ".NET Core, debugging" +ms.assetid: 35c7a18f-133a-4584-bd25-bb338568b0c6 +--- +# CreateDebuggingInterfaceFromVersionEx Function for .NET Core + +Accepts a common language runtime (CLR) version string that is returned from the [CreateVersionStringFromModule](createversionstringfrommodule-function.md) function, and returns a corresponding debugger interface (typically, [ICorDebug](icordebug-interface.md)). + +## Syntax + +```cpp +HRESULT CreateDebuggingInterfaceFromVersionEx ( + [in] int iDebuggerVersion, + [in] LPCWSTR szDebuggeeVersion, + [out] IUnknown** ppCordb, +); +``` + +## Parameters + + `iDebuggerVersion`\ + [in] The version of interface the debugger expects. + + `szDebuggeeVersion`\ + [in] Version string of the CLR in the target debuggee, which is returned by the [CreateVersionStringFromModule](createversionstringfrommodule-function.md) function. + + `ppCordb`\ + [out] Pointer to a pointer to a COM object (`IUnknown`). This object will be cast to an [ICorDebug](icordebug-interface.md) object before it is returned. + +## Return Value + + `S_OK`\ + `ppCordb` references a valid object that implements the [ICorDebug interface](icordebug-interface.md) interface. + + `E_INVALIDARG`\ + Either `szDebuggeeVersion` or `ppCordb` is null. + + `CORDBG_E_DEBUG_COMPONENT_MISSING`\ + A component that is necessary for CLR debugging cannot be located. Either _mscordbi.dll_ or _mscordaccore.dll_ was not found in the same directory as the target CoreCLR.dll. + + `CORDBG_E_INCOMPATIBLE_PROTOCOL`\ + Either mscordbi.dll or mscordaccore.dll is not the same version as the target CoreCLR.dll. + + `E_FAIL` (or other `E_` return codes)\ + Unable to return an [ICorDebug interface](icordebug-interface.md). + +## Remarks + + The interface that is returned provides the facilities for attaching to a CLR in a target process and debugging the managed code that the CLR is running. + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/createprocessforlaunch-function.md b/docs/framework/unmanaged-api/debugging/createprocessforlaunch-function.md new file mode 100644 index 0000000000000..4b88849f3b1ed --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/createprocessforlaunch-function.md @@ -0,0 +1,76 @@ +--- +description: "Learn more about: CreateProcessForLaunch Function" +title: "CreateProcessForLaunch Function" +ms.date: "03/21/2022" +api_name: + - "CreateProcessForLaunch" +api_location: + - "dbgshim.dll" +f1_keywords: + - "CreateProcessForLaunch" +helpviewer_keywords: + - "debugging API [.NET Core]" + - ".NET Core, debugging" + - "CreateProcessForLaunch function" +ms.assetid: 3d2fe9bd-75ef-4364-84a6-da1e1994ac1a +topic_type: + - "apiref" +--- +# CreateProcessForLaunch Function + +A subset of the Windows CreateProcess that can be supported cross-platform. + +## Syntax + +```cpp +HRESULT CreateProcessForLaunch ( + [in] LPWSTR lpCommandLine, + [in] BOOL bSuspendProcess, + [in] LPVOID lpEnvironment, + [in] LPCWSTR lpCurrentDirectory, + [out] PDWORD pProcessId, + [out] HANDLE *pResumeHandle +); +``` + +## Parameters + + `lpCommandLine`\ + [in] The command line to be executed. + + `bSuspendProcess`\ + [in] If this parameter is TRUE, suspend the process for launch. + + `lpEnvironment`\ + [in, optional] A pointer to the environment block for the new process. If this parameter is NULL, the new process uses the environment of the calling process. + + `lpCurrentDirectory`\ + [in, optional] The full path to the current directory for the process. If this parameter is NULL, the new process will have the same current drive and directory as the calling process. + + `pProcessId`\ + [out] The id to identify the process created. + + `pResumeHandle`\ + [out] The handle to use with ResumeProcess to resume the process if bSuspendProcess is TRUE. + +## Return Value + + S_OK + The process was successfully created. + + E_FAIL (or other E_ return codes) + The launch failed. + +## Remarks + +See the Win32 CreateProcess API for more details. + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function-for-silverlight.md b/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function-for-silverlight.md new file mode 100644 index 0000000000000..94256e6e88684 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function-for-silverlight.md @@ -0,0 +1,84 @@ +--- +description: "Learn more about: CreateVersionStringFromModule Function for Silverlight" +title: "CreateVersionStringFromModule Function for Silverlight" +ms.date: "03/30/2017" +api_name: + - "CreateVersionStringFromModule" +api_location: + - "dbgshim.dll" +f1_keywords: + - "CreateVersionStringFromModule" +helpviewer_keywords: + - "debugging API [Silverlight]" + - "Silverlight, debugging" + - "CreateVersionStringFromModule function" +ms.assetid: 3d2fe9bd-75ef-4364-84a6-da1e1994ac1a +topic_type: + - "apiref" +--- +# CreateVersionStringFromModule Function for Silverlight + +Creates a version string from a common language runtime (CLR) path in a target process. + +## Syntax + +```cpp +HRESULT CreateVersionStringFromModule ( + [in] DWORD pidDebuggee, + [in] LPCWSTR szModuleName, + [out, size_is(cchBuffer), + length_is(*pdwLength)] LPWSTR Buffer, + [in] DWORD cchBuffer, + [out] DWORD* pdwLength +); +``` + +## Parameters + + `pidDebuggee` + [in] Identifier of the process in which the target CLR is loaded. + + `szModuleName` + [in] Full or relative path to the target CLR that is loaded in the process. + + `pBuffer` + [out] Return buffer for storing the version string for the target CLR. + + `cchBuffer` + [in] Size of `pBuffer`. + + `pdwLength` + [out] Length of the version string returned by `pBuffer`. + +## Return Value + + S_OK + The version string for the target CLR was successfully returned in `pBuffer`. + + E_INVALIDARG + `szModuleName` is null, or either `pBuffer` or `cchBuffer` is null. `pBuffer` and `cchBuffer` must both be null or non-null. + + HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) + `pdwLength` is greater than `cchBuffer`. This may be an expected result if you have passed null for both `pBuffer` and `cchBuffer`, and queried the necessary buffer size by using `pdwLength`. + + HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND) + `szModuleName` does not contain a path to a valid CLR in the target process. + + E_FAIL (or other E_ return codes) + `pidDebuggee` does not refer to a valid process, or other failure. + +## Remarks + + This function accepts a CLR process that is identified by `pidDebuggee` and a string path that is specified by `szModuleName`. The version string is returned in the buffer that `pBuffer` points to. This string is opaque to the function user; that is, there is no intrinsic meaning in the version string itself. It is used solely in the context of this function and the [CreateDebuggingInterfaceFromVersion function](createdebugginginterfacefromversion-function-for-silverlight.md). + + This function should be called twice. When you call it the first time, pass null for both `pBuffer` and `cchBuffer`. When you do this, the size of the buffer necessary for `pBuffer` will be returned in `pdwLength`. You can then call the function a second time, and pass the buffer in `pBuffer` and its size in `cchBuffer`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Framework Versions:** 3.5 SP1 diff --git a/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function.md b/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function.md index 60d2150a7f620..e21d587fdd3d0 100644 --- a/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function.md +++ b/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function.md @@ -1,18 +1,16 @@ --- description: "Learn more about: CreateVersionStringFromModule Function" title: "CreateVersionStringFromModule Function" -ms.date: "03/30/2017" +ms.date: "03/21/2022" api_name: - "CreateVersionStringFromModule" api_location: - "dbgshim.dll" -api_type: - - "COM" f1_keywords: - "CreateVersionStringFromModule" helpviewer_keywords: - - "debugging API [Silverlight]" - - "Silverlight, debugging" + - "debugging API [.NET Core]" + - ".NET Core, debugging" - "CreateVersionStringFromModule function" ms.assetid: 3d2fe9bd-75ef-4364-84a6-da1e1994ac1a topic_type: @@ -29,7 +27,7 @@ HRESULT CreateVersionStringFromModule ( [in] DWORD pidDebuggee, [in] LPCWSTR szModuleName, [out, size_is(cchBuffer), - length_is(*pdwLength)] LPWSTR Buffer, + length_is(*pdwLength)] LPWSTR Buffer, [in] DWORD cchBuffer, [out] DWORD* pdwLength ); @@ -37,19 +35,19 @@ HRESULT CreateVersionStringFromModule ( ## Parameters - `pidDebuggee` + `pidDebuggee`\ [in] Identifier of the process in which the target CLR is loaded. - `szModuleName` + `szModuleName`\ [in] Full or relative path to the target CLR that is loaded in the process. - `pBuffer` + `pBuffer`\ [out] Return buffer for storing the version string for the target CLR. - `cchBuffer` + `cchBuffer`\ [in] Size of `pBuffer`. - `pdwLength` + `pdwLength`\ [out] Length of the version string returned by `pBuffer`. ## Return Value @@ -71,16 +69,16 @@ HRESULT CreateVersionStringFromModule ( ## Remarks - This function accepts a CLR process that is identified by `pidDebuggee` and a string path that is specified by `szModuleName`. The version string is returned in the buffer that `pBuffer` points to. This string is opaque to the function user; that is, there is no intrinsic meaning in the version string itself. It is used solely in the context of this function and the [CreateDebuggingInterfaceFromVersion function](createdebugginginterfacefromversion-function-for-silverlight.md). + This function accepts a CLR process that is identified by `pidDebuggee` and a string path that is specified by `szModuleName`. The version string is returned in the buffer that `pBuffer` points to. This string is opaque to the function user; that is, there is no intrinsic meaning in the version string itself. It is used solely in the context of this function and the [CreateDebuggingInterfaceFromVersion function](createdebugginginterfacefromversion-function.md). This function should be called twice. When you call it the first time, pass null for both `pBuffer` and `cchBuffer`. When you do this, the size of the buffer necessary for `pBuffer` will be returned in `pdwLength`. You can then call the function a second time, and pass the buffer in `pBuffer` and its size in `cchBuffer`. ## Requirements - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). **Header:** dbgshim.h **Library:** dbgshim.dll - **.NET Framework Versions:** 3.5 SP1 + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/debugging-enumerations.md b/docs/framework/unmanaged-api/debugging/debugging-enumerations.md index 8d4622c68d8a0..28c9442cc01e9 100644 --- a/docs/framework/unmanaged-api/debugging/debugging-enumerations.md +++ b/docs/framework/unmanaged-api/debugging/debugging-enumerations.md @@ -127,6 +127,9 @@ This section describes the unmanaged enumerations that the debugging API uses. [LogSwitchCallReason Enumeration](logswitchcallreason-enumeration.md) Indicates the operation that was performed on a debugging/tracing switch. + + [LIBRARY_PROVIDER_INDEX_TYPE Enumeration](libraryproviderindextype-enumeration.md) + The type of index information passed to a library provider. [VariableLocationType Enumeration](variablelocationtype-enumeration.md) Indicates the native location type of a variable. diff --git a/docs/framework/unmanaged-api/debugging/dotnet-debugging.md b/docs/framework/unmanaged-api/debugging/dotnet-debugging.md new file mode 100644 index 0000000000000..64a9c3ebb9144 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/dotnet-debugging.md @@ -0,0 +1,67 @@ +--- +description: "Learn more about: .NET Core Debugging" +title: ".NET Core Debugging" +ms.date: "03/21/2022" +helpviewer_keywords: + - "debugging API [.NET Core]" + - ".NET Core, debugging" +ms.assetid: 5e903e04-17d0-4014-ac9a-a43330ec8b1c +--- +# .NET Core Debugging + +The topics in this section describe the environment and interfaces that the common language runtime (CLR) provides to support debugging .NET applications that are running on the Windows, Linux or MacOS operating systems. + +## In This Section + + [CreateProcessForLaunch Function](createprocessforlaunch-function.md) + A subset of the Windows CreateProcess that can be supported cross-platform. + + [ResumeProcess Function](resumeprocess-function.md) + Resumes the process using the resume handle returned by the [CreateProcessForLaunch function](createprocessforlaunch-function.md). + + [CloseResumeHandle Function](closeresumehandle-function.md) + Closes the handle returned by the [CreateProcessForLaunch function](createprocessforlaunch-function.md). + + [RegisterForRuntimeStartup Function](registerforruntimestartup-function.md) + Executes the callback when the .NET Core runtime starts in the specified process. + + [RegisterForRuntimeStartupEx Function](registerforruntimestartupex-function.md) + Executes the callback when the .NET Core runtime starts in the specified process. + + [RegisterForRuntimeStartup3 Function](registerforruntimestartup3-function.md) + Executes the callback when the .NET Core runtime starts in the specified process. + + [UnregisterForRuntimeStartup Function](unregisterforruntimestartup-function.md) + Stops/cancels runtime startup notification. + + [EnumerateCLRs Function](enumerateclrs-function.md) + Provides a mechanism for enumerating the CLRs in a process. + + [CloseCLREnumeration Function](closeclrenumeration-function.md) + Closes any valid CLR continue-startup events located in an array of handles returned by the [EnumerateCLRs Function](enumerateclrs-function.md), and frees the memory for the handle and string path arrays. + + [CreateVersionStringFromModule Function](createversionstringfrommodule-function.md) + Creates a version string from a CLR path in a target process. + + [CreateDebuggingInterfaceFromVersion Function](createdebugginginterfacefromversion-function.md) + Accepts a CLR version string returned from [CreateVersionStringFromModule Function](createversionstringfrommodule-function.md)function, and returns a corresponding debugger interface. + + [CreateDebuggingInterfaceFromVersionEx Function](createdebugginginterfacefromversionex-function.md) + Accepts a CLR version string returned from [CreateVersionStringFromModule Function](createversionstringfrommodule-function.md)function, and returns a corresponding debugger interface. + + [CreateDebuggingInterfaceFromVersion2 Function](createdebugginginterfacefromversion2-function.md) + Accepts a CLR version string returned from [CreateVersionStringFromModule Function](createversionstringfrommodule-function.md)function, and returns a corresponding debugger interface. + + [CreateDebuggingInterfaceFromVersion3 Function](createdebugginginterfacefromversion3-function.md) + Accepts a CLR version string returned from [CreateVersionStringFromModule Function](createversionstringfrommodule-function.md)function, and returns a corresponding debugger interface. + + [GetStartupNotificationEvent Function](getstartupnotificationevent-function.md) + Creates or opens an event handle that will be signaled upon by any common language runtime (CLR) that is loading in the specified target process. + +## See also + +- [Debugging Coclasses](debugging-coclasses.md) +- [Debugging Interfaces](debugging-interfaces.md) +- [Debugging Global Static Functions](debugging-global-static-functions.md) +- [Debugging Enumerations](debugging-enumerations.md) +- [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/enumerateclrs-function-for-silverlight.md b/docs/framework/unmanaged-api/debugging/enumerateclrs-function-for-silverlight.md new file mode 100644 index 0000000000000..ed1b3a5c84da7 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/enumerateclrs-function-for-silverlight.md @@ -0,0 +1,80 @@ +--- +description: "Learn more about: EnumerateCLRs Function for Silverlight" +title: "EnumerateCLRs Function for Silverlight" +ms.date: "03/30/2017" +api_name: + - "EnumerateCLRs" +api_location: + - "dbgshim.dll" +f1_keywords: + - "EnumerateCLRs" +helpviewer_keywords: + - "debugging API [Silverlight]" + - "Silverlight, debugging" + - "EnumerateCLRs function" +ms.assetid: f8d50cb3-ec4f-4529-8fe3-bd61fd28e13c +topic_type: + - "apiref" +--- +# EnumerateCLRs Function for Silverlight + +Provides a mechanism for enumerating the CLRs in a process. + +## Syntax + +```cpp +HRESULT EnumerateCLRs ( + [in] DWORD debuggeePID, + [out] HANDLE** ppHandleArrayOut, + [out] LPWSTR** ppStringArrayOut, + [out] DWORD* pdwArrayLengthOut +); +``` + +## Parameters + + `debuggeePID` + [in] Process identifier of the process from which loaded CLRs will be enumerated. + + `ppHandleArrayOut` + [out] Pointer to an array containing event handles that are used to continue a CLR startup. Each handle in the array is not guaranteed to be valid. If valid, the handle is to be used as the continue-startup event for the corresponding runtime located in the same index of `ppStringArrayOut`. + + `ppStringArrayOut` + [out] Pointer to an array of strings that specify full paths to CLRs loaded in the process. + + `pdwArrayLengthOut` + [out] Pointer to a DWORD that contains the length of the equally sized `ppHandleArrayOut` and `pdwArrayLengthOut`. + +## Return Value + + S_OK + The number of CLRs in the process was successfully determined, and the corresponding handle and path arrays were properly filled. + + E_INVALIDARG + Either `ppHandleArrayOut` or `ppStringArrayOut` is null, or `pdwArrayLengthOut` is null. + + E_OUTOFMEMORY + The function is unable to allocate enough memory for the handle and path arrays. + + E_FAIL (or other E_ return codes) + Unable to enumerate loaded CLRs. + +## Remarks + + For a target process that is identified by `debuggeePID`, the function returns an array of paths, `ppStringArrayOut`, to CLRs loaded in the process; an array of event handles, `ppHandleArrayOut`, which may contain a continue-startup event for the CLR at the same index; and the size of the arrays, `pdwArrayLengthOut`, which specifies the number of CLRs that are loaded. + + On the Windows operating system, `debuggeePID` maps to an OS process identifier. + + The memory for `ppHandleArrayOut` and `ppStringArrayOut` are allocated by this function. To free the memory allocated, you must call [CloseCLREnumeration Function](closeclrenumeration-function.md). + + This function can be called with both array parameters set to null in order to return the count of CLRs in the target process. From this count, a caller can infer the size of the buffer that will be created: `(sizeof(HANDLE) * count) + (sizeof(LPWSTR) * count) + (sizeof(WCHAR*) * count * MAX_PATH)`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Framework Versions:** 3.5 SP1 diff --git a/docs/framework/unmanaged-api/debugging/enumerateclrs-function.md b/docs/framework/unmanaged-api/debugging/enumerateclrs-function.md index c31f08678942f..958de4253aa1c 100644 --- a/docs/framework/unmanaged-api/debugging/enumerateclrs-function.md +++ b/docs/framework/unmanaged-api/debugging/enumerateclrs-function.md @@ -1,18 +1,16 @@ --- description: "Learn more about: EnumerateCLRs Function" title: "EnumerateCLRs Function" -ms.date: "03/30/2017" +ms.date: "03/21/2022" api_name: - "EnumerateCLRs" api_location: - "dbgshim.dll" -api_type: - - "COM" f1_keywords: - "EnumerateCLRs" helpviewer_keywords: - - "debugging API [Silverlight]" - - "Silverlight, debugging" + - "debugging API [.NET Core]" + - ".NET Core, debugging" - "EnumerateCLRs function" ms.assetid: f8d50cb3-ec4f-4529-8fe3-bd61fd28e13c topic_type: @@ -35,16 +33,16 @@ HRESULT EnumerateCLRs ( ## Parameters - `debuggeePID` + `debuggeePID`\ [in] Process identifier of the process from which loaded CLRs will be enumerated. - `ppHandleArrayOut` + `ppHandleArrayOut`\ [out] Pointer to an array containing event handles that are used to continue a CLR startup. Each handle in the array is not guaranteed to be valid. If valid, the handle is to be used as the continue-startup event for the corresponding runtime located in the same index of `ppStringArrayOut`. - `ppStringArrayOut` + `ppStringArrayOut`\ [out] Pointer to an array of strings that specify full paths to CLRs loaded in the process. - `pdwArrayLengthOut` + `pdwArrayLengthOut`\ [out] Pointer to a DWORD that contains the length of the equally sized `ppHandleArrayOut` and `pdwArrayLengthOut`. ## Return Value @@ -73,10 +71,10 @@ HRESULT EnumerateCLRs ( ## Requirements - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). **Header:** dbgshim.h **Library:** dbgshim.dll - **.NET Framework Versions:** 3.5 SP1 + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function-for-silverlight.md b/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function-for-silverlight.md new file mode 100644 index 0000000000000..adcfbee44af49 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function-for-silverlight.md @@ -0,0 +1,66 @@ +--- +description: "Learn more about: GetStartupNotificationEvent Function for Silverlight" +title: "GetStartupNotificationEvent Function for Silverlight" +ms.date: "03/30/2017" +api_name: + - "GetStartupNotificationEvent" +api_location: + - "dbgshim.dll" +f1_keywords: + - "GetStartupNotificationEvent" +helpviewer_keywords: + - "GetStartupNotificationEvent function" + - "debugging API [Silverlight]" + - "Silverlight, debugging" +ms.assetid: c94b1b61-045a-4695-bacd-0f18c5acc246 +topic_type: + - "apiref" +--- +# GetStartupNotificationEvent Function for Silverlight + +Creates or opens an event handle that will be signaled upon by any common language runtime (CLR) that is loading in the specified target process. + +## Syntax + +```cpp +HRESULT GetStartupNotificationEvent + ( + [in] DWORD debuggeePID, + [out] HANDLE* phStartupEvent + ); +``` + +## Parameters + + `debuggeePID` + [in] Process identifier of the target process from which to receive CLR startup notifications. + + `phStartupEvent` + [out] A pointer to a handle that will be signaled by a CLR on startup. + +## Return Value + + S_OK + Successfully obtained the handle to the startup notification event. + + E_INVALIDARG + `phStartupEvent` is null or `debuggeePID` does not refer to a process that is currently running. + + E_FAIL (or other E_ return codes) + Unable to obtain the handle to the startup notification event. + +## Remarks + + On the Windows operating system, `debuggeePID` maps to an OS process identifier. + + The event is signaled before any managed code is executed by the CLR that signaled the event. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Framework Versions:** 3.5 SP1 diff --git a/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function.md b/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function.md index e76836fc7bb06..3defd1308bf85 100644 --- a/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function.md +++ b/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function.md @@ -1,19 +1,17 @@ --- description: "Learn more about: GetStartupNotificationEvent Function" title: "GetStartupNotificationEvent Function" -ms.date: "03/30/2017" +ms.date: "03/21/2022" api_name: - "GetStartupNotificationEvent" api_location: - "dbgshim.dll" -api_type: - - "COM" f1_keywords: - "GetStartupNotificationEvent" helpviewer_keywords: - "GetStartupNotificationEvent function" - - "debugging API [Silverlight]" - - "Silverlight, debugging" + - "debugging API [.NET Core]" + - ".NET Core, debugging" ms.assetid: c94b1b61-045a-4695-bacd-0f18c5acc246 topic_type: - "apiref" @@ -25,19 +23,18 @@ Creates or opens an event handle that will be signaled upon by any common langua ## Syntax ```cpp -HRESULT GetStartupNotificationEvent - ( +HRESULT GetStartupNotificationEvent ( [in] DWORD debuggeePID, [out] HANDLE* phStartupEvent - ); +); ``` ## Parameters - `debuggeePID` + `debuggeePID`\ [in] Process identifier of the target process from which to receive CLR startup notifications. - `phStartupEvent` + `phStartupEvent`\ [out] A pointer to a handle that will be signaled by a CLR on startup. ## Return Value @@ -59,10 +56,10 @@ HRESULT GetStartupNotificationEvent ## Requirements - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). **Header:** dbgshim.h **Library:** dbgshim.dll - **.NET Framework Versions:** 3.5 SP1 + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider-providelibrary-method.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider-providelibrary-method.md index f7a9b28c2add9..245bb1519a2aa 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider-providelibrary-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider-providelibrary-method.md @@ -39,7 +39,7 @@ HRESULT ProvideLibrary( `dwTimestamp` \ [in] The date time stamp stored in the COFF file header of PE files. -`pLibraryProvider` \ +`dwSizeOfImage` \ [in] The `SizeOfImage` field stored in the COFF optional file header of PE files. `hModule` \ diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md new file mode 100644 index 0000000000000..56b43c9f22049 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md @@ -0,0 +1,42 @@ +--- +description: "Learn more about: ICLRDebuggingLibraryProvider2 Interface" +title: "ICLRDebuggingLibraryProvider2 Interface" +ms.date: "03/30/2017" +api_name: + - "ICLRDebuggingLibraryProvider2" +api_location: + - "mscordbi.dll" +api_type: + - "COM" +f1_keywords: + - "ICLRDebuggingLibraryProvider2" +helpviewer_keywords: + - "ICLRDebuggingLibraryProvider2 interface [.NET Core debugging]" +ms.assetid: 67739617-6add-41a9-9de5-a3200c3109ce +topic_type: + - "apiref" +--- +# ICLRDebuggingLibraryProvider2 Interface + +Includes the [ProvideLibrary2](iclrdebugginglibraryprovider2-providelibrary2-method.md) method, which gets a library provider callback interface that allows common language runtime version-specific debugging libraries to be located and loaded on demand. + +## Methods + +|Method|Description| +|------------|-----------------| +|[ProvideLibrary2](iclrdebugginglibraryprovider2-providelibrary2-method.md)|Allows the debugger to provide a path to a module which can be used to load a debug library.| + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] + +## See also + +- [Debugging Interfaces](debugging-interfaces.md) +- [Debugging](index.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md new file mode 100644 index 0000000000000..c3fdcf356af49 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md @@ -0,0 +1,82 @@ +--- +description: "Learn more about: ICLRDebuggingLibraryProvider2::ProvideLibrary2 Method" +title: "ICLRDebuggingLibraryProvider2::ProvideLibrary2 Method" +ms.date: "03/30/2017" +api_name: + - "ICLRDebuggingLibraryProvider2.ProvideLibrary2 Method" +api_location: + - "mscordbi.dll" +api_type: + - "COM" +f1_keywords: + - "ICLRDebuggingLibraryProvider2::ProvideLibrary2" +helpviewer_keywords: + - "ProvideLibrary method [.NET Core debugging]" + - "ICLRDebuggingLibraryProvider2::ProvideLibrary2 method [.NET Core debugging]" +ms.assetid: 86f06245-9517-49be-8d8c-ca5deaf34c02 +topic_type: + - "apiref" +--- +# ICLRDebuggingLibraryProvider2::ProvideLibrary2 Method + +Gets a library provider callback interface that allows common language runtime (CLR) version-specific debugging libraries to be located and loaded on demand. + +## Syntax + +```cpp +HRESULT ProvideLibrary2 ( + [in] const WCHAR* pwszFileName, + [in] DWORD dwTimestamp, + [in] DWORD dwSizeOfImage, + [out] LPWSTR* ppResolvedModulePath); +``` + +## Parameters + +`pwszFilename` \ +[in] The name of the module being requested. + +`dwTimestamp` \ +[in] The date time stamp stored in the COFF file header of PE files. + +`dwSizeOfImage` \ +[in] The `SizeOfImage` field stored in the COFF optional file header of PE files. + +`ppResolvedModulePath` \ +[out] This is a null terminated path to the module dll. On Windows it should be allocated with CoTaskMemAlloc. On Unix it should be allocated with malloc. Failure leaves it untouched. See security note below! + +## Return Value + +This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The method completed successfully.| + +## Exceptions + +## Remarks + +`ProvideLibrary2` allows the debugger to provide modules that are needed for debugging specific CLR files such as mscordbi.dll and mscordacwks.dll. + +The debugger may use any available means to locate or procure the debugging module. + +> [!IMPORTANT] +> This feature allows the API caller to provide modules that contain executable, and possibly malicious, code. As a security precaution, the caller should not use `ProvideLibrary2` to distribute any code that it is not willing to execute itself. +> +> If a serious security issue is discovered in an already released library, such as mscordbi.dll or mscordacwks.dll, the shim can be patched to recognize the bad versions of the files. The shim can then issue requests for the patched versions of the files and reject the bad versions if they are provided in response to any request. This can occur only if the user has patched to a new version of the shim. Unpatched versions will remain vulnerable. + +## Requirements + +**Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + +**Header:** dbgshim.h + +**Library:** dbgshim.dll + +**.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] + +## See also + +- [Debugging Interfaces](debugging-interfaces.md) +- [Debugging](index.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md new file mode 100644 index 0000000000000..a3e14f162874e --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md @@ -0,0 +1,43 @@ +--- +description: "Learn more about: ICLRDebuggingLibraryProvider3 Interface" +title: "ICLRDebuggingLibraryProvider3 Interface" +ms.date: "03/30/2017" +api_name: + - "ICLRDebuggingLibraryProvider3" +api_location: + - "mscordbi.dll" +api_type: + - "COM" +f1_keywords: + - "ICLRDebuggingLibraryProvider3" +helpviewer_keywords: + - "ICLRDebuggingLibraryProvider3 interface [.NET Core debugging]" +ms.assetid: 67739617-6add-41a9-9de5-a3200c3109ce +topic_type: + - "apiref" +--- +# ICLRDebuggingLibraryProvider3 Interface + +Includes the [ProvideLibrary2](iclrdebugginglibraryprovider3-providewindowslibrary-method.md) method, which gets a library provider callback interface that allows common language runtime version-specific debugging libraries to be located and loaded on demand. + +## Methods + +|Method|Description| +|------------|-----------------| +|[ProvideWindowsLibrary](iclrdebugginglibraryprovider3-providewindowslibrary-method.md)|Allows the debugger to provide a path to a module which can be used to load a Windows debug library.| +|[ProvideUnixLibrary](iclrdebugginglibraryprovider3-provideunixlibrary-method.md)|Allows the debugger to provide a path to a module which can be used to load a Linux or MacOS debug library.| + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_60](../../../../includes/net-core-60-md.md)] + +## See also + +- [Debugging Interfaces](debugging-interfaces.md) +- [Debugging](index.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md new file mode 100644 index 0000000000000..d9ba3c85bdf67 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md @@ -0,0 +1,90 @@ +--- +description: "Learn more about: ICLRDebuggingLibraryProvider3::ProvideUnixLibrary Method" +title: "ICLRDebuggingLibraryProvider3::ProvideUnixLibrary Method" +ms.date: "03/30/2017" +api_name: + - "ICLRDebuggingLibraryProvider3.ProvideUnixLibrary Method" +api_location: + - "mscordbi.dll" +api_type: + - "COM" +f1_keywords: + - "ICLRDebuggingLibraryProvider3::ProvideUnixLibrary" +helpviewer_keywords: + - "ProvideUnixLibrary method [.NET Core debugging]" + - "ICLRDebuggingLibraryProvider3::ProvideUnixLibrary method [.NET Core debugging]" +ms.assetid: 86f06245-9517-49be-8d8c-ca5deaf34c02 +topic_type: + - "apiref" +--- +# ICLRDebuggingLibraryProvider3::ProvideUnixLibrary Method + +Gets a library provider callback interface that allows common language runtime (CLR) version-specific debugging libraries to be located and loaded on demand. + +## Syntax + +```cpp +HRESULT ProvideUnixLibrary ( + [in] const WCHAR* pwszFileName, + [in] const WCHAR* pwszRuntimeModule, + [in] LIBRARY_PROVIDER_INDEX_TYPE indexType, + [in] BYTE* pbBuildId, + [in] int iBuildIdSize, + [out] LPWSTR* ppResolvedModulePath); +``` + +## Parameters + +`pwszFilename` \ +[in] The name of the module being requested. + +`pwszRuntimeModule` \ +[in] The runtime or single-file module path. + +`indexType` \ +[in] The type of index information (pBuildId) provided. See [LIBRARY_PROVIDER_INDEX_TYPE](libraryproviderindextype-enumeration.md) enum. + +`pbBuildId` \ +[in] The Linux or MacOS module build id. Can be null if something went wrong retrieving the build id. + +`iBuildIdSize` \ +[in] The number of bytes in the pbBuildId array. Can be 0 if something went wrong retrieving the build id. + +`ppResolvedModulePath` \ +[out] This is a null terminated path to the module dll. On Unix it should be allocated with CoTaskMemAlloc. On Unix it should be allocated with malloc. Failure leaves it untouched. See security note below! + +## Return Value + +This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The method completed successfully.| + +## Exceptions + +## Remarks + +`ProvideUnixLibrary` allows the debugger to provide modules that are needed for debugging specific CLR files such as mscordbi.dll and mscordacwks.dll. + +The debugger may use any available means to locate or procure the debugging module. + +> [!IMPORTANT] +> This feature allows the API caller to provide modules that contain executable, and possibly malicious, code. As a security precaution, the caller should not use `ProvideUnixLibrary` to distribute any code that it is not willing to execute itself. +> +> If a serious security issue is discovered in an already released library, such as mscordbi.dll or mscordacwks.dll, the shim can be patched to recognize the bad versions of the files. The shim can then issue requests for the patched versions of the files and reject the bad versions if they are provided in response to any request. This can occur only if the user has patched to a new version of the shim. Unpatched versions will remain vulnerable. + +## Requirements + +**Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + +**Header:** dbgshim.h + +**Library:** dbgshim.dll + +**.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] + +## See also + +- [Debugging Interfaces](debugging-interfaces.md) +- [Debugging](index.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-providewindowslibrary-method.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-providewindowslibrary-method.md new file mode 100644 index 0000000000000..1e730d244acd3 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-providewindowslibrary-method.md @@ -0,0 +1,90 @@ +--- +description: "Learn more about: ICLRDebuggingLibraryProvider3::ProvideWindowsLibrary Method" +title: "ICLRDebuggingLibraryProvider3::ProvideWindowsLibrary Method" +ms.date: "03/30/2017" +api_name: + - "ICLRDebuggingLibraryProvider3.ProvideWindowsLibrary Method" +api_location: + - "mscordbi.dll" +api_type: + - "COM" +f1_keywords: + - "ICLRDebuggingLibraryProvider3::ProvideWindowsLibrary" +helpviewer_keywords: + - "ProvideWindowsLibrary method [.NET Core debugging]" + - "ICLRDebuggingLibraryProvider3::ProvideWindowsLibrary method [.NET Core debugging]" +ms.assetid: 86f06245-9517-49be-8d8c-ca5deaf34c02 +topic_type: + - "apiref" +--- +# ICLRDebuggingLibraryProvider3::ProvideWindowsLibrary Method + +Gets a library provider callback interface that allows common language runtime (CLR) version-specific debugging libraries to be located and loaded on demand. + +## Syntax + +```cpp +HRESULT ProvideWindowsLibrary ( + [in] const WCHAR* pwszFileName, + [in] const WCHAR* pwszRuntimeModule, + [in] LIBRARY_PROVIDER_INDEX_TYPE indexType, + [in] DWORD dwTimestamp, + [in] DWORD dwSizeOfImage, + [out] LPWSTR* ppResolvedModulePath); +``` + +## Parameters + +`pwszFilename` \ +[in] The name of the module being requested. + +`pwszRuntimeModule` \ +[in] The runtime or single-file module path. + +`indexType` \ +[in] The type of index information (dwTimestamp/dwSizeOfImage) provided. See [LIBRARY_PROVIDER_INDEX_TYPE](libraryproviderindextype-enumeration.md) enum. + +`dwTimestamp` \ +[in] The date time stamp stored in the COFF file header of PE files. + +`dwSizeOfImage` \ +[in] The `SizeOfImage` field stored in the COFF optional file header of PE files. + +`ppResolvedModulePath` \ +[out] This is a null terminated path to the module dll. On Windows it should be allocated with CoTaskMemAlloc. On Unix it should be allocated with malloc. Failure leaves it untouched. See security note below! + +## Return Value + +This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The method completed successfully.| + +## Exceptions + +## Remarks + +`ProvideWindowsLibrary` allows the debugger to provide modules that are needed for debugging specific CLR files such as mscordbi.dll and mscordacwks.dll. + +The debugger may use any available means to locate or procure the debugging module. + +> [!IMPORTANT] +> This feature allows the API caller to provide modules that contain executable, and possibly malicious, code. As a security precaution, the caller should not use `ProvideWindowsLibrary` to distribute any code that it is not willing to execute itself. +> +> If a serious security issue is discovered in an already released library, such as mscordbi.dll or mscordacwks.dll, the shim can be patched to recognize the bad versions of the files. The shim can then issue requests for the patched versions of the files and reject the bad versions if they are provided in response to any request. This can occur only if the user has patched to a new version of the shim. Unpatched versions will remain vulnerable. + +## Requirements + +**Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + +**Header:** dbgshim.h + +**Library:** dbgshim.dll + +**.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] + +## See also + +- [Debugging Interfaces](debugging-interfaces.md) +- [Debugging](index.md) diff --git a/docs/framework/unmanaged-api/debugging/libraryproviderindextype-enumeration.md b/docs/framework/unmanaged-api/debugging/libraryproviderindextype-enumeration.md new file mode 100644 index 0000000000000..136130c2b4bd1 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/libraryproviderindextype-enumeration.md @@ -0,0 +1,59 @@ +--- +description: "Learn more about: LIBRARY_PROVIDER_INDEX_TYPE Enumeration" +title: "LIBRARY_PROVIDER_INDEX_TYPE Enumeration" +ms.date: "03/30/2017" +api_name: + - "LIBRARY_PROVIDER_INDEX_TYPE" +api_location: + - "dbgshim.dll" +api_type: + - "COM" +f1_keywords: + - "LIBRARY_PROVIDER_INDEX_TYPE" +helpviewer_keywords: + - "LIBRARY_PROVIDER_INDEX_TYPE enumeration [.NET Core debugging]" +ms.assetid: a6ac2531-ddfe-46fd-88fe-8b1eabe0b255 +topic_type: + - "apiref" +--- +# LIBRARY_PROVIDER_INDEX_TYPE Enumeration + +The type of index information passed to the library provider is either the identity of the requested module or the runtime (coreclr) module's. + +## Syntax + +```cpp +typedef enum +{ + Unknown = 0, + Identity = 1, + Runtime = 2, +} LIBRARY_PROVIDER_INDEX_TYPE; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`Unknown`|Invalid index type.| +|`Identity`|The index information of the requested module.| +|`Runtime`|The runtime module's index information.| + +## Remarks + +The "index information" is the timestamp/file size on Windows or the build id on Linux/MacOS. + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_60](../../../../includes/net-core-60-md.md)] + +## See also + +- [Debugging Enumerations](debugging-enumerations.md) +- [Debugging](index.md) diff --git a/docs/framework/unmanaged-api/debugging/pstartup_callback-function-pointer.md b/docs/framework/unmanaged-api/debugging/pstartup_callback-function-pointer.md new file mode 100644 index 0000000000000..42e3b516b7e92 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/pstartup_callback-function-pointer.md @@ -0,0 +1,65 @@ +--- +description: "Learn more about: PSTARTUP_CALLBACK Function Pointer" +title: "PSTARTUP_CALLBACK Function Pointer" +ms.date: "03/30/2017" +api_name: + - "PSTARTUP_CALLBACK" +api_location: + - "dbgshim.dll" +f1_keywords: + - "PSTARTUP_CALLBACK" +helpviewer_keywords: + - "PSTARTUP_CALLBACK function pointer [.NET Core debugging]" +ms.assetid: 5c66ac57-d751-4de5-af9f-26ceb949af8b +topic_type: + - "apiref" +--- +# PSTARTUP_CALLBACK Function Pointer + +Points to a function that is called when the .NET Core runtime has started for the [RegisterForRuntimeStartup](registerforruntimestartup-function.md) API. + +## Syntax + +```cpp +typedef VOID (*PSTARTUP_CALLBACK)( + IUnknown *pCordb, + PVOID parameter, + HRESULT hr); +``` + +## Parameters + + `pCordb`\ + [in] Pointer to a pointer to a COM object (`IUnknown`). This object will be cast to an [ICorDebug](icordebug-interface.md) object before it is returned. + + `parameter`\ + [in] The `parameter' value passed to RegisterForRuntimeStartup. + + `hr`\ + [in] The result of the operation. + + `S_OK`\ + `pCordb` references a valid object that implements the [ICorDebug interface](icordebug-interface.md) interface. + + `CORDBG_E_DEBUG_COMPONENT_MISSING`\ + A component that is necessary for CLR debugging cannot be located. Either _mscordbi.dll_ or _mscordaccore.dll_ was not found in the same directory as the target CoreCLR.dll. + + `CORDBG_E_INCOMPATIBLE_PROTOCOL`\ + Either mscordbi.dll or mscordaccore.dll is not the same version as the target CoreCLR.dll. + + `E_FAIL` (or other `E_` return codes)\ + Unable to return an [ICorDebug interface](icordebug-interface.md). + +## Remarks + +The interface that is provided has the facilities for attaching to a CLR in a target process and debugging the managed code that the CLR is running. + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/registerforruntimestartup-function.md b/docs/framework/unmanaged-api/debugging/registerforruntimestartup-function.md new file mode 100644 index 0000000000000..f123be09b11c2 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/registerforruntimestartup-function.md @@ -0,0 +1,65 @@ +--- +description: "Learn more about: RegisterForRuntimeStartup Function" +title: "RegisterForRuntimeStartup Function" +ms.date: "03/21/2022" +f1_keywords: + - "RegisterForRuntimeStartup" +helpviewer_keywords: + - "RegisterForRuntimeStartup function" + - "debugging API [.NET Core]" + - ".NET Core, debugging" +ms.assetid: 35c7a18f-133a-4584-bd25-bb338568b0c6 +--- +# RegisterForRuntimeStartup Function for .NET Core + +Executes the callback when the .NET Core runtime starts in the specified process. + +## Syntax + +```cpp +HRESULT RegisterForRuntimeStartup ( + [in] DWORD dwProcessId, + [in] PSTARTUP_CALLBACK pfnCallback, + [in] PVOID parameter, + [out] PVOID *ppUnregisterToken) +); +``` + +## Parameters + + `dwProcessId`\ + [in] The process id of the target process. + + `pfnCallback`\ + [in] A callback that is invoked when the runtime starts. See [PSTARTUP_CALLBACK](pstartup_callback-function-pointer.md) function pointer. + + `parameter`\ + [in] data pointer passed to pfnCallback. + + `ppUnregisterToken`\ + [out] pointer to return the [UnregisterForRuntimeStartup](unregisterforruntimestartup-function.md) token. + +## Return Value + + `S_OK`\ + The startup callback was successfully registered. + + `E_INVALIDARG`\ + Either `pfnCallback` or `ppUnregisterToken` is null. + + `E_FAIL` (or other `E_` return codes)\ + Callback registration failed. + +## Remarks + +The callback is passed the proper ICorDebug instance for the version of the runtime or an error if something fails. This API works for launch and attach (and even the attach scenario if the runtime hasn't been loaded yet) equally on both xplat and Windows. The callback is always called on a separate thread. This API returns immediately. The callback is invoked when the coreclr runtime module is loaded during early initialization. The runtime is blocked during initialization until the callback returns. If the runtime is already loaded in the process (as in the normal attach case), the callback is executed and the runtime is not blocked. The callback is always invoked on a separate thread and this API returns immediately. Only the first coreclr module instance found in the target process is currently supported. + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/registerforruntimestartup3-function.md b/docs/framework/unmanaged-api/debugging/registerforruntimestartup3-function.md new file mode 100644 index 0000000000000..83df5a51f5908 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/registerforruntimestartup3-function.md @@ -0,0 +1,75 @@ +--- +description: "Learn more about: RegisterForRuntimeStartup3 Function" +title: "RegisterForRuntimeStartup3 Function" +ms.date: "03/21/2022" +f1_keywords: + - "RegisterForRuntimeStartup3" +helpviewer_keywords: + - "RegisterForRuntimeStartup3 function" + - "debugging API [.NET Core]" + - ".NET Core, debugging" +ms.assetid: 35c7a18f-133a-4584-bd25-bb338568b0c6 +--- +# RegisterForRuntimeStartup3 Function for .NET Core + +Executes the callback when the .NET Core runtime starts in the specified process. + +## Syntax + +```cpp +HRESULT RegisterForRuntimeStartup3 ( + [in] DWORD dwProcessId, + [in] LPCWSTR lpApplicationGroupId, + [in] ICLRDebuggingLibraryProvider3* pLibraryProvider, + [in] PSTARTUP_CALLBACK pfnCallback, + [in] PVOID parameter, + [out] PVOID *ppUnregisterToken) +); +``` + +## Parameters + + `dwProcessId`\ + [in] The process id of the target process. + + `lpApplicationGroupId`\ + [in] A string representing the application group ID of a sandboxed process running in Mac. Pass NULL if the process is not running in a sandbox and other platforms. + + `pLibraryProvider`\ + [in] A callback interface instance for locating DBI and DAC. See [ICLRDebuggingLibraryProvider3](iclrdebugginglibraryprovider3-interface.md) interface. + + `pfnCallback`\ + [in] A callback that is invoked when the runtime starts. See [PSTARTUP_CALLBACK](pstartup_callback-function-pointer.md) function pointer. + + `parameter`\ + [in] data pointer passed to pfnCallback. + + `ppUnregisterToken`\ + [out] pointer to return the [UnregisterForRuntimeStartup](unregisterforruntimestartup-function.md) token. + +## Return Value + + `S_OK`\ + The startup callback was successfully registered. + + `E_INVALIDARG`\ + Either `pfnCallback` or `ppUnregisterToken` is null. + + `E_FAIL` (or other `E_` return codes)\ + Callback registration failed. + +## Remarks + +The callback is passed the proper ICorDebug instance for the version of the runtime or an error if something fails. This API works for launch and attach (and even the attach scenario if the runtime hasn't been loaded yet) equally on both xplat and Windows. The callback is always called on a separate thread. This API returns immediately. The callback is invoked when the coreclr runtime module is loaded during early initialization. The runtime is blocked during initialization until the callback returns. If the runtime is already loaded in the process (as in the normal attach case), the callback is executed and the runtime is not blocked. The callback is always invoked on a separate thread and this API returns immediately. Only the first coreclr module instance found in the target process is currently supported. + +This the only register function that works for single-file applications. + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_60](../../../../includes/net-core-60-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/registerforruntimestartupex-function.md b/docs/framework/unmanaged-api/debugging/registerforruntimestartupex-function.md new file mode 100644 index 0000000000000..a1cc317b8dfb8 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/registerforruntimestartupex-function.md @@ -0,0 +1,69 @@ +--- +description: "Learn more about: RegisterForRuntimeStartupEx Function" +title: "RegisterForRuntimeStartupEx Function" +ms.date: "03/21/2022" +f1_keywords: + - "RegisterForRuntimeStartupEx" +helpviewer_keywords: + - "RegisterForRuntimeStartupEx function" + - "debugging API [.NET Core]" + - ".NET Core, debugging" +ms.assetid: 35c7a18f-133a-4584-bd25-bb338568b0c6 +--- +# RegisterForRuntimeStartupEx Function for .NET Core + +Executes the callback when the .NET Core runtime starts in the specified process. + +## Syntax + +```cpp +HRESULT RegisterForRuntimeStartupEx ( + [in] DWORD dwProcessId, + [in] LPCWSTR lpApplicationGroupId, + [in] PSTARTUP_CALLBACK pfnCallback, + [in] PVOID parameter, + [out] PVOID *ppUnregisterToken) +); +``` + +## Parameters + + `dwProcessId`\ + [in] The process id of the target process. + + `lpApplicationGroupId`\ + [in] A string representing the application group ID of a sandboxed process running in Mac. Pass NULL if the process is not running in a sandbox and other platforms. + + `pfnCallback`\ + [in] A callback that is invoked when the runtime starts. See [PSTARTUP_CALLBACK](pstartup_callback-function-pointer.md) function pointer. + + `parameter`\ + [in] data pointer passed to pfnCallback. + + `ppUnregisterToken`\ + [out] pointer to return the [UnregisterForRuntimeStartup](unregisterforruntimestartup-function.md) token. + +## Return Value + + `S_OK`\ + The startup callback was successfully registered. + + `E_INVALIDARG`\ + Either `pfnCallback` or `ppUnregisterToken` is null. + + `E_FAIL` (or other `E_` return codes)\ + Callback registration failed. + +## Remarks + +The callback is passed the proper ICorDebug instance for the version of the runtime or an error if something fails. This API works for launch and attach (and even the attach scenario if the runtime hasn't been loaded yet) equally on both xplat and Windows. The callback is always called on a separate thread. This API returns immediately. The callback is invoked when the coreclr runtime module is loaded during early initialization. The runtime is blocked during initialization until the callback returns. If the runtime is already loaded in the process (as in the normal attach case), the callback is executed and the runtime is not blocked. The callback is always invoked on a separate thread and this API returns immediately. Only the first coreclr module instance found in the target process is currently supported. + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/resumeprocess-function.md b/docs/framework/unmanaged-api/debugging/resumeprocess-function.md new file mode 100644 index 0000000000000..83dec25c41f84 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/resumeprocess-function.md @@ -0,0 +1,52 @@ +--- +description: "Learn more about: ResumeProcess Function" +title: "ResumeProcess Function" +ms.date: "03/21/2022" +api_name: + - "ResumeProcess" +api_location: + - "dbgshim.dll" +f1_keywords: + - "ResumeProcess" +helpviewer_keywords: + - "debugging API [.NET Core]" + - ".NET Core, debugging" + - "ResumeProcess function" +ms.assetid: 5e3c3958-80bb-43b1-a96b-dd3e6dbd9cd7 +topic_type: + - "apiref" +--- +# ResumeProcess Function + +Resumes the process using the resume handle returned by the [CreateProcessForLaunch function](createprocessforlaunch-function.md). + +## Syntax + +```cpp +HRESULT ResumeProcess ( + [in] HANDLE hResumeHandle +); +``` + +## Parameters + + `hResumeHandle`\ + [in] The resume handle returned by [CreateProcessForLaunch function](createprocessforlaunch-function.md). + +## Return Value + + S_OK + The process was successfully resumed. + + E_FAIL (or other E_ return codes) + The handle was invalid or the function failed. + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/silverlight-debugging.md b/docs/framework/unmanaged-api/debugging/silverlight-debugging.md index 7616e588783e9..e619f02716163 100644 --- a/docs/framework/unmanaged-api/debugging/silverlight-debugging.md +++ b/docs/framework/unmanaged-api/debugging/silverlight-debugging.md @@ -13,10 +13,10 @@ The topics in this section describe the environment and interfaces that the comm ## In This Section - [EnumerateCLRs Function](enumerateclrs-function.md) + [EnumerateCLRs Function](enumerateclrs-function-for-silverlight.md) Provides a mechanism for enumerating the CLRs in a process. - [CloseCLREnumeration Function](closeclrenumeration-function.md) + [CloseCLREnumeration Function](closeclrenumeration-function-for-silverlight.md) Closes any valid CLR continue-startup events located in an array of handles returned by the [EnumerateCLRs Function](enumerateclrs-function.md), and frees the memory for the handle and string path arrays. [CreateCoreClrDebugTarget Function](createcoreclrdebugtarget-function.md) @@ -25,11 +25,11 @@ The topics in this section describe the environment and interfaces that the comm [CreateCordbObject Function](createcordbobject-function.md) Creates a debugger interface that provides functionality for instantiating a managed debugging session on a remote process. - [CreateVersionStringFromModule Function](createversionstringfrommodule-function.md) + [CreateVersionStringFromModule Function](createversionstringfrommodule-function-for-silverlight.md) Creates a version string from a CLR path in a target process. [CreateDebuggingInterfaceFromVersion Function](createdebugginginterfacefromversion-function-for-silverlight.md) - Accepts a CLR version string returned from [CreateVersionStringFromModule Function](createversionstringfrommodule-function.md)function, and returns a corresponding debugger interface. + Accepts a CLR version string returned from [CreateVersionStringFromModule](createversionstringfrommodule-function.md) function, and returns a corresponding debugger interface. [CoreClrDebugProcInfo Structure](coreclrdebugprocinfo-structure.md) Represents a process that is running on a remote machine. @@ -37,7 +37,7 @@ The topics in this section describe the environment and interfaces that the comm [CoreClrDebugRuntimeInfo Structure](coreclrdebugruntimeinfo-structure.md) Represents a CLR instance that is loaded in a process on a remote machine. - [GetStartupNotificationEvent Function](getstartupnotificationevent-function.md) + [GetStartupNotificationEvent Function](getstartupnotificationevent-function-for-silverlight.md) Creates or opens an event handle that will be signaled upon by any common language runtime (CLR) that is loading in the specified target process. [ICoreClrDebugTarget Interface](icoreclrdebugtarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/toc.yml b/docs/framework/unmanaged-api/debugging/toc.yml index 72ba7039d5d1b..58bea5f772ae7 100644 --- a/docs/framework/unmanaged-api/debugging/toc.yml +++ b/docs/framework/unmanaged-api/debugging/toc.yml @@ -72,6 +72,18 @@ items: - name: ProvideLibrary Method href: iclrdebugginglibraryprovider-providelibrary-method.md + - name: ICLRDebuggingLibraryProvider2 Interface + href: iclrdebugginglibraryprovider2-interface.md + items: + - name: ProvideLibrary2 Method + href: iclrdebugginglibraryprovider2-providelibrary2-method.md + - name: ICLRDebuggingLibraryProvider3 Interface + href: iclrdebugginglibraryprovider3-interface.md + items: + - name: ProvideWindowsLibrary Method + href: iclrdebugginglibraryprovider3-providewindowslibrary-method.md + - name: ProvideUnixLibrary Method + href: iclrdebugginglibraryprovider3-provideunixlibrary-method.md - name: ICLRMetadataLocator Interface href: iclrmetadatalocator-interface.md items: @@ -1623,17 +1635,51 @@ href: dacprejitdata-structure.md - name: StackTrace_SimpleContext Structure href: stacktrace-simplecontext-structure.md + - name: .NET Core Debugging + href: dotnet-debugging.md + items: + - name: CloseCLREnumeration Function + href: closeclrenumeration-function.md + - name: CloseResumeHandle Function + href: closeresumehandle-function.md + - name: CreateVersionStringFromModule Function + href: createversionstringfrommodule-function.md + - name: CreateDebuggingInterfaceFromVersion Function + href: createdebugginginterfacefromversion-function.md + - name: CreateDebuggingInterfaceFromVersionEx Function + href: createdebugginginterfacefromversionex-function.md + - name: CreateDebuggingInterfaceFromVersion2 Function + href: createdebugginginterfacefromversion2-function.md + - name: CreateDebuggingInterfaceFromVersion3 Function + href: createdebugginginterfacefromversion3-function.md + - name: CreateProcessForLaunch Function + - name: CreateProcessForLaunch Function + href: createprocessforlaunch-function.md + - name: EnumerateCLRs Function + href: enumerateclrs-function.md + - name: GetStartupNotificationEvent Function + href: getstartupnotificationevent-function.md + - name: RegisterForRuntimeStartup Function + href: registerforruntimestartup-function.md + - name: RegisterForRuntimeStartupEx Function + href: registerforruntimestartupex-function.md + - name: RegisterForRuntimeStartup3 Function + href: registerforruntimestartup3-function.md + - name: ResumeProcess Function + href: resumeprocess-function.md + - name: UnregisterForRuntimeStartup Function + href: unregisterforruntimestartup-function.md - name: Silverlight Debugging href: silverlight-debugging.md items: - name: CloseCLREnumeration Function - href: closeclrenumeration-function.md + href: closeclrenumeration-function-for-silverlight.md - name: CreateCoreClrDebugTarget Function href: createcoreclrdebugtarget-function.md - name: CreateCordbObject Function href: createcordbobject-function.md - name: CreateVersionStringFromModule Function - href: createversionstringfrommodule-function.md + href: createversionstringfrommodule-function-for-silverlight.md - name: CreateDebuggingInterfaceFromVersion Function href: createdebugginginterfacefromversion-function-for-silverlight.md - name: CoreClrDebugProcInfo Structure @@ -1641,9 +1687,9 @@ - name: CoreClrDebugRuntimeInfo Structure href: coreclrdebugruntimeinfo-structure.md - name: EnumerateCLRs Function - href: enumerateclrs-function.md + href: enumerateclrs-function-for-silverlight.md - name: GetStartupNotificationEvent Function - href: getstartupnotificationevent-function.md + href: getstartupnotificationevent-function-for-silverlight.md - name: ICoreClrDebugTarget Interface href: icoreclrdebugtarget-interface.md items: diff --git a/docs/framework/unmanaged-api/debugging/unregisterforruntimestartup-function.md b/docs/framework/unmanaged-api/debugging/unregisterforruntimestartup-function.md new file mode 100644 index 0000000000000..17d90cef6dc0c --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/unregisterforruntimestartup-function.md @@ -0,0 +1,50 @@ +--- +description: "Learn more about: UnregisterForRuntimeStartup Function" +title: "UnregisterForRuntimeStartup Function" +ms.date: "03/21/2022" +f1_keywords: + - "UnregisterForRuntimeStartup" +helpviewer_keywords: + - "UnregisterForRuntimeStartup function" + - "debugging API [.NET Core]" + - ".NET Core, debugging" +ms.assetid: 35c7a18f-133a-4584-bd25-bb338568b0c6 +--- +# UnregisterForRuntimeStartup Function for .NET Core + +Stops/cancels runtime startup notification. + +## Syntax + +```cpp +HRESULT UnregisterForRuntimeStartup ( + [in] PVOID pUnregisterToken) +); +``` + +## Parameters + + `pUnregisterToken`\ + [in] The token from the [RegisterForRuntimeStartup](registerforruntimestartup-function.md) APIs. + +## Return Value + + `S_OK`\ + The runtime startup callback was successfully unregistered. + + `E_FAIL` (or other `E_` return codes)\ + Unregister failed. + +## Remarks + +This API needs to be called during the debugger's shutdown to cleanup the internal data. It can be called in the startup callback. Otherwise, it will block until the callback thread finishes and no more callbacks will be initiated after this API returns. + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/includes/net-core-60-md.md b/includes/net-core-60-md.md new file mode 100644 index 0000000000000..ec7a99aeeab85 --- /dev/null +++ b/includes/net-core-60-md.md @@ -0,0 +1 @@ +Available since .NET 6.0 From 3300874e5b495f4330779e84d8107a6cd00ef7f6 Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Fri, 25 Mar 2022 09:17:42 -0700 Subject: [PATCH 002/429] Update docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md Co-authored-by: Noah Falk --- .../debugging/iclrdebugginglibraryprovider2-interface.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md index 56b43c9f22049..b1ae6e6716754 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md @@ -18,7 +18,7 @@ topic_type: --- # ICLRDebuggingLibraryProvider2 Interface -Includes the [ProvideLibrary2](iclrdebugginglibraryprovider2-providelibrary2-method.md) method, which gets a library provider callback interface that allows common language runtime version-specific debugging libraries to be located and loaded on demand. +Includes the [ProvideLibrary2](iclrdebugginglibraryprovider2-providelibrary2-method.md) method, which allows the debugger to provide a path to a version-specific debugging library. ## Methods From 139d73f04aed54a214101b067a89c796d17311fa Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Fri, 25 Mar 2022 09:18:12 -0700 Subject: [PATCH 003/429] Update docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md Co-authored-by: Noah Falk --- .../debugging/iclrdebugginglibraryprovider2-interface.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md index b1ae6e6716754..9d847be615a9c 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md @@ -24,7 +24,7 @@ Includes the [ProvideLibrary2](iclrdebugginglibraryprovider2-providelibrary2-met |Method|Description| |------------|-----------------| -|[ProvideLibrary2](iclrdebugginglibraryprovider2-providelibrary2-method.md)|Allows the debugger to provide a path to a module which can be used to load a debug library.| +|[ProvideLibrary2](iclrdebugginglibraryprovider2-providelibrary2-method.md)|Allows the debugger to provide a path to a version-specific debugging library.| ## Requirements From 21664ba19c4f97153412b7eaed350fc1189c1f14 Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Fri, 25 Mar 2022 09:18:25 -0700 Subject: [PATCH 004/429] Update docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md Co-authored-by: Noah Falk --- .../iclrdebugginglibraryprovider2-providelibrary2-method.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md index c3fdcf356af49..9217f06d442b9 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md @@ -19,7 +19,7 @@ topic_type: --- # ICLRDebuggingLibraryProvider2::ProvideLibrary2 Method -Gets a library provider callback interface that allows common language runtime (CLR) version-specific debugging libraries to be located and loaded on demand. +Allows the debugger to provide a path to a version-specific common language runtime (CLR) debugging library. ## Syntax From 7ec422ba7254560ec4a3daa09a5132fe7e9edf0f Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Fri, 25 Mar 2022 09:18:54 -0700 Subject: [PATCH 005/429] Update docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md Co-authored-by: Noah Falk --- .../debugging/iclrdebugginglibraryprovider3-interface.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md index a3e14f162874e..3a5716c2fc8ad 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md @@ -24,7 +24,7 @@ Includes the [ProvideLibrary2](iclrdebugginglibraryprovider3-providewindowslibra |Method|Description| |------------|-----------------| -|[ProvideWindowsLibrary](iclrdebugginglibraryprovider3-providewindowslibrary-method.md)|Allows the debugger to provide a path to a module which can be used to load a Windows debug library.| +|[ProvideWindowsLibrary](iclrdebugginglibraryprovider3-providewindowslibrary-method.md)|Allows the debugger to provide a path to a version-specific Windows debugging library.| |[ProvideUnixLibrary](iclrdebugginglibraryprovider3-provideunixlibrary-method.md)|Allows the debugger to provide a path to a module which can be used to load a Linux or MacOS debug library.| ## Requirements From 68fba954257ff067defde699b932e825b80ed751 Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Fri, 25 Mar 2022 09:19:01 -0700 Subject: [PATCH 006/429] Update docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md Co-authored-by: Noah Falk --- .../debugging/iclrdebugginglibraryprovider3-interface.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md index 3a5716c2fc8ad..c2832a4035e76 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md @@ -25,7 +25,7 @@ Includes the [ProvideLibrary2](iclrdebugginglibraryprovider3-providewindowslibra |Method|Description| |------------|-----------------| |[ProvideWindowsLibrary](iclrdebugginglibraryprovider3-providewindowslibrary-method.md)|Allows the debugger to provide a path to a version-specific Windows debugging library.| -|[ProvideUnixLibrary](iclrdebugginglibraryprovider3-provideunixlibrary-method.md)|Allows the debugger to provide a path to a module which can be used to load a Linux or MacOS debug library.| +|[ProvideUnixLibrary](iclrdebugginglibraryprovider3-provideunixlibrary-method.md)|Allows the debugger to provide a path to a version-specific debugging Linux or MacOS library.| ## Requirements From b64678780851d283272cf503a9eb19137d1e95bf Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Fri, 25 Mar 2022 09:19:11 -0700 Subject: [PATCH 007/429] Update docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md Co-authored-by: Noah Falk --- .../iclrdebugginglibraryprovider3-provideunixlibrary-method.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md index d9ba3c85bdf67..6f06d0a4f1b4b 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md @@ -19,7 +19,7 @@ topic_type: --- # ICLRDebuggingLibraryProvider3::ProvideUnixLibrary Method -Gets a library provider callback interface that allows common language runtime (CLR) version-specific debugging libraries to be located and loaded on demand. +Allows the debugger to provide a path to a version-specific common language runtime (CLR) debugging library on MacOS and Linux. ## Syntax From 040e23e46276eb5491fa06e37c1b7b0d94378c8a Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Fri, 25 Mar 2022 09:19:40 -0700 Subject: [PATCH 008/429] Update docs/framework/unmanaged-api/debugging/registerforruntimestartup3-function.md Co-authored-by: Noah Falk --- .../debugging/registerforruntimestartup3-function.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/unmanaged-api/debugging/registerforruntimestartup3-function.md b/docs/framework/unmanaged-api/debugging/registerforruntimestartup3-function.md index 83df5a51f5908..bc6cbd1f9decf 100644 --- a/docs/framework/unmanaged-api/debugging/registerforruntimestartup3-function.md +++ b/docs/framework/unmanaged-api/debugging/registerforruntimestartup3-function.md @@ -62,7 +62,7 @@ HRESULT RegisterForRuntimeStartup3 ( The callback is passed the proper ICorDebug instance for the version of the runtime or an error if something fails. This API works for launch and attach (and even the attach scenario if the runtime hasn't been loaded yet) equally on both xplat and Windows. The callback is always called on a separate thread. This API returns immediately. The callback is invoked when the coreclr runtime module is loaded during early initialization. The runtime is blocked during initialization until the callback returns. If the runtime is already loaded in the process (as in the normal attach case), the callback is executed and the runtime is not blocked. The callback is always invoked on a separate thread and this API returns immediately. Only the first coreclr module instance found in the target process is currently supported. -This the only register function that works for single-file applications. +This is the only register function that works for single-file applications. ## Requirements From 5f4349f84a9a5513d43f67d7cd67520391bd9853 Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Fri, 25 Mar 2022 10:58:12 -0700 Subject: [PATCH 009/429] Review updates --- .../debugging/closeclrenumeration-function.md | 4 +- .../debugging/closeresumehandle-function.md | 8 +- .../debugging/clrcreateinstance-function.md | 85 +++++++++++++++++++ ...edebugginginterfacefromversion-function.md | 6 +- ...debugginginterfacefromversion2-function.md | 6 +- ...debugginginterfacefromversion3-function.md | 6 +- ...ebugginginterfacefromversionex-function.md | 6 +- .../createprocessforlaunch-function.md | 4 +- .../createversionstringfrommodule-function.md | 4 +- .../debugging/dotnet-debugging.md | 3 + .../debugging/enumerateclrs-function.md | 4 +- .../getstartupnotificationevent-function.md | 2 +- ...iclrdebugging-openvirtualprocess-method.md | 2 + ...iclrdebugginglibraryprovider2-interface.md | 6 +- ...libraryprovider2-providelibrary2-method.md | 8 +- ...iclrdebugginglibraryprovider3-interface.md | 10 ++- ...raryprovider3-provideunixlibrary-method.md | 8 +- ...yprovider3-providewindowslibrary-method.md | 8 +- .../libraryproviderindextype-enumeration.md | 4 +- .../pstartup_callback-function-pointer.md | 4 +- .../registerforruntimestartup-function.md | 6 +- .../registerforruntimestartup3-function.md | 6 +- .../registerforruntimestartupex-function.md | 6 +- .../debugging/resumeprocess-function.md | 4 +- .../framework/unmanaged-api/debugging/toc.yml | 2 + .../unregisterforruntimestartup-function.md | 6 +- 26 files changed, 184 insertions(+), 34 deletions(-) create mode 100644 docs/framework/unmanaged-api/debugging/clrcreateinstance-function.md diff --git a/docs/framework/unmanaged-api/debugging/closeclrenumeration-function.md b/docs/framework/unmanaged-api/debugging/closeclrenumeration-function.md index c52f3756fd3d6..df27180ddbb0c 100644 --- a/docs/framework/unmanaged-api/debugging/closeclrenumeration-function.md +++ b/docs/framework/unmanaged-api/debugging/closeclrenumeration-function.md @@ -6,6 +6,8 @@ api_name: - "CloseCLREnumeration" api_location: - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" f1_keywords: - "CloseCLREnumeration" helpviewer_keywords: @@ -58,6 +60,6 @@ HRESULT CloseCLREnumeration ( **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/closeresumehandle-function.md b/docs/framework/unmanaged-api/debugging/closeresumehandle-function.md index bc048ffb0a474..deaef9351713b 100644 --- a/docs/framework/unmanaged-api/debugging/closeresumehandle-function.md +++ b/docs/framework/unmanaged-api/debugging/closeresumehandle-function.md @@ -6,6 +6,8 @@ api_name: - "CloseResumeHandle" api_location: - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" f1_keywords: - "CloseResumeHandle" helpviewer_keywords: @@ -43,10 +45,10 @@ HRESULT CloseResumeHandle ( ## Requirements - **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). - **Header:** dbgshim.h + **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/clrcreateinstance-function.md b/docs/framework/unmanaged-api/debugging/clrcreateinstance-function.md new file mode 100644 index 0000000000000..112796ade8025 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrcreateinstance-function.md @@ -0,0 +1,85 @@ +--- +description: "Learn more about: CLRCreateInstance for .NET Core Function" +title: "CLRCreateInstance for .NET Core Function" +ms.date: "03/25/2022" +api_name: + - "CLRCreateInstance" +api_location: + - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" +api_type: + - "COM" +f1_keywords: + - "CLRCreateInstance" + - "CreateInterface" +helpviewer_keywords: + - "CLRCreateInstance function [.NET Core Debugging]" + - "CreateInterface function" +ms.assetid: 5de13327-96c6-4697-a89e-b8bf40717855 +topic_type: + - "apiref" +--- +# CLRCreateInstance for .NET Core Function + +Provides the [ICLRDebugging](iclrdebugging-interface.md) interface. + +## Syntax + +```cpp +HRESULT CLRCreateInstance ( + [in] REFCLSID clsid, + [in] REFIID riid, + [out] LPVOID * ppInterface +); +``` + +## Parameters + + `clsid` + [in] Supports only the CLSID_CLRDebugging class identifier. + + `riid` + [in] Supports only the IID_ICLRDebugging interface identifiers. + + `ppInterface` + [out] A [ICLRDebugging](iclrdebugging-interface.md) instance. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The method completed successfully.| +|E_POINTER|`ppInterface` is null.| + +## Remarks + + The following table shows the supported combinations for `clsid` and `riid`. + +|`clsid`|`riid`| +|--------------|------------| +|CLSID_CLRDebugging|IID_ICLRDebugging| + + The following code shows how to use `CLRCreateInstance` to get to get the interface: + +```cpp +#include +#pragma comment(lib, "mscoree.lib") + +ICLRDebugging *pCLRDebugging = NULL; +HRESULT hr; +hr = CLRCreateInstance (CLSID_CLRDebugging, IID_ICLRDebugging, + (LPVOID*)&pCLRDebugging); +``` + +## Requirements + + **Platforms:** See [.NET Core supported operating systems](../../../core/install/windows.md?pivots=os-windows). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib + + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion-function.md b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion-function.md index 0705455665617..60a577b1c4c67 100644 --- a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion-function.md +++ b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion-function.md @@ -4,6 +4,10 @@ title: "CreateDebuggingInterfaceFromVersion Function for .NET Core" ms.date: "03/21/2022" f1_keywords: - "CreateDebuggingInterfaceFromVersion" +api_location: + - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" helpviewer_keywords: - "CreateDebuggingInterfaceFromVersion function" - "debugging API [.NET Core]" @@ -58,6 +62,6 @@ HRESULT CreateDebuggingInterfaceFromVersion ( **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md index f07cfb843121e..c746e77f0705f 100644 --- a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md +++ b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md @@ -2,6 +2,10 @@ description: "Learn more about: CreateDebuggingInterfaceFromVersion2 Function" title: "CreateDebuggingInterfaceFromVersion2 Function" ms.date: "03/21/2022" +api_location: + - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" f1_keywords: - "CreateDebuggingInterfaceFromVersion2" helpviewer_keywords: @@ -66,6 +70,6 @@ HRESULT CreateDebuggingInterfaceFromVersion2 ( **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_31](../../../../includes/net-core-31-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md index fdb1e921545ae..449a8cfb8e969 100644 --- a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md +++ b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md @@ -4,6 +4,10 @@ title: "CreateDebuggingInterfaceFromVersion3 Function" ms.date: "03/21/2022" f1_keywords: - "CreateDebuggingInterfaceFromVersion3" +api_location: + - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" helpviewer_keywords: - "CreateDebuggingInterfaceFromVersion3 function" - "debugging API [.NET Core]" @@ -70,6 +74,6 @@ HRESULT CreateDebuggingInterfaceFromVersion3 ( **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_60](../../../../includes/net-core-60-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversionex-function.md b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversionex-function.md index e338f3237bcc9..1a2fd1ed8f976 100644 --- a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversionex-function.md +++ b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversionex-function.md @@ -4,6 +4,10 @@ title: "CreateDebuggingInterfaceFromVersionEx Function" ms.date: "03/21/2022" f1_keywords: - "CreateDebuggingInterfaceFromVersionEx" +api_location: + - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" helpviewer_keywords: - "CreateDebuggingInterfaceFromVersionEx function" - "debugging API [.NET Core]" @@ -62,6 +66,6 @@ HRESULT CreateDebuggingInterfaceFromVersionEx ( **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/createprocessforlaunch-function.md b/docs/framework/unmanaged-api/debugging/createprocessforlaunch-function.md index 4b88849f3b1ed..4e458ca15c921 100644 --- a/docs/framework/unmanaged-api/debugging/createprocessforlaunch-function.md +++ b/docs/framework/unmanaged-api/debugging/createprocessforlaunch-function.md @@ -6,6 +6,8 @@ api_name: - "CreateProcessForLaunch" api_location: - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" f1_keywords: - "CreateProcessForLaunch" helpviewer_keywords: @@ -71,6 +73,6 @@ See the Win32 CreateProcess API for more details. **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function.md b/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function.md index e21d587fdd3d0..7752e39b97884 100644 --- a/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function.md +++ b/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function.md @@ -6,6 +6,8 @@ api_name: - "CreateVersionStringFromModule" api_location: - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" f1_keywords: - "CreateVersionStringFromModule" helpviewer_keywords: @@ -79,6 +81,6 @@ HRESULT CreateVersionStringFromModule ( **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/dotnet-debugging.md b/docs/framework/unmanaged-api/debugging/dotnet-debugging.md index 64a9c3ebb9144..ae3f42ede8c55 100644 --- a/docs/framework/unmanaged-api/debugging/dotnet-debugging.md +++ b/docs/framework/unmanaged-api/debugging/dotnet-debugging.md @@ -58,6 +58,9 @@ The topics in this section describe the environment and interfaces that the comm [GetStartupNotificationEvent Function](getstartupnotificationevent-function.md) Creates or opens an event handle that will be signaled upon by any common language runtime (CLR) that is loading in the specified target process. + [CLRCreateInstance Function](clrcreateinstance-function.md) + Provides the [ICLRDebugging](iclrdebugging-interface.md) interface. + ## See also - [Debugging Coclasses](debugging-coclasses.md) diff --git a/docs/framework/unmanaged-api/debugging/enumerateclrs-function.md b/docs/framework/unmanaged-api/debugging/enumerateclrs-function.md index 958de4253aa1c..f4ef5d7f0c99c 100644 --- a/docs/framework/unmanaged-api/debugging/enumerateclrs-function.md +++ b/docs/framework/unmanaged-api/debugging/enumerateclrs-function.md @@ -6,6 +6,8 @@ api_name: - "EnumerateCLRs" api_location: - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" f1_keywords: - "EnumerateCLRs" helpviewer_keywords: @@ -75,6 +77,6 @@ HRESULT EnumerateCLRs ( **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function.md b/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function.md index 3defd1308bf85..6d59f43731654 100644 --- a/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function.md +++ b/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function.md @@ -18,7 +18,7 @@ topic_type: --- # GetStartupNotificationEvent Function -Creates or opens an event handle that will be signaled upon by any common language runtime (CLR) that is loading in the specified target process. +Creates or opens an event handle that will be signaled upon by any common language runtime (CLR) that is loading in the specified target process. This API is Windows only. ## Syntax diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugging-openvirtualprocess-method.md b/docs/framework/unmanaged-api/debugging/iclrdebugging-openvirtualprocess-method.md index 03f71e58590b9..9ac03b7fa1fbc 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugging-openvirtualprocess-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugging-openvirtualprocess-method.md @@ -92,6 +92,8 @@ HRESULT OpenVirtualProcess( **Library:** CorGuids.lib **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + + **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md index 9d847be615a9c..a61eb3516ad34 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md @@ -5,7 +5,9 @@ ms.date: "03/30/2017" api_name: - "ICLRDebuggingLibraryProvider2" api_location: - - "mscordbi.dll" + - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" api_type: - "COM" f1_keywords: @@ -32,7 +34,7 @@ Includes the [ProvideLibrary2](iclrdebugginglibraryprovider2-providelibrary2-met **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md index 9217f06d442b9..d3ebf0d6aeec2 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md @@ -4,8 +4,10 @@ title: "ICLRDebuggingLibraryProvider2::ProvideLibrary2 Method" ms.date: "03/30/2017" api_name: - "ICLRDebuggingLibraryProvider2.ProvideLibrary2 Method" -api_location: - - "mscordbi.dll" +api_location: + - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" api_type: - "COM" f1_keywords: @@ -72,7 +74,7 @@ The debugger may use any available means to locate or procure the debugging modu **Header:** dbgshim.h -**Library:** dbgshim.dll +**Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md index c2832a4035e76..4218bebf27f5a 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md @@ -5,7 +5,9 @@ ms.date: "03/30/2017" api_name: - "ICLRDebuggingLibraryProvider3" api_location: - - "mscordbi.dll" + - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" api_type: - "COM" f1_keywords: @@ -18,14 +20,14 @@ topic_type: --- # ICLRDebuggingLibraryProvider3 Interface -Includes the [ProvideLibrary2](iclrdebugginglibraryprovider3-providewindowslibrary-method.md) method, which gets a library provider callback interface that allows common language runtime version-specific debugging libraries to be located and loaded on demand. +Includes callback methods that allow common language runtime version-specific debugging libraries to be located and loaded on demand for .NET Core regular and single-file applications. This interface is required by the [RegisterForRuntimeStartup3](registerforruntimestartup3-function.md) and [CreateDebuggingInterfaceFromVersion3](createdebugginginterfacefromversion3-function.md) methods. It is supported by the ICLRDebugging::OpenVirtualProcess method aquired with dbgshim's [CLRCreateInstance](clrcreateinstance-function.md) API. ## Methods |Method|Description| |------------|-----------------| |[ProvideWindowsLibrary](iclrdebugginglibraryprovider3-providewindowslibrary-method.md)|Allows the debugger to provide a path to a version-specific Windows debugging library.| -|[ProvideUnixLibrary](iclrdebugginglibraryprovider3-provideunixlibrary-method.md)|Allows the debugger to provide a path to a version-specific debugging Linux or MacOS library.| +|[ProvideUnixLibrary](iclrdebugginglibraryprovider3-provideunixlibrary-method.md)|Allows the debugger to provide a path to a version-specific Linux or MacOS debugging library.| ## Requirements @@ -33,7 +35,7 @@ Includes the [ProvideLibrary2](iclrdebugginglibraryprovider3-providewindowslibra **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_60](../../../../includes/net-core-60-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md index 6f06d0a4f1b4b..1de0102e9e847 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md @@ -4,8 +4,10 @@ title: "ICLRDebuggingLibraryProvider3::ProvideUnixLibrary Method" ms.date: "03/30/2017" api_name: - "ICLRDebuggingLibraryProvider3.ProvideUnixLibrary Method" -api_location: - - "mscordbi.dll" +api_location: + - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" api_type: - "COM" f1_keywords: @@ -80,7 +82,7 @@ The debugger may use any available means to locate or procure the debugging modu **Header:** dbgshim.h -**Library:** dbgshim.dll +**Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-providewindowslibrary-method.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-providewindowslibrary-method.md index 1e730d244acd3..32be031ce0df0 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-providewindowslibrary-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-providewindowslibrary-method.md @@ -4,8 +4,10 @@ title: "ICLRDebuggingLibraryProvider3::ProvideWindowsLibrary Method" ms.date: "03/30/2017" api_name: - "ICLRDebuggingLibraryProvider3.ProvideWindowsLibrary Method" -api_location: - - "mscordbi.dll" +api_location: + - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" api_type: - "COM" f1_keywords: @@ -80,7 +82,7 @@ The debugger may use any available means to locate or procure the debugging modu **Header:** dbgshim.h -**Library:** dbgshim.dll +**Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/libraryproviderindextype-enumeration.md b/docs/framework/unmanaged-api/debugging/libraryproviderindextype-enumeration.md index 136130c2b4bd1..f05bed3cc1b54 100644 --- a/docs/framework/unmanaged-api/debugging/libraryproviderindextype-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/libraryproviderindextype-enumeration.md @@ -6,6 +6,8 @@ api_name: - "LIBRARY_PROVIDER_INDEX_TYPE" api_location: - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" api_type: - "COM" f1_keywords: @@ -49,7 +51,7 @@ The "index information" is the timestamp/file size on Windows or the build id on **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_60](../../../../includes/net-core-60-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/pstartup_callback-function-pointer.md b/docs/framework/unmanaged-api/debugging/pstartup_callback-function-pointer.md index 42e3b516b7e92..42231430d6113 100644 --- a/docs/framework/unmanaged-api/debugging/pstartup_callback-function-pointer.md +++ b/docs/framework/unmanaged-api/debugging/pstartup_callback-function-pointer.md @@ -6,6 +6,8 @@ api_name: - "PSTARTUP_CALLBACK" api_location: - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" f1_keywords: - "PSTARTUP_CALLBACK" helpviewer_keywords: @@ -60,6 +62,6 @@ The interface that is provided has the facilities for attaching to a CLR in a ta **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/registerforruntimestartup-function.md b/docs/framework/unmanaged-api/debugging/registerforruntimestartup-function.md index f123be09b11c2..f2de404599641 100644 --- a/docs/framework/unmanaged-api/debugging/registerforruntimestartup-function.md +++ b/docs/framework/unmanaged-api/debugging/registerforruntimestartup-function.md @@ -4,6 +4,10 @@ title: "RegisterForRuntimeStartup Function" ms.date: "03/21/2022" f1_keywords: - "RegisterForRuntimeStartup" +api_location: + - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" helpviewer_keywords: - "RegisterForRuntimeStartup function" - "debugging API [.NET Core]" @@ -60,6 +64,6 @@ The callback is passed the proper ICorDebug instance for the version of the runt **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/registerforruntimestartup3-function.md b/docs/framework/unmanaged-api/debugging/registerforruntimestartup3-function.md index bc6cbd1f9decf..ab1c242a129fd 100644 --- a/docs/framework/unmanaged-api/debugging/registerforruntimestartup3-function.md +++ b/docs/framework/unmanaged-api/debugging/registerforruntimestartup3-function.md @@ -4,6 +4,10 @@ title: "RegisterForRuntimeStartup3 Function" ms.date: "03/21/2022" f1_keywords: - "RegisterForRuntimeStartup3" +api_location: + - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" helpviewer_keywords: - "RegisterForRuntimeStartup3 function" - "debugging API [.NET Core]" @@ -70,6 +74,6 @@ This is the only register function that works for single-file applications. **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_60](../../../../includes/net-core-60-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/registerforruntimestartupex-function.md b/docs/framework/unmanaged-api/debugging/registerforruntimestartupex-function.md index a1cc317b8dfb8..31418ce413a83 100644 --- a/docs/framework/unmanaged-api/debugging/registerforruntimestartupex-function.md +++ b/docs/framework/unmanaged-api/debugging/registerforruntimestartupex-function.md @@ -4,6 +4,10 @@ title: "RegisterForRuntimeStartupEx Function" ms.date: "03/21/2022" f1_keywords: - "RegisterForRuntimeStartupEx" +api_location: + - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" helpviewer_keywords: - "RegisterForRuntimeStartupEx function" - "debugging API [.NET Core]" @@ -64,6 +68,6 @@ The callback is passed the proper ICorDebug instance for the version of the runt **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/resumeprocess-function.md b/docs/framework/unmanaged-api/debugging/resumeprocess-function.md index 83dec25c41f84..73c4f93d67f92 100644 --- a/docs/framework/unmanaged-api/debugging/resumeprocess-function.md +++ b/docs/framework/unmanaged-api/debugging/resumeprocess-function.md @@ -6,6 +6,8 @@ api_name: - "ResumeProcess" api_location: - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" f1_keywords: - "ResumeProcess" helpviewer_keywords: @@ -47,6 +49,6 @@ HRESULT ResumeProcess ( **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/toc.yml b/docs/framework/unmanaged-api/debugging/toc.yml index 58bea5f772ae7..3c5fbb41e7c0f 100644 --- a/docs/framework/unmanaged-api/debugging/toc.yml +++ b/docs/framework/unmanaged-api/debugging/toc.yml @@ -1638,6 +1638,8 @@ - name: .NET Core Debugging href: dotnet-debugging.md items: + - name: CLRCreateInstance Function + href: clrcreateinstance-function.md - name: CloseCLREnumeration Function href: closeclrenumeration-function.md - name: CloseResumeHandle Function diff --git a/docs/framework/unmanaged-api/debugging/unregisterforruntimestartup-function.md b/docs/framework/unmanaged-api/debugging/unregisterforruntimestartup-function.md index 17d90cef6dc0c..921615f70c138 100644 --- a/docs/framework/unmanaged-api/debugging/unregisterforruntimestartup-function.md +++ b/docs/framework/unmanaged-api/debugging/unregisterforruntimestartup-function.md @@ -4,6 +4,10 @@ title: "UnregisterForRuntimeStartup Function" ms.date: "03/21/2022" f1_keywords: - "UnregisterForRuntimeStartup" +api_location: + - "dbgshim.dll" + - "libdbgshim.so" + - "libdbgshim.dylib" helpviewer_keywords: - "UnregisterForRuntimeStartup function" - "debugging API [.NET Core]" @@ -45,6 +49,6 @@ This API needs to be called during the debugger's shutdown to cleanup the intern **Header:** dbgshim.h - **Library:** dbgshim.dll + **Library:** dbgshim.dll, libdbgshim.so, libdbgshim.dylib **.NET Versions:** [!INCLUDE[net_core_21](../../../../includes/net-core-21-md.md)] From 7c8fcf993f6db895f4600689ad594b94f48c9b8d Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Fri, 25 Mar 2022 11:03:20 -0700 Subject: [PATCH 010/429] Update --- .../debugging/getstartupnotificationevent-function.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function.md b/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function.md index 6d59f43731654..168ab71c13565 100644 --- a/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function.md +++ b/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function.md @@ -18,7 +18,7 @@ topic_type: --- # GetStartupNotificationEvent Function -Creates or opens an event handle that will be signaled upon by any common language runtime (CLR) that is loading in the specified target process. This API is Windows only. +Creates or opens an event handle that will be signaled upon by any common language runtime (CLR) that is loading in the specified target process. This API is Windows only. ## Syntax From 4c9ef781c120411bb9da9702092b25d6ed85e7bd Mon Sep 17 00:00:00 2001 From: John Salem Date: Mon, 4 Apr 2022 17:42:57 +0000 Subject: [PATCH 011/429] Add note about potentially erroneous gcdumps --- docs/core/diagnostics/dotnet-gcdump.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/core/diagnostics/dotnet-gcdump.md b/docs/core/diagnostics/dotnet-gcdump.md index 907d27d560d9b..2ce98f3531dd2 100644 --- a/docs/core/diagnostics/dotnet-gcdump.md +++ b/docs/core/diagnostics/dotnet-gcdump.md @@ -151,3 +151,7 @@ dotnet-gcdump report [-h|--help] [-p|--process-id ] [-t|--report-type Date: Mon, 4 Apr 2022 11:35:18 -0700 Subject: [PATCH 012/429] Update docs/core/diagnostics/dotnet-gcdump.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/diagnostics/dotnet-gcdump.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/dotnet-gcdump.md b/docs/core/diagnostics/dotnet-gcdump.md index 2ce98f3531dd2..83045f4daa506 100644 --- a/docs/core/diagnostics/dotnet-gcdump.md +++ b/docs/core/diagnostics/dotnet-gcdump.md @@ -150,7 +150,7 @@ dotnet-gcdump report [-h|--help] [-p|--process-id ] [-t|--report-type Date: Mon, 4 Apr 2022 11:35:50 -0700 Subject: [PATCH 013/429] Update docs/core/diagnostics/dotnet-gcdump.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/diagnostics/dotnet-gcdump.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/dotnet-gcdump.md b/docs/core/diagnostics/dotnet-gcdump.md index 83045f4daa506..9c3b1f937e550 100644 --- a/docs/core/diagnostics/dotnet-gcdump.md +++ b/docs/core/diagnostics/dotnet-gcdump.md @@ -152,6 +152,6 @@ dotnet-gcdump report [-h|--help] [-p|--process-id ] [-t|--report-type Date: Mon, 4 Apr 2022 11:36:19 -0700 Subject: [PATCH 014/429] Update docs/core/diagnostics/dotnet-gcdump.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/diagnostics/dotnet-gcdump.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/dotnet-gcdump.md b/docs/core/diagnostics/dotnet-gcdump.md index 9c3b1f937e550..b711778242e88 100644 --- a/docs/core/diagnostics/dotnet-gcdump.md +++ b/docs/core/diagnostics/dotnet-gcdump.md @@ -154,4 +154,4 @@ dotnet-gcdump report [-h|--help] [-p|--process-id ] [-t|--report-type Date: Tue, 12 Apr 2022 16:38:58 -0700 Subject: [PATCH 015/429] Added version info for libmsquic --- docs/core/extensions/httpclient-http3.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/core/extensions/httpclient-http3.md b/docs/core/extensions/httpclient-http3.md index 231f2738a7fa2..254e35666fe92 100644 --- a/docs/core/extensions/httpclient-http3.md +++ b/docs/core/extensions/httpclient-http3.md @@ -57,9 +57,11 @@ HTTP/3 uses QUIC as its transport protocol. The .NET implementation of HTTP/3 us On Linux, libmsquic is published via Microsoft's official Linux package repository packages.microsoft.com. To consume it, it must be added manually. See [Linux Software Repository for Microsoft Products](/windows-server/administration/linux-package-repository-for-microsoft-software). After configuring the package feed, it can be installed via the package manager of your distro, for example, for Ubuntu: ```bash -sudo apt install libmsquic +sudo apt install libmsquic=1.9* ``` +**Note:** .NET 6 is only compatible with the 1.9.x versions of libmsquic. Libmsquic 2.x is not compatible due to breaking changes. Libmsquic will receive updates to 1.9.x when needed to incorporate security fixes. + ### macOS HTTP/3 is not currently supported on macOS but may be available in a future release. From 744667bd492b0cca4bd526a546cdce1a6a3442b6 Mon Sep 17 00:00:00 2001 From: Elinor Fung Date: Mon, 18 Apr 2022 13:43:47 -0700 Subject: [PATCH 016/429] Add section to app launch failure page about .NET installation not being found (#29085) --- .../troubleshoot-app-launch.md | 44 +++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/docs/core/runtime-discovery/troubleshoot-app-launch.md b/docs/core/runtime-discovery/troubleshoot-app-launch.md index 414dcb824dd15..4741bfcf6b36b 100644 --- a/docs/core/runtime-discovery/troubleshoot-app-launch.md +++ b/docs/core/runtime-discovery/troubleshoot-app-launch.md @@ -10,6 +10,44 @@ zone_pivot_groups: operating-systems-set-one This article describes some common reasons and possible solutions for application launch failures. +## .NET installation not found + +[Framework-dependent applications](../deploying/index.md#publish-framework-dependent) rely on a .NET installation on your machine. If a .NET installation is not found, the application will fail to launch with a message similar to: + +::: zone pivot="os-windows" + +```console +You must install .NET to run this application. + +App: C:\repos\myapp\myapp.exe +Architecture: x64 +Host version: 7.0.0 +.NET location: Not found +``` + +::: zone-end + +::: zone pivot="os-linux,os-macos" + +```bash +You must install .NET to run this application. + +App: /home/user/repos/myapp/myapp +Architecture: x64 +Host version: 7.0.0 +.NET location: Not found +``` + +::: zone-end + +The error indicates the architecture and host version. In order to run the application, you must [install .NET](#install-net) matching the required architecture and version. + +### Install .NET + +The error message includes a link to download .NET. You can follow this link to get the appropriate download page. Alternately, the [.NET downloads](https://dotnet.microsoft.com/download/dotnet) page offers all available versions of .NET. Select the version matching the host version listed in the error message. + +On the download page for the required .NET version, find the **.NET Runtime** download matching the architecture listed in the error message. You can then install it by [running an installer](#run-an-installer). + ## Required framework not found [Framework-dependent applications](../deploying/index.md#publish-framework-dependent) rely on a .NET installation on your machine. If a required framework is not found or is not compatible with the required version, the application will fail to launch with a message similar to: @@ -78,9 +116,7 @@ Every version of .NET offers three different runtime downloads. The following ta To install a compatible framework, on the download page for the required .NET version, find a runtime download containing the missing framework. Once you have found the appropriate runtime download, you can then either install it using an [installer](#run-an-installer) or [script](#run-the-dotnet-install-script). You can also [download the binaries](#download-binaries) and extract them to the desired location. -#### Run an installer - -If your existing installation of .NET was installed through an installer or package manager, then the recommended option is to also install the required framework through an installer or package manager. Otherwise, you can [run the install script](#run-the-dotnet-install-script) or [download the binaries](#download-binaries). +If your existing installation of .NET was installed through an installer or package manager, then the recommended option is to also install the required framework [through an installer](#run-an-installer) or package manager. Otherwise, you can [run the install script](#run-the-dotnet-install-script) or [download the binaries](#download-binaries). In most cases, when the application that failed to launch is using such an installation, the ".NET location" in the error message points to: ::: zone pivot="os-windows" @@ -93,6 +129,8 @@ In most cases, when the application that failed to launch is using such an insta `/usr/local/share/dotnet/` ::: zone-end +#### Run an installer + ::: zone pivot="os-windows,os-macos" From the **Installers** column of the runtime download, download the installer matching the required architecture. Run the downloaded installer. ::: zone-end From fe73e40d5be0db846659329b76009a8b5fa2f438 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 18 Apr 2022 14:21:07 -0700 Subject: [PATCH 017/429] minor fixups (#29099) --- docs/core/runtime-discovery/troubleshoot-app-launch.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/core/runtime-discovery/troubleshoot-app-launch.md b/docs/core/runtime-discovery/troubleshoot-app-launch.md index 4741bfcf6b36b..90924ea29af2e 100644 --- a/docs/core/runtime-discovery/troubleshoot-app-launch.md +++ b/docs/core/runtime-discovery/troubleshoot-app-launch.md @@ -40,13 +40,13 @@ Host version: 7.0.0 ::: zone-end -The error indicates the architecture and host version. In order to run the application, you must [install .NET](#install-net) matching the required architecture and version. +The error indicates the required architecture and host version. To run the application, you must [install the corresponding version of the .NET Runtime](#install-net). ### Install .NET -The error message includes a link to download .NET. You can follow this link to get the appropriate download page. Alternately, the [.NET downloads](https://dotnet.microsoft.com/download/dotnet) page offers all available versions of .NET. Select the version matching the host version listed in the error message. +The error message includes a link to download .NET. You can follow this link to get to the appropriate download page. Alternately, the [.NET downloads](https://dotnet.microsoft.com/download/dotnet) page offers all available versions of .NET. Select the version that matches the host version listed in the error message. -On the download page for the required .NET version, find the **.NET Runtime** download matching the architecture listed in the error message. You can then install it by [running an installer](#run-an-installer). +On the download page for the required .NET version, find the **.NET Runtime** download that matches the architecture listed in the error message. You can then install it by [running an installer](#run-an-installer). ## Required framework not found From f8722fd9d0f496f02c757c40e3bb84270f4f4da6 Mon Sep 17 00:00:00 2001 From: David Mason Date: Mon, 18 Apr 2022 14:39:11 -0700 Subject: [PATCH 018/429] update perf map docs --- docs/core/runtime-config/debugging-profiling.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/core/runtime-config/debugging-profiling.md b/docs/core/runtime-config/debugging-profiling.md index 9c4a3ae7cebf4..6d47f6c94daa2 100644 --- a/docs/core/runtime-config/debugging-profiling.md +++ b/docs/core/runtime-config/debugging-profiling.md @@ -51,15 +51,17 @@ This article details the settings you can use to configure .NET debugging and pr | **Environment variable** | `CORECLR_PROFILER_PATH_32` | *string-path* | | **Environment variable** | `CORECLR_PROFILER_PATH_64` | *string-path* | -## Write perf map +## Export perf maps -- Enables or disables writing */tmp/perf-$pid.map* on Linux systems. +- Controls whether the runtime emits perf maps to */tmp/perf-$pid.map*. Perf maps allow 3rd party tools, such as perf, to identify call sites from pre-compiled R2R modules. - If you omit this setting, writing the perf map is disabled. This is equivalent to setting the value to `0`. +- Without perf maps enabled you will not see all managed callsites properly resolved. +- Enabling causes a 10-20% overhead. | | Setting name | Values | | - | - | - | | **runtimeconfig.json** | N/A | N/A | -| **Environment variable** | `COMPlus_PerfMapEnabled` or `DOTNET_PerfMapEnabled` | `0` - disabled
`1` - enabled | +| **Environment variable** | `COMPlus_PerfMapEnabled` | `0` - disabled
`1` - enabled | ## Perf log markers From bcd9fe9d9570ae92b1a76717dc2eac6415e3cac6 Mon Sep 17 00:00:00 2001 From: David Mason Date: Mon, 18 Apr 2022 14:41:34 -0700 Subject: [PATCH 019/429] add DOTNET_ back --- docs/core/runtime-config/debugging-profiling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/runtime-config/debugging-profiling.md b/docs/core/runtime-config/debugging-profiling.md index 6d47f6c94daa2..f16385a0f696e 100644 --- a/docs/core/runtime-config/debugging-profiling.md +++ b/docs/core/runtime-config/debugging-profiling.md @@ -61,7 +61,7 @@ This article details the settings you can use to configure .NET debugging and pr | | Setting name | Values | | - | - | - | | **runtimeconfig.json** | N/A | N/A | -| **Environment variable** | `COMPlus_PerfMapEnabled` | `0` - disabled
`1` - enabled | +| **Environment variable** | `COMPlus_PerfMapEnabled` or `DOTNET_PerfMapEnabled` | `0` - disabled
`1` - enabled | ## Perf log markers From 936d133612bf6f7e7099f4f548aae11c091ed9a9 Mon Sep 17 00:00:00 2001 From: David Mason Date: Mon, 18 Apr 2022 14:42:25 -0700 Subject: [PATCH 020/429] phrasing --- docs/core/runtime-config/debugging-profiling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/runtime-config/debugging-profiling.md b/docs/core/runtime-config/debugging-profiling.md index f16385a0f696e..f5292601827ca 100644 --- a/docs/core/runtime-config/debugging-profiling.md +++ b/docs/core/runtime-config/debugging-profiling.md @@ -53,7 +53,7 @@ This article details the settings you can use to configure .NET debugging and pr ## Export perf maps -- Controls whether the runtime emits perf maps to */tmp/perf-$pid.map*. Perf maps allow 3rd party tools, such as perf, to identify call sites from pre-compiled R2R modules. +- Enables or disables emitting perf maps to */tmp/perf-$pid.map*. Perf maps allow 3rd party tools, such as perf, to identify call sites from pre-compiled R2R modules. - If you omit this setting, writing the perf map is disabled. This is equivalent to setting the value to `0`. - Without perf maps enabled you will not see all managed callsites properly resolved. - Enabling causes a 10-20% overhead. From c4539ce8d7ad216a52e85d682e1ec49fc80ac6f2 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Mon, 18 Apr 2022 17:46:07 -0400 Subject: [PATCH 021/429] Publish from the draft v7 branch (#29100) The committee has finished the C# 6 standard, and submitted the draft to ECMA. It's now turning its focus to the C# 7.x release(s). The PR changes the branch from which we publish the standard, but doesn't do any further work. The content is at v6, as we haven't started accepting any V7 PRs. --- .openpublishing.publish.config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.openpublishing.publish.config.json b/.openpublishing.publish.config.json index a34c5f41c11f8..3a004cbd58731 100644 --- a/.openpublishing.publish.config.json +++ b/.openpublishing.publish.config.json @@ -55,7 +55,7 @@ { "path_to_root": "_csharpstandard", "url": "https://github.com/dotnet/csharpstandard", - "branch": "draft-v6", + "branch": "draft-v7", "include_in_build": true, "branch_mapping": {} }, From 2b437b590f3ee47856540c19cfce69818fd11f66 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Mon, 18 Apr 2022 18:03:02 -0400 Subject: [PATCH 022/429] Remove articles on `!!` (#29103) * Remove articles on `!!` This feature was removed in Preview 3. See [C# 11 preview 3 blog post](https://devblogs.microsoft.com/dotnet/csharp-11-preview-updates/#remove-parameter-null-checking-from-c-11) for details on the reasons behind the decision. * fix build warnings. * Update docs/csharp/nullable-references.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- .openpublishing.redirection.csharp.json | 4 + .../operators/null-forgiving.md | 1 - .../operators/null-parameter-check.md | 103 ------ .../snippets/shared/NullParameterCheck.cs | 334 ------------------ .../operators/snippets/shared/Program.cs | 5 - .../snippets/shared/operators.csproj | 1 - docs/csharp/nullable-references.md | 2 +- docs/csharp/toc.yml | 3 - docs/csharp/whats-new/csharp-11.md | 27 -- 9 files changed, 5 insertions(+), 475 deletions(-) delete mode 100644 docs/csharp/language-reference/operators/null-parameter-check.md delete mode 100644 docs/csharp/language-reference/operators/snippets/shared/NullParameterCheck.cs diff --git a/.openpublishing.redirection.csharp.json b/.openpublishing.redirection.csharp.json index 3cc9eaa18690b..298a406f1d4e6 100644 --- a/.openpublishing.redirection.csharp.json +++ b/.openpublishing.redirection.csharp.json @@ -851,6 +851,10 @@ "source_path_from_root": "/docs/csharp/language-reference/operators/right-shift-operator.md", "redirect_url": "/dotnet/csharp/language-reference/operators/bitwise-and-shift-operators#right-shift-operator-" }, + { + "source_path_from_root": "/docs/csharp/language-reference/operators/null-parameter-check.md", + "redirect_url": "/dotnet/csharp/language-reference/operators" + }, { "source_path_from_root": "/docs/csharp/language-reference/operators/subtraction-assignment-operator.md", "redirect_url": "/dotnet/csharp/language-reference/operators/arithmetic-operators#compound-assignment" diff --git a/docs/csharp/language-reference/operators/null-forgiving.md b/docs/csharp/language-reference/operators/null-forgiving.md index f302542da01a7..e38ee70e89e8c 100644 --- a/docs/csharp/language-reference/operators/null-forgiving.md +++ b/docs/csharp/language-reference/operators/null-forgiving.md @@ -49,4 +49,3 @@ For more information, see [The null-forgiving operator](~/_csharplang/proposals/ - [C# reference](../index.md) - [C# operators and expressions](index.md) - [Tutorial: Design with nullable reference types](../../whats-new/tutorials/nullable-reference-types.md) -- [Simplified parameter null check](null-parameter-check.md) diff --git a/docs/csharp/language-reference/operators/null-parameter-check.md b/docs/csharp/language-reference/operators/null-parameter-check.md deleted file mode 100644 index 60b32958482a4..0000000000000 --- a/docs/csharp/language-reference/operators/null-parameter-check.md +++ /dev/null @@ -1,103 +0,0 @@ ---- -title: "!! (null validation) operator - C# reference" -description: "Learn about simplified null-parameter checks. This operator instructs the compiler to add runtime checks that the argument used for a parameter isn't null." -ms.date: 03/30/2022 -f1_keywords: - - "!!_CSharpKeyword" -helpviewer_keywords: - - "null validation operator [C#]" - - "!! operator [C#]" ---- -# !! (null validation) operator (C# reference) - -The `!!` operator, introduced in C# 11, provides null validation parameter syntax. Adding `!!` to the parameter name in the declaration instructs the compiler to add a runtime check for that parameter. For example: - -:::code language="csharp" source="./snippets/shared/NullParameterCheck.cs" id="BangBangExample"::: - -generates code similar to the following example: - -:::code language="csharp" source="./snippets/shared/NullParameterCheck.cs" id="HandCodedExample"::: - -Multiple annotated parameters are checked in the order declared on the method. For example, the following code: - -:::code language="csharp" source="./snippets/shared/NullParameterCheck.cs" id="MultipleParameters"::: - -generates code similar to the following example: - -:::code language="csharp" source="./snippets/shared/NullParameterCheck.cs" id="HandCodedMultipleParms"::: - -It's intended for library authors to provide runtime checks. You should only add the `!!` operator on those parameters that require a null-check for safety. In the preceding example, the `message` parameter doesn't have a runtime null check. - -## Where `!!` can be applied - -There are a few rules that govern where you can add the `!!` operator on a parameter declaration: - -- The `!!` operator directs the compiler to add runtime behavior. It can't be applied to a declaration without an implementation. You can't add `!!` to the parameter of an abstract member, an interface method without an implementation, or a parameter on a delegate type declaration. -- The parameter type must be a type that can be compared to `null`. For example, the parameter can't be a non-nullable value type. If the parameter is a type parameter, it can't be constrained to be a non-nullable type (for example the `struct`, `notnull`, and `unmanaged` constraints are disallowed.) - -The following example demonstrates the preceding rules: - -:::code language="csharp" source="./snippets/shared/NullParameterCheck.cs" id="NoAbstractMethods"::: - -## Constructors and !! - -In almost all cases, the code the compiler generates for `!!` on an argument is consistent with the preceding example. However, the null check is inserted before any code you write in the method. There are observable differences between a hand-coded null check and adding `!!` on the parameter of a constructor. When you hand-write the null check in the body of a constructor, that null check runs after any field initializers, constructor chains, and base class constructors are called. Consider the following code: - -:::code language="csharp" source="./snippets/shared/NullParameterCheck.cs" id="HandCodedConstruction"::: - -If you call `new D1(null!)`, you'll see the following output: - -```dotnetcli -Creating identity string -In B constructor -Parameterless D constructor -``` - -The field initializer runs, the base constructor runs, and the chained constructor runs. All of them run before the check. Change the constructor to use the simplified null check operator, `!!` and none of the output will be printed: - -:::code language="csharp" source="./snippets/shared/NullParameterCheck.cs" id="SimplifiedConstructorCheck"::: - -The compiler synthesizes the null check before the synthesized code that runs the field initializers and calls the chained and base constructors. - -## iterator methods and !! - -Iterator methods behave different when the `!!` operator provides the null check. Consider the following iterator method: - -:::code language="csharp" source="./snippets/shared/NullParameterCheck.cs" id="IteratorMethod"::: - -When you call that method passing in a null argument as shows in the following example: - -:::code language="csharp" source="./snippets/shared/NullParameterCheck.cs" id="Enumerate"::: - -The message ":::no-loc text="Enumerate values":::" is displayed before the exception is thrown. That's because the null check doesn't run until the first element in the sequence is requested. Instead, if you use the `!!` operator, the exception is thrown when `CharsIn` is called, not when the first element of the sequence is requested. - -:::code language="csharp" source="./snippets/shared/NullParameterCheck.cs" id="IteratorMethodSimplified"::: - -## async methods and !! - -Async methods and async iterators also change the source of the exception. Consider the following method with a hand written null check: - -:::code language="csharp" source="./snippets/shared/NullParameterCheck.cs" id="AsyncMethod"::: - -If you call that method using `null` as the argument, the return value is a `Task` in the state. The exception will be thrown when the `Task` is awaited. If you switch to a simplified null check, the exception is thrown when `SumCharsIn` is called, not when the returned task is awaited. - -Finally, the same behavior occurs for an async enumerator method. In the following code, the null check runs when the first element is retrieved using `await foreach`: - -:::code language="csharp" source="./snippets/shared/NullParameterCheck.cs" id="AsyncIteratorMethod"::: - -If you replace the hand-written null check with a `!!`, the exception is thrown as soon as `CharsInAsync` is called, even if the sequence isn't enumerated yet. - -## Null parameter checks and nullable types - -With null state analysis, any parameter annotated with `!!` has an initial null state of *not null*. The compiler has already added a null check. The compiler generates a warning when you write a method where a parameter is nullable and you've added a null check. Consider the following example: - -```csharp -void Method(string? name!!) -{ - // ... -} -``` - -The compiler issues the warning *"Nullable type 'string?' is null-checked and will throw if null."* The signature indicates that the method should accept `null` as the argument for `name`, and yet throws when that argument is supplied. - -The `!!` operator instructs the compiler to add runtime null checks on a parameter. This complements the compile time annotations provided by nullable reference types. It can provide more resilience in your code. diff --git a/docs/csharp/language-reference/operators/snippets/shared/NullParameterCheck.cs b/docs/csharp/language-reference/operators/snippets/shared/NullParameterCheck.cs deleted file mode 100644 index 4b02221578594..0000000000000 --- a/docs/csharp/language-reference/operators/snippets/shared/NullParameterCheck.cs +++ /dev/null @@ -1,334 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.CompilerServices; -using System.Threading.Tasks; - -namespace operators; -public class SimplifiedNullParameterCheck -{ - - // - void Method(string name!!) - { - // ... - } - // - - // - void Method(string firstName!!, string lastName!!, string? nickName, string message) - { - // ... - } - // -} - -public class NullParameterCheck -{ - - // - void Method(string name) - { - if (name is null) - { - throw new ArgumentNullException(nameof(name)); - } - // ... - } - // - - // - void Method(string firstName, string lastName, string? nickName, string? message) - { - if (firstName is null) - { - throw new ArgumentNullException(nameof(firstName)); - } - if (lastName is null) - { - throw new ArgumentNullException(nameof(lastName)); - } - // ... - } - // -} - -// -public abstract class AbstractClass -{ - // Simplified null parameter check not allowed: - public abstract void Method(string name); - - // Simplified null check not allowed for "defaultName" - // It could be added on a method or lambda that matches this - // delegate type: - public delegate void SetDefaultString(string defaultName); -} - -public interface IInterfaceMethods -{ - private static string defaultName = string.Empty; - - // Simplified null parameter check not allowed: - void Method(string name); - - // !! allowed because an implementation is supplied: - public static void SetDefaultName(string name!!) - { - defaultName = name; - } -} -// - - -public class Container -{ - void M(string? name!!) { } -} - -// -public class B -{ - public B() - { - Console.WriteLine("In B constructor"); - } -} - -public class D : B -{ - private string identity = CreateNextIdentityString(); - private string data; - - public D() - { - Console.WriteLine("Parameterless D constructor"); - } - public D(string arg) : this() - { - if (arg is null) throw new ArgumentNullException(nameof(arg)); - data = arg; - } - - private static string CreateNextIdentityString() - { - Console.WriteLine("Creating identity string"); - return DateTime.Now.Ticks.ToString(); - } -} -// - -public class Simplified -{ - public class D : B - { - private string identity = CreateNextIdentityString(); - private string data; - - public D() - { - Console.WriteLine("Parameterless D constructor"); - } - - // - public D(string arg!!) : this() - { - data = arg; - } - // - - private static string CreateNextIdentityString() - { - Console.WriteLine("Creating identity string"); - return DateTime.Now.Ticks.ToString(); - } - } - - public class Characterizer - { - // - public IEnumerable CharsIn(string data!!) - { - foreach (var ch in data) - { - yield return ch; - } - } - // - - // async - - public async Task SumCharsIn(string data!!) - { - await Task.Delay(500); - int sum = data.Sum(x => x); - return sum; - } - - // async enumerable - public async IAsyncEnumerable CharsInAsync(string data!!) - { - foreach (var ch in data) - { - if (ch % 5 == 0) - await Task.Delay(500); - yield return ch; - } - } - } - -} - -public class Characterizer -{ - // - public IEnumerable CharsIn(string data) - { - if (data is null) throw new ArgumentNullException(nameof(data)); - - foreach (var ch in data) - { - yield return ch; - } - } - // - - // async - // - public async Task SumCharsIn(string data) - { - if (data is null) throw new ArgumentNullException(nameof(data)); - - await Task.Delay(500); - int sum = data.Sum(x => x); - return sum; - } - // - - // async enumerable - // - public async IAsyncEnumerable CharsInAsync(string data) - { - if (data is null) throw new ArgumentNullException(nameof(data)); - - foreach (var ch in data) - { - if (ch % 5 == 0) - await Task.Delay(500); - yield return ch; - } - } - // -} - -public static class NullChecks -{ - public static async Task Examples() - { - try - { - Console.WriteLine("Hand coded null check"); - _ = new D(null!); - } catch (ArgumentNullException) - { - Console.WriteLine(); - } - try - { - Console.WriteLine("Simplified null check"); - _ = new Simplified.D(null!); - } - catch (ArgumentNullException) - { - Console.WriteLine(); - } - - - var characters = new Characterizer(); - try - { - // - Console.WriteLine("Call iterator"); - var sequence = characters.CharsIn(null!); - Console.WriteLine("Enumerate values"); - foreach (var c in sequence) - Console.WriteLine(c); - // - } - catch (ArgumentNullException) - { - Console.WriteLine("Exception caught"); - Console.WriteLine(); - } - - try - { - Console.WriteLine("Create task"); - var sumTask = characters.SumCharsIn(null!); - Console.WriteLine("await task"); - Console.WriteLine(await sumTask); - } - catch (ArgumentNullException) - { - Console.WriteLine("Exception caught"); - Console.WriteLine(); - } - - try - { - Console.WriteLine("Call async iterator"); - var sequenceAsync = characters.CharsInAsync(null!); - Console.WriteLine("Enumerate values"); - await foreach (var c in sequenceAsync) - Console.WriteLine(c); - } - catch (ArgumentNullException) - { - Console.WriteLine("Exception caught"); - Console.WriteLine(); - } - - var characters2 = new Simplified.Characterizer(); - try - { - Console.WriteLine("Call iterator"); - var sequence = characters2.CharsIn(null!); - Console.WriteLine("Enumerate values"); - foreach (var c in sequence) - Console.WriteLine(c); - } - catch (ArgumentNullException) - { - Console.WriteLine("Exception caught"); - Console.WriteLine(); - } - - try - { - Console.WriteLine("Create task"); - var sumTask = characters2.SumCharsIn(null!); - Console.WriteLine("await task"); - Console.WriteLine(await sumTask); - } - catch (ArgumentNullException) - { - Console.WriteLine("Exception caught"); - Console.WriteLine(); - } - - try - { - Console.WriteLine("Call async iterator"); - var sequenceAsync = characters2.CharsInAsync(null!); - Console.WriteLine("Enumerate values"); - await foreach (var c in sequenceAsync) - Console.WriteLine(c); - } - catch (ArgumentNullException) - { - Console.WriteLine("Exception caught"); - Console.WriteLine(); - } - } -} diff --git a/docs/csharp/language-reference/operators/snippets/shared/Program.cs b/docs/csharp/language-reference/operators/snippets/shared/Program.cs index fc3213257f88f..8f5083273d92c 100644 --- a/docs/csharp/language-reference/operators/snippets/shared/Program.cs +++ b/docs/csharp/language-reference/operators/snippets/shared/Program.cs @@ -115,11 +115,6 @@ static async Task Main(string[] args) Console.WriteLine("============= is operator example =============="); IsOperator.Examples(); Console.WriteLine(); - - Console.WriteLine("============= is operator example =============="); - await NullChecks.Examples(); - Console.WriteLine(); - } } } diff --git a/docs/csharp/language-reference/operators/snippets/shared/operators.csproj b/docs/csharp/language-reference/operators/snippets/shared/operators.csproj index 041d7f0ca5539..b7191530f4572 100644 --- a/docs/csharp/language-reference/operators/snippets/shared/operators.csproj +++ b/docs/csharp/language-reference/operators/snippets/shared/operators.csproj @@ -3,7 +3,6 @@ Exe net6.0 - preview enable operators.Program true diff --git a/docs/csharp/nullable-references.md b/docs/csharp/nullable-references.md index 767bd0fb508f4..415e4500f205c 100644 --- a/docs/csharp/nullable-references.md +++ b/docs/csharp/nullable-references.md @@ -136,7 +136,7 @@ name!.Length; Nullable reference types and nullable value types provide a similar semantic concept: A variable can represent a value or object, or that variable may be `null`. However, nullable reference types and nullable value types are implemented differently: nullable value types are implemented using , and nullable reference types are implemented by attributes read by the compiler. For example, `string?` and `string` are both represented by the same type: . However, `int?` and `int` are represented by `System.Nullable` and , respectively. -Nullable reference types are a compile time feature. That means it's possible for callers to ignore warnings, intentionally use `null` as an argument to a method expecting a non nullable reference. Library authors should include runtime checks against null argument values. The `!!` operator, introduced in C# 11, provides [simplified parameter null checks](language-reference/operators/null-parameter-check.md) on parameters. +Nullable reference types are a compile time feature. That means it's possible for callers to ignore warnings, intentionally use `null` as an argument to a method expecting a non nullable reference. Library authors should include runtime checks against null argument values. The is the preferred option for checking a parameter against null at run time. > [!IMPORTANT] > Enabling nullable annotations can change how Entity Framework Core determines if a data member is required. You can learn more details in the article on [Entity Framework Core Fundamentals: Working with Nullable Reference Types](/ef/core/miscellaneous/nullable-reference-types). diff --git a/docs/csharp/toc.yml b/docs/csharp/toc.yml index 6433dc5a23cfc..5d310580bc73c 100644 --- a/docs/csharp/toc.yml +++ b/docs/csharp/toc.yml @@ -1163,9 +1163,6 @@ items: - name: "?? and ??= operators" href: language-reference/operators/null-coalescing-operator.md displayName: null-coalescing, assignment - - name: "!! (null parameter check) operator" - href: language-reference/operators/null-parameter-check.md - displayName: "!!, bang bang, null parameter" - name: => operator href: language-reference/operators/lambda-operator.md displayName: lambda, expression body definition diff --git a/docs/csharp/whats-new/csharp-11.md b/docs/csharp/whats-new/csharp-11.md index 2e8c4c9709d5f..8a84aee479dc3 100644 --- a/docs/csharp/whats-new/csharp-11.md +++ b/docs/csharp/whats-new/csharp-11.md @@ -15,7 +15,6 @@ The following features are available in the 6.0.200 version of the .NET SDK. The - [Generic attributes](#generic-attributes). - [static abstract members in interfaces](#static-abstract-members-in-interfaces). - [Newlines in string interpolation expressions](#newlines-in-string-interpolations). -- [Simplified parameter null checks](#simplified-parameter-null-checks). - [Improved method group conversion to delegate](#improved-method-group-conversion-to-delegate) - [Raw string literals](#raw-string-literals). @@ -96,32 +95,6 @@ The text inside the `{` and `}` characters for a string interpolation can now sp You can learn more about the newlines feature in the [string interpolations](../language-reference/tokens/interpolated.md) article in the language reference. -## Simplified parameter null checks - -The `!!` operator provides null validation parameter syntax. Adding `!!` to a parameter declaration instructs the compiler to add a runtime check for that parameter. For example: - -``` csharp -void Method(string name!!) -{ - // ... -} -``` - -generates code similar to the following example: - -``` csharp -void Method(string name) -{ - if (name is null) - { - throw new ArgumentNullException(nameof(name)); - } - // ... -} -``` - -This feature provides a concise syntax for runtime null parameter checking. It's intended for library authors to provide runtime checks even when APIs have been annotated for nullable reference types. These checks can simplify the necessary validation. You can learn more in the language reference article on [null parameter checks](../language-reference/operators/null-parameter-check.md). - ## Improved method group conversion to delegate The C# standard on [Method group conversions](~/_csharpstandard/standard/conversions.md#108-method-group-conversions) now includes the following item: From fbc2ed70ab11f6c77fbe114b7cd85943f50513e8 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 18 Apr 2022 16:42:00 -0700 Subject: [PATCH 023/429] Add multilevel lookup breaking change (#28965) --- docs/core/compatibility/7.0.md | 6 +++ .../deployment/7.0/multilevel-lookup.md | 52 +++++++++++++++++++ docs/core/compatibility/toc.yml | 10 ++++ .../tools/dotnet-environment-variables.md | 5 +- 4 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 docs/core/compatibility/deployment/7.0/multilevel-lookup.md diff --git a/docs/core/compatibility/7.0.md b/docs/core/compatibility/7.0.md index ba718abb29915..90713ef94ba11 100644 --- a/docs/core/compatibility/7.0.md +++ b/docs/core/compatibility/7.0.md @@ -34,6 +34,12 @@ If you're migrating an app to .NET 7, the breaking changes listed here might aff | [SerializationFormat.Binary is obsolete](core-libraries/7.0/serializationformat-binary.md) | ❌ | ❌ | Preview 2 | | [Validate CompressionLevel for BrotliStream](core-libraries/7.0/compressionlevel-validation.md) | ❌ | ✔️ | Preview 1 | +## Deployment + +| Title | Binary compatible | Source compatible | Introduced | +| - | :-: | :-: | - | +| [Multi-level lookup is disabled](deployment/7.0/multilevel-lookup.md) | ❌ | ✔️ | Preview 4 | + ## Networking | Title | Binary compatible | Source compatible | Introduced | diff --git a/docs/core/compatibility/deployment/7.0/multilevel-lookup.md b/docs/core/compatibility/deployment/7.0/multilevel-lookup.md new file mode 100644 index 0000000000000..172eccc5e1f5d --- /dev/null +++ b/docs/core/compatibility/deployment/7.0/multilevel-lookup.md @@ -0,0 +1,52 @@ +--- +title: "Breaking change: Multi-level lookup is disabled" +description: Learn about the .NET 7 breaking change in deployment where multi-level lookup is disabled. +ms.date: 04/08/2022 +--- +# Multi-level lookup is disabled + +On Windows, framework-dependent .NET applications no longer search for frameworks in multiple install locations. + +## Previous behavior + +In previous versions, a framework-dependent .NET application searched for frameworks in multiple install locations on Windows. The locations were: + +- When running the application through [dotnet](../../../tools/dotnet.md), subdirectories relative to the `dotnet` executable. +- When running the application through its executable (`apphost`), the location specified by the value of the `DOTNET_ROOT` environment variable (if set). +- The globally registered install location in **HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\\InstallLocation** (if set). +- The default install location of *%ProgramFiles%\dotnet* (or *%ProgramFiles(x86)%\dotnet* for 32-bit processes on 64-bit Windows). + +This multi-level lookup behavior was enabled by default but could be disabled by setting the environment variable `DOTNET_MULTILEVEL_LOOKUP=0`. + +## New behavior + +Applications that target .NET 7 or a later version only look for frameworks in one location, which is the first location where a .NET installation is found. When running an application through [dotnet](../../../tools/dotnet.md), frameworks are only searched for in subdirectories relative to the `dotnet` executable. When running an application through its executable (`apphost`), frameworks are only searched for in the first of the following locations where .NET is found: + +- The location specified by the value of the `DOTNET_ROOT` environment variable (if set). +- The globally registered install location in **HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\\InstallLocation** (if set). +- The default install location of *%ProgramFiles%\dotnet* (or *%ProgramFiles(x86)%\dotnet* for 32-bit processes on 64-bit Windows). + +## Version introduced + +.NET 7 Preview 4 + +## Type of breaking change + +This change can affect [binary compatibility](../../categories.md#binary-compatibility). + +## Reason for change + +There've been numerous issues caused by multi-level lookup: + +- Confusion for users: application can pick a global or default install location despite running .NET from a private install. +- Inconsistency between platforms (Windows versus non-Windows). +- Behavior breaks, often in automated systems: a new global .NET install can affect otherwise isolated builds and tests. +- Performance issues. + +## Recommended action + +Make sure the required version of .NET is installed at the single .NET install location. The error messages that are emitted on failure to launch include the expected location. + +## Affected APIs + +None. diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml index b7d670c842980..62f491ec757d8 100644 --- a/docs/core/compatibility/toc.yml +++ b/docs/core/compatibility/toc.yml @@ -51,6 +51,10 @@ items: href: core-libraries/7.0/serializationformat-binary.md - name: Validate CompressionLevel for BrotliStream href: core-libraries/7.0/compressionlevel-validation.md + - name: Deployment + items: + - name: Multi-level lookup is disabled + href: deployment/7.0/multilevel-lookup.md - name: Networking items: - name: AllowRenegotiation default is false @@ -849,6 +853,12 @@ items: href: cryptography/5.0/tripledes-default-feedback-size-change.md - name: .NET Core 2.1-3.0 href: cryptography.md + - name: Deployment + items: + - name: .NET 7 + items: + - name: Multi-level lookup is disabled + href: deployment/7.0/multilevel-lookup.md - name: Entity Framework Core items: - name: EF Core 6 diff --git a/docs/core/tools/dotnet-environment-variables.md b/docs/core/tools/dotnet-environment-variables.md index e35f7b9268c9f..7f2e1d2f84acf 100644 --- a/docs/core/tools/dotnet-environment-variables.md +++ b/docs/core/tools/dotnet-environment-variables.md @@ -214,7 +214,10 @@ If `DOTNET_SKIP_FIRST_TIME_EXPERIENCE` is set to `true`, the `NuGetFallbackFolde ### `DOTNET_MULTILEVEL_LOOKUP` -Specifies whether .NET runtime, shared framework, or SDK are resolved from the global location. If not set, it defaults to 1 (logical `true`). Set to 0 (logical `false`) to not resolve from the global location and have isolated .NET installations. For more information about multi-level lookup, see [Multi-level SharedFX Lookup](https://github.com/dotnet/core-setup/blob/master/Documentation/design-docs/multilevel-sharedfx-lookup.md). +Specifies whether the .NET runtime, shared framework, or SDK are resolved from the global location. If not set, it defaults to 1 (logical `true`). Set the value to 0 (logical `false`) to not resolve from the global location and have isolated .NET installations. For more information about multi-level lookup, see [Multi-level SharedFX Lookup](https://github.com/dotnet/core-setup/blob/master/Documentation/design-docs/multilevel-sharedfx-lookup.md). + +> [!NOTE] +> This environment variable only applies to applications that target .NET 6 and earlier versions. Starting in .NET 7, .NET only looks for frameworks in one location. For more information, see [Multi-level lookup is disabled](../compatibility/deployment/7.0/multilevel-lookup.md). ### `DOTNET_ROLL_FORWARD` From b0264deb7c117a6bb8cdb9b0db42dd2e47508135 Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Mon, 18 Apr 2022 17:21:35 -0700 Subject: [PATCH 024/429] Review feedback --- .../createdebugginginterfacefromversion2-function.md | 2 +- .../createdebugginginterfacefromversion3-function.md | 2 +- docs/framework/unmanaged-api/debugging/dotnet-debugging.md | 2 +- .../debugging/iclrdebugginglibraryprovider3-interface.md | 4 ++-- ...iclrdebugginglibraryprovider3-provideunixlibrary-method.md | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md index c746e77f0705f..02797467fed21 100644 --- a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md +++ b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md @@ -38,7 +38,7 @@ HRESULT CreateDebuggingInterfaceFromVersion2 ( [in] Version string of the CLR in the target debuggee, which is returned by the [CreateVersionStringFromModule](createversionstringfrommodule-function.md) function. `szApplicationGroupId`\ - [in] A string representing the application group ID of a sandboxed process running in Mac. Pass NULL if the process is not running in a sandbox and other platforms. + [in] A string representing the application group ID of a sandboxed process running in macOS. Pass NULL if the process is not running in a sandbox on macOS or on other platforms. `ppCordb`\ [out] Pointer to a pointer to a COM object (`IUnknown`). This object will be cast to an [ICorDebug](icordebug-interface.md) object before it is returned. diff --git a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md index 449a8cfb8e969..b27dd7a816f22 100644 --- a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md +++ b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md @@ -39,7 +39,7 @@ HRESULT CreateDebuggingInterfaceFromVersion3 ( [in] Version string of the CLR in the target debuggee, which is returned by the [CreateVersionStringFromModule](createversionstringfrommodule-function.md) function. `szApplicationGroupId`\ - [in] A string representing the application group ID of a sandboxed process running in Mac. Pass NULL if the process is not running in a sandbox and other platforms. + [in] A string representing the application group ID of a sandboxed process running in macOS. Pass NULL if the process is not running in a sandbox on macOS or on other platforms. `pLibraryProvider`\ [in] A callback interface instance for locating DBI and DAC. See [ICLRDebuggingLibraryProvider3](iclrdebugginglibraryprovider3-interface.md) interface. diff --git a/docs/framework/unmanaged-api/debugging/dotnet-debugging.md b/docs/framework/unmanaged-api/debugging/dotnet-debugging.md index ae3f42ede8c55..17be5b7777ce5 100644 --- a/docs/framework/unmanaged-api/debugging/dotnet-debugging.md +++ b/docs/framework/unmanaged-api/debugging/dotnet-debugging.md @@ -9,7 +9,7 @@ ms.assetid: 5e903e04-17d0-4014-ac9a-a43330ec8b1c --- # .NET Core Debugging -The topics in this section describe the environment and interfaces that the common language runtime (CLR) provides to support debugging .NET applications that are running on the Windows, Linux or MacOS operating systems. +The topics in this section describe the environment and interfaces that the common language runtime (CLR) provides to support debugging .NET applications that are running on the Windows, Linux or macOS operating systems. ## In This Section diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md index 4218bebf27f5a..0c45cfae3bde0 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md @@ -26,8 +26,8 @@ Includes callback methods that allow common language runtime version-specific de |Method|Description| |------------|-----------------| -|[ProvideWindowsLibrary](iclrdebugginglibraryprovider3-providewindowslibrary-method.md)|Allows the debugger to provide a path to a version-specific Windows debugging library.| -|[ProvideUnixLibrary](iclrdebugginglibraryprovider3-provideunixlibrary-method.md)|Allows the debugger to provide a path to a version-specific Linux or MacOS debugging library.| +|[ProvideWindowsLibrary](iclrdebugginglibraryprovider3-providewindowslibrary-method.md)|Allows the debugger to provide a path to a version-specific Windows debugging library.| +|[ProvideUnixLibrary](iclrdebugginglibraryprovider3-provideunixlibrary-method.md)|Allows the debugger to provide a path to a version-specific Linux or macOS debugging library.| ## Requirements diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md index 1de0102e9e847..b18e61e1a0bd6 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md @@ -21,7 +21,7 @@ topic_type: --- # ICLRDebuggingLibraryProvider3::ProvideUnixLibrary Method -Allows the debugger to provide a path to a version-specific common language runtime (CLR) debugging library on MacOS and Linux. +Allows the debugger to provide a path to a version-specific common language runtime (CLR) debugging library on macOS and Linux. ## Syntax @@ -47,7 +47,7 @@ HRESULT ProvideUnixLibrary ( [in] The type of index information (pBuildId) provided. See [LIBRARY_PROVIDER_INDEX_TYPE](libraryproviderindextype-enumeration.md) enum. `pbBuildId` \ -[in] The Linux or MacOS module build id. Can be null if something went wrong retrieving the build id. +[in] The Linux or macOS module build id. Can be null if something went wrong retrieving the build id. `iBuildIdSize` \ [in] The number of bytes in the pbBuildId array. Can be 0 if something went wrong retrieving the build id. From 58531791cc83081ef9a624d903e2253cc65f3173 Mon Sep 17 00:00:00 2001 From: GitHubPang <61439577+GitHubPang@users.noreply.github.com> Date: Tue, 19 Apr 2022 09:03:40 +0800 Subject: [PATCH 025/429] Fix typos in F# docs (#29105) --- docs/fsharp/language-reference/task-expressions.md | 2 +- docs/fsharp/language-reference/type-extensions.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/fsharp/language-reference/task-expressions.md b/docs/fsharp/language-reference/task-expressions.md index 973b8185fe71e..bff6cb52068fa 100644 --- a/docs/fsharp/language-reference/task-expressions.md +++ b/docs/fsharp/language-reference/task-expressions.md @@ -24,7 +24,7 @@ In a task expression, some expressions and operations are synchronous, and some The following code shows the difference between `let` and `let!`. The line of code that uses `let` just creates a task as an object that you can await later by using, for example, `task.Wait()` or `task.Result`. The line of code that uses `let!` starts the task and awaits its result. ```fsharp -// let just stores the result as an task. +// let just stores the result as a task. let (result1 : Task) = stream.ReadAsync(buffer, offset, count, cancellationToken) // let! completes the asynchronous operation and returns the data. let! (result2 : int) = stream.ReadAsync(buffer, offset, count, cancellationToken) diff --git a/docs/fsharp/language-reference/type-extensions.md b/docs/fsharp/language-reference/type-extensions.md index f475e1ea9f4b7..8e1df6915ea1f 100644 --- a/docs/fsharp/language-reference/type-extensions.md +++ b/docs/fsharp/language-reference/type-extensions.md @@ -1,6 +1,6 @@ --- title: Type Extensions -description: Learn how F# type extensions allow you add new members to a previously defined object type. +description: Learn how F# type extensions allow you to add new members to a previously defined object type. ms.date: 02/05/2020 --- # Type extensions From a1982b31880a6f8e0ae4e6f9a3ab80783ad5509a Mon Sep 17 00:00:00 2001 From: pbachmann Date: Tue, 19 Apr 2022 23:35:55 +1000 Subject: [PATCH 026/429] Allow demo code to compile (#29091) Function to should return Error not Exception. --- docs/fsharp/language-reference/computation-expressions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fsharp/language-reference/computation-expressions.md b/docs/fsharp/language-reference/computation-expressions.md index c32715130c6ff..f7d4d9f5f36ff 100644 --- a/docs/fsharp/language-reference/computation-expressions.md +++ b/docs/fsharp/language-reference/computation-expressions.md @@ -309,7 +309,7 @@ module Eventually = | Done value -> result (Ok value) | NotYetDone work -> NotYetDone (fun () -> - let res = try Ok(work()) with | exn -> Exception exn + let res = try Ok(work()) with | exn -> Error exn match res with | Ok cont -> catch cont // note, a tailcall | Error exn -> result (Error exn)) From f66f6b0a8123c3ea28ba9da32cfb7e1052912cc5 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Tue, 19 Apr 2022 08:06:23 -0700 Subject: [PATCH 027/429] Fix code order (#29104) --- ...e-application-in-the-component-designer.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/framework/windows-services/walkthrough-creating-a-windows-service-application-in-the-component-designer.md b/docs/framework/windows-services/walkthrough-creating-a-windows-service-application-in-the-component-designer.md index a4622920094df..41761a3fd7f04 100644 --- a/docs/framework/windows-services/walkthrough-creating-a-windows-service-application-in-the-component-designer.md +++ b/docs/framework/windows-services/walkthrough-creating-a-windows-service-application-in-the-component-designer.md @@ -101,7 +101,17 @@ To set up a simple polling mechanism, use the namespace: + + ```csharp + using System.Timers; + ``` + + ```vb + Imports System.Timers + ``` + +2. Add the following code in the `MyNewService.OnStart` event to set up the polling mechanism: ```csharp // Set up a timer that triggers every minute. @@ -119,17 +129,17 @@ To set up a simple polling mechanism, use the namespace: +3. In the `MyNewService` class, add a member variable. It contains the identifier of the next event to write into the event log: ```csharp - using System.Timers; + private int eventId = 1; ``` ```vb - Imports System.Timers + Private eventId As Integer = 1 ``` -3. In the `MyNewService` class, add the `OnTimer` method to handle the event: +4. In the `MyNewService` class, add the `OnTimer` method to handle the event: ```csharp public void OnTimer(object sender, ElapsedEventArgs args) @@ -147,16 +157,6 @@ To set up a simple polling mechanism, use the . ### Define what occurs when the service is stopped From 3502e1ea09236f76e755561b452f8199d75f09e2 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Tue, 19 Apr 2022 08:06:56 -0700 Subject: [PATCH 028/429] add version note to ftp articles (#29061) --- docs/framework/network-programming/ftp.md | 7 ++++--- .../network-programming/how-to-download-files-with-ftp.md | 3 +++ .../how-to-list-directory-contents-with-ftp.md | 3 +++ .../network-programming/how-to-upload-files-with-ftp.md | 3 +++ 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/framework/network-programming/ftp.md b/docs/framework/network-programming/ftp.md index fe69ffa20f389..32eaf7604a767 100644 --- a/docs/framework/network-programming/ftp.md +++ b/docs/framework/network-programming/ftp.md @@ -1,6 +1,7 @@ --- -title: "FTP - .NET" -description: Learn about the comprehensive support for the FTP protocol that the .NET Framework provides by using the FtpWebRequest and FtpWebResponse classes. +title: "FTP - .NET Framework" +titleSuffix: "" +description: Learn about the comprehensive support for the FTP protocol that .NET Framework provides with the FtpWebRequest and FtpWebResponse classes. ms.date: "03/30/2017" helpviewer_keywords: - "FTP" @@ -8,7 +9,7 @@ ms.assetid: 9b43f8b4-89d7-46a7-89fc-71aca916dd32 --- # FTP -The .NET Framework provides comprehensive support for the FTP protocol with the and classes. These classes are derived from and . In most cases, the and classes provide all that is necessary to make the request, but if you need access to the FTP-specific features exposed as properties, you can typecast these classes to or . +.NET Framework provides comprehensive support for the FTP protocol with the and classes. These classes are derived from and . In most cases, the and classes provide all that's necessary to make the request, but if you need access to the FTP-specific features exposed as properties, you can typecast these classes to or . > [!NOTE] > This article is specific to projects that target .NET Framework. For projects that target .NET 6 and later versions, [FTP is no longer supported](../../core/compatibility/networking/6.0/webrequest-deprecated.md). diff --git a/docs/framework/network-programming/how-to-download-files-with-ftp.md b/docs/framework/network-programming/how-to-download-files-with-ftp.md index fe4cd8d467db2..2592ed74e3004 100644 --- a/docs/framework/network-programming/how-to-download-files-with-ftp.md +++ b/docs/framework/network-programming/how-to-download-files-with-ftp.md @@ -11,6 +11,9 @@ ms.assetid: 892548b8-954a-4f6a-9bca-2ae620c3700f This sample shows how to download a file from an FTP server. +> [!NOTE] +> This article is specific to projects that target .NET Framework. For projects that target .NET 6 and later versions, [FTP is no longer supported](../../core/compatibility/networking/6.0/webrequest-deprecated.md). + ## Example ```csharp diff --git a/docs/framework/network-programming/how-to-list-directory-contents-with-ftp.md b/docs/framework/network-programming/how-to-list-directory-contents-with-ftp.md index 7cf7cb5e51498..6d81817724f98 100644 --- a/docs/framework/network-programming/how-to-list-directory-contents-with-ftp.md +++ b/docs/framework/network-programming/how-to-list-directory-contents-with-ftp.md @@ -11,6 +11,9 @@ ms.assetid: 130c64c9-7b7f-4672-9b3b-d946bd2616c5 This sample shows how to list the directory contents of an FTP server. +> [!NOTE] +> This article is specific to projects that target .NET Framework. For projects that target .NET 6 and later versions, [FTP is no longer supported](../../core/compatibility/networking/6.0/webrequest-deprecated.md). + ## Example ```csharp diff --git a/docs/framework/network-programming/how-to-upload-files-with-ftp.md b/docs/framework/network-programming/how-to-upload-files-with-ftp.md index 17505105a36bf..59e559b4d38d4 100644 --- a/docs/framework/network-programming/how-to-upload-files-with-ftp.md +++ b/docs/framework/network-programming/how-to-upload-files-with-ftp.md @@ -11,6 +11,9 @@ ms.assetid: e40f17c5-dd12-4c62-9dbf-00ab491382dc This sample shows how to upload a file to an FTP server. +> [!NOTE] +> This article is specific to projects that target .NET Framework. For projects that target .NET 6 and later versions, [FTP is no longer supported](../../core/compatibility/networking/6.0/webrequest-deprecated.md). + ## Example ```csharp From f5ebad0de99469e19b476e56e260dc744b2e7361 Mon Sep 17 00:00:00 2001 From: David Pine Date: Tue, 19 Apr 2022 12:41:48 -0500 Subject: [PATCH 029/429] Update httpclient-http3.md (#29110) --- docs/core/extensions/httpclient-http3.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/core/extensions/httpclient-http3.md b/docs/core/extensions/httpclient-http3.md index 254e35666fe92..5b724b63cb46d 100644 --- a/docs/core/extensions/httpclient-http3.md +++ b/docs/core/extensions/httpclient-http3.md @@ -3,7 +3,7 @@ title: Use HTTP/3 with HttpClient description: Learn how to use the HttpClient to access HTTP/3 servers in .NET 6 author: IEvangelist ms.author: samsp -ms.date: 11/12/2021 +ms.date: 04/19/2022 --- # Use HTTP/3 with HttpClient @@ -60,7 +60,8 @@ On Linux, libmsquic is published via Microsoft's official Linux package reposito sudo apt install libmsquic=1.9* ``` -**Note:** .NET 6 is only compatible with the 1.9.x versions of libmsquic. Libmsquic 2.x is not compatible due to breaking changes. Libmsquic will receive updates to 1.9.x when needed to incorporate security fixes. +> [!NOTE] +> .NET 6 is only compatible with the 1.9.x versions of libmsquic. Libmsquic 2.x is not compatible due to breaking changes. Libmsquic will receive updates to 1.9.x when needed to incorporate security fixes. ### macOS From cad8e9516cc1349ef4e6362fc9282bae47753bb1 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Tue, 19 Apr 2022 14:19:07 -0700 Subject: [PATCH 030/429] Add orphans to TOC (#29113) --- docs/core/diagnostics/diagnostic-port.md | 20 ++++++++++++------- docs/framework/interop/toc.yml | 10 +++++----- docs/fundamentals/toc.yml | 12 +++++++---- .../standard/native-interop/best-practices.md | 2 +- .../customize-parameter-marshalling.md | 8 ++++---- .../customize-struct-marshalling.md | 6 +++--- .../native-interop/disabled-marshalling.md | 4 ++-- .../native-interop/type-marshalling.md | 2 +- 8 files changed, 37 insertions(+), 27 deletions(-) diff --git a/docs/core/diagnostics/diagnostic-port.md b/docs/core/diagnostics/diagnostic-port.md index a4aad45abb2d5..3c4558f832dc5 100644 --- a/docs/core/diagnostics/diagnostic-port.md +++ b/docs/core/diagnostics/diagnostic-port.md @@ -5,19 +5,25 @@ ms.date: 4/11/2022 ms.topic: overview --- -# Diagnostic Port +# Diagnostic port **This article applies to: ✔️** .NET Core 3.1 and later versions -The .NET Core runtime exposes a service endpoint that allows other processes to send diagnostic commands and receive responses over an [IPC channel](https://en.wikipedia.org/wiki/Inter-process_communication). This endpoint is called a diagnostic port. Some of the commands that can be sent to the diagnostic port are capturing a memory dump, starting an [EventPipe](./eventpipe.md) trace, or requesting the command-line used to launch the app. The diagnostic port supports different transports depending on platform. Currently both the CoreCLR and Mono runtime implementations use Named Pipes on Windows and Unix Domain Sockets on Linux and macOS. The Mono runtime implementation on Android, iOS, and tvOS uses TCP/IP. The channel uses a [custom binary protocol](https://github.com/dotnet/diagnostics/blob/main/documentation/design-docs/ipc-protocol.md). Most developers will never directly interact with the underlying channel and protocol, but rather will use GUI or CLI tools that communicate on their behalf. For example the [dotnet-dump](./dotnet-dump.md) and [dotnet-trace](./dotnet-trace.md) tools abstract sending protocol commands to capture dumps and start traces. For developers that want to write custom tooling the [Microsoft.Diagnsotics.NETCore.Client NuGet package](./diagnostics-client-library.md) provides a .NET API abstraction of the underlying transport and protocol. +The .NET Core runtime exposes a service endpoint that allows other processes to send diagnostic commands and receive responses over an [IPC channel](https://en.wikipedia.org/wiki/Inter-process_communication). This endpoint is called a *diagnostic port*. Commands can be sent to the diagnostic port to: -## Security Considerations +- Capture a memory dump. +- Start an [EventPipe](./eventpipe.md) trace. +- Request the command-line used to launch the app. + +The diagnostic port supports different transports depending on platform. Currently both the CoreCLR and Mono runtime implementations use Named Pipes on Windows and Unix Domain Sockets on Linux and macOS. The Mono runtime implementation on Android, iOS, and tvOS uses TCP/IP. The channel uses a [custom binary protocol](https://github.com/dotnet/diagnostics/blob/main/documentation/design-docs/ipc-protocol.md). Most developers will never directly interact with the underlying channel and protocol, but rather will use GUI or CLI tools that communicate on their behalf. For example, the [dotnet-dump](./dotnet-dump.md) and [dotnet-trace](./dotnet-trace.md) tools abstract sending protocol commands to capture dumps and start traces. For developers that want to write custom tooling, the [Microsoft.Diagnsotics.NETCore.Client NuGet package](./diagnostics-client-library.md) provides a .NET API abstraction of the underlying transport and protocol. + +## Security considerations The diagnostic port exposes sensitive information about a running application. If an untrusted user gains access to this channel they could observe detailed program state, including any secrets that are in memory, and arbitrarily modify the execution of the program. On the CoreCLR runtime, the default diagnostic port is configured to only be accessible by the same user account that launched the app or by an account with super-user permissions. If your security model does not trust other processes with the same user account credentials, all diagnostic ports can be disabled by setting environment variable `DOTNET_EnableDiagnostics=0`. Doing this will block your ability to use external tooling such as .NET debugging or any of the dotnet-* diagnostic tools. [!INCLUDE [complus-prefix](../../../includes/complus-prefix.md)] -## Default Diagnostic Port +## Default diagnostic port On Windows, Linux, and macOS, the runtime has one diagnostic port open by default at a well-known endpoint. This is the port that the dotnet-* diagnostic tools are connecting to automatically when they haven't been explicitly configured to use an alternate port. The endpoint is: @@ -26,11 +32,11 @@ On Windows, Linux, and macOS, the runtime has one diagnostic port open by defaul `{pid}` is the process id written in decimal, `{temp}` is the `TMPDIR` environment variable or the value `/tmp` if `TMPDIR` is undefined/empty, and `{disambiguation_key}` is the process start time written in decimal. On macOS and NetBSD, the process start time is number of seconds since UNIX epoch time and on all other platforms it is jiffies since boot time. -## Suspending the runtime at startup +## Suspend the runtime at startup By default the runtime executes managed code as soon as it starts, regardless whether any diagnostic tools have connected to the diagnostic port. Sometime it is useful to have the runtime wait to run managed code until after a diagnostic tool is connected, to observe the initial program behavior. Setting environment variable `DOTNET_DefaultDiagnosticPortSuspend=1` causes the runtime to wait until a tool connects to the default port. If no tool is attached after several seconds, the runtime prints a warning message to the console explaining that it is still waiting for a tool to attach. -## Configuring additional diagnostic ports +## Configure additional diagnostic ports > [!IMPORTANT] > This works for apps running .NET 5 or later only. @@ -56,6 +62,6 @@ The complete syntax for a port is `address[,(listen|connect)][,(suspend|nosuspen Tools such as [dotnet-dump](./dotnet-dump.md), [dotnet-counters](./dotnet-counters.md), or [dotnet-trace](./dotnet-trace.md) all support `collect` or `monitor` verbs which communicate to a .NET app via the diagnostic port. When these tools are using the `--processId` argument the tool automatically computes the default diagnostic port address and connects to it. When specifying the `--diagnostic-port` argument, the tool listens at the given address and you should use the `DOTNET_DiagnosticPorts` environment variable to configure your app to connect. For a complete example with dotnet-counters, see [Using the Diagnostic Port](./dotnet-counters.md#using-diagnostic-port). -## Using ds-router to proxy the diagnostic port +## Use ds-router to proxy the diagnostic port All of the dotnet-* diagnostic tools expect to connect to a diagnostic port that is a local Named Pipe or Unix Domain Socket. Mono often runs on isolated hardware or in emulators that need a proxy over TCP to become accessible. The [dotnet-dsrouter tool](./dotnet-dsrouter.md) can proxy a local Named Pipe or Unix Domain Socket to TCP so that the tools can be used in those environments. For more information, see [dotnet-dsrouter](./dotnet-dsrouter.md). diff --git a/docs/framework/interop/toc.yml b/docs/framework/interop/toc.yml index c20ab6d00319a..24fd7b45aa8ab 100644 --- a/docs/framework/interop/toc.yml +++ b/docs/framework/interop/toc.yml @@ -53,21 +53,21 @@ - name: "How to: Implement Callback Functions" href: how-to-implement-callback-functions.md - name: Interop Marshaling - href: /dotnet/framework/interop/interop-marshalling + href: interop-marshalling.md items: - name: Default Marshalling Behavior - href: /dotnet/framework/interop/default-marshalling-behavior + href: default-marshalling-behavior.md items: - name: Blittable and Non-Blittable Types href: blittable-and-non-blittable-types.md - name: Copying and Pinning href: copying-and-pinning.md - name: Default Marshalling for Arrays - href: /dotnet/framework/interop/default-marshalling-for-arrays + href: default-marshalling-for-arrays.md - name: Default Marshalling for Objects - href: /dotnet/framework/interop/default-marshalling-for-objects + href: default-marshalling-for-objects.md - name: Default Marshalling for Strings - href: /dotnet/framework/interop/default-marshalling-for-strings + href: default-marshalling-for-strings.md - name: Marshalling Data with Platform Invoke href: marshalling-data-with-platform-invoke.md items: diff --git a/docs/fundamentals/toc.yml b/docs/fundamentals/toc.yml index df2154f1ab3df..270ef2894ff3d 100644 --- a/docs/fundamentals/toc.yml +++ b/docs/fundamentals/toc.yml @@ -621,6 +621,8 @@ items: href: ../core/diagnostics/index.md - name: Managed debuggers href: ../core/diagnostics/managed-debuggers.md + - name: Diagnostic port + href: ../core/diagnostics/diagnostic-port.md - name: Dumps items: - name: Overview @@ -2820,17 +2822,19 @@ items: - name: P/Invoke href: ../standard/native-interop/pinvoke.md - name: Type marshalling - href: /dotnet/standard/native-interop/type-marshalling + href: ../standard/native-interop/type-marshalling.md - name: Customize structure marshalling - href: /dotnet/standard/native-interop/customize-struct-marshalling + href: ../standard/native-interop/customize-struct-marshalling.md - name: Customize parameter marshalling - href: /dotnet/standard/native-interop/customize-parameter-marshalling - - name: Cross platform P/Invoke + href: ../standard/native-interop/customize-parameter-marshalling.md + - name: Cross-platform P/Invoke href: ../standard/native-interop/cross-platform.md - name: Interop guidance href: ../standard/native-interop/best-practices.md - name: Charsets and marshalling href: ../standard/native-interop/charset.md + - name: Disabled marshalling + href: ../standard/native-interop/disabled-marshalling.md - name: Expose .NET components to COM href: ../core/native-interop/expose-components-to-com.md - name: Host .NET from native code diff --git a/docs/standard/native-interop/best-practices.md b/docs/standard/native-interop/best-practices.md index 297d0c71556e0..2122751ed2916 100644 --- a/docs/standard/native-interop/best-practices.md +++ b/docs/standard/native-interop/best-practices.md @@ -130,7 +130,7 @@ You can see if a type is blittable or contains blittable contents by attempting ### Blittable types when runtime marshalling is disabled -When [runtime marshalling is disabled](disabled-marshalling.md), the rules for which types are blittable are significantly simpler. All types that are [C# `unmanaged`](../../csharp/language-reference/builtin-types/unmanaged-types.md) types and do not have any fields that are marked with `[StructLayout(LayoutKind.Auto)]` are blittable. All types that are not C# `unmanaged` types are not blittable. The concept of types with blittable contents, such as arrays or strings, does not apply when runtime marshalling is disabled. Any type that is not considered blittable by the aforementioned rule is unsupported when runtime marshalling is disabled. +When [runtime marshalling is disabled](disabled-marshalling.md), the rules for which types are blittable are significantly simpler. All types that are [C# `unmanaged`](../../csharp/language-reference/builtin-types/unmanaged-types.md) types and don't have any fields that are marked with `[StructLayout(LayoutKind.Auto)]` are blittable. All types that are not C# `unmanaged` types are not blittable. The concept of types with blittable contents, such as arrays or strings, does not apply when runtime marshalling is disabled. Any type that is not considered blittable by the aforementioned rule is unsupported when runtime marshalling is disabled. These rules differ from the built-in system primarily in situations where `bool` and `char` are used. When marshalling is disabled, `bool` is passed as a 1-byte value and not normalized and `char` is always passed as a 2-byte value. When runtime marshalling is enabled, `bool` can map to a 1, 2, or 4-byte value and is always normalized, and `char` maps to either a 1 or 2-byte value depending on the [`CharSet`](charset.md). diff --git a/docs/standard/native-interop/customize-parameter-marshalling.md b/docs/standard/native-interop/customize-parameter-marshalling.md index 6ec029da37d6f..aa27992d87d16 100644 --- a/docs/standard/native-interop/customize-parameter-marshalling.md +++ b/docs/standard/native-interop/customize-parameter-marshalling.md @@ -5,7 +5,7 @@ ms.date: 01/18/2019 ms.topic: how-to --- -# Customizing parameter marshalling +# Customize parameter marshalling When the .NET runtime's default parameter marshalling behavior doesn't do what you want, use can use the attribute to customize how your parameters are marshalled. These customization features do not apply when [runtime marshalling is disabled](disabled-marshalling.md). @@ -13,7 +13,7 @@ When the .NET runtime's default parameter marshalling behavior doesn't do what y .NET has a variety of formats for marshalling strings. These methods are split into distinct sections on C-style strings and Windows-centric string formats. -### C-Style strings +### C-style strings Each of these formats passes a null-terminated string to native code. They differ by the encoding of the native string. @@ -38,9 +38,9 @@ If you're interacting with WinRT APIs, you can use the unmanaged type. The default type of the elements of the `SAFEARRAY` can be seen in the table on [customizing `object` fields](customize-struct-marshalling.md#marshal-systemobject). You can use the and fields to customize the exact element type of the `SAFEARRAY`. -## Customizing boolean or decimal parameters +## Customizing Boolean or decimal parameters -For information on marshalling boolean or decimal parameters, see [Customizing structure marshalling](customize-struct-marshalling.md). +For information on marshalling Boolean or decimal parameters, see [Customizing structure marshalling](customize-struct-marshalling.md). ## Customizing object parameters (Windows-only) diff --git a/docs/standard/native-interop/customize-struct-marshalling.md b/docs/standard/native-interop/customize-struct-marshalling.md index ea7566a9cb84e..ffd8bc1ff7e51 100644 --- a/docs/standard/native-interop/customize-struct-marshalling.md +++ b/docs/standard/native-interop/customize-struct-marshalling.md @@ -21,9 +21,9 @@ Sometimes the default marshalling rules for structures aren't exactly what you n ❌ AVOID using `LayoutKind.Explicit` when marshalling structures on non-Windows platforms if you need to target runtimes before .NET Core 3.0. The .NET Core runtime before 3.0 doesn't support passing explicit structures by value to native functions on Intel or AMD 64-bit non-Windows systems. However, the runtime supports passing explicit structures by reference on all platforms. -## Customizing boolean field marshalling +## Customizing Boolean field marshalling -Native code has many different boolean representations. On Windows alone, there are three ways to represent boolean values. The runtime doesn't know the native definition of your structure, so the best it can do is make a guess on how to marshal your boolean values. The .NET runtime provides a way to indicate how to marshal your boolean field. The following examples show how to marshal .NET `bool` to different native boolean types. +Native code has many different Boolean representations. On Windows alone, there are three ways to represent Boolean values. The runtime doesn't know the native definition of your structure, so the best it can do is make a guess on how to marshal your Boolean values. The .NET runtime provides a way to indicate how to marshal your Boolean field. The following examples show how to marshal .NET `bool` to different native Boolean types. Boolean values default to marshalling as a native 4-byte Win32 [`BOOL`](/windows/desktop/winprog/windows-data-types#BOOL) value as shown in the following example: @@ -75,7 +75,7 @@ struct CBool }; ``` -On Windows, you can use the value to tell the runtime to marshal your boolean value to a 2-byte `VARIANT_BOOL` value: +On Windows, you can use the value to tell the runtime to marshal your Boolean value to a 2-byte `VARIANT_BOOL` value: ```csharp public struct VariantBool diff --git a/docs/standard/native-interop/disabled-marshalling.md b/docs/standard/native-interop/disabled-marshalling.md index ced8b0c705af9..bf7d226bd76b9 100644 --- a/docs/standard/native-interop/disabled-marshalling.md +++ b/docs/standard/native-interop/disabled-marshalling.md @@ -6,7 +6,7 @@ ms.date: 01/12/2022 # Disabled runtime marshalling -When the [`System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute`](xref:System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute) attribute is applied to an assembly, the runtime disables most built-in support for data marshalling between managed and native representations. This document describes the features that are disabled and how .NET types map to native types when marshalling is disabled. +When the [`System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute`](xref:System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute) attribute is applied to an assembly, the runtime disables most built-in support for data marshalling between managed and native representations. This article describes the features that are disabled and how .NET types map to native types when marshalling is disabled. ## Scenarios where marshalling is disabled @@ -16,7 +16,7 @@ When the `DisableRuntimeMarshallingAttribute` is applied to an assembly, it affe When the `DisableRuntimeMarshallingAttribute` is applied to an assembly, the following attributes will have no effect or throw an exception: -- [`LCIDConversionAttribute`](xref:System.Runtime.InteropServices.LCIDConversionAttribute) on a P/Invoke or a delegate +- on a P/Invoke or a delegate - `SetLastError=true` on a P/Invoke - `ThrowOnUnmappableChar=true` on a P/Invoke - `BestFitMapping=true` on a P/Invoke diff --git a/docs/standard/native-interop/type-marshalling.md b/docs/standard/native-interop/type-marshalling.md index db6104a6c0a26..331aa03736fb6 100644 --- a/docs/standard/native-interop/type-marshalling.md +++ b/docs/standard/native-interop/type-marshalling.md @@ -15,7 +15,7 @@ Marshalling is needed because the types in the managed and unmanaged code are di static extern int MethodA([MarshalAs(UnmanagedType.LPStr)] string parameter); ``` -If the [`System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute`](xref:System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute) attribute is applied to the assembly, the below rules do not apply. See the documentation on [disabled runtime marshalling](disabled-marshalling.md) for information on how .NET values are exposed to native code when this attribute is applied. +If you apply the [`System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute`](xref:System.Runtime.CompilerServices.DisableRuntimeMarshallingAttribute) attribute to the assembly, the rules in the following section don't apply. For information on how .NET values are exposed to native code when this attribute is applied, see [disabled runtime marshalling](disabled-marshalling.md). ## Default rules for marshalling common types From fde1cfe9b93063b1fd6e118311db8ea2f428b3fd Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 20 Apr 2022 05:49:01 -0700 Subject: [PATCH 031/429] Update package index with latest published versions (#29116) --- docs/azure/includes/dotnet-all.md | 10 +++++----- docs/azure/includes/dotnet-new.md | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 10ae1cac79302..bfeac0d61c510 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -53,7 +53,7 @@ | Service Bus | NuGet [7.7.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.7.0)
NuGet [7.8.0-beta.2](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0-beta.2) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.7.0/sdk/servicebus/Azure.Messaging.ServiceBus/)
GitHub [7.8.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0-beta.2/sdk/servicebus/Azure.Messaging.ServiceBus/) | | Storage - Blobs | NuGet [12.11.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.11.0)
NuGet [12.12.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.11.0/sdk/storage/Azure.Storage.Blobs/)
GitHub [12.12.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0-beta.1/sdk/storage/Azure.Storage.Blobs/) | | Storage - Blobs Batch | NuGet [12.8.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.8.0)
NuGet [12.9.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.8.0/sdk/storage/Azure.Storage.Blobs.Batch/)
GitHub [12.9.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0-beta.1/sdk/storage/Azure.Storage.Blobs.Batch/) | -| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.23](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.23) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.23](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.23/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | +| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.24](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.24) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.24](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.24/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | | Storage - Common | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Common/12.10.0)
NuGet [12.11.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Common/12.11.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.10.0/sdk/storage/Azure.Storage.Common/)
GitHub [12.11.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.11.0-beta.1/sdk/storage/Azure.Storage.Common/) | | Storage - Files Data Lake | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.9.0/sdk/storage/Azure.Storage.Files.DataLake/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.10.0-beta.1/sdk/storage/Azure.Storage.Files.DataLake/) | | Storage - Files Shares | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.9.0/sdk/storage/Azure.Storage.Files.Shares/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.10.0-beta.1/sdk/storage/Azure.Storage.Files.Shares/) | @@ -76,7 +76,7 @@ | WebJobs Extensions - SignalR Service | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.8.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) | | WebJobs Extensions - Storage | NuGet [5.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.0](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | | WebJobs Extensions - Web PubSub | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.2.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | -| Grafana | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Grafana/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Grafana_1.0.0-beta.1/sdk/grafana/Azure.ResourceManager.Grafana/) | +| Grafana | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Grafana/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Grafana-readme-pre) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Grafana_1.0.0-beta.1/sdk/grafana/Azure.ResourceManager.Grafana/) | | Resource Management - App Configuration | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.AppConfiguration/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.AppConfiguration-readme-pre) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppConfiguration_1.0.0-beta.4/sdk/appconfiguration/Azure.ResourceManager.AppConfiguration/) | | Resource Management - App Service | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.AppService/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.AppService-readme-pre) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppService_1.0.0-beta.2/sdk/websites/Azure.ResourceManager.AppService/) | | Resource Management - Azure Stack HCI | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.ResourceManager.Hci/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/ResourceManager.Hci-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Hci_1.0.0-beta.3/sdk/azurestackhci/Azure.ResourceManager.Hci/) | @@ -102,7 +102,7 @@ | Resource Management - Storage Pool | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.ResourceManager.StoragePool/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/ResourceManager.StoragePool-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.StoragePool_1.0.0-beta.3/sdk/storagepool/Azure.ResourceManager.StoragePool/) | | Resource Management - Web PubSub | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.WebPubSub/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.WebPubSub-readme-pre) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.WebPubSub_1.0.0-beta.4/sdk/webpubsub/Azure.ResourceManager.WebPubSub/) | | Azure.Communication.Administration | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Communication.Administration/1.0.0-beta.3) | | | -| Azure.Communication.Calling | NuGet [1.0.0-beta.31](https://www.nuget.org/packages/Azure.Communication.Calling/1.0.0-beta.31) | | | +| Azure.Communication.Calling | NuGet [1.0.0-beta.32](https://www.nuget.org/packages/Azure.Communication.Calling/1.0.0-beta.32) | | | | Azure.Communication.CallingServer | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Communication.CallingServer/1.0.0-beta.3) | | | | Azure.IoT.TimeSeriesInsights | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.IoT.TimeSeriesInsights/1.0.0-beta.1) | | | | Azure.Quantum.Jobs | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Quantum.Jobs/1.0.0-beta.3) | | | @@ -364,7 +364,7 @@ | Storage - Blobs | NuGet [12.11.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.11.0)
NuGet [12.12.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.11.0/sdk/storage/Azure.Storage.Blobs/)
GitHub [12.12.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0-beta.1/sdk/storage/Azure.Storage.Blobs/) | | Storage - Blobs | NuGet [11.2.3](https://www.nuget.org/packages/Microsoft.Azure.Storage.Blob/11.2.3) | | GitHub [11.2.3](https://github.com/Azure/azure-storage-net/tree/master/Blob) | | Storage - Blobs Batch | NuGet [12.8.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.8.0)
NuGet [12.9.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.8.0/sdk/storage/Azure.Storage.Blobs.Batch/)
GitHub [12.9.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0-beta.1/sdk/storage/Azure.Storage.Blobs.Batch/) | -| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.23](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.23) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.23](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.23/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | +| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.24](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.24) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.24](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.24/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | | Storage - Common | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Common/12.10.0)
NuGet [12.11.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Common/12.11.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.10.0/sdk/storage/Azure.Storage.Common/)
GitHub [12.11.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.11.0-beta.1/sdk/storage/Azure.Storage.Common/) | | Storage - Data Movement | NuGet [2.0.4](https://www.nuget.org/packages/Microsoft.Azure.Storage.DataMovement/2.0.4) | | GitHub [2.0.4](https://github.com/Azure/azure-storage-net-data-movement/tree/v1.3.0) | | Storage - Files Data Lake | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.9.0/sdk/storage/Azure.Storage.Files.DataLake/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.10.0-beta.1/sdk/storage/Azure.Storage.Files.DataLake/) | @@ -479,7 +479,7 @@ | AzureStack Management - Subscription | NuGet [0.1.0-preview](https://www.nuget.org/packages/Microsoft.AzureStack.Management.Subscription/0.1.0-preview) | | GitHub [0.1.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/azurestack/Microsoft.AzureStack.Management.Subscription) | | AzureStack Management - Subscriptions Admin | NuGet [0.2.0-preview](https://www.nuget.org/packages/Microsoft.AzureStack.Management.Subscriptions.Admin/0.2.0-preview) | | GitHub [0.2.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/azurestack/Microsoft.AzureStack.Management.Subscriptions.Admin) | | AzureStack Management - Update Admin | NuGet [0.1.0-preview](https://www.nuget.org/packages/Microsoft.AzureStack.Management.Update.Admin/0.1.0-preview) | | GitHub [0.1.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/azurestack/Microsoft.AzureStack.Management.Update.Admin) | -| Grafana | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Grafana/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Grafana_1.0.0-beta.1/sdk/grafana/Azure.ResourceManager.Grafana/) | +| Grafana | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Grafana/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Grafana-readme-pre) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Grafana_1.0.0-beta.1/sdk/grafana/Azure.ResourceManager.Grafana/) | | Management - Advisor | NuGet [0.9.5-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.Advisor/0.9.5-preview) | | GitHub [0.9.5-preview](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/advisor/Microsoft.Azure.Management.Advisor) | | Management - Alerts Management | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.AlertsManagement/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.AlertsManagement_1.0.0/sdk/alertsmanagement/Microsoft.Azure.Management.AlertsManagement/) | | Management - Analysis | NuGet [2.0.4](https://www.nuget.org/packages/Microsoft.Azure.Management.Analysis/2.0.4) | | | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index bc3384158b3de..2c9656c27e11b 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -53,7 +53,7 @@ | Service Bus | NuGet [7.7.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.7.0)
NuGet [7.8.0-beta.2](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0-beta.2) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.7.0/sdk/servicebus/Azure.Messaging.ServiceBus/)
GitHub [7.8.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0-beta.2/sdk/servicebus/Azure.Messaging.ServiceBus/) | | Storage - Blobs | NuGet [12.11.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.11.0)
NuGet [12.12.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.11.0/sdk/storage/Azure.Storage.Blobs/)
GitHub [12.12.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0-beta.1/sdk/storage/Azure.Storage.Blobs/) | | Storage - Blobs Batch | NuGet [12.8.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.8.0)
NuGet [12.9.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.8.0/sdk/storage/Azure.Storage.Blobs.Batch/)
GitHub [12.9.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0-beta.1/sdk/storage/Azure.Storage.Blobs.Batch/) | -| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.23](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.23) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.23](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.23/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | +| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.24](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.24) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.24](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.24/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | | Storage - Common | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Common/12.10.0)
NuGet [12.11.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Common/12.11.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.10.0/sdk/storage/Azure.Storage.Common/)
GitHub [12.11.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.11.0-beta.1/sdk/storage/Azure.Storage.Common/) | | Storage - Files Data Lake | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.9.0/sdk/storage/Azure.Storage.Files.DataLake/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.10.0-beta.1/sdk/storage/Azure.Storage.Files.DataLake/) | | Storage - Files Shares | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.9.0/sdk/storage/Azure.Storage.Files.Shares/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.10.0-beta.1/sdk/storage/Azure.Storage.Files.Shares/) | @@ -76,7 +76,7 @@ | WebJobs Extensions - SignalR Service | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.8.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) | | WebJobs Extensions - Storage | NuGet [5.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.0](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | | WebJobs Extensions - Web PubSub | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.2.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | -| Grafana | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Grafana/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Grafana_1.0.0-beta.1/sdk/grafana/Azure.ResourceManager.Grafana/) | +| Grafana | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Grafana/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Grafana-readme-pre) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Grafana_1.0.0-beta.1/sdk/grafana/Azure.ResourceManager.Grafana/) | | Resource Management - App Configuration | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.AppConfiguration/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.AppConfiguration-readme-pre) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppConfiguration_1.0.0-beta.4/sdk/appconfiguration/Azure.ResourceManager.AppConfiguration/) | | Resource Management - App Service | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.AppService/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.AppService-readme-pre) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppService_1.0.0-beta.2/sdk/websites/Azure.ResourceManager.AppService/) | | Resource Management - Azure Stack HCI | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.ResourceManager.Hci/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/ResourceManager.Hci-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Hci_1.0.0-beta.3/sdk/azurestackhci/Azure.ResourceManager.Hci/) | From 58270aa45537b96bb8a237bf78db4f085bad14eb Mon Sep 17 00:00:00 2001 From: Petr Onderka Date: Wed, 20 Apr 2022 14:49:44 +0200 Subject: [PATCH 032/429] Mark Ubuntu 21.04 as unsupported (#29123) --- docs/core/install/linux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/install/linux.md b/docs/core/install/linux.md index e03e530f2ce67..92ee35ae3af7a 100644 --- a/docs/core/install/linux.md +++ b/docs/core/install/linux.md @@ -189,7 +189,7 @@ The following table is a list of currently supported .NET releases and the versi | Ubuntu | .NET Core 3.1 | .NET 5 | .NET 6 | |------------------------------------------|---------------|----------|----------| | ✔️ [21.10](linux-ubuntu.md#2110-) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | -| ✔️ [21.04](linux-ubuntu.md#2104-) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | +| ❌ [21.04](linux-ubuntu.md#2104-) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | | ❌ [20.10](linux-ubuntu.md#2010-) | ✔️ 3.1 | ✔️ 5.0 | ❌ 6.0 | | ✔️ [20.04 (LTS)](linux-ubuntu.md#2004-) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | | ❌ [19.10](linux-ubuntu.md#1910-) | ✔️ 3.1 | ❌ 5.0 | ❌ 6.0 | From 3416ab7fe879181de58dc141f46c2bb96d62cf5e Mon Sep 17 00:00:00 2001 From: David Pine Date: Wed, 20 Apr 2022 08:02:00 -0500 Subject: [PATCH 033/429] Fix log formatting bug (#29125) * Fix the bug mentioned in #29124 * Pre-commit hook, applied automatic markdownlint CLI fixes --- docs/core/additional-tools/dotnet-coverage.md | 10 +++++----- .../7.0/mvc-empty-body-model-binding.md | 4 ++-- .../diagnostics/eventsource-activity-ids.md | 2 +- .../eventsource-collect-and-view-traces.md | 2 +- .../diagnostics/eventsource-instrumentation.md | 18 +++++++++--------- .../workers/timer-service/TimerService.cs | 2 +- docs/core/extensions/timer-service.md | 2 +- .../builtin-types/reference-types.md | 4 ++-- .../deploying-new-versions-of-grains.md | 2 +- .../shutting-down-orleans.md | 2 +- docs/standard/commandline/model-binding.md | 2 +- docs/standard/commandline/syntax.md | 4 ++-- 12 files changed, 27 insertions(+), 27 deletions(-) diff --git a/docs/core/additional-tools/dotnet-coverage.md b/docs/core/additional-tools/dotnet-coverage.md index ac409ad97e19f..d15cf31c1ceb2 100644 --- a/docs/core/additional-tools/dotnet-coverage.md +++ b/docs/core/additional-tools/dotnet-coverage.md @@ -60,10 +60,10 @@ The `merge` command is used to merge several code coverage reports into one. Thi ### Synopsis ```console -dotnet-coverage merge +dotnet-coverage merge [--remove-input-files] [-r|--recursive] [-o|--output ] [-f|--output-format ] - [-l|--log-file ] [-ll|--log-level ] [-?|-h|--help] + [-l|--log-file ] [-ll|--log-level ] [-?|-h|--help] ``` @@ -112,7 +112,7 @@ The `collect` command can run in two modes. The `collect` command will collect code coverage for the given process executed by the `command` argument. ```console -dotnet-coverage collect +dotnet-coverage collect [-s|--settings ] [-id|--session-id ] [-o|--output ] [-f|--output-format ] [-l|--log-file ] [-ll|--log-level ] [-?|-h|--help] @@ -124,7 +124,7 @@ dotnet-coverage collect The `collect` command hosts a server for code coverage collection. Clients can connect to the server via `connect` command. ```console -dotnet-coverage collect +dotnet-coverage collect [-s|--settings ] [-id|--session-id ] [-sv|--server-mode] [-b|--background] [-t|--timeout] [-o|--output ] [-f|--output-format ] @@ -186,7 +186,7 @@ The `connect` command is used to connect with the existing server and collects c ### Synopsis ```console -dotnet-coverage connect +dotnet-coverage connect [-b|--background] [-t|--timeout] [-l|--log-file ] [-ll|--log-level ] [-?|-h|--help] diff --git a/docs/core/compatibility/aspnet-core/7.0/mvc-empty-body-model-binding.md b/docs/core/compatibility/aspnet-core/7.0/mvc-empty-body-model-binding.md index 3d5bb0cb399e1..8fd3e88f666e3 100644 --- a/docs/core/compatibility/aspnet-core/7.0/mvc-empty-body-model-binding.md +++ b/docs/core/compatibility/aspnet-core/7.0/mvc-empty-body-model-binding.md @@ -28,8 +28,8 @@ ASP.NET Core 7.0 Preview 3 If a controller action binds a parameter from the request body and the client request doesn't include a `Content-Length` request header, the framework throws an internal exception during deserialization of the request body. For example, the `System.Text.Json`-based input formatter throws an exception similar to the following: ``` -System.Text.Json.JsonException: 'The input does not contain any JSON tokens. -Expected the input to start with a valid JSON token, when isFinalBlock is true. +System.Text.Json.JsonException: 'The input does not contain any JSON tokens. +Expected the input to start with a valid JSON token, when isFinalBlock is true. Path: $ | LineNumber: 0 | BytePositionInLine: 0.' ``` diff --git a/docs/core/diagnostics/eventsource-activity-ids.md b/docs/core/diagnostics/eventsource-activity-ids.md index 3ee534ebb8896..17c4fdb0a64df 100644 --- a/docs/core/diagnostics/eventsource-activity-ids.md +++ b/docs/core/diagnostics/eventsource-activity-ids.md @@ -93,7 +93,7 @@ class DemoEventSource : EventSource public void WorkStart(string requestName) => WriteEvent(1, requestName); [Event(2)] public void WorkStop() => WriteEvent(2); - + [Event(3)] public void DebugMessage(string message) => WriteEvent(3, message); } diff --git a/docs/core/diagnostics/eventsource-collect-and-view-traces.md b/docs/core/diagnostics/eventsource-collect-and-view-traces.md index 232a255c02337..a92bcbcd49c2e 100644 --- a/docs/core/diagnostics/eventsource-collect-and-view-traces.md +++ b/docs/core/diagnostics/eventsource-collect-and-view-traces.md @@ -46,7 +46,7 @@ namespace EventSourceDemo public void RequestStop(int requestId) => WriteEvent(3, requestId); [Event(4, Keywords = Keywords.Startup, Level = EventLevel.Verbose)] public void DebugMessage(string message) => WriteEvent(4, message); - + public class Keywords { diff --git a/docs/core/diagnostics/eventsource-instrumentation.md b/docs/core/diagnostics/eventsource-instrumentation.md index 65e691d020e53..f368667500193 100644 --- a/docs/core/diagnostics/eventsource-instrumentation.md +++ b/docs/core/diagnostics/eventsource-instrumentation.md @@ -199,8 +199,8 @@ public sealed class CustomizedEventSource : EventSource static public CustomizedEventSource Log { get; } = new CustomizedEventSource(); [Event(1, Task = Tasks.Request, Opcode=EventOpcode.Start)] - public void RequestStart(int RequestID, string Url) - { + public void RequestStart(int RequestID, string Url) + { WriteEvent(1, RequestID, Url); } @@ -210,11 +210,11 @@ public sealed class CustomizedEventSource : EventSource WriteEvent(2, RequestID, PhaseName); } - [Event(3, Keywords = Keywords.Requests, + [Event(3, Keywords = Keywords.Requests, Task = Tasks.Request, Opcode=EventOpcode.Stop)] - public void RequestStop(int RequestID) + public void RequestStop(int RequestID) { - WriteEvent(3, RequestID); + WriteEvent(3, RequestID); } public class Tasks @@ -313,10 +313,10 @@ public sealed class OptimizedEventSource : UtilBaseEventSource { public static OptimizedEventSource Log { get; } = new OptimizedEventSource(); - [Event(1, Keywords = Keywords.Kwd1, Level = EventLevel.Informational, + [Event(1, Keywords = Keywords.Kwd1, Level = EventLevel.Informational, Message = "LogElements called {0}/{1}/{2}.")] public void LogElements(int n, short sh, long l) - { + { WriteEvent(1, n, sh, l); // Calls UtilBaseEventSource.WriteEvent } @@ -350,8 +350,8 @@ Here's an example for adding a WriteEvent overload that takes four integer argum ```C# [NonEvent] -public unsafe void WriteEvent(int eventId, int arg1, int arg2, - int arg3, int arg4) +public unsafe void WriteEvent(int eventId, int arg1, int arg2, + int arg3, int arg4) { EventData* descrs = stackalloc EventProvider.EventData[4]; diff --git a/docs/core/extensions/snippets/workers/timer-service/TimerService.cs b/docs/core/extensions/snippets/workers/timer-service/TimerService.cs index 00461719c0f8a..bad35e8559244 100644 --- a/docs/core/extensions/snippets/workers/timer-service/TimerService.cs +++ b/docs/core/extensions/snippets/workers/timer-service/TimerService.cs @@ -22,7 +22,7 @@ private void DoWork(object? state) int count = Interlocked.Increment(ref _executionCount); _logger.LogInformation( - "{Service} is working, execution count: {{Count:#,0}}", + "{Service} is working, execution count: {Count:#,0}", nameof(TimerHostedService), count); } diff --git a/docs/core/extensions/timer-service.md b/docs/core/extensions/timer-service.md index 3eb7e8222ada5..2b99cad313008 100644 --- a/docs/core/extensions/timer-service.md +++ b/docs/core/extensions/timer-service.md @@ -3,7 +3,7 @@ title: Implement the IHostedService interface description: Learn how to implement a custom IHostedService interface with .NET. author: IEvangelist ms.author: dapine -ms.date: 12/17/2021 +ms.date: 04/20/2022 ms.topic: tutorial --- diff --git a/docs/csharp/language-reference/builtin-types/reference-types.md b/docs/csharp/language-reference/builtin-types/reference-types.md index e0fd8f7fefd34..a6912e93f11a4 100644 --- a/docs/csharp/language-reference/builtin-types/reference-types.md +++ b/docs/csharp/language-reference/builtin-types/reference-types.md @@ -97,7 +97,7 @@ You can even include a sequence of three (or more) double quote characters. If y ```csharp """"" -This raw string literal has four """", count them: """" four! +This raw string literal has four """", count them: """" four! embedded quote characters in a sequence. That's why it starts and ends with five double quotes. @@ -132,7 +132,7 @@ Columns to the right of the ending quote sequence are preserved. This enables ra var json= """ { "prop": 0 - } + } """; ``` diff --git a/docs/orleans/grains/grain-versioning/deploying-new-versions-of-grains.md b/docs/orleans/grains/grain-versioning/deploying-new-versions-of-grains.md index 6526e669fea81..d07afc9d33f45 100644 --- a/docs/orleans/grains/grain-versioning/deploying-new-versions-of-grains.md +++ b/docs/orleans/grains/grain-versioning/deploying-new-versions-of-grains.md @@ -56,7 +56,7 @@ var silo = new HostBuilder() }) }) .Build(); - + ``` Suggested deployment steps: diff --git a/docs/orleans/host/configuration-guide/shutting-down-orleans.md b/docs/orleans/host/configuration-guide/shutting-down-orleans.md index e6f79f9ece334..cc30c92764186 100644 --- a/docs/orleans/host/configuration-guide/shutting-down-orleans.md +++ b/docs/orleans/host/configuration-guide/shutting-down-orleans.md @@ -64,7 +64,7 @@ static ISiloHost CreateSilo() => new HostBuilder() }) .Build(); -static async Task StopSiloAsync() +static async Task StopSiloAsync() { await s_silo.StopAsync(); s_siloStopped.Set(); diff --git a/docs/standard/commandline/model-binding.md b/docs/standard/commandline/model-binding.md index c3b1b963ca076..2760b6e7d2a85 100644 --- a/docs/standard/commandline/model-binding.md +++ b/docs/standard/commandline/model-binding.md @@ -211,7 +211,7 @@ For an example, see [Set exit codes](#set-exit-codes). The list of unmatched tokens is useful in commands that behave like wrappers. A wrapper command takes a set of [tokens](syntax.md#tokens) and forwards them to another command or app. The `sudo` command in Linux is an example. It takes the name of a user to impersonate followed by a command to run. For example: ```console -sudo -u admin apt update +sudo -u admin apt update ``` This command line would run the `apt update` command as the user `admin`. diff --git a/docs/standard/commandline/syntax.md b/docs/standard/commandline/syntax.md index 9ab1ffdc1ef27..5ea8570f60303 100644 --- a/docs/standard/commandline/syntax.md +++ b/docs/standard/commandline/syntax.md @@ -129,14 +129,14 @@ You can provide options before arguments or arguments before options on the comm ```dotnetcli dotnet add package System.CommandLine --prerelease -dotnet add package --prerelease System.CommandLine +dotnet add package --prerelease System.CommandLine ``` Options can be specified in any order. The following commands are equivalent: ```dotnetcli dotnet add package System.CommandLine --prerelease --no-restore --source https://api.nuget.org/v3/index.json -dotnet add package System.CommandLine --source https://api.nuget.org/v3/index.json --no-restore --prerelease +dotnet add package System.CommandLine --source https://api.nuget.org/v3/index.json --no-restore --prerelease ``` When there are multiple arguments, the order does matter. The following commands are not necessarily equivalent: From f77e19840a829f115d11e339454644e217667daf Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Wed, 20 Apr 2022 11:02:03 -0400 Subject: [PATCH 034/429] fix extra braces in example (#29126) * fix extra braces in example Fixes #29121 * Apply suggestions from code review Co-authored-by: David Pine --- .../language-reference/tokens/snippets/string-interpolation.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/csharp/language-reference/tokens/snippets/string-interpolation.cs b/docs/csharp/language-reference/tokens/snippets/string-interpolation.cs index 4f3b7d885d8d0..14002fe46816a 100644 --- a/docs/csharp/language-reference/tokens/snippets/string-interpolation.cs +++ b/docs/csharp/language-reference/tokens/snippets/string-interpolation.cs @@ -121,8 +121,7 @@ private static void InterpolatedRawLiteralStringsWithBraces() int X = 2; int Y = 3; - var pointMessage = $$"""The point {{{X}}}, {{{Y}}} is {{Math.Sqrt(X * X + Y * Y)}} from the origin"""; - + var pointMessage = $$"""The point {{{X}}, {{Y}}} is {{Math.Sqrt(X * X + Y * Y)}} from the origin"""; Console.WriteLine(pointMessage); // output: The point {2, 3} is 3.605551275463989 from the origin. // From 9050a233c8f430a947b246005fdcf0c66da2fa19 Mon Sep 17 00:00:00 2001 From: Elendil Date: Wed, 20 Apr 2022 23:52:58 +0800 Subject: [PATCH 035/429] Keep aligned with our released stable package (#29117) * Keep aligned with our released stable package there is one Stackoverflow question https://stackoverflow.com/questions/71061498/net-azure-sdk-resource-manager-nuget-package-stable-release asking which version of SDK to use, so it is better we update our docs to include the stable version of new SDK * Update resource-management.md * Apply suggestions from code review * Update resource-management.md * Update resource-management.md Co-authored-by: David Pine --- docs/azure/sdk/resource-management.md | 28 +++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/docs/azure/sdk/resource-management.md b/docs/azure/sdk/resource-management.md index fb346a8c33400..3c709233d780b 100644 --- a/docs/azure/sdk/resource-management.md +++ b/docs/azure/sdk/resource-management.md @@ -1,10 +1,11 @@ --- title: Resource management description: Learn how to use the Azure SDK for .NET to manage Azure resources. -ms.date: 08/27/2021 +ms.date: 04/20/2022 ms.author: xinrzhu author: nickzhums --- + # Resource management using the Azure SDK for .NET The next-generation of .NET SDK's management (or "management plane") libraries will help you create, provision, and manage Azure resources from within .NET applications. All Azure services have corresponding management libraries. @@ -19,7 +20,7 @@ Those packages follow the [new Azure SDK guidelines](https://azure.github.io/azu - Distributed tracing. > [!NOTE] -> *Azure.ResourceManager.** packages are currently in Public Preview and may be subject to breaking changes in the future. +> Stable versionv of [Azure.ResourceManager](https://www.nuget.org/packages/Azure.ResourceManager/1.0.0) and [Azure.ResourceManager.Resources](https://www.nuget.org/packages/Azure.ResourceManager.Resources) are now available, and phased releases of additional Azure services' client libraries are coming soon. ## Get started @@ -29,13 +30,26 @@ Install the Azure Resources management packages for .NET with [NuGet](https://ww For example: +# [PowerShell](#tab/PowerShell) + ```PowerShell -Install-Package Azure.ResourceManager -Version 1.0.0-beta.5 +Install-Package Azure.ResourceManager -Version 1.0.0 +Install-Package Azure.ResourceManager.Resources -Version Install-Package Azure.ResourceManager.Compute -Version 1.0.0-beta.3 Install-Package Azure.ResourceManager.Network -Version 1.0.0-beta.3 -Install-Package Azure.ResourceManager.Resources -Version 1.0.0-beta.3 ``` +# [dotnet cli](#tab/dotnetcli) + +```dotnetcli +dotnet add package Azure.ResourceManager +dotnet add package Azure.ResourceManager.Resources +dotnet add package Azure.ResourceManager.Compute --prerelease +dotnet add package Azure.ResourceManager.Network --prerelease +``` + +--- + ### Prerequisites Set up a way to authenticate to Azure with Azure Identity. Some options are: @@ -65,8 +79,6 @@ var armClient = new ArmClient(new DefaultAzureCredential()); For more information about the `Azure.Identity.DefaultAzureCredential` class, see [DefaultAzureCredential Class](/dotnet/api/azure.identity.defaultazurecredential). ----- - ## Key concepts ### Understanding Azure Resource Hierarchy @@ -290,8 +302,6 @@ else } ``` ----- - ## Examples ### Create a resource group @@ -348,8 +358,6 @@ await resourceGroup.DeleteAsync(); For more detailed examples, take a look at [samples](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/resourcemanager/Azure.ResourceManager/samples) we have available. ----- - ## Troubleshooting - If you have a bug to report or have a suggestion, file an issue via [GitHub issues](https://github.com/Azure/azure-sdk-for-net/issues) and make sure you add the "Preview" label to the issue. From f55d2bdffef56d266fee6c4c8529364df1622831 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Wed, 20 Apr 2022 09:46:53 -0700 Subject: [PATCH 036/429] fix build suggestions (#29114) --- .../core/diagnostics/eventsource-collect-and-view-traces.md | 6 +++--- docs/core/diagnostics/eventsource-instrumentation.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/core/diagnostics/eventsource-collect-and-view-traces.md b/docs/core/diagnostics/eventsource-collect-and-view-traces.md index a92bcbcd49c2e..7744487c95940 100644 --- a/docs/core/diagnostics/eventsource-collect-and-view-traces.md +++ b/docs/core/diagnostics/eventsource-collect-and-view-traces.md @@ -85,13 +85,13 @@ keyword-based filtering, and "Demo" does no keyword or level filtering. ## Visual Studio -The [Visual Studio profiler](https://docs.microsoft.com/visualstudio/profiling) supports both collecting and viewing traces. It also can view traces +The [Visual Studio profiler](/visualstudio/profiling) supports both collecting and viewing traces. It also can view traces that have been collected in advance by other tools, such as [dotnet-trace](./dotnet-trace.md). ### Collect a trace Most of Visual Studio's profiling tools use predefined sets of events that serve a particular purpose, such as analyzing CPU usage or allocations. To -collect a trace with customized events, you'll use the [Events Viewer](https://docs.microsoft.com/visualstudio/profiling/events-viewer) tool. +collect a trace with customized events, you'll use the [Events Viewer](/visualstudio/profiling/events-viewer) tool. 1. To open the Performance Profiler in Visual Studio, select **Alt**+**F2**. @@ -177,7 +177,7 @@ of that type in the table on the right. ### Learn more -To learn more about using PerfView, see the [PerfView video tutorials](https://docs.microsoft.com/shows/PerfView-Tutorial/). +To learn more about using PerfView, see the [PerfView video tutorials](/shows/PerfView-Tutorial/). ## dotnet-trace diff --git a/docs/core/diagnostics/eventsource-instrumentation.md b/docs/core/diagnostics/eventsource-instrumentation.md index f368667500193..5ea1109881aca 100644 --- a/docs/core/diagnostics/eventsource-instrumentation.md +++ b/docs/core/diagnostics/eventsource-instrumentation.md @@ -187,7 +187,7 @@ enabled. ### Setting OpCodes and Tasks -ETW has concepts of [Tasks and OpCodes](https://docs.microsoft.com/windows/win32/wes/defining-tasks-and-opcodes) +ETW has concepts of [Tasks and OpCodes](/windows/win32/wes/defining-tasks-and-opcodes) which are further mechanisms for tagging and filtering events. You can associate events with specific tasks and opcodes using the and properties. Here's an example: From ba010d042d3f3a6ed85bfa73abebdeedfbdc0189 Mon Sep 17 00:00:00 2001 From: Andrew Au Date: Wed, 20 Apr 2022 13:01:29 -0700 Subject: [PATCH 037/429] Recommend using the 0x prefix in App.config (#28943) --- docs/core/runtime-config/garbage-collector.md | 76 ++++++++++++++++++- 1 file changed, 73 insertions(+), 3 deletions(-) diff --git a/docs/core/runtime-config/garbage-collector.md b/docs/core/runtime-config/garbage-collector.md index 6b9ab8f6e0cd9..33801909a50f3 100644 --- a/docs/core/runtime-config/garbage-collector.md +++ b/docs/core/runtime-config/garbage-collector.md @@ -1,22 +1,92 @@ --- title: Garbage collector config settings description: Learn about run-time settings for configuring how the garbage collector manages memory for .NET Core apps. -ms.date: 07/10/2020 +ms.date: 04/20/2022 ms.topic: reference --- # Runtime configuration options for garbage collection -This page contains information about garbage collector (GC) settings that can be changed at run time. If you're trying to achieve peak performance of a running app, consider using these settings. However, the defaults provide optimum performance for most applications in typical situations. +This page contains information about settings for the .NET runtime garbage collector (GC). If you're trying to achieve peak performance of a running app, consider using these settings. However, the defaults provide optimum performance for most applications in typical situations. Settings are arranged into groups on this page. The settings within each group are commonly used in conjunction with each other to achieve a specific result. > [!NOTE] > -> - These settings can also be changed dynamically by the app as it's running, so any run-time settings you set may be overridden. +> - These settings can also be changed dynamically by the app as it's running, so any configuration options you set may be overridden. > - Some settings, such as [latency level](../../standard/garbage-collection/latency.md), are typically set only through the API at design time. Such settings are omitted from this page. > - For number values, use decimal notation for settings in the *runtimeconfig.json* file and hexadecimal notation for environment variable settings. For hexadecimal values, you can specify them with or without the "0x" prefix. > - If you're using the environment variables, .NET 6 standardizes on the prefix `DOTNET_` instead of `COMPlus_`. However, the `COMPlus_` prefix will continue to work. If you're using a previous version of the .NET runtime, you should still use the `COMPlus_` prefix, for example, `COMPlus_gcServer`. +## Ways to specify the configuration + +For different versions of the the .NET runtime, there are different ways to specify the configuration values. The following table shows a summary. + +| Config location | .NET versions this location applies to | Formats | How it's interpreted | +| -------------------- | -------------------------------------- | -------- | ------------------------------------------------------------ | +| runtimeconfig.json file | .NET Core | n | n is interpreted as a decimal value. | +| Environment variable | .NET Framework, .NET Core | 0xn or n | n is interpreted as a hex value in either format | +| app.config file | .NET Framework | 0xn | n is interpreted as a hex value1 | + +1 You can specify a value without the `0x` prefix for an app.config file setting, but it's not recommended. On .NET Framework 4.8+, due to a bug, a value specified without the `0x` prefix is interpreted as hexadecimal, but on previous versions of .NET Framework, it's interpreted as decimal. To avoid having to change your config, use the `0x` prefix when specifying a value in your app.config file. + +For example, to specify 12 heaps for `GCHeapCount` for a .NET Framework app named *A.exe*, add the following XML to the *A.exe.config* file. + +```xml + + + ... + + + 0xc + + +``` + +For both .NET Core and .NET Framework, you can use environment variables. + +On Windows using .NET 5 or a later version: + +```cmd +SET DOTNET_gcServer=1 +SET DOTNET_GCHeapCount=c +``` + +On Windows using .NET Core 3.1 or earlier: + +```cmd +SET COMPlus_gcServer=1 +SET COMPlus_GCHeapCount=c +``` + +On other operating systems: + +For .NET 5 or later versions: + +```bash +export DOTNET_gcServer=1 +export DOTNET_GCHeapCount=c +``` + +For .NET Core 3.1 and earlier versions: + +```bash +export COMPlus_gcServer=1 +export COMPlus_GCHeapCount=c +``` + +For .NET Core only, you can set the value in the *runtimeconfig.json* file. + +```json +{ + "runtimeOptions": { + "configProperties": { + "System.GC.Server": true, + "System.GC.HeapCount": 12 + } + } +} +``` + ## Flavors of garbage collection The two main flavors of garbage collection are workstation GC and server GC. For more information about differences between the two, see [Workstation and server garbage collection](../../standard/garbage-collection/workstation-server-gc.md). From cf3d14c7e3bdac498e968af089043b631f2ba5cb Mon Sep 17 00:00:00 2001 From: GitHubPang <61439577+GitHubPang@users.noreply.github.com> Date: Thu, 21 Apr 2022 11:31:56 +0800 Subject: [PATCH 038/429] Fix typos in code quality analysis docs (#29132) --- docs/fundamentals/code-analysis/quality-rules/ca1062.md | 4 ++-- docs/fundamentals/code-analysis/quality-rules/ca2000.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1062.md b/docs/fundamentals/code-analysis/quality-rules/ca1062.md index 2091e2c333522..8e6edf2765885 100644 --- a/docs/fundamentals/code-analysis/quality-rules/ca1062.md +++ b/docs/fundamentals/code-analysis/quality-rules/ca1062.md @@ -32,7 +32,7 @@ You can [configure](#configure-code-to-analyze) this rule to exclude certain typ ## Rule description -All reference arguments that are passed to externally visible methods should be checked against `null`. If appropriate, throw a when the argument is `null`. +All reference arguments that are passed to externally visible methods should be checked against `null`. If appropriate, throw an when the argument is `null`. If a method can be called from an unknown assembly because it is declared public or protected, you should validate all parameters of the method. If the method is designed to be called only by known assemblies, mark the method `internal` and apply the attribute to the assembly that contains the method. @@ -167,7 +167,7 @@ End Namespace ## Example 2 -Copy constructors that populate field or properties that are reference objects can also violate rule CA1062. The violation occurs because the copied object that's passed to the copy constructor might be `null` (`Nothing` in Visual Basic). To resolve the violation, use a `static` (`Shared` in Visual Basic) method to check that the copied object is not null. +Copy constructors that populate fields or properties that are reference objects can also violate rule CA1062. The violation occurs because the copied object that's passed to the copy constructor might be `null` (`Nothing` in Visual Basic). To resolve the violation, use a `static` (`Shared` in Visual Basic) method to check that the copied object is not null. In the following `Person` class example, the `other` object that is passed to the `Person` copy constructor might be `null`. diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2000.md b/docs/fundamentals/code-analysis/quality-rules/ca2000.md index 637e3b1ec1db0..adb31e83134d6 100644 --- a/docs/fundamentals/code-analysis/quality-rules/ca2000.md +++ b/docs/fundamentals/code-analysis/quality-rules/ca2000.md @@ -52,7 +52,7 @@ To fix a violation of this rule, call on th You can use the [`using` statement](../../../csharp/language-reference/keywords/using-statement.md) ([`Using`](../../../visual-basic/language-reference/statements/using-statement.md) in Visual Basic) to wrap objects that implement . Objects that are wrapped in this manner are automatically disposed at the end of the `using` block. However, the following situations should not or cannot be handled with a `using` statement: -- To return a disposable object, the object must constructed in a `try/finally` block outside of a `using` block. +- To return a disposable object, the object must be constructed in a `try/finally` block outside of a `using` block. - Do not initialize members of a disposable object in the constructor of a `using` statement. From 5e4d440ee475472597ce670f0bee68c0f77b4804 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Thu, 21 Apr 2022 06:57:45 -0700 Subject: [PATCH 039/429] Update package index with latest published versions (#29129) --- docs/azure/includes/dotnet-all.md | 4 ++-- docs/azure/includes/dotnet-new.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index bfeac0d61c510..b0f45dcd6889e 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -21,7 +21,7 @@ | Communication SMS | NuGet [1.0.1](https://www.nuget.org/packages/Azure.Communication.Sms/1.0.1) | [docs](/dotnet/api/overview/azure/Communication.Sms-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Sms_1.0.1/sdk/communication/Azure.Communication.Sms/) | | ConfidentialLedger | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Security.ConfidentialLedger/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Security.ConfidentialLedger-readme-pre) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.ConfidentialLedger_1.0.0-beta.2/sdk/confidentialledger/Azure.Security.ConfidentialLedger/) | | Container Registry | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Containers.ContainerRegistry/1.0.0)
NuGet [1.1.0-beta.4](https://www.nuget.org/packages/Azure.Containers.ContainerRegistry/1.1.0-beta.4) | [docs](/dotnet/api/overview/azure/Containers.ContainerRegistry-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Containers.ContainerRegistry_1.0.0/sdk/containerregistry/Azure.Containers.ContainerRegistry/)
GitHub [1.1.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Containers.ContainerRegistry_1.1.0-beta.4/sdk/containerregistry/Azure.Containers.ContainerRegistry/) | -| Conversation Analysis | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Language.Conversations/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Language.Conversations-readme-pre) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations_1.0.0-beta.2/sdk/cognitivelanguage/Azure.AI.Language.Conversations/) | +| Conversation Analysis | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.Language.Conversations/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.Language.Conversations-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations_1.0.0-beta.3/sdk/cognitivelanguage/Azure.AI.Language.Conversations/) | | Core | NuGet [1.24.0](https://www.nuget.org/packages/Azure.Core/1.24.0) | [docs](/dotnet/api/overview/azure/Core-readme) | GitHub [1.24.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core_1.24.0/sdk/core/Azure.Core/) | | Core - AMQP | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Core.Amqp/1.2.0) | [docs](/dotnet/api/overview/azure/Core.Amqp-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core.Amqp_1.2.0/sdk/core/Azure.Core.Amqp/) | | Cosmos DB | NuGet [4.0.0-preview3](https://www.nuget.org/packages/Azure.Cosmos/4.0.0-preview3) | [docs](/dotnet/api/azure.cosmos) | GitHub [4.0.0-preview3](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/releases/4.0.0-preview3) | @@ -233,7 +233,7 @@ | Container Registry | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Containers.ContainerRegistry/1.0.0)
NuGet [1.1.0-beta.4](https://www.nuget.org/packages/Azure.Containers.ContainerRegistry/1.1.0-beta.4) | [docs](/dotnet/api/overview/azure/Containers.ContainerRegistry-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Containers.ContainerRegistry_1.0.0/sdk/containerregistry/Azure.Containers.ContainerRegistry/)
GitHub [1.1.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Containers.ContainerRegistry_1.1.0-beta.4/sdk/containerregistry/Azure.Containers.ContainerRegistry/) | | Container Registry | NuGet [1.0.0-preview.2](https://www.nuget.org/packages/Microsoft.Azure.ContainerRegistry/1.0.0-preview.2) | | GitHub [1.0.0-preview.2](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.ContainerRegistry_1.0.0-preview.2/sdk/containerregistry/Microsoft.Azure.ContainerRegistry/) | | Content Moderator | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.ContentModerator/2.0.0) | | | -| Conversation Analysis | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Language.Conversations/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Language.Conversations-readme-pre) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations_1.0.0-beta.2/sdk/cognitivelanguage/Azure.AI.Language.Conversations/) | +| Conversation Analysis | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.Language.Conversations/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.Language.Conversations-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations_1.0.0-beta.3/sdk/cognitivelanguage/Azure.AI.Language.Conversations/) | | Core | NuGet [1.24.0](https://www.nuget.org/packages/Azure.Core/1.24.0) | [docs](/dotnet/api/overview/azure/Core-readme) | GitHub [1.24.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core_1.24.0/sdk/core/Azure.Core/) | | Core - AMQP | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Core.Amqp/1.2.0) | [docs](/dotnet/api/overview/azure/Core.Amqp-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core.Amqp_1.2.0/sdk/core/Azure.Core.Amqp/) | | Cosmos DB | NuGet [4.0.0-preview3](https://www.nuget.org/packages/Azure.Cosmos/4.0.0-preview3) | [docs](/dotnet/api/azure.cosmos) | GitHub [4.0.0-preview3](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/releases/4.0.0-preview3) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index 2c9656c27e11b..c680eaeaaba5b 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -21,7 +21,7 @@ | Communication SMS | NuGet [1.0.1](https://www.nuget.org/packages/Azure.Communication.Sms/1.0.1) | [docs](/dotnet/api/overview/azure/Communication.Sms-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.Sms_1.0.1/sdk/communication/Azure.Communication.Sms/) | | ConfidentialLedger | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Security.ConfidentialLedger/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Security.ConfidentialLedger-readme-pre) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.ConfidentialLedger_1.0.0-beta.2/sdk/confidentialledger/Azure.Security.ConfidentialLedger/) | | Container Registry | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Containers.ContainerRegistry/1.0.0)
NuGet [1.1.0-beta.4](https://www.nuget.org/packages/Azure.Containers.ContainerRegistry/1.1.0-beta.4) | [docs](/dotnet/api/overview/azure/Containers.ContainerRegistry-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Containers.ContainerRegistry_1.0.0/sdk/containerregistry/Azure.Containers.ContainerRegistry/)
GitHub [1.1.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Containers.ContainerRegistry_1.1.0-beta.4/sdk/containerregistry/Azure.Containers.ContainerRegistry/) | -| Conversation Analysis | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Language.Conversations/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Language.Conversations-readme-pre) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations_1.0.0-beta.2/sdk/cognitivelanguage/Azure.AI.Language.Conversations/) | +| Conversation Analysis | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.Language.Conversations/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.Language.Conversations-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.Conversations_1.0.0-beta.3/sdk/cognitivelanguage/Azure.AI.Language.Conversations/) | | Core | NuGet [1.24.0](https://www.nuget.org/packages/Azure.Core/1.24.0) | [docs](/dotnet/api/overview/azure/Core-readme) | GitHub [1.24.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core_1.24.0/sdk/core/Azure.Core/) | | Core - AMQP | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Core.Amqp/1.2.0) | [docs](/dotnet/api/overview/azure/Core.Amqp-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core.Amqp_1.2.0/sdk/core/Azure.Core.Amqp/) | | Cosmos DB | NuGet [4.0.0-preview3](https://www.nuget.org/packages/Azure.Cosmos/4.0.0-preview3) | [docs](/dotnet/api/azure.cosmos) | GitHub [4.0.0-preview3](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/releases/4.0.0-preview3) | From 7956cacd7c31098f0821d23301e469c419d10d12 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Thu, 21 Apr 2022 08:57:26 -0700 Subject: [PATCH 040/429] Add display name to TOC (#29130) --- docs/fundamentals/toc.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/fundamentals/toc.yml b/docs/fundamentals/toc.yml index 270ef2894ff3d..8adbd876470c2 100644 --- a/docs/fundamentals/toc.yml +++ b/docs/fundamentals/toc.yml @@ -1666,6 +1666,7 @@ items: - name: Configure .NET Runtime items: - name: Settings + displayName: runtime configuration, configure runtime, configuration settings href: ../core/runtime-config/index.md - name: Compilation settings href: ../core/runtime-config/compilation.md From 39c3063922e596f1ce672774bf9bc09c7df9f595 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Thu, 21 Apr 2022 09:04:42 -0700 Subject: [PATCH 041/429] add disablestackoverflowprobing element (#29131) --- .../disableStackOverflowProbing-element.md | 47 +++++++++++++++++++ .../file-schema/runtime/index.md | 10 ++-- .../file-schema/runtime/runtime-element.md | 3 +- .../file-schema/runtime/toc.yml | 9 ++-- 4 files changed, 61 insertions(+), 8 deletions(-) create mode 100644 docs/framework/configure-apps/file-schema/runtime/disableStackOverflowProbing-element.md diff --git a/docs/framework/configure-apps/file-schema/runtime/disableStackOverflowProbing-element.md b/docs/framework/configure-apps/file-schema/runtime/disableStackOverflowProbing-element.md new file mode 100644 index 0000000000000..021ea35c36f1f --- /dev/null +++ b/docs/framework/configure-apps/file-schema/runtime/disableStackOverflowProbing-element.md @@ -0,0 +1,47 @@ +--- +description: "Learn more about: Element" +title: " Element" +ms.date: 04/20/2022 +--- +# \ Element + +Specifies whether stack-overflow probing is disabled. + +[**\**](../configuration-element.md)\ +  [**\**](runtime-element.md)\ +    **\** + +## Syntax + +```xml + +``` + +## Attribute + +| Attribute | Description | +|-----------|--------------------------------------------------------------------------------------| +| `enabled` | Required attribute.

Specifies whether stack-overflow probing is disabled. | + +### enabled Attribute + +| Value | Description | +|-------|-------------------------------------| +| true | Stack-overflow probing is enabled. | +| false | Stack-overflow probing is disabled. | + +### Parent Elements + +|Element|Description| +|-------------|-----------------| +|`configuration`|The root element in every configuration file used by the common language runtime and .NET Framework applications.| +|`runtime`|Contains information about runtime initialization options.| + +## Remarks + +The `` specifies whether stack-overflow probing is disabled. If you specify a very small stack size when constructing a by calling , you might need to disable stack-overflow probing. When the stack is severely constrained, the probing can itself cause a stack overflow. + +## See also + +- [\ Element](runtime-element.md) +- [\ Element](../configuration-element.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/index.md b/docs/framework/configure-apps/file-schema/runtime/index.md index 2c89f6160668c..a89847e63878e 100644 --- a/docs/framework/configure-apps/file-schema/runtime/index.md +++ b/docs/framework/configure-apps/file-schema/runtime/index.md @@ -1,16 +1,16 @@ --- -description: "Learn more about: Run-time settings schema" +description: "Learn more about: Runtime settings schema" title: "Runtime Settings Schema" -ms.date: "03/30/2017" +ms.date: 04/20/2022 helpviewer_keywords: - "schema runtime settings" - "configuration schema [.NET Framework], runtime settings" - "runtime settings schema" ms.assetid: f04816ab-110d-4e28-9283-845d6d9a4a68 --- -# Run-time settings schema +# Runtime settings schema -Run-time settings are used by the common language runtime to configure applications that target the .NET Framework. +Runtime settings are used by the common language runtime to configure applications that target .NET Framework. ## The \ section and its parent and child elements @@ -36,6 +36,7 @@ Run-time settings are used by the common language runtime to configure applicati     [\](disablecachingbindingfailures-element.md)\     [\](disablecommitthreadstack-element.md)\     [\](disablefusionupdatesfromadmanager-element.md)\ +    [\](disableStackOverflowProbing-element.md)\     [\](enableampmparseadjustment-element.md)\     [\](enforcefipspolicy-element.md)\     [\](etwenable-element.md)\ @@ -93,6 +94,7 @@ Run-time settings are used by the common language runtime to configure applicati |[\](disablecachingbindingfailures-element.md)|Specifies whether the caching of binding failures, which is the default behavior in the .NET Framework 2.0, is disabled.| |[\](disablecommitthreadstack-element.md)|Specifies whether the full thread stack is committed when a thread starts.| |[\](disablefusionupdatesfromadmanager-element.md)|Specifies whether the default behavior, which is to allow the runtime host to override configuration settings for an application domain, is disabled.| +|[\](disableStackOverflowProbing-element.md)|Specifies whether stack-overflow probing is disabled.| |[\](enableampmparseadjustment-element.md)|Determines whether date and time parsing methods use an adjusted set of rules to parse date strings that contain only a day, month, hour, and AM/PM designator.| |[\](enforcefipspolicy-element.md)|Specifies whether to enforce a computer configuration requirement that cryptographic algorithms must comply with the Federal Information Processing Standards (FIPS).| |[\](etwenable-element.md)|Specifies whether to enable event tracing for Windows (ETW) for common language runtime events.| diff --git a/docs/framework/configure-apps/file-schema/runtime/runtime-element.md b/docs/framework/configure-apps/file-schema/runtime/runtime-element.md index 1dbe0ed2ec3ac..9245a0b39d891 100644 --- a/docs/framework/configure-apps/file-schema/runtime/runtime-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/runtime-element.md @@ -49,6 +49,7 @@ None. |[\](disablecachingbindingfailures-element.md)|Specifies whether the caching of binding failures, which is the default behavior in the .NET Framework version 2.0, is disabled.| |[\](disablecommitthreadstack-element.md)|Specifies whether the full thread stack is committed when a thread is started.| |[\](disablefusionupdatesfromadmanager-element.md)|Specifies whether the default behavior, which is to allow the runtime host to override configuration settings for an application domain, is disabled.| +|[\](disableStackOverflowProbing-element.md)|Specifies whether stack-overflow probing is disabled.| |[\](enableampmparseadjustment-element.md)|Determines whether date and time parsing methods use an adjusted set of rules to parse date strings that contain only a day, month, hour, and AM/PM designator.| |[\](enforcefipspolicy-element.md)|Specifies whether to enforce a computer configuration requirement that cryptographic algorithms must comply with the Federal Information Processing Standards (FIPS).| |[\](etwenable-element.md)|Specifies whether to enable event tracing for Windows (ETW) for common language runtime events.| @@ -91,7 +92,7 @@ None. The child elements in the [\](runtime-element.md) section of a configuration file are used by the common language runtime to configure how an application executes. For example, the [\](gcserver-element.md) element determines whether the garbage collector uses workstation garbage collection or server garbage collection, the [\](userandomizedstringhashalgorithm-element.md) element determines whether the common language runtime calculates hash codes for string on a per-application or a per-application domain basis, and the `AppContextSwitchOverrides` element allows library users to opt in or opt out of changed functionality provided by a library. -The elements in the [\](runtime-element.md) section are read automatically by the common language runtime at application startup. You can also define the configuration file for a non-default application domain by supplying its name to the property; its settings are read automatically when the application domain is loaded. You should rarely, if ever, have a need to directly read the settings in the [\](runtime-element.md) section in your application's configuration file. +The elements in the [\](runtime-element.md) section are read automatically by the common language runtime at application startup. You can also define the configuration file for a non-default application domain by supplying its name to the property; its settings are read automatically when the application domain is loaded. You should rarely, if ever, have a need to directly read the settings in the [\](runtime-element.md) section of your application's configuration file. ## See also diff --git a/docs/framework/configure-apps/file-schema/runtime/toc.yml b/docs/framework/configure-apps/file-schema/runtime/toc.yml index 3b1a47c35954d..c9914907f0438 100644 --- a/docs/framework/configure-apps/file-schema/runtime/toc.yml +++ b/docs/framework/configure-apps/file-schema/runtime/toc.yml @@ -1,6 +1,7 @@ -- name: Run-time settings schema +items: +- name: Runtime settings schema href: index.md -- name: Run-time configuration +- name: Runtime configuration items: - name: element href: runtime-element.md @@ -48,6 +49,8 @@ href: disablecommitthreadstack-element.md - name: element href: disablefusionupdatesfromadmanager-element.md + - name: element + href: disableStackOverflowProbing-element.md - name: element href: enableampmparseadjustment-element.md - name: element @@ -106,7 +109,7 @@ href: userandomizedstringhashalgorithm-element.md - name: element href: usesmallinternalthreadstacks-element.md -- name: Run-time caching +- name: Runtime caching items: - name: element href: system-runtime-caching-element-cache-settings.md From 7c6e1a919f2253e2497f36bf5861d7b3d9ed5603 Mon Sep 17 00:00:00 2001 From: Scott Addie <10702007+scottaddie@users.noreply.github.com> Date: Thu, 21 Apr 2022 12:17:42 -0500 Subject: [PATCH 042/429] Fix typos in Azure SDK for .NET mgmt plane doc (#29139) * Fix typos in Azure SDK for .NET mgmt plane doc * Update resource-management.md --- docs/azure/sdk/resource-management.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/azure/sdk/resource-management.md b/docs/azure/sdk/resource-management.md index 3c709233d780b..cfa3c92cf2ebc 100644 --- a/docs/azure/sdk/resource-management.md +++ b/docs/azure/sdk/resource-management.md @@ -20,7 +20,7 @@ Those packages follow the [new Azure SDK guidelines](https://azure.github.io/azu - Distributed tracing. > [!NOTE] -> Stable versionv of [Azure.ResourceManager](https://www.nuget.org/packages/Azure.ResourceManager/1.0.0) and [Azure.ResourceManager.Resources](https://www.nuget.org/packages/Azure.ResourceManager.Resources) are now available, and phased releases of additional Azure services' client libraries are coming soon. +> The stable versions of [Azure.ResourceManager](https://www.nuget.org/packages/Azure.ResourceManager) and [Azure.ResourceManager.Resources](https://www.nuget.org/packages/Azure.ResourceManager.Resources) are now available. Phased releases of additional Azure services' management plane client libraries are coming soon. ## Get started @@ -83,7 +83,7 @@ For more information about the `Azure.Identity.DefaultAzureCredential` class, se ### Understanding Azure Resource Hierarchy -To reduce both the number of clients needed to perform common tasks and the amount of redundant parameters that each of those clients take, we have introduced an object hierarchy in the SDK that mimics the object hierarchy in Azure. Each resource client in the SDK has methods to access the resource clients of its children that is already scoped to the proper subscription and resource group. +To reduce both the number of clients needed to perform common tasks and the amount of redundant parameters that each of those clients take, we have introduced an object hierarchy in the SDK that mimics the object hierarchy in Azure. Each resource client in the SDK has methods to access the resource clients of its children that are already scoped to the proper subscription and resource group. To accomplish this, we're introducing 3 standard types for all resources in Azure: From 7913b88358bf8973094493e8e1fdc18a14a4752e Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Thu, 21 Apr 2022 13:03:49 -0700 Subject: [PATCH 043/429] Acrolinx 4/21 (#29141) --- docs/azure/sdk/resource-management.md | 51 +++++++++---------- .../code-analysis/quality-rules/ca1305.md | 2 +- 2 files changed, 25 insertions(+), 28 deletions(-) diff --git a/docs/azure/sdk/resource-management.md b/docs/azure/sdk/resource-management.md index cfa3c92cf2ebc..e42e07c266c21 100644 --- a/docs/azure/sdk/resource-management.md +++ b/docs/azure/sdk/resource-management.md @@ -10,7 +10,7 @@ author: nickzhums The next-generation of .NET SDK's management (or "management plane") libraries will help you create, provision, and manage Azure resources from within .NET applications. All Azure services have corresponding management libraries. -With the management libraries (names beginning with `Azure.ResourceManager`, e.g. `Azure.ResourceManager.Compute`), you can write configuration and deployment programs to perform the same tasks that you can through the Azure portal, Azure CLI, or other resource management tools. +With the management libraries (names beginning with `Azure.ResourceManager`, for example, `Azure.ResourceManager.Compute`), you can write configuration and deployment programs to perform the same tasks that you can through the Azure portal, Azure CLI, or other resource management tools. Those packages follow the [new Azure SDK guidelines](https://azure.github.io/azure-sdk/general_introduction.html), which provide core capabilities that are shared amongst all Azure SDKs, including: @@ -39,7 +39,7 @@ Install-Package Azure.ResourceManager.Compute -Version 1.0.0-beta.3 Install-Package Azure.ResourceManager.Network -Version 1.0.0-beta.3 ``` -# [dotnet cli](#tab/dotnetcli) +# [.NET CLI](#tab/dotnetcli) ```dotnetcli dotnet add package Azure.ResourceManager @@ -83,15 +83,14 @@ For more information about the `Azure.Identity.DefaultAzureCredential` class, se ### Understanding Azure Resource Hierarchy -To reduce both the number of clients needed to perform common tasks and the amount of redundant parameters that each of those clients take, we have introduced an object hierarchy in the SDK that mimics the object hierarchy in Azure. Each resource client in the SDK has methods to access the resource clients of its children that are already scoped to the proper subscription and resource group. +To reduce the number of clients needed to perform common tasks and the number of redundant parameters that each of those clients take, we've introduced an object hierarchy in the SDK that mimics the object hierarchy in Azure. Each resource client in the SDK has methods to access the resource clients of its children that are already scoped to the proper subscription and resource group. -To accomplish this, we're introducing 3 standard types for all resources in Azure: +To accomplish this, we're introducing three standard types for all resources in Azure: #### **[Resource].cs** -This represents a full resource client object which contains a **Data** property exposing the details as a **[Resource]Data** type. -It also has access to all of the operations on that resource without needing to pass in scope parameters such as subscription ID or resource name. This makes it very convenient to directly execute operations on the result of list calls -since everything is returned as a full resource client now. +This type represents a full resource client object that contains a **Data** property exposing the details as a **[Resource]Data** type. +It also has access to all of the operations on that resource without needing to pass in scope parameters such as subscription ID or resource name. This makes it convenient to directly execute operations on the result of list calls, since everything is returned as a full resource client now. ```csharp ArmClient armClient = new ArmClient(new DefaultAzureCredential()); @@ -108,11 +107,11 @@ await foreach (VirtualMachine vm in rg.GetVirtualMachines().GetAllAsync()) #### **[Resource]Data.cs** -This represents the model that makes up a given resource. Typically, this is the response data from a service call such as HTTP GET and provides details about the underlying resource. Previously, this was represented by a **Model** class. +This type represents the model that makes up a given resource. Typically, this is the response data from a service call such as HTTP GET and provides details about the underlying resource. Previously, this was represented by a **Model** class. #### **[Resource]Collection.cs** -This represents the operations you can perform on a collection of resources belonging to a specific parent resource. +This type represents the operations you can perform on a collection of resources belonging to a specific parent resource. This object provides most of the logical collection operations. | Collection Behavior | Collection Method | @@ -123,7 +122,7 @@ This object provides most of the logical collection operations. | Contains | CheckIfExists(string name) | | TryGet | GetIfExists(string name) | -For most things, the parent will be a **ResourceGroup**. However, each parent / child relationship is represented this way. For example, a **Subnet** is a child of a **VirtualNetwork** and a **ResourceGroup** is a child of a **Subscription**. +For most things, the parent will be a **ResourceGroup**. However, each parent-child relationship is represented this way. For example, a **Subnet** is a child of a **VirtualNetwork** and a **ResourceGroup** is a child of a **Subscription**. ### Putting it all together @@ -157,7 +156,7 @@ await foreach(VirtualMachine vm in vmCollection.GetAllAsync()) #### Structured Resource Identifier -Resource IDs contain useful information about the resource itself, but they are plain strings that have to be parsed. Instead of implementing your own parsing logic, you can use a `ResourceIdentifier` object which will do the parsing for you: `new ResourceIdentifier("myid");`. +Resource IDs contain useful information about the resource itself, but they're plain strings that have to be parsed. Instead of implementing your own parsing logic, you can use a `ResourceIdentifier` object that will do the parsing for you: `new ResourceIdentifier("myid");`. #### Example: Parsing an ID using a ResourceIdentifier object @@ -170,7 +169,7 @@ Console.WriteLine($"Vnet: {id.Parent.Name}"); Console.WriteLine($"Subnet: {id.Name}"); ``` -However, keep in mind that some of those properties could be null. You can usually tell by the id string itself which type a resource ID is, but if you are unsure, check if the properties are null or use the Try methods to retrieve the values as it's shown below: +However, keep in mind that some of those properties could be null. You can usually tell by the ID string itself which type a resource ID is. But if you're unsure, check if the properties are null, or use the `Try` methods to retrieve the values, as shown in the following example. #### Example: ResourceIdentifier TryGet methods @@ -189,11 +188,11 @@ Console.WriteLine($"Vnet: {id.Parent.Name}"); Console.WriteLine($"Subnet: {id.Name}"); ``` -### Managing Existing Resources By Id +### Managing Existing Resources By ID -Performing operations on resources that already exist is a common use case when using the management client libraries. In this scenario you usually have the identifier of the resource you want to work on as a string. Although the new object hierarchy is great for provisioning and working within the scope of a given parent, it is not the most efficient when it comes to this specific scenario. +Performing operations on resources that already exist is a common use case when using the management client libraries. In this scenario, you usually have the identifier of the resource you want to work on as a string. Although the new object hierarchy is great for provisioning and working within the scope of a given parent, it is not the most efficient when it comes to this specific scenario. -Here is an example how you to access an `AvailabilitySet` object and manage it directly with its id: +Here's an example how you to access an `AvailabilitySet` object and manage it directly with its ID: ```csharp using Azure.Identity; @@ -218,7 +217,7 @@ ResourceGroup resourceGroup = await subscription.GetResourceGroups().GetAsync(id AvailabilitySet availabilitySet = await resourceGroup.GetAvailabilitySets().GetAsync(id.Name); ``` -This approach required a lot of code and 3 API calls to Azure. The same can be done with less code and without any API calls by using extension methods that we have provided on the client itself. These extension methods allow you to pass in a resource identifier and retrieve a scoped resource client. The object returned is a *[Resource]* mentioned above, since it has not reached out to Azure to retrieve the data yet the Data property will be null. +This approach required a lot of code and three API calls to Azure. The same can be done with less code and without any API calls by using extension methods that we've provided on the client itself. These extension methods allow you to pass in a resource identifier and retrieve a scoped resource client. The object returned is a [Resource](#resourcecs). Since it hasn't reached out to Azure to retrieve the data yet, the `Data` property will be null. So, the previous example would end up looking like this: @@ -238,11 +237,11 @@ Console.WriteLine(availabilitySet.Data.Name); ### Check if a [Resource] exists -If you are not sure if a resource you want to get exists, or you just want to check if it exists, you can use `GetIfExists()` or `CheckIfExists()` methods, which can be invoked from any [Resource]Collection class. +If you aren't sure if a resource you want to get exists, or you just want to check if it exists, you can use `GetIfExists()` or `CheckIfExists()` methods, which can be invoked from any [Resource]Collection class. -`GetIfExists()` and `GetIfExistsAsync()` return a `Response` where T is null if the specified resource does not exist. On the other hand, `CheckIfExists()` and `CheckIfExistsAsync()` return `Response` where the bool will be false if the specified resource does not exist. Both of these methods still give you access to the underlying raw response. +`GetIfExists()` and `GetIfExistsAsync()` return a `Response`, where `T` is null if the specified resource does not exist. On the other hand, `CheckIfExists()` and `CheckIfExistsAsync()` return `Response` where the Boolean value is false if the specified resource does not exist. Both of these methods still give you access to the underlying raw response. -In previous versions of packages, you would have to catch the `RequestFailedException` and inspect the status code for 404. With this new API, we hope that this can boost the developer productivity and optimize resource access. . +In previous versions of packages, you would have to catch the `RequestFailedException` and inspect the status code for 404. With this new API, we hope that this can boost the developer productivity and optimize resource access. ```csharp ArmClient armClient = new ArmClient(new DefaultAzureCredential()); @@ -260,7 +259,7 @@ catch (RequestFailedException ex) when (ex.Status == 404) } ``` -Now with these convenience methods we can simply do the following. +Now with these convenience methods, we can simply do the following. ```csharp ArmClient armClient = new ArmClient(new DefaultAzureCredential()); @@ -283,7 +282,7 @@ else } ``` -Another way to do this is by using `GetIfExists()` which will avoid the race condition mentioned above: +Another way to do this is by using `GetIfExists()`, which avoids the race condition mentioned previously: ```csharp ArmClient armClient = new ArmClient(new DefaultAzureCredential()); @@ -361,10 +360,8 @@ For more detailed examples, take a look at [samples](https://github.com/Azure/az ## Troubleshooting - If you have a bug to report or have a suggestion, file an issue via [GitHub issues](https://github.com/Azure/azure-sdk-for-net/issues) and make sure you add the "Preview" label to the issue. -- If you need help, check [previous - questions](https://stackoverflow.com/questions/tagged/azure+.net) - or ask new ones on StackOverflow using azure and .NET tags. -- If having trouble with authentication, go to [DefaultAzureCredential documentation](/dotnet/api/azure.identity.defaultazurecredential). +- If you need help, check [previous questions](https://stackoverflow.com/questions/tagged/azure+.net), or ask new ones on StackOverflow using Azure and .NET tags. +- If having trouble with authentication, see the [DefaultAzureCredential documentation](/dotnet/api/azure.identity.defaultazurecredential). ## Next steps @@ -376,6 +373,6 @@ For more detailed examples, take a look at [samples](https://github.com/Azure/az ### Additional Documentation -If you are migrating from the old SDK to this preview, check out this [Migration guide](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/resourcemanager/Azure.ResourceManager/docs/MigrationGuide.md). +If you're migrating from the old SDK to this preview, check out this [Migration guide](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/resourcemanager/Azure.ResourceManager/docs/MigrationGuide.md). -For more information on Azure SDK, please refer to [this website](https://azure.github.io/azure-sdk/). +For more information on Azure SDK, see [Azure SDK Releases](https://azure.github.io/azure-sdk/). diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1305.md b/docs/fundamentals/code-analysis/quality-rules/ca1305.md index 9c66dbb9955de..f667d76b46bb1 100644 --- a/docs/fundamentals/code-analysis/quality-rules/ca1305.md +++ b/docs/fundamentals/code-analysis/quality-rules/ca1305.md @@ -24,7 +24,7 @@ dev_langs: ## Cause -A method or constructor calls one or more members that have overloads that accept a parameter, and the method or constructor does not call the overload that takes the parameter. +A call is made to a method that has an overload that accepts a parameter, and that overload isn't called. This rule ignores calls to .NET methods that are documented as ignoring the parameter. The rule also ignores the following methods: From 26e57eb9f59031b35368914a6e888c3b11d30cdf Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Fri, 22 Apr 2022 07:02:50 -0700 Subject: [PATCH 044/429] Update package index with latest published versions (#29140) --- docs/azure/includes/dotnet-all.md | 16 ++++++++-------- docs/azure/includes/dotnet-new.md | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index b0f45dcd6889e..43b25d2154bde 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -59,7 +59,7 @@ | Storage - Files Shares | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.9.0/sdk/storage/Azure.Storage.Files.Shares/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.10.0-beta.1/sdk/storage/Azure.Storage.Files.Shares/) | | Storage - Queues | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Queues/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Queues/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.9.0/sdk/storage/Azure.Storage.Queues/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.10.0-beta.1/sdk/storage/Azure.Storage.Queues/) | | Synapse - AccessControl | NuGet [1.0.0-preview.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.AccessControl/1.0.0-preview.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.AccessControl-readme-pre) | GitHub [1.0.0-preview.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.AccessControl_1.0.0-preview.5/sdk/synapse/Azure.Analytics.Synapse.AccessControl/) | -| Synapse - Artifacts | NuGet [1.0.0-preview.14](https://www.nuget.org/packages/Azure.Analytics.Synapse.Artifacts/1.0.0-preview.14) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Artifacts-readme-pre) | GitHub [1.0.0-preview.14](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Artifacts_1.0.0-preview.14/sdk/synapse/Azure.Analytics.Synapse.Artifacts/) | +| Synapse - Artifacts | NuGet [1.0.0-preview.15](https://www.nuget.org/packages/Azure.Analytics.Synapse.Artifacts/1.0.0-preview.15) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Artifacts-readme-pre) | GitHub [1.0.0-preview.15](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Artifacts_1.0.0-preview.15/sdk/synapse/Azure.Analytics.Synapse.Artifacts/) | | Synapse - Managed Private Endpoints | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.ManagedPrivateEndpoints/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.ManagedPrivateEndpoints-readme-pre) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.ManagedPrivateEndpoints_1.0.0-beta.5/sdk/synapse/Azure.Analytics.Synapse.ManagedPrivateEndpoints/) | | Synapse - Monitoring | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Analytics.Synapse.Monitoring/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Monitoring-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Monitoring_1.0.0-beta.3/sdk/synapse/Azure.Analytics.Synapse.Monitoring/) | | Synapse - Spark | NuGet [1.0.0-preview.8](https://www.nuget.org/packages/Azure.Analytics.Synapse.Spark/1.0.0-preview.8) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Spark-readme-pre) | GitHub [1.0.0-preview.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Spark_1.0.0-preview.8/sdk/synapse/Azure.Analytics.Synapse.Spark/) | @@ -70,8 +70,8 @@ | CloudNative CloudEvents with Event Grid | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents_1.0.0/sdk/eventgrid/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/) | | Core Spatial | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.1.0/sdk/core/Microsoft.Azure.Core.Spatial/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.2.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial/) | | Core Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) | -| WebJobs Extensions - Event Grid | NuGet [3.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.1.0/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | -| WebJobs Extensions - Event Hubs | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.0.1/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | +| WebJobs Extensions - Event Grid | NuGet [3.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.2.0/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | +| WebJobs Extensions - Event Hubs | NuGet [5.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.1.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | | WebJobs Extensions - Service Bus | NuGet [5.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.3.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | | WebJobs Extensions - SignalR Service | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.8.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) | | WebJobs Extensions - Storage | NuGet [5.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.0](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | @@ -374,7 +374,7 @@ | Storage - Queues | NuGet [11.2.3](https://www.nuget.org/packages/Microsoft.Azure.Storage.Queue/11.2.3) | | GitHub [11.2.3](https://github.com/Azure/azure-storage-net/tree/master/Queue) | | Synapse | NuGet [0.1.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Synapse/0.1.0-preview) | | GitHub [0.1.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Synapse_0.1.0-preview/sdk/synapse/Microsoft.Azure.Synapse/) | | Synapse - AccessControl | NuGet [1.0.0-preview.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.AccessControl/1.0.0-preview.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.AccessControl-readme-pre) | GitHub [1.0.0-preview.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.AccessControl_1.0.0-preview.5/sdk/synapse/Azure.Analytics.Synapse.AccessControl/) | -| Synapse - Artifacts | NuGet [1.0.0-preview.14](https://www.nuget.org/packages/Azure.Analytics.Synapse.Artifacts/1.0.0-preview.14) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Artifacts-readme-pre) | GitHub [1.0.0-preview.14](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Artifacts_1.0.0-preview.14/sdk/synapse/Azure.Analytics.Synapse.Artifacts/) | +| Synapse - Artifacts | NuGet [1.0.0-preview.15](https://www.nuget.org/packages/Azure.Analytics.Synapse.Artifacts/1.0.0-preview.15) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Artifacts-readme-pre) | GitHub [1.0.0-preview.15](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Artifacts_1.0.0-preview.15/sdk/synapse/Azure.Analytics.Synapse.Artifacts/) | | Synapse - Managed Private Endpoints | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.ManagedPrivateEndpoints/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.ManagedPrivateEndpoints-readme-pre) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.ManagedPrivateEndpoints_1.0.0-beta.5/sdk/synapse/Azure.Analytics.Synapse.ManagedPrivateEndpoints/) | | Synapse - Monitoring | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Analytics.Synapse.Monitoring/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Monitoring-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Monitoring_1.0.0-beta.3/sdk/synapse/Azure.Analytics.Synapse.Monitoring/) | | Synapse - Spark | NuGet [1.0.0-preview.8](https://www.nuget.org/packages/Azure.Analytics.Synapse.Spark/1.0.0-preview.8) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Spark-readme-pre) | GitHub [1.0.0-preview.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Spark_1.0.0-preview.8/sdk/synapse/Azure.Analytics.Synapse.Spark/) | @@ -414,7 +414,7 @@ | WebJobs Extensions - Auth Tokens | NuGet [1.0.0-beta6](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.AuthTokens/1.0.0-beta6) | | GitHub [1.0.0-beta6](https://github.com/Azure/azure-webjobs-sdk-extensions) | | WebJobs Extensions - Cosmos DB | NuGet [3.0.10](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/3.0.10)
NuGet [4.0.0-preview3](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/4.0.0-preview3) | | GitHub [3.0.10](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/cosmos-v3.0.7/src/WebJobs.Extensions.CosmosDB) | | WebJobs Extensions - Document DB | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DocumentDB/1.3.0) | | GitHub [1.3.0](https://github.com/Azure/azure-webjobs-sdk-extensions) | -| WebJobs Extensions - Durable Task | NuGet [2.6.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/2.6.1) | [docs](/dotnet/api/overview/azure/functions) | GitHub [2.6.1](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) | +| WebJobs Extensions - Durable Task | NuGet [2.7.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/2.7.0) | [docs](/dotnet/api/overview/azure/functions) | GitHub [2.7.0](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) | | WebJobs Extensions - Durable Task Analyzers | NuGet [0.4.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers/0.4.2) | | GitHub [0.4.2](https://github.com/Azure/azure-functions-durable-extension/tree/Analyzer-v0.3.0/src/WebJobs.Extensions.DurableTask.Analyzers) | | WebJobs Extensions - Edge Hub | NuGet [1.0.7](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EdgeHub/1.0.7) | | GitHub [1.0.7](https://github.com/Azure/iotedge/tree/1.0.7/edge-hub) | | WebJobs Extensions - Http | NuGet [3.0.12](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Http/3.0.12) | | GitHub [3.0.12](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.2/src/WebJobs.Extensions.Http) | @@ -458,8 +458,8 @@ | Core Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.NewtonsoftJson/1.0.0) | | | | Core Spatial | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.1.0/sdk/core/Microsoft.Azure.Core.Spatial/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.2.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial/) | | Core Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) | -| WebJobs Extensions - Event Grid | NuGet [3.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.1.0/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | -| WebJobs Extensions - Event Hubs | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.0.1/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | +| WebJobs Extensions - Event Grid | NuGet [3.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.2.0/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | +| WebJobs Extensions - Event Hubs | NuGet [5.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.1.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | | WebJobs Extensions - Service Bus | NuGet [5.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.3.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | | WebJobs Extensions - SignalR Service | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.8.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) | | WebJobs Extensions - Storage | NuGet [5.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.0](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | @@ -505,7 +505,7 @@ | Management - Bot Service | NuGet [0.9.3-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.BotService/0.9.3-preview) | | GitHub [0.9.3-preview](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/botservice/Microsoft.Azure.Management.BotService) | | Management - Cognitive Services | NuGet [8.2.0](https://www.nuget.org/packages/Microsoft.Azure.Management.CognitiveServices/8.2.0) | | GitHub [8.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.CognitiveServices_8.2.0/sdk/cognitiveservices/Microsoft.Azure.Management.CognitiveServices/) | | Management - Cognitive Services Fluent | NuGet [1.9.1-beta](https://www.nuget.org/packages/Microsoft.Azure.Management.CognitiveServices.Fluent/1.9.1-beta) | | | -| Management - Compute | NuGet [54.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.Compute/54.0.0) | | GitHub [54.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.Compute_54.0.0/sdk/compute/Microsoft.Azure.Management.Compute/) | +| Management - Compute | NuGet [54.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.Compute/54.0.0)
NuGet [54.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.Management.Compute/54.1.0-preview.1) | | GitHub [54.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.Compute_54.0.0/sdk/compute/Microsoft.Azure.Management.Compute/)
GitHub [54.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.Compute_54.1.0-preview.1/sdk/compute/Microsoft.Azure.Management.Compute/) | | Management - Compute Fluent | NuGet [1.38.1](https://www.nuget.org/packages/Microsoft.Azure.Management.Compute.Fluent/1.38.1) | [docs](/dotnet/api/overview/azure/virtualmachines) | | | Management - Confluent | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.Management.Confluent/1.0.1) | | | | Management - Consumption | NuGet [3.0.2](https://www.nuget.org/packages/Microsoft.Azure.Management.Consumption/3.0.2) | | GitHub [3.0.2](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/consumption/Microsoft.Azure.Management.Consumption) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index c680eaeaaba5b..d9d74dc65260b 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -59,7 +59,7 @@ | Storage - Files Shares | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.9.0/sdk/storage/Azure.Storage.Files.Shares/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.10.0-beta.1/sdk/storage/Azure.Storage.Files.Shares/) | | Storage - Queues | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Queues/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Queues/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.9.0/sdk/storage/Azure.Storage.Queues/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.10.0-beta.1/sdk/storage/Azure.Storage.Queues/) | | Synapse - AccessControl | NuGet [1.0.0-preview.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.AccessControl/1.0.0-preview.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.AccessControl-readme-pre) | GitHub [1.0.0-preview.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.AccessControl_1.0.0-preview.5/sdk/synapse/Azure.Analytics.Synapse.AccessControl/) | -| Synapse - Artifacts | NuGet [1.0.0-preview.14](https://www.nuget.org/packages/Azure.Analytics.Synapse.Artifacts/1.0.0-preview.14) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Artifacts-readme-pre) | GitHub [1.0.0-preview.14](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Artifacts_1.0.0-preview.14/sdk/synapse/Azure.Analytics.Synapse.Artifacts/) | +| Synapse - Artifacts | NuGet [1.0.0-preview.15](https://www.nuget.org/packages/Azure.Analytics.Synapse.Artifacts/1.0.0-preview.15) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Artifacts-readme-pre) | GitHub [1.0.0-preview.15](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Artifacts_1.0.0-preview.15/sdk/synapse/Azure.Analytics.Synapse.Artifacts/) | | Synapse - Managed Private Endpoints | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.ManagedPrivateEndpoints/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.ManagedPrivateEndpoints-readme-pre) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.ManagedPrivateEndpoints_1.0.0-beta.5/sdk/synapse/Azure.Analytics.Synapse.ManagedPrivateEndpoints/) | | Synapse - Monitoring | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Analytics.Synapse.Monitoring/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Monitoring-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Monitoring_1.0.0-beta.3/sdk/synapse/Azure.Analytics.Synapse.Monitoring/) | | Synapse - Spark | NuGet [1.0.0-preview.8](https://www.nuget.org/packages/Azure.Analytics.Synapse.Spark/1.0.0-preview.8) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Spark-readme-pre) | GitHub [1.0.0-preview.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Spark_1.0.0-preview.8/sdk/synapse/Azure.Analytics.Synapse.Spark/) | @@ -70,8 +70,8 @@ | CloudNative CloudEvents with Event Grid | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents_1.0.0/sdk/eventgrid/Microsoft.Azure.Messaging.EventGrid.CloudNativeCloudEvents/) | | Core Spatial | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.1.0/sdk/core/Microsoft.Azure.Core.Spatial/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.2.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial/) | | Core Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) | -| WebJobs Extensions - Event Grid | NuGet [3.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.1.0/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | -| WebJobs Extensions - Event Hubs | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.0.1/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | +| WebJobs Extensions - Event Grid | NuGet [3.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.2.0/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | +| WebJobs Extensions - Event Hubs | NuGet [5.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.1.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | | WebJobs Extensions - Service Bus | NuGet [5.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.3.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | | WebJobs Extensions - SignalR Service | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.8.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) | | WebJobs Extensions - Storage | NuGet [5.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.0](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | From 9073e6e05398186625566442a2d6201e16780d6a Mon Sep 17 00:00:00 2001 From: Jon Hutchings <71718777+sixtymage@users.noreply.github.com> Date: Fri, 22 Apr 2022 16:50:49 +0200 Subject: [PATCH 045/429] Fix a typo (#29135) * Update csharp-9.md Fix grammar typo * Update csharp-9.md Improved wording * Update docs/csharp/whats-new/csharp-9.md Co-authored-by: Bill Wagner --- docs/csharp/whats-new/csharp-9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/whats-new/csharp-9.md b/docs/csharp/whats-new/csharp-9.md index f611abd3945e1..c1bdc17d3ffe3 100644 --- a/docs/csharp/whats-new/csharp-9.md +++ b/docs/csharp/whats-new/csharp-9.md @@ -197,7 +197,7 @@ For more information, see [Top-level statements](../fundamentals/program-structu C# 9 includes new pattern matching improvements: -- ***Type patterns*** match a variable is a type +- ***Type patterns*** match an object matches a particular type - ***Parenthesized patterns*** enforce or emphasize the precedence of pattern combinations - ***Conjunctive `and` patterns*** require both patterns to match - ***Disjunctive `or` patterns*** require either pattern to match From 3f2659016b1cec452efb91e0780eeb6ffe113f70 Mon Sep 17 00:00:00 2001 From: David Pine Date: Fri, 22 Apr 2022 11:24:02 -0500 Subject: [PATCH 046/429] Update portability-analyzer.md (#29148) --- docs/standard/analyzers/portability-analyzer.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/standard/analyzers/portability-analyzer.md b/docs/standard/analyzers/portability-analyzer.md index 02c5601b4c83e..48bee666ff5b2 100644 --- a/docs/standard/analyzers/portability-analyzer.md +++ b/docs/standard/analyzers/portability-analyzer.md @@ -1,7 +1,7 @@ --- title: The .NET Portability Analyzer - .NET description: Learn how to use the .NET Portability Analyzer tool to evaluate how portable your code is among the various .NET implementations, including .NET Core, .NET Standard, UWP, and Xamarin. -ms.date: 05/04/2021 +ms.date: 04/22/2022 ms.assetid: 0375250f-5704-4993-a6d5-e21c499cea1e --- @@ -21,7 +21,12 @@ Once you've converted your project to target the new platform, like .NET Core, y ## How to use the .NET Portability Analyzer -To begin using the .NET Portability Analyzer in Visual Studio, you first need to download and install the extension from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=ConnieYau.NETPortabilityAnalyzer). It works on Visual Studio 2017 and later versions. Configure it in Visual Studio via **Analyze** > **Portability Analyzer Settings** and select your Target Platforms, which are the .NET platforms/versions that you want to evaluate the portability gaps comparing with the platform/version that your current assembly is built with. +To begin using the .NET Portability Analyzer in Visual Studio, you first need to download and install the extension from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=ConnieYau.NETPortabilityAnalyzer). It works on Visual Studio 2017 and Visual Studio 2019 versions. + +> [!IMPORTANT] +> The .NET Portability Anazyler is not supported in Visual Studio 2022. + +Configure it in Visual Studio via **Analyze** > **Portability Analyzer Settings** and select your Target Platforms, which are the .NET platforms/versions that you want to evaluate the portability gaps comparing with the platform/version that your current assembly is built with. ![Screenshot of portability analyzer.](./media/portability-analyzer/portability-screenshot.png) From 3efd59151a7421172658a6fbcf88a0bd5fa7a92d Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Fri, 22 Apr 2022 16:20:40 -0700 Subject: [PATCH 047/429] Update versioning-sdk-msbuild-vs.md (#29149) --- .../core/porting/versioning-sdk-msbuild-vs.md | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/docs/core/porting/versioning-sdk-msbuild-vs.md b/docs/core/porting/versioning-sdk-msbuild-vs.md index d6f9713c68ec9..0db0d75000658 100644 --- a/docs/core/porting/versioning-sdk-msbuild-vs.md +++ b/docs/core/porting/versioning-sdk-msbuild-vs.md @@ -19,28 +19,34 @@ For example, version 5.0.203 ships with .NET 5, is the second minor Visual Studi The support timeframe for the SDK typically matches that of the Visual Studio version it's included in. -| SDK Version | MSBuild/VS version | Ship date | Lifecycle | +| SDK Version | MSBuild/Visual Studio version | Ship date | Lifecycle | |------------------|--------------------|--------------|-----------| -| 2.1.5xx | 15.9 | Nov '18 | Aug '21* | +| 2.1.5xx | 15.9 | Nov '18 | Aug '211 | | 2.1.8xx | 16.2 (No VS) | July '19 | Aug '21 | | 3.1.1xx | 16.4 | Dec '19 | Oct '21 | | 3.1.4xx | 16.7 | Aug '20 | Dec '22 | | 5.0.1xx | 16.8 | Nov '20 | Mar '21 | -| 5.0.2xx | 16.9 | March '21 | Aug '22 | +| 5.0.2xx | 16.9 | March '21 | May '221 | | 5.0.3xx | 16.10 | May '21 | Aug '21 | -| 5.0.4xx | 16.11 | Aug '21 | Feb '22* | -| 6.0.100 | 17.0** | Nov '21 | TBD | -| 6.0.200 | 17.1 | Feb '22 | TBD | -| 6.0.300 | 17.2^ | TBD | TBD | +| 5.0.4xx | 16.11 | Aug '21 | May '221 | +| 6.0.100 | 17.02 | Nov '21 | Jul '23 | +| 6.0.200 | 17.1 | Feb '22 | May '22 | +| 6.0.300 | 17.23 | May '22 | TBD | +| 6.0.400 | 17.3 | TBD | TBD | +| 7.0.100 | 17.4 | TBD | TBD | > [!NOTE] > Targeting `net6.0` is officially supported in Visual Studio 17.0+ only. -> \* MSBuild/Visual Studio supported for longer +> 1 MSBuild/Visual Studio supported for longer. > -> \*\* When .NET 6 releases, the goal is for the .NET SDK to be functional in version 16.11 for **downlevel** targeting. This means that you're not forced to update your SDK and Visual Studio versions simultaneously. However, you won't be able to target .NET 6 because of limitations in 6.0 features and C#10 features in version 16.11. This compatibility is specifically for targeting 5.0 and below. +> [Visual Studio 2019 Lifecycle](/lifecycle/products/visual-studio-2019) > -> ^ 6.0.300 and newer SDKs require a minimum Visual Studio version of 17.0. +> [Visual Studio 2022 Lifecycle](/lifecycle/products/visual-studio-2022) + +> 2 With .NET 6, the.NET 6.0.100 SDK can be used in version 16.11 for **downlevel** targeting. This means that you're not forced to update your SDK and Visual Studio versions simultaneously. However, you won't be able to target .NET 6 because of limitations in 6.0 features and C# 10 features in version 16.11. This compatibility is specifically for targeting 5.0 and below. +> +> 3 6.0.300 and newer SDKs require a minimum Visual Studio version of 17.0. Expect breaking changes that require a new MSBuild and Visual Studio version at least once a year, for each major SDK release. All versions of 5.0.Nxx SDK will load on all versions of Visual Studio and MSBuild from 16.8 - 16.11, as no breaking changes were made during that time. There shouldn't be breaking changes in SDK feature (patch) updates. From 07a3fb679b215ef4fe63af230393b6720af6a9c1 Mon Sep 17 00:00:00 2001 From: "Andy (Steve) De George" <67293991+adegeo@users.noreply.github.com> Date: Sun, 24 Apr 2022 11:36:46 -0700 Subject: [PATCH 048/429] update code example (#29096) --- .../csharp/CountTextElements.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standard/base-types/snippets/character-encoding-introduction/csharp/CountTextElements.cs b/docs/standard/base-types/snippets/character-encoding-introduction/csharp/CountTextElements.cs index ddf028e08f930..ae763538c512f 100644 --- a/docs/standard/base-types/snippets/character-encoding-introduction/csharp/CountTextElements.cs +++ b/docs/standard/base-types/snippets/character-encoding-introduction/csharp/CountTextElements.cs @@ -9,7 +9,7 @@ partial class CountTextElements public static void Run() { // - PrintTextElementCount("á"); + PrintTextElementCount("a"); // Number of chars: 1 // Number of runes: 1 // Number of text elements: 1 @@ -41,8 +41,8 @@ static void PrintTextElementCount(string s) } Console.WriteLine($"Number of text elements: {textElementCount}"); - // } + // } } } From d24e11d0f7d58a57aa866ec12fde6a9cb318bcab Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 25 Apr 2022 05:47:54 -0700 Subject: [PATCH 049/429] Update package index with latest published versions (#29150) --- docs/azure/includes/dotnet-all.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 43b25d2154bde..00f863a413849 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -136,7 +136,7 @@ | Microsoft.Azure.IoT.Edge.Function | NuGet [3.5.3](https://www.nuget.org/packages/Microsoft.Azure.IoT.Edge.Function/3.5.3) | | | | Microsoft.Azure.IoT.Edge.Module | NuGet [3.1.1](https://www.nuget.org/packages/Microsoft.Azure.IoT.Edge.Module/3.1.1) | | | | Microsoft.Azure.Management.ChangeAnalysis | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.ChangeAnalysis/1.0.0) | | | -| Microsoft.Azure.Management.Chaos | NuGet [0.9.15-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.Chaos/0.9.15-preview) | | | +| Microsoft.Azure.Management.Chaos | NuGet [0.9.15-preview.1](https://www.nuget.org/packages/Microsoft.Azure.Management.Chaos/0.9.15-preview.1) | | | | Microsoft.Azure.Management.DataProtection.Backup | NuGet [2.0.0.1](https://www.nuget.org/packages/Microsoft.Azure.Management.DataProtection.Backup/2.0.0.1) | | | | Microsoft.Azure.Management.DeviceUpdate | NuGet [1.0.1-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Management.DeviceUpdate/1.0.1-beta.1) | | | | Microsoft.Azure.Management.Elastic | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Management.Elastic/1.0.0-beta.1) | | | From d23b567d43e66963371ba92c01152fc23254c6e6 Mon Sep 17 00:00:00 2001 From: GitHubPang <61439577+GitHubPang@users.noreply.github.com> Date: Mon, 25 Apr 2022 21:42:30 +0800 Subject: [PATCH 050/429] Fix typos (#29166) --- .../core-libraries/7.0/compressionlevel-validation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/compatibility/core-libraries/7.0/compressionlevel-validation.md b/docs/core/compatibility/core-libraries/7.0/compressionlevel-validation.md index 7b3c7c9e70532..6b3da6675ce39 100644 --- a/docs/core/compatibility/core-libraries/7.0/compressionlevel-validation.md +++ b/docs/core/compatibility/core-libraries/7.0/compressionlevel-validation.md @@ -9,7 +9,7 @@ The argument that's passed to parameter was considered valid. The value would either map to the one of the enumeration's defined values or passed as-is to the underlying Brotli implementation. +Passing any value between 0 and 11 for the parameter was considered valid. The value would either map to one of the enumeration's defined values or be passed as-is to the underlying Brotli implementation. ## New behavior From 590ed49dcf829d0b0a8d68bf5367e9d65d7ee217 Mon Sep 17 00:00:00 2001 From: N0D4N <50947930+N0D4N@users.noreply.github.com> Date: Mon, 25 Apr 2022 18:07:43 +0300 Subject: [PATCH 051/429] Remove repeating word in dotnet-install script doc (#29158) --- docs/core/tools/dotnet-install-script.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/tools/dotnet-install-script.md b/docs/core/tools/dotnet-install-script.md index 705e85cf2c902..285d43a09bcfb 100644 --- a/docs/core/tools/dotnet-install-script.md +++ b/docs/core/tools/dotnet-install-script.md @@ -158,7 +158,7 @@ The install scripts do not update the registry on Windows. They just download th The `version` parameter overrides the `channel` and `quality` parameters when any `version` other than `latest` is used. - Available since since the 5.0 release. + Available since the 5.0 release. - **`-Runtime|--runtime `** From 586552141c4cde4752151d3d9495275c688ec8c9 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 25 Apr 2022 13:39:28 -0700 Subject: [PATCH 052/429] Remove CAS code from snippets (#29144) --- ...n-element-based-on-a-property-condition.md | 8 +- .../invoke-a-control-using-ui-automation.md | 8 +- .../best-practices-for-security-in-wcf.md | 2 +- .../snippets/csharp/all-rules/ca2229.cs | 3 - .../snippets/csharp/all-rules/ca2237.cs | 3 - .../serialization/custom-serialization.md | 20 +- .../serialization/serialization-guidelines.md | 5 - .../statements/end-statement.md | 1 - .../cpp/app.xaml | 8 - .../cpp/d3dhost.csproj | 93 ---- .../cpp/dllmain.cpp | 100 ---- .../cpp/renderer.cpp | 168 ------ .../cpp/renderer.h | 28 - .../cpp/renderermanager.cpp | 518 ------------------ .../cpp/renderermanager.h | 49 -- .../cpp/stdafx.h | 26 - .../cpp/trianglerenderer.cpp | 161 ------ .../cpp/trianglerenderer.h | 20 - .../cpp/window1.xaml | 14 - .../cpp/window1.xaml.cs | 219 -------- .../cs/Project.csproj | 12 + .../cs/makefile | 4 - .../cs/source.cs | 3 - .../cs/program.cs | 5 +- .../cs/Project.csproj | 11 + .../c_controlserviceinstancing/cs/makefile | 4 - .../c_controlserviceinstancing/cs/source.cs | 6 +- .../c_createsecuresession/cs/Project.csproj | 11 + .../c_createsecuresession/cs/makefile | 4 - .../c_createsecuresession/cs/secureservice.cs | 7 +- .../c_createstatefulsct/cs/Project.csproj | 13 + .../c_createstatefulsct/cs/secureservice.cs | 4 +- .../c_creatests/cs/Project.csproj | 13 + .../VS_Snippets_CFX/c_creatests/cs/source.cs | 3 - .../c_customauthmgr/cs/Project.csproj | 13 + .../c_customauthmgr/cs/c_customauthmgr.cs | 4 +- .../c_customauthpol/cs/Project.csproj | 13 + .../c_customauthpol/cs/c_customauthpol.cs | 4 +- .../c_custombinding/cs/Project.csproj | 13 + .../c_custombinding/cs/c_custombinding.cs | 4 +- .../cs/Project.csproj | 13 + .../c_custombindingsauthmode/cs/source.cs | 5 +- .../cs/Project.csproj | 13 + .../c_customcertificatevalidator/cs/source.cs | 4 - .../c_customclaim/cs/Project.csproj | 13 + .../c_customclaim/cs/c_customclaim.cs | 4 +- .../c_customclaimcomparison/cs/Project.csproj | 13 + .../cs/c_customclaimcomparison.cs | 4 +- .../c_customcredentials/cs/Project.csproj | 14 + .../c_customcredentials/cs/makefile | 4 - .../c_customcredentials/cs/source.cs | 3 - .../cs/Project.csproj | 13 + .../cs/c_customfederationbinding.cs | 5 +- .../c_customtoken/cs/Project.csproj | 13 + .../c_customtoken/cs/source.cs | 3 - .../cs/Project.csproj | 13 + .../c_customtokenauthenticator/cs/source.cs | 3 - .../c_customtokenprovider/cs/Project.csproj | 13 + .../c_customtokenprovider/cs/source.cs | 4 +- .../c_customx509token/cs/Project.csproj | 15 + .../c_customx509token/cs/makefile | 4 - .../c_customx509token/cs/source.cs | 3 - .../c_dataarchitecture/cs/Project.csproj | 13 + .../c_dataarchitecture/cs/source.cs | 7 +- .../c_datacontract/cs/Project.csproj | 13 + .../c_datacontract/cs/source.cs | 4 +- .../c_datacontractenumerations/cs/source.cs | 3 +- .../c_datacontractversioning/cs/source.cs | 4 +- .../c_delegation/cs/Project.csproj | 13 + .../VS_Snippets_CFX/c_delegation/cs/source.cs | 2 - .../c_federatedclient/cs/Project.csproj | 13 + .../c_federatedclient/cs/makefile | 4 - .../c_federatedclient/cs/source.cs | 12 +- .../c_federatedservice/cs/Project.csproj | 13 + .../c_federatedservice/cs/source.cs | 2 - .../c_federation/cs/Project.csproj | 13 + .../VS_Snippets_CFX/c_federation/cs/makefile | 4 - .../VS_Snippets_CFX/c_federation/cs/source.cs | 27 - .../c_federationbinding/cs/Project.csproj | 13 + .../c_federationbinding/cs/source.cs | 2 - .../c_findclaimsperf/cs/Project.csproj | 13 + .../c_findclaimsperf/cs/c_findclaimsperf.cs | 2 - .../c_fourcerts/cs/Project.csproj | 13 + .../VS_Snippets_CFX/c_fourcerts/cs/source.cs | 2 - .../cs/Project.csproj | 13 + .../cs/source.cs | 2 - .../c_howtosecureendpoint/cs/Project.csproj | 13 + .../c_howtosecureendpoint/cs/source.cs | 4 +- .../cs/Project.csproj | 13 + .../cs/source.cs | 2 - .../c_identity/cs/Project.csproj | 13 + .../VS_Snippets_CFX/c_identity/cs/source.cs | 2 - .../cs/Project.csproj | 13 + .../c_impersonationanddelegation/cs/source.cs | 4 +- .../c_knowntypeattribute/cs/source.cs | 2 - .../c_maxclockskew/cs/Project.csproj | 13 + .../c_maxclockskew/cs/source.cs | 4 +- .../c_programmingsecurity/cs/Project.csproj | 13 + .../c_programmingsecurity/cs/source.cs | 2 - .../c_protectionlevel/cs/Project.csproj | 13 + .../c_protectionlevel/cs/source.cs | 6 +- .../c_schemaimportexport/cs/Project.csproj | 13 + .../c_schemaimportexport/cs/makefile | 4 - .../c_schemaimportexport/cs/source.cs | 303 +++++----- .../c_securewindowsservice/cs/Project.csproj | 13 + .../cs/secureservice.cs | 4 +- .../c_securewithcertificate/cs/Project.csproj | 13 + .../c_securewithcertificate/cs/source.cs | 2 - .../c_securitybestpractices/cs/Project.csproj | 13 + .../c_securitybestpractices/cs/source.cs | 2 - .../c_settingsecuritymode/cs/Project.csproj | 13 + .../c_settingsecuritymode/cs/source.cs | 3 +- .../c_signatureconfirmation/cs/Project.csproj | 13 + .../c_signatureconfirmation/cs/source.cs | 2 - .../c_simpleimpersonation/cs/Project.csproj | 13 + .../c_simpleimpersonation/cs/source.cs | 4 +- .../cs/source.cs | 2 - .../c_supportingcredential/cs/Project.csproj | 13 + .../c_supportingcredential/cs/source.cs | 2 - .../c_tcpclient/cs/Project.csproj | 13 + .../VS_Snippets_CFX/c_tcpclient/cs/source.cs | 2 - .../c_unsecuredservice/cs/Project.csproj | 13 + .../c_unsecuredservice/cs/source.cs | 2 - .../cs/Project.csproj | 13 + .../c_workingwithcertificates/cs/source.cs | 4 +- .../c_xmlserializer/cs/Project.csproj | 13 + .../c_xmlserializer/cs/source.cs | 4 +- .../datacontractattribute/cs/overview.cs | 4 +- .../serializationguidelines/cs/source.cs | 6 +- .../trustedsubsystems/cs/Project.csproj | 13 + .../trustedsubsystems/cs/source.cs | 3 - .../HowToGeneric/CS/Project.csproj | 8 + .../VS_Snippets_CLR/HowToGeneric/CS/ur.cs | 2 - .../CS/Project.csproj | 13 + .../CS/SerializationChunk.cs | 149 +++-- .../BitmapFrameExample/CSharp/BitmapFrame.cs | 218 -------- .../CSharp/BitmapFrame.csproj | 15 - .../BitmapFrameExample/CSharp/tulipfarm.tif | Bin 1235356 -> 0 bytes .../CSharp/AxControl/wmpaxcontrol.cs | 4 +- .../CSharp/AxControl/wmpaxcontrol.designer.cs | 9 +- .../CSharp/AxControl/wmpaxlib.csproj | 9 +- .../CSharp/HostingAxInWpf/app.config | 3 + .../CSharp/HostingAxInWpf/app.xaml.cs | 11 +- .../HostingAxInWpf/hostingaxinwpf.csproj | 19 +- .../CSharp/HostingAxInWpf/window1.xaml.cs | 8 +- .../HostingAxInWpf/CSharp/snippets.5000.json | 3 + .../CSharp/InvokePatternApp.sln | 13 +- .../InvokePatternApp.cs | 6 +- .../InvokePatternApp.csproj | 9 +- .../Properties/AssemblyInfo.cs | 0 .../Properties/Resources.Designer.cs | 22 +- .../Properties/Resources.cs | 0 .../Properties/Resources.resx | 0 .../Properties/Settings.Designer.cs | 12 +- .../Properties/Settings.cs | 0 .../Properties/Settings.settings | 0 .../{ => InvokePatternApp}/security.xml | 0 .../CSharp/{ => Target}/App.xaml | 0 .../CSharp/{ => Target}/App.xaml.cs | 0 .../CSharp/{ => Target}/Target.csproj | 12 +- .../CSharp/{ => Target}/Window1.xaml | 0 .../CSharp/{ => Target}/Window1.xaml.cs | 0 .../InvokePatternApp/CSharp/Target/app.config | 3 + .../CSharp/{ => Target}/data/cat.png | Bin .../CSharp/{ => Target}/data/dog.png | Bin .../CSharp/{ => Target}/data/fish.png | Bin .../CSharp/snippets.5000.json | 3 + .../AddInSideAdapters.csproj | 20 - ...WPFAddIn_ViewToContractAddInSideAdapter.cs | 64 --- .../CSharp/AddInViews/AddInViews.csproj | 13 - .../CSharp/AddInViews/WPFAddInView.cs | 13 - .../CSharp/Contracts/Contracts.csproj | 13 - .../CSharp/Contracts/IWPFAddInContract.cs | 14 - .../SimpleAddInIsAUISample/CSharp/Host/App.cs | 32 -- .../CSharp/Host/Host.csproj | 17 - .../CSharp/Host/MainWindow.xaml | 26 - .../CSharp/Host/MainWindow.xaml.cs | 60 -- .../HostSideAdapters/HostSideAdapters.csproj | 20 - .../WPFAddIn_ContractToViewHostSideAdapter.cs | 42 -- .../CSharp/HostViews/HostViews.csproj | 9 - .../CSharp/HostViews/WPFAddInHostView.cs | 11 - .../CSharp/SimpleAddInIsAUISample.sln | 56 -- .../CSharp/WPFAddIn1/AddInUI.xaml | 13 - .../CSharp/WPFAddIn1/AddInUI.xaml.cs | 26 - .../CSharp/WPFAddIn1/WPFAddIn1.csproj | 17 - .../AddInSideAdapters.csproj | 20 - ...WPFAddIn_ViewToContractAddInSideAdapter.cs | 36 -- .../CSharp/AddInViews/AddInViews.csproj | 13 - .../CSharp/AddInViews/IWPFAddInView.cs | 19 - .../CSharp/Contracts/Contracts.csproj | 13 - .../CSharp/Contracts/IWPFAddInContract.cs | 17 - .../CSharp/Host/App.cs | 32 -- .../CSharp/Host/Host.csproj | 17 - .../CSharp/Host/MainWindow.xaml | 26 - .../CSharp/Host/MainWindow.xaml.cs | 62 --- .../HostSideAdapters/HostSideAdapters.csproj | 20 - .../WPFAddIn_ContractToViewHostSideAdapter.cs | 41 -- .../CSharp/HostViews/HostViews.csproj | 9 - .../CSharp/HostViews/IWPFAddInHostView.cs | 18 - .../CSharp/SimpleAddInReturnsAUISample.sln | 56 -- .../CSharp/WPFAddIn1/AddIn.cs | 22 - .../CSharp/WPFAddIn1/AddInUI.xaml | 12 - .../CSharp/WPFAddIn1/AddInUI.xaml.cs | 20 - .../CSharp/WPFAddIn1/WPFAddIn1.csproj | 17 - .../CS/app.xaml | 8 - .../CS/d3dhost.csproj | 93 ---- .../CS/dllmain.cpp | 99 ---- .../CS/renderer.cpp | 166 ------ .../CS/renderer.h | 27 - .../CS/renderermanager.cpp | 517 ----------------- .../CS/renderermanager.h | 48 -- .../CS/stdafx.h | 25 - .../CS/trianglerenderer.cpp | 161 ------ .../CS/trianglerenderer.h | 19 - .../CS/window1.xaml | 15 - .../CS/window1.xaml.cs | 224 -------- .../WindowMove/CSharp/WindowMove.cs | 2 - .../vb/Project.csproj | 13 + .../vb/source.vb | 1 - .../vb/app.config | 23 + .../vb/cs.vbproj | 18 +- .../vb/program.vb | 169 +++--- .../vb/Project.csproj | 13 + .../c_controlserviceinstancing/vb/source.vb | 1 - .../c_createsecuresession/vb/Project.csproj | 13 + .../c_createsecuresession/vb/secureservice.vb | 1 - .../c_createstatefulsct/vb/Project.csproj | 13 + .../c_createstatefulsct/vb/secureservice.vb | 1 - .../c_creatests/vb/Project.csproj | 13 + .../VS_Snippets_CFX/c_creatests/vb/source.vb | 1 - .../c_customauthmgr/vb/Project.csproj | 13 + .../c_customauthmgr/vb/c_customauthmgr.vb | 1 - .../c_customauthpol/vb/Project.csproj | 13 + .../c_customauthpol/vb/source.vb | 1 - .../c_custombinding/vb/Project.csproj | 13 + .../c_custombinding/vb/source.vb | 1 - .../vb/Project.csproj | 13 + .../c_custombindingsauthmode/vb/source.vb | 1 - .../vb/Project.csproj | 13 + .../c_customcertificatevalidator/vb/source.vb | 1 - .../c_customclaim/vb/Project.csproj | 13 + .../c_customclaim/vb/c_customclaim.vb | 1 - .../c_customclaimcomparison/vb/Project.csproj | 13 + .../c_customclaimcomparison/vb/source.vb | 1 - .../vb/client/Project.csproj | 13 + .../c_customcredentials/vb/client/client.vb | 1 - .../vb/service/Project.csproj | 13 + .../c_customcredentials/vb/service/service.vb | 1 - .../vb/Project.csproj | 13 + .../vb/c_customfederationbinding.vb | 1 - .../c_customtoken/vb/Project.csproj | 13 + .../c_customtoken/vb/source.vb | 1 - .../vb/Project.csproj | 13 + .../c_customtokenauthenticator/vb/source.vb | 1 - .../c_customtokenprovider/vb/Project.csproj | 13 + .../c_customtokenprovider/vb/source.vb | 1 - .../c_customx509token/vb/Project.csproj | 13 + .../c_customx509token/vb/source.vb | 1 - .../c_dataarchitecture/vb/Project.csproj | 13 + .../c_dataarchitecture/vb/source.vb | 1 - .../c_datacontract/vb/Project.csproj | 13 + .../c_datacontract/vb/source.vb | 1 - .../vb/Project.csproj | 13 + .../c_datacontractenumerations/vb/source.vb | 4 - .../vb/Project.csproj | 13 + .../c_datacontractversioning/vb/source.vb | 1 - .../c_delegation/vb/Project.csproj | 13 + .../VS_Snippets_CFX/c_delegation/vb/source.vb | 1 - .../c_federatedclient/vb/Project.csproj | 13 + .../c_federatedclient/vb/source.vb | 1 - .../c_federatedservice/vb/Project.csproj | 13 + .../c_federatedservice/vb/source.vb | 1 - .../c_federation/vb/Project.csproj | 13 + .../VS_Snippets_CFX/c_federation/vb/source.vb | 2 - .../c_federationbinding/vb/Project.csproj | 13 + .../c_federationbinding/vb/source.vb | 1 - .../c_findclaimsperf/vb/Project.csproj | 13 + .../c_findclaimsperf/vb/c_findclaimsperf.vb | 1 - .../c_fourcerts/vb/Project.csproj | 13 + .../VS_Snippets_CFX/c_fourcerts/vb/source.vb | 1 - .../vb/Project.csproj | 13 + .../vb/source.vb | 1 - .../c_howtosecureendpoint/vb/Project.csproj | 13 + .../c_howtosecureendpoint/vb/source.vb | 1 - .../vb/Project.csproj | 13 + .../vb/source.vb | 1 - .../c_identity/vb/Project.csproj | 13 + .../VS_Snippets_CFX/c_identity/vb/source.vb | 1 - .../vb/Project.csproj | 13 + .../c_impersonationanddelegation/vb/source.vb | 1 - .../c_knowntypeattribute/vb/Project.csproj | 13 + .../c_knowntypeattribute/vb/source.vb | 1 - .../c_maxclockskew/vb/Project.csproj | 13 + .../c_maxclockskew/vb/source.vb | 1 - .../c_programmingsecurity/vb/Project.csproj | 13 + .../c_programmingsecurity/vb/source.vb | 1 - .../c_protectionlevel/vb/Project.csproj | 13 + .../c_protectionlevel/vb/source.vb | 2 - .../c_schemaimportexport/vb/Project.csproj | 13 + .../c_schemaimportexport/vb/source.vb | 2 - .../c_securewindowsservice/vb/Project.csproj | 13 + .../vb/secureservice.vb | 1 - .../c_securewithcertificate/vb/Project.csproj | 13 + .../c_securewithcertificate/vb/source.vb | 2 - .../c_securitybestpractices/vb/Project.csproj | 13 + .../c_securitybestpractices/vb/source.vb | 1 - .../c_settingsecuritymode/vb/Project.csproj | 13 + .../c_settingsecuritymode/vb/source.vb | 1 - .../c_signatureconfirmation/vb/Project.csproj | 13 + .../c_signatureconfirmation/vb/source.vb | 1 - .../c_simpleimpersonation/vb/Project.csproj | 13 + .../c_simpleimpersonation/vb/source.vb | 1 - .../vb/Project.csproj | 13 + .../vb/source.vb | 3 - .../c_tcpclient/vb/Project.csproj | 13 + .../VS_Snippets_CFX/c_tcpclient/vb/source.vb | 1 - .../c_unsecuredservice/vb/Project.csproj | 13 + .../c_unsecuredservice/vb/source.vb | 6 - .../c_xmlserializer/vb/Project.csproj | 13 + .../c_xmlserializer/vb/source.vb | 1 - .../datacontractattribute/vb/Project.csproj | 13 + .../datacontractattribute/vb/overview.vb | 1 - .../serializationguidelines/vb/Project.csproj | 13 + .../serializationguidelines/vb/source.vb | 2 - .../trustedsubsystems/vb/Project.csproj | 13 + .../trustedsubsystems/vb/source.vb | 1 - .../x509accessible/vb/Project.vbproj | 11 + .../x509accessible/vb/source.vb | 20 +- .../HowToGeneric/VB/Project.vbproj | 13 + .../VS_Snippets_CLR/HowToGeneric/VB/ur.vb | 2 - .../VB/Project.vbproj | 13 + .../VB/SerializationChunk.vb | 14 +- .../VbSimpleQuerySamples/VB/QuerySamples2.vb | 2 - .../VbSimpleQuerySamples/VB/QuerySamples3.vb | 2 - .../VB/VbSimpleQuerySamples.vbproj | 7 +- .../vbvbalrlinecontinuation/vb/Project.vbproj | 8 + .../vbvbalrlinecontinuation/vb/module1.vb | 2 - .../BitmapFrameExample/VB/BitmapFrame.vb | 193 ------- .../BitmapFrameExample/VB/BitmapFrame.vbproj | 39 -- .../BitmapFrameExample/VB/tulipfarm.tif | Bin 1235356 -> 0 bytes .../HostingAxInWpf/My Project/assemblyinfo.vb | 58 -- .../HostingAxInWpf/My Project/myevents.vb | 13 - .../My Project/settings.designer.vb | 71 --- .../My Project/settings.settings | 7 - .../VisualBasic/HostingAxInWpf/app.xaml | 8 - .../VisualBasic/HostingAxInWpf/app.xaml.vb | 9 - .../HostingAxInWpf/hostingaxinwpf.vbproj | 137 ----- .../VisualBasic/HostingAxInWpf/window1.xaml | 13 - .../HostingAxInWpf/window1.xaml.vb | 41 -- .../WmpAxLib/wmpaxcontrol.designer.vb | 50 -- .../VisualBasic/WmpAxLib/wmpaxcontrol.resx | 131 ----- .../VisualBasic/WmpAxLib/wmpaxcontrol.vb | 5 - .../VisualBasic/WmpAxLib/wmpaxlib.vbproj | 117 ---- .../VisualBasic/hostingaxinwpf.sln | 32 -- .../HostingAxInWpf/VisualBasic/sampleid.txt | 1 - .../{ => InvokePatternClient}/Client.vb | 35 +- .../InvokePatternClient.vbproj | 23 +- .../My Project/Application.Designer.vb} | 2 +- .../My Project/Application.myapp} | 0 .../My Project/AssemblyInfo.vb} | 9 +- .../My Project/Resources.Designer.vb} | 6 +- .../My Project/Resources.resx} | 0 .../My Project/Settings.Designer.vb} | 10 +- .../My Project/Settings.settings} | 0 .../InvokePatternClient/app.config | 23 + .../{ => InvokePatternClient}/security.xml | 0 .../VisualBasic/InvokePatternSample.sln | 13 +- .../{ => InvokePatternTarget}/App.xaml | 0 .../{ => InvokePatternTarget}/App.xaml.vb | 0 .../InvokePatternTarget.vbproj | 12 +- .../My Project/Resources.Designer.vb} | 6 +- .../My Project/Resources.resx} | 0 .../{ => InvokePatternTarget}/Window1.xaml | 0 .../{ => InvokePatternTarget}/Window1.xaml.vb | 0 .../InvokePatternTarget/app.config | 23 + .../{ => InvokePatternTarget}/data/cat.png | Bin .../{ => InvokePatternTarget}/data/dog.png | Bin .../{ => InvokePatternTarget}/data/fish.png | Bin .../My Project/Application.Designer.vb | 2 +- .../My Project/Resources.Designer.vb | 6 +- .../My Project/Settings.Designer.vb | 8 +- .../VisualBasic/snippets.5000.json | 3 + .../AddInSideAdapters.vbproj | 87 --- ...WPFAddIn_ViewToContractAddInSideAdapter.vb | 62 --- .../VisualBasic/AddInViews/AddInViews.vbproj | 72 --- .../VisualBasic/AddInViews/WPFAddInView.vb | 15 - .../VisualBasic/Contracts/Contracts.vbproj | 69 --- .../Contracts/IWPFAddInContract.vb | 17 - .../VisualBasic/Host/App.vb | 27 - .../VisualBasic/Host/Host.vbproj | 90 --- .../VisualBasic/Host/MainWindow.xaml | 26 - .../VisualBasic/Host/MainWindow.xaml.vb | 56 -- .../HostSideAdapters/HostSideAdapters.vbproj | 87 --- .../WPFAddIn_ContractToViewHostSideAdapter.vb | 41 -- .../VisualBasic/HostViews/HostViews.vbproj | 66 --- .../VisualBasic/HostViews/WPFAddInHostView.vb | 13 - .../VisualBasic/SimpleAddInIsAUISample.sln | 56 -- .../VisualBasic/WPFAddIn1/AddInUI.xaml | 11 - .../VisualBasic/WPFAddIn1/AddInUI.xaml.vb | 24 - .../VisualBasic/WPFAddIn1/WPFAddIn1.vbproj | 96 ---- .../AddInSideAdapters.vbproj | 87 --- ...WPFAddIn_ViewToContractAddInSideAdapter.vb | 35 -- .../VisualBasic/AddInViews/AddInViews.vbproj | 72 --- .../VisualBasic/AddInViews/IWPFAddInView.vb | 18 - .../VisualBasic/Contracts/Contracts.vbproj | 69 --- .../Contracts/IWPFAddInContract.vb | 17 - .../VisualBasic/Host/App.vb | 27 - .../VisualBasic/Host/Host.vbproj | 83 --- .../VisualBasic/Host/MainWindow.xaml | 26 - .../VisualBasic/Host/MainWindow.xaml.vb | 57 -- .../HostSideAdapters/HostSideAdapters.vbproj | 87 --- .../WPFAddIn_ContractToViewHostSideAdapter.vb | 39 -- .../VisualBasic/HostViews/HostViews.vbproj | 69 --- .../HostViews/IWPFAddInHostView.vb | 17 - .../SimpleAddInReturnsAUISample.sln | 56 -- .../VisualBasic/WPFAddIn1/AddIn.vb | 21 - .../VisualBasic/WPFAddIn1/AddInUI.xaml | 10 - .../VisualBasic/WPFAddIn1/AddInUI.xaml.vb | 18 - .../VisualBasic/WPFAddIn1/WPFAddIn1.vbproj | 97 ---- .../My Project/Settings.Designer.vb | 8 +- .../VisualBasic/WindowMove_VB.vbproj | 9 +- .../WindowMove/VisualBasic/app.config | 10 +- .../WindowMove/VisualBasic/windowmove.vb | 3 - 423 files changed, 2008 insertions(+), 7530 deletions(-) delete mode 100644 samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/app.xaml delete mode 100644 samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/d3dhost.csproj delete mode 100644 samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/dllmain.cpp delete mode 100644 samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderer.cpp delete mode 100644 samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderer.h delete mode 100644 samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderermanager.cpp delete mode 100644 samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderermanager.h delete mode 100644 samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/stdafx.h delete mode 100644 samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/trianglerenderer.cpp delete mode 100644 samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/trianglerenderer.h delete mode 100644 samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/window1.xaml delete mode 100644 samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/window1.xaml.cs create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_certificatevalidationdifferences/cs/Project.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_certificatevalidationdifferences/cs/makefile create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_controlserviceinstancing/cs/Project.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_controlserviceinstancing/cs/makefile create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_createsecuresession/cs/Project.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_createsecuresession/cs/makefile create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_createstatefulsct/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_creatests/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customauthmgr/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customauthpol/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_custombinding/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_custombindingsauthmode/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customcertificatevalidator/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customclaim/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customclaimcomparison/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customcredentials/cs/Project.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customcredentials/cs/makefile create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customfederationbinding/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customtoken/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customtokenauthenticator/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customtokenprovider/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customx509token/cs/Project.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_customx509token/cs/makefile create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_dataarchitecture/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_datacontract/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_delegation/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_federatedclient/cs/Project.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_federatedclient/cs/makefile create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_federatedservice/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_federation/cs/Project.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_federation/cs/makefile create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_federationbinding/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_findclaimsperf/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_fourcerts/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_howtocheckformexrequestsinauthorization/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_howtosecureendpoint/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_howtosetcustomclientidentity/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_identity/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_impersonationanddelegation/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_maxclockskew/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_programmingsecurity/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_protectionlevel/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_schemaimportexport/cs/Project.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_schemaimportexport/cs/makefile create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_securewindowsservice/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_securewithcertificate/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_securitybestpractices/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_settingsecuritymode/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_signatureconfirmation/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_simpleimpersonation/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_supportingcredential/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_tcpclient/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_unsecuredservice/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_workingwithcertificates/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/c_xmlserializer/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CFX/trustedsubsystems/cs/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_CLR/HowToGeneric/CS/Project.csproj create mode 100644 samples/snippets/csharp/VS_Snippets_Remoting/HowToChunkSerializedData/CS/Project.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/BitmapFrameExample/CSharp/BitmapFrame.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/BitmapFrameExample/CSharp/BitmapFrame.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/BitmapFrameExample/CSharp/tulipfarm.tif create mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/app.config create mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/snippets.5000.json rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => InvokePatternApp}/InvokePatternApp.cs (98%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => InvokePatternApp}/InvokePatternApp.csproj (92%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => InvokePatternApp}/Properties/AssemblyInfo.cs (100%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => InvokePatternApp}/Properties/Resources.Designer.cs (88%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => InvokePatternApp}/Properties/Resources.cs (100%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => InvokePatternApp}/Properties/Resources.resx (100%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => InvokePatternApp}/Properties/Settings.Designer.cs (91%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => InvokePatternApp}/Properties/Settings.cs (100%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => InvokePatternApp}/Properties/Settings.settings (100%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => InvokePatternApp}/security.xml (100%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => Target}/App.xaml (100%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => Target}/App.xaml.cs (100%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => Target}/Target.csproj (87%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => Target}/Window1.xaml (100%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => Target}/Window1.xaml.cs (100%) create mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/app.config rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => Target}/data/cat.png (100%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => Target}/data/dog.png (100%) rename samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/{ => Target}/data/fish.png (100%) create mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/snippets.5000.json delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInSideAdapters/AddInSideAdapters.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInSideAdapters/WPFAddIn_ViewToContractAddInSideAdapter.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInViews/AddInViews.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInViews/WPFAddInView.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Contracts/Contracts.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Contracts/IWPFAddInContract.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/App.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/Host.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/MainWindow.xaml delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/MainWindow.xaml.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostSideAdapters/HostSideAdapters.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostSideAdapters/WPFAddIn_ContractToViewHostSideAdapter.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostViews/HostViews.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostViews/WPFAddInHostView.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/SimpleAddInIsAUISample.sln delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/WPFAddIn1/AddInUI.xaml delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/WPFAddIn1/AddInUI.xaml.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/WPFAddIn1/WPFAddIn1.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/AddInSideAdapters/AddInSideAdapters.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/AddInSideAdapters/WPFAddIn_ViewToContractAddInSideAdapter.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/AddInViews/AddInViews.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/AddInViews/IWPFAddInView.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/Contracts/Contracts.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/Contracts/IWPFAddInContract.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/Host/App.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/Host/Host.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/Host/MainWindow.xaml delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/Host/MainWindow.xaml.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/HostSideAdapters/HostSideAdapters.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/HostSideAdapters/WPFAddIn_ContractToViewHostSideAdapter.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/HostViews/HostViews.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/HostViews/IWPFAddInHostView.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/SimpleAddInReturnsAUISample.sln delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/WPFAddIn1/AddIn.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/WPFAddIn1/AddInUI.xaml delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/WPFAddIn1/AddInUI.xaml.cs delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/CSharp/WPFAddIn1/WPFAddIn1.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/CS/app.xaml delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/CS/d3dhost.csproj delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/CS/dllmain.cpp delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/CS/renderer.cpp delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/CS/renderer.h delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/CS/renderermanager.cpp delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/CS/renderermanager.h delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/CS/stdafx.h delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/CS/trianglerenderer.cpp delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/CS/trianglerenderer.h delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/CS/window1.xaml delete mode 100644 samples/snippets/csharp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/CS/window1.xaml.cs create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_certificatevalidationdifferences/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_collection_types_in_data_contracts/vb/app.config create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_controlserviceinstancing/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_createsecuresession/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_createstatefulsct/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_creatests/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_customauthmgr/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_customauthpol/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_custombinding/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_custombindingsauthmode/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_customcertificatevalidator/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_customclaim/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_customclaimcomparison/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_customcredentials/vb/client/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_customcredentials/vb/service/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_customfederationbinding/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_customtoken/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_customtokenauthenticator/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_customtokenprovider/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_customx509token/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_dataarchitecture/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_datacontract/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_datacontractenumerations/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_datacontractversioning/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_delegation/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_federatedclient/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_federatedservice/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_federation/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_federationbinding/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_findclaimsperf/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_fourcerts/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_howtocheckformexrequestsinauthorization/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_howtosecureendpoint/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_howtosetcustomclientidentity/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_identity/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_impersonationanddelegation/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_knowntypeattribute/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_maxclockskew/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_programmingsecurity/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_protectionlevel/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_schemaimportexport/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_securewindowsservice/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_securewithcertificate/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_securitybestpractices/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_settingsecuritymode/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_signatureconfirmation/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_simpleimpersonation/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_standalonedatacontractserializer/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_tcpclient/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_unsecuredservice/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/c_xmlserializer/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/datacontractattribute/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/serializationguidelines/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/trustedsubsystems/vb/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CFX/x509accessible/vb/Project.vbproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CLR/HowToGeneric/VB/Project.vbproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_Remoting/HowToChunkSerializedData/VB/Project.vbproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_VBCSharp/vbvbalrlinecontinuation/vb/Project.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/BitmapFrameExample/VB/BitmapFrame.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/BitmapFrameExample/VB/BitmapFrame.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/BitmapFrameExample/VB/tulipfarm.tif delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/HostingAxInWpf/My Project/assemblyinfo.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/HostingAxInWpf/My Project/myevents.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/HostingAxInWpf/My Project/settings.designer.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/HostingAxInWpf/My Project/settings.settings delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/HostingAxInWpf/app.xaml delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/HostingAxInWpf/app.xaml.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/HostingAxInWpf/hostingaxinwpf.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/HostingAxInWpf/window1.xaml delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/HostingAxInWpf/window1.xaml.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/WmpAxLib/wmpaxcontrol.designer.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/WmpAxLib/wmpaxcontrol.resx delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/WmpAxLib/wmpaxcontrol.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/WmpAxLib/wmpaxlib.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/hostingaxinwpf.sln delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/HostingAxInWpf/VisualBasic/sampleid.txt rename samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/{ => InvokePatternClient}/Client.vb (96%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/{ => InvokePatternClient}/InvokePatternClient.vbproj (77%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/{HostingAxInWpf/VisualBasic/WmpAxLib/My Project/application.designer.vb => InvokePatternApp/VisualBasic/InvokePatternClient/My Project/Application.Designer.vb} (91%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/{HostingAxInWpf/VisualBasic/WmpAxLib/My Project/application.myapp => InvokePatternApp/VisualBasic/InvokePatternClient/My Project/Application.myapp} (100%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/{HostingAxInWpf/VisualBasic/WmpAxLib/My Project/assemblyinfo.vb => InvokePatternApp/VisualBasic/InvokePatternClient/My Project/AssemblyInfo.vb} (79%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/{HostingAxInWpf/VisualBasic/WmpAxLib/My Project/resources.designer.vb => InvokePatternApp/VisualBasic/InvokePatternClient/My Project/Resources.Designer.vb} (91%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/{HostingAxInWpf/VisualBasic/HostingAxInWpf/My Project/resources.resx => InvokePatternApp/VisualBasic/InvokePatternClient/My Project/Resources.resx} (100%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/{HostingAxInWpf/VisualBasic/WmpAxLib/My Project/settings.designer.vb => InvokePatternApp/VisualBasic/InvokePatternClient/My Project/Settings.Designer.vb} (91%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/{HostingAxInWpf/VisualBasic/WmpAxLib/My Project/settings.settings => InvokePatternApp/VisualBasic/InvokePatternClient/My Project/Settings.settings} (100%) create mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/InvokePatternClient/app.config rename samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/{ => InvokePatternClient}/security.xml (100%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/{ => InvokePatternTarget}/App.xaml (100%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/{ => InvokePatternTarget}/App.xaml.vb (100%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/{ => InvokePatternTarget}/InvokePatternTarget.vbproj (92%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/{HostingAxInWpf/VisualBasic/HostingAxInWpf/My Project/resources.designer.vb => InvokePatternApp/VisualBasic/InvokePatternTarget/My Project/Resources.Designer.vb} (91%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/{HostingAxInWpf/VisualBasic/WmpAxLib/My Project/resources.resx => InvokePatternApp/VisualBasic/InvokePatternTarget/My Project/Resources.resx} (100%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/{ => InvokePatternTarget}/Window1.xaml (100%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/{ => InvokePatternTarget}/Window1.xaml.vb (100%) create mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/InvokePatternTarget/app.config rename samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/{ => InvokePatternTarget}/data/cat.png (100%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/{ => InvokePatternTarget}/data/dog.png (100%) rename samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/{ => InvokePatternTarget}/data/fish.png (100%) create mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/snippets.5000.json delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/AddInSideAdapters/AddInSideAdapters.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/AddInSideAdapters/WPFAddIn_ViewToContractAddInSideAdapter.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/AddInViews/AddInViews.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/AddInViews/WPFAddInView.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/Contracts/Contracts.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/Contracts/IWPFAddInContract.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/Host/App.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/Host/Host.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/Host/MainWindow.xaml delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/Host/MainWindow.xaml.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/HostSideAdapters/HostSideAdapters.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/HostSideAdapters/WPFAddIn_ContractToViewHostSideAdapter.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/HostViews/HostViews.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/HostViews/WPFAddInHostView.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/SimpleAddInIsAUISample.sln delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/WPFAddIn1/AddInUI.xaml delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/WPFAddIn1/AddInUI.xaml.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInIsAUISample/VisualBasic/WPFAddIn1/WPFAddIn1.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/AddInSideAdapters/AddInSideAdapters.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/AddInSideAdapters/WPFAddIn_ViewToContractAddInSideAdapter.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/AddInViews/AddInViews.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/AddInViews/IWPFAddInView.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/Contracts/Contracts.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/Contracts/IWPFAddInContract.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/Host/App.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/Host/Host.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/Host/MainWindow.xaml delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/Host/MainWindow.xaml.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/HostSideAdapters/HostSideAdapters.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/HostSideAdapters/WPFAddIn_ContractToViewHostSideAdapter.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/HostViews/HostViews.vbproj delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/HostViews/IWPFAddInHostView.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/SimpleAddInReturnsAUISample.sln delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/WPFAddIn1/AddIn.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/WPFAddIn1/AddInUI.xaml delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/WPFAddIn1/AddInUI.xaml.vb delete mode 100644 samples/snippets/visualbasic/VS_Snippets_Wpf/SimpleAddInReturnsAUISample/VisualBasic/WPFAddIn1/WPFAddIn1.vbproj diff --git a/docs/framework/ui-automation/find-a-ui-automation-element-based-on-a-property-condition.md b/docs/framework/ui-automation/find-a-ui-automation-element-based-on-a-property-condition.md index 75ee943895bd2..0d2be21fd39a1 100644 --- a/docs/framework/ui-automation/find-a-ui-automation-element-based-on-a-property-condition.md +++ b/docs/framework/ui-automation/find-a-ui-automation-element-based-on-a-property-condition.md @@ -15,17 +15,17 @@ ms.topic: how-to > [!NOTE] > This documentation is intended for .NET Framework developers who want to use the managed UI Automation classes defined in the namespace. For the latest information about UI Automation, see [Windows Automation API: UI Automation](/windows/win32/winauto/entry-uiauto-win32). - This topic contains example code that shows how to locate an element within the UI Automation tree based on a specific property or properties. +This article contains example code that shows how to locate an element within the UI Automation tree based on a specific property or properties. ## Example - In the following example, a set of property conditions are specified that identify a certain element (or elements) of interest in the tree. A search for all matching elements is then performed with the method that incorporates a series of boolean operations to limit the number of matching elements. + In the following example, a set of property conditions are specified that identify a certain element (or elements) of interest in the tree. A search for all matching elements is then performed with the method that incorporates a series of Boolean operations to limit the number of matching elements. > [!NOTE] > When searching from the , you should try to obtain only direct children. A search for descendants might iterate through hundreds or even thousands of elements, possibly resulting in a stack overflow. If you are attempting to obtain a specific element at a lower level, you should start your search from the application window or from a container at a lower level. - [!code-csharp[InvokePatternApp#1100](../../../samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp.cs#1100)] - [!code-vb[InvokePatternApp#1100](../../../samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/Client.vb#1100)] +[!code-csharp[InvokePatternApp#1100](../../../samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/InvokePatternApp.cs#1100)] +[!code-vb[InvokePatternApp#1100](../../../samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/InvokePatternClient/Client.vb#1100)] ## See also diff --git a/docs/framework/ui-automation/invoke-a-control-using-ui-automation.md b/docs/framework/ui-automation/invoke-a-control-using-ui-automation.md index d4ee495a65e7f..b581c51dafc4d 100644 --- a/docs/framework/ui-automation/invoke-a-control-using-ui-automation.md +++ b/docs/framework/ui-automation/invoke-a-control-using-ui-automation.md @@ -30,10 +30,10 @@ ms.topic: how-to This example uses the method of the class to generate an object and invoke a control by using the method. - [!code-csharp[InvokePatternApp#1100](../../../samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp.cs#1100)] - [!code-vb[InvokePatternApp#1100](../../../samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/Client.vb#1100)] -[!code-csharp[InvokePatternApp#1102](../../../samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp.cs#1102)] -[!code-vb[InvokePatternApp#1102](../../../samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/Client.vb#1102)] +[!code-csharp[InvokePatternApp#1100](../../../samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/InvokePatternApp.cs#1100)] +[!code-vb[InvokePatternApp#1100](../../../samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/InvokePatternClient/Client.vb#1100)] +[!code-csharp[InvokePatternApp#1102](../../../samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/InvokePatternApp.cs#1102)] +[!code-vb[InvokePatternApp#1102](../../../samples/snippets/visualbasic/VS_Snippets_Wpf/InvokePatternApp/VisualBasic/InvokePatternClient/Client.vb#1102)] ## See also diff --git a/docs/framework/wcf/feature-details/best-practices-for-security-in-wcf.md b/docs/framework/wcf/feature-details/best-practices-for-security-in-wcf.md index 3cb08d7590250..19e14342762d9 100644 --- a/docs/framework/wcf/feature-details/best-practices-for-security-in-wcf.md +++ b/docs/framework/wcf/feature-details/best-practices-for-security-in-wcf.md @@ -33,7 +33,7 @@ The following sections list the best practices to consider when creating secure ## Always Revert After Impersonation - When using APIs that enable impersonation of a client, be sure to revert to the original identity. For example, when using the and , use the C# `using` statement or the Visual Basic`Using` statement, as shown in the following code. The class implements the interface, and therefore the common language runtime (CLR) automatically reverts to the original identity once the code leaves the `using` block. + When using APIs that enable impersonation of a client, be sure to revert to the original identity. For example, when using the and , use the C# `using` statement or the Visual Basic `Using` statement, as shown in the following code. The class implements the interface, and therefore the common language runtime (CLR) automatically reverts to the original identity once the code leaves the `using` block. [!code-csharp[c_SecurityBestPractices#1](../../../../samples/snippets/csharp/VS_Snippets_CFX/c_securitybestpractices/cs/source.cs#1)] [!code-vb[c_SecurityBestPractices#1](../../../../samples/snippets/visualbasic/VS_Snippets_CFX/c_securitybestpractices/vb/source.vb#1)] diff --git a/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/ca2229.cs b/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/ca2229.cs index 5a6fe593f20f5..a470dc7d89e70 100644 --- a/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/ca2229.cs +++ b/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/ca2229.cs @@ -1,6 +1,5 @@ using System; using System.Runtime.Serialization; -using System.Security.Permissions; namespace ca2229 { @@ -26,8 +25,6 @@ protected SerializationConstructorsRequired( } // The following method serializes the instance. - [SecurityPermission(SecurityAction.LinkDemand, - Flags = SecurityPermissionFlag.SerializationFormatter)] void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { diff --git a/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/ca2237.cs b/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/ca2237.cs index c8c1db5854b18..790905851a3f9 100644 --- a/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/ca2237.cs +++ b/docs/fundamentals/code-analysis/quality-rules/snippets/csharp/all-rules/ca2237.cs @@ -1,5 +1,4 @@ using System.Runtime.Serialization; -using System.Security.Permissions; namespace ca2237 { @@ -20,8 +19,6 @@ protected BaseType( baseValue = info.GetInt32("baseValue"); } - [SecurityPermissionAttribute(SecurityAction.Demand, - SerializationFormatter = true)] public virtual void GetObjectData( SerializationInfo info, StreamingContext context) { diff --git a/docs/standard/serialization/custom-serialization.md b/docs/standard/serialization/custom-serialization.md index 90c81d236ed9e..194a52f5a1507 100644 --- a/docs/standard/serialization/custom-serialization.md +++ b/docs/standard/serialization/custom-serialization.md @@ -1,7 +1,7 @@ --- title: "Custom serialization" description: Custom serialization is controlling the serialization and deserialization of a type. Controlling serialization can ensure serialization compatibility. -ms.date: "03/30/2017" +ms.date: 04/21/2022 dev_langs: - "csharp" - "vb" @@ -26,7 +26,7 @@ Custom serialization is the process of controlling the serialization and deseria [!INCLUDE [binary-serialization-warning](../../../includes/binary-serialization-warning.md)] > [!IMPORTANT] -> In versions previous to .NET Framework 4.0, serialization of custom user data in a partially trusted assembly was accomplished using `GetObjectData`. Starting with version 4.0, that method is marked with the attribute, which prevents execution in partially trusted assemblies. To work around this condition, implement the interface. +> In versions previous to .NET Framework 4.0, serialization of custom user data in a partially trusted assembly was accomplished using `GetObjectData`. In .NET Framework version 4.0 - 4.8, that method is marked with the attribute, which prevents execution in partially trusted assemblies. To work around this condition, implement the interface. ## Running custom methods during and after serialization @@ -50,7 +50,7 @@ The recommended way to run custom methods during and after serialization is to a In addition, you should not use default serialization on a class that is marked with the [Serializable](xref:System.SerializableAttribute) attribute and has declarative or imperative security at the class level or on its constructors. Instead, these classes should always implement the interface. - Implementing involves implementing the `GetObjectData` method and a special constructor that is used when the object is deserialized. The following sample code shows how to implement on the `MyObject` class from a previous section. + Implementing involves implementing the `GetObjectData` method and a special constructor that's used when the object is deserialized. The following sample code shows how to implement on the `MyObject` class from a previous section. ```csharp [Serializable] @@ -71,7 +71,6 @@ public class MyObject : ISerializable str = info.GetString("k"); } - [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)] public virtual void GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue("i", n1); @@ -98,7 +97,6 @@ Public Class MyObject str = info.GetString("k") End Sub 'New - _ Public Overridable Sub GetObjectData(ByVal info As SerializationInfo, ByVal context As StreamingContext) info.AddValue("i", n1) info.AddValue("j", n2) @@ -107,17 +105,13 @@ Public Class MyObject End Class ``` - When **GetObjectData** is called during serialization, you are responsible for populating the provided with the method call. Add the variables to be serialized as name and value pairs. Any text can be used as the name. You have the freedom to decide which member variables are added to the , provided that sufficient data is serialized to restore the object during deserialization. Derived classes should call the **GetObjectData** method on the base object if the latter implements . + When **GetObjectData** is called during serialization, you are responsible for populating the provided with the method call. Add the variables to be serialized as name and value pairs. Any text can be used as the name. You have the freedom to decide which member variables are added to the , provided that sufficient data is serialized to restore the object during deserialization. Derived classes should call the **GetObjectData** method on the base object if the latter implements . - Note that serialization can allow other code to see or modify object instance data that is otherwise inaccessible. Therefore, code that performs serialization requires the [SecurityPermission](xref:System.Security.Permissions.SecurityPermissionAttribute) with the flag specified. Under default policy, this permission is not given to Internet-downloaded or intranet code; only code on the local computer is granted this permission. The **GetObjectData** method must be explicitly protected either by demanding the [SecurityPermission](xref:System.Security.Permissions.SecurityPermissionAttribute) with the flag specified or by demanding other permissions that specifically help protect private data. - - If a private field stores sensitive information, you should demand the appropriate permissions on **GetObjectData** to protect the data. Remember that code that has been granted [SecurityPermission](xref:System.Security.Permissions.SecurityPermissionAttribute) with the **SerializationFormatter** flag specified can view and modify the data stored in private fields. A malicious caller granted this [SecurityPermission](xref:System.Security.Permissions.SecurityPermissionAttribute) can view data such as hidden directory locations or granted permissions and use the data to exploit a security vulnerability on the computer. For a complete list of the security permission flags you can specify, see the [SecurityPermissionFlag Enumeration](xref:System.Security.Permissions.SecurityPermissionFlag). - - It's important to stress that when is added to a class you must implement both **GetObjectData** and the special constructor. The compiler warns you if **GetObjectData** is missing. However, because it is impossible to enforce the implementation of a constructor, no warning is provided if the constructor is absent, and an exception is thrown when an attempt is made to deserialize a class without the constructor. + It's important to stress that when is added to a class, you must implement both **GetObjectData** and the special constructor. The compiler warns you if **GetObjectData** is missing. However, because it is impossible to enforce the implementation of a constructor, no warning is provided if the constructor is absent, and an exception is thrown when an attempt is made to deserialize a class without the constructor. The current design was favored above a method to get around potential security and versioning problems. For example, a `SetObjectData` method must be public if it is defined as part of an interface; thus users must write code to defend against having the **SetObjectData** method called multiple times. Otherwise, a malicious application that calls the **SetObjectData** method on an object in the process of executing an operation can cause potential problems. - During deserialization, is passed to the class using the constructor provided for this purpose. Any visibility constraints placed on the constructor are ignored when the object is deserialized; so you can mark the class as public, protected, internal, or private. However, it is a best practice to make the constructor protected unless the class is sealed, in which case the constructor should be marked private. The constructor should also perform thorough input validation. To avoid misuse by malicious code, the constructor should enforce the same security checks and permissions required to obtain an instance of the class using any other constructor. If you do not follow this recommendation, malicious code can preserialize an object, obtain control with the [SecurityPermission](xref:System.Security.Permissions.SecurityPermissionAttribute) with the flag specified and deserialize the object on a client computer bypassing any security that would have been applied during standard instance construction using a public constructor. + During deserialization, is passed to the class using the constructor provided for this purpose. Any visibility constraints placed on the constructor are ignored when the object is deserialized; so you can mark the class as public, protected, internal, or private. However, it is a best practice to make the constructor protected unless the class is sealed, in which case the constructor should be marked private. The constructor should also perform thorough input validation. To restore the state of the object, simply retrieve the values of the variables from using the names used during serialization. If the base class implements , the base constructor should be called to allow the base object to restore its variables. @@ -140,7 +134,6 @@ public class ObjectTwo : MyObject num = si.GetInt32("num"); } - [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)] public override void GetObjectData(SerializationInfo si, StreamingContext context) { base.GetObjectData(si,context); @@ -165,7 +158,6 @@ Public Class ObjectTwo num = si.GetInt32("num") End Sub - _ Public Overrides Sub GetObjectData(ByVal si As SerializationInfo, ByVal context As StreamingContext) MyBase.GetObjectData(si, context) si.AddValue("num", num) diff --git a/docs/standard/serialization/serialization-guidelines.md b/docs/standard/serialization/serialization-guidelines.md index 446c9268f0542..bdf7b8e09540c 100644 --- a/docs/standard/serialization/serialization-guidelines.md +++ b/docs/standard/serialization/serialization-guidelines.md @@ -133,11 +133,6 @@ This article lists the guidelines to consider when designing an API to be serial [!code-csharp[SerializationGuidelines#10](../../../samples/snippets/csharp/VS_Snippets_CFX/serializationguidelines/cs/source.cs#10)] [!code-vb[SerializationGuidelines#10](../../../samples/snippets/visualbasic/VS_Snippets_CFX/serializationguidelines/vb/source.vb#10)] -5. DO apply a link demand to **ISerializable.GetObjectData** implementation. This ensures that only fully trusted core and the runtime serializer have access to the member. - - [!code-csharp[SerializationGuidelines#11](../../../samples/snippets/csharp/VS_Snippets_CFX/serializationguidelines/cs/source.cs#11)] - [!code-vb[SerializationGuidelines#11](../../../samples/snippets/visualbasic/VS_Snippets_CFX/serializationguidelines/vb/source.vb#11)] - ## See also - [Using Data Contracts](../../framework/wcf/feature-details/using-data-contracts.md) diff --git a/docs/visual-basic/language-reference/statements/end-statement.md b/docs/visual-basic/language-reference/statements/end-statement.md index 9e28d7139c151..b284b90c3cbf5 100644 --- a/docs/visual-basic/language-reference/statements/end-statement.md +++ b/docs/visual-basic/language-reference/statements/end-statement.md @@ -56,6 +56,5 @@ End ## See also -- - [Stop Statement](stop-statement.md) - [End \ Statement](end-keyword-statement.md) diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/app.xaml b/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/app.xaml deleted file mode 100644 index 99fa837118352..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/app.xaml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/d3dhost.csproj b/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/d3dhost.csproj deleted file mode 100644 index 7a9be6d662c6a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/d3dhost.csproj +++ /dev/null @@ -1,93 +0,0 @@ - - - Debug - AnyCPU - 10.0.20821 - 2.0 - {D1FC6F31-1F0B-4085-96A6-B9B55944CCC0} - WinExe - Properties - D3DHost - D3DHost - v4.0 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - Client - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - 3.5 - - - 3.5 - - - 3.5 - - - - - - - - 4.0 - - - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - Window1.xaml - Code - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/dllmain.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/dllmain.cpp deleted file mode 100644 index 0be6a655d208d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/dllmain.cpp +++ /dev/null @@ -1,100 +0,0 @@ -// -// dllmain.cpp : Defines the entry point for the DLL application. -#include "stdafx.h" - -BOOL APIENTRY DllMain( HMODULE hModule, - DWORD ul_reason_for_call, - LPVOID lpReserved - ) -{ - switch (ul_reason_for_call) - { - case DLL_PROCESS_ATTACH: - case DLL_THREAD_ATTACH: - case DLL_THREAD_DETACH: - case DLL_PROCESS_DETACH: - break; - } - return TRUE; -} - -static CRendererManager *pManager = NULL; - -static HRESULT EnsureRendererManager() -{ - return pManager ? S_OK : CRendererManager::Create(&pManager); -} - -extern "C" HRESULT WINAPI SetSize(UINT uWidth, UINT uHeight) -{ - HRESULT hr = S_OK; - - IFC(EnsureRendererManager()); - - pManager->SetSize(uWidth, uHeight); - -Cleanup: - return hr; -} - -extern "C" HRESULT WINAPI SetAlpha(BOOL fUseAlpha) -{ - HRESULT hr = S_OK; - - IFC(EnsureRendererManager()); - - pManager->SetAlpha(!!fUseAlpha); - -Cleanup: - return hr; -} - -extern "C" HRESULT WINAPI SetNumDesiredSamples(UINT uNumSamples) -{ - HRESULT hr = S_OK; - - IFC(EnsureRendererManager()); - - pManager->SetNumDesiredSamples(uNumSamples); - -Cleanup: - return hr; -} - -extern "C" HRESULT WINAPI SetAdapter(POINT screenSpacePoint) -{ - HRESULT hr = S_OK; - - IFC(EnsureRendererManager()); - - pManager->SetAdapter(screenSpacePoint); - -Cleanup: - return hr; -} - -extern "C" HRESULT WINAPI GetBackBufferNoRef(IDirect3DSurface9 **ppSurface) -{ - HRESULT hr = S_OK; - - IFC(EnsureRendererManager()); - - IFC(pManager->GetBackBufferNoRef(ppSurface)); - -Cleanup: - return hr; -} - -extern "C" HRESULT WINAPI Render() -{ - assert(pManager); - - return pManager->Render(); -} - -extern "C" void WINAPI Destroy() -{ - delete pManager; - pManager = NULL; -} -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderer.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderer.cpp deleted file mode 100644 index 08c2b115d795d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderer.cpp +++ /dev/null @@ -1,168 +0,0 @@ -// -//+----------------------------------------------------------------------------- -// -// CRenderer -// -// An abstract base class that creates a device and a target render -// surface. Derive from this class and override Init() and Render() -// to do your own rendering. See CTriangleRenderer for an example. - - -//------------------------------------------------------------------------------ - -#include "StdAfx.h" - -//+----------------------------------------------------------------------------- -// -// Member: -// CRenderer ctor -// -//------------------------------------------------------------------------------ -CRenderer::CRenderer() : m_pd3dDevice(NULL), m_pd3dDeviceEx(NULL), m_pd3dRTS(NULL) -{ -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CRenderer dtor -// -//------------------------------------------------------------------------------ -CRenderer::~CRenderer() -{ - SAFE_RELEASE(m_pd3dDevice); - SAFE_RELEASE(m_pd3dDeviceEx); - SAFE_RELEASE(m_pd3dRTS); -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CRenderer::CheckDeviceState -// -// Synopsis: -// Returns the status of the device. 9Ex devices are a special case because -// TestCooperativeLevel() has been deprecated in 9Ex. -// -//------------------------------------------------------------------------------ -HRESULT -CRenderer::CheckDeviceState() -{ - if (m_pd3dDeviceEx) - { - return m_pd3dDeviceEx->CheckDeviceState(NULL); - } - else if (m_pd3dDevice) - { - return m_pd3dDevice->TestCooperativeLevel(); - } - else - { - return D3DERR_DEVICELOST; - } -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CRenderer::CreateSurface -// -// Synopsis: -// Creates and sets the render target -// -//------------------------------------------------------------------------------ -// -HRESULT -CRenderer::CreateSurface(UINT uWidth, UINT uHeight, bool fUseAlpha, UINT m_uNumSamples) -{ - HRESULT hr = S_OK; - - SAFE_RELEASE(m_pd3dRTS); - - IFC(m_pd3dDevice->CreateRenderTarget( - uWidth, - uHeight, - fUseAlpha ? D3DFMT_A8R8G8B8 : D3DFMT_X8R8G8B8, - static_cast(m_uNumSamples), - 0, - m_pd3dDeviceEx ? FALSE : TRUE, // Lockable RT required for good XP perf - &m_pd3dRTS, - NULL - )); - - IFC(m_pd3dDevice->SetRenderTarget(0, m_pd3dRTS)); - -Cleanup: - return hr; -} -// - -//+----------------------------------------------------------------------------- -// -// Member: -// CRenderer::Init -// -// Synopsis: -// Creates the device -// -//------------------------------------------------------------------------------ -// -HRESULT -CRenderer::Init(IDirect3D9 *pD3D, IDirect3D9Ex *pD3DEx, HWND hwnd, UINT uAdapter) -{ - HRESULT hr = S_OK; - - D3DPRESENT_PARAMETERS d3dpp; - ZeroMemory(&d3dpp, sizeof(d3dpp)); - d3dpp.Windowed = TRUE; - d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; - d3dpp.BackBufferHeight = 1; - d3dpp.BackBufferWidth = 1; - d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; - - D3DCAPS9 caps; - DWORD dwVertexProcessing; - IFC(pD3D->GetDeviceCaps(uAdapter, D3DDEVTYPE_HAL, &caps)); - if ((caps.DevCaps & D3DDEVCAPS_HWTRANSFORMANDLIGHT) == D3DDEVCAPS_HWTRANSFORMANDLIGHT) - { - dwVertexProcessing = D3DCREATE_HARDWARE_VERTEXPROCESSING; - } - else - { - dwVertexProcessing = D3DCREATE_SOFTWARE_VERTEXPROCESSING; - } - - if (pD3DEx) - { - IDirect3DDevice9Ex *pd3dDevice = NULL; - IFC(pD3DEx->CreateDeviceEx( - uAdapter, - D3DDEVTYPE_HAL, - hwnd, - dwVertexProcessing | D3DCREATE_MULTITHREADED | D3DCREATE_FPU_PRESERVE, - &d3dpp, - NULL, - &m_pd3dDeviceEx - )); - - IFC(m_pd3dDeviceEx->QueryInterface(__uuidof(IDirect3DDevice9), reinterpret_cast(&m_pd3dDevice))); - } - else - { - assert(pD3D); - - IFC(pD3D->CreateDevice( - uAdapter, - D3DDEVTYPE_HAL, - hwnd, - dwVertexProcessing | D3DCREATE_MULTITHREADED | D3DCREATE_FPU_PRESERVE, - &d3dpp, - &m_pd3dDevice - )); - } - -Cleanup: - return hr; -} -// -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderer.h b/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderer.h deleted file mode 100644 index a11c58d022731..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderer.h +++ /dev/null @@ -1,28 +0,0 @@ -// - -#pragma once - -class CRenderer -{ -public: - virtual ~CRenderer(); - - HRESULT CheckDeviceState(); - HRESULT CreateSurface(UINT uWidth, UINT uHeight, bool fUseAlpha, UINT m_uNumSamples); - - virtual HRESULT Render() = 0; - - IDirect3DSurface9 *GetSurfaceNoRef() { return m_pd3dRTS; } - -protected: - CRenderer(); - - virtual HRESULT Init(IDirect3D9 *pD3D, IDirect3D9Ex *pD3DEx, HWND hwnd, UINT uAdapter); - - IDirect3DDevice9 *m_pd3dDevice; - IDirect3DDevice9Ex *m_pd3dDeviceEx; - - IDirect3DSurface9 *m_pd3dRTS; - -}; -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderermanager.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderermanager.cpp deleted file mode 100644 index e53387adb403d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderermanager.cpp +++ /dev/null @@ -1,518 +0,0 @@ -// - -//+----------------------------------------------------------------------------- -// -// CRendererManager -// -// Manages the list of CRenderers. Managed code pinvokes into this class -// and this class forwards to the appropriate CRenderer. -// -//------------------------------------------------------------------------------ - -#include "StdAfx.h" - -const static TCHAR szAppName[] = TEXT("D3DImageSample"); -typedef HRESULT (WINAPI *DIRECT3DCREATE9EXFUNCTION)(UINT SDKVersion, IDirect3D9Ex**); - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager ctor -// -//------------------------------------------------------------------------------ -CRendererManager::CRendererManager() - : - m_pD3D(NULL), - m_pD3DEx(NULL), - m_cAdapters(0), - m_hwnd(NULL), - m_pCurrentRenderer(NULL), - m_rgRenderers(NULL), - m_uWidth(1024), - m_uHeight(1024), - m_uNumSamples(0), - m_fUseAlpha(false), - m_fSurfaceSettingsChanged(true) -{ - -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager dtor -// -//------------------------------------------------------------------------------ -CRendererManager::~CRendererManager() -{ - DestroyResources(); - - if (m_hwnd) - { - DestroyWindow(m_hwnd); - UnregisterClass(szAppName, NULL); - } -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager::Create -// -// Synopsis: -// Creates the manager -// -//------------------------------------------------------------------------------ -HRESULT -CRendererManager::Create(CRendererManager **ppManager) -{ - HRESULT hr = S_OK; - - *ppManager = new CRendererManager(); - IFCOOM(*ppManager); - -Cleanup: - return hr; -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager::EnsureRenderers -// -// Synopsis: -// Makes sure the CRenderer objects exist -// -//------------------------------------------------------------------------------ -HRESULT -CRendererManager::EnsureRenderers() -{ - HRESULT hr = S_OK; - - if (!m_rgRenderers) - { - IFC(EnsureHWND()); - - assert(m_cAdapters); - m_rgRenderers = new CRenderer*[m_cAdapters]; - IFCOOM(m_rgRenderers); - ZeroMemory(m_rgRenderers, m_cAdapters * sizeof(m_rgRenderers[0])); - - for (UINT i = 0; i < m_cAdapters; ++i) - { - IFC(CTriangleRenderer::Create(m_pD3D, m_pD3DEx, m_hwnd, i, &m_rgRenderers[i])); - } - - // Default to the default adapter - m_pCurrentRenderer = m_rgRenderers[0]; - } - -Cleanup: - return hr; -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager::EnsureHWND -// -// Synopsis: -// Makes sure an HWND exists if we need it -// -//------------------------------------------------------------------------------ -// -HRESULT -CRendererManager::EnsureHWND() -{ - HRESULT hr = S_OK; - - if (!m_hwnd) - { - WNDCLASS wndclass; - - wndclass.style = CS_HREDRAW | CS_VREDRAW; - wndclass.lpfnWndProc = DefWindowProc; - wndclass.cbClsExtra = 0; - wndclass.cbWndExtra = 0; - wndclass.hInstance = NULL; - wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); - wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); - wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH); - wndclass.lpszMenuName = NULL; - wndclass.lpszClassName = szAppName; - - if (!RegisterClass(&wndclass)) - { - IFC(E_FAIL); - } - - m_hwnd = CreateWindow(szAppName, - TEXT("D3DImageSample"), - WS_OVERLAPPEDWINDOW, - 0, // Initial X - 0, // Initial Y - 0, // Width - 0, // Height - NULL, - NULL, - NULL, - NULL); - } - -Cleanup: - return hr; -} -// - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager::EnsureD3DObjects -// -// Synopsis: -// Makes sure the D3D objects exist -// -//------------------------------------------------------------------------------ -// -HRESULT -CRendererManager::EnsureD3DObjects() -{ - HRESULT hr = S_OK; - - HMODULE hD3D = NULL; - if (!m_pD3D) - { - hD3D = LoadLibrary(TEXT("d3d9.dll")); - DIRECT3DCREATE9EXFUNCTION pfnCreate9Ex = (DIRECT3DCREATE9EXFUNCTION)GetProcAddress(hD3D, "Direct3DCreate9Ex"); - if (pfnCreate9Ex) - { - IFC((*pfnCreate9Ex)(D3D_SDK_VERSION, &m_pD3DEx)); - IFC(m_pD3DEx->QueryInterface(__uuidof(IDirect3D9), reinterpret_cast(&m_pD3D))); - } - else - { - m_pD3D = Direct3DCreate9(D3D_SDK_VERSION); - if (!m_pD3D) - { - IFC(E_FAIL); - } - } - - m_cAdapters = m_pD3D->GetAdapterCount(); - } - -Cleanup: - if (hD3D) - { - FreeLibrary(hD3D); - } - - return hr; -} -// - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager::CleanupInvalidDevices -// -// Synopsis: -// Checks to see if any devices are bad and if so, deletes all resources -// -// We could delete resources and wait for D3DERR_DEVICENOTRESET and reset -// the devices, but if the device is lost because of an adapter order -// change then our existing D3D objects would have stale adapter -// information. We'll delete everything to be safe rather than sorry. -// -//------------------------------------------------------------------------------ -void -CRendererManager::CleanupInvalidDevices() -{ - for (UINT i = 0; i < m_cAdapters; ++i) - { - if (FAILED(m_rgRenderers[i]->CheckDeviceState())) - { - DestroyResources(); - break; - } - } -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager::GetBackBufferNoRef -// -// Synopsis: -// Returns the surface of the current renderer without adding a reference -// -// This can return NULL if we're in a bad device state. -// -//------------------------------------------------------------------------------ -HRESULT -CRendererManager::GetBackBufferNoRef(IDirect3DSurface9 **ppSurface) -{ - HRESULT hr = S_OK; - - // Make sure we at least return NULL - *ppSurface = NULL; - - CleanupInvalidDevices(); - - IFC(EnsureD3DObjects()); - - // - // Even if we never render to another adapter, this sample creates devices - // and resources on each one. This is a potential waste of video memory, - // but it guarantees that we won't have any problems (e.g. out of video - // memory) when switching to render on another adapter. In your own code - // you may choose to delay creation but you'll need to handle the issues - // that come with it. - // - - IFC(EnsureRenderers()); - - if (m_fSurfaceSettingsChanged) - { - if (FAILED(TestSurfaceSettings())) - { - IFC(E_FAIL); - } - - for (UINT i = 0; i < m_cAdapters; ++i) - { - IFC(m_rgRenderers[i]->CreateSurface(m_uWidth, m_uHeight, m_fUseAlpha, m_uNumSamples)); - } - - m_fSurfaceSettingsChanged = false; - } - - if (m_pCurrentRenderer) - { - *ppSurface = m_pCurrentRenderer->GetSurfaceNoRef(); - } - -Cleanup: - // If we failed because of a bad device, ignore the failure for now and - // we'll clean up and try again next time. - if (hr == D3DERR_DEVICELOST) - { - hr = S_OK; - } - - return hr; -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager::TestSurfaceSettings -// -// Synopsis: -// Checks to see if our current surface settings are allowed on all -// adapters. -// -//------------------------------------------------------------------------------ -// -HRESULT -CRendererManager::TestSurfaceSettings() -{ - HRESULT hr = S_OK; - - D3DFORMAT fmt = m_fUseAlpha ? D3DFMT_A8R8G8B8 : D3DFMT_X8R8G8B8; - - // - // We test all adapters because because we potentially use all adapters. - // But even if this sample only rendered to the default adapter, you - // should check all adapters because WPF may move your surface to - // another adapter for you! - // - - for (UINT i = 0; i < m_cAdapters; ++i) - { - // Can we get HW rendering? - IFC(m_pD3D->CheckDeviceType( - i, - D3DDEVTYPE_HAL, - D3DFMT_X8R8G8B8, - fmt, - TRUE - )); - - // Is the format okay? - IFC(m_pD3D->CheckDeviceFormat( - i, - D3DDEVTYPE_HAL, - D3DFMT_X8R8G8B8, - D3DUSAGE_RENDERTARGET | D3DUSAGE_DYNAMIC, // We'll use dynamic when on XP - D3DRTYPE_SURFACE, - fmt - )); - - // D3DImage only allows multisampling on 9Ex devices. If we can't - // multisample, overwrite the desired number of samples with 0. - if (m_pD3DEx && m_uNumSamples > 1) - { - assert(m_uNumSamples <= 16); - - if (FAILED(m_pD3D->CheckDeviceMultiSampleType( - i, - D3DDEVTYPE_HAL, - fmt, - TRUE, - static_cast(m_uNumSamples), - NULL - ))) - { - m_uNumSamples = 0; - } - } - else - { - m_uNumSamples = 0; - } - } - -Cleanup: - return hr; -} -// - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager::DestroyResources -// -// Synopsis: -// Delete all D3D resources -// -//------------------------------------------------------------------------------ -void -CRendererManager::DestroyResources() -{ - SAFE_RELEASE(m_pD3D); - SAFE_RELEASE(m_pD3DEx); - - for (UINT i = 0; i < m_cAdapters; ++i) - { - delete m_rgRenderers[i]; - } - delete [] m_rgRenderers; - m_rgRenderers = NULL; - - m_pCurrentRenderer = NULL; - m_cAdapters = 0; - - m_fSurfaceSettingsChanged = true; -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager::SetSize -// -// Synopsis: -// Update the size of the surface. Next render will create a new surface. -// -//------------------------------------------------------------------------------ -void -CRendererManager::SetSize(UINT uWidth, UINT uHeight) -{ - if (uWidth != m_uWidth || uHeight != m_uHeight) - { - m_uWidth = uWidth; - m_uHeight = uHeight; - m_fSurfaceSettingsChanged = true; - } -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager::SetAlpha -// -// Synopsis: -// Update the format of the surface. Next render will create a new surface. -// -//------------------------------------------------------------------------------ -void -CRendererManager::SetAlpha(bool fUseAlpha) -{ - if (fUseAlpha != m_fUseAlpha) - { - m_fUseAlpha = fUseAlpha; - m_fSurfaceSettingsChanged = true; - } -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager::SetNumDesiredSamples -// -// Synopsis: -// Update the MSAA settings of the surface. Next render will create a -// new surface. -// -//------------------------------------------------------------------------------ -void -CRendererManager::SetNumDesiredSamples(UINT uNumSamples) -{ - if (m_uNumSamples != uNumSamples) - { - m_uNumSamples = uNumSamples; - m_fSurfaceSettingsChanged = true; - } -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager::SetAdapter -// -// Synopsis: -// Update the current renderer. Next render will use the new renderer. -// -//------------------------------------------------------------------------------ -// -void -CRendererManager::SetAdapter(POINT screenSpacePoint) -{ - CleanupInvalidDevices(); - - // - // After CleanupInvalidDevices, we may not have any D3D objects. Rather than - // recreate them here, ignore the adapter update and wait for render to recreate. - // - - if (m_pD3D && m_rgRenderers) - { - HMONITOR hMon = MonitorFromPoint(screenSpacePoint, MONITOR_DEFAULTTONULL); - - for (UINT i = 0; i < m_cAdapters; ++i) - { - if (hMon == m_pD3D->GetAdapterMonitor(i)) - { - m_pCurrentRenderer = m_rgRenderers[i]; - break; - } - } - } -} -// - -//+----------------------------------------------------------------------------- -// -// Member: -// CRendererManager::Render -// -// Synopsis: -// Forward to the current renderer -// -//------------------------------------------------------------------------------ -HRESULT -CRendererManager::Render() -{ - return m_pCurrentRenderer ? m_pCurrentRenderer->Render() : S_OK; -} -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderermanager.h b/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderermanager.h deleted file mode 100644 index 90866fb030378..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/renderermanager.h +++ /dev/null @@ -1,49 +0,0 @@ -// - -#pragma once - -class CRenderer; - -class CRendererManager -{ -public: - static HRESULT Create(CRendererManager **ppManager); - ~CRendererManager(); - - HRESULT EnsureDevices(); - - void SetSize(UINT uWidth, UINT uHeight); - void SetAlpha(bool fUseAlpha); - void SetNumDesiredSamples(UINT uNumSamples); - void SetAdapter(POINT screenSpacePoint); - - HRESULT GetBackBufferNoRef(IDirect3DSurface9 **ppSurface); - - HRESULT Render(); - -private: - CRendererManager(); - - void CleanupInvalidDevices(); - HRESULT EnsureRenderers(); - HRESULT EnsureHWND(); - HRESULT EnsureD3DObjects(); - HRESULT TestSurfaceSettings(); - void DestroyResources(); - - IDirect3D9 *m_pD3D; - IDirect3D9Ex *m_pD3DEx; - - UINT m_cAdapters; - CRenderer **m_rgRenderers; - CRenderer *m_pCurrentRenderer; - - HWND m_hwnd; - - UINT m_uWidth; - UINT m_uHeight; - UINT m_uNumSamples; - bool m_fUseAlpha; - bool m_fSurfaceSettingsChanged; -}; -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/stdafx.h b/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/stdafx.h deleted file mode 100644 index eae1506cb4491..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/stdafx.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#pragma once - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -// Windows Header Files: -#include - -#include -#include - -#include - -#include "RendererManager.h" -#include "Renderer.h" -#include "TriangleRenderer.h" - -#define IFC(x) { hr = (x); if (FAILED(hr)) goto Cleanup; } -#define IFCOOM(x) { if ((x) == NULL) { hr = E_OUTOFMEMORY; IFC(hr); } } -#define SAFE_RELEASE(x) { if (x) { x->Release(); x = NULL; } } - -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/trianglerenderer.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/trianglerenderer.cpp deleted file mode 100644 index 2f8977e6cd2a5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/trianglerenderer.cpp +++ /dev/null @@ -1,161 +0,0 @@ -// - -//+----------------------------------------------------------------------------- -// -// CTriangleRenderer -// -// Subclass of CRenderer that renders a single, spinning triangle -// -//------------------------------------------------------------------------------ - -#include "StdAfx.h" - -struct CUSTOMVERTEX -{ - FLOAT x, y, z; - DWORD color; -}; - -#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE) - -//+----------------------------------------------------------------------------- -// -// Member: -// CTriangleRenderer ctor -// -//------------------------------------------------------------------------------ -CTriangleRenderer::CTriangleRenderer() : CRenderer(), m_pd3dVB(NULL) -{ -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CTriangleRenderer dtor -// -//------------------------------------------------------------------------------ -CTriangleRenderer::~CTriangleRenderer() -{ - SAFE_RELEASE(m_pd3dVB); -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CTriangleRenderer::Create -// -// Synopsis: -// Creates the renderer -// -//------------------------------------------------------------------------------ -HRESULT -CTriangleRenderer::Create(IDirect3D9 *pD3D, IDirect3D9Ex *pD3DEx, HWND hwnd, UINT uAdapter, CRenderer **ppRenderer) -{ - HRESULT hr = S_OK; - - CTriangleRenderer *pRenderer = new CTriangleRenderer(); - IFCOOM(pRenderer); - - IFC(pRenderer->Init(pD3D, pD3DEx, hwnd, uAdapter)); - - *ppRenderer = pRenderer; - pRenderer = NULL; - -Cleanup: - delete pRenderer; - - return hr; -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CTriangleRenderer::Init -// -// Synopsis: -// Override of CRenderer::Init that calls base to create the device and -// then creates the CTriangleRenderer-specific resources -// -//------------------------------------------------------------------------------ -HRESULT -CTriangleRenderer::Init(IDirect3D9 *pD3D, IDirect3D9Ex *pD3DEx, HWND hwnd, UINT uAdapter) -{ - HRESULT hr = S_OK; - D3DXMATRIXA16 matView, matProj; - D3DXVECTOR3 vEyePt(0.0f, 0.0f,-5.0f); - D3DXVECTOR3 vLookatPt(0.0f, 0.0f, 0.0f); - D3DXVECTOR3 vUpVec(0.0f, 1.0f, 0.0f); - - // Call base to create the device and render target - IFC(CRenderer::Init(pD3D, pD3DEx, hwnd, uAdapter)); - - // Set up the VB - CUSTOMVERTEX vertices[] = - { - { -1.0f, -1.0f, 0.0f, 0xffff0000, }, // x, y, z, color - { 1.0f, -1.0f, 0.0f, 0xff00ff00, }, - { 0.0f, 1.0f, 0.0f, 0xff00ffff, }, - }; - - IFC(m_pd3dDevice->CreateVertexBuffer(sizeof(vertices), 0, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT, &m_pd3dVB, NULL)); - - void *pVertices; - IFC(m_pd3dVB->Lock(0, sizeof(vertices), &pVertices, 0)); - memcpy(pVertices, vertices, sizeof(vertices)); - m_pd3dVB->Unlock(); - - // Set up the camera - D3DXMatrixLookAtLH(&matView, &vEyePt, &vLookatPt, &vUpVec); - IFC(m_pd3dDevice->SetTransform(D3DTS_VIEW, &matView)); - D3DXMatrixPerspectiveFovLH(&matProj, D3DX_PI / 4, 1.0f, 1.0f, 100.0f); - IFC(m_pd3dDevice->SetTransform(D3DTS_PROJECTION, &matProj)); - - // Set up the global state - IFC(m_pd3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE)); - IFC(m_pd3dDevice->SetRenderState(D3DRS_LIGHTING, FALSE)); - IFC(m_pd3dDevice->SetStreamSource(0, m_pd3dVB, 0, sizeof(CUSTOMVERTEX))); - IFC(m_pd3dDevice->SetFVF(D3DFVF_CUSTOMVERTEX)); - -Cleanup: - return hr; -} - -//+----------------------------------------------------------------------------- -// -// Member: -// CTriangleRenderer::Render -// -// Synopsis: -// Renders the rotating triangle -// -//------------------------------------------------------------------------------ -HRESULT -CTriangleRenderer::Render() -{ - HRESULT hr = S_OK; - D3DXMATRIXA16 matWorld; - - IFC(m_pd3dDevice->BeginScene()); - IFC(m_pd3dDevice->Clear( - 0, - NULL, - D3DCLEAR_TARGET, - D3DCOLOR_ARGB(128, 0, 0, 128), // NOTE: Premultiplied alpha! - 1.0f, - 0 - )); - - // Set up the rotation - UINT iTime = GetTickCount() % 1000; - FLOAT fAngle = iTime * (2.0f * D3DX_PI) / 1000.0f; - D3DXMatrixRotationY(&matWorld, fAngle); - IFC(m_pd3dDevice->SetTransform(D3DTS_WORLD, &matWorld)); - - IFC(m_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1)); - - IFC(m_pd3dDevice->EndScene()); - -Cleanup: - return hr; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/trianglerenderer.h b/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/trianglerenderer.h deleted file mode 100644 index a848e2bd02d22..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/trianglerenderer.h +++ /dev/null @@ -1,20 +0,0 @@ -// -#pragma once - -class CTriangleRenderer : public CRenderer -{ -public: - static HRESULT Create(IDirect3D9 *pD3D, IDirect3D9Ex *pD3DEx, HWND hwnd, UINT uAdapter, CRenderer **ppRenderer); - ~CTriangleRenderer(); - - HRESULT Render(); - -protected: - HRESULT Init(IDirect3D9 *pD3D, IDirect3D9Ex *pD3DEx, HWND hwnd, UINT uAdapter); - -private: - CTriangleRenderer(); - - IDirect3DVertexBuffer9 *m_pd3dVB; -}; -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/window1.xaml b/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/window1.xaml deleted file mode 100644 index b45b0b9921749..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/window1.xaml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/window1.xaml.cs b/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/window1.xaml.cs deleted file mode 100644 index 38f3021fbe554..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/System.Windows.Interop.D3DImage/cpp/window1.xaml.cs +++ /dev/null @@ -1,219 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Interop; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; -using System.Windows.Threading; -using System.Runtime.InteropServices; -using System.Security.Permissions; - -namespace D3DHost -{ - public partial class MainWindow : Window - { - public MainWindow() - { - InitializeComponent(); - - // Set up the initial state for the D3DImage. - HRESULT.Check(SetSize(512, 512)); - HRESULT.Check(SetAlpha(false)); - HRESULT.Check(SetNumDesiredSamples(4)); - - // - // Optional: Subscribing to the IsFrontBufferAvailableChanged event. - // - // If you don't render every frame (e.g. you only render in - // reaction to a button click), you should subscribe to the - // IsFrontBufferAvailableChanged event to be notified when rendered content - // is no longer being displayed. This event also notifies you when - // the D3DImage is capable of being displayed again. - - // For example, in the button click case, if you don't render again when - // the IsFrontBufferAvailable property is set to true, your - // D3DImage won't display anything until the next button click. - // - // Because this application renders every frame, there is no need to - // handle the IsFrontBufferAvailableChanged event. - // - CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering); - - // - // Optional: Multi-adapter optimization - // - // The surface is created initially on a particular adapter. - // If the WPF window is dragged to another adapter, WPF - // ensures that the D3DImage still shows up on the new - // adapter. - // - // This process is slow on Windows XP. - // - // Performance is better on Vista with a 9Ex device. It's only - // slow when the D3DImage crosses a video-card boundary. - // - // To work around this issue, you can move your surface when - // the D3DImage is displayed on another adapter. To - // determine when that is the case, transform a point on the - // D3DImage into screen space and find out which adapter - // contains that screen space point. - // - // When your D3DImage straddles two adapters, nothing - // can be done, because one will be updating slowly. - // - _adapterTimer = new DispatcherTimer(); - _adapterTimer.Tick += new EventHandler(AdapterTimer_Tick); - _adapterTimer.Interval = new TimeSpan(0, 0, 0, 0, 500); - _adapterTimer.Start(); - - // - // Optional: Surface resizing - // - // The D3DImage is scaled when WPF renders it at a size - // different from the natural size of the surface. If the - // D3DImage is scaled up significantly, image quality - // degrades. - // - // To avoid this, you can either create a very large - // texture initially, or you can create new surfaces as - // the size changes. Below is a very simple example of - // how to do the latter. - // - // By creating a timer at Render priority, you are guaranteed - // that new surfaces are created while the element - // is still being arranged. A 200 ms interval gives - // a good balance between image quality and performance. - // You must be careful not to create new surfaces too - // frequently. Frequently allocating a new surface may - // fragment or exhaust video memory. This issue is more - // significant on XDDM than it is on WDDM, because WDDM - // can page out video memory. - // - // Another approach is deriving from the Image class, - // participating in layout by overriding the ArrangeOverride method, and - // updating size in the overriden method. Performance will degrade - // if you resize too frequently. - // - // Blurry D3DImages can still occur due to subpixel - // alignments. - // - _sizeTimer = new DispatcherTimer(DispatcherPriority.Render); - _sizeTimer.Tick += new EventHandler(SizeTimer_Tick); - _sizeTimer.Interval = new TimeSpan(0, 0, 0, 0, 200); - _sizeTimer.Start(); - } - - ~MainWindow() - { - Destroy(); - } - - void AdapterTimer_Tick(object sender, EventArgs e) - { - POINT p = new POINT(imgelt.PointToScreen(new Point(0, 0))); - - HRESULT.Check(SetAdapter(p)); - } - - void SizeTimer_Tick(object sender, EventArgs e) - { - // The following code does not account for RenderTransforms. - // To handle that case, you must transform up to the root and - // check the size there. - - // Given that the D3DImage is at 96.0 DPI, its Width and Height - // properties will always be integers. ActualWidth/Height - // may not be integers, so they are cast to integers. - uint actualWidth = (uint)imgelt.ActualWidth; - uint actualHeight = (uint)imgelt.ActualHeight; - if ((actualWidth > 0 && actualHeight > 0) && - (actualWidth != (uint)d3dimg.Width || actualHeight != (uint)d3dimg.Height)) - { - HRESULT.Check(SetSize(actualWidth, actualHeight)); - } - } - - void CompositionTarget_Rendering(object sender, EventArgs e) - { - RenderingEventArgs args = (RenderingEventArgs)e; - - // It's possible for Rendering to call back twice in the same frame - // so only render when we haven't already rendered in this frame. - if (d3dimg.IsFrontBufferAvailable && _lastRender != args.RenderingTime) - { - IntPtr pSurface = IntPtr.Zero; - HRESULT.Check(GetBackBufferNoRef(out pSurface)); - if (pSurface != IntPtr.Zero) - { - - d3dimg.Lock(); - // Repeatedly calling SetBackBuffer with the same IntPtr is - // a no-op. There is no performance penalty. - d3dimg.SetBackBuffer(D3DResourceType.IDirect3DSurface9, pSurface); - HRESULT.Check(Render()); - d3dimg.AddDirtyRect(new Int32Rect(0, 0, d3dimg.PixelWidth, d3dimg.PixelHeight)); - d3dimg.Unlock(); - - _lastRender = args.RenderingTime; - } - } - } - - DispatcherTimer _sizeTimer; - DispatcherTimer _adapterTimer; - TimeSpan _lastRender; - - // Import the methods exported by the unmanaged Direct3D content. - - [DllImport("D3DCode.dll")] - static extern int GetBackBufferNoRef(out IntPtr pSurface); - - [DllImport("D3DCode.dll")] - static extern int SetSize(uint width, uint height); - - [DllImport("D3DCode.dll")] - static extern int SetAlpha(bool useAlpha); - - [DllImport("D3DCode.dll")] - static extern int SetNumDesiredSamples(uint numSamples); - - [StructLayout(LayoutKind.Sequential)] - struct POINT - { - public POINT(Point p) - { - x = (int)p.X; - y = (int)p.Y; - } - - public int x; - public int y; - } - - [DllImport("D3DCode.dll")] - static extern int SetAdapter(POINT screenSpacePoint); - - [DllImport("D3DCode.dll")] - static extern int Render(); - - [DllImport("D3DCode.dll")] - static extern void Destroy(); - } - - public static class HRESULT - { - [SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)] - public static void Check(int hr) - { - Marshal.ThrowExceptionForHR(hr); - } - } -} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_certificatevalidationdifferences/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_certificatevalidationdifferences/cs/Project.csproj new file mode 100644 index 0000000000000..d9f06df6e42fc --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_certificatevalidationdifferences/cs/Project.csproj @@ -0,0 +1,12 @@ + + + + Library + net4.8 + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_certificatevalidationdifferences/cs/makefile b/samples/snippets/csharp/VS_Snippets_CFX/c_certificatevalidationdifferences/cs/makefile deleted file mode 100644 index 6c7850479e5fa..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_certificatevalidationdifferences/cs/makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: source.exe - -source.exe: source.cs - csc /t:exe source.cs /r:System.ServiceModel.dll,System.Runtime.Serialization.dll,System.IdentityModel.dll /lib:c:\whidbey\assemblies diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_certificatevalidationdifferences/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_certificatevalidationdifferences/cs/source.cs index 1bb569628b4a6..6e780e6b0aafa 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_certificatevalidationdifferences/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_certificatevalidationdifferences/cs/source.cs @@ -4,14 +4,11 @@ using System.ServiceModel; using System.Security.Cryptography.X509Certificates; using System.ServiceModel.Security; -using System.Security.Permissions; using System.Net; using System.Net.Security; using System.Runtime.Serialization; using System.Xml.Schema; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] public class Test { public static void Main() diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_collection_types_in_data_contracts/cs/program.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_collection_types_in_data_contracts/cs/program.cs index 1df8dd7351ff4..93c09daf8b693 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_collection_types_in_data_contracts/cs/program.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_collection_types_in_data_contracts/cs/program.cs @@ -1,6 +1,4 @@ -// snippet -// C:\sdtree\snippets\indigo\c_Collection_Types_in_Data_Contracts\CS\Program.cs -using System; +using System; using System.Collections; using System.Runtime.Serialization; using System.ServiceModel; @@ -9,7 +7,6 @@ using System.Security.Permissions; using System.Collections.Generic; -[assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)] namespace Microsoft.Security.Samples { // diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_controlserviceinstancing/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_controlserviceinstancing/cs/Project.csproj new file mode 100644 index 0000000000000..0cb2c6d132712 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_controlserviceinstancing/cs/Project.csproj @@ -0,0 +1,11 @@ + + + + Library + net4.8 + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_controlserviceinstancing/cs/makefile b/samples/snippets/csharp/VS_Snippets_CFX/c_controlserviceinstancing/cs/makefile deleted file mode 100644 index 3c20f4a0cdd43..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_controlserviceinstancing/cs/makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: source.exe - -source.exe: source.cs - csc /t:library source.cs /r:System.ServiceModel.dll,System.Runtime.Serialization.dll /lib:c:\whidbey\assemblies \ No newline at end of file diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_controlserviceinstancing/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_controlserviceinstancing/cs/source.cs index eae3fc09d9084..15f8aa4ae57d7 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_controlserviceinstancing/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_controlserviceinstancing/cs/source.cs @@ -1,8 +1,6 @@ using System; using System.ServiceModel; -using System.Security.Permissions; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] + namespace Microsoft.ServiceModel.Samples { // @@ -55,4 +53,4 @@ public class Class4 { } public class Class5 { } -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_createsecuresession/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_createsecuresession/cs/Project.csproj new file mode 100644 index 0000000000000..0cb2c6d132712 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_createsecuresession/cs/Project.csproj @@ -0,0 +1,11 @@ + + + + Library + net4.8 + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_createsecuresession/cs/makefile b/samples/snippets/csharp/VS_Snippets_CFX/c_createsecuresession/cs/makefile deleted file mode 100644 index 3801a2709ccc1..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_createsecuresession/cs/makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: SecureService.exe - -SecureService.exe: SecureService.cs - csc /t:exe *.cs /r:System.ServiceModel.dll,System.Runtime.Serialization.dll /lib:c:\whidbey\assemblies diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_createsecuresession/cs/secureservice.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_createsecuresession/cs/secureservice.cs index e02d1ff0c0118..32928bd759ae9 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_createsecuresession/cs/secureservice.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_createsecuresession/cs/secureservice.cs @@ -1,12 +1,7 @@ using System; -using System.Collections; -using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Channels; -using System.ServiceModel.Description; -using System.Security.Permissions; -[assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)] namespace Microsoft.Security.Samples { public class Test @@ -106,4 +101,4 @@ public double Add(double a, double b) return a + b; } } -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_createstatefulsct/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_createstatefulsct/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_createstatefulsct/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_createstatefulsct/cs/secureservice.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_createstatefulsct/cs/secureservice.cs index 6cfcf4bd624f0..d0675a55edcf4 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_createstatefulsct/cs/secureservice.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_createstatefulsct/cs/secureservice.cs @@ -4,9 +4,7 @@ using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Description; -using System.Security.Permissions; -[assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)] namespace Microsoft.Security.Samples { public class Test @@ -96,4 +94,4 @@ public double Add(double a, double b) return a + b; } } -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_creatests/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_creatests/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_creatests/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_creatests/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_creatests/cs/source.cs index 515393cc2216c..44b61dfadb328 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_creatests/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_creatests/cs/source.cs @@ -3,15 +3,12 @@ using System.ServiceModel.Security; using System.IdentityModel.Tokens; using System.Collections.Generic; -using System.Security.Permissions; using System.ServiceModel.Description; using System.ServiceModel.Security.Tokens; using System.IdentityModel.Claims; using System.ServiceModel.Channels; using System.Security.Cryptography.X509Certificates; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace CreateSts { public class Test diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customauthmgr/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_customauthmgr/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customauthmgr/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customauthmgr/cs/c_customauthmgr.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_customauthmgr/cs/c_customauthmgr.cs index 1675b9f48077c..6c16960e3fd7d 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_customauthmgr/cs/c_customauthmgr.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customauthmgr/cs/c_customauthmgr.cs @@ -3,10 +3,8 @@ using System; using System.IdentityModel.Claims; using System.ServiceModel; -using System.Security.Permissions; // -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] + namespace Samples { // diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customauthpol/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_customauthpol/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customauthpol/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customauthpol/cs/c_customauthpol.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_customauthpol/cs/c_customauthpol.cs index 4ae1ca00d07e1..ea99b8837c5c3 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_customauthpol/cs/c_customauthpol.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customauthpol/cs/c_customauthpol.cs @@ -5,10 +5,8 @@ using System.IdentityModel.Claims; using System.IdentityModel.Policy; using System.ServiceModel; -using System.Security.Permissions; // -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] + namespace Samples { // diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_custombinding/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_custombinding/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_custombinding/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_custombinding/cs/c_custombinding.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_custombinding/cs/c_custombinding.cs index 208744a84bddb..8c4ef81c76ae0 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_custombinding/cs/c_custombinding.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_custombinding/cs/c_custombinding.cs @@ -7,10 +7,8 @@ using System.ServiceModel.Channels; using System.ServiceModel.Security; using System.ServiceModel.Security.Tokens; -using System.Security.Permissions; // -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] + namespace Samples { public sealed class CustomBindingCreator diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_custombindingsauthmode/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_custombindingsauthmode/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_custombindingsauthmode/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_custombindingsauthmode/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_custombindingsauthmode/cs/source.cs index 7cd22cd0daaf9..2e99c81fa6503 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_custombindingsauthmode/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_custombindingsauthmode/cs/source.cs @@ -6,13 +6,10 @@ using System.ServiceModel.Channels; using System.ServiceModel.Security; using System.ServiceModel.Security.Tokens; -using System.Security.Permissions; // -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] + namespace Samples { - public sealed class CustomBindingCreator { private CustomBindingCreator() { } diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customcertificatevalidator/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_customcertificatevalidator/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customcertificatevalidator/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customcertificatevalidator/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_customcertificatevalidator/cs/source.cs index 0c8475c9f52f9..db2d82340b080 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_customcertificatevalidator/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customcertificatevalidator/cs/source.cs @@ -6,10 +6,6 @@ using System.ServiceModel; using System.ServiceModel.Security; -using System.Security.Permissions; - -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Microsoft.ServiceModel.Samples { [ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")] diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customclaim/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_customclaim/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customclaim/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customclaim/cs/c_customclaim.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_customclaim/cs/c_customclaim.cs index 238faf35e6eba..510f733cc905a 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_customclaim/cs/c_customclaim.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customclaim/cs/c_customclaim.cs @@ -3,10 +3,8 @@ using System; using System.IdentityModel.Claims; using System.Runtime.Serialization; -using System.Security.Permissions; // -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] + namespace Samples { // diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customclaimcomparison/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_customclaimcomparison/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customclaimcomparison/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customclaimcomparison/cs/c_customclaimcomparison.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_customclaimcomparison/cs/c_customclaimcomparison.cs index 476ca3a5e4e1e..f75b2144ae5bd 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_customclaimcomparison/cs/c_customclaimcomparison.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customclaimcomparison/cs/c_customclaimcomparison.cs @@ -2,10 +2,8 @@ // using System; using System.IdentityModel.Claims; -using System.Security.Permissions; // -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] + namespace Samples { // diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customcredentials/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_customcredentials/cs/Project.csproj new file mode 100644 index 0000000000000..140c6c2fcaf71 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customcredentials/cs/Project.csproj @@ -0,0 +1,14 @@ + + + + Library + net48 + + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customcredentials/cs/makefile b/samples/snippets/csharp/VS_Snippets_CFX/c_customcredentials/cs/makefile deleted file mode 100644 index 5e2958972cacd..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_customcredentials/cs/makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: source.dll - -source.dll: source.cs - csc /t:library source.cs /r:System.ServiceModel.dll,System.Runtime.Serialization.dll,System.IdentityModel.dll /lib:c:\whidbey\assemblies diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customcredentials/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_customcredentials/cs/source.cs index 487972ab7dbf3..55ccbe185334c 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_customcredentials/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customcredentials/cs/source.cs @@ -1,7 +1,6 @@ // using System; using System.IdentityModel.Selectors; -using System.Security.Permissions; using System.ServiceModel; using System.ServiceModel.Description; using System.ServiceModel.Security; @@ -9,8 +8,6 @@ using System.ServiceModel.Configuration; using System.Configuration; -[assembly: SecurityPermission(SecurityAction.RequestMinimum, - Execution = true)] namespace Microsoft.ServiceModel.Samples { // diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customfederationbinding/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_customfederationbinding/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customfederationbinding/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customfederationbinding/cs/c_customfederationbinding.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_customfederationbinding/cs/c_customfederationbinding.cs index d84710f8eccca..7de9658ccf6f1 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_customfederationbinding/cs/c_customfederationbinding.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customfederationbinding/cs/c_customfederationbinding.cs @@ -5,13 +5,10 @@ using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Security.Tokens; -using System.Security.Permissions; // -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] + namespace Samples { - public sealed class CustomBindingCreator { // diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customtoken/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_customtoken/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customtoken/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customtoken/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_customtoken/cs/source.cs index 904cab1da330a..6a14ac2149473 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_customtoken/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customtoken/cs/source.cs @@ -7,7 +7,6 @@ using System.IdentityModel.Selectors; using System.IdentityModel.Tokens; using System.IO; -using System.Security.Permissions; using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Description; @@ -15,8 +14,6 @@ using System.ServiceModel.Security.Tokens; using System.Xml; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Microsoft.ServiceModel.Samples { // diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customtokenauthenticator/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_customtokenauthenticator/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customtokenauthenticator/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customtokenauthenticator/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_customtokenauthenticator/cs/source.cs index 15333785bce98..4a97db62cc346 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_customtokenauthenticator/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customtokenauthenticator/cs/source.cs @@ -6,13 +6,10 @@ using System.IdentityModel.Policy; using System.IdentityModel.Selectors; using System.IdentityModel.Tokens; -using System.Security.Permissions; using System.ServiceModel.Description; using System.ServiceModel.Security; using System.ServiceModel.Security.Tokens; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace CustomTokenAuthenticator { // diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customtokenprovider/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_customtokenprovider/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customtokenprovider/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customtokenprovider/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_customtokenprovider/cs/source.cs index bcb64de641737..ea14709d88f89 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_customtokenprovider/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customtokenprovider/cs/source.cs @@ -2,13 +2,11 @@ using System; using System.IdentityModel.Selectors; using System.IdentityModel.Tokens; -using System.Security.Permissions; using System.Security.Cryptography.X509Certificates; using System.ServiceModel; using System.ServiceModel.Description; using System.ServiceModel.Security.Tokens; -[assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)] namespace CustomProvider { // @@ -68,4 +66,4 @@ public override SecurityTokenProvider CreateSecurityTokenProvider( } // } -// \ No newline at end of file +// diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customx509token/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_customx509token/cs/Project.csproj new file mode 100644 index 0000000000000..d05e7e2561064 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customx509token/cs/Project.csproj @@ -0,0 +1,15 @@ + + + + Library + net48 + 8 + + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customx509token/cs/makefile b/samples/snippets/csharp/VS_Snippets_CFX/c_customx509token/cs/makefile deleted file mode 100644 index 5e2958972cacd..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_customx509token/cs/makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: source.dll - -source.dll: source.cs - csc /t:library source.cs /r:System.ServiceModel.dll,System.Runtime.Serialization.dll,System.IdentityModel.dll /lib:c:\whidbey\assemblies diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_customx509token/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_customx509token/cs/source.cs index e167c7b1382c7..a91aef3dd3a55 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_customx509token/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_customx509token/cs/source.cs @@ -7,14 +7,11 @@ using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.Xml; -using System.Security.Permissions; using System.ServiceModel; using System.ServiceModel.Description; using System.ServiceModel.Security; using System.ServiceModel.Security.Tokens; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Microsoft.ServiceModel.Samples { // diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_dataarchitecture/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_dataarchitecture/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_dataarchitecture/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_dataarchitecture/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_dataarchitecture/cs/source.cs index b7e1504f6cb7b..9867ba15fb43f 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_dataarchitecture/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_dataarchitecture/cs/source.cs @@ -2,19 +2,14 @@ using System.IO; using System.Runtime.Serialization; using System.Xml; -using System.Security.Permissions; using System.Security; using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Security.Tokens; - using System.ServiceModel.Description; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Samples { - // [ServiceContract] public interface IAirfareFinderService @@ -187,4 +182,4 @@ public interface three void SubmitOrder(string customerID, string item, int quantity); // } -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_datacontract/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_datacontract/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_datacontract/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_datacontract/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_datacontract/cs/source.cs index c773820628a40..4da08161f040d 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_datacontract/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_datacontract/cs/source.cs @@ -2,8 +2,6 @@ using System.ServiceModel; using System.Security.Permissions; using System.Runtime.Serialization; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Example { @@ -192,4 +190,4 @@ private void setDefaultCountryRegion(StreamingContext c) } } // -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_datacontractenumerations/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_datacontractenumerations/cs/source.cs index 841f03ccb0c73..eb3cda100f180 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_datacontractenumerations/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_datacontractenumerations/cs/source.cs @@ -2,10 +2,9 @@ using System; using System.Collections.Generic; using System.Text; -using System.Security.Permissions; using System.Runtime.Serialization; // -[assembly: SecurityPermission(SecurityAction.RequestMinimum)] + namespace ServiceModel.Samples { // diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_datacontractversioning/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_datacontractversioning/cs/source.cs index df2a157288941..95ea51b2e2a59 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_datacontractversioning/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_datacontractversioning/cs/source.cs @@ -3,8 +3,6 @@ using System.Security.Permissions; using System.Runtime.Serialization; using System.Xml; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace DataContractsPrime { //C_DataContractVersioning#1 @@ -58,4 +56,4 @@ static void Main() { } } -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_delegation/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_delegation/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_delegation/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_delegation/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_delegation/cs/source.cs index e5d6261080221..cf24eb0a025b7 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_delegation/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_delegation/cs/source.cs @@ -5,8 +5,6 @@ using System.Security.Principal; using System.Security.Permissions; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace SnippetsPart1 { [ServiceContract] diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_federatedclient/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_federatedclient/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_federatedclient/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_federatedclient/cs/makefile b/samples/snippets/csharp/VS_Snippets_CFX/c_federatedclient/cs/makefile deleted file mode 100644 index 5e2958972cacd..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_federatedclient/cs/makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: source.dll - -source.dll: source.cs - csc /t:library source.cs /r:System.ServiceModel.dll,System.Runtime.Serialization.dll,System.IdentityModel.dll /lib:c:\whidbey\assemblies diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_federatedclient/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_federatedclient/cs/source.cs index 327646763ffe4..3f8acc517ca57 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_federatedclient/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_federatedclient/cs/source.cs @@ -1,16 +1,8 @@ // // using System; -using System.Collections.Generic; -using System.IdentityModel.Tokens; -using System.Security.Cryptography.X509Certificates; using System.ServiceModel; -using System.ServiceModel.Channels; using System.ServiceModel.Security; -using System.ServiceModel.Security.Tokens; -using System.Security.Permissions; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Samples { // @@ -25,7 +17,7 @@ SecurityKeyEntropyMode entropyMode { if (cf == null) { - throw new ArgumentNullException("ChannelFactory"); + throw new ArgumentNullException("cf"); } // Set the CacheIssuedTokens property cf.Credentials.IssuedToken.CacheIssuedTokens = cacheTokens; @@ -47,4 +39,4 @@ SecurityKeyEntropyMode entropyMode private IssuedTokenClientCredentialsConfiguration() { } } } - // +// diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_federatedservice/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_federatedservice/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_federatedservice/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_federatedservice/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_federatedservice/cs/source.cs index 419b1349ca88b..4b4dfdd03c880 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_federatedservice/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_federatedservice/cs/source.cs @@ -10,8 +10,6 @@ using System.ServiceModel.Security; using System.ServiceModel.Security.Tokens; using System.Security.Permissions; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Samples { [ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")] diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_federation/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_federation/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_federation/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_federation/cs/makefile b/samples/snippets/csharp/VS_Snippets_CFX/c_federation/cs/makefile deleted file mode 100644 index eab7a5b56a5e2..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_federation/cs/makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: source.exe - -source.exe: source.cs - csc /t:exe source.cs /r:System.ServiceModel.dll,System.Runtime.Serialization.dll,System.IdentityModel.dll /lib:c:\whidbey\assemblies \ No newline at end of file diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_federation/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_federation/cs/source.cs index 6d3986f82e8f9..7f739eaa577d6 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_federation/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_federation/cs/source.cs @@ -1,18 +1,12 @@ // -using System; using System.Collections.Generic; using System.IdentityModel.Claims; using System.IdentityModel.Policy; using System.IdentityModel.Tokens; using System.Security.Cryptography.X509Certificates; -using System.Security.Permissions; using System.ServiceModel; -using System.ServiceModel.Channels; -using System.ServiceModel.Security.Tokens; -using System.Text; // -[assembly: SecurityPermission(SecurityAction.RequestMinimum)] namespace Federation_Conceptual { class Program @@ -261,25 +255,4 @@ private static bool IsValidEmailAddress(string emailAddress) } } // - - // - public class myService_M_AuthorizationManager : ServiceAuthorizationManager - { - // set max size for message - int someMaxSize = 16000; - protected override bool CheckAccessCore(OperationContext operationContext, ref Message message) - { - bool accessAllowed = false; - MessageBuffer requestBuffer = message.CreateBufferedCopy(someMaxSize); - - // do access checks using the message parameter value and set accessAllowed appropriately - if (accessAllowed) - { - // replace incoming message with fresh copy since accessing the message consumes it - message = requestBuffer.CreateMessage(); - } - return accessAllowed; - } - } - // } diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_federationbinding/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_federationbinding/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_federationbinding/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_federationbinding/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_federationbinding/cs/source.cs index 56c66776bb950..e2fdbbbddf3a7 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_federationbinding/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_federationbinding/cs/source.cs @@ -9,8 +9,6 @@ using System.ServiceModel.Security; using System.ServiceModel.Security.Tokens; using System.Security.Permissions; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Samples { // diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_findclaimsperf/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_findclaimsperf/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_findclaimsperf/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_findclaimsperf/cs/c_findclaimsperf.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_findclaimsperf/cs/c_findclaimsperf.cs index 6322114fd82be..819eaebf0efd8 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_findclaimsperf/cs/c_findclaimsperf.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_findclaimsperf/cs/c_findclaimsperf.cs @@ -5,8 +5,6 @@ using System.IdentityModel.Claims; using System.Security.Permissions; // -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Samples { class Program diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_fourcerts/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_fourcerts/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_fourcerts/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_fourcerts/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_fourcerts/cs/source.cs index 8cf4b128f4a69..3f95a222c84d6 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_fourcerts/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_fourcerts/cs/source.cs @@ -11,8 +11,6 @@ using System.ServiceModel.Channels; using System.IdentityModel.Policy; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Microsoft.ServiceModel.Samples { // diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_howtocheckformexrequestsinauthorization/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_howtocheckformexrequestsinauthorization/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_howtocheckformexrequestsinauthorization/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_howtocheckformexrequestsinauthorization/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_howtocheckformexrequestsinauthorization/cs/source.cs index 50fe0903c37e0..7ac3345eba27d 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_howtocheckformexrequestsinauthorization/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_howtocheckformexrequestsinauthorization/cs/source.cs @@ -10,8 +10,6 @@ using System.ServiceModel.Channels; using System.Security.Permissions; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Microsoft.Samples { public class test diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_howtosecureendpoint/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_howtosecureendpoint/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_howtosecureendpoint/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_howtosecureendpoint/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_howtosecureendpoint/cs/source.cs index bec4b99e4c7fe..fcf89078652a3 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_howtosecureendpoint/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_howtosecureendpoint/cs/source.cs @@ -3,9 +3,7 @@ using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Description; -using System.Security.Permissions; -[assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)] namespace Microsoft.Security.Samples { public class Test @@ -71,4 +69,4 @@ public double Add(double a, double b) return a + b; } } -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_howtosetcustomclientidentity/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_howtosetcustomclientidentity/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_howtosetcustomclientidentity/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_howtosetcustomclientidentity/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_howtosetcustomclientidentity/cs/source.cs index f6eb1fbe3f3a5..68e938e2fb0c1 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_howtosetcustomclientidentity/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_howtosetcustomclientidentity/cs/source.cs @@ -10,8 +10,6 @@ using System.ServiceModel.Channels; using System.Security.Permissions; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Microsoft.ServiceModel.Samples { [System.Diagnostics.DebuggerStepThroughAttribute()] diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_identity/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_identity/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_identity/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_identity/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_identity/cs/source.cs index 2889a14b6083f..fc2cb5104f1fd 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_identity/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_identity/cs/source.cs @@ -7,8 +7,6 @@ using System.Security.Permissions; using System.ServiceModel.Security.Tokens; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace IdentityExample { public class Test diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_impersonationanddelegation/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_impersonationanddelegation/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_impersonationanddelegation/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_impersonationanddelegation/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_impersonationanddelegation/cs/source.cs index 0f4dfccdc92d6..739eee2b00463 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_impersonationanddelegation/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_impersonationanddelegation/cs/source.cs @@ -5,8 +5,6 @@ using System.Security.Principal; using System.Security.Permissions; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace SnippetsPart1 { interface IHelloService @@ -106,4 +104,4 @@ private void BuildStuff() // } } -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_knowntypeattribute/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_knowntypeattribute/cs/source.cs index 1850348ad0b0d..58a4ec48dd09c 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_knowntypeattribute/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_knowntypeattribute/cs/source.cs @@ -4,8 +4,6 @@ using System.Collections; using System.Security.Permissions; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace ConceptualKnownTypeSamples { public sealed class Test diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_maxclockskew/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_maxclockskew/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_maxclockskew/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_maxclockskew/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_maxclockskew/cs/source.cs index 37c394de6a2ca..0441c6e50f0d9 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_maxclockskew/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_maxclockskew/cs/source.cs @@ -7,8 +7,6 @@ //using System.Security.Cryptography.X509Certificates; using System.ServiceModel.Security.Tokens; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Examples { public class Program @@ -100,4 +98,4 @@ public int Add(int a, int b) return a + b; } } -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_programmingsecurity/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_programmingsecurity/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_programmingsecurity/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_programmingsecurity/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_programmingsecurity/cs/source.cs index 6164c1fd944c1..63d4a612f9e61 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_programmingsecurity/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_programmingsecurity/cs/source.cs @@ -5,8 +5,6 @@ using System.Security.Permissions; using System.ServiceModel.Description; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Windows.Communication.Foundation.Samples { diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_protectionlevel/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_protectionlevel/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_protectionlevel/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_protectionlevel/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_protectionlevel/cs/source.cs index 49be8bddc4da0..b63b973182e90 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_protectionlevel/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_protectionlevel/cs/source.cs @@ -3,15 +3,12 @@ using System.ServiceModel; using System.Net.Security; using System.ServiceModel.Description; -using System.Security.Permissions; using System.Security.Cryptography.X509Certificates; using System.Runtime.Serialization; // -[assembly: SecurityPermission(SecurityAction.RequestMinimum)] namespace Microsoft.WCF.Samples1 { - // // // Set the ProtectionLevel on the whole service to Sign. @@ -19,7 +16,6 @@ namespace Microsoft.WCF.Samples1 public interface ICalculator // { - // Set the ProtectionLevel on this operation to None. [OperationContract(ProtectionLevel = ProtectionLevel.Sign)] double Add(double a, double b); @@ -205,4 +201,4 @@ public interface IPurchaseOrder } // } -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_schemaimportexport/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_schemaimportexport/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_schemaimportexport/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_schemaimportexport/cs/makefile b/samples/snippets/csharp/VS_Snippets_CFX/c_schemaimportexport/cs/makefile deleted file mode 100644 index 5e2958972cacd..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_schemaimportexport/cs/makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: source.dll - -source.dll: source.cs - csc /t:library source.cs /r:System.ServiceModel.dll,System.Runtime.Serialization.dll,System.IdentityModel.dll /lib:c:\whidbey\assemblies diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_schemaimportexport/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_schemaimportexport/cs/source.cs index f8149d19522f4..66056707b9288 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_schemaimportexport/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_schemaimportexport/cs/source.cs @@ -1,200 +1,221 @@ // using System; -using System.ServiceModel; -using System.Net.Security; -using System.ServiceModel.Description; -using System.Security.Permissions; -using System.Security.Cryptography.X509Certificates; -using System.Runtime.Serialization; -using System.ComponentModel; using System.Collections.Generic; +using System.ComponentModel; +using System.Runtime.Serialization; // -[assembly: SecurityPermission(SecurityAction.RequestMinimum)] namespace ImportExport1 { -// -[DataContract] -public partial class Vehicle : IExtensibleDataObject -{ - private int yearField; - private string colorField; + // + [DataContract] + public partial class Vehicle : IExtensibleDataObject + { + private int yearField; + private string colorField; - [DataMember] public int year { - get {return this.yearField;} - set {this.yearField=value;} - } -[DataMember] public string color{ - get {return this.colorField;} - set {this.colorField=value;} - } + [DataMember] + public int year + { + get { return this.yearField; } + set { this.yearField = value; } + } + [DataMember] + public string color + { + get { return this.colorField; } + set { this.colorField = value; } + } - private ExtensionDataObject extensionDataField; - public ExtensionDataObject ExtensionData { - get {return this.extensionDataField;} - set {this.extensionDataField=value;} + private ExtensionDataObject extensionDataField; + public ExtensionDataObject ExtensionData + { + get { return this.extensionDataField; } + set { this.extensionDataField = value; } + } } -} -// + // } namespace ImportExport2 { -// -[DataContract] -internal partial class Vehicle : IExtensibleDataObject -{ - private int yearField; - private string colorField; + // + [DataContract] + internal partial class Vehicle : IExtensibleDataObject + { + private int yearField; + private string colorField; - [DataMember] internal int year { - get {return this.yearField;} - set {this.yearField=value;} - } -[DataMember] internal string color{ - get {return this.colorField;} - set {this.colorField=value;} - } + [DataMember] + internal int year + { + get { return this.yearField; } + set { this.yearField = value; } + } + [DataMember] + internal string color + { + get { return this.colorField; } + set { this.colorField = value; } + } - private ExtensionDataObject extensionDataField; - public ExtensionDataObject ExtensionData { - get {return this.extensionDataField;} - set {this.extensionDataField=value;} + private ExtensionDataObject extensionDataField; + public ExtensionDataObject ExtensionData + { + get { return this.extensionDataField; } + set { this.extensionDataField = value; } + } } -} -// + // } namespace ImportExport3 { -// -namespace Contoso.Cars { -[DataContract] -public partial class Vehicle : IExtensibleDataObject -{ - // Code not shown. - - public ExtensionDataObject ExtensionData + // + namespace Contoso.Cars { - get - { - throw new Exception("The method or operation is not implemented."); - } - set + [DataContract] + public partial class Vehicle : IExtensibleDataObject { - throw new Exception("The method or operation is not implemented."); + // Code not shown. + + public ExtensionDataObject ExtensionData + { + get + { + throw new Exception("The method or operation is not implemented."); + } + set + { + throw new Exception("The method or operation is not implemented."); + } + } } + // } -} -// -} -// -[DataContract] -[Serializable] -public partial class Vehicle : IExtensibleDataObject -{ - // Code not shown. - public ExtensionDataObject ExtensionData + // + [DataContract] + [Serializable] + public partial class Vehicle : IExtensibleDataObject { - get + // Code not shown. + public ExtensionDataObject ExtensionData { - throw new Exception("The method or operation is not implemented."); - } - set - { - throw new Exception("The method or operation is not implemented."); + get + { + throw new Exception("The method or operation is not implemented."); + } + set + { + throw new Exception("The method or operation is not implemented."); + } } } -} -// + // } namespace ImportExport4 - { -// -[DataContract] -public partial class Vehicle : IExtensibleDataObject, INotifyPropertyChanged { - private int yearField; - private string colorField; + // + [DataContract] + public partial class Vehicle : IExtensibleDataObject, INotifyPropertyChanged + { + private int yearField; + private string colorField; - [DataMember] public int year { - get {return this.yearField;} - set { - if (this.yearField.Equals(value) != true) { - this.yearField = value; - this.RaisePropertyChanged("year"); + [DataMember] + public int year + { + get { return this.yearField; } + set + { + if (this.yearField.Equals(value) != true) + { + this.yearField = value; + this.RaisePropertyChanged("year"); + } } -} - } -[DataMember] public string color{ - get {return this.colorField;} - set { - if (this.colorField.Equals(value) != true) { - this.colorField = value; - this.RaisePropertyChanged("color"); + } + [DataMember] + public string color + { + get { return this.colorField; } + set + { + if (this.colorField.Equals(value) != true) + { + this.colorField = value; + this.RaisePropertyChanged("color"); + } } -} - } + } - public event PropertyChangedEventHandler PropertyChanged; - protected void RaisePropertyChanged (string propertyName) { - PropertyChangedEventHandler propertyChanged = -this.PropertyChanged; - if (propertyChanged != null) { - propertyChanged(this, -new PropertyChangedEventArgs(propertyName)); + public event PropertyChangedEventHandler PropertyChanged; + protected void RaisePropertyChanged(string propertyName) + { + PropertyChangedEventHandler propertyChanged = + this.PropertyChanged; + if (propertyChanged != null) + { + propertyChanged(this, + new PropertyChangedEventArgs(propertyName)); + } } - } - private ExtensionDataObject extensionDataField; - public ExtensionDataObject ExtensionData { - get {return this.extensionDataField;} - set {this.extensionDataField=value;} + private ExtensionDataObject extensionDataField; + public ExtensionDataObject ExtensionData + { + get { return this.extensionDataField; } + set { this.extensionDataField = value; } + } } -} -// + // } namespace ImportExport5 { -// -[DataContract] public partial class Vehicle : IExtensibleDataObject -{ - [DataMember] public int yearField; - [DataMember] public string colorField; - [DataMember] public people passengers; + // + [DataContract] + public partial class Vehicle : IExtensibleDataObject + { + [DataMember] public int yearField; + [DataMember] public string colorField; + [DataMember] public people passengers; - // Other code not shown. + // Other code not shown. - public ExtensionDataObject ExtensionData - { - get - { - throw new Exception("The method or operation is not implemented."); - } - set + public ExtensionDataObject ExtensionData { - throw new Exception("The method or operation is not implemented."); + get + { + throw new Exception("The method or operation is not implemented."); + } + set + { + throw new Exception("The method or operation is not implemented."); + } } } + [CollectionDataContract(ItemName = "person")] + public class people : List { } + // } -[CollectionDataContract(ItemName="person")] -public class people : List {} -// -} + namespace ImportExport6 { - // [CollectionDataContract(ItemName = "person")] public class people : BindingList { } // } + namespace ImportExport7 { - public static void snippet() + class HolderClass { - // - XsdDataContractImporter importer = new XsdDataContractImporter(); - importer.Options.Namespaces.Add(new KeyValuePair("http://schemas.contoso.com/carSchema", "Contoso.Cars")); - // + public static void snippet() + { + // + XsdDataContractImporter importer = new XsdDataContractImporter(); + importer.Options.Namespaces.Add(new KeyValuePair("http://schemas.contoso.com/carSchema", "Contoso.Cars")); + // + } } } diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_securewindowsservice/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_securewindowsservice/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_securewindowsservice/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_securewindowsservice/cs/secureservice.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_securewindowsservice/cs/secureservice.cs index a0d7c22f5a127..578898488b751 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_securewindowsservice/cs/secureservice.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_securewindowsservice/cs/secureservice.cs @@ -4,9 +4,7 @@ using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Description; -using System.Security.Permissions; -[assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)] namespace Microsoft.Security.Samples { public class Test @@ -75,4 +73,4 @@ public double Add(double a, double b) } } } -// \ No newline at end of file +// diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_securewithcertificate/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_securewithcertificate/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_securewithcertificate/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_securewithcertificate/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_securewithcertificate/cs/source.cs index 1b47587586ade..2a8be50e941f9 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_securewithcertificate/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_securewithcertificate/cs/source.cs @@ -3,12 +3,10 @@ using System.ServiceModel; using System.Net.Security; using System.ServiceModel.Description; -using System.Security.Permissions; using System.Security.Cryptography.X509Certificates; using System.Runtime.Serialization; // -[assembly: SecurityPermission(SecurityAction.RequestMinimum)] namespace Samples1 { [ServiceContract(ProtectionLevel = ProtectionLevel.EncryptAndSign)] diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_securitybestpractices/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_securitybestpractices/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_securitybestpractices/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_securitybestpractices/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_securitybestpractices/cs/source.cs index 8132b42cd8bd4..d5d9d280611fe 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_securitybestpractices/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_securitybestpractices/cs/source.cs @@ -5,8 +5,6 @@ using System.ServiceModel; using System.Security.Permissions; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Design2 { class Program diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_settingsecuritymode/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_settingsecuritymode/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_settingsecuritymode/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_settingsecuritymode/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_settingsecuritymode/cs/source.cs index 88dc5112f9e50..795b5f999daf5 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_settingsecuritymode/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_settingsecuritymode/cs/source.cs @@ -1,8 +1,7 @@ using System; using System.ServiceModel; -using System.Security.Permissions; using System.Security.Cryptography.X509Certificates; -[assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)] + namespace Samples { public class Test diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_signatureconfirmation/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_signatureconfirmation/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_signatureconfirmation/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_signatureconfirmation/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_signatureconfirmation/cs/source.cs index d62fe15884f35..1fc334bef8419 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_signatureconfirmation/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_signatureconfirmation/cs/source.cs @@ -10,8 +10,6 @@ using System.IO; using System.Text; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Example { public class Test diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_simpleimpersonation/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_simpleimpersonation/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_simpleimpersonation/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_simpleimpersonation/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_simpleimpersonation/cs/source.cs index 79a4270040fec..c1e480a0dceb7 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_simpleimpersonation/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_simpleimpersonation/cs/source.cs @@ -4,8 +4,6 @@ using System.ServiceModel.Channels; using System.ServiceModel.Security.Tokens; using System.Security.Permissions; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace ProxySample { @@ -101,4 +99,4 @@ public double Add(double a, double b) } // } -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_standalonedatacontractserializer/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_standalonedatacontractserializer/cs/source.cs index af58d475cba84..bafc19f7a59f6 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_standalonedatacontractserializer/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_standalonedatacontractserializer/cs/source.cs @@ -2,11 +2,9 @@ using System.Collections.Generic; using System.Text; using System.Runtime.Serialization; -using System.Security.Permissions; using System.IO; using System.Xml; -[assembly: SecurityPermission(SecurityAction.RequestMinimum)] namespace ServiceModel.Samples { // diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_supportingcredential/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_supportingcredential/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_supportingcredential/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_supportingcredential/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_supportingcredential/cs/source.cs index ac28d72bb36fa..2a0cfe105462d 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_supportingcredential/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_supportingcredential/cs/source.cs @@ -12,8 +12,6 @@ using System.IdentityModel.Selectors; // -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Samples { public class Test diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_tcpclient/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_tcpclient/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_tcpclient/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_tcpclient/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_tcpclient/cs/source.cs index 7005c56dac866..020aa664b6d93 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_tcpclient/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_tcpclient/cs/source.cs @@ -6,8 +6,6 @@ using System.Runtime.Serialization; using System.Security.Permissions; // -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Microsoft.Security.Samples { internal class Service { diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_unsecuredservice/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_unsecuredservice/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_unsecuredservice/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_unsecuredservice/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_unsecuredservice/cs/source.cs index e204a9aad8bc5..796d09aebe8ab 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_unsecuredservice/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_unsecuredservice/cs/source.cs @@ -3,11 +3,9 @@ using System.Collections.Generic; using System.ServiceModel; // -using System.Security.Permissions; using System.ServiceModel.Description; using System.Security.Principal; -[assembly: PermissionSet(SecurityAction.RequestMinimum)] namespace Unsecured { class Service diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_workingwithcertificates/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_workingwithcertificates/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_workingwithcertificates/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_workingwithcertificates/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_workingwithcertificates/cs/source.cs index 53526ffddce15..f248ff92d0101 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_workingwithcertificates/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_workingwithcertificates/cs/source.cs @@ -6,8 +6,6 @@ using System.ServiceModel.Description; using System.Security.Cryptography.X509Certificates; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Examples { @@ -39,4 +37,4 @@ public int Add(int a, int b) return a + b; } } -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_xmlserializer/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/c_xmlserializer/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_xmlserializer/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/c_xmlserializer/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/c_xmlserializer/cs/source.cs index 84abafc55b2af..60bf11f818bf8 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/c_xmlserializer/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/c_xmlserializer/cs/source.cs @@ -4,8 +4,6 @@ using System.Runtime.Serialization; using System.ServiceModel.Description; using System.Xml.Serialization; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace UsingXml1 { @@ -113,4 +111,4 @@ public class BankingTransaction public int amount; } // -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/datacontractattribute/cs/overview.cs b/samples/snippets/csharp/VS_Snippets_CFX/datacontractattribute/cs/overview.cs index 4d4a8c85ccd3d..dd2c764a165d9 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/datacontractattribute/cs/overview.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/datacontractattribute/cs/overview.cs @@ -3,8 +3,6 @@ using System.Runtime.Serialization; using System.Xml; using System.Security.Permissions; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] // namespace DataContractAttributeExample { @@ -216,4 +214,4 @@ public void TestClass() } } // -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_CFX/serializationguidelines/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/serializationguidelines/cs/source.cs index 8a41b8004fbe0..25c95006ec0bd 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/serializationguidelines/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/serializationguidelines/cs/source.cs @@ -215,16 +215,14 @@ public class Person_Runtime_Serializable : ISerializable string fullName; public Person_Runtime_Serializable() { } + // protected Person_Runtime_Serializable(SerializationInfo info, StreamingContext context){ // if (info == null) throw new System.ArgumentNullException("info"); fullName = (string)info.GetValue("name", typeof(string)); } - // - [SecurityPermission(SecurityAction.LinkDemand, - Flags = SecurityPermissionFlag.SerializationFormatter)] - // + // void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { diff --git a/samples/snippets/csharp/VS_Snippets_CFX/trustedsubsystems/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CFX/trustedsubsystems/cs/Project.csproj new file mode 100644 index 0000000000000..105404c5886f1 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CFX/trustedsubsystems/cs/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net48 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_CFX/trustedsubsystems/cs/source.cs b/samples/snippets/csharp/VS_Snippets_CFX/trustedsubsystems/cs/source.cs index 58f2ff5b8ffac..9974dd353a026 100644 --- a/samples/snippets/csharp/VS_Snippets_CFX/trustedsubsystems/cs/source.cs +++ b/samples/snippets/csharp/VS_Snippets_CFX/trustedsubsystems/cs/source.cs @@ -2,12 +2,9 @@ using System.ServiceModel; using System.ServiceModel.Channels; using System.Security.Cryptography.X509Certificates; -using System.Security.Permissions; using System.ServiceModel.Description; using System.Configuration; -[assembly: SecurityPermission( - SecurityAction.RequestMinimum, Execution = true)] namespace Windows.Communication.Foundation.Samples { diff --git a/samples/snippets/csharp/VS_Snippets_CLR/HowToGeneric/CS/Project.csproj b/samples/snippets/csharp/VS_Snippets_CLR/HowToGeneric/CS/Project.csproj new file mode 100644 index 0000000000000..706cd0177f4ad --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CLR/HowToGeneric/CS/Project.csproj @@ -0,0 +1,8 @@ + + + + Library + net4.8 + + + diff --git a/samples/snippets/csharp/VS_Snippets_CLR/HowToGeneric/CS/ur.cs b/samples/snippets/csharp/VS_Snippets_CLR/HowToGeneric/CS/ur.cs index 545113dcbdacb..29a8a1a7cd67f 100644 --- a/samples/snippets/csharp/VS_Snippets_CLR/HowToGeneric/CS/ur.cs +++ b/samples/snippets/csharp/VS_Snippets_CLR/HowToGeneric/CS/ur.cs @@ -3,7 +3,6 @@ using System; using System.Reflection; using System.Collections.Generic; -using System.Security.Permissions; // Define an example interface. public interface ITestArgument {} @@ -126,7 +125,6 @@ private static void DisplayGenericParameter(Type tp) // } - [PermissionSetAttribute(SecurityAction.Demand, Name="FullTrust")] public static void Main() { // Two ways to get a Type object that represents the generic diff --git a/samples/snippets/csharp/VS_Snippets_Remoting/HowToChunkSerializedData/CS/Project.csproj b/samples/snippets/csharp/VS_Snippets_Remoting/HowToChunkSerializedData/CS/Project.csproj new file mode 100644 index 0000000000000..37d0726d213f6 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_Remoting/HowToChunkSerializedData/CS/Project.csproj @@ -0,0 +1,13 @@ + + + + Library + net4.8 + + + + + + + + diff --git a/samples/snippets/csharp/VS_Snippets_Remoting/HowToChunkSerializedData/CS/SerializationChunk.cs b/samples/snippets/csharp/VS_Snippets_Remoting/HowToChunkSerializedData/CS/SerializationChunk.cs index b509e3e7c586c..2aa52c0a11ab0 100644 --- a/samples/snippets/csharp/VS_Snippets_Remoting/HowToChunkSerializedData/CS/SerializationChunk.cs +++ b/samples/snippets/csharp/VS_Snippets_Remoting/HowToChunkSerializedData/CS/SerializationChunk.cs @@ -2,116 +2,110 @@ using System.IO; using System.Web.Services; using System.Web.Services.Protocols; -using System.Runtime.Serialization; using System.Xml; using System.Xml.Serialization; using System.Xml.Schema; -using System.Security.Permissions; public class Test { + public class DownloadAuthorization { } -public class DownloadAuthorization{} - -static void Main() -{ - Console.WriteLine("Hello"); -} + static void Main() + { + Console.WriteLine("Hello"); + } -// + // [WebMethod] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute - (ParameterStyle= SoapParameterStyle.Bare)] + [SoapDocumentMethod(ParameterStyle = SoapParameterStyle.Bare)] public SongStream DownloadSong(DownloadAuthorization Authorization, string filePath) { - - // Turn off response buffering. - System.Web.HttpContext.Current.Response.Buffer = false; - // Return a song. - SongStream song = new SongStream(filePath); - return song; + // Turn off response buffering. + System.Web.HttpContext.Current.Response.Buffer = false; + // Return a song. + SongStream song = new SongStream(filePath); + return song; } -// + // } // [XmlSchemaProvider("MySchema")] public class SongStream : IXmlSerializable { - private const string ns = "http://demos.Contoso.com/webservices"; private string filePath; - public SongStream(){ } + public SongStream() { } public SongStream(string filePath) { - this.filePath = filePath; + this.filePath = filePath; } // This is the method named by the XmlSchemaProviderAttribute applied to the type. public static XmlQualifiedName MySchema(XmlSchemaSet xs) { - // This method is called by the framework to get the schema for this type. - // We return an existing schema from disk. - - XmlSerializer schemaSerializer = new XmlSerializer(typeof(XmlSchema)); - string xsdPath = null; - // NOTE: replace the string with your own path. - xsdPath = System.Web.HttpContext.Current.Server.MapPath("SongStream.xsd"); - XmlSchema s = (XmlSchema)schemaSerializer.Deserialize( - new XmlTextReader(xsdPath), null); - xs.XmlResolver = new XmlUrlResolver(); - xs.Add(s); - - return new XmlQualifiedName("songStream", ns); + // This method is called by the framework to get the schema for this type. + // We return an existing schema from disk. + + XmlSerializer schemaSerializer = new XmlSerializer(typeof(XmlSchema)); + string xsdPath = null; + // NOTE: replace the string with your own path. + xsdPath = System.Web.HttpContext.Current.Server.MapPath("SongStream.xsd"); + XmlSchema s = (XmlSchema)schemaSerializer.Deserialize( + new XmlTextReader(xsdPath), null); + xs.XmlResolver = new XmlUrlResolver(); + xs.Add(s); + + return new XmlQualifiedName("songStream", ns); } void IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) { - // This is the chunking code. - // ASP.NET buffering must be turned off for this to work. + // This is the chunking code. + // ASP.NET buffering must be turned off for this to work. - int bufferSize = 4096; - char[] songBytes = new char[bufferSize]; - FileStream inFile = File.Open(this.filePath, FileMode.Open, FileAccess.Read); + int bufferSize = 4096; + char[] songBytes = new char[bufferSize]; + FileStream inFile = File.Open(this.filePath, FileMode.Open, FileAccess.Read); - long length = inFile.Length; + long length = inFile.Length; - // Write the file name. - writer.WriteElementString("fileName", ns, Path.GetFileNameWithoutExtension(this.filePath)); + // Write the file name. + writer.WriteElementString("fileName", ns, Path.GetFileNameWithoutExtension(this.filePath)); - // Write the size. - writer.WriteElementString("size", ns, length.ToString()); + // Write the size. + writer.WriteElementString("size", ns, length.ToString()); - // Write the song bytes. - writer.WriteStartElement("song", ns); + // Write the song bytes. + writer.WriteStartElement("song", ns); - StreamReader sr = new StreamReader(inFile, true); - int readLen = sr.Read(songBytes, 0, bufferSize); + StreamReader sr = new StreamReader(inFile, true); + int readLen = sr.Read(songBytes, 0, bufferSize); - while (readLen > 0) - { - writer.WriteStartElement("chunk", ns); - writer.WriteChars(songBytes, 0, readLen); - writer.WriteEndElement(); + while (readLen > 0) + { + writer.WriteStartElement("chunk", ns); + writer.WriteChars(songBytes, 0, readLen); + writer.WriteEndElement(); - writer.Flush(); - readLen = sr.Read(songBytes, 0, bufferSize); - } + writer.Flush(); + readLen = sr.Read(songBytes, 0, bufferSize); + } - writer.WriteEndElement(); - inFile.Close(); + writer.WriteEndElement(); + inFile.Close(); } - System.Xml.Schema.XmlSchema IXmlSerializable.GetSchema() + XmlSchema IXmlSerializable.GetSchema() { - throw new System.NotImplementedException(); + throw new NotImplementedException(); } void IXmlSerializable.ReadXml(System.Xml.XmlReader reader) { - throw new System.NotImplementedException(); + throw new NotImplementedException(); } } // @@ -160,26 +154,26 @@ void ReadAndSaveSong(XmlReader reader) string songBase64; byte[] songBytes; reader.ReadStartElement("song", ns); - double totalRead=0; - while(true) + double totalRead = 0; + while (true) { if (reader.IsStartElement("chunk", ns)) { - songBase64 = reader.ReadElementString(); - totalRead += songBase64.Length; - songBytes = Convert.FromBase64String(songBase64); - outFile.Write(songBytes, 0, songBytes.Length); - outFile.Flush(); - - if (OnProgress != null) - { - OnProgress(100 * (totalRead / size)); - } + songBase64 = reader.ReadElementString(); + totalRead += songBase64.Length; + songBytes = Convert.FromBase64String(songBase64); + outFile.Write(songBytes, 0, songBytes.Length); + outFile.Flush(); + + if (OnProgress != null) + { + OnProgress(100 * (totalRead / size)); + } } else { - break; + break; } } @@ -187,20 +181,19 @@ void ReadAndSaveSong(XmlReader reader) reader.ReadEndElement(); } - [PermissionSet(SecurityAction.Demand, Name="FullTrust")] public void Play() { System.Diagnostics.Process.Start(this.filePath); } - System.Xml.Schema.XmlSchema IXmlSerializable.GetSchema() + XmlSchema IXmlSerializable.GetSchema() { - throw new System.NotImplementedException(); + throw new NotImplementedException(); } public void WriteXml(XmlWriter writer) { - throw new System.NotImplementedException(); + throw new NotImplementedException(); } } // diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/BitmapFrameExample/CSharp/BitmapFrame.cs b/samples/snippets/csharp/VS_Snippets_Wpf/BitmapFrameExample/CSharp/BitmapFrame.cs deleted file mode 100644 index 1f3d823477f81..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/BitmapFrameExample/CSharp/BitmapFrame.cs +++ /dev/null @@ -1,218 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Threading; -using System.Security.Permissions; -using System.Collections.ObjectModel; - -namespace SDKSample -{ - public class MyApp : Application - { - Window mainWindow; - - protected override void OnStartup (StartupEventArgs e) - { - base.OnStartup (e); - CreateAndShowMainWindow (); - } - [SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)] - private void CreateAndShowMainWindow () - { - - // Create the application's main window - mainWindow = new Window (); - mainWindow.Title = "Imaging Sample"; - ScrollViewer mySV = new ScrollViewer(); - - // - int width = 128; - int height = width; - int stride = width/8; - byte[] pixels = new byte[height*stride]; - - // Try creating a new image with a custom palette. - List colors = new List(); - colors.Add(System.Windows.Media.Colors.Red); - colors.Add(System.Windows.Media.Colors.Blue); - colors.Add(System.Windows.Media.Colors.Green); - BitmapPalette myPalette = new BitmapPalette(colors); - - // Creates a new empty image with the pre-defined palette - - // - BitmapSource image = BitmapSource.Create( - width, - height, - 96, - 96, - PixelFormats.Indexed1, - myPalette, - pixels, - stride); - // - - // - FileStream stream = new FileStream("empty.tif", FileMode.Create); - TiffBitmapEncoder encoder = new TiffBitmapEncoder(); - TextBlock myTextBlock = new TextBlock(); - myTextBlock.Text = "Codec Author is: " + encoder.CodecInfo.Author.ToString(); - encoder.Frames.Add(BitmapFrame.Create(image)); - MessageBox.Show(myPalette.Colors.Count.ToString()); - encoder.Save(stream); - // - - // - - // Draw the Image - Image myImage = new Image(); - myImage.Source = image; - myImage.Stretch = Stretch.None; - myImage.Margin = new Thickness(20); - - // - - // Open a Stream and decode a TIFF image - Stream imageStreamSource = new FileStream("tulipfarm.tif", FileMode.Open, FileAccess.Read, FileShare.Read); - TiffBitmapDecoder decoder = new TiffBitmapDecoder(imageStreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); - BitmapSource bitmapSource = decoder.Frames[0]; - - // Draw the Image - Image myImage1 = new Image(); - myImage1.Source = bitmapSource; - myImage1.Stretch = Stretch.None; - myImage1.Margin = new Thickness(20); - // - - // - - // Get the palette from an image - BitmapImage image2 = new BitmapImage(); - image2.BeginInit(); - image2.UriSource = new Uri("tulipfarm.tif", UriKind.RelativeOrAbsolute); - image2.EndInit(); - BitmapPalette myPalette3 = new BitmapPalette(image2, 256); - - //Draw the third Image - Image myImage2 = new Image(); - myImage2.Source = image2; - myImage2.Stretch = Stretch.None; - myImage2.Margin = new Thickness(20); - // - - // - - //Create a new TIFF image based on existing Image - FileStream stream2 = new FileStream("image.tif", FileMode.Create); - TiffBitmapEncoder encoder2 = new TiffBitmapEncoder(); - TiffBitmapDecoder decoder2 = new TiffBitmapDecoder(new Uri("tulipfarm.tif", UriKind.RelativeOrAbsolute), BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.None); - encoder2.Frames = decoder2.Frames; - // - BitmapMetadata tiffMetadata = new BitmapMetadata("tiff"); - tiffMetadata.SetQuery("/ifd/{ushort=1000}", 9999); - tiffMetadata.SetQuery("/ifd/{uint=1001}", 23456); - tiffMetadata.SetQuery("/ifd/{uint=1002}", 34567); - tiffMetadata.SetQuery("/ifd/PaddingSchema:padding", (UInt32)4096); - tiffMetadata.SetQuery("/ifd/exif", new BitmapMetadata("exif")); - tiffMetadata.SetQuery("/ifd/exif/PaddingSchema:padding", (UInt32)4096); - // - encoder2.Save(stream2); - stream2.Close(); - // - - // - FileStream stream4 = new FileStream("image3.tif", FileMode.Create); - BitmapMetadata myBitmapMetadata2 = new BitmapMetadata("tiff"); - TiffBitmapEncoder encoder4 = new TiffBitmapEncoder(); - MessageBox.Show(myBitmapMetadata2.IsFixedSize.ToString()); - MessageBox.Show(myBitmapMetadata2.IsReadOnly.ToString()); - MessageBox.Show(myBitmapMetadata2.Format.ToString()); - MessageBox.Show(myBitmapMetadata2.Location.ToString()); - encoder4.Frames = decoder2.Frames; - encoder4.Save(stream4); - stream4.Close(); - // - - // - FileStream stream3 = new FileStream( "image2.tif", FileMode.Create ); - BitmapMetadata myBitmapMetadata = new BitmapMetadata( "tiff" ); - TiffBitmapEncoder encoder3 = new TiffBitmapEncoder(); - myBitmapMetadata.ApplicationName = "Microsoft Digital Image Suite 10"; - myBitmapMetadata.Author = new ReadOnlyCollection( - new List() { "Lori Kane" } ); - myBitmapMetadata.CameraManufacturer = "Tailspin Toys"; - myBitmapMetadata.CameraModel = "TT23"; - myBitmapMetadata.Comment = "Nice Picture"; - myBitmapMetadata.Copyright = "2010"; - myBitmapMetadata.DateTaken = "5/23/2010"; - myBitmapMetadata.Keywords = new ReadOnlyCollection( - new List() { "Lori", "Kane" } ); - myBitmapMetadata.Rating = 5; - myBitmapMetadata.Subject = "Lori"; - myBitmapMetadata.Title = "Lori's photo"; - - // Create a new frame that is identical to the one - // from the original image, except for the new metadata. - encoder3.Frames.Add( - BitmapFrame.Create( - decoder2.Frames[0], - decoder2.Frames[0].Thumbnail, - myBitmapMetadata, - decoder2.Frames[0].ColorContexts ) ); - - encoder3.Save( stream3 ); - stream3.Close(); - // - - // - BitmapSource image5 = BitmapSource.Create( - width, - height, - 96, - 96, - PixelFormats.Indexed1, - BitmapPalettes.WebPalette, - pixels, - stride); - - FileStream stream5 = new FileStream("palette.tif", FileMode.Create); - TiffBitmapEncoder encoder5 = new TiffBitmapEncoder(); - encoder5.Frames.Add(BitmapFrame.Create(image5)); - encoder5.Save(stream5); - // - - // Define a StackPanel to host Content - - StackPanel myStackPanel = new StackPanel(); - myStackPanel.Orientation = Orientation.Vertical; - myStackPanel.VerticalAlignment = VerticalAlignment.Stretch; - myStackPanel.HorizontalAlignment = HorizontalAlignment.Stretch; - - // Add the Image and TextBlock to the parent Grid - myStackPanel.Children.Add(myImage); - myStackPanel.Children.Add(myTextBlock); - myStackPanel.Children.Add(myImage1); - myStackPanel.Children.Add(myImage2); - - // Add the StackPanel as the Content of the Parent Window Object - mySV.Content = myStackPanel; - mainWindow.Content = mySV; - mainWindow.Show(); - } - } - - // Define a static entry class - internal static class EntryClass - { - [System.STAThread()] - private static void Main () - { - MyApp app = new MyApp (); - app.Run (); - } - } -} \ No newline at end of file diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/BitmapFrameExample/CSharp/BitmapFrame.csproj b/samples/snippets/csharp/VS_Snippets_Wpf/BitmapFrameExample/CSharp/BitmapFrame.csproj deleted file mode 100644 index eb1794c1c9002..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/BitmapFrameExample/CSharp/BitmapFrame.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - WinExe - net48 - true - - - - - Always - - - - diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/BitmapFrameExample/CSharp/tulipfarm.tif b/samples/snippets/csharp/VS_Snippets_Wpf/BitmapFrameExample/CSharp/tulipfarm.tif deleted file mode 100644 index fbe1e1015ea23ce7310e3da021fbfec6eafa9950..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1235356 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�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

B6trxZ3jiXt&7{X6wz~! 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

1d!=sAhlg8iUKI&jT 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�L$4*yr+Q+Qax{wL90o`arY&dZ#2UzwXjpPOE0VDvJBVT5{a!gb5Iz-c06RV1!muo)K9H^6Mb zCRXu+uF_ky$@84^bi?t%OTisW>r?~t$gr0v|J*@FjjoTpR?;mhS5*3^DfTe=j>3Gd zaIy)RMx~#FTY^3Ku$L`pk{1Hb28g3*|{6r`8=}@ z(q<1#V;hZZ8}3*5Z)*uZuKFG{uQPb?JFLkLxZ)Dn= zG)r&Q`~3QV zc^~)TW)G<&-hlNz9i1>whn?ot0JGQd7ptD%B;#)%zlLU)t;6p&`@76E`E>28U&7H| zHV^OKrv7uFBMg{rGDr8&(`~~A*Kb}lh4Y`7`lZj!?B&l*6V6h(JMz71zV13)(K0n} z0W5b4jh<#c2_w#cZToF9I4c1_Zd!He5Ax}+}rJhQH-Nkyy`-EejLgSO{W?kajRra{D0)z0v3FXCr zwaF_IyLH}#FMeX@?IwGe0|@>%e3$d4|D5R?y=?h7WnQM}X%qN3e0`srAel6i)NO9p zCFAp>{ie54Mzdy`#xw9X>>2tJv_vytNZ7H(WJ z)$5l{jhyHXbLMt#;G4Nd)*+cU>m$Qv1-!MzEV)%YG;6H$CGxX(`})lmwc=7gK9@e~ zalNkJVYYC$S-yD9tXu>mq<7oW+&VO*nu(moj~({&+`(r^4_Bt2EP`QcuF@uT-!K35 zTl2@iqOn20bo%n1&1jHE(9T~%%afqabHfD(Sx+Gk7y~^;B?y+7jiX(}Cq~cFY1Ym1 zTH8E)d}JOyJ|NqF-#q>9&}_b1G6$#3RC~lswMWbdxli67UI@*I@P|jO{zE>r)91`u zd$)1sp8$(|^@g+a$ss;z{BwyZxC!_s&X!n+j6n3;!icNPgQ!r`DeI@y0P|! zxhw6MI2HL{6Yy=yzgK^gq`ub-SZM>Ma$RtyaD?oI(q4(Xw3;1y0r8q+to`vYx)$m( zVPpwr%?dwJjiGu(d$+uW;v%K#SH`O}FypSv=pV>n<66ikQ3UhUchdKqS;n8TMAjdk zK|lHz)qlz~RqYi)e;CG3B&=?N_mM^@g|}3*uGCMLnDr*ER+>P~NR<9uo>;3z<1?nv z>@CAJui>Nl%iq2;zy6PpmLJr*QP!R2OekAHTB5G8i)H{nmN%xp9d83VSp7fEtWy84 zT6BsYPret;!EpFK=eweHpl++s}!ge^R@=n z%()D6k5u1o9<*#dSw{D5^^)jlN_hT+N2^{Hh8V_UD?hSoE#;P!!BUeA`dT=O*B_sm zuYY8Q&acnRU;oEj^X?}ymVSrc;oFDIj8N{IX3v2;tl~*tCTE7)VKl_djtDhAwLp|Q zM74r)S5BU9p=(?6Nd2z)VwyLsnGPcX_NGO!54hkK znxmB+<{&PkBV7dlU&n`!t}PAD=Pr`P05@7Jqo-S)H*=dg>Uh|w0pzQx zcQ{8EIVTt4SjmeP##fYY1iy;>Av5#fWZ+`{_(hA$H_(;~hyVH`Sx(=rncw~SKE24C z#kHrwMxVZ97Ws4dH0g(^O~=ORlhDFD@vDZ?cXo9rzTB(8|=IV&e(+as*!C{ z1^=s2?_}U0rf=qgj8N5uO0^6HXmP_n|#J z#WS5ms}f^htB1k3Hi>ONYAHe&CvDtlW8@KR-4?PIz52$BXYb? z1+1fq4xz=`XqMw#bf+;nRO%^&+q9S?SveK`eBs2L44?&m!DoelP+jrjyv zowAm*=4hi~?jN+x_VP5dJJ53AZ`@9>Z>5uFJ&V@DiKm#eyA9WO)Hh^~zyXz~_iUzO zp5pm9(dOxOHJi-p z+PZl@uYGBjuU@wGO`H2yP2oXgugZdFXcpisSYQ$_N1XdR1#g^2Us#(U+s8>pGP72S zV3H{p94r3wDe}dW_+C?ZOp<)Q^er-py21Yk!R5(RiLr*m_#rgQr9?hVjPE|hD{=Kx z6D7Y-bD;a~ero!LzT(_rjgnar7Ul@P9P0am`D)kUnBfiJnLT4wXK|@4h*e-|fwg)g{P7DG#g8 zdCedd7B`9aK)6E?jjD&WlP2FhPfb!ykcr8jd%U;8GXMt8T>6b|@+ME1_4c@9j-Sul zy9&PqJ{u#@I~ks!5dm_{3&1~EATd3TLts_CArZrj^IAQ9PmYr zyOb%54~RNU^>za8GRMABpoS};H4rAJ9#VW(oc>omv$A@XZD8|C*proICvK()FQuG& z`Df4cc-(KW6!CHaVZ2$*T|&Erhhz?&T9kS@2qqj!QTy@UnIfDqJ#L(TPyU`5zBaw0 z;9k-h#le-t9b3O|mURP1G>QIG+^p&_VSK^^-Czph?R3_JlJJD^-QrDcHX!wq%S)~s z&rbkdb)3CTvr|={h%Z#WafI`uzH)XBPvzk);r!D0z?AzDW*-#)BaBg;kbHB(r&YtM z&QyJ%zmuQ`w=-^2^eB9;QSf#70@aJhvk|h0TW2#Oet1NN?;|+d+}Y2Cu5upooxmEE z$uKy1&D>?k{=e8HwrA1_pIPm7B8fl zAQnf{L_Vnpym`n;F4@>;cJ{#D5jmA_9>9S&&|q+1@zQwX*QmL<5Aa07IiUyHI%ej|3i>Os6lt=Azsa9@{QPV_#mjFG!R>x)j$SbD`FO?7zF1so+M3fo zFW?j6r+nFNtHCcWz!`2bGYM^*w4Tyi3O77_vSQx;_`v+--`?X#_=smg*wssN<#xar zsmoYT8EMe?p33cz-g08<3RoUJD*fUV>#B+uVfUoX%-9v4%Qf@h6`Adi(MN#A>E98C z>58G*pZp4L8r=%lbBzX zk$IQkuo*pn_>i8wZJTHB=a^B4-wVD%m{E*#LK@$>&J?+v4LE9WWbnv@YN0giGVrP0 zSCZ@j^UMeqm#ti8eOJwv)eMkPFeGut)oqp9&{Y)y`*&zZYuwe zUh-%};JAe6$KJo0eb(s2i<5B+F9LhS2P zpOtz$-~hQbFI-qKjzZ zx0;2=FQXd?XOzd!99BMSm3y-Q<}xo{6pzFn8mt3yDvw*!%#4~hyF6DrwTjsZ#LR9Y z3C;%A=fHzIIBK2^jhpwO7&GWo<}sLyd>1d6;r89;x;a{G+M0D6?szTkH%H+9$KZhn ze3xysQTy~_kFw0{z*Dey{x@d#_HWR1eqlWtOK3EA@MAm*Q)A$bZC?14{NnR=e%&W-Olyf@tM1@w%{f!1u_Hd%?&czr5va*gp6HPEe8SOd~e$M9OpyOak5 zuW&XjphwEE#>9VWW~Q)+AUJs*&1v?=7p4K`1ygC@%WIMa zy#QuiVLptqmZ!kYVqNrYeYe06(RGkXo*TGovUon?xAEcflBO?39h-8H6ApIf19Ne6 zhK}=j$DDVJ3rsMAPq_q^Ha9q8YPZp|-lleB9XXll)_vy-)7y8!IKdU&lkl~iKc4;z zCOS#p3|OADrtXnXd7n@CZ~kr0vp9ZUae(qu3h#(aQIm3(CeheT(GR2|tb2OwA@oGf zJ6{?n{BsOHav6-Wdg~(fG_&izx@g*HE?U%c;?vjgS*_q%k;g;z`^KdkX7!7!Xfo-& z{7y4VU0my9t|B#Y=?+=bcduHHa1s1?CIqK~27NY!|00z#8S3^}7=9#)KaKe+6>7Bv z`r@7A4xYj__)fBB+4IikQ1L8m*Q^fi=w!!w*fjTPk{Z$-1W#ZchxqqXaQH=Pz%uW- zjBdNmnrl$sm4&_2w{PxO(RWwS$b-GGS18*d$v#&n`%14Ay7wTOnaS`c^yBBPmtq0! z`VwBfjZJj5XewUQ<3D|V2#+4OJ)#qTw!Ca{ot5Biu?)QhwUuTCNbibd~eDqhsw0P1Ued}ZqOI+-S#i&dG6(;vgTQUAKYE!|*?Q7}p6)`_ds zIWEnRaH=!RYMe|uW-LWHx8PNkO(&c|wV-B)IN^u%?@QC}=XwgOkbh8hqxAgZ`&JLo z>L1Z7Q$GkBk;g!ork`^_m`9jeRWk`xJN7tlaMpk!;RCd|BiFTe4BsIfll14}QAd3A zTh#x${0(d-!78JblaDU$C~H z|NhQAe6wfnKiOt|@^fem#RJ-mM6{D$_I4jSq%fM8X|&&(ODms@@S5^08UA2*`wy4R zvv6q3=!fc*^zisn8Js{H!9##CHIJ^-TxzqIDU1(m0=z}%uFUuN{_R0?)s?5d!&!_xE znj@Re#lYXGZ_%Ew?UeZJ;K>W#J!pk6G(GOW=bIi-{hbtfJL>V}ARm*YLFm;HT&{z-sTGY?_b1du?B; z;g;b5^k+M0e{~Jjhe^Ar%wm6%{TuwZ05+cC*Vz>>8O-Ex(vwQt*<8+9FOjsQA$+$H z^fxnL+0tu>`;X?~X(G&)h~Ycp`H+Wx3BFD9N_4NJ1x9!1=PMnrUz#8Ej{ng7#foSgsEx!GSdS6?k@({Y z_%ScIb`%~_J*A!>H-bK2S>*#{GAfH){J$qi9u;~H2YQon zcr_2_WPqQGgUN)3;L737ltWR0iz|X5WYDlz!DhsXwz)=4@*C^$FnQ`gn{S97AjR{n zzTS&ISoN~{PVHyvOM>Vx9lkHE4`>WdPMojijfBC6hV&U-;InAFbaqJ3Elr9eantn0 zu9^XQpCF##G}^%gXHo{wie}deV@T-*pHiV0s?)pLnh)H474NL_V%N~yZ7z{N29Mgr zGuYZ#FpJcK3*drFXwuu@`pPKHqw_0q9p~7KGWe{{yiL?K?9Em9l?C*cnl-meZF&fY zpgFc3aNf4|Yj~+RdYceBO`Q!D&i)46X$w4O#WiN`XVc~czV;B#>=4}UI9D>qPO{Sc z5%^lKc|0&~9`p>Elinfo+~YIv&|1B4qrr;=%mdEy$N8c;Z8gnf=Duyg?Y4%8&3$k5tH196~S0`$KR(PeLedCyPccXfi3l6AKXZn4F=^aQ`kKHp=Se7PF^ zet~_Z1sAoz8K^mEGoBGMOI#d&6}-c=mSEbl>& zTBR47<2vQ38q-KH3lF^>3ZkwQXvUL~h zO?lLCS4A`&$#Fd6aJT+mbjsaV$VaJg~3tit+MZZm_^9hs?npcyRdNx#*+N}FRiHQ6Tr_Lzi)d?@?F44Gw8cEY zoi>~d8F}k)GI;XD%aqY;*3nMQ!XrtqBdkdK)CBk4C9fCPC(JdU2XCI|ES|}eb3k7+ zN3MZ#iu3f*>IEyjPnLexg=S?8e8>lXA)GXk#fJemk}1)HPvIdAaWCOkA_-=oEQ6bO zSZho4JUaz*|KSR{*)?0Ys#lbTMRi>;eVsiUtr~lY=FKbfLv@e#KK0R=n&#H>-|VH@ zyTy-)8_`Tq?L*3O(7H|4$@U?OR(?IzfWpdz%Z=d$5|1IgP8^TU$Z!UJ8UJ<){7m!K zD&UTJ<@5=U#D5}OA_XTt*KUA6pk?Osj={ya#SQWAN+++qK0)-r2lgxo(z z^s*^0;gMZQf-`ZA(T_%%&s3pSSwR!FhHpULWa$%?&6k~n^JQK9-D)0zt9qoKF z?T_q3%5C#=e#^fquZHwP@_IPF>ro?~;O(XoK_J5r{T_azaF2`q_ zy~=XF!+yYZ<{T66ID&>yeZm~;PZ>A6%pcRtI%&!WUE-$bn>_gE*}ufQiYrvzuX@1~ zRi*?!H0p{Ka?d{g?xp$uchAhf{IQRISHPU873l%wjh4r} zwZXj2r%m(Z{kr9BcONX0pPj%z9kZT9<@CB!Xi4$R*qNbxU)6`I6B=l~g{9BJX*N1! zCR1x1K3Rr`UN9#wH_d}5dp3(rHJx;W^7iT;47fRe(eNopML3!GcKK#!I`~`2LJ=1% zj9OTscvs~>Zyncdo=BBGL-|7Tfhf;<7@Vdb3~<0L?+)5ZygpghzxekdH~vr7#?IlI zIXvEB&JCWy-GW&?M0&S{QJ1e{+vICj^Sx> z?IT6-=qx%f&B9R+7{^DZT2Qm}lmV!}ryj-yZ|;ZlnT(z1y0Z`PTx;)99irz*7^C{R ze`r8P;6EK;0Zz10>W?O=WA%JWbE~~U^^wKp@#|WhEZ#ZQXYwrT6#$D=R(1ewy5?~R z#}j`qj7+l&EtiT0QyhZoD&;~AQzQ0rR%uUDkEl7m();y}o-LW|d$NA$07YU-B*Zj5&dw!Z+4Qbhxl~Lk*&7$3HfYVBcqie2b-7n6YH7C5% zP5y;)Lp}I&b&e=QTi#9eqRM{h1#9ZzEcL|bIna!$w{xjhpk{Tt&`hHXc7eMOlUJbm zB)wn;JuWap{$DnY{sKLa-gAonFNHp}MBQGSLA#39w!<^EM1I5iV%;pw70o(XNIRVy+smHa)F;b@GR657(UX40TWy++P}%47i_qloIQ!1dc20Yo4sb4bIwK z2RIs@-4*KNWoqLZXU8->ScaZJ*CaL>Dba`3tw z=4jMw=j%SX3FmwHuDN&hjyXo_|H|z#C(M!C@i1SF`tZoByT4k0Bm=8azP0=`80` zo_cK_-N>vTtsNNJA{ogI@TKwq`Z;>_0+>h{{5p$AM|G~%LS$L@P3m6iKjkD8(YBXa z_u_ABJfC&&>^vTlDKLs4bx{QVKS?e`34cQg-g1W8r-Hvcas8@EfICJ;@TP%%g~$){ zg13dJxgzw<5io@iJx>tMHv(o5cEJnd2}!{_w~YV=V>P zD+72fz4)IdN3^cth4Bhk@Z4s*_-^<_is&Kp4s;2lL#7P&so%%QBMP#&x_#tDz++24 zF6~p0d+QwMeLeK?@V)LNcnlno_M;R$@D$i+!V90_)C(RO-TNqg|D?`6vTBB}eQ5%h zFXH>g^UKjK%*?p^EHBB(;W{Hdi_~JP- zK1yg^q=ir>OOZMx4Y#5^#W6S94RCya46hEFjw1V|u3bob2774$948OfzCi7_yb`rO zf7PX$BcbzH-a%V;P(Mf`JXJc&uoE^X51e=uo6k?*DBf3lul;}MV$|Qq(D=w(rrJ+@ zL>A0idB?>T>$9nIlU|&@#lya-Jxe{a_G@`#qrxlcQRQWeQOnEsp-igU4CfAYT~>P= ze5`z_ngOr*4dO*_M1EtO-~j^p`&N8y9$lW_V1pXJo0jYh+8s zxqo5qUxu@-M18%!-Zbl5)Hi7Ht7Q45X1L$lbK!oZwNp0Dnf??`k?SM;PB?<<0o^~% zjU87HM7^N%M>WHUm*1n;R=p;UN<5b|*Co6Z>f_|a@Mh7{&Qj}YJ&?Omn$A#vWzlfU zN5Ol8XDD}eegn_wdX*j=O&GPLaFRj)d5b-&RuM)h%w(9JP<}&uAHi6~WsSP7ur{vR zIdwVeswTSAZ$CUXC)8@n;Bk8SjCegY$JlyI(QZonq>O=l108+_oFAQqG)Kaex}ICdRdfFtnF`OAsprsQ<4sX!cC?1i zIf1{7Jx*t|G=$<**LGS~$5tmdPB`K;eBmNBQImS5y+!^4@1uXGLLRGhTvpRX28@2L z+>BW~NFM4*_N+oZkM=Nb>yOm~G!VOBRd7(&g91OAonx+L$7AP>9h@%lYtdqfu}qX} zjE9Xmz{B*^w;f+m175f1p>WG=39cS*ny$O%A5_V%l}~1Q7vAVTKBs-=x1EwJ@np_o zyPNk^?^W;&pw;x^aa^mR>s{c#-Rym2FLFKy+4C!%kj=$wqxqe~FMs@U+kE`XOQV|a zmw#slHMs) z^l|pD@fdqN7`m>p%QJ~jo8E}$EK~y1Lf0uTtgfBrGpk=4bl)}ucrDZ`4S?0DO*%?2U0ayD>0^Av};y>VJ8bHRDg2 z$I>H>@V0X^gJ0&q!g&Y}1a{WX|_|0ezV4R93B z#vnP+0kD$rAiO3uL1YvR$K6XFE_ef6hI;)n7@*D&@!i6*^*zNU$Pc9cRJvzBdxrRK z&CUsD<$FUD?Hd5|`wY$(UnaFxf{Yer?@Zz`k=AGs-@q{YQ+5M1MfTR88(MsTsOO) zT{ibG-8K*U2f+l#@OL`U@>Ano?=f5Cdu)4|A%Z7zjhbL_n2gVEbZVE;hA|6bpB$O{ zaNh^yd@RB7sm9w{Wmd;}!ECkQwZTRT>}AT$ZZ3txTGZsA5t)o4hIrxIz;0N+`xTs^t>2)TlGpl4I z7SI&t@X2QIIoTH+Y8nqt0`IN3Ykz<_g}jD%26ayBI}3C0^8Sy$Z>=0U2WOraEKb;- z`e*qLq_I)2Eq*}wnf-3?vg$Vj)NZy0R5m;_XQWq47@L%O#PXU^&5bP(^=qQ|Iv3Z^6bpAhb0oqnZdo~`W@ zX5Uf+&ajVa2AE#T<`E7kKDZC=q<;(z6xd!JyihYFq(fA$u+5)AQ{iErsKpz>8q}kx zE>&i*IC^iInM6fqVdANkhHY`XWFEqYN+YJcVo(6ZBQiftAXpWvQS}ytUbk};FweH2o3KvyYk?KGB zP&6My{wMWBdcLLEu>D{PEjqlO>S1xen#HGjQRj*D3OY|Fz!!v#sZY|LB7Mb~PLDGY z4VSbL@tW#C`g|~Q-4|hndanugFdy8HbR)t|Rli8Hpn0~A&`qm@m;|f)M@{4c2h)Ah zv)ApsKz#%DO`oZrY@E7g5^a`S*dEWYJ-^V=$rlmjne?&`InY)NI&PR@xTyiSBKcm% z!0v|8SBz4}2_N_1_mlrC#GdVkC)GYSPJV@I#R)hg&EHWjlWIZf^Ct$;Ab|OWz#k&F z(dYN$si%&J+y*B>ljH}R2={_{s15`V3Q-FLIMZSdau%qcqtpx1Y%0Uk4GurR8K*gr z+Dih-5c@A#fcQV6^u;l1HDy+dQ<0a~&M^0UMo;(&b*wzde17`Uabc9yO(XDu(uwH( zy7=A$)Vk{ReE3=%JXiWYan8RCS%X<><}!U|BST&t`-Jpr3(O7J;Ca}YMH`2IVzq$> z1g+oRGCBx2Sk02!K)N43f|o~4d$fCtP_$1aRIm^PM4kWwZ#A5Ak%IKPwzT) zU!$v^To!miYNr-{f)-xZCVtpXj64@G=(!f2Po52Z{u$2p#w=I|xq2z~nH;(YJ@d`Q zr1f1C*mvaBsj#;zr=@xEGc$JqpD(_G$ek<3CT0{CADUx~X5 z-_kI?+%fuoo{b?7YXJ;<6bx;MGp-K~xtqCHJ;7V%78v#&`l2D~Fh7{H`aTzWJQo^6 zn{6;jzkq&lkos?wy332^Gz4xNaDYRBHBOCE`+&EF_CVIPp^tjJ3!AD z#7E-qr=EoO&ECcHOC8_ogTtl%Q|5Xb?~1aw55~vMo^!(7>jPiDbkp2p4LoA4Y0b^? z+{@n_JAa<+YCKx(0W0*i4es|$9WD<1woW}S3@+)z2fj`&^YNzn{=+HSw3_YHYyygu00P$m``2^=r(Dq(laPf?C*ua+CU>nsbu&y{cd}%aW z^zoWkAswD-A>kxiXYv_J7wiHPod9=I?t=C*Wuhq~TRD7L^i{B6x|Uqf_lBt+vhA zhldrHquD`0I3(eO%Hxu5>L1vcc$pyFt&f@36L^k=la0btDkDQ#8JZ8Lb*#Ry0ta5H zajtXyRg>5Zxp}hc7r6%H9LKXs^o?+^Xt8|EjMQ20LYJwWWBF3VtE%QKka;Uzkoacx z7y8V~R8CSu6{*=5=uegB5~Zh=S5$qL^x;K#dTExFr!NjjIc&;LoM4X8h-cJX?>T4t zY&UwSI2kd*H^g0O2GoH26J|18K09m3{nu=Q2)R7+z{tl~Z!t@16)qA!MdxRE7SF`f zRjcb#Evd6on437^C3@=RE#^C;G0g?|DHgH7{$|(isBF0F!xS2?RoEJPf-6R z&Cm?GEoC&SH_+VWJo=S6=B+Dlw@_hKwJ_s|ChSPd^l&8jL(R>Ga zZ{%0rI>c|glmsKAwr-LW#_yFM{ICDlPnHYbf3%37U>V*Q9o!OHuVu{=Im7St_f`LO zHmC7LfWdO++gZWf7hxBw-!+p9m2jSyi)#PdDexe$rB+g>6kAE<~|L3>X%iLP6qFV!dLldKy^1W3%2*cHE9AW3VGPy?VFFEGd zDeKz$px-_)3mY@0*yg!v2krCjgJ0CMkcV?9FjFJ}9;_NL1#hmbLg^{x;}WN;zEQqd z`P=o3$O2;_<3C@!d&agrF)8SESNIZ$E1La*DLn}4O z3@LeSy$SYBc!xM1(}0`biznk5(*7NeGHV1rH$n{+qHYPn!^LjiHEFz}s{f=V58maB zxQp(p9}QI>*AAVQA1~%4dVJpyo_}zS82hmN`oiF}XO2;Sj!R^nA%a&*uhPOQ2Z^(d&&<?KXESDZ5ZHSTJmY2=FRk#lHZ|624qt40*6e`!2?N|g548&} zxPs4r=|BA;+hmz7=Ft}8cZh>;$_MQdcL?sGnWP!c8r3rLBh22pg@0nuJR@KE;mtvF ze0$JrQv=TSpquQwZn8X!b@q!I>q0Z-7DxC@WcTW`EVE9O*Ya?=Wlj_PzH7)dd+=?7 z_iS_C-^ZhSf7HnwII{WhgC2Z&h1|CxvjG;kG)Vpjb>v1b+00jNnzcLqX65QlGxy1- zX8!!=W(B-ykzQnp=VFE4Z($>RhU>AH=^WNMtGo&S~V_KIt9h@7i-5~g=%|PKS)0rqgrf{cOFrzs4G6jzx zW#7{*z#P7k9QE`RdO>-VgsrB*qw`ns!tyHJx?+7s8P;wDe#nbfFDT9syn7H$>d>UP zxE?b^4bh8k<1YJBSAbd+9n;;>3uLu|qtnBwwv6fQU- z%#tFSCuJx|2dp}#4i;FUcPZmVnY(ezEOnEOh{q(yeUXOHOHQG`o0&OeP?x~ZwB0b7N2j6=dRra76|vdbA_3C{Q7|Pb_2Fmrm3}RoC)$@M<(fc19+3z15O`rT0LEByG-pv4~PfB3l=|_MVFaA^Ct*r z%gW15K1qT4t%4s)__}bvL7oGP0dgNx)JHj<^+pz*QXD^JHg0EBXy3NEZ}=93byQ~A zi>a;jzRIB2x$kgEGtD)oUe|S#E>H6@l&>f3L$fnuk}8l z5f(3^8W68*h-b~u87DqwgbaeS7d2ZD+>-1`X-(8;ONXufCkk#Pubyx!Wwpq2_mBEd z_1+jY=Op`p^6aG9*Eu0f*&Bw_feX*zovqc-PJu6E$d{LPL_JW2?2%F%9R#^xl|{|D zny03XgCmf~#yRZb{l@6&HOp2#MVPFk6!=A&^Ek=5r5r!$`ZNPn+KLE!qaPiU_Mcgv z)iksS-LaRUya2elfhuIL!=~^JC4=h;tUzT1$nsR;bBpM*`g~|+RE@$yt2*YC*99*k# zy)3-`JXoM+i2d?6aweazTfdVy`WzT%Z3*3-_CL-O)jz6V)(+r=w$fZbVWpfoX#RCw zbiJiD%c6UF@xwO0d7de1;)6%bA$+iEUcNsufA}kzO8@e~eEZ`oTL;SLta-?Nqqi*% zSfjSpoHWg@{pDX?o1g#k9xWZ5FSWd~eZ)s(v5NOBa&xfM^ZovShmy;i=)u z9=FY#A5P7S?;o4#RpyH{c`n&AJpbvJ7jCWRI85IwErqg`)K6*Ovh|y0PN4M^m+K*G zSejRH13eR0smm|oktJ^vtZJByiXrledR$*x4k0&pHuol4X3r^7r=n}mH^BJlKa|HO z5BnHi)?fwJn=zj8i2-Hy!KrXwH~^L)xej zYP12~r|YH}x_Q}*TqBe7>Q`ovb7%POWt)lSBNK3l^L30few=g3g-6sAc9TVp?w47x zBj8_}o#2L3aFmq0U7*TyEzi5r~WheipkY}Ln14YUo1v+%!Y z?{@IY%73x7fF_|p-fJ>uw#ix1YmM{FdJ3pTq!U$!|5yOuNvsPDi!&ZiY>E8i2Iuqc z&0aF~$XdJFZ93P;!o0|y-a~)H8Iq;uEk^JR!zC`>={763dhu*bnsq+Qnj4LtKWa{W z%+c+eH1oaa2Kn5rJ6&eAZ@_Hb=`%a{%r|va`6ha z!Voh#$O>Mde_y6|Utw=-!DY3U!R1%T)`2(B>`%?J&vDk5D|n{iZ^aR6j(y>O^Ym6- za$b45XLYx2Sil1rVPr+h-4au>MR<-#uN>ORwFt(m*Ip6|8i_iUBV zMXa=BDHQO&dq4Z3KWC&eXJlpXG$%$~AxW;282O0A>3=iH*S=?B7tfKcfLrFA(LZ(C z-XFbSBKZm8?4=QWS0Q+ZC|;%o){r6`cL~lma*aOM%cqR%!U+?C^9sT_YrdDVX%V=* zFdSc+&Xxq2Cw%iIpRA0<95WTg4M=~O;qU0Xw)tJ~xV%H+1f>hhLv8O5&P;uS_=w;q zU0n0ZTZG`c=kTz)z?Ghxoax}>Chzc?xmU&pE}BWsPcuBPi(Vr?*PLsZ>xt{tL&iy; zffKLM92g)#CdNh2`2@W%(HZ(Y$soq@{U!J;GW5_?JbcG!838!QAX;Av?2)50Fn^6~ z3Y=`~+{=DH3NpFgX2qrTjD7{XJ{{+)Qq`3d&}Hn z9g_~PnG{j*WfVS3{!4LGnH+l#`*RqqBR)-Yp|n?vJ5m--o_Tp}raWkyU>o_(G^bLW zlx8PMgO%1?>C$71E+>!N6l<)yVkXHdO!{8qyw6z-eOjHX)=$HFIKuPEo9JO(p2eFz z%zZitXWNg~sTsV(tWP?Nj&Lmvb0!&u+n)k=yyURa#yB%*|B&vgeP9U9QuD_Ll{er! z)r@tm1Gc}IbGy8Z>buXR(F@RglJFGbpd$E$g3QHDHqa#TC?&b?9OwYzFQt39!NAIb z4B&mfBR>J0jqvm|nzb9xqzC@O%h|~V$1o#b6M5wret0ilgBd4#u%C4qtSaqE+Uhhu zAn8QvZWC9c8Ee|lwcp3N-^GDQSDfTE+~PVHpDO=c1aF8ioqC41w%1q_V%%r&pLkBy zmuoxkSD2*%CQ%=qGPlA9VRVCNafIIKgxPz#ZI0hNAn#nIFBO0Fa+w~-4fFi%9rNOy zUCaAy9X0JdS#|LVmmS>SAP=!iUSOM!kS+R}+i;ff5AxZ-eRar_)|+{oQ))KpGuTDP z<$Ruk*N$=R=%MVo`d&O~I2SZ{b^Z$bX~vv-FmkMA3v0};K_}Jx63qw8HQ=bxD%6K76rn9>3u4 z9-?tKl4O{iXta1rz<+~a0Oc5@6)L+kMqb#>{%L2?(mPXZI- z;LROmYlH)>=Z0%Im=1A`hpo3@nEONCEeAecd1`&=jPlwA+24bBuNEHbFaJ<))#3yQ2i{%#Cw{-TC_qGr1OWdH&FXGN_!(UwMe-$p{ zB(n#ZMZjE+0X$N(Z z7Q8cx4{V6}S$(JAfzO{beP~aE%v6}AQ>MR{96Ebw&mfo$-q7J8r_Opa&i**&LPtTD zQCERC5wQ5rlVJ@7|HYE{GP8c$P38laPO%40kMon>x>%b9f$EC_FaeX zA;Y3>cpnn%u{c{9U2#ZuX3 zXE({x>akKHTaQn6+2gje!ZsWZvl|YQeMJvJJ9M$$YF1u9T$6Zj=`ks|+$`8sT`H{` z;JRCVbmlR0;tU;ka6Xzb8=B_x1Un?*K}$Vg!;=@x@`;P)uy5Qvn(>(X19WoU7)Qe$ zWX|#oet-H3;q_WK?$E(}-E>|#XAUpX(+uX`1`i*yRvmHAZt-)T9D50mz$)**$huvk zZ!ANPsq_P_A)5WJbGrHk3T@8pMolFiLtJ_Ck1$vhZ3J_qsmF|SPPQqRmubDM0d_Q_c|w)7t2_`3pVy3so)P2$p369coWuf-$Inzc{+_AN4jy*!WR zhw5x2zFVCvQ(Vh#_)QNyjvkYociimjGvr?fZ{aT^|Etcx!ZcjQIQL2~_bxcy$=OC6 z_9T4YAbFN?G+8&fS+}@vqBRA+fUqeq+7CQ~LNr8KO zX#HC6)vwZEO?mudzK4~sJN1%-G?PKRcz!Y(PBd4o zpYnc51C-B8elO+a?7UK*TjyFktINcVYFnO@%!+F4$W{*p5yF}mMgv30rxqL zk7!z&F?)ynDC7cvOI|sxeYa-G+S1*inO*975N9FJzFu2D9J6MzUz;G?#yT&5^Elo|`TN7@ zrs5ih$IqhkaQ>z9%Ejy)hZD@m8C#l(G$HFrJVwTw?@r$Jtv4qY<0nrW|j8|vp2 zc6jvkuG!jcnT-u{po^TVcS~^0HS^-FRXUZI&Eh86&9xwXKy)N@=nid1&E4I3^Tw05 zdHSef-ol61CZF!|u*Zfyri+HWw%+CWI_5qdlFy&6le1W`uT|WfGL8CtW6W*QypCip zVLfExn>80|()YU6%(L@OX1ntl}hd)0c8 zGkVZ^EuX&Aq@!;Wtj;`*=XAC|E87kwb!|lGGqYG9{!pFC%97eHGrUyl@)ciL!IzoE zLlvjDSGwm+2%O4!KCHPLXaO(%U3d}T*OZ}hz_rEb239wZe8<9u>avr!L9ch34lm)P z8Ssgn^O8;BIv_^iMmRn)9b}7}CR~dn-fhh5uH^Vc*ata0{8d@pE8W zG8SkJYBTk-HtaH+bD z)H^+f=TCS{oh{1jj<7CIvcD+v6k-n_z*lxhIEv1RA$+4_<9vS8;2^w6lk91eXj8&O z(r|N}%hkUh#b4otZyP|n8et!qW&fUqgHv`w4+pQo;U8z+f@{YkmjS;e|xs4v3De&qoR%G(j;b!)8__vh!QX2%rKB(mh(0=%vn z<~&T(VLONaZwhYGfu=il2hNXud;)!Sj4Z_jzWzCUPwI|}!*3R*M(D;EG%NVz5Bny~ zL$KeQj*xll+PHZ<%&%Pz^L{jJ-f_6ihqE5@^bWY|(si?oFKv@+qr>@Q1$?vKbKC4q zjGOhDQM#p>Z%2kk=bI>)V}|v2a){0jzMBHyM+N?8>FOo3NH^~yuc^k`9ECs0i3{_g zhqFI~;i<%PCCJ?9nmIUk!5n}OkKlcFZ{0L&V6FLAUNwb( zeZ{O?zHYYhU2e1YtaEPP=04x61mG&!=UM-otpCXX9w5$_+JmGU&9Qa`Dif?{%(h<) zkxKxZF2KpL*R}Csrr|W=JW||qIp*hOuf1jxr@m*(bl=r^k0JK8>DwpZ%w9MCYw&h( z!3jQ-5V*VZ${fg2sc9~W}ciI1k8;T#bk0>6OIg%{(enGtvzPv4!(CQkoy z2wp}0W6g6Bw>JexJ&hLYhSLr4T_!lYq&OGF@P%n+h`2xX#wz!7V^sZ=bmzg>$s?{g zygpv*Ec@jwI7uBvL3P7$4jSsYXh!)r{WtjT=vGdFr}LL?;je_(z@O=(@u2hj!QFgUY52SXe$FbMy#{}86@6Z_JNBoU>&Cfi9{)t1*O)o`y3x#)GWSYp zybsJu_86R-L}yQed*|8bqxe3ebYLX8Hq*B+n;IIi=D#g*KUVm>3+Q(l@@(S%>YM@Q zIj48%EZoz-cM`o6KGQFs4LYcs=a~ars9QoaCQD2By5OnQMG~uW*2TXTr*lF56Mi(I za+9C%E1K)2^S$lBgHsrsISrR~&g!tjfle|O!tKI_>O_#QU7A-IT~hNf)U_-8r#ZEA z(r8#8<<}G@Q(nPpfOy}#8wvDju*4ePd3-|J<5up0L$;Vzf-gUdz85V7z@Dt{aE30l z_DMX9bMR;471UKLULoHK+YE=i)ba}`|0eBa0R3G(#XXZ3z+Ln`!mUi=g`4Fb7yfhL zLDCs@ob2oysp(@c*`AaeyyfH}}$K>61r zX>>KTL>KG2Iv8%FE%lS5P+vr<6h}vl;7P=1M}B5Nyz0zZ@E;ri=b0Wn&&r%=Hc23a zcZ<(AjxH>Jw9Z3g_!?%(C8<+MIhqOX5zX(^pH0FoCHdSJnF&@Zr_Jhm%dElmJ_4sa ze70_$y|rU@?<)Jie4;LM1LGZ54d=f~HnxeQTyIplj( z&!U|@3^tk#fNxnFwBO6qrhXCm?UeISXU_7@Ji2hpeEQ=Twx9V|fBcHva)vpza9jBM zmH$>AN4XvOlY$xXjcCwI=-^#6k_Gy&z_X1NbX2;M)RmITC++7{>%ytQl{Pl$J7$(_ zdy6j1tt1(ZlG&g;G0WU%%^1|IQ_VnLgzMCGUZR(*QX|j9`Mlaye>1##o{X9oZpnMf zdNq}!w0({ET9kLtEMxT->Y+{^@wq;Hlk&OQOfxwt&C{DC+iTxG!6d!{g&|;JQ|KsB-pB`tX#c zP`*T23w_3^2DmSRUx@$b4p_LyJGbpdRvR^08}nW6UjYi8l>Y1)$m&;ubc-Xz#m9g)hTR4pn}QGF*9wy}pJ|s*EO^=4_GVoS{yd$_QBk zo}tB3r{eMH^n}cz@ILEm%JA`C(Yo!wa*6+=c3auFnAR|Ah?Wu&5b^% zt`;YFMIPM&ct3d^M&Zz;{m;Sa1km7PV4o!4S&%Gj@Xk53P&j&KLA%I?N4Zame17F? z;Pg}Y>Q11^UV@wJ6`zJS57x`zT~E_z9Od3haE(Q|2ZZ_LiJIei0^s{3KG+DjJbad} zzgOt&L*K8Gk!r!MwQu3G=}HMvS>!UFfH^xH}woF9Ltd-102@wt2chS|A(+h)19 zIa95`wKut6O0T`j>pN%ro7H2UB0C-i`$fRLVRBw6IIjZd)ikIMEE{M2EePN9-O5YZKril|I7cT7^9<>DDHZAHr>i?#LIc3ptXTpXvO#&e zyb4`6dfG619~^QGE&&{n2WzGIdpUeK!h+J>#X*Sc(?gnv^+cc>tFvBvlzvZM3C)if zaDVKVyLEH-$(niV<72b_ zFle?P=a?hcHusRGh5-sXV`oC(35UVF<+XsUw!_0=JsSu zIj|yUUiQ;z_R&FlTdoYBFc>RPnXVgMYe93v_9>&Gzo1dGdVQeDv8v^XXTQ&BtHfXD%&%I?YI>YeqV6 z6a7}bco8~nXZZ%yC~NSI`RBSql@ZYYGhwg%PSHk>xvc7!Int!X$OY>%x#b~e5 zgR)+P18mrtyy7gyr^@|C4^AeoAF;;$I ze*e&X{=>(%ySiA9S*}h!Yx<0QI{)Cm^KlQV>rMDiYl16=hj|%2t_<#BzMcB)gxlS4 zBAQL1j%SPGIcK@ZeF?8=Mvl6Cq}waE^Y-`en@_%a%Y5|ZGair4J0IV(^M8Ny=P%4R zfBJ#>(_eoHzx=@J*_t0*z-yatpk2k#fapb5FP<-e?~+gHhFr`M~DqA;Q` zajy6h$1ArbURj<-`IBepIaQ8InW`9_ChEn|TngR)POWF0Y4v;hsl190FN~g3nt-?s zWt{uCPkZnq4ZuqTz$cn{sa*RM{K7Pvpi|hCy-xSHbX*@=wX#n^UY9r)x5aDlm0+`g zlQVP_Zzfqt(uF`^_8@bVv$)+ z==VjqwjB8HyXPz5@yU|U4}(AC4-CLxgdF54z>;~m)f$+7 zJ!o{`JUyn^_h#Xf>;pbgT%hw|`-5ZVc`R%m@cC`w!`y%~*|~hj zJQ$d;-OG>A5Lb9#^L@-1f$Pk%XBX~(mGI{m$P28&iyrY>Hkn7U15RJW6Hy$$YVvTu z5x9Xc{DQnWKJv6-ut`A}5xm^Q>sCe|EuP0;_xit>23U5RJ!2C-bU|7+I6umtlP|6U zzgVFsuK~_$b4ISSceU{jEOQ2^g0&-@6XL=`oG;{~kymLVfVM@JN}gSH(dFSRG+(z0 zCdz^BD!lgmjZ3E9bJH}yFEzcVUNl?y%X#?b;vKZv3uq5`Je{}UF1cpagXcs~^RN~L z(7e2wu36UU+f1!YST|7hX6HFI>V4kcI0@ zl1EC)TO*$exXF(f)_a{<#drb4!?kbFX#ozaJd#f$z?c!Rhu4fz1c;W%e;Q56+M5&jQ-6`dU_b4IA*q%W%*O{Pzl<$J&K! zX6?1}=I9JPKBumlEx6_#IJ+&p5$nQ>V9>S8S4;z(UnXB&gqO^q`$k6ac;T_rjJyci zU;>?959#$0{I$XB@T%~D^IRh}uxcGVr;gwdSSkT7j&NTF&Ymz)&Lo-FPmu?vml>_D zGSA*td;ePga@CH{M+&Zs z`D3+@Xy2HFgO|3V{?i3?&$abMv%HGFyVr%sdte?t-vR?ZvOM7GZq;%pR^ME#*!g6& z)s*eJ&^%LRK9$Kigva~n({1zf-@Ix5>;L&Bp1mgg6W0s-wfgtem!AO_yKJZV67&di9tmpd5{|RFTvj z_&c!IKecr6NYW527L0Rm;vv_c6(1PG=NyC&p7xWif{*F0R?YLb4$Z^2HtBmoFNDL( zGvBFAKg~Oz9h%?%{be`wmp^%*`4UTb9^w7+^#6c?(>1Qcjk?);uwov)u}6;Mk$K~z zBQ)`(?Pr#5{N(LzbNA^YJu-RA3Fh1MoGzpNa6e_+^gXPr6NbGOO*h|SUI@6ZvKX^o z3gwQizP<|2&F7`=v}^-TwZ=Y=Z%6qF@p|$z%9Ex}Mt=rPpME=KuE&`>sd+N$-BLfX zc)n5Z8M05T*D1~n@soH*@m^=)vO;9qz!NS!axVT(ynv@f8Cp70N(~1yf5;#1SIA}4 zxqVPJJ4aP8AG3=;-ZpQ4v|;Zz;XmO`+l_}7rtVDPKk@z^W-{vcr3Wh?tsJy?R&n)S zuEij0Yyhsu0~h6C&sGLZcu#o`JF5&oxc*z$lDc*`59{`x`1!YAnm0bUYu@~5m;M*# z{=K(u-v9ibdGDh~w&PKL#sFO(!R%#l^(5a*kTZiHFDTubUjEI1&t~%zdA!JAZuwKh zp{kQu`mC-Ic}A7Tm;caqt)MBXmu8lEr#{vNc`~Kd+W8n@I?YBK8mD`hyP`{4)@Da0KDPt#$C#)6#e}%wA!hfAo%9Ox{3wiP~Jk)Wg$6B4aF>q^z9Qp17 zvs&;NRLQx{^JmJL2>c<~IUWFq(PNG;R5(yrQ+lu-!iNo>yIx5%<0Hqto9FBX7Y}C` zL35N&D_k}THW|YYHBOJlG`$(ppXb1+dJMCNj>0eb*;6}RW)LjXcR~iYm1MSa04z#I zqukFNk+E5`j3;i{7cdQQyM0}FQPinWLa)w)1#5+v< z2Ypo7t_}_?;qgk4^HC3VB}={x4p#HkmhfzK(Da&|>q=vn(O_?(oicBO|KH-d+Vs&i z(9P9LoFvZ@!-JQidt393YxEyf;lfHcPn!mPJ1ydoCV$ zbv4D&LSkf5GIZ@F$m=vXH`My|9AH>72n}@nw)%&`AIn@F?{n5q81C%RP6iY03L=Wc(QouES-&4%qp09jU2f? z|9Lpx61-)a>n6?Gp`3XNEL`B+EbNzx(|4p@$NlG~BakzpQBo{lqhyX44MXzq53Y(^aXr~ceh3oHVMqmJ4n9HIJ168H?1 zbt{9dG`B#WXJNowL-=ISHq^OjbzyWM@qf~T#7pSUs0&LE^=m0NDGqLw&VyOj;RqNY z2>&nzXP~}2Wr*y2KJ;152-keig{7={NUrkX+sj6CpAH{&t!DYohj*;RUz(Kl+JxZQzNAUFz!2Fu zSc^HRZ`?PF_`&*p_ywbM9N@hjN9Ub`|Biw^HFM}0naH1i^L_L4KYU=`{`?rtu#V4h z#C~=+2Txeq2s95ZhQ~^n%Ymk#KCfZU+1gvwm6$_|tTi%pp`clk$87N3byw5$ zAy?Qp@0zziI3%C3YwkW=fj0x&SCdx96py7|;guuwv{laCC3IFYV(N3P!G}G>ulM0+ zyXJR)`PlsBfBoFfIQu`>3cfDswi!6(Jo84XoFf`&n_0XA*>-?FM6zwCL>(LIA@Y&`jupUw1#-7^b88-#banAB;*P`xYA?4u zAlI;F$cn28=eUm=aof$T*)d;!{T6434U5}qosyk()7eg$ufBO<=Tv<0qYu$QSHOEE zct>W!*Reg94&il$YDQ6%(NLsV{fYtM&oI#SDk>+Jr z8gMYI3-a2P+1E9nS2>hDyuq5&v3u0ULz%(XO)ii%S@=)gDIR*zLp+CcW;?4k!F9>n zlPX1dZgN}Ti>0jvbnlkE4%#a9THYsIrZ{9}!sO``Z>#fYx&p7v z|LblrAK@OeTKHZbyxAsK13rCN0*}|s(SxqpIp~^ovP)Xq+%e6IV;*gjZf&%R0Poeq z`t5`>%cECo9*FW{ZoJFFn?d?C#X;(Mma&`V~_ul)@StWJ?> z_(I`7FIkK*m_}LF1bm{hb;5-DvjKQ1%~mRrlhDsbAqme%cQ>7&E%4l85&oXfy_JcY z%?6$4cuiNU;JwZ=3x!?wNMe z9A)$7K{#a|xFTkEWX|jiGt+_@XuIC9*#H{~(>Cx$6wt0xVR&mYK{?LLHt&-+k6ULL|n>oi! z4m3?a=PrBpf@47^l>Q;_T^Jv)9|QSAE0NE%=YdXI(XoP_wEdtyM3ePF1eE3 z$qBQ56P@?<^QQJ1y?x-k?k(~<@Pb=+mP?S;Rn=SuMRkQ0LA(BPtaeFo~n*GJIj)O1$C;Zk3~IK%F$}xgp+KM z=6p$O9pDT=dykp@iAQPg zxX6FE%#XhQ(A;~t3s14eeo|%+fVUy@>H=@7m*UdMNqXYXo15@xgPeoJljuAoAHDob zdXG=v*=O%wvih9*G?e|+Oa{GIWi^#43(!|CK0|p2^<2oe<-r@6M0;+uGnPYp@$Rciwy5KyVVvHUm`ggfErubaM@i{qT`u$#X6#QHGrNp@@1Lz?OG(~1e{-F|` zzs-f5?TKlSb#1m2=&K1{FaAk9fYKV*wwh*RyJKh6CGp(E=)YE`SNxNFmW>TOSa3qZ z!HFWAaT@;!yw~%0mdppA?cu@y5#24TW`jLg9dSRfP@j{$4q6^@R zF8FVG9FH7lZ@efCy8bG4bl?u2lm+$f;qgP`6<%_~IlACq#lc3oHUk;B<@8OPACM2Q zSSRm+|7yn1Y$`MkKl$hoT}Sc+svlB1urQ!F*m?RATb%-)fpz?iUHBgS`}FiE8=)Cy zwY8wxd(ySnP9FeWE_WmL@7{f~Y(Dt%0T}R}`RW(%ndcwu+l+B* zElj?pX6JIms=W6yKCUAABls*_q9=^pu{w}!pU2E8i*Muf?aFxggYZzy zxNxGAfREHkuRdVqtTbam8S>&h*c0tP1189WCFH%^ruXpe501^@{UxLM$(p5{CqpES zQ}fGQU_VD39)KCw_nZHEkJA9V&U?|>WcFWb-P(;q)GpZ?^L`S`16VDNX1c-F^n zZNm@ZPvd=x?~}Jqm|pzucfYpXL-P@v8(-S2TMy~-9@l$~{j*NDJ^yAAZK4Igtu7?_ zFf=zzebGU%fjWYeMfY>Q5=TDbeT~nK*GxW3yq^Ofx(nV?_q8X%+TbQH%U(4Mr`Iz| zMvGrh`^ahVv)_6w&^ovWb^e-#rA8ga^t>Io!j%QG z{`{p?7w~62lV)ph%4|AZW(^PED(_{b zMF$kuUNw!rgHNzTo={v`8BcDJb9ohCMvJbA3LIgP@4iUJqzQKEj^d%ikH0fEX12g? znxnOZhP=eRy#~KuhwoADA<@fz41QQ*?$hL>_Q|Ii@Hu>J}1v)*zjw@F#!7B}#8lK4}+TJSNeCmOg{@1}LS;u>yfG1ADL8vz- zixyR656qBDs&Fo=!|&H8uYyOfn;PChVVETPW*!Z;F!{0v#7Fab zLY#ThtTTyWv|;?4ZFsL`dZ=4hnfXipWC<;}J;IzZwBZzvvE;PG>Fzi9uQ=5v_7bKYvq$zFKILAXxvah&{DnC`R? z7&FfP9fcbX(Iph-QGnlWg}kN%-`j-mwR|6aKMP?xfAG65Ii2vtaMeT1+2~R0E_rW>0E?=bMnM?|q-zeI8143OyH-|9D6VN zkq5s}NIr7T%}KNy&6P;w7l~!aW|1vaw{Wxq_Q|7-^1Af!z(J~OSl+r(GC1RCj_Rpb z7DM<-eWub(XV678gG%`d;Xj?BHE(Ga4s8m4ZUXIjfGS^X*UFU-JO zs1sg3eqm8zm;K{1yhP62Co_6g>Xd0p%pWhHv}qM=#9X=Nm2C-=>pA3U^uXX?ED=<8=@gjJl9XtU!o9juF*-q8qjPV*P zE2(os6t38h*Ui(o&HqCeZR3UOpabI(Y@pK>$xfkjop#D$lv@$&B~#b2GMCccf?Sj0l3vaO;rmj?lh2{Kn6^#uz%X%=$t>uH_=2VN^ejvjJhf`uUeR1oj&66gwf=w(Ce>oK2R1W z$aPsnvsV9*<`d~0Ca;LzLx9;Vb7)M;YA9PF?oJ${JT4Z)IbNaH>WamG>KNA=qwJQv zhw{0KPoCktI>cFj%A$x@1nnD1}vzDW|B_hKlZbSdeH$hyYU|d@F7K% z;fj+_;jE$=OKGw!!ezo_(rty;g#S8Vq$X)+E}dF$2yp-Tg{tQFjoh@ zP#mE!p?-gjz9u~uz=e8FaedNuH6MPxQ!`6VupIwSe4qHjRw-+i>SeRmoHrW_b)JJi zGY`*LE|_KT+{yyKzl_hgqq({*=Bl;LPIti^EqBary=L~(U`IH;UAk5tBvR%{IAI<+ z{N}KK${gLM=lD8U?G_naI{G#^->!mnm%;Gs9bOYZHNS0d_(xQ{fC;7-Q{15AEWw--FY8=%VkIeSQTkwTl+L=4YNf+~x|OLxs;hLLMV@>U*Y+ zZ*cX_EwfKHW8=oPm-Exm{O+Q^J_d(0dv2N%vmrX@dQCV#dFzv>UZvmUGy% z`_?SkJpCNYWO|n_USSp-dMaKab@AreV+&l5WqKK^a5hD*^BP&Y7WZTw4@U*gZl3c& z5j`_=2R@E#Esbw5i^eAGDD32bQ*)CI@LWG(!WUn){ct6+46*BY?t0Pc5FUh~!ctO1b-c!;${=fDJ-T!wRHf*ehX&YBwjG$9GRD!Khwk7#88~leoCV=BWAHd>vK)CZZJc`` z#u>;5XXJNs{(%PyvYx2(QG2Y`IQb~-`3TJ7;CWs6;4}l+PewLyg;|i`Y|RDMJYYX( zu^`x0ohB}{U~dl^Io^Xb-UH<&l-Eva{s`wQ<)Xz87r_1nG%D@4Sv(7^sVTEG#eRhM zbkC3PGQ{ksfY)r#In8P>9z8JJ?)3q)d-8@kI6?RF$!lis^mTKW-@7|BVeXEMn|olt zyMv=}rBlrQn>6ca!tw()!Oi+vy>QiJUq_pUdsObH4WC@Sjo**=k)jJRGI-fUdoCE) z&>1vu);07qX(~xHH1(-!M#WqlEr&C`dP~LgRk<#dX;C&P!8swOyfEByh93HShI57c zCLAc*JZnu5{1ZX{40B$NfCr?jX@79zo!9)@5Z6F}b8wzaUKFoKlx%#E`$^||dAI#& zar%4WfW-4@Uy;vS_(T}ca%136WfwF>Vt@YjG|m zzdXzLsV)>J`imdTsBTncg$Db%SLoEyzu|x2i$Is2rzWu~}@%0Py{#W>qK0nYYW&SS+4XHoQ}EPGj68X{|i zx^}d$#_1kYKYK8S4vM!h3(upO<(f6Ou!LWSPKq4gtvsD+I4@yBWj^%h^7NeP*U2>5 zg9Xkx;0CIs@=T>`9y(UCcJqockp6NQ5V9>*%<6*s5r9MS5Ry zl}Ve;e)p5N%+}Gm**;zbqtGwdfd6ZSz(8O?JO&}O%MiW+FBorb9xp>3t&Wj9^@<* z#>*JgeFVoY-cB-eg7xdD(ECIj%7>=^=VYqO6njrKI_; zq!TNbK1`?Ru!{~__6cRwl~Z!1IO}K01%Z3xTm#}!)xTV&FI#=v>hyW{lY2H>tG*d! zTIB(B(|Z|3qZZa%f@|JC+BApv*148~7&^(> zPP2A6lVqg8tMa*ugJ0RMo6mpzrg@)y(I!}XX}fA3ys>Tm{g>~X|M;(;nm_&Hr#8F$ z*Z=F+WH`R04|>;Pd3ET>^A|#&)kB)BhjmH%kUWCb#h{(zB8^{pZ*_ml!zldf2{S7O zyzL2JWDUXZ4%as7P*3++y7f-k{u}i)PWb6Vb~3w){FTnsVfF?;T#SP(n{qRAA^O0k zPvC2Q1^(}(%^D6(;H{t+Sr|~>3i&L=v8#(uYmI(>_iOc=2={sLlZ*dS*U9uWUO@1l z9us)`UEoM3oXIR2njZSKAKfEJwzgU(zYCY8U+bYx<^;KimpG7fAm>hb@Wjtqyhf&D zp$Z3B0=Mx~o;+!_t6exZxVARlzYe3aBSUkAdZdg3Hzp-Qvx0pw`x@b1R ze%oZuwig;^uYrHIS~d5hQFAX8HjhJ5^CBEK?}QTO;e^vXpY@@qjlh@ThriKpdy#k0 zq&M*Bb~$scEbyM-``6$*7vKOl@KP+Y4ybl(HXQ3|5-y%$=o8_FnGf(lGi-wgTJ{$t`pq1 zfR{^{@BsX`s(*vC#VX%#3p^JagQLR}r;d(1{=P;WPM!UB8cxmk>c5y0oott9@3w8SHnZ;J&>|LbGwhl+pf?v}fZ|ARp35xWi<+vwe z^jm25goAv#>xMd6PT2nGd>?!s`Cw_p&VkqQ6_HJjz%vKnr@??Y@=i^Ftj@b3mHVd1eH2Igj=>oP;QPYNoz*!^ z`>Tr?a=PbT_}wPKf5MXv?wbIbcL09YulG3IZ*mSi_H?mX+z0ma(!Z$LZ2|Hj8NS~t zTt)-DH;?w4<@1WsZJY?OM~3hkk$r38gKgn~Sqiw#v5QW6XNc^M%WO?dn^kb&j@L^* zca}2%GncOon1|Q#f}SKhbQa$4TEBUC8DHp?0Xv7cd;S_TIhf5sw~Xd8?@dm_H`B?3 zKcIvspn)H<#u*@g5^Tpzmh9^%OyWFq+VDCy;JOn3{2cT%21l!`_$=NzcLH1vN2d-E z`C&A(NS>%7TwIB3p+MfM%o(G=oV*x*M`dPwaB%^+zcgOH68NqH7Zic(a`U}=JaDq; za_ZbuSK|oZg}SyJV6re=Yy>Va46X}DVqhD*GJJ;0!MPLg5a4IcrO%Y$r10LVM?gH9 zbX0GY4mo%-<$9Hwus_v*incPsY?NU)K55P(1L!ZkoLffWncZ+%o`i?KK=QEggkzj< zX6QuIyk5<0cEKg8mrC>0)MGrtbM(7jH^bi7(N4)D74Zjf{c7%7MLiSfjGDPS0mgIS zjdhY2a-qp67p~cTBg_JtKnIwfWqro49OU)O2QSaKI;z#{A@1V&`y1x*n}=ra?moIw z1q=#);T|1F|54vzD1y$?V(p}pP@NfRxY7u`gSuYiPb)0I`R>Qe`a#8f`okB@eR$J+ z{hRm9AOGzRL;;G|ds4)*{fnFl`)pm!x>pGq}x>AJe z;im+Lgu(t9I1Y8uRlr#veEiJ3c>CVVS#JvoyN0~Xp3?j2 z{Wm)H;K1eWWY5c!ZHQJm6Z74Rx7AEr<&tzxnF=z$Du9L@0b_zI#C5AfXvlTZ^v%9X zPtZx*s~wHUY!*n^#}NZRz(1)+TC?Kh8;#H-qO+MeICV;@6Mw*gR>4_J=PluBouT}A z-bVO0FHbOsg}tM*F0IxFAUNl86z(hA*VkYVD^ER zetY!X5zf$>4I?eqg@!4;S^mES=Ys9KYjALDX6ul>_^@T??yhbY@r35A?^XA2tV~uo zgI~HfXO`I0H+R|F_ZH3eLBo22#R-(=6Z}4V`B91UkdJd192IA;@8;vmYv@LM_QEBq zgVE-;7s$oJ8{%*)( zKykOyg2f4V*o!=T7P=3Wo6a}o2?guL>DXsKRGxT_{Fpa}mVpmcU3p2h}K;ZD6bi{*Uj6=Tfhnax3EH=4Qx` zjKlv;z^}UCKhO}TC%|*8Gg17+!f2X(o&*bI(_G8R0J8;#%-Arx?-2YVTA&+my%S%P z3$8DKzdg+Lm_`rCCdt4rHpoMjO%*&>!;@RVOZnYgT46e2Hp|;JD;ARp2MV_}mCI

@ypz2CC*ypKj?2-p(jVWt+Zc@2f=;o%MG)+iQjjPes=!OY8&55w`6wt z{o|#!*%g;p=J~*fYi;_YT21DqwV9W;Xtr7{vr{8eR&SaWFy3x=*&MEKnB7(S$2Zo@ z{hcjyZ+Y1~SX?wa`203q?5pDw<{tdsqZuC>(FW19sy&?dj}tL+)KA|KiOTU z%RIr8_b!~y3m4uz_U3i^To&+8FTw|G!KrTZ9WL;lCws^@oH=C{@Mx`*_vqrmuUu9) z-x;$D=2&IlS|i(3XTQmF_KM9h%M0J8I$@IZ9p|kFi*5^W&E)M@%*?gdj5?Vc=r!}~ zkL5)&HgsR4I9nAs*9p%R*guMBB^CJj9BY07?xRXadjq|!gi`SmEcVU)GY!8#R3qf3Ji668XX^ta64zD4GN>@)s3%`*-SbMH-|uY!fegWp1v zzCwQG@~Gz4sDGU9boA?SdS(1v_oJ~!k{xJ#`CC zSlVa}&un=PuLv2I(iD6OokJD&fJMBmdbAzW_FB0&F=rmT1LnyD*~I=~voSVlwr|q? zbD`JVyV!4@UL7%?+?q8HxnA{W55x(cBd>wqZ}IebI{hx0V|u!G@tbZB(#3b;j47Xo zzr77sxq8;5>AWt{jh^T^g|-f7Jag6h`VtW|bn@lx9v%3y&w z*F%A>0(pVK_v%<}D&wIk*wcNgIcs8$%;ko|vvV>@eip2w=hG}VaVP3=4T0;!_?#x(7nm=^d&bM2McYtE z?S#DB=rnG$6%S_<7w0wynXggiBoDDJ)S34^-@^9{ACzE^Q74yr{Bn4pwhr-0lezfL zKd#xXwx=zA-umw%v8e5e`0$gbwwJ5{hLLY6giaY^pH~l<{Nyz{Ggj%ed+;V*EAKAR zSNjw%RFhti8a~4^cn3YMAkQ`4>uAJO*gjhw zC11)6%2hO8@TB~Z(wdds(Ogo^!VBhJW)_2>C2zg4!MeZCIsa(ceDagG&F4RR z$E@FD4>)St9K+@z^VGGUY=H0hJd5b+-UesCChJ|DtP2_64!qeCopQp{m4&#?5l7gI zwWnv%LFI)jba=gRW5UY`bU^m?->FY2jE)>b3!j6t8%2w~G5tL= z>^sAmhHED;j&sUvJz|f&SF=71VX7H4pE-QeAvl8^-?uo{V3z9~oTDD5?>f+ZEW|(2U_h{6|iHU)qA^ zs%XZr^bg&$I_Ii;YSvGmQve?ydcz2s)i8eLJFM55JD$O7p-#OydL3rjPiDr+TJs2z zFVWl#%_y5uZ!Eg4@Lv&rAw|}q%(~QV&zm}a4RLdM_NZ7$nOV-x=*1p-(}V%l!`E)W z!S1Y^z3ml?#aa#c+X~z~=kA3%U5Mbq?WHE%+q}hc!h-VXDU(|jch^Lx<kJK54z%8({wJuGxT(-((K1{@%`Fof#8wcP;*GPCh|+L-HD{ z-8Pu9V>UW%c(|9?Z@c*t7jD#B=3r&T?5!-Doh7cLl_hi3UN8?9z>DduIi7Qw-Tpqa zg(vRrw8QMrI?Ni`hJEHq+(&~u2BYnJon{N}VT-KqI@hqU-&z%JnViR_hyRBke-Ax( zA1-g#?=hQv{_C@Jm(rKl8fA7ayi}E$txIUYtN7{nCkM?_xP<3%uX*laR^rIC+3Ke^ zZwQYe9M8Ttz;mHBkJ1^~i@)#6WwVCnyT#0sb$IeNInvU#)27;U*%aV^%dFA!CDtUo zSuMO7;+Nw1;MKVz|5OUCMtr(v#A7(L9IlO=t4gbokQs#Eu0w*Q97 zoTE4HCUa-6_gZeO0k`VK2dGYN%|Pe_$6aB+y)bgk+{B;QihR?zG6aIaZ#L;~-UaBDU5APf! zZ^l_G$M;>HVLtIVXF_mY9&V?M$8$00roTI64$x`#$uixIvZs^dZSeo+$#7I=M@@?i z(L#dGE6@I2(8;-m)ccnq$Ds~B&F{$b{gl8idA_?e z+?9CTAbh9RAlscFe;?lUSvnNP!+Z~L1oGBsor;nbh;v3w(X_3UTX~(Q=HQdz>on&? zYn?MlUn4x5D*}%kVb&d(BUK=uMGjE2rRuC5;sP|!evY-wN#4VexB^eZ*|+kNuhFa| zaY*t5%C{~pcoKc4&vDw$x|qd-F8nuz9yNg%aFDZ!x}xQ`lg`ovX9^$4zrB8U(Q->! zaQz&<&1rb}0Qkn2<9q-QFw6C;Zv7m3V;E22EImlmXyUVUPN^SMU8PC7q*@DT#mhDF z!}EBx(3I%;PzG8Zep9}4)_1o+zm0l~8;f+1))Hv1(K74gDHk?N?7d(uUTYo=TAf{avS@93 zcvo1rSMb@l7c+RUyl^P+kLZocs%Re;$62h98wCStK5lmv-fn}=y%jt$O9hJoh4I38 zJVIcG1o@f>{z~}?N^py%D%}ZaCzW};Jj?vMHSRt9pn6XQ_9k_W2>&VDGs-ojnGKp7 zr~O;_tAL+vd4==UPT9_m{^_@$ncw~6YxB4N`#0uSfBp(>n>^-&I#~`n;^0P;JeKzs zO!u&Cl1tKIUuHd&LurE9G^a$~4`F7_1}uU5!WKu!-;XD-#hHW8SDaFFIc4_lFPb+# zIAqSoDxW9(1KgIn^SWESr$yFedRMG&2q)mc@8gn(3f$aWVy@@Lg4HxV5qzhtkyH4- zg#UzNbdAnP1LRCB-=iZ2wt^=TkEeB1*l(B_MDnrD@&B9&^0jEZ>OIjpM4f_Z&h^Sl zyQRnC;}Hhb-|w4(`<_uB-lX;D4Y}xmCM{WKCd?>HRz31DuujZYPnZ^9+ zQ}f2#56!zD-KY1O8GRdcGHw*m!^3?4`2Wf2Z0~n0uKx4~PtlBvaN;HIKd=ORkU9d@ zDJ{)>F3kH6a&Liy#f3^Ack-V7oIBibb;^rp=6&`x%TFLad6sou-r5!!r;Ysu^ZdO- z`(3_x|G;`Kln2hkN81^7a3acpNV~Tf5R7K^UUZ@;+>82#UUGNxdZMj^|FllZCmiO? z7Rz z1{|S#S)RgT3O<`X#yi9L6mNV04kDkx?|{}DhJ#XPN&;_5O1@y$#|)fa70t4XR=T^n zW)|ycjdbtjGt6KB8|UE%g$31Xr=H^~{<`~jcg*1)dFO4e0Ulj&+#=ui5`GEG|AE=| zH#+8Ey<;`n74TZUN``~`SH9kb1->&noK{zx{JZ=_3+`~{mA)%ISX%D}{*#RrwB02< zeDHib!hd9P?eD`Y%0sw?pYNbZMq|Ea4w#j;UM!eyr^(uc?u)Lwx3+AKmX^#`4XwFc zMysuv&1%gE3+})R9(6kA7@qL3Ts8NKWVjY*+YADZym+_W|ymJX}n8R_r_vp1-tn+O! z(-NFf=lWUZq@FMjy%Xj!=jL5})XS52|G)|RefajTF&p6mUaSFf!uV z*#|Rh!QXC?dEA7n>%i?b;JYelR+^pV<2rQ0qp6F(2&W&zHzzI1&XtYmM=NVqxA*sP&?VZfK_ z^nW=^h;@*EU-)mFHE|3K5@r2QRQJxpIJ_KQy`uDY z=3As#%jAcTb4?`q-qhujqq{Z5Y}+tcF@PV@2ZtU(11>Q8wmHtM7W{XO9=>xpW#v^4 z13q&A5C6~$=AVJD8yE%e^ZQdS@L?3qRDif8GqC37*0ULnjkhZjY zF5=B({fog*XeLSq?p40fIK45k)33wNo-|2x`ZVVZKVG?jt`Yp1nr#xKV@BOUrQX}N z7tss1Yae({XTY7Bc_AH1-F(V%%sN>UpH`kM}8#E z{~kW$EIz~_zML7(CvN&W9m8nptO;?hA@zVQudycXWX$11cs}w2>cLgt^tAUi`nK?* z!=K4lR|StLS5czlSl+orD$Z+)z*Q_+Pt>n||Lc_9L zhA*!+n2%P1uVFpkOu^5X z+xMp2tvERKBTIi17iat3;Bl2Nb#wL*{?q)vSPb9lJp4JHy@$^>%`g7&x%v9r56w69 z@&3R6-#_s5|JeNU_n(m$IDj8)TfRL|vAD**1;%TTJ6_+Prvvzy4&bNE5vka`MGh~cI`hhHGS6M% zZlA>%(&rbKEAWlr<8`_!)-tBEss1AVO|bFHEHq-=@$F9)Z<9^79#YiUOH z5Ex{ThYPN1D$JVB*=ZCXhP;E~poPiS_Zt=;z4yrz^Wr^v&$-T&J<+U=g8WL{1LA6J zPg4_pojuBnuI~X;YF4lHByt|8FX8{3m8GPXmUC?y2;BOW75ta_I|A|NauHR`I|DZ6lCk6kFzNP$^ z124%GpO?Br)g6#-q7i|W^?A!*s`FA89eQc21g1}u`yrbSH>g>1nnfcXIfz#*iLNxCP0*JDMi0`DI;TAePBu!$ zihEc+DrtNi8T4PB>-5lE4fPurb4jq)qS@davd%rQh?i{`IY|EElc&3EYETf?8X0$wAlu}MyM4-ddTI__4jYW8zQbCk%LdxeU5k}jLa zC9)o5Kg4A&^4zPXg4rpe6Ej11yHGScIo=06;YL1hfBmr0GSBB*{N18?5zCuLuBds~ zGh`n0_SpGm+wgX~8NWF~Pd$VW+vjY1mviZZO2QnW`|P8)?|{KJnPIfUIdYx3c2=>j~@4Rt@c#{c4rH zVD-WUb9kAI2fS7X-&g~#pnc=A*}zY)zB}R4^-6&3a=@(Nty#r;(dC@cC^C}--D-|p zqP(+i_&d$l)vQvTKV0<8Y8I7`y&%Y0P-i0DkGgIHDY!m3L;2TZT&J-hc@EZ(5W1^B zB7Xs#5IR5tKW-8%5Q29OTzJjI&YrX#)9Rjc(TV5vz>$IZT%0L=U^yq(yVmG2UXOI# zLH6|l_&?1p8$<&hga4lEV=i;=dE=sw#fzpYf0eo|C*X&s$RNxA*Xu+F(N8d|y*K## z3G{DeN($0#uUt3F@MT-Pj^>$jCj2koGqb$DNxXlfU|h}Sn8fQhOb&Mt3^<18aT4F2 z6Q5p$^HY>wnQYHhQ@nQBRO!iExOS6%*<}>;qh^x8H0eRi(hF^_si%!_M-=B*xl1J~#Uzr>v7i?{Imk>@>q(cHZ~ zU=FWeGY|WE%`>>-C*x!006e;a{;YX_OXP*xr_Yf2Arn4E-W$E%&WVBd^O7kGqrpmh z&`b!;sto(v{+aQ2wx+&qg< zN1UD)ty;K2y}-6V7d}JXAgLl+Dte-avy%EO+;}g1%>Q=badz>!3F znZ?_zj*`6xE%T@U^#k+U|NexG?FL@^I=yM=uIPx)0-eA3rj%0-a6XK&rfarIp1B`U zt{p#FeD$NI$kAnD!gb6b!>iTCx34}k&6iSdnEDTcDe_YA+3H)3ftlo+lV)12IIc7p4^4d@452*6^6twS63STXGuQ04`T2}#(1Re)+|j)ii~VW~ za0YnL^!F-Yw_SAC!+Q;jtCDEj@(Jcyv*hbclhNGRDVSCE`~~LoHsAyF`K~kXYx{8C za-G6Pnpd18GZLknQ+~|v^j~T2c|PY1TC~mq+eb?_*Yb-$pymDkL-Xz5zA*pwzrSTZ z+~?*uzyH*H@zo34L#_O_d{u!08MsBfNA$3?n&8;F+qB^l#resrr|T`1#`DZNE$>r| z`&4-M;CR(+?x81dm&xAZO$Q4KFR0fqOSZ($cw-$Eev}ul*1;mhL*u8X~?;x!V?8cCJMqHJ@V^o?2ND-7|6K*NFpE_FlQ)Tmzkq zejw?@>T_1#y6q4om!Bx1{dK_N^bjdG6@_0@Hhh4t=KgUqHFULTmYc9#99$u;P~4%i zUiv&UMXo!tUpmVvJ1oCwC`^vNKyCv5xSoaok8wsyg1yPIW<#9q_;3AwnR~f{hFe2> zQXifA>B^jMm8n%0Vq+D)ZiQSf7_g0xMtvqtu+CBw90gamgqYd-M<2`e< z(=j`1+|&G?ynW*F#MueIiO+lf7%m(fs0@d&opKh3iwkC_0hVhu$a<9U=)v*TtM=zA z_;3vzC=FO#qW<0nncZFZN$I@OYVVfd>heW%9Lbm?ADAtcF)spXi{YNGbZn1cldix` zyfBZ_Ij~yFY?J9Y@ZrfzCd^$h;Jr-NJWb`y8{xEhpTGNoGj3iCy3F%Y_GIwG@idq% z0`~`(a6snpxEV8h3mJ0{zwje4_#0?=&%t2Fa6dcbp11MxZ}Hg0zu(3Kwg{F#;5_mi zT>cOb<}uyC_vskii}Pnz$}2%XIM&^~)T>az;yI=3oue|Fe z`-xWBynV%V$dGP#zuC(p_=1h3{+&jtM|A zdODO{P+mzh0^?=$7xr#D1ByLA1Xr%PT0V4M&Ha&oU4PF@x2c22G-tQj#4Ve5i|4o| z!D3OaSLHb(@M&eVOZ7I*(J|>DKOwDD*iZN1Fn@NGbF2JgBjC_U@S!{|;@syre~w>z z)y!N+XBa{g8-=&Wcc)IVIk>h7x?{)aL!W}nR4-dE&-MQk^`2jGp6QyeyW6&GZb{ju&!Uj(t zwJxwnGZ?U;h7OiWdTp=Yd8+|$puG59=)&qFiCsQVj)cw}JeE25w28VJ zr>Cb_4-ZK0E&+cYhpQ3x3zF52k>^Qu@n?;{^n;JoH!&Bb+w$!ld_NrS`72Jp;|l!T z4u5yh+-`elw40pIR>|J3U92Fdan*L<__p{NtN8O)>1$R;<6;H9=$lun?e4V(+k;!20vkt;9<{`4ui3;K zM@_xXqwt@av*K^&+~0KGe8Pd?b!qs1GS=FkgK#S1gLM|@2Zwvq{eTCh89u9thxD8P z*Gv+=P@aGYm~s%F&ySw0P8W3m^@Hh!{aWZ*QTDAH-q(fhtgLkW;uX$Xt?-u2wmGje zIot|*-rsau^*SrFD-KVyFNWdXm96wJE2djMZ}7PAkh(WZ^Y~1rW6rv(vvFCc?JFrHZ9KR0W%aOn-dJXn{V zz87yFK6AX8${5^xdyNi>JNDgQ-(|mAVDBHJlaB0c4(^U@z)%{W%?R8aYp{4DX`T_z zmBVDh{N#!~V95b8Ci1if$WnCRbCkv#X4cv$T?f*>l&u{Q)+TE$Z=CblM9EN(z}H5- zPS1;a2$hq4@^Tma_rTtM_ol|Y^ppK`A1kMj=WF^Z6Z8acxm z5k8!Iy$60b3TG9<%bVc*8^zz4U@l{vxh$i2yk=J6^;YnA&!l*s0Wd9C6&y1HKO~$t zGdENA^xDRAQFu-t zxRLn`;LSUaX6(s}Jzm?kqpd~Z2}kn%@Ji^X?7f=NqmGY(Vb-D{^8d+S=Dj_l2l}g@ z-gdIiU;gl0d-D9I-8o#b{eu}hxKpxj{B~Y2P;>Wju8U)QCghyqgd%V{(GlgG=|TmU zsiV`w8N$c8cbLp>3XUt69fdC(q2uw9lckY{IlVCE@RRaast-gsL7b0pgx*_mcEK) z2O0bFhXecYt4*>ZyY}M49ed})o3_52W$%LLXB}3TadqQyWud8P=56d^h7DPmzBrnfGD4GJ ze>lHj0{jR^Cr^T~oX%H~Yz-ZYE~g(!bCQ*jlHWpquNg++QT+4h%O)ucN1-~glGF}hc7@@L!m3EQHNWdY1545$q79Gu?rSkn2v zt^u7GjyGucTES$UV6!OtH2IOOWYqS+#W%a$w%P5n)%Gr1ztL(- zWGyy&!EOARymp7}9(&yEwr4k7_O!O!?sd4Fe&tQHyUm^++w{Q4!1L|02G4?rxA+Wq z;7{+-%k~g#eH-p|hfMD(8o6-bDxG8{zD}S`&fuL~rptMaGyWRAe%p93Z{i8u#TT|( zO;=kD`#u`w%;^(Ws;{yc&i^ZuVcVxWbO9fybjKLJ%MtjdSO>Z+xN;O+mF2uPP2YO~ zkILu_+RQ9-ie~-rvx8QoKW*F(@5KEu4BzEzBIk=<)r?QrjbC3pjx?x2d|h$Q{4qG| zLHIwXSA~7Nn~a;AvxPW+X$M+++BioxuphM2qwY!3fevQWztc=?`TRU+yxsJu2=8^^ zv%dk?)`p+84P58++>#}@!b91M>Q?5;v$k}?uc$jR#4Lm$-D2%$-lQ}6l(pi+Yedsk z_Nbq~7tbL~*~Wd_EM1s0u;#J4$z!UMEaJkmh(A>w6=68MJ~FKFlla}rDr`nwhji@t z@mThN>AElBGen1ME@RDv2W-NNSl`GD9Pm#U`bT$DnKNfN4qqlcJBy~8IS-D!aGAMj zm9|(-UpD8b9A~Gb{1arN67YTnpNG#HuAqkAu*8+{5g#beWA@Z}E1W$K zhYXK+g)Xc&&cacGpYW-U)X{gX*>>%4lk_8I@gPoLF2fgi(N^h$-XIrKyi{(Z=gwN> z*b&nl=h%rO%;Tfqg+8Y+zRR{N$F2F)Z>+WYwE5xL2GBSA@D!*6XNY}onEb+EH#0QB z-d*&xbThBdg@4HJhZDs+<77U->_N^o{ou+#6Msj?fro3r+r*icGkFtUqZ@qwbzBFH z)u*hF{LMsNo$WNV+Fn_W?ZIb;M>rS5!>Ok=gs&n64>ZbJ6iEeHx9M=lo1#2yfc;s1 z26dBmbB_1IUyQKlXJ^3-Q(nj8-PjAxZ^HwCXRj0d*TvaKe2FsL%F>A!343~FP!aN~DSU1Cq43p+CsQ}bPz)Z9v%k9UhIE$4%isf-DmUe) zr$T&YFC2jSQG8$rVL#<>^cal5Q?p;C>7~oh(rXV-Bn+zF+YESUYQ@d$uQ_K1sdUKF zN}8MpeRBA}hBEjq(IVsH{BF8_#kB|n3J-?qtL;yeJM&d~f){z8$m#QXJ{+m1Q}Xp(4g@L`YSDrw%68q)>$`u=^qHgwdr+v@ShB#yDB@mO6K%KdV|0C z?!JBZr*~{=Cr6eP4GXP1mf`wfZiu{ongJ&aQQLCD!DvlgtTmjm)c>e%6JY}Bd(K=A zFrdyr@+YWAQ~k@D(b2)ZrY?joFWD#Il{9!VPJcp#HH}=8I{Vt_2a%7>O*X_IV?DsH zr|V66@u+&1^eZ1>Kj?Hu5r-!1TYF7P?Sdvn&%Jr#sIR;Nr0eI=T+D^HxVHYMKw zwcR53&4P39eEhpZ`^&$6Lau$mE>#_|^R=(q#o9O7tN1MWT-9B^w4Q|voU-*>qqeq_ zA^$#Q51y<#ICE;2j^9~jzC2ELrn3GFxr!ss<6`v@tDqyfqM5Fgmfw)`V$Kl!w%$v1 zNVe0Pqq&e;3p5A34KJzk8R1cSh1eU_->iOa&24G(h*Lf8aBc%=x6<>Y%*qoNEgn!h zupWT~-1_)084&f_q;kV>e%!-&Z>3GE&rluqI$J5nrQGt1_wPF0kHfJ+_!4H$)2G{p zZ*O;>d2)}o@LJ$~khV_8$-(_CdUE#c@w06_wNYnH(R!53FpGRK=4hnqyb}f-8v-AM z2KY)gfo_yJymsnYp2mwe&3aV8J6z=XmFNbVr(0)}v+pY0{XD*eIrzI0{M{7iPvO5j z7;%cO9%025vQ;akw5`GWZOr9temZ4y{P)^g$sRo5e068bZr)sV^kN6Y!Rg&uoV9g$ zzMYBx{XoCHoz2+o$^k(hA^{iGgKcS}HcF9ri_jlP6bKREVsMq1& zHk<41c3X=*aG~eX(QyFJw@apGh5KhC+HZ?!Mg=~{X|O~I-FM+CJdb{+_$jpAh1cG& zS^W4*ue@rzCr|Ty%59N6!7S_RK4-KI_M8;HBk4pz_CocZ4bTT01_K4zD@O3J=kkO2 zC-7WPGmnUK{S;p0Mf?T@G9j9QQN)iHq+85`4%^<%j5Tf_OZ7%<0TdsF1@dlu8te%8h@aMg8NK@W|zUCmAl;)NgPxdzVD@mxmd3hz$`+|>2U z^fXspbTXd?3Lg@O1MPFfY6^uXB`hMe_Jj%N#pq zd9a^+3Ca&euP}pz#~6Od3Et09@LqsiwuAr5>BgofySx5^_4B#8I_N0DU*yM!r%rHn zJN9xdb+yqqhIa4f{p-6%?=@I1iSIGOYYA1AS%fp}F!($OcN-+%p*e7^;K1t*e710n z)yx@cx{5!rf?0ID2UB3&936x~G!J$A566@rKu1GMO|u?lrjp=5@_?MbZLF3R` zs(nO#$j{*wKKb?@kGE`%eJzdu$VJYuo$h{h_(#zIlHiW?q|bKmr|jmVlx^J`N3&YD z-G{er^)?#VTG;V)W#F;YTcX*n>aHE)y3x!I;oHD4zn|QSu!Zul>bMl99l-nJ=krwW zWHKxL=e(0S(C_XiUl@qNP2ed~esy{-4vysg;tZ|+m61Goq2)ol|7;EZZ_ggUNeTbu z@ZkAJ;I=aX_BXl!OXxr|bU)D7Asiq~7t5kEle3hTrCDmqEcf#~G>ctcH*rNVu!KC5 z;S73LhVO${N@ma<;5!P_WWVvpsMpzzpVEV7D*d-On|8Vzlm}4S?o@1w2b{G7Qb==e~UX$XERKwdaVhUD-unTSW4F+PQEx<ARCScc8+Nhkq+Pyt+%DC;YUK^Dk##`_W?gM%U2Ez&1Fj>>1qPSCDsP>W z)yM0u{}u-*%qE^q+PAc`Ru5VN{)_H@&VfVZGS~;j&8Y`QUWx&-NBW)tx}U@kirZUQ zn}L(({v0ExtaBRYrZ9Lg%f6kXi%`Ar-~Ijr`!E0gclPqb=Qc*%|z)XyCVb zZ+VY3<7A5-b9rLldcNb##nzwYrom=p^&Tye0!^4zUAbI-7givfZ$BJnRnByn|SkX z1(}_RhI_NqM+ctI)`udt76r$~@ac`lZ86Pj8HwVp!&~d8Yq_-p&d=-o+nuUb+d&6A z1phsRyL(XAX}5ZNY?b`W0$nTOP?pb?*Brk`uC;yU(yik0+wzn1W!BdgbH@(Z+wb&r*j;ZA z9WI@=IY_1{(r+tt)T*CFS=Pk$D`7MBxlUyJ&`sd~&{tA)(od4d zOVd@6tY#miF^>Ouk81)CoGBz;m7df6h$4W97%{xM!~R(yxNnc7e6BhClBl$J-7k*h(*v zyjZO~uO{$Y1^jk7oRDT`saHjFfCnniS?~n;fRh*LVS!`11Qxk;(&{eKO+Y_QTlF~` z?BqO#)~*@2fq{0*kVP87Hx;4NNSfm?e&`YQ%_RTMh3~BA_$wAW|E5irYhLhq8zX0s zq~p549E}j2EI!^NFZ0*D%&OAY&g=BjG~!o8w;aZQnI}K7Thn59FVx$eb2W}OtGRmf z2?_>;}XFWkZ7j&25(3N-Y9}@A3@KK(76*m{;DO8zG|u8ykeOnuUhuvNjjv_58*k7 z;5}1hH4=P2WZ-GPqc#)qWY$h~MnJ>Yl` zzbDSM6=vRZvKnr>f^KlWD$9}L>=Ofb4cs7K!q1f^+{f=xpQ!lZ3VB^>@v>hA!=9nn zk~2{lF4RQ^Lv!TSe=?fxC&xKyckk|UuDoRr55Y5!x6wt09sHx&OTse~@Cwm!v{gJ& z9SN{1-fQWS>h4Y8OY5KmQaRCUJx3gmm%L*^JkpWKkmEfQe$l=iCp zxA*OnFQ0&8;Gp?@IyfVBlZjHsu&}^7yNWKciRm#V&5K-L)d+^f<7>cmx37#yaqpB z;Q)Ne$P}0`4(5Yr)l6dbxkTu-7^25RT`lT0l;=yBHN^g*eidJo%rAa;^)81}Xr(#! z$T4!wsjK+(ThRE%_)G?zjzwj*THvL|X4o^>^Y;#yEHM>u=0)_wE6Nk>W{deefxrE}tCY0sG8ee0<*?y}0FM zNyVuMXQc6?tA|B1!|uSDC^tGyZXs99{o)@SMeFpF3B~)@3D>GTW}E+*xmd$HSj&3* zPokA@cIZBeKMUU{T%dBm;RIYAcr?hIhcM@h#q}Y(_jrbRb8~na1K_fLI)<2W##*fm zt!7`yd#YaK1~2%JomgxhU9KGdq=QAAHGm{LN$g@XNRD)32U7 z^D;j8>>lsq9k3gHlIXghfAh#b{rZvJ<(zWJ^>XWO30yG%UZI~fal`R&YA%cN?g#gZ z;6M1kyYyw;ii1%m?dHKOa{(8a)x6HN#o!!xq-+?FX0B^L~R44e6uxbSJ4p zM_rJ@*XpOu6qtvDr>Lfuj)$rfR!ui+8S8)LH9Y6F@UPeLQNrakqeXdnuR2-J2H-s9 zHxMT`fDg7FTqwVwyn^zVs>ep%PP*^aA*Gpi@{)weJ4ugllReRyQk|0OPz>R1OpMYo zNN;a83np4$vb*>8=q}7UedwBZn49*|XX*as{3Bi#zvH(*zGMINZy(uT|MhEo{>hfz z$Lo+=Kr3G&TTuc-ZKApF7x`Sq;mzUn(RycC_oNSxF=s++Pg9f#^onV%=? zzBFTNaBnL!Q+Vv?QAR&4uD;v%d(hDi7s$+A{%xtD#+2Q-Nhb5r*=l=$ziR*DRXWx#+Qv|i?ZLyYa1KtA z*$8vih~rmVVDA(j6i>Ka$C>~)xB(|9Y|>SI(FW;{iL?I|=x$DdY2qh-O+Mk*Hu1_U zHuLM(ZTje&Hh=Df?UkRi4Z8U5;TzkmthTwDYgVGGJL7}fV4n!%M+w4vbi>7U;78X? zoqn=>;UYXf_mcL6LJK)y^0=era4;9>^teR-GaOkzXU7QoZa*B3&al1kdR-lFqH(dx$k_fIa7WBiRXNW0b+;$Xk1@>6BGA9-*t5Eb>9=pf+xJMiUpchl?3J=fso|LFyzBIr;)K~~_*DQh|Prd1vLwZjD}tLw+tAHnYsY+(i!`n>v7;^Z4*yylo24;*La zIDG@|mW%L)^x>j?_tQa`0E1-6BTSw6^UcLam%*yme z(Cib;WhsKWwyT*VaOJwq!5Pnj9gBDYO8A^g)6A-Y7oUM&-|HKsmk+PN`D=Eos?nLX zwoKRGGS78|obM{%x5l|-k*@D4uCZCJ^&A?pa>2`d&WrT_O`+Lms?J-Cp5$yrg)Q>4 z?wq`42PZjyTqW-fcAUFTri8AW*l%7ZpI&YE`~xoCI{c+y zdFh03*S$)Q6#O5bs|yaf11_(<;sn2kpT+%^zf8vIdc93>FGQIiuDQ)|xYzjQD;6v( zvjOn;AlZ-B_A)DPJ7-t;e6CmVInfK)&%HTt3GRY^1o@i1_zx0ebb;V=xN~>aKKuNc z{ozj^+c)38Z|}Uk&3P9t0IgBE!6-ULx)`%quFu>lu3^sCn#VL#Vx8n%nx9FUy2N~V zulwTkQ-fbd&_H5w@_el0T04XA>(Z^lV6d^QI7l*DWN@FNwJ2Mx{ZyQx{PBM2b7XR* z{}dKN^iU-1@U3O%tS-HJf=s9UY^7Pwu3)sqW%^aN=t|hi(?>jQDbDOYfF`u)U2%rI>0OIe`Ss66kTMR8ass9j#xtn-c_<|djHkW zq3+=z`KV+T?z4pEi)TK{xkcJ-4_(0OJMn`dv`#B~RPQ?LWX$DhZiO3{kH4ADd(Eqr z@6Lt4HBGlpVSXGBLmV!U-k<(!PWPYYylKu&bAU5Dda*d<0B6rJxERg$809lh!g&W0 ztm9zoUe*)wck^pG`}v`>I zSM2K_p4d<1*k8Q734R9qvCk=M-p6b0M~`*k!_oDan;KvqO$aV9ZMPrLopz9O@Z$E( zDei+?@Oxlv&I-LloE<|K=pFpUZ!UZ`x5;&NGsF2R;bed^g?2oXZgl0WgF*l9=MT{N z*WlJ;j^9z8+wDHEcK}_R_d?jdzWKaWHoVRpjH75x>^IH7LH9oAWaZTz-G!&~8Xd1? z701ZaUa~7!&ss(08E4K;1Nw{dhBsQ6{|>*=iN{5mH}UG~n{1-9LRo0}(&e`tjQ_%g zYZg&JTqybJQ~|v?7jV23PUk(@{GI@rMEtnwKhnAq#fLUAk!AklqJ8=GOS_LRWQ%Or z>e?LFFW77q{IyJ%auMJD{IK)&{ZIDo&;RtX{p0`f1)teB_72x|afuu~n5#I)y}mMP zZ{sx<4$Q+H>a40YAjdf_ou%U&t~V3n+)M|I=I+i+qA!Et)Ptg)yQN&tigEgt;n$`j zWb&D#QDiQp&P?(>&#$B9!&l0?r@j?sa+SR(f&G@rVQkasGS7OtxtJ$gizgR<;tHL9 zbG+vTaH!@NYQA)7nQH?4w}%&W0WMQo?lQf6i}@VSBWE|4N_KB~*6!f*yA>I>jW)6q z=w8d`@vMvMXltdOH zW_rwC{B|I2F9xIb7M#l_KWCNBzGZxT^Juxkf<<_-!nxzNc=e)fb++0(`{5Eg;to8< zA>7>@9Fu(hCH6CAES0sqSKR;y1Li~nStTd9%b9xvk7NSuFpAG_j4q2Q@I--GSzBn1 ztLR_Si%a;!g8X?O_-hyrBn!WjBO8(C`by!m8oP)tN1mg=zbS&PrpPEPvj48p_o6K4 z+|??0C~~KC1rFfr(z#q+{#sk)dsdc1-jE;~(HLugmfXhx-5dThN9o=;ZUJ=8D0_RT zxy*d{LY%q2thY(_un0PYm;JY^;S_Ur;n&DGNsH}6hfL9RlBCZ#KqlS88LNw#r;YH4 zwLH%nIHPKECGu62d}tN!ExoM;gi6EP0Y^V z&-G9SRGok>bVv2V`7|5&%oz)w^msS5z)R_^e zUgo=X9d;X!srtNk>zTX8^|#X8=*)HA>T#0=@8!%ve-Crna%6%t=$?7-xzh!Nw@BB= zcm=%Pg^M~m^ zwDRhS-<5Bm2OZ2!CQ#jd{p2asAKrs*-hP=m@tj>E;Pw={_5%6mDL#`i&O73vBb-Hs z`MUregoFIPPy@Uxeo=Xy8}KDGUS$>x9#|iKOD|qV^;xOwSe%HbAB+!&GtRnl_uh(q z`0=6r{*NEo_rHJ7>4A_R>?WMj;nQ8Gvo1El461Q-Cin{VTaKXrErAuj{M|EVJ3X|S z^(1@?=O+AinnjzXOKwtoCtB{vm^@3&j^&Isfc`T=Hhv`0;`E)Qx#yKP@5J*cJx_Yw zaEe|{I1 zeLW1HCZD)?l5TiEVa@>aB$O5D=Ufwnqjzwr{C@cHhQJl+9C=)LOKH?oYiS!1_AAn( zL4TRna^Z+6<|QoNDp+(TV6i!7i%pVk;rqSxuMCpQ_3?9@yt9)9g$w7ablWId#*tBB zTfE&{Q}){r-)2VEvV;Ey>CI7xVjSKR9N zU7jo@`*~13cjT7j&#P{E)zM@<@I2B;I`J6SwVuQqMki4Bn{ZHMW#~@qCts{gtol=w zB~YJ=AAg%`0Pi#FsJJ6_B56*Xx{f_$qx8_9ce`D@2KXe_m^M5t@;b!u;Ekfisl#}B zkq*W+W)W=XIkQBat`g0$(CiO!fbGFk&d*eSR$U292bG>-R$q!NT6%zM zW7y$Hzxd&)(|PmVA3w0a{_~gi5C8g={r$guW`FwokKnkUF`tk7Kv|rEpFLbXi(q^B zmoRHx6z$1JhNCZpzk87Ev6mT^_=eJX^oc#V?R~f@W~fcV2^Bc^q)*^2mh(t8(iJYo-VygeK^XLOP5#XMjcN2I*fl+9J^-6 zZQq@7e6*dMU(~g&4kY0}&Ay&rm|@L&YCrznM?5~TufKiA?!iUx+$2YHi@e1)`Pw|% z9+~XI95ZgvZ{H!${LY7)_WZru%s8Q|cyr1Y7V&wY?@n`GTi{yW-ki1N<$}|DnBvbg zTW2B<{v*#O?3WC3jYr9cX7Q2DpdC-s(=st(B{~91;J>9Y&O%wdlw>!Q)8D?c%)Pw| zmpyHp{Ory3qHQeleWg5p!5IIR{uKK5mf;llX1O-$i{2%Nd^-yF&EGGp2LTRHy`VGr zbf)2mHS=zIF899ek$y!$Y=;&uNamQ2wgoW%SynMtpQW z+fTjn)xMp^&Bmz&H%+T(i;hGTXgJ^5`sgSW_~ zZTo#-$$+g4qSN(t+hSnAX2|6V=WUD(+cG}aS?-}Za#%aO&dpKg$FXlup1NekQ)PDN zDtugBo81ow?KXa-6*5eV@1|Mnx;H~`f^qhbB%YvfM~w|$I%Nar>1C;W(?+_=O`Xks%-{)g z&JK0L6>(iB8_+QDY{`S~uRd=<_Ud3O_dyjNA^dmA3unPtaO-H&O)XXA($RA1TWJRK zs)tRzAeoJ5zzTkPIKW%EWtKpUDX>RT$=Sohz{HimTS95#SzdUl`l#Qc1PvMmwC$n9k z=O=Ueq~(5n)HdF{WZP%2*a{sq>z!nUxldMVIh(+zjh$j{+cnM%1HH_?rn8M}ag=P} z0PE!_`+F82kFLoC-P;-X&k6dwM!7yS@PVnbM=gEonB~r#w#12(Hh})>WA3Au^>d(= z>xwgqx|ua|O*z`eZt}kPmD+pZ>gdN(Ps|`ZvFAFU2O4|Zkzd;YT)TL_Y!zoA@SpPU zSu~dfJ&KXD_$tZe1jrxDXBYrq_OU)|{zd!c(+>V~UqO$lB-7}ommDs$1N^GK6gRml zb%qLq-2v-;^TTud{h!{azvH=m_5D-(^qVL4{^t+v!Ed+ePaAf)rPw%gD#146aD(^n zt=s$33%__s=NMTMa%>*5NAlXm@k@**IWxoQt9LktE}9_YG=kr02p{+uI&qSW#yESk z_$~Dx37g2b79{Mwh`M8)P+}(UtP$PwzPVU4QHsO?U_nU~!$C3?8PXm4e+O|0(|G z>h&;}Cd7-EGo5eR$Yue{^qksAx8q&K|w2m&(L8d(aV^k2&k^FC8gl ztnfXKzc9^Jc_!;#KXMz*(3WCoZXLq`Pl9~*+OHavkr|>bKTndFFJiUgM0?! zMZNH=KIV(6$3=5J2I7_A{{gZ$A=`i_`tYj<_Vw?7OV0Kq`~3SSaDH#u&;R*j`>+4w zJNw6f``k3+O#F{@@(>={5FL5)w+@hT8$$OCvYz;d(T}3^2?l=!K7t!_ac1-2BgV^? zrPF1cz8t6b4=k%5rE&Ony$adwGwPs$IO$TJTS?42v&hrxdu8D+hek01>X zI3MBp-nDQ4_%7btC$@cWirg^gA^d~#Y^aw=IodA#ck0C{V}_^vS{-SVV8(yRy{O6j>rnwsOUkcmnxvKA~7L8cGb zcw(P@`P{zv9Xk7$kC_XzOMlL&)8no@zut$**;X_Q4;|R_-q5G0+2PCZe>-RgOS3`d zI4>FAs!Bes5f-kB?Tuurew;-qa9nV(BvOA&ljhz>eB?;P{aw)pwNeK+CM z-X0uu=G8tJ28Ypuw1D?Fk2WSvS(tSdJh{e0nPFvt)$_cR0DlfgZM8q>_~Y+~$m_c4 zSz&)$>1wn2_6A!(Gh3kpcTKz_U4iq#0b6u2C!v*$E&oQndh=*s3(O6kXRj{e4P5MQ zwp%{0?egDSa4!$hiy!mc55b4~WMOVan0?OkpX-NL3^FGG?6?L#UMi^5hW;6@S#`~9 zkT+Qm(7knnT;^%`!qXLYP~Tzq5;40=9;T31UWRPS+?bQe7-QcZqi=5k-nYQDH`!HV z(_Du|?#CH?0^{>2eZ&=>LNah;^#X|iYsW8}Sr+otd=O9L#h56+xA=hZ{6$`C$nae@(e=?vPR_WYryN%`8$nTZZ5jqtaU&!Laz)qTtSSEBi0l(NzZ4sK6fvZf*v9$}d>o&T9cn z4|(WkK*NlI1xNY)DZGX$@ZRt+{5$!T2zyG1ei~)#l&2g7FN?G4C!ehMKg4SoLCe?P zuX)zdAo~Nky4(;RTJD`Ze%WdKP6hfpCh=1g;J6F;9A@woP0~YK$l{;C|4}HJ&~6&)o`i*^2A-=t{jEUTd-yvcCCpawAvkZ0ZcN*T^}np1VTdGgzNaAkAGC zADrVl$l#O7weXt2M5BD}MLY`2m(hQD&(=5-mEeWfI3q2>N#^1I($%c>WM4F6dXDuz z9|do)&W_Pl66d`d<=mTv4^HzQj$JR~cU`ebu(j}I27NtCA7GrEh&r^r@O9#3{e0ei zeCA>ocd-P<5GxEOu^v9R>%}>u9&FU+#;66PO(keAaLE7*rzO{)g9!)foyWqx^^&CGB zj*8Dvvt51ouDqPV2I*Xh48aGbyiP7PO)rwp4jGKgbj|Mflc1c@-pe4x`v_k8gDCOWUzykL{`7CGu1zQ;*)axiO%Yh{q0vmx|bY1{ImY1X`aahmn# z=>w1A`QF%{w);=F?dN~|%D(yeV>r$=CsQ)Y{-J)Bn|Bt_WAEGVzJJE!ef!t{@kjgN z=MU*ze&7E4fBb{}@Tbr0s~_KUastA)!eT+*E9Dc!19s6t+C}%MaG=&WM~5E3#|tLy z@+rHGub#8+2!4R#d)6Qiz2;oM&I+AjFOYV@6|meW?%Nar=zMIU}k z<({3H9Ows*ZvZ{3tp_a6S84q^Q^;qc-n|y|e`&|!6xGqE=c#!qUNVrHMXDLh{$X;v z@I&&it5-(7iSk1Hji;Smr+0V>9hLiWb}^3kBVaSL2|KupHUW>hvOex~p-1zw1x4aa%g^ZjA3U6M*&_!zN9RBS7wm@r7*L}$XRIi#WMJB0X!&PP#w!@vK%Ae zclm(xoLzVB%-fUO>vk}Y4ov6DHrb03Ucy=WVv1xPSJ?N~20Tu8+1(~MF}f`d8=CDc zx>eqySMMSDWX&#ELN_Rq37I1wvb9vO&H22|f}JL$758zb?CoPF2K_6o9(&kBe->D7 zmwwSz&Up)D9_E=RyvS=<67PtPyXa?DR#y)iExKAioh#k#b_+k@RssE)e9Gb=S~tAX zUS|*8YHhYze#LGx1Mh&I<-2`!R)SUU*EQN5Fy+3zxSjPLk3E>dhYshO@YnZA+VF?uZb70 zWj*hr%OOE8K!Utx0<1Px1s34v&cefuvuBUOy@XHv%0_}3|a+_6^$C(v<4&29?tBL+*xWpUqOwH(xZTxrlHTHP=hDY%q7B5_-ySUnB zPnOxrg=#C*)HoWfGPWu7oDApJ6#nZ7{Nqq19uEF&)XiFh7V73__u@%YhFJ57u97Fw zJ?_I7?c==)G+wfyHuy?(v?QH0LrKo&csPO~I_co)oeUQ~ZKp$>ET#Gz0-Wjl(T{@U zwxZ~!DR}D?dF?cr!&%Pe%ADs%hMep#`|& z1w5p}WDD@M`)4Zb{<&&Ijd#SrlhYNi{cmn3}3>L^)jJ2X;_u&`g{m^{B zNzRc|=$=_#r#z1-u$DCM2ppX>-|_lt%fP{=m~%XOfsVr~7kSU&B9@->!lA4EnWJUe49P+BQE>|%4|o_QX)LRK{RCLw_{aTEk^%#nrlnli-p&Z z+SJk0mOION<0AXgRjyT@m#YSU7ruZF&Kf-@PnZ|{*T*&33zvK6>5en6^(B1WTkqat z4;goK&IFuGA}jA#91OT-?|yL0zQoi1>DLcTUUu;i@(fLrKhSKl#E6TTLw+=gs7=Cc zOihE`IhSi@T6zL5C`*Qw%&j_$g5-$?1K_?So;ti+F?v{r(3v7Z_A9)U0rp#EE{6HL z>v#vMneo%(qTiMoUTN0EF#E8$c=fn=_+IfznrWNPvZis4FX9)`?2FCad1sFp$4S^l9qRJQ z{|Dxj&gN(KF?vg1kiJ0H@&Z{F&BOZBKYvVK^Bww5-UBx=d!2cE&)z+-=kI8C7d+p+ z4g2V`C-&EW`QEo3Bc2dJJgv(T8Q$nn%R(H4^xM7ZvZ}(^+1_U>FM40^{#{6 z>f7m_gj4K~*W%xzkGKG*NOpP}pXAo9dHPJ|__MI1t#;!FX#)$lvrc&M=(YR0=qqK$ zMn8R8Xa?$#R7ZILOdXoQcQFaZgUgifQvG^y&MM-cG?PvIoU-gu_CE1`FF(AGfAy~Y z@Z$&eJ(&3a{GWeu{`<$D@V0*Y(mwn4xAr-B@Q0s2BHQwXeS^pG{VyNcyPw~N=VcZ# z9&b0#Z-i@0J%Q?8(6yspEEgE2v!6^o_*b2l?|gEL*(Zl4{r3-l|Cux6d6&6#`*+o; zH$#`+J^ROh{mz*gqcev$NOnGd9bOUL22Q%U=S?s+^Q$>aHsWd5+->236!apv;0y5McW zi6h+K$}I)Sph!n(>1njMqgtPJ z1Njnl25R1n<|JJ2JjTyDjUN&3IXvLp20623`c%k^71zkJl7-pYo3uUNXMH`mNA?14 zSF?1S*=Kxy%GP}F8SC78d*peuoL%^xVEA_T8|cUK5HiCAAA7Hhd9S>V(UC^*6Fn1P z>}fnM^Rvv);E^hz9~Z%cygzxgjU0X?WiyJ?qmJe}i)LE_<0wZvPX=Q_d>5X;4c6){QE=l*akL*7j$ZkV}?ZWdNkk2?wrR{*(A-iO( zx04ymp*hXa_abg^jeTyLSq;m~*w`aau|+mS`Hd}n|4ZaK=J0hb;m_aY`EG(A*Ld$1 z>Ajw!?{JcRetnisL!R?4@0Y{>4AGs*xwTkgrX+fHdW0E=@CCZg5}d6^IBUl6ZI7{^ z&(H~5qO*B{y{^O_UTmfZ5U*K=wLXt8L%s64Hv(g1j_CT-Ia`^G2smyMjFUNY#BxVp zv&q+Av(nj9R%CCKuQ1(-W~#N0Yqk{*CNRJ~hexX$kAr4?$Qv6#vr3Yw96HZ+1n(oP zsT^)gFFqRj&*Q!4ZG?W4@#~ju0*yM)^P2}JFW^rsmYuedH(w(&dfL(H+F$>*sVgt) zA_q(dp$Gg_<;CxXZ?K+>eogfmyGCEIkpl z_ysG0eb&H6tCe&qgU>U}yc*+uNrErq`0zsTNkOu}gJ{e__C8^ZUU;!yo_`lSRI>;E z9&M!^E>HT5ySKsy(RV}mbOM}v12MS11ZzyP#nIzJWb-sLOPR5OA-b*Em(`&@7-TKt z{vM!jJ}|&MPC9+k(tF{<=QCtF=_8+|Ycdz(Oa%VZj3#;dv)ohJ0{#~Kt?I(eqZOCv z=v>4@I?Me~;+k5xg0@Rv%>Jng^1^ieTqWaC0p10(rO`&mFVfX_n)ej#cI4Vs%k_~_ zV$UjqJM!=sY0lB(oS$=?sdM-o$H2%5aQPH?YO$Iu5I=tgeLQyoTvrb6Z9@BIe~AXr z+u;p^bhb=`CuiuWE--=cN{rD{ho67iaJOcOz`dB*$;alUJ3&uEa<>^u?kV8>N;)Jrlmvs$u_5qtJ z?>_yjBR2CZ<__bfNLHXH@-qkNZSXR0MY?b6$v3Uz#4+o=cn-Xer?BIOee~^9`|PLR z+OtpY&||k@CFV?N22%pOlAK`ghYMKZoV|-z==r;Jz`_^YelW}WMc*zuv1WIP^V1o5 zgzTQ?VCOlHkK>h-4m(axHZy^DgFPUFhb;*Ir*5Gj_)lGwQF5lEc+1qWG|YNGh=*Su z3-!QCqt$*=2j6`IoxGEMC6R_dMw<%Z|MKEha|L;g?02IX{J1=qNzT}J=qK4Hi*b|3 z4*S6@e!$@j99YT+wrO+vsq5+4`5XR{_N&})YX@^$!KeLP4`KAp5%e|Xa@GCy)lX0D zPyh0{effuXos7rIZpqPl`{A|4H>rnihTO>}`~3b}^XS717L&J2e8N)Pna7ZtVJ7e5 zh?CcCXRi_N>>DJn00-vr^@3;pR$9ujMzI%at|UH^n-5ELUEi~hzJ3T!d1jyg?kSwc zA$&y+J)Mrf1YKk3fp_si3WKOyac&WPn7-KA`K&dNGb*n<<*XZ;Yp32eM|bCa)bCZd zQ#LPte_`HA2|W zIs1`eYv`nxp!GHKv0T@j3A06X8}P5@0FQBA*t}J;753}FG5SsM5^22=UTDMz;Ti6u z{~n*>Al)l?2Q)*b6%MJLP8Q|wf?4`U=HNFtd(5CkYZjX3mMJsT#l7f3TbLb0FER)kMI6Z#K|M~~|_}s-Mf^V5I+sj&iy_F1|?=-KKa~c|{I+XNh1FW;^V$nR2 zn7D87xcX4!jn%vi@uHzL`V4)Mnth_{Q8Q)&qrC4)x*W$jXN`02pQ5v3f?li==k6ss zNoL8H$69QV*(A50&{OmNT_@Wg8H2CR`YlxoSP!_;1JB+O!j}|cc0Ks7pFY|U{&$_D z+TjhPl}l$A2S1WxCLz3)<`3)hxt(s$r+B}? zf?&d#S+E(I4d-0Q&)UD2b99V2Jfd`e^=0-jgRYlzhSLkmzTon5_VaS4M!!qpQ=Q;^ zUy`1XXRTxX7{c!-zegg6_ivp08tkGh@c0DhHTJ9`T%dTjzu~}nJaLP3!)#7v9iD5R zzn_{ws{qT4)9XIT{?RL7DRn~6nt=)Fh(`P#_udUR#*)%v{1CHcg zStI!hI#?QeY@a^noBe*+bZVmW`5kZScjHx(Afv3+JVE}qs!xVEN(Z8 zIon!fealbV6laqJnb1*ievT}~5?O|MI3;y1FMt6x|0>O1n7LSC1w4jxb@jFaH!6;C z1)frUHk0i2@)^w~LbePpoF}_7NjF$VJp%Z{$Js~nykE*C4x+_-Iq&pwy-Podq2ETp z6JzXc6J#If@U1PQX)dC(E~5)ifjuV4`9;xuJ!q4?c+|V#>zY~LG`Gjse#T<;%xAdp zrX|R{juIW7I zKW2ILwS%oRL#vPeWjr#E5CNeF4oYmRC~;>UO#P>)p%{;8{0Vdc2v?MeC~{e zj-0TOBd4u!ri}T#WGUdVX3DOh5yE+qn~pKR!I`Ve*AS0B_@)8QTf!T9c)D5NS>J?v z8^IrK@=)Ww>P0(qd*D;)tnuK-(u{1!_YbyqW-oGP8idOa(o-0Q*B^w#k(a)YbCvi% z?fIIw8i7yFz;UZ*a)r*M4ZNu}(z4c^H+N?D0 z<6MW2V+3qMj$@3!8*jrGP2Mq1wrI5SqGhl0{b;J==g`RE+9qz$dxM|F*N%Pi{P&umM4<;HNp8L#Cz+x zM%Dvd=s{Z^A_G0fIVxRWZc(m-L2-o_PFf0&f@b3_mettO1!miwMU&>gmEqs-rvIp^ z#TL28N^hL9!mp0ncF z1JZ%;Y@hQfGif<*NzakbAtY@ZE>3#v-oZ4yA8QwUP!NqKL_brKp4uGWqkA?pDt{+l z0QjsS_=EHWxt;>+Xn{N`zPwD58OwOlgcYR$57WJ&KJy^lO%y#o0G1nKzw-pj;8o<+ zBd-(?S9jGa>W*7ggF1tGZ_~_#O)GOE{y~}5O1duSu%QbiLpC`#8L@|NZP{P`@oW3( zFX(yfZMpe0+9y3JXvp%6b&`8k2DKA>?8En`K0M7B?x4H62h2H)F0zQvZgF+Y9z9#7 z!)?R9{`tB62(Poe_e<}LdZyKTr#z|Vw>e(GS6n6Bc=FzXqnWk)$mDX)UD=+tr!UbK>0jB{op!Pd!hUJ^ z2IX}k{BH5FiyL_x%i*`=T9WFx&Wtqg8TcB`j$oKxI78)$ zeQ>kgaD`odG6H1Zr1gbU^<-_kInxbrz8H4qF|6*xJKUk~8_u{3j;jqHYMqPDw?5Vj zylmalSo^!sj=mbW5X8 z?a(W3>aOmKX!acY%mDrn&QaPA#ewR2l;2i!qC;ckX~FL5%oF||fjd<<-QG5wh!ZoLlC|S~s=nqw=oa>ZT!bbpKp`OWZdMVVyslJ`AUNE8SxQ&4aC+KR* zlB-r1Tng+eTpXG3Ieez(glEWXOW)90SUv;IF_Z?Y-sd^A**W&DBEF_oFwZKviuDOF zViNv;5HA|uhZJYt+4>ufH)*-5&WdPGd9o5|IED-y*DTrgBKL5yrN(BjT(EU@o`A_7 zv*$f4zh=)`JM6={cKf8=XV02kP9E~k^)9;fn5)rDr(SEXGjC(Htk(7}(Q9@Fp6+y& z-KV$tK~t~Y@9^5)shmApnzNnhN!u)d0pVf}lW}~8?RJOU=N?+k4t*1Q@Qli$tgp}| zGsk@fx1M!zrs%+5M~B-Sn(Q*?=xub~1wXi%&X5W4$QUzp3m4F)D$YCl+Z-DE2AFP@ z_iTb|NuKe=KK2mwy(BZ5;$#_8oEgIG(=q&~LH30(y$9`Z(6!-ms~n)OWDMUY_k;XE z!*Fba7hbXW*;j1t!W*`P$7#V$?+1HZ4qi9QwWmJtHh8Hz`c*2rnWM#i;-*Vwm`r=J z@{CQO%cjpUf0pdW)S2`2{=%P;0Z7wJr#(O3#!TPplQw+em_@(^17tL$hxVg|hR&kf zqV0`dqjR17`yl^LGeFunPs_XSZ9Z*-aAzTUJtkOB)8NKYymaF=@S>Gql8Q38A@(%* zLFudQb*u;AFnJBdlk2&*v$i&~C)Ku9+eL8Sxob!1TR&qJV2hKruR80ny!|2e{DITw zYyb?HzJy1Q>m+mfJbip%z&3cIUi9xSx-7s?!{D6=7)rWZNEi)HQ?ny9H=+k^vb~4% zH+on*dx00Pu4b0@(EH>(`tYmp-2yClxVzi7 z2E4X5*z4rHXY?6^*QRTk_0m8`IG%yc26F9{aKGhbRn9S^xTefzrs&!4+$dzbM&o@CDT@vFA*CV6CZ z{>}31w#nMDT3N*mzAIKdcGkiDY?}T&xskfzt{kF1&xi&XWaW3J0qR&J#)s)}$Nl(U~)sId$K?YO#<(D5HIvmX3 z{q<94PRPcs1+=^*SZI=jjH<0t8)pD4}QeH`!i1ZQOR zK5U}j6S)>ooV@99nI-W;&aO^5zOuu&ckJai_w4znx9I4~ z<9#Emi&s$HBkgodb@05KdhyGl@oV;?a8qUmKl;-m`HyYqz3<^(^MQZlK|FZ0U~}sU zXBLODz~V|YS6H)8hv=9VH!3br9;`0%l)cQAt+|2M3ZAc$>#nMnOeR`_x@=-&U>R*x=|Mvqeu>Td;TDy<_i#rSBiY$&tI9M^DU5jyV`m-8znj9XMvw>&>>jlOhPdO*Z1Ni)d1N{A~&b6soY4Z4O z+{8n*x8US={H&23z3Ql84rl*KIM8z5ck~@PR+Rk`2Gk6+x>n88A)}|P1N)$|y_)al z4#QOs;1ALJ-A7Lad`Ez+T!{0SI74MKnwVjwIUvHPgS>}{93CJr#m3I0)9Lipw@>g! zGRuv#dM#cbcMwk}XFcy2m?(iR0R|kU>&(mE+XauSZoVkltu#Dy8ZT#Ig|j-m>+;St zot&B(w`h;w-R3@7ar%$~=rLhm`?QH|aFl5cQf1^9yIIcT(Lb!!a-|cv5o~ z#+jorJ`N^Zn6R0-6gU@;SeomZegSdT((p&e;gv?ov*5jP(~FS8L!h}2>Wb{*^Ah(I z215^#T@&w@;k_JVO&cdSo#Q-}OXFwf_s+pPmiS%Dax8}Nio;zjpwDgveBdcB^DM~T zw6Wii^ITxf-ry|1TG?pDCOQ)EoxMH`O z+H8l8v^%LW+nHs)@JsZw&M$+N7kNLI;aHV>jnWM_&VD^dwta^Fs|7TR4RqXjyrc7I zKt-K<{T((!&L9eI8{%il4?fJ=G=T40^O#&QdNJ@w)D1Fg8t%Kvcfs+gCcyX7Btx8U zlP6xK*XBI)9ID_O;RSnZEhlavfR5y?v`TVf7di7^?mp}IZ3kNL?!n(B+2cpy|MbYd z{<`JJXiCe=kkQCpXH6%!F@!%a1~yEbzGx$O?1kIxKcZ1nDO?VTlj@#+VSM3V9tWGrCUg>>sT_G^)AbHaa*NQR= z={m9@^vPtp$;Xgike(Q-qa%mBNr1IIqMlXuKsTO8>A>!;D!RY$T;X$Tqkll1P&)hi zv|sqa5Ugd&qdC51_NR9KO@|jwbdc-^JdApt-1sY9(sEcQ-S{#6z4*y{*`w&1%+Q6D zkK;GRC%YCHb{^ZqBeovnoWwOa!)%2-xuU5c_t*e=dp9#p>&fcU)w4_1eh>fP9BXbK zJXdUKA;07@<;-{KJYT~XJL_VmJNPHT86-aFa=eC_AwM{m4m5cm(V|D-e8%A%O1vNW zN;Fe2U#bCLIl1K&I6Mgd)>3iYy2?+Q7v49-x<3q7360`|=G^b^AQxTDHF)f(4IO!% z*&nBDqWrQm??X9|5ioqPoh&q%IskX2HwT>TJHICbXbz%C>%d&yJxOAT6c+TPw`y2EgoYw-SG>y1i!yl-{Q>IS;qf4 z%fBt1IcIZK_!jYDB$*LC)&b^kfbWF^_SN&*a(?M-huZ<;%eywUm;oE%y(E|A!E4^g z=dU@W&7515=j=ukk>5yjx!O9(_i?|gA0?BcLxs;fqRbxo{2aNMQ8>K>XIK5bzDIrl z4|8@Q{Kq+sjoNS zsjszh1_TE-aXwOyisrLQoAaS3sb^DOgE6`|q*s6VxiYjb>^nNn_8)DrUx*uFHm|e< zu2s!1=taX4=2O>+&(9tjB3H?k#C#;`ikzQzx>r z7vjn$=K^+cxM071c?*3O9}4(S*<{T*Qw}A{*;jmzJn<3sFwM`>YZ6A&doeiF237&T zdGM5VpR}s_*XZtr1FSp&7g)v&ZaNC0eqJNKEY?Onn&F}9UCe3ZIckR3cNq!XPx&3U!weg5j;~ta^hZc;*DqzwcYfg(hpeQ1vihz zt3JlVCtJ+lV@~bohYp|j^5c780D78)k>L_F=P%4_aq{OWI{ec36VU8RXi%C}BF}3o z@8jCQbBf1LGiJqoPtQ*{IgKbkLmfD}Us|}Y)pgR2_ALxpUVD=D_c-UJtK^;8J0H)$ z`xePbN5P)~&Wc={aH&0DZ1tY3Zr5~?e2#)tgJN?UKZPlBoJ+wbk z1}Bei7vAax*VcOyB)Pe8^KBqaXY>d~bq1qMPgo`+Ay;7}!X@o~Z>m zKXM!SMY!^+-b+F!WT3K;C z17Hp5SV_3kVKM^he|N!Oj4-Q5S@K>oqg{9w)uXQ2Zz*`Z(HL{UxaZ_wNs_@C&5>K1 z#v4e+w}gHr{5Ri*C%uIXL<4it@bKMkBiq{9X?yCOgRjx7sjVw@cC!kdwGNC#FH4ql zdK!;Vl5=mKER^PpE#R?RfQMT_CtPLESzy-G4nFTYmFT_Y4Yq%_-fo_`4mNDEo#R#X z=XKbvZsv6K_`r(wwvTSKR#8jm%Qefte#(~4ULmhRCL=h^%mikGBZsBk!|bt6y4u)$4OS@F%Z;b2s75vz%SiaDUUR|FZ=+&;s)plD%}i z;17(!U$Q1=Ig?IseNMvZ6*vzqMmlU8j=#iOmBSO7#QQOXA3ID3l;6YLb|z`DD|rqdx`>y4jxe66INm>}o0s=CeH{Mm$|cL;drZ@Xq7JuVx}t}e zXB$BajEGwz%NYY_xi1|x&*fv*agLr)&eodKrL~|9k6aVjsF^d|4KyD0`i97igqn|A z3j8*T2W#RKKj)1%Z3qr2Nd7j`L`InRVc3Iz4s6p27uChrcGerMHS#H`^Q9Tg+5&Is z;@_9m9%YvIY1Vc8BVa{uC+{KqnRLf~9%*pA^iR!<7=jN=!ab%q7sfi!v^&5wXirhD z^$2I~5cw=W7}JHu*~9gx&L*ATm3PrSqWRoi{~u59^&Hokrg^eTqPHMHfB*^afy_h# z>AlZHCR_pu?;Qycv=T+i(Mh6gNt9GlRacc%)n&V9x~HROyLV#uVke>_dOKonCT1`9 zYA^TSc=z`lZqG#qDUk#cC(rr5=X=~MtQX>E1Ow_d%IBfkw3$pim;aGrOvs4 z)=9rUQ~Fji30uSiS}oC8kjJ}`hXWkJ*Ea}vJQB7Wp_Cowm{(mMx6KmsuhZ zy3^?3n*`IW;V*at?dza~-xa^l6f<8Y@keZ^e`&mE_t2CN@USkW@M?(nLVL+a(YxTS z{vH1%;k}An&k1zV1+q!=t?-1(ZgB1@qX&+I;j^3#0>iAigYdY6%v^(`lHWU2Vs;xn zV@dYb5O_a${D>va9b>-RMVsy>Yv=r5e@562kKgtMG+oXj!hg5na}OIiFSfn%C2n#K*3%+%x-mc^S+vfR}?yogx+3T@oHy%5BY$o71E37*??|_xyJ;%{5g#)_rBzEC5 zRK8SQCYq1YIegj4`So+=R;E*Yuds+8T+usFk5`V_adh}Ad#4WP0{q(~XZ>k#QJFQd zP$4HzCMX6@NZ{jJLigKZF2(*f9rx=?bo6b~$%+R6{^j0V^g7&L!fzNyucAwWE{sq% z3f9QjAYHKoI={gy55p%46N(2KCKITG2Lecx`pv5kj^Jq#bPb3e28WH_6rIa3r_<0j}@n5?SbzXV>0!3pxb;TQ38<_x2M z&2AQ${lobmj8I$6gA>3fOFTET@SW(`QV*t<_|JH4`F zaL!qLh%s`{S6uip;Wd>fRTf2izMdmxK9!Sw_t~y}@$#X4_}N|Cx{lWkt!rh6-Z%VP z1+q)hoW)mZub2Nm&K{+XZh7TX>|vU>s&lXUz2z5aXa3?fb+W-(b@p?QqyI|JRade* zdC^=6Jfe8`JaOhe&^^@SJ!hdYvRjk%0gh+jzWE;Pt6@4zeDHuH==8Ay93PyxG9ki! zjyHLPIlcipNa0a*HdIzl_)lFT@)amktj=zE71h72o}h2YVJLT@jyG{wQMg$3tjLcb z-<34P6uhOnbD9TE(35%5;e+Pr2fKcE)o$EhWPUW+k~ik*ajQD{Z~4D8r%7JXBv}LH z#&xge;TffUSMlL1)46d29q|BsG6y%!=c;bXRF1hT1;E!O8=YcbaGUsdPo|>^Tl2Z1W zH5IK#Jt&&RB5$f*%0+7)hq5@zz$%NQe!di5Cf$#ktEhagIuAXGdhikZ1bVw>?W#8~ zH$7zi9eUInuK`gML2oU{v;+*_l+j^4~QI!iX@o%JXfCHuj7Cz|0r#?M!SQ=h=! zJBh9=Uc0l8c_Tf?=nOwXKY%>Xc_NVVS;B1zhR1h8|GZ)f)CfVo*+*@onx&- zZWd*FPB=wkO^2cFpZ* ztG)InuaCMs4u5wa&2Etlf_&nd51?70EBJVJ(e2jpCT-TAv%NDXYy-|}_sCJZbqX(8 z6CHhMyBiJ6y9Yz=q6zJ`^f@!K)bISX4-L1Gc^_cWH}UpKb6y)jOVTU_c$hc9eTTk? z-E{fwI$vw+wR5(A?xNiS=Lr9Ogg5UA9PQn`l~>&|Wa5_DgBS8)8|Qtg-))lI?R1G= zM1FR0pesB>OY9??_=L82)|Ob4YdlBu_>C7?FP6X?i@p|z-&{ottHN;=z&W`PnR3oN zkre!M4&FPXIW+8<{9b#*aERwYXa7-VM~ff~{aH(&$9sR_3^PB@I-dJ+ zFte^>k@Hb3ca529oQFMh-Jw^=dli6J)hsM^p_I{%$1a_<{HbG>14ovx)Y*6&7zzw2 zPgogTIZ2kFdZCWo2>U(PCwJ*2`rrxk;rZ8W2F+K~3@`Cvnm;70+6q_H%JZ!G=CMKi z9O%SlKF7+jqo!WD!g*#ofG;z2?&*G-B|ASGpf9x_P3-C=u;poskReXNRq5sHTEpo}6a^FKvvUF^m2t?_-wCc(E1CO^#v;Y+OY5)_js|h}jwPwS(h*;Vbm;!NtNI z_o6}dC%F&NLv$_?j`LqVZqe@Z4$qe*w^u?psBk7PMCkS7{#Ms_5YE{*O6Ha`KnB01 zw07aZ1bkqYKEl~fc=>?=Tb3u_!e!e$cE+~Q@OO@$x5MLSoS8K{XF2!5+aHhtIp7Sp zb+Qhx-${H5oatK7fmt{1oMfKOk<+$!gnxUU{C8WQ9lA&H^3to^0vFzjCd~IJlI<$; z+*T6gQ}GL>(1?4%1Df$9Oi@|D`;9kykaL(ifZD*YJs$bIz^!P(@~aKPZTAgbWS<;$ z&fW6!75ROE=X?fkUwBOO+0_B!=*Q&zR`3jMtzi&H- z^wr?+ zt0ac!L*F~kd0#)j&U_9I1ly`JM*pofTlrjRln#doh7|UD^!QEt<3Idp|Cubt|Mstc zZ~yw=|H(f7`jPG8Pm>o+{M*NP_FlYvU{5}OgMB*B&z*8+wDq#~cY5fs2B%gx@Kmj^ z@2}Cd4gOcR-Z);*GFYQDjqikKRhiisSW2FRJl?Jx9Y3epcguM_{*>P2Z|~6s z`W~G}dk&Af1fQo2&D}>E;3sf9IR|D!UND(Vnr9fUvg-m})5n-Af=0u6TYF5ui=1RHejR*? zQ9NZyw2U|&gdF#0jyW9#I%Q{gUpsgWwztS1ERf?^ppSG3EVoGJgtbOyy$N4q~T$UG_Z z-Sf;5<-C4~H|b7GtGz+b*n6z!Z;_9^-+(9YQmcJh-(gSr{eA~NAabk~zHT1=X%24l zIyvASW(sV#)YE5n7Ozj89UeVx2gffuzMtJX`jhE=m~U>N^8#)Ou4=IneTY5t*40+K z)7NMB!Nj-ehrbCoxq=6>%JZ?E##0rE*ml3i*^7l8cYb;SYR%|02$JFMA?=@LAhupjG_dY+WE^7zSM zM9zRMj^WpCuoP#eX)-9Y!fze13DD4)owgn?8Bm7G6JL+ovwr_8D|s z_UUo@KC%t;m0mbz!B%*Yjyh(yHgh)R*CaTW^<5mj`m8*|bnkYZuu#i6=7pTK>`{7O z8psLb^-9AZ>AmK_fYWfjnwycWZ?MeC6Bg%{y9y^yk8>8!TLcczL)NB)+)EfN=jZp{ zetPifOVaF8^=D*R(^IS^aWwE0&v<5t`6As-4)!aNFG=G~8`i(q&y24y59TYv(^b&G zicxqG?&SiwU=*HE9G(}wB?$j6E;h_w=n9g9Mt2W#ZPigHFN-o^>PyuApxMRh&6fV* zleR_oU=Z%E5a;Y2^jp=77rbZCmdR_Zf>mx_?zY_v?c{j+?S?J;U+&=lK7b3^UYaJuOE(k0Rx0GQrs#s_{!_+Ko*d2VE;8p+Gvwo} zDJgty3HZMxzSRJnXbOy+NleUC+QFDcF@39<)~=sBKseg-%W?J*sG{PB2$ufaQO zZ`8F&;?0bM^W!?Z!`nnyccXDId$^tKF4q*VVUDa`kn{a;02~O8jG>dohr#mrA~JmD z**d%fJgZ}LoJ_(u&vG7F;Qy_1*4V^Xx_|tntsXz_{C=w$-Iw)apLIjna0{%r26kL) z(;2YYZqza7nB4a+Yr^X323tH2kKZxq%+$L{ulfNV5Oo2}bM~xyz%l`NBjqr1ev2pY z0Fh_z;vA8qFJufqdx&`$5%d_%plR)gV|FX+$XNhAOXu)Ge6jKwX@3!)q7E3%%+12d zjm-|f%8i!rHtJr?fK_;DzN9mga}D3n-5U6hZvHoR?fHvG^ryXTfBO4h+Otm|+tZJq zINZc6o+=MtuOF}JV47?~p1A~M5#$Ney!+7{{WfS@%A+`+Gk7M$Ua!8P$%&Hf-Cv`p zZ_8ew4gT;SzBkQh+qqW*|ItUzK0gh|ILADVS#%7|uiL-10uL!KJlP2LTV)?ze1?Nj z&O4cQ_yIB|%Wy>KM8ce@u@IOpj=##!b%0aH@14ezxUxwu8cevhK{qSBo%+eteIm^` z%D(5rQy-f_W8+!}+3!ZliE)c)q5ex!fo7xuUR^u3dv z{qo!Q$lc7_#?G95`t3Vl#IMPCd}dF%N7Rp~c^mS}jU+Bx2YWzYh%+?#0%6$<*jo2n zaatJyc%5l-LTGlvfa+Tbr|3dO+s%~W=Sy_A;5D5=w_D%FYfNUeG7fGb^P0%3!-3ob z_qjZb7ktsdemjUhrH;j$ z56Fz~&pCd;Zg_=gn)we0Gxo{LNA_30|A?OGkC_{{>3CTW-dKQlMQgc3Ui$7Vyea4H zEqYtwW5?i&gAu&aWL&~2w}bUY*cY^RsG~;yR}UP{0Qb?WtQGx2_|f|Z@IEoKT)j)q z>^trm@jLREIJ_F?ry24i@)HfimACaA!Q1dU`UUfY;gdYRORP!gZT*}#f;>nbbHJN=@X07DUkrPrh>NKOHT^EpvBW5%>E zfV{#zJm)ulddhB`rN8(xb8-2zCHDAbW=zbWP1P=)vcCIk#4<4OAanTlja>91-xvlcKT*t5fV7zS47wDy*WA=2G zj>Azjr9M3H;11h9@p+Ep6DZL6Hc4)4p0%fpx21r`rotLs`&w%=y6SoO7(99Kbt(2%%|%k4ER4^=&vP5a12Re{=V+Q4XW?Va>ptyt zXoy=$bu!-#o^0mS2^&9h#0o!w8^#Y99XOB11NY83YZwgZr>{=W)-b%xNY_d8(cK(6 z@ly-c9Ro|z#lpEO5B|)l>tuxA^W3YiV~SZAQ|C`u4Xn6x@~j=4zHEE1)3tU1F7FKf zfAsi7-8oC(KlC-7F>ePNGn`4pbH&N>4zPFj_noxC?o)I(qbb7c19W3&HpK!R7MIy5YrK@MICZVgWz%oWOzdO!)S%*ou!M-HggHQbN-TT*O5^FWc=JdHxt# zp%M0Uc&ifLzvaa&d4IgVH99Zw6Ibbz5e5|ZKgQWZ-gtGajpKFEdL&GoK`)GvAIpIa z;;b!kGO+O$&Wl%%SdO!H0bj8?eUe$$L+-aQKkIOe?g1bD8Q{Mj?ulM7pfs()VP@v> zdk?rkGbLPPRds)9eyDUj%{&(l%#tya7hbcqUw-?`b=V(UEPTg_zO z8(ZvpJ>Jq&%r*JR8CyPi(RSp%U>Ht%m) z6fd|J9=ew^MlalmxGiBC?Qfd%7|!DHhQ0jF z3w!zN&zP^V?&!B;lW2f+7OHQ0b&X!JRXAti4l=)v?n72Kgx=<(w@{z02b}Mt|51G} z>(^O7Ia}n)DNAvUq`L|q2nz?<>#}9Mr0gk`3HrpQ;k%a6OE%HHwwT$lgrA5mjW8W; zS-fSM9lQ)5QNo)R&oE1xJ*U9Wb^HD}eLLIs#kU8{>3V1%eR0!1`s&b@_IMVylU!f$ z1zo|)=7!-%1N5}0tEC6evCg=?oUf%{$LRTRupvGVVYx81^U4(yXsiKdXuV<2KYoLZ zvT~q72lr_{n2$Xsfd511z#E6)adNslH|R{fxr%o9p8fEbuk7#s`B%>CKmOBS*)M)0 z&hx4L?3>5-@ymA|eesho?>nAIX{+}h&Ex%}?{OvN_z(v?QHP)RrZ2(Y zpvAx)tD{VvCrFT@l0&&10m$$k}Hbpj2#o2`fb z1~*=aVX`{S<6sp}HL7bWh`8-ojA9dUt~2Loi- zLuj>NK>38k`#CSJx%^3i9COGz&wRTpXb{!J3N?LU=a@_RG$< z!hgcSaORzzS5|3;pU>y`?3~%S2~d>2TRvf^U4dHr;_YD zBSAWFm^F|h!=hZ5&S+EQMg#2OZvScP9y&!wDEHzZpC#usFWkc*{Tg~X`Af1N4(>;b z%AgUY!FTE|pG4PQ+>A0?fKGzR5vK=iVa9J0tW_EMsD(HD=!GM6TEy`z6v&ZO_!%|R zE6<*|G>GSjyq>!4HXEBA&zv(y)=PfehZl}>&kjD~9sch1!EV-Ry6Nzgt;56@zPP_PuXfqP_CCAUgnnC3P84id>!Q!t3myXpPQo|N;NjZi|J?^?K7a?g2iJG^ zY=hlCewmq7*X$nIk=qj)yid%ECPzEZ{XE-r(a9pNj}F)#eBDia^LML7`UdHmPSXLH z&Dk#R^E%nkJ=ZWEL%Q^MEp+$TB;4Ut8?(_|cn^o^c*dvoek5lv;w8sZcmQTxW`01d zU*355W;`BR_thz+?uP;$a7F&R!oI6sS7k$;b&cNfJnP;#zfO_MR^D;q;;XqEd3ZbF zs7x2SFJ5nXw6$L8Jfw4v4=qOLK6mtW2m9$P6$XQ7Urh~MM8`Yp%+aWwIb~B|u}CAl zTsQa*+@e0Iz7WqXd-yOuV)g!b`;OUY1AN@+BNnKC&HRJsEfU~+^RuYSBu9QF!o3H-RzHm$%4S9-g>t*H7ZNKYPI@@bOKbJ#SU8;aq*aCBc=Wmye>=!XvS6 zjDY`oI$vY$z-K*(FK_^z^eS_oc+UYixBz($^{@ExmSn*In&VZw2JYnR7tom#a72l# zWHY#jM#yc9lF>|Y4icXgV*gFz860)7hVb&SPe;geB;g%1XhKQOMsa@CD*?t)7S`#2 zVMbZ5pEcpa>oy9{oT494m{J~{?hA-Hg_snzybQ?|wb{e-zA$4y@xxeZ7 zruOg8+q2Ien!0G-!(+6vy^MZ@j~*UUePaW7M26TiG>^xblgB+Ly+-S^(>YBi*DBhg zy8jPuZ`kwC$pQb7&b|+}oSrjf4Yu|d>7*%vS;AK1z27DSb8~-%d20J~9WFcjcb0yx z5bKyYGi43*y;A&ag$eS{XjIZC)!ppn{#O1o0UzmwchlZCfN#zfI6?k}b%X1sIU*%` z?xt7h;8?>mw2i+A?@@FNUn@RV^`}WEQ+J1aO6jpC@MD960T1qG=`Gv0m)||G?|$TuFr7e5)gF*tE`td-EVg<;$K zo9NV`rx_ood^N(+y&?8fKl$p&MY0xXECsqf@G+LrQ^oyhR$H5k^()lKd53$Q?;*aj zOsB(}WNZKY_g~sS{+A!@`6q|Wyx4ZG|Mi*bmZz$XmirBN1F z=Y!ex6!@9*V4U+Jei?Pe==W|sLEbptKGp>FZ4bl6iL=!nr@4e9nHJ|I3@-equElQm z73;!xsNVAK5%@#0xOz!%NzC9`sj*KirO9>BnZ>*sE7$

wuX!ZQAmN;pqZ`p#7r92l$gS<8r4C*n&!NxP#MzEK2iTzieoTWW$Kis;WFX z`)DhN_^tOwm_;A-qS?aRu@7Dk43GusvMo5XWx9VC&K|dw)5q;bJ9)oW`dRSp-9($& zxQaH)*Hun;PB~We)m1drO+WKUTRX^cG~1&FULC#mep9bK!ZY>Okl)@3#q3SG)9$U) zqp{2ySYs|ZJnJ-BNBI z2M-Mxb(Pt;JK)p(tLVoqZhPDlu;+sTdmp@be*n!JF0>5(OX49`hj~bN8{DQ&&=@|c ze4af4FSz)3br+?_@g9Nw#^@2(?1*X`{fl_^Cg4WPCr?_I+-iy$T}ilG_4Rwn_361# zzkHlCT!ybZ1}__@Upaz5R(abz9_lJNiG?0Ij^W>Cq<@3Kl*^5@z|+9NIoSlx91&(8 z>A6mFE(|hb&C_zy0(Gxhp!qo2jY|%%td4v6vekn(3cnHHc~9}Z^6Ue7&Vj||^EQJo zf8#Xx4~}m43LS?R(do~eclu*i(CKD7I74574|60UjTO^ZPCWo%s5X11U0s4m{ z;EV)%O&tGWm}k<*IdPb5K!Eq0f}7BcD4kd3g&pKoV10_ShKXYjp)rlZm5vU=pW$B^ zALcADIABwpm1f*zZFA_fIr1Mac)TupTKe%K!#U0A%*^*(O$2P0UYNc4s_o9tkr5^% zmgc-U8ln4-IXA(WZGj)v7kO)s-k3Ygy4hUEZ-MVGPG=;Zv4z<(9^jm#LzUTAcf4WxD=$!FQV{ zF5vxbbn+e>tP7hLuhl-OF7|S64}$G{ z6bs+^yhLkb^IVXYDV6UNs0+rxQG zotvZZF4Ac=dqeXds*7PfSYW^`b0g5F;uB~Ba0trl&dg=#R+)d*u>xoJ_|tdo(T8_! zd=f7r=aJ!2@D=-n^f=8PRd=6w6t}$J@bww;>1DLPm6a-M1m17#ywl!tT}(Ko=MH5mQVEl-EF&hYs;2ana#R1PNsy+DbI^$P&qjY?iuy7 zXlAf_EcR~hfD@~nY4eVEPdQh0t?B)_eClX_jjSkqJ$?-3U&8V+m+Rr|;CR=DZHAse zbr{QERpc5-*WA6aiS8>rNI!S(1RN&M{B#$Y#ws&R-?uNndy8!4WBMB3r;qT7t=(K? z9$J`QRQyupG@@V~&1_I7ZwhV4OPB00>$_$=PtmV2zdj4^34g-x1MsmUVK4qX^1bvz z74hW9;Wq}+FqQup0^0>R6GX`zOsy2jf27b2y|26gb zl-YAH?E4?+l!U8%|Jhx8^3lG71%LPF&**6R)PDQNpV^OpU`ELwzhy4h3r92FhHt%b zYaZ_K9kx}-ZAb3C>kF8ZW-n{@gwBE54<;9tnK(wi^&);u&f{b$ z{0a5)y~29x+86id0+R>_3jYnDvxwJH?m&Mgy?c-|?17pY;^8dm zjxe){bEAv=+#o%Nnkl98h4d0#OU)ytY$x`lM%8 z=qp;}-eEsipWY~IXcUje2t55DXJE}N?d&{Zt!+oZeVl{oZtAB?VMu-S9{l}q&LQ+Y zKl+sLpPzjzgl}3LN#6i_F?l@4ZyaM!!9yB{N7Afho!yja*34|pE)-sm@fj!Sr-$a5abf*Xop>v{YtlYBN)?DO;Z(q_qGu<@kT(y5x8F z!MVDVoZ0d5lIXu|=&7JlL&)$2NyX-+7vo6lmlfh`ReLDGXlAGA^ zf!&xbwFQ5-1>dmEue+>QYjC5B=sWApbbEES+A194emgpA2mYL^y`1myfw#2bIlJo2 zkze9jRqpYirNbVcZnOtyuh@O~lc!gidw+%eh?gE0JbVXq>RjJv?%d9}?eVOrk7W*j zPX=#S9uJ!`0Q2y9E9lGH_^$5r-fyrL9~QyDcv!TzZl{vAlwpr$Zrf7hRa-rB#&%CL z6YC7x(rNz99Hs9gbzBIzY4cA%hykk7j*Ve*2xj}LUC;B4|lTXZ~8j)4VRfDg;J*?cz0!GR#htnc=DT1w8|h}N zr&Fh~6&?NxpBbJInEQxF{pDvykQ!AFbQw7KzF1(sReoq z)uUL%gQ0E?dFCqPUw1^J6*Z)bL}iEYJtNwN8)boK;7o%teMLY8xac zOg23fvA5Ue?H)Z&w{GAcTU*0lN@rj^Y2%z<#_QNl3wY(Xn2ChnD^F+F7<*3+{z@1^vk{bG z9O4>jRzjjeR+M#fl=aom8Yrw2Cx;m&kFO5?v55fwo3hi1wz@rUi{ug)x9JADy=*t% zn&sXKz#GyH%(K}IchQfZwFf?09Nua`uca6FBOHSrt3rxMSJ3-cwd3E#@$_HO8r=9-c4?cdx><@a2|Maze{mW0t z1ixn=eEI|}c!_yvX$J$Q=xa-ZPt~JQfeWwB&e%5m>3#HWVWuy>(j3%J(OuE@c9^ZR zHs2)~3TaKc-U{DF(mj5~QQg{4Qq7=F(3{xp0tFBcfR6|S#qh<$c4)(!5_Mo=GBTnyhKWqN0`*MwYo%z;ewB=#l*&|!Goub1B9cSs4uOUx2p}dkK z=*!Lv{O5&(6JI(sq}f%c?b@Z+ZGesi&8zQY-)`s6y5Q7DIUj{NhpT@xD(^a6dI(O* zjfc(MPNy!T(>mE1rG9wI9>W z@f^Sl-mhz-1G?SGj_lwYyw}EjIG@)Zl<9U{ViQP+1X?4RN`Q(!=JZSJ9>tHmn# z%jUor)w4&@it25h-iCF&3M)DG*2pk9W4CR3$YR3VsGD%%DEiTvI@{pq+J|enbLO(+ zS5!{C1y9#>05~*>}e{M@4!5TroH?{Gm}W+B7{4X*963n+yXT8rd##x$tVr(2mi;mu9wA zs)3mo9o^1MgmvEI+SyCa9ym8Z|3u40X5GWR;SX)24@(^|efYUtc>UDF5mru<{m2XV z?!tqsnHSPfqFK1=p!R&c`)E6H&X{p9V5I4kg_s!^Im*1X3zsZ^@~G9|Ztl6s?78S~ z?V?wwjZU5xG&%fNYw&n$^^N3ux@?6EN2HB8Kk(ds@W2RNe?c?`>9!-Bi+p&mg1t=^ zC({w*bBea|^}$n9cuQ+umrZd_Qg&6mpE|yz9edyq#Tiyxn(>FxL86=p-IAImtQ^RA zg);zait-PdnKGX8*%bcNad?$tj9C_(e@fuQC}(3|l$;iPaUwGc7Lrex?*S$ZF$cy+ zw~W(&ntpYLRxeDE-^J%fm1R8ND{in_J9F+%(pwDXPzHW}h(7L!dcM)l#^CjW zbVRySwhEqG_l0aJ9 zb_X3#Ufu&1y)A8HA{G6j|maqkEx594>~?}y8S)9dr%{{*}Ca-Yd} z6G|(m!y1jhtdskq+tDlVLb>sifB^^b3iS1#;2eI|I>0ts8+x64g+3H?qZYWR7P@?O zKG%$BFXvx*k(>KpcQ`=l!7eoRP!neobna<5{xSHuS@^j1Yv8|Y_{CaS?^q-Kt#uae zfdfaI&$5QhxWGy0&e+Up@*d#oMeh66MtD8E5*23F=$yFB+M)c{+VOMFGdoXyXpzrX zb9&an_f>MnwX>IPIx)#k)8m14FAu| z=caiY${1uT=-BM>-N9pg56<>;Mfzse?9(saw&x!{w7KOP{-ui3>GH!@1LQ!J;ZBu=y>NIe{jn=zf93z zr#!JTk)M3=E}l3r>>s|g-~RdM_QM~4jyCtcz4!6kws5`5ykWFy*89nY9Q=2ltYq2g zviahRr_4QjiuU^4e)!$z_V@qzd;7=#_4oGA|N9^8FMszvGs<4tU;g12_ILmAEBpSJ zAK04@&~0zhUwvnj3^Q}&$zZ5AElUr37(P^)u0HY)z2xn>(egqe=I!vg?_ICi<0rT5 zi!a}@ufCy+@0)w}^4m9^{K|XJwwX_d5A&^c`|KqhA>Y4kFaL@eyI;R;2Xz13xVOUG zJI-+AZ)*$8ed2x-*4WtP^WeUarYcXuHRc?)_Q2!C;8O7*Wa$X%M`vhdO}+$|)jZ5I ziq0Ab*B58-81T6$=bf7**9iuU;^)&mx>2x`?op>(MSK;wO7o1AF;quHNE$kNmLD!u ze3U%H>K6Cn!|xXcL?`+8SHI4AocA2Po&ByG?Yx~H#r`C?3cp7;XY>}hk#02RcJ?2w zHR@EACalayA2a6r;I9Yi&(S z>G*wo51qLp@*ptZGL!Oh{tY`_Nb;`?4;{5RWj&`8&iSQnxSl&tlOHVR;E&I-I|os;xT zx^y<{O6qDlYyIqLF7%;3xWNu|VmCaC&Ydy3=Hql(=jc(9uPF?# znvy=145I^+Rfeza5Qoa%EPh%&jRi6*F(*3%&(8U)M5e0B`CuGAH3P4dMnhAMQvC|6 zXlOU_*r``l+U5kfpsaH^^8?neF;j^St{UE&0(o9}>ech8&rH4J9_Daqy;84z318hL z{NF?a*pj`ic#`hdx(imLpKJ{;&N5od8vSwGtj~vh4|xH_2kwgFyW9wW)@%o?`)k+G z_0V*x>Vami=p32eCGglb*l#D|bNXJ?VXXapp0&M3PIRN586appcg{7~O}NIT3w5>( zu2|!}Y|$Bbh`##<=e661HO`it>6Rk4TE*i?Mr?&lO@)4tB!06A4N2GqJazGst;0F2pE!$$2!7$hMcaZ?xOt`3Zb`4^ z=g)Rtel<%1zB>fASKcwf`XJ3#9i=(Wy}2oRM8?7AW8_<>l&3?_#T#E4Cdco(h{qq_ z3(sSaPRy_eoYf8w*2fI5LAvUgpPOm{4=K|NE}H5BN3y3D`FToL;WWUlRlzK|d@x6|LFI z4-Lz!!FfgLfi+1>fM=BNjdjU&CClGBXu4M`D%xX|0Lt0p^=Mb=qd>Zks%P zhAhq{_+7G^@V%ApCM$tuGhmV^{8}7b9s>IX+3$lroJaX{%^1nxolSskbJv*X+77Pk zhMVTIDY$jb&=>HACGcSS$pb~e0aeZ-OW<;c*XiRLgWJ@7s`YtF8CagH5@((na$RNC z3T1tjr7g3+73rJMGZe>Wa-5B@!hTXlrWjA&f zZGyR>8TN`W8fyWrQ@Xc$q{QouNTWel=yIL6Rxn)4;5mo4(+m^&i<3#seLz!3vr|U0 z4Zcuw4ZN(i9v7N1e_y`oYj}-2IP>@8C6$h&J^;;>4xmwlS%;IXdD8m>aMFGCN6iCI zG63%EX$QA7oHWlxvfo$u{PF6gxJEg$o9i+#mX!BNtCQxugK=Wr}-Yl3s78 zi-?T+G`Vq|HMR!e@X6-SvQAeA@CR`J*WjYX2~NERFNoiG0l&+10=y4yce2L#V%1%= z*xbaq57S>`Mxq2 zclKyyN90@6{x$?>qIqNLChiOzXWwEb0{E{FPIr)fS3ZbgvgqpQQTDTA@wI~E`_=&{#|3%d|c&R#65ZG z;nHga{#|iT&tA}nLl$Lke~o^e75mkXKeK=NxBtcd zpa1uN*#Gr^|0|i0XZGRe%oh3beS3&bJ_m1DrdxZQ&#^W?W;ei=>Yw@go9Fi3FW;x@ z_Z}GXfj#}`o<08H(7yh~yY}6$=p6}YHKRe`gfTp`o z5969WdVh~R^SaZ|r}?^?v%7a|**0%h;q!7%@7^5UI%Tk0p1G?PJXvF0S7moK1Fjv- zq>X)`spE{(`=+^hTC0XQA6@IeU>CZNSpC3Ht*QT{gT+$v95EL~T|HxT0LH{QqX+9H zEouZ0vodTW31z(Kt4^Wc3;z{)6<9m*Eojz{cr@u6Y3|<`y(PnRCk%oAG(RWEy)eM~ z;KKVn%K9NsWFLE3e;nU1d|)3ucn^N-4m71EyhfemKf1wI9yCa;JL2!uu`X|^JV%3G z?i+OXAYV)8C}n=dE4Fi%Y+>yhNPty2cY64_2grh|kH?=u`)B`XWDwKj?#fyG(Dbo%!#`efAG4Mq=UQQ3p2O;L-s#pDM4OO?t&W&XUh{qEN13Br zhjZZkB0bRa%xPF=zV|v^I}7xyE|8&LB45XAVkLuLi@Z3#JN1W4KO4deG0YiA^9%;y zhSXIy>LMQqXREzskTXR802mcsQrIt@;=E4Zaa#E@y5bV>eq}t#>W}f4`mBrRs)fB+ zz9SFMQVQRLKFd-3+T#DR$tJ6yjnBi`F5zk3a?v#mzqirSVTbth9@Tf*JM@g*8>BPY zJL0_7I|k^y>tdD?{9iq|0v~pSeYYQM+BVEQmf)I*~S|#A5{e&a-4l!bH9S8 z$QO_S4c9RT;1YgoFsJgq;(3(2Sb=xbOx*jd_jk|M!xgeG;`^Ruy&eN+R=Hp^yz27XNLD@kIvxDQ~1nIp0P=Ki>qWvX8FF#{N7+6 zK3vM%-e%eM_E-blud=Ob6hjlnt4Jf120)X!;vU+?(YlG#lOzyh*w3q*c(qW?IhEr-(+(bCm3T z-BM`e8M>C$SusQRS*aP05MEfE-z0dj2o|j1A)LAfR|?L^!pCVISL!T1%Ut7GxU_Y= zm$Lyp|7f`4{5sJ8l;`Zmlcm|`ns21Jz}-oFA{FpYmHt`jR;&j>^y1+lo?V{tAhS8* zU<7#%*YEt zT*cpy|622ev+VEcWr@>862=!0AP?ccb`kCmo|ONeg6m0=Wl4kYN?_~>JfRi#`*C4A zIQk-)piC3@{Uv-~^~`hNH3J`<2LDCTC)C}iEbs&z-2@rD8hN}`G}8GT=Ql9_j56kU z3UhELasGZ}2+f@{?kMLkBnw&;t_<;GyBH+SPlK+&vz5Fj5v@kmhiS zW6bh%N$*abf0c!~-PU7oMq{>u=X41SxH1y3wPAR`4!7+OM(tL|sNHLJ+nsv&(xIR| z%9QNA^0eKXuG;Oz1>4=(u*HR0o2yMb9Zqr1IP&dJ)R?2qy0yU!sO!56%=u#;DA}eY znsx%*p!INU9B)*C^^vow@&fYywew83q2so3-jxSheceg$e}UdV<)k(DN9W-tFk8zI z*~lUK`MGBX;cDB+?X+@k?cqE=3Ia_v8qlo%q=Z z*H1H}hsj*}Ik#jwnK9nMXT)=*%y^M!x(s%&_4U8%YGxixzK&e*mD85%YOpf>0pd6zI#sZ!wQ;b&6(FZ2_~4T zG6!_7Otu59l66t@+|`*PeouX0nro`=qhYRXAGrMRpB?;c{WA3=K~>nc1T>?dv~KSKuw zd4GQq4T1AX5YM*y^rU4ju1=6Cp-YVJNX?K`ADz=n2QH}0;q7COE0Wt)XYp{Dy$QdA zco}uJMbiBL1bG7f%~%!vYdLHAd7mYx$q}KwMp!!%aF=Oja)j_dCRleJo(b)71YSqI z7e&t6H8LtyI#h+PfB5s~POpYE(eHmtmo7QiXD{x6)9%=x{`Qylw}1bmGtcZdfBiFO zrtE+Hw|}sI`EUOj-tb+#lB*7e+JCT4x8WUIKUjh{tJ(7p9>8N_nv+6i?{6;zx#k(##8(A-+p0#`qSt3cmL^o`|Ce`W#9k$ zWBwjr7aXej4}Gl5>fl!gjQnHD63DZnb7KfhJUL0{?e?@?KbW+4pRMELyJ1g0II!KD z(`dU>wtI*#>FxyD{-o0pw|ltaboR+#uNh(Th>O!v_l+_$X|S~V73J5{^V`9**wA?d zKK%$DwG(*oxCiiMv<#iFhW;aV&2xft9lbU@r@lB|t@(sA8+U9W;Pjiw7a62?%;{T6 zfw}OH4Z_zAp&<^#IfT*f!}ybg15@aT@(AiotL#CT`&j3Qn9c$C>zuw}{6Xq5apvBk zeGI{S^rPoWGaSNyHpIX46b7snU)*K)X=}z~cd_j!PCtMPT}v4{b#v=^7((myqM6Bi z9OB<5@S3W(V0;#DF3*LYoo+Cdn{#^{ts@D~UFA$u+pO^n(sMc)alCNS$Gv3H0{9II z+>eC}KND-Y2h62TmQJ*$Yj7X!_!$Q1Qp-*S>G`1_2(G;wY|zd16aG^ldJf(_n+lVw z=ZpmRI5q1A14j9k8Q@D9{2lBu74UfxPwzNq1NvvY@cn~4b3Htl{hZCbKDZ#fBXRa1 z;XC0x&4lu?e|bFYH(q*Y2V#AHbO%yms1d96!tVV@?zOG4p(uOYA?3V1B*l zDl@>ATA2macFn3C@Rn$Rvv63N1-eMyV4E!89`A7jJhXTo-awhtqwtUPLC>^bv~|{} z>nnNN-Ni$3oleIacueqW&Q19pkJSd}{57N>QV z{=_-3O%Y8r$=)GCfn!6g zfe~^=Q9iFE_$bb~Gz^~|B%3+Xj{o=4arX3MHcs!(7&yKB+E1*ERy=n4*#Epf*$#T& z+;q%v|@oNB%GeSln-E$3Wiw_JgS$@DQ+Tl2UfC_uR@Lv|KHQ&(& z_lcK``}sEA9@}I)r|}nhkIskD(2x)0|h~#|wBR zGu*ckW*R5yx7M7yyUDoSDdhNE!JckB7(;mOdxvec#bvjScQCi2(+*GKZD{Ae(Rv^H zQucOr-X5;6+y0GhTVI){Qyst6>KxyPeytRHHadYasM3n&X3>erxMg_{Xg*?zP1({21+IZ~2;Wp266)CZ}JpeBq>J=tU}!J6iy& z*1)teW=EAOnuU<(j6dPbV|wdt`ik$}u>HereBdk2Y_3ngc|xcEd-UYi=PJ_0wZ$5TCmVa}Xk{C(mD zUGR=>uws;Tq8|;t7q0#C5dL&L`L1NWGoQ8}eNTIWGPmj%>hqj+^0w+2c9VHe$h%E< ziMpYaV6hCHc=GfL1Lj%ls!QmjOZY>VneB;hE`jgC>ET6}(`>&;z8P+YEFoS#^>ZlC zBm5^XxVp>K)2yDB@f!2r`5I#@bj>V>obRVj>eMuvHrz{bj+_;|)8wMx!IJtOSu%v` zBo+=mxV2zkefu8Wx-Y zZ0nGD61T?aj;k?8VjEt$;^>mfO~`|xS?yVJ(dv_zzdr+S5oeA-FgJi#j=2wRI6m^K z;sLvOu6m_sx=&dhn6R<;sI?4m#^c%Sz_;OslOLO-gLn>p8tqqI62gDFzXExDy7=$< z@q`b68`R;XUiVn#)%*T?Qh)X! zymvqEUo#6`X#FmHPvWh*(RqhBL$}epsyQiLXi>tB13WVh9;ACmvqC+i=;~mmG~AwM zN|f=Oihu6m%+^ECaB@6qIWY3}eY3g8nAlAVZv1LTwSawbu}KAfhf2d{|cg|y?Pl-^x|i>*#EFA**@lA)`N%%(bk zD)aDi^Z3ZCJZogD^~|YZft$bitd*3#fUZ(od!DCRv~3oYRA3=acA3 zX+9Utj8t!va=j7Gjmla{*Y07>kasdPHDZ3erau0EgsiS+(8THR3~}wH=||yHGr9XfB#uGi5a(C5I`>NOc>jq3)RxtjSL>yO#+#Urn}ec{it=w`}X z%&^A`OYNLvZpUdddvJLBZS?h%xw>9}n{GJ+AIEwRk1d^gt`$wXwb`b7nw)IJG8%Oa z9k>S8T0DB3nV@xe3GslVCoZ5fPyF;X8#~F|v#V!pj_bIwfS!v-b8D}R-T{9*i@u`_ zfZi`>xJ9&^4Sd>5V{{+D=Pz;Y-Q_bqU@cr957-LXfOYi6m8%VS=^AVYZF!EpXc~-C zy2@U}eyKSJd3Yf49+PyKO`PX@gMp{&_*u@PKb<(?Xr2}P?Bn>Avcfl<2h_i=XDkBe z7n^`%1`Ez|zf6NGX5hEfX|dk`Zz|6^b12rq60^JybtI?BB5QxmwldEUFG2AN-n(Y- zRU3OQyvi8ba|OIQagkXb@SU?K=*qJC29G$eB$uI!4{}OY=O6-&cRQ zS6(8{w8Om5A-D%|)9P#2x-G6k8nL|pKF&@-ctd5E;`k6UWJWblEXw*f3K!&RK4#&@ zV|cvaLdk!W&++?)({%WqvCFt{jt}k9#1A-mU+iw-h=XC@10XfR8R z`zt`EI?MU4!kiY_(Qhs9>G6AN6=N~Q+5vGk!1~LU-!^=?Y z>!X~Cr-uw9pM4tqo5q_wgswTn=c}%m6gj*+_eL6Tah#tg2ma21%jaEi;OMt^<0;#Z zG9x>{9B7XZ%*xs9=ry~2nG91C`KHz(TO~)e0Z;GD1)i_jox|&P>tL6;vCLwxa^9UT z!e@?H3XhsPe)ISg)nl%1VfF4t(P`9GH_Ulc`3&{F$m5mPy3ZQq^Ric=&k7$a$5oRD zq#L}(c`FWY8KHZ~=f?ZtZMJhgC+!0JNduYeF0^{D=Hh`HNAVy9zSL-Z( zna=Q&C#)jPzrM*<8r$ul5idXsb3}W&rXwx~V@C1c#?aIAVY1OWhw(nd2S&+@hwznW z==mInN3McNXE=A1;XdS_&{@9B&!c(OS-8P0&qR)_lX5;YtlP80Wbw!xi36W+r6&e2 zYzkF`0`jL1U5;+OW{?V&A!5tTg;GJq+51@{7V(Ag7&TM zz``^$t5=y5ik@6U-^`bNPNpWseBrf?8T-`_pP{*aX+QqWNA%M?1OGi`PB9qo$M?xg z++v0)Ili0o_BLAT6LJ*J962=NZ-4X5(Te}$KmW#=m7zJOA@J`3zP{VJx zX>UJWv!@^IfCaDHdrx?OSDA-eu0?{Z)KqdB=0?Vogy-R^2H2JPPA@4bduvH6!$~Y0jTFOK*w) z2>9=H`fKXw|7CuYyqT<}ZRngWcst~|jBpN7PRSL=KMnpb%m(2BePBTHY+xhtZsGtn zKWzXXUN0U}<@krufI~&*^DtjcvtHy6P=7!c463uHesyplo_S@X)O#cRr>5%^R%PB(obK}D+ui2RXBD^`*QMs1{8oaV00e&WRXsCmBEDDZh zZbXvxFGklu0)D-aVXxvk3U5xt6t)L&#|`8pb^#hOy?_fPOssQ z-=DCVEj-$q6OJDyQzRRPucZXnz6`H?Yo6K5lQG)>7jAJ*UxO>z;taV<7H$o%-5T## zxxq!aw<+{Y%{R?}|CFoAaet<`=aYB`a_pBGvIpa6mYRi80sl?D_PWh*y=N|=7vo7U z)T5PhT|zw1%E1N5S%l$kHAl5pAP?C^r{3AuZ5>_t27Kd2KUx+Z<2BCz+u(;a_{UlH zJI!fGwKL1P{iG$ybBv=8P4dctOR`++JXmTHuUw@O&XD&a{dx52NxId*gV)ex@#q!h z1tjmJuDuL+Ad5bq=6)1L3iYD%gC)K2w=VWy^-#w0=zL_5Q}F6RxT6vFE+6}gCvX~F z_>6OQ5x1?3xYj;((gg6w$+wv8M__JchP7O$Wvdowd@Dv-AO_`FVx= z3g`+2cxB~r^PC5Y?p~Y0-!%y)5OeqT7hNwmKxpG~NVYp0AgUQ&5sH{n?i$Sbe)yKKLk?#L@WcI!MCvXvRMzJM)c z(Z;whH2X5fHBw))ryIS8>l~oJI?ei}uDS@iq=!CBH+)|Ntun)(=kQ5q$=g@JuX&!a z0{rA6d62hbIeV*Av0Iaqwi#pXX@?^}&F9;|dFa}J9bV$TJ9^n>&o$Ab9<-SXK6ZGf z`GqN4n&*Y5y;e@!VkJXI3jNjOVDdbFWqRf{+f98@@@r|1rRJBZw>QE0Fo&lk$MdB8 zko4E(o@UO%jeK6$;64X?@fd^e!{Fah zbXgxhyf{3*e0wuw$CTe%A+NoqUgjpQBiHkjYoqp@jQ+zGdfR)4Yz2NVCx0h=v3fzA zJ{9#A^VvrFSzF1aMLY2}@T}$0u*T3*%jh1O`I%uoEy0qIxXcXB23_4rWhUcE2zz{-5Z@d@%2AgoUtpcnVMf9{3jo{x{5T*U@(BMazy*IeDnB^INLk(CwNA*Z)(=ca6&mTFg`PE z`y;Q`-3||0Jm)WEP=+{jXty9Yp{aH;PC#Q-F~pm zY=oLkZIFfDV1CHTIGMx<~K?~{*xg1-9_ z%=gTG_?xHB%fWzffKNZZ0e?1u*9u?UR)Tq33-=QV< z;zXAF9nGEhEj**1t5JAv&G_0p82_L6@BL>7%+Q)5%Yi03js^-&Q6Jn8m`(XhWd=4k zOLq6}g43-jUqy;D)daLx3o)4e=5<16nK2%25&3dM6ypO$D z`mJdZlzUSi(zY?Aerb40j@>{T5-d2lJ@|B`Ti1!fBL zlcyE$m%s-ozmO+Qb`D<8gKtN?tTXEZo=Y?9hQJc?W=Ly))jxzMls!sWea*K}C#CR< z`u3b$64%Jj>}d6@C=;trYd1P@oE&Mcik86pt&yjc-&Gy~eLwM(el*Moewqx}yI7;& zo4;48(tpI+LbCFDd8Pm z2YC#lcx40N#nAvf8N7~WJTGqI)8bmb@z%0EeY|f^-nwN^;d{4N$H_RQ9IPvjO!IQW z(*dp(TpB;4xQzgshw{taeGS&!afD93Mr&(D_aN)OzFy~9ec1zvTS9ESX`F?wNU;q5AD zFq-XJWIxbarP*oYc+te0WZ)|`M`;Y)I>ygfBC{RFvo5Z-jn7iv$E!W39RGC^O+cM? zbNHC%z)s4vmhccK;W|gTjxo-kLDry{3x73p3K!TDmdN=ous=$(oN2&2*LcOzUw6=G zly}$!V{OA-EaH!e!!`NP*ZNuOH7`%+1g(L}!St|p>fF=my95UfF7(sMOP}Nbe$Xz~ z)V_}6*4uu}TyO;=cpGD!ZR6x#r1ee0@65F{o8~mB?{6P}))r^?IdI|v*CPl25TUzH zS(Rltsx|)o3Vic2otrE0>2u&V{r3!K=rKOaY5sh=wb9uN)SEWLb6DZtEQ3Mhd9ToY zJF}Xlr-5F>6=m8&ct3qk79fq+twL^K2QB0dI>tWznQL_YZ-9X`hiwO3z5{nUd+xNu z=`Av6zD5`EG@N7}T{nXdERB{Tf495_X=#giq6+L+W%kVq+U(@0RYB3B3hKE@Lx2&V7ZL^ov z(9*`>E)rlraZd#>Vp;eT4K0T!s)(MSn z6-VI}qRfp5CDB^p1QYN!LH45&JiB?;m%=#MEeAJ-E|7x*DRJHOTnGc^ly4U%RUQOA zSu@y5`1MP4hKrw?0>4dx|K!~(kUh-9%O~;w##kr9{QT;IDY?|wO;+d9RlD29JVD>6 z9r%VF59&Oe_5{~OebUocuG*UJzfQ92cpi4Z2{kZ`{@uZ;D|A`Izqa?<%|zS|z*@_6 zu~g$|9N^Fh&xN?DIC-TQ_h=OUtHjwQi)S&N$N%Mu3ZK;6$O87{}-~fy8j2SXY z3(fSuG}DFTX2x`Z4)TR1+YHiA1V>fHySRGss@*)%Wc%=cv%Tm6Vde|wn9Z;<;rP*N z%=nngCT%em=4>!x8v*#kp?n7%&?Hg76xA{haSUsrO(2dx7NcMi|4S? z!dU`e?Pg~O^M*Sd-^Y!s^edCQQs<(-f$Uog{k>?e?aVhA_v0GJ-}nEzR+1RjPm6< zbNR@%E4N%o`JA4EsQjMtyK>IT!KbNfKC51eS+C79Z)_ecQX}u9+0#>aZYyBTEZT0q zgR>0xd>Kt+?i@Y{GUpTL=qTchJC4RZ&hswcg1Rca=-3g?a8bHhNPTJ2V}&WzX)GR6-7qdNhdO7Zy+tSZ%+Y-{vq}9LNwBjzKJ=?F zMHIaun4^CQzE62pVY?VOJB3cBJwAqyQEOWo4nniE#Q(?9NYsIG{Wdv7L4w%88Pga|8o&20;WO5hOr@Ia7fORF)MiTb8q3w#((Ja#eM?LRakEcef5JeI-c9F{`AVhe!u<;y(oW+ z9t{5b?Vmq&`gRwr8u9cN>yMK?* za%+*fbv5u<3pnKnK8QVVY|M0Et-1upujdS|u0tnpz;*?9Oz6gYpm`eV ze;R^g?_+INueIj<1;t(QvvRY-t9U$1oRQEb#qT*@KYp$>7N@rml0QQwTbr|S9a z@Nmu{Q=+`a0Q<5Fd?`M0EH}!2z&#!Dqq#;LJmq9N2FMz~j}5Y}`#2B!`K~-@J31rE ze+` z3r*RB530SJJUSY>GJI{UHy!9^S^AV0@lucT%#D+y7!4ewg9A>J{8DHPp9`7WXo-E5 zxf{b^?VfQkIoQWV*J2FJ7v#_QC+M!`yX{YNu7E=ypo>rMVTQBDB;VU4oIsH?ceWWW zq@8mq>x;5-A@3!Ng9-BdzMQ^uaI5%Kd3RjAht~c>=maOMt$q)CGdvDhV1_-dN+)f) zojDKSzZB2Chwm_qMl;$<*M1NG&K{qkQ)ZUV(s{6S0sTwZWR6_G#_^N3$(mV%OPNEf zUE%D#hJNCKXKF;Ryh_HP0nE_YR)^+?X8@l~H#}1Z99%p8%y!PaO#{rHb}>5(JlewA z*U){?8rlw7dmH-%Jjpm`)Drr|ID5x9`d9(3ZjrVB8d;P(cn*dC5?~XZ&nM93BKZFO z2lrT_@t9RP3$INDnQb4l<$3h7vX6`|Gd;+sWw?*jhf)PMOrkGqZtFN$DVxU+HSObC zz*~bCh552@suPp&s$`{$aKkw=@OfcGp7#Q{Wt!)A$LF>?1B14OAAOZ%HJP@IXizch>3vXZ|qXjeKNd`0i3@;FUA<%#fwIei0l)HYG<7PXP=z-H3mW z9LFlW?IQoLbdfw0c?-=6j)4y|VEP=~*K|Gm9Nb6#GQ2duZx}tg=M3}K_`Poa4lnw6 zpb1YsYgm$Ja*X>%YgPn5Rrm^gAs#~M%A;rTapHfIo+%Ezn+(7J{zMO4q#teAk6&;U zukIk6wEEtZu?T_@;&9`_dShUYI6Q1b{tNsoqp`PpjeoouKL@i7nIY{#=kW9WW#Ao( zXqob2CeX4noLO@0xmhsjSPSf*{=B-D;1x^P;S4Yqvh7kDuPAe_-~ucCJe$4nr0DW-7aSzHapjJsmuA7;IeqVNiFv#bvtXM! zID;bojy$|(>LUHdO=QgQCC-BF*4hVc*&DL8G3NJ9FcTFHuEcwoI*h+{4<3oDbe+(7 zKF(_@OtyiX>EvXJ+&$;BlI=9&YUwh+}r4({TAK3pI&7??_SOEw2t^4c@Ui~)s;XY;ws(Y~=pH@ScdhwLQM$cspR~EaIb8!10 zIY~TQz5G0Bi^}yT(D7p>bXn;I__w_H($xdw#?$WX;c(OAa2D$L4Kfo|9T_9|#QgY? zJoHMblSO@N3D!n+4wh%bcogYq;d6{6;0$l05AP&K%pH{_3^; z;)hS|tDn4dvKHTd|C0W_7xpzd-_O5#XrKLvUg{rq?T0^u1ON6pfA>4Qo|6fF*M9iZ zYkTslW;2`2N?gRV3(t7(8Tr~bH_>u$*t@TH&>+bp#QaW&bBl+Z4A?{Sje0x>91Pgp zjUNeIBX4f0oJ0#6V~<5A%+RTd?%Bxta=G&ac?#k5qs&eqXAZtv26yh>2mf80r2B^+ zMfUG5?RkUb-|^Qsz#(02KW|sr>xMY126^87=$*=1ds)+^+iGo8k6s*qek?QOcmQ0? zA(Agldak(Ld^HA#g2n*%qnXa?19y78`B_7pqX)s0%E2nX;mnj|T~)WAI*~`w5!J`& zVLjFC4E_Eg`0)YGd&(ZjYpS^|{ro@8a1b9i5Jvap=gVsuv8&Ep$UuTw3kmqVD16N%&)Yn+ zfUiobNtXR2Jqs$;gULC zoOiX}(L2+{elfE`LzlRA!g0*t7pX<8#yKj=IZty6HUDm=8fP8}_bDEi9QaRKW`yrh>#>(Jjn=go zc^#d#k_8vMYCqpE94nYueGuGh&A3jH!`5t+9J9%$>A5NFKWwF=$LNS*-W{H^IkF~6 z@Qs(}QW;w1CgNxYV~zXCHlD#ZkEdzhemt0T&~(w!0}h=)Kh4*l!e2;s_9#8nC(x76 zqL;(3B;cA7d{=37$Kn;bfACz59|Id6JZim%_SseR_T$w$ zW^R5@h`lesIuqiIm*Cma9317=LUbdK1jyKPF7N00@iJdYId#nm(7YjKB$Z1@guvwF ztWvBKn%yDnHwoXC=JRLJ^oroO%0RExf^M5j2c1ku7#>(2g&=1P%?t~GH^OMFC9u=R zc|3geopu+#?fJPT+iB>s2W>s3j!3;8v@wtH>J?jSAlHK)p!q8^=(m+4hi#ef@rK`T z+X;HaqcPhYcH7M^51lsjXX2%u?SyA+<@>?gm^csitE1ZxZf~*vGCDsTAK9cudPyqy zh9=yt$~ z+5_~^;_r(xcM(rUB_F2?k9&;wK6{C7lT-8_@%c6{<74dTwW$&MUcijf^V4txNzNn* ze8efd6A}6$#xCsvqtfv&uL94yW~S|u(^s~A4PQw0H1{n3t~`dfjWc8)c~kbrVY~z* z+($w1UjRH6Rz?iYGV zm3;od;VXLKt*_GcdK7J`4u96Ut|NA)g`6h*d>i+H)2q{a7~lI@XUT3 z;sWFFKbof?{P!RK`5XI>|M@%n^FRO6{`k+|fdPLCCj7De41eAy-#oT2zI#T$%1itH zhY#%MzkXxC`pt*-#n+GQOZ~rZ9)JfQ)8+Tn`L&O~+Ge)uE&KAjUHV*ZICIWE`0P4( z@Rj`z8iCg{-5; zNds=|hwp_4X~kdFtv)flfdTSA(slfJg_X0BcS>_!)TuX~8+0<%>JQiVu6|5)tIAs! z$8WAV(waTo<{@JllM{Dh-o3xGd`2g6> zonQ}U-xK~5HtU5y5%yEIPqTS6SHsDy;8*nG)e)E7gGafI^J#tmDY)y?WOd;t=<^J4 zj!*_&_)l1K2z^_5BkdP1aF{xLH22&&L$JoU$W;u3jpTXjA!jrI?>P*1Qs<9)Ej>PX zCDv|VB;d@k@#5F9;d$Z^wg;1-P6oG=_tM&ya!n*&GXV3Yoanl77tAqe39W< zlmAcpZyZm59RAOn!GD|L{bt~KO3W|fJD))Z62^Ga>9U8dJ$9RaUqv&TV~s1}U5$xn zagzu#uxThKf;eA5Nim=yka z59{?XSZkDj9|h-((K}Ot>zYMZnXV_J%AZkJUj={LI)0fQdfL>dqVuw5td6oDc5(i0 zh6}pXaKz4nJ;ehG)h4$r>uVeSPwJ>lBb1@888{qcfz3>*d%a({@IB0H2vUzp+^ zuc6!2IBTpiFKr#YY6UG+{=P{(j5^E6OBZKt9;1&jKt4fTyXu^rTV^i#e9-2qK3iQJ zqnkbY_8Eh}nw;br#cLwXH_!c<Kak!Z#vc&^7i)%{*6}R5y5`;$IQ!<|nQHJi zGjKJvQ{;B}o>sbA@h>rJ1f6h}{Z;=gvFA<7V+a>mB~!83c*U03-%5DM{qU{>>5erviIknfpl|J>@uS%^mPv+y_Hw|9B?m#(Y)+ zM@Psp2jO)RtiKuZIca>BMb1Pkc=v9Dv$pH$AtZaUdiJ6%)i>KNotF>5VGrO))z`g4 zC(;e@);jmlr+I4>zM~0G0DtGg6+CjSz4+wt({_RJ(HwK+ zkEYNc*N>le<{!@;hPOUaXA3;jWxRRv{!NloDx*ir<9G8|gWWvLoZ3rxAKKscL$3|= z+dACS0ykhkl4101^$=t;_~|tdp_N<|oR`j0OW^%A{0SRZ z>DlZZBGbw^ago8Xy_HJu@k#9Xwimu(5Gx60?9e0V?m8c)~|{PGalq#&AW9B*nGysOz6<1S-sua4B4B67NTnPKF7%zbaX<1@Q0k)n;do z?;1Id73uYG(evHt#_(h6m>eU+n>lgFvUERJIU|hW5eUK+2YD7e2lm+5;e(dON1Hmq zGgYs166Y+Qc^@7e@hR%G9i`{LxBigz*B^$Xz`vyo2%3|h=QCdhi&xO6$S?@^Xzqq^ zpE4TS^Ml-jVLE4CeGGp2?zO%7@~Pc9_XA%6+KS(jqu+e{_!jOzyIGq*?;_x zzq5b;AAhjF`?p`%-~anBna%bdy~cE^eD~D8{PqbmY#*cjzI0x{{{08`*_U^i!Ev8# zE%@&zPn>^#^yQ9y{^NV}`7tx&ClBn|`>VWG$XegB?|=Kke*CldoNhdIt1G{v_oV(A z^-?PXqr5}w&_z1t4&gOZk1%_@=QtPx{LA%LUvX>48OM_+UDgLr76RvJ2COm&m)cK| zr9I~Cag9wUotayjt05234BFE)x}f^B6NRwT>mi?7Cs}sQhVDkAQ65%#dmo-nbvjBL z8f4EFXDIyVoOj{G`shjNMZfR%@&3RXI*+K2MckUS)?R#zJ#cICa0<(LQs@jb;BIuQ z1iX`Syp^TAEp8VbPo6(M>STVJScj$cDtjxfROf;o^;2;#X;yCcD06%8n#w!SPZxrZ z_bcy!x+Qzj&Kd^st@a#2cV;#lJ~W-l!(>Y*Dr9`vZ^b>TOGbJ15%^5;oVt&l+-U%O z2wrwHT0T=Z*@-SbyK+tmxGecVOK@|(0Q}`B-GN{~4_*uxUN~Jh%^MgYr{WSP$-Nyc zlOw`I8p3Zlz`3jw|KDH$-!Ixt7Usl!+CBb~!v4^CO7Cu-|los%orWme<8rHb9V zv1rR1dFE?H9dGMU415WO)mdgl&ptRoa}+)3RzqN;5EwcR*B<3erI~T+$rk1g=itG` zxx?!v$o;A#bqwCNh)-gMwPY4Nl;zJR{1+{SCos?6SB66@u&0KztSR)dsPlJ{naIko zs)uE_l^(o{ZFGu&Ias%s&=nWRsZ7CRMR?vKU>RWw`5}kcSM!r`@C|b-=&RG(JARt} zG@Y$EuixdIEZ*)e`s8i?Zt+)|$u^1pmpFr_%-R_NV{XUj9`mD}w3BItPjTjOaL!k^ z-VAth8?Vef+E?xn+#5RL5a;U=IIID@uJx^TcCulgoo(1}^-TwOZ{U>z9n}ReS`@F4 z7rl@Uj!}A$TyDH$JYR!weey+&(FKseSEB6MG}m?>PId$SW*%;2nP*vAu6hl_;4>Fz zY-K5;;5c=758}t`hBMVYH&>&xg$}=^nSiY=GFKX&S^Xn%G{+gv;x%-(X|87m?pR&C z`g;;|U1$!T&b8v+GkH3d;M)t}>;j)_5e%wK#S&W9Hv8KSzQc7sdzF4zb^B?qz*OB) zD;+yv)%}Mof9N2dqf>MdqRqlLmGLx&d8ymX$2zW=D`n0ZX%G1dd_|M!P!;mJlVGZp zI0G=G(pZpeQm7c^~~Mk+O@TwvaYU^%y1xM zMPJ|$9#J=WnI!k|gt7|oj6)Zg#aj=z3BFBn9|rmE#rKay@XVvv%15SI8RPh9L-0w; zJp{Q=q!Si=_ct}JN* z?_h=Bv(iL%72L9L`l@a4%*yAs-oe>{Tu}Mg39Fzp-aLBBc8)QF_8`6B{F?49Wll2W zl1e&9@E)pl=+b!mwhqD-;x!bJ1?3QGny&!A5#zHed!mk# z2wia%IPnQQl1VU7cJE$W;9gkYbKEvg;$7^3J4C0R^)dm+m)kZV4^D5 zUr{r4=g52LUY}t$#~ixB5otW)806#3^^-60F@r+57DKFc=I z)5FhnbH9%?$>VU+0(dlvcumTeILEObM#&~ex!2{#l2=K4bdbGJvrzil&|>i@kMJC7 z4;TJZ_OLh`a{Bd!dE{A&gS`jU*F|s8()t2<&Uw3eZ_VkR+qyGn8#~OIzrI8V?6}iC z(Z)K^2G7`m?jo*1y|S7uCC`~OG2uS-018v~lHZWeyPNmW3-{*6CozhbHc=YE7sz#B z-x0qfeNVk}@>$78AE!4klJbKQ1MKPe`|}>l&1C4L$o%hlB-N!!umu@-{){?oXJ+uv zgZ~QiF$+w0+d1DJ$FC)9p!}&gp%(l)4ejuqd@p+MniJCxhosy{c`ivGb_KnbIU4`| zz5Vz9{5$(^|Icsi5C8mQ`{A!&*hgP6xAyyI_7ONwuTQ_ehu-_pzW&XS9IZ+D5^TbiGM8 z3FB3agCjD$ANAao=b7z2p9RB_4@du1S9>d64w^BeIbAwC2!ClVqkId(e#+JgZw-RI z2GGis4^uCci+ie-Ip6i&N8q847Ja!>L7yIB)7Yi1O!G$L-3 zY;6!PvI|~bpUaDO?B=Y{4R3k5n;ZZbbQn)^C=8EB&Y*+qpnFTbW8y+v=tS!Z@d*x+N=3V(jZy1~m1`Z9QFAbv&_K<5-2Or#fg#Q;(j|%-N@;atU z!(`&Y6689P;KB)T@dTfHiq{%=cm?dg%AZZsqnhIWOZ73U6g)TuF3Iy%H=v#?%}c6Y zM31CXS2M{L(O}l#Gd9o~Z^2>QXuwz3Oy?i#>kRur1ste8tlPm5K68(4x`u6Qupi8P zncU+=yikp{K*nKm&mo&WKnLq_y8O^pTA0hL{D-4WaBp2e3%b}`XN@i7J@L+{zovx0 zs6a++EJptq-^Bj>wOJee2qf(3Z#G(M{d`eM{E zt1g&gGkY)D5_#ObCSo1|g ztV>DWhvu9tp#jd;H`*FH_l;9=9uC@Lx8JS}k?R=jb9$hC=;9IX-y~dE z8jMn;4``0rCz?GX4SxCLXtQSF1CqaDnv$PPYW#I}7d?@4L=9Y8AYwd9lj= zF7)FsMYCN#eFd)qzRP1^5O~+6M*5|}e{1!;PcWb60^VW1$zyoHr|6wKcr@2~;I&!n zG;d9PRY2n8L^OJMjKUw_$RlHSG)dcG{ejfF~;U}t2Wzl|_ zOU5~M7_W}zb*d9pJa=eh4@_-7SG}7W;}wd zWBB*-`1mIMBg|w$=N{2DZM7Qb)_M8~oGkHax&!bg%#eZ7yq+nZr2^cxW)6k+?X~cU z6J(#5DTm+1PY1ye{EY`bTQg}g=))z>0s5}SS>NO6q~b30a(w#i$D>~Qj(Gn1;FHz; zARSM9j_%3QY|QcMC&5l>xS&i4J|RPP5wCsGq~Ydh1na;?UGnFb$#%PKy4 zvgpgvj1KTq59?wd=XuRZm?-(sA@MiSm85>gK4uw;7wW=mIDpr^)ALrt4JoUO|3}@w z;)2xMp$w<|_n~pTrF0c)_Qv#F$)3D-*B-oFx0#J`o87=qdSlk!{p`NI{A|}AzPxVR z4`vDlQ!Ef(@0l|#l+_De&GcVq(*uxjI z_VoF6JbOWNa=YMh;Wp)0h7xtw7uiSVrOVMBn@5>d0B4|195?#sD6{IkzF}sTk#m3( z^v9TYj=ty2W|s!bS|lH4C%Jnn^ZjZ~N>l=adp&E5|e z5+GwUz&h9r7tlz~vY9Ndiyj{3np0?w@(Svjmuo5T3}*v+;5A=G+*=E0i+1?>9c|JSRtHuv=)S%E&f-MYizOwH=`izhtC?1R?+vNPRiU=!nxL( z@mE=Vn^O+S6F^T)guOM!nJtAc#S13aJoFK;st25<&!Kxt9JgkZ^!J0g$a3_uo~V~l zepjt?n%|~QVfQH65c-cbZ(HY?RB;TCe~MoVSt~ij%k0;ey6_$I-u>uRz{JE_v^RLGTomuQr`1S<;;xsuY@e^b4qnckDGt@vC)exJBh=+8O(EjyG=ju4LVA1HZ{^4#%yuC z%EfxH)CDvkIH3w&`3Z7n>YGaRFt>o5gSw41Z|oZT!%ecc*P6+gUaZIW#oPq+!JzN} z>wwmZHqMD{bW^$LUQo_3itdo(b%eB_|T_8maq0An2GJPwZ~POo+WJ?8?M4tkuU z`;J(su8wZ5i*I#u_LCL5UFOJ1&NCDECf>0JXzBJdww=xX(J%ALa_ zeUW@xKb;#rScWn~SW*Oh3~$q_efr+BJVQx3?d0XqGpp>AdN9)H8^V9;ZC3xy zCj0pvrWuI1(SQ~4p`_I*A?EzODBzoyomSMej7u(&BEiR@MZT|IQlXlo{K39U^T4)HVUBw68nB5&AjxU9REI_&-_G~0a_?8T{8`=oWm-t>6T z6zOW|?02--GT6ii=8K>|X23$~;odp|MnU_n&}UL^1;c>bt30d1fO)b{5uOV_SWwT$ zq_lRh;_NZzL2w?p?jk2Lp1@liv-R#lFd_Hco;t8NS#JI=VW|alOZhM4>)ha(y8{M# zQg_bYr|<4*bEnLyFuPG=+?$9T}n`;OW8!6UqmkxhW31p7^LZTm}sgftp zRN#y=#{N124;sbumn7p?E2M2aLZ=n?hV%=0C1QMcW1Jrf>hFW+%I)88*?kAeLY#4Y z3-XjK(cwAE{G1Ye|0e63<}a$heDy4O7qs35&Uxy!yv9Ah4*px_-d4ZTGWzN?d|(c& zn8F`Y#Wz`_Q&DpsmGfBHLq=x*Nn1U@tj7IEYysR|!{ac^IYiy(Q*d?aJ6Z?Z?bf&3 zD?ESiw+-5J{F6GHZg75GJ5`VNam8xr^?HAkqb~fr^w)s@Ccup)GA80ytN2`2HQVRp zLC&(LZIb&V5676tJ6wXFPr%7*&W*C~ak6azI(fomZGH5>tB=romTn^SA!SH1_@GnV zw;}j!aR9=A!VyltF}-5tB};JOv( zf{tguoBc=G0!M?x_Y|d{Ac#hoz!T+on$gJA3n5K7lBC~YreM$CePrML@=N>C&tKW@ z%Qc%LuQ0b=u`hl>hYA?&(fc>-_OoTD3!%2kd|5PL>3V6-=3e}P-su*)`pB5jQ6>++ z=7$VjeD|Yo9x@m08rk4kyK#g5=bgNL@MhCqzFD_dA8p$E zpKLpS<~0~n8u0Fun%&&3m}dEoPk6{tNXLeoL040Mmb_TXG6d4}_Hvf&gZFF252Ea= z`t3*2gxua?@|*$ouv2_4&Ir2ha9)~ot+^BGPF6l!vskFirDYBbixXoF1TTe|@h+Z08Q4*{A3euCoTYo=9HhhR?+{KB z_t$|3TiMPq=f2bwdH%H`v&6E@kdA<9yX*{H+(j4tK>_q7x&W2;Da zIiJ%Fgl;J=Pk9gVfWmpggUT#R`xORMrl_HZxu0-K>aG??C$HaN42(H~x1V)c-0}eD z5cLuDupcQ?uG!b+YT7v$xzY2cr^!bZV@`%|1RNWri(w4TEm|0L-hU> z?`E_j~Wa~3A{AOs^F2cF^UvTl;KdfGh?WsZ3s5*>H6@2Xb^OEa1nfxU7QbBG37(1m<5u zdwRtD-1qVDy$g@`@+xyQ;MCUe+^w+xuW?RYVxOO6-ATZ+B(C5`A$M8i{#wKner(sR~h5{8=?c)1Ftl~ z{^7&xrLNV2;O!wU2DR4G@4f1QHb@nBbF@XPDopJMc_UFi5Y^Ts; z$-K_+QkTWJe9(A`d)NyuahAS-Z=w%g&4VY%i$5jQi}wevY6`8o5WPq~h8Y}O?=oFC zS!P8@qf*aGp7o?Q3HAd|EaEHKgioDiU9G@bPq5xj!%@%Ri>=^ks8z|Gh3F~ZES>~= zCkww#)6G%fd(@gQ zJ>3O1ar_q24LFl0o9Mw~51C=_UxYK=K{ww(Ti-;}+G%QYI{z~C3&!brPH|Q!fJv)l z>ZZ6yQ|<6&b$i(N_SilAP!H+uxOo-c<$OKd~Nx=}d9 zA^0uju9PkG!TStz9XjCLgZSz+H#U2r&dTiP(h+A*!BO(Q^7s?gkE~vfA^KqkIrGTh z=^^{!ZXk!k{huH|nr)<08H^Gm-xEH4%mU!l0RF}hIhS5=Xg9f)9`I`y-l?8r_~-R*azKid(=E&*ZKzN*+C~ieF~gH$0gsz zTnpN{yN}s}qgEXSQ*z#`a=o0H#Prq0$^C{nKLm~+apuL&?AcGZ_;K58V-8|CYBxi? z@ao<^M>o>7;|81$#JSC3){jxUpIKsm95| zjp8G5qY-$}XQFUNV_?ED`3g7-j+4brAFH!0vwI5MYjd0>*I3i8_0omg!g&)6c$c%z zP2Teco`-9kA9nfo$LP>^z*QS`FD}EE%!8HJInPX8l`^=xjIKR(;DF8S-{?B?9%(fZl zIng;d%zdsozRHn}pr5GE+=Z`J-kwo(7Y}FHD9^6=zX%$D=9sJBMB3^I`{3JIR&X|4 zTXBFva)rvgYA%LwptLV(Z^B-h@8%^}E$ruGKanrqMeagg_*p#X*?Hy^;I|8xHE+S~ z=)8@+dpXmyZj-lH4{3QSZ_nP{wLkys_x6{6`z_jW1#LCxXmiS#O1~Rowuduwg7>RE zUU^D?3O^Fuin<6jn^YY&v-2hU;1l}u{`if(`TD6ndd=LD7d!UrfB30=^}`#x^?cLr zJgeBkb_&lJd@}tR#d)|DJT#Fqz33HqifQ_Hc)!ss`yTtTFrYdQd)T)%qoJ{lu1^nI z-N0#QzHkzs<|kji<8-wA;qO1UzxmS}did_z^AFc;_t~sHes|8Ey5z; zmHsXdqI~$8a~dYAs;)VCBzDpAJ2jd zoH>fO+l!_wAEvZZWvS!Y5Z93G2RKo=U*$bg6|y(nhi&LrJ>n;XYteo+v-t7TM|Stg zEv}2(8vUo8d1=ifa3BFVGCTp&N7t?`F*}7$@|(+GOEfZi89Kn2(vtPk+_7QSXUAvA znyXoL-DDip4K6)x5N&K2eo*HY^^80GAzpNyEA{J6w~MqGI2_Hs&1C6(q@Ssuj*uSo zSb4`wMLc?VOrv;JqIeMF+`H;sl)pAiX3gWn*M&!OjGqx9$E&=@5I=vAyhOl9~5|*D~WF@-|oOG#ca;x=j+`^D!`# z=6UDOFz5T?5u4?VvObN@xy)R)S-g^y>@UnJ3!*TnirW^XIPEKs`iC&_li@fVDdi61B9Q7I2w4g5008eHgQu03AkyYM?t!CEg_ z6Q8L+;S3$FXou=)TO&ugj{dSt=brSC%$fc4d%#nnGt7ctZ-s{KKHm1-R%TUjCN86O z`PjRLo6y$LV7j=b?QnoS+{5iX^m>vz>qOre0t5K)zXZqxXx{4JCHQa7zQRUh_}AlL z4|xRrU z=lumZx4Q7Z2EaB>2i+Ag{PB}cH=BMff^I2|Y*fBZey;9;A#lf_eDAIJFyM1X;QYN@ z4|xxS@wCsW^DD-=Q!`)!@TZzDqdDB#hlbG)l-(8H^UxLL;n{MtM)}Y;BD~`6%XliT zI9!Y$zoB;+Pd55QYcC%6UhpP+v9rg)H@Lz0Io1hz;G|n_@GNd!C6C>RN9=s7-2?kQ zY3jBY=!YNH_t}T1I^Mo6_S#3SZhODOZ66K!c%IK zN%BNxo?Z2!&w21ddGOhhrS*fs$KY4Rqv_Ah!;!6f*po)R^Z@nQ{f1t8Oj^O1_*WwV z@E<%Coe}C9ETbVS@4H5RV&(V=r?>kK_ve!{jrQVrgT1&w-l2ismp(Xl{@g@p#FT^+P=<(vx%W+Xc>g>Y>>j=!4tiZ0o|W(nyyi{(*J)^BeS@+=VxPh6eE% zZ}B~N%`I{*;={LjhMapBKXCadSnoVt17O*WGvuF6@*VN)&2hh1(O2_i+-DE&u|@RQ z8tb3<@Fii!lUL}{Zm@UoJU%(qXdgH9+eaP4c8~9Lf%9sGGwKq#oHe>^G`B6sOFh{I zu({JI1E!unOo!5bX0>tOif7KiiRt_nVD3#4K0AJJFR%T~o;+bu&fD^p_u=*ECjTXk zOS92N`29VDXmIR}Ud}M;L)07$bsPuroon8fynjA&M=mluUc5}wf7KtQnXKy95EdIR z!|l-{pjise3eX8?Rs>^mPjq|WsPJ*A7i^qt zLMofUN1J5t9JlJ?guM^G`pNHJ*=N6aY2WYbI$K&eNy+UG~i*d#4uTMaip5dCg0xg z|N04;-*@fnUp#>Wyk_rwu*|%awDVfOp0pRQm%+Ll=!nYf2Iya59>^5g3Uu75stnhK_JY4dl55Q~ceh~ksYwP$M;WoPQqP5cL&_d3!pPZcL zDX1eRlI4B_|0$C*zl)ETX%VMuYvOh@G7`yhAKI(V z5Rn+~MOhH`Y2jh5|MJO=(K{4^s~H)ky9GZ$C;r;jmIKz@NUsk42jLLjtuQ((_p|l` z;a%mJmB)^N0oAu7k9!*2G)6y9l4o~-^;lh(=X&>9{SbL~@?68{#A8u9oA|C%oUJs& zD3`*Yz<1Wn3{mxTdhxC(D=cqh2m99u9IZ1uh_jtE*WA_pRvBik;@mZ}0>8e*dRo*y zbDVvOb3WR;*32lG)Je{To2-lK{lCTe^cMWlCVIstSZ&@-FISQC5j_=)wGpeb1{7E~ zGT^Xzd?9mQvT1Zt-*ok%ZLqGvK|R8Eev|dEhEAb8={kGRbu^7Z^bU7}B?j?pH| z`Y+IZ0JhAadlatJ;j3XUBgZj`#w0IVYJlD$IFk`(NpylI^y;Z&7CU+QIe3S8o}Ch% zj0HTO)dE@s_^&`mYpxpNnZV;mR!x0(Yw)Ej>@Caq&=#L#?v{Wj3qc*eXi%@Yz<;5AT4Vr0uTI z@m}Vvk>bpe;Io!lBWJibO8AsCuVNg%zH||PJ$hL6Fd7(tcJAmwW_ZB?oo=v)`|+i6 zzF3pLl&&8)_`<_$1RU7P9FPuh&?vmTa+aNRthmXqb)4B_A+X&f+(!WnI0+u9l0~kd zPnXf@HJ8=HS}dQ+d9GPA`uuPwGey|%L);%py1OUHgeXHCzw}98c zn*;Eox(D3&DLj0R9(ren@OcaWsqfOwj3do^QieLM{0`^c;5fRid^7kvboL!#ZIo}g z8!vF5k8CJstP#9HULUi2`S&0=FVxA44jCWa$S!_{d<^QpXyBgH8l{|MCz@~{-gfnx zh3NF2#&^9;W^^5Gw~DW|hL=J9y&I=5Gqd`fy*k-!pPufrH^*D;>G5WJc#(4(S*nNd zue;4{w$Ux`8=MKk8UFM{(E#bXI&}4 z8&~mkPUE3l;@RB21osHu+-*QVb$e}f3_movkT4#?(1~N@tdCfMj87F@KM4k@avso3 z>TUGV``nMuF1FjV5wBhMqVF)ns7SwNsjth5t}bUbc0P&s6^yOf7TU+utEHKjnhmMW zmw3dDK2E18+)R}{t%CMG1Ll}QD;5`@U>(q$?gU+a@-vQuV<$K_WjODTb4_!NXKkq& ze{d&yHQ&uVUb^W$aM#BU($k0Ml{M=P>(CRtA4SFTCe zPcQKoV`#VPnNW|gUcwUM?|kG;#lN)SkqTGPV~aj=nLLNi>?}I==>E9ad4vqd5&q6o z4!^j$HS72q%2m3%D_QH~x@$IY8+)G4dg@%h@epndkKSiLxo>~|_it_WR?SLFMRUW4 z_X}%~_ejjad)0y#$PZgb;)-4MF{c$DN&wDDbN<977IPshlUH1yPuqv@Keq3`|H{eB z{`9wx?YIBP9NoYF1UximDenEm%&3U4LN)yb&BNkt0GYs-UqCdgPP$gShs^JUq~ z#?fHFa~||#{{+{L?!#_B^Lz2B4d8v#y!%!;d86C0y*J4=L2vPFX_4^ayIv$-L?DAx9#Ec8{pd|W|Gd@>UPb!9`d^R z`EIXmSM2(=s_opY+5hoxe_$rwPnoTkmhJKTv&=2a z;Jq2OtK3)3Zt_NGtMU$Z(8-{DQ7^o=yxAV`pI!kxcOf)P^&yAAZYlL`!cppebhEbT zrOzq9qP(hoa7CK==ljKfK1)0}4$@GNfr zd>>pYGjY*7<8ZVQ@So=Y>0G7Ejm|=S>Y`vj3;DU0=*e+>;>u;o8?G#108fgi>oPf1 zeg-%q1*RP3+}w{>D8PCUVUBPdPO(T2Se13L!gD#58{nCv?_=8MXwv=Y*23%~0iNG} zd?92`5!@y?X-k6p)4e*0{_-6uD=sWUA+PKy0M1V2$g z=h}q(TR~H);60jQpDUmds#ng%zN|A!2UuC1qWxYnAa3?fbl4tr*nZYRX&ch(hWhB~ z@1>ii6FkTHa)2zqdU%yb^#{O{-iuCm%PH>X3(aVLV8k95o=m*F{lny_>3wv8kwQLt zJkamTWRYePblswJ72yK1XrYxpd@%ULCg2w*PoJ?IeRe7Gs5yFN@^IjVJoh=AW`;a( z41FTSd2V9fW0h(4EAFLPe6{MQnZujE!#=RZcah{a3Ab)54;9jzc~j7*uYG&`gZzUn4L>D;34OgJ7B(T zwAIDlD}3fUcre{N{P_@>r-`twRr1V+uG-4ttj$&M(WJvxh|?z?phFT*?=(6^jVw_W z{%Q$Mf9FKK-Q{eta|W#0Mt3ybDvRLxJmHUb z$5#tJTjCj;#UnZ+|1tdG4C{kBER)o&r^nr79)bP1aaLzl7=Z?=a&oi~cXH&=X z8aQx{`$`(_6o0qoiDdAkOg4bG!F1yOmd|mXI?GuME_ChW1-rfX6nyv@yM6GiJv!N7 z?}DfAH`3j8@v7s$oH|VZ0KEGY&v1$Fdm0{IXP^|m?%;X+nw*I>YgrziBpLHC_oeh4 z&k*O9AvApU0_Det;6KEXDQoFQual2BK{w|}80~V1c}1h_JDfq}uh#6{F8+K6zP1oE z7BqVymV>t-*D(sG;pO`l2Go2sKlrMhGg=#5cd!JXLB>P#4&2~OH}lc-&&FH@pu#GDP z=LF7A&%x1f{oVN92H;54>*hf(kq<-9qj;4GeA5$XdF#v5_WBLE+V7vz$NbE``u?GP z^6d^?aqv@VFMK8ZeCeo_;r?pNQ()9Q^RCkD+v9ky*!MXLU2H$<jjCqWl!lrC)VLGUj9-Dq_M_=Efu=bMGF?cA-|-G{3@3*?~iq-ch+W(%~E zWzgI_`P=$KtU1vJCmXFU9_g3r)^qSXyt<370WTdKeKB~T44iEaZ(0s4l;bQ;9>7Po z)`MTKKg_wDdr8=@o3&Y;aP4Ro%AF4S;kNMJ_JWD~;LMaW?ifD848Q&0Wpa>dzop^$ zUVreM_q=9nH|OB@k`CU~*&$hq(hGEh4x3NykN-$N;-9~!NfWL|E&B=y_Q%tGfTw;FK76BgA#l?~QOqP}iJ#;G`22`F~Sr=uvQ77tfNeu{!jU za2(@g88$pa^u9LRWA>GI&NSJ5{Pf~#Zs0@S;C!-*CN;|$aSCp19uN2md+9RS*c~{D z$Ls-5!Gw<+;r7_)H|d(+LaR^*torl{=zGP>N63~Qv`xHMTX^`DDReLn`Coata_koi z;2^E9n)_5jZ&W|rgyyBOKM%9M_p%T6fa817{{wt4>Hu?*9qEGe)OC>_Kf>=H0r&OL z;i$|;Ctc@3IMQH{SvE0v!U&ww5S(of{XPwc$kKrMxCbt zXH3#>FpY0~if-1K9=O4FG6`TV^=T~N_nE`LK26qQoOM6QJ{!S1P~xmuCeK^IQ&Ozb zU(G+~&`KB4lBIu(cMxwU9$_BcCkIcF1b--NJ%J8WCUdW@6mh6?XtIk(_&)Js)s7sp zD*Ddso`d+#kKp^G0~xKY2HufRX%;-KjP1nw=FV7pzX0EM0*)vXo`+w=(+Ygmf+VRv*vJC}${nN`?Od9y;HI zlX(V%!}tk&WaU_I)XCHBgHKLyuf#Zq@SI5>&>qw}^46mu{lOQ4$7D{}AbX%NuI5KX z@K374uu9HUvsxqMbcF#2$QAX21BdVh%1bV7E5*#wEOr-i=3}+a39ssIJZIAi3qnCOX5pR_OIx88Re6JSpdxNqqUOo;?db znjzmZ0neNT18PQa6rM`ot!8s2c$Sor5q}ki3rg|c(`2)i+gfG)nCC328GzIH4yVb3 zmC?*Yj_>1)!>_Nw6HjtxS7&mTdm_iWG6y!Dr)O`D{j5s2Vg*btoa*SfaGejDT=wF8 zpS^RQe#2wvAqOwnbvVG<2|TQ1$;yYpWUO-)aqpaIl@-%m4dvg9!+aLJF2bHwc_PVu zEaH2Z2m5PHT*Jd~lbqTneg?<4i|=L|EqN7fzlJV6eF7fw2y-b}7xD*`F~*~Zit+Fj#E8Fbm6j-do zT6h*TCqcSy44-%ukCXH}Wgdfxpta-akta&eSf!G&ySvxz@v|NB4fpNUClBn_(^aSE zqaBVsg7j^e$KZrPhpZo?C;)3cUye1rZ9eid?`J~TM(%Sn9r{xUzO1nxt#R(`<; zA0HrZ>V-oO^I7v`f-7jj3uwW2?$6r$AMY?L?YiB5Qnk_?pN&2Zb*79Y4m;W9*|~~s z-&m!y6ztcp`6Z3yRp1zW7wjCGk-nR57iY;*FEia198T`r@7}YIKYd{DzIWYTzTPCO zam&GfAAWn6IVhWU^HG&v628M}Ff<-^c}M&ad^D5v^;f;j?!xC?lc-I*#%_nLU6fXC#W3opndOI6?Tx zK$`Bm7}pl9PdHHe#0cE3{BN2`5h65z*4-QX>2Ke+KmL&%_22)@ z{^?(SY5(?r{?7jHpMOOk&I?<+J?C^eYVKP+pnBCJttmz$K3pXt@|##IHUM{`tZ}b&>_0%zLL+hjZU;qeytf# zkqfNYMfOMBgt&!v_Ly$Y^}}c>J)HHr*stX)6AtMio7vmG*Sz4&D45SfX2UJ-7}-WI zd_q4QmF9*GaVC`ptv+RWXXE6f>b3iL&mORL?~)tYf^%2} z3#m8n_DS?f@|sol>J_}!1#n6H{9ctC4XM4c@TZ-{>^h}YEzujtYIOZb2^xw|}kQV#!>{MQ-w zmm<9|1!+m}V&W`w2M(hH(KmCHo?Cc;74)Pk?=b=P)+~!Se33d4E0a7ATpP{6DBa7F!mGDW)L{UiMQ5B43myI`iDXSrb2?&tXXxdomn_Pjl|OLEmhc7KIdz3IMw`97((hnjWj^Iu z4dDgw!C8%h>olV+%zix1_cPA>k(V<4&_HP2AF zc@Jl(E~xbCVa?N8D{r{tdFL5+ys2c(dZj_a-3v2%IX?%k!e6py zC%}8^FVsvuX@@gt<@(OOwW7Y89Q>tbP%8JVvu73U_4fHrdtBFUPtn$| zA4RX&3r0IaHtGcU4eaVO#dL-S|g{?etG-MF`IU;O-yef_JC?8m?U$iai@*?KH@YfOaSj{yRFHv9}yt%Vr_a1CHGjG5C#VdRFle>2N`MNFNo`laM zCr9U7n%{T-$(p_SXxHI#($i^+;1P3|(W%O;tGSqie|!nQqX#z!IKP8&V(e?0H`*V< zyFt&KW?*X;b~52+%^SCAGMke#0epWRXCCU*{5U=|ud}xYvvqWKs9%E_H`mr|V|$ue z2@B|&m#n^PKeH{4IGu%;n&|^Z3+)>^3`ZES-Fx&gfBMkAg0K1zyedzhlhye0j=lc! zHhScmUB5TO_eYKdEzZk&;tpPb<2lM_fGY#x%8d@y0@pp%DG@9+qn@dMyM;rGD+v(3?EUEoY*G4y>3AIXd6BOjyL zXhU#z%IEZvM|06l;mhM6EZ}j=;b%qz9!V4QLLGbnn^aqD?KQ;CkVC zi}>&Gk@fIC2hhosk?4hw8lrc6iq4VmfANX^@VhUWU-B-Pt%{akvFaML!#B&eb!*YK zuFcu)-4%Q9gZs=qeupf~BWE_=PkwmceoiO$kH3Sf{pKC}(brGyAO7ik`_KRHpY8wp zpMP)fefrorgD79CnIXLa&emw>9?q=F0LcTmajOibj^Ry>+X&i}JPh*kh4>80GI`Ka z`snoNXT6gC*EdWKxQouqo-<%P_;5Tg9dtc4<6~{1x1<|9*MX;~7td`k{jLM-rCsy@ zwKIFHkF{)w^`{G+rIWmUJN}+_=1TQ8?#Dw;$Ax@joTa2I4)J{bmoI1lT-`~Ap^yE- z*+a;Q$V00h9S{C|&E}FPL+fBFLk|>Zssztu0$x6w4?14T2)$!5_~{ru?OAeJ1#)ug z9Z7%{)mgZ0)-{YwjIxHD*`Q|ujO-kau{X!b^gE>QA;F(hhuLF#Eu`~Zr>El@TGtJ-p*P_5 zi}0D$=ab_;D8etRD`X4~a-3h+JYQuJ)H^s%4rZL^a15VQhQ3K>{skO=2!E)L`(Hi% zL3|D)c)7BHpD*kCWe2 zcR_I+PZpk?Ik>rby4)&BH~TP|bogt{gx1_y;mx@Q&MsW@P%q5wKdC--E@Y<|V_+FCeYC+B<%4SXA6Q1N8nI+2<<2mwk z4wQ#lct$fz<^NMIQ8-XOpBy;7z#f)&)-&{1&K_G0bXUWlJ#FZ*cbW&u8xPq>P2{0l zUG}P_4_`{F-2%5=$G>+2{`uNDzAw%pD~C9D!jgkgRZo{78~4vHS|-CyrZ^^&w8?BTnWwa(F*y zDmskVlZHF+@7b5Xc-LNh zwrd;rtG4~9Vt3w|v*l}f<`fj{gV%TL*?ZgYigEmK_?8M}1sBMQ(t%dQ|Cyc4SU;KN z4$ks@YgeOkeOcGm%Q@efSD=PD|$T6!p=W z2)8_z3^|>8a|_J3ou6>#9bD~YcDw83+YS)?u*yR8FzZoV(PS}dxA7=`{S{b681UnJ z_Rh;~d;0R4-F&#{bReoPQ8+W5_kdCHUk1>`qjZw07l8LK-OtJF!nutkPqG$qZIWO_ zuAAnHXeI!IL{+~PR*c7f#);iF$(J1 zTZ(hN!LpP1sY-CI8Gb%Iv-;|TA#y9(ggv^yVL$x(Q@Ra5w!it^=V~aFfSP=&c!|K1!1}}rk4wrsl=Qdx42R-I5rM;nx4(@ zSt3pzR~ecXFkfTWVff1v*4%Lb-ryuS5AR_6F=n=&vNk&EG`Cf{ZWsUE$$H)c$JgD0 zR!?VaJ8MTD87&uU^a$(zAp6QNJWl{`>nM6w2>d1wc$jXUVP?y84Uq(Xiq0hizhhf3e_bRIz4MQ?3A z%ls$&=5!7$ore>G!;6wTsB+$3G5je5 z;FfOo^%1;aas0)TXcU$IpQpEMk1NZwJmCqW9ue_tE*bau*yqgANxYuS8xZLS8U{{wy4)o?tiUc0ZqYEXw^# z$C@ybd30!|E#dLQ0z11`9ZKfO3hUk%!G4&5>f23F@@evIxf zGK}IJ)X%Jr4fU1v@V0FU^WnSc!smDSJ{$PVl)G&*AFW0HVU=r92Nz{MKWmy=cLL0t zb)W$`vgnuS4C=tqWG>LE5Q(lsU~ePtntN#$@`*E?(s8;g4Tsk6Y`77 zE(PDH9_A(*{_!CG$Gc=p!6fScRiDd?0eXP%&C}IG#)7;-6E3KTo)|+<)Ev7qntKQD zX^Cz*`7U$l^gBG~>v;2&o7zK@*&kz$HXgIrS4PdpH)p|s!hdt-4LsP%7`{xntvZ}% znSHJfr%+yHc5aWZj3&MLDKuYtRod(g8>}%~%{bX5^0r{&EL?k>oV_|!#Idd8&s{r( z=Yh{wD(es2bTwg~rEL$_P!3|WJ-&*23O z(%F-OpUn1g{)4NF<0Y_xlcb-xgFoXwWvab&g9!_&Gh06BGV8qZQoVchsgRraW@y3u zaCOrBa%9y+MokW`LY(ga2<}kbmtPEH+c!XlYZur zX!dkio&h>81J{`C#F`q0PY$wAl*xRE=D&dX`_j-n0B( zfBnCHppWk(^V@%XZr*--Xih#{Gskdc_fMK;XTM?&_RyF&GjLyc{pw_#n{;8~qpr5f zrb_ousRe(x88Hj^=Imfzy`Ny7_m9U%xi)zlXUTku-?8(aRzmD?WCfz-0h4UvU9QVt zfEMaLM`!R=Gsf9|oL;I)IG=L4%=aaa+l6N#hc!p`b(VG92If;I`_kfdYZicmp3(}M z_x@hl`~(juE>OPyWY$OS6AySV#a`{TyoOnNPV(e3l11^c^bDX`YTu8bjYrdd<_&`# z5|>T5f>)TishZE=!>=cQ_N?zZXLdeAu$;6)&FNa;y-C~u=d4W^=Ty75&zeKg;PWc3 z;-{>zPFBdwl*K!P1{lI+v{R{IoIPa6sPRzSc z9+mX{f}RpwY@giGlw7K=Zu&*ZoQ_KH232?=S6y0+YxJSp?FK@oWCe5Y4^0Y-VTCc9)nDLZ)hN20b23v^dR+{NBPW z>l66T#{VzFJqY{F;a!e}$@bF062Jo=3F6uZ{UIE z&%t+^tCS%xD^FAbjk182q7LOUT-xyn+yHCUG3VFgX}YggLe@<2oq(4-0zUJleybNI z%DGV5g}%<#5M3?oCl&IfR;~|^qcRG0H0^DkgKhG{FQ#YBd-gHuy}Q?Lqp$F64YKaA zmO0@h95y=CyzqEFbPUchtIWVy!*e6wpZLB*w6A0K??dpa`XbaD)?r<5f;%H{b^$Pn zJY4Q2<`a=Ij-nxj@G45LPLMl}qGgG%$$)37_&~DsUW(83y757Cp3l-x*I`XmP9Vu# zj2il6_wHFVnaj+TKx084NyB}Wc^203V6O3;s2?T6=aJ-WTx$O>e^q8a$YG}#() zBT247l(S3>e_ovZRKF(SHACv)0V^l??=&5!>I_WLd!V_9L9~$=pK%f%Ai!rHzRgUG z@f(~&z~XpYLP5IW;ZNrAPr2wDiITg?quEyq+*6#lw3f?LuK9g#Ki7&gZh~`UfIU@Q zzOrP~=mEoY>ke@qv@Nhkld+fL zT0^4ru;9_J;d}0Mm@Cu414#b1!QU^V8KiHVCKuGlj2JZF8)yZ5W|{#lZS@fRr{4Fs zaA5D?!=A&7?M`V8fh*+qt9V~>aAIxl^(K5ww;nZZaI0o%Bsl-&!Ifoj;~H9_<*xz% z=?w1TeC+k3Wd+eF@wPc)%);jLsNmzSaG%%lP%1n1@s%O-4gS0z;QzjvvXg~Y&S=*B zFt%*IxIJUugZVxM2daPYgll_8b}^aQk~{0{3nSF?-@-e4<}rK+wbCs zTSwdJq&Ww}m(*DITX3r_?w#g6IlPSY1F?5#mFMJf9*f3{Rb&JaD=egU*3>)|% zIA!%3=-$@M_9f19Qy%svxFXFBaE0;cqlv1UNHbrRD^!n%x_tHPoCALn=j4SIys2ou z;#SrB_fPz%Up0ewd$$BXQ?}N+-ewi;v|zR#H0Yu&nvLV4S>I-s=z7=`y6CGL5zFJO zJVS3YMSp3*v^NUO^$6mnqx%Z(x7Em)$4@rQr(d3!AOGb;^NT-!X8!g+zc>H#cV?aa z?VY**vS*H8Y?}v9!Iy-C(|gY$NtUNf>n z)_h>iqhOzz!5=iqS~s;!SD11x;zRKSu7LFdCGye5A-ZIi;Q`?f$+|i?(+>}ly_$pv z0^`dUsX2H0{+h9?XMI7LeLG%YuC)iBP!KOtp8T~sI<~e_W@oQNRsyY^b^YhALQ^sU&F}vB-u&wyKQ+H6-|@%)<0s}Ae`TsoFfkbs&4rJ% z?&jHhclVO`E=%NFI`F0~v-_xE`74hecFmVxy)YkrLWd5#>Q`XG|MFJ~0_`!pw5_)ndR5!SRIIU1eK5@d2VPBLbd zZpuuL>)s8R{08%aw=>qIztqX=r{j46Ou1x-SDigYCK^r) zexyRKViV485B>B6jQRkKqWPF>@H+c9n7Ka4Y)Uu)&HvE+)jWBRFu4oq>mK;VNWfun zfeCabKYMtHy~$4}WFpVZryjEtz(5_ef<}XRtX-{Mf8 zvJal%wcEs7xQ_3;i}u+f|4|1EHQ?2h{}cXu+|Ryqdx&|wTzj%F?dYuO(WANnrq$=V zb9V@Rb-=u(W921&_#JR|2ajcy9>K^ky5!guJd(^bAM-uyIOy2oS~tsd{pY4%j3Z;fdBFZ&hf18G0ww5@uzUjDKM9~RLui+qvt#D zAWpG946-+m@UrnUyTC|3@89J@zx&{@Bc9QhV85^70Dm#OWWK($Ko7_i zzS&`Bh>;7p#*B!YqvpBt5#X$s{N5h?*fV@>AHn6lfYW<`HhIMLQg(G4zxDm3-#nz3 z==BJ_J?NT`@sPczqxlgS@&R2pnt}Gn<1vpybV}o&Sf?wh#W}14XV-O;-Hrv!4$sRP zykDikTu=6fT8;c6c(~1d+oF>vJ=SL;{CiC51ktzS?*0lMdZ`gc)cgB2!ui(qm1LosF zdS>XFQ7+~wdhaIQ1pS*mv}WO9@#vk?WTD}r8)NXt^dyU0jFABnw_K+8qd^WuynlmS zTmvlF;(eCEwdzD%qaR_L>$}fcY~vdI9{8_hW1sP&m(f*|f@{m--^t*^%cIrRSW{YH z!VcN4I(tHsb)(IFw90w9!BL%qW0Y zm$%Q(xkR(&Z4vOCPZ}WHjTike%>4&1qdBWK7a2v{b^7AKHH+}pOBdm+(X#kn%Fzh} zDrd98&-70WC?DYFcERlI*7=pp2d^eM*Y+m!)yOh5cVp;iMU$ipDFl`&w3$)7$-Psj z4|Y8U|Ccp~Pgc#NXY}%JH1L>K&5P$7<^wpsuYNeP=30FJyZ7*aV84HRXk%yPnTb5?w}XNptWtO@@^{4SW~Df05-{#;eR6Arrh1V{OjQ z!S$kLaSuiGb>TMbc%YWSD^_m>opF^GTnC(Gt5qi=?2OetfW|bv-GdP zBY5y%>Kvht@Fe|Ba%=@(!WDFxK6Os zGJCP~;MpbcJ{r#wzJ4d`q#NESf=4h_B==4KULH)WjQSG#>Oc6!r*ZdmwrCT$b*|(F-hscs^OM&_2^9<+d%%=ZU8T)iMWU_1Um>UVR z#eM$rFYUv1(a zs?ZbK!=o=ROE2Oz>-3v#kxkEwKfza(WDnLH_AYyLo0$n!^dI#m1klagyq`Gwsd{Ad zXhIqIoGko|)h&iD9JIqBqutE-&*G~%3;v_OgKHYVzZ8QDPzUW1pNHjpqf2=M4xmT= zcXJB=8$5zAqH>un@R2x)tnxGX%bn!>eC#*z0Bb9lH5!LE=h~H;thsgN-#8DWy~lX| z%N2Y=jgVR0_Ry(JA3whP&1)B#(R9~5AU~nG@OyZcN}TBmG(>KlKXc(#bI={Wg#P5jr@o92QQg{A&cyN(R={g*yj#61 ze&ZR!I0CW!Wg6bMnKZYOQOOmrdmis~3Tb=FG zN&01YR+I2oKIYQ|@Tev6F6em(k}I}>Q>VeF<9M=0$LW`(t9lCE-UGiG!w;)mXq_xm z??S(Mi1+W9v*JTMc|U+pzD2iuMc?NBO>h9*U7hnumpsunoTzdehj6UN;O!k=FY(KM zXyaMuT({42eaL6CgWlc6qu;@Iux1}OCwP&cg1??k(9aBB)J*N?L-WkBaGT?7#ym=; z%!Z!~x-j1qGtgX4^Dr7Q583~YSBqwgb)~#Y-$&a`XB0i3a4Id<^i@0t6}YN2pG^i2 zc|PbftMC?eG9U6jXtwPK_voO(EB6V%KE$tipL3x#OKl#11!t7n828N*`UF2`8h$L! zGZQPYU(j1nj>ARJRU=PFDYjzP*%w_?_^wCr^G=erhPSr39C}PrWb(E4Xoj%nb3eRv z&wO@c(tJy1;=2(%Df2G#<{rH_y!Q`>=y8Gfdv=2!E7nEL&{gI}9V_Zcx4g=5*G=y2 z2H#(Kpd6e|Aw)(Vk8u@Fzl2w+1~x5^^0TuC$Wx=UQ3ZZnJ%F2iaD@Flqxd)*T-QPf zj)yfU4Of|iqm%z7gAP=H!xRSG$Ss>Sbbuy2bQR9HP7bhz#@>MsTrG0VIUj0fmMb)3 z@pJhk?ma&2WV$5k%QTg=s3!$%aiX$chDX<&$XXf z9-x!uni;jxkHpXQbMFh70xn10f8xCCtOt5!@WRED@LzP#YBp{Ij8X+#s1G^Ypo?*p z=c9w>#k#59;c|Nk&M#~>z>T{HRg1@ag1`Ud$+p>o-`XVi`Rc{G`Rdyv^XU(J=HqWa zFyH>`2j*Y?`lWfm-&3Zz)MmCY{Bwp(LZ*bS7$V#1VGr@pt45|F3I0pMTkA{~ZlYZ` z;r7wV>YHh^y${X=LzK{MBXB*w0<#+7>4(6*ngcrrw;_JWgSSpPt38PBPv)etn#8la z$bRo&o+sxH_P6ncD`tdz&F~of8u%*83@>4n9JnWf$1+C7B8Y|?p~FM7Nt5i?asDhu zFJfyuY_hAf^jMv%YxTK@$VD|;KWAM&eE$T#?6rCQ z?tuQ7yybiAZ8!P4*)F+au}MU7DcyD z<3Gv^1ID6oBg}PNFVc&XL(5~nMlH(B1V4B%%00AcKKb$ydFvB+KxU_q8~@M$`6Kr? zx&R%|BjAjsFy}>nUSW?}5Ay=)a`SlEYM^E}n0hvHvD6kb3#2bY%1UgtB0Gcx;#bNuiEJGVLsb*4XjOuDM1EX9s+UN z5&nLm!#cakJc)IDUaLW~4;NS_hr7nlwn1j%fOYNl$kEvSuvZIAgZxDd@tZ?xK&^$dYWp(Wg1jXV~x4bUrljv-I%TuXA=P zuvWv-)Q|OC7pNsSvECPV+GI)a%%)khqj>&;_&buE zC6j1oG1fvy8NHtlw*dG-UUp}kITHzbiOHnI*h6!yBh4lD4RQ~=moAy-@DQKiMf#ll z^Sdi>vtU%slsbZIyRZG9?ClZwLmjbem&xW{9|8j~F9bfK4W3&a#G{X9wN6%Z2jARF z@ZTqNQ+$rs@-z6S=WrieU@*-isKLF4$IvIiY<~D0c^l?t=y`_+w>el#T;L-qu3jWr4stPBzH#=h$*#m!9Sg@(;>v z_qaEe-){4nZ{UO624m|p-GaY8W}kY1mTL9CaQ0j0TCJ7n;>5RFVLncAklC|f!((v& z^9%RP+ZnrgnNFL-YTg_cGUUMA=05uI(Jc8^ym61o48L}>P6d3XA$eYB59gFG+r z*lXv{!BvA##RcMVF0(f3{94DW+`v;=27|_vWLMA-)7(D=_U=_b>n=KfWey%1K0S8* z5}6FV63mxg2Y;4MpJ#>&djfb|UFaROB|YDo-I&xm$#W#HM;U&)2|uw3{#9-VwzM&Dquq@8pg0%#yeCvLcaFr8lVxh*WK zv-juTUMGJ?vs~rvQ#N!F55ydN$kY<|=^~kiWqeHN!1@}(fsqV2j+Y%?QNJgTi{{Tq z&<7LjL&Au9R@9dw4J+Mb?kpHE)5LSj`YE4Vy`6&pE10#-5}m$eJ`Y!|xm-;=rky7F z5c*CYKd;gI^4NUz-6QkJ6hIu7w_REU*uy`S~(@hIrl* zLC5FQgkF4{EHTx3G;^A{qcf<<3pLpgdd}bKWjg520G;97M-uo!)ccT?D z`-e@7hwQE#)NM<2tFHMV#e{_+|g0y@OF=IVo3;q0Wm z#R@+BWQ;Rx4h|5mQhQbg?33aQ9p%1J_AE|jErrK24ws*z|2PTON`W_W{Jk8{Ll%xG zo$;6gx=SS)#V^imjx@h!gQgA#T|-Cg@;x79=}lo>-Nvh?&W26+)Sk|G;05_&nf*5do{XZU#+I+*cf7*6bJm*A>~W&~alQTU zHJb10o&-a2&elAT`}8De?)q!6$=msP^Mw6K9Kt?XVfmSqz3srEHsETj;JqrpS1YFR z5U22Gp&Rl2_3Y@{xT17JN7)xRON4k9T=<+d7sx@5tqPaj&k@DLlHK1+8h~5VLq;3UJf$1b7uZAr31^?kBB0FLN`*6NW2`iGkGvzg0(RTN2qSr44-ERkA@emF$Ok?aCT3QFq@vet&0}DjvsFC zVjrDgSJ3Qkm_2mgoqOzU;D$XscN^sYj=k&$z`Uwr=^9|zzgXG_(gIk z5%L=eavueF!zNzNI=a5*G-&Qig0qEmd>?DI&Y|k8(u^Yc|8@TKvyOz|6$4=M5WWfV zvpRpp!T!=-)aw}Ld>n(zQ=ZWSPS<*%8K!Q0mOelI@Y;u2>vIX#6>vu)306$0UxBl{ zbp9ge3A!*euPwv6*8sCi8&&5|8GSy5H#G;=R_|jA&#Q6}J7eT8M$v=d)}73qp1<2q z|L3)zap1@mGegFE<#Hd{aLym-!A-EQ_WCXy_bz_jU2;yxX!z23PvGsP>F&_Avv&Fd zc~CL|@YK!z%VrDCd~c5Y0Um}eu=74=S$S}kH`>A%zYAa2<{4>#ZR_AGdE$EL_6O*k zPaGceqEv*d3o+N)&rA-y0C)$5|DKP)Jx))Xhh(CTV?1*u_Ms+OPx@xlbU|3%6w2Fz zz3XsK4d(2&`P|wb&YYZgpSKI zV@zk3p1Cx>*bJ{Y-qawzYbTwnOJs`z zWS`bpH#Wh5%FMjGJ8$08o2QwRpNuVGvx5#tJzHIS@RcJ&!qlwq-v5@tOJL z7YF7Se|clR|HB97%{QB5795VK9-q+Szw@B*A=7F}az zbm5YjQnrhHg|5{&y1|6jKfFTHLp8fAfwwD+S5F;NMR)(fm6+H~9Xf z30Yk`@Mlgx9%XQxH$h&l#Agy!&Vuy~9;m+Qw>oKhn-!}w@8AFXkIXLqp1k$9=Is|J zR=1mSJ|njC=+|U>=y?|YTOhZ&?7_QQqSw4S4QE9ESk?na_Qd?6Q*3jZZJhpLCp$=*9Td&$hq_gm}r-u(vMK^vyGm$f=gbWf^h-0tkd zgLH>$kA?_dO3)DyLAMuA>hSY@g5+WG!|5!LhEFTfSx~CP(Ll52^RG|LH$OfG3nama z5i{euME@#&Pkejo>>HXpP4Dj+wx_tX?c0sKP!GKx2>L2^?AyF zCjY6r0Ykh8WvW`M3HVX42JgMe{oSNVvhgR@r2VYc8^)Vr%5jOZ{~I%d8pJFNR#U06xhhAj7T znzcKdMDIcGD!^6dhA&&|c%H0h9xt%+9VN8kRo2Qqydk@IP{pBc>E2;}b(8z3)+A3^ zU&3ckMim_*>!sU+b7Tl#LImG#dZwQ&Fg@>hN^5lPtlq$1ex(nN;<|Z4PsM%s*B!if z8{k4=#65KKEqq9a+($1bXV}}AQ-J?m9{VyG!8{)FJb28)4j0Z@dBr_C)^_iqcd;+4 z3owtKn1vfG-y&~Ieka5}I89IR^ym#UF-~_m`@-O4zqvz4#o*jcGrZV`XPh2I{6kKz z!wS7)!F$a2!UxeDA2P*T=kWiL)8JRlqsmFw{wKoHe6|uOWUh3wF$MAC$SL^LR^3 zcq7_qu3PYBJ+c#BFj@=!cAaZ}GBRo2PcNGf&{@@a6UDD-N6Vh0+iebBb#8(^md|7E z`Z+6mv__ZqDmk1EpJ9PM<;o(y2YN&I$q+ocIzVn0J^voqUbv|b-{)0wF>t~)u3G~< zFI|6wKJyOOZXb`rF&bBk`%YRy4}Y-o6ivF}Yn*>GT;m*b*h*-@+kTJPO|xcZ68QW$ ztAK%|MN2c#{GC0p{4?cODH!X~Ah`+hJS}{sT1x_)5rW)PQFNjNm?RDlu6d$X z$2xs~^23(#eN<-fgmZ5x>)yMqZe_dyH|Pa|bMupx4WVb0(5^S&E|0-_ACUP~uH(sd zypHJSN9erjqO|;$crTCPsh?gOFw)Q8%`(5vZ8wk588*oEZgT$IUtq4~H2pZ7yDEI2 z3TNdOdqNxUXWo6oI{T@ANBFOe@34$FIu3^!zpnfFw8`UNC=XpV4SE=)6(sO1NUN=I z56V~F1h-1(-QY9dn}E{?^KGFa%ctAn8a2p@XUPGl;5Tz=@*`*pQO=F&mK(kYFFNa* zd~5PpMGKtW>23;uo7MLr{zsiH%Iq$aMPEkawBhAlA~Pa>ZyL|w?6P!T^kV+bg8OIR z-y&ynWm>1fMB@5{|I{a<|5hJ~&eqzewI^wIi2PI@&cwFkwEbDRJF zplyy{b0oRK^& z>Yh@r+vaDMJv#sJ3_3HNBJvg1;f7W>a_0WSDm>zm`Qeu@&FAE`U%ovsPhTEb{9=0z zjSmh=GvX5bOi{d2I%~{xhM0v9UPAx2x)J-;0o*1pY>eJFooU;C39cMv0pygE% zMii#Zky}y6jUC-p*;#e*hTz)vPr8<;ueQcqU2vo@@e=o*I2yOF4-OSA2OJTMF^>fd zZ39bN*cQC+!po}6ZV^nM;oi(~M%vk}n&U@Rv%OchX6NZ_H0`|1=S992y?%7zJYG)D z;BaH={#Dnqhc%{H0i*FXGJZT-c-1oCq7r&%1)r~aKC&73KllY@ciI)YBFV?qvtiR9 z*P*!yMehG%2A>G}U!&|d8U9{62?k__c@AG{1^%+fy|EozH20Zr{?Nu;v?b=+4%58~ z_tJyos^NuefV*PK3ZrMKvs3qw@U=R0luL1=k&AOzX1vhG55c{v>!SWE`4&s<7~NfX zG8**lupj0)TNb2U&^c1)yt#$W+gyR4La!>K*JaQ?toc*;_rhdS!t9wIyeJcR^`_BT z#9?cWWQCq*Yn}qpEt>R?SpSi&?Q+Jy=v;rPS`;w)l9hiWO27opJv7vUQN2ick#xp@x6A?(GTw8 z@jFc?3%G83oX?1Rs>;{Tk`pX2`?HMKag98V{G0N*cfr^t_`oC`%rUr{2z*u$J}CsZ zv`Cl8C_LZ<9?wPijcMNF2-%(?dXDampE5I?AC_kEvvE&($m+NU*z@p+wsvG)^+?CPR`--rORU?oRTU_}{nU-FP6a!hq0XApbF4ERYg!RbszSemI^3$$i*)XAhJ&NKe+OUP zIM@MS#fNvN%olei%}_>`My&YFc>!N0i1 z=eLRfU=Ls8e!_1y%Q3S`-o4pcp~FFQzF1Sh(*^jUCRyX2@El%7VZGjUy1>Vo+t-g*R2*W+F+-MVN}GGSi;}JIS6m#hx9bRx&s#E zbK2uRR}YnbPUXtgd9zRU`WXCv!ZZ15(Pmyp{MPwNU5O8-IG^L&+Xokl11!-qp2L$Y z4{|Hdd6;}{dHy!%XEjvL0?L#vfHM>#Rw!!(V440l^mRl117f0g@gDd1K(JPS0Zw}9<`&B*do+KJw zoIXp=NYWGknb}xaVV`5|lNW4gwBHO5U&H^7w#RFR&scNIW*l%@PPjDoTwy=q!&$Uq zaa`j57WlV6XM@QTfCHD+C(QFJJTS|-b%C>Qfc!hAF^|T!0 z<6GZtg75NpbCxU)QQBuTM!o?28Hv+hgicv%kRzdQytPqAC-s2s*w@=ZI3m3NdmS`F zKhG{dufN}ntn`^lbfsAr+#On87|kjcgDZ-9$%imAm(NO_zKOK*6?DT^&}4ZgBFqQY zJVy0EDF-cYJL=MNC1C$0It{*4}#@pteJR=a7AVCdle3F`+m_hyD2LhAy1z# zMrNguAU{DK6s=fVg_nISik`T0&^BLw^V0n4w;x;c>V89a@|%wyS$!|dcn8$wEe+eo zo+aF`&u^UfG&qC*jn6PsQVyH<^Pqs|u4SHrr;i_#`#5fz-TN(T&aV89nj@0No2ER6 zx?z%Z{b>eJEx z>mHT|YmQ!z1#;C}hdp!fc#Rx1@1L`aQ+f~Fip@#J#!fyIkE=HUe*>4g9HX}>}P* zd_3xJ)l4qUH!71SEtB`@lHpLdT{Xh_O@41O(OK@rS_|CAc}5+NHMkwEx1Ck;&GbcP z;cshrmz5DzuT_!$tqkYrJiKKK59TKP!Qt|vH5c~@dB3B3oc}qSsym@F&N*6LLU1ip zbM#7bzS8+Ff{q@<>yZXWC&4x;a#e`}>j=KIbd#)T7cOioX&Sq9^gn38G2@Br;gRIM z%X6r`H_p8fgRhQ*yV9(|dCuWlFEs}}h`&GV6yD);4bhzp)`{RncH=#cu$F}QJjDaX z!IGuNjsG%SeP|QS4xPrBEotX zKtD?bJ>;=?F7b85;DzLa&cKcK@OQ6rcHSGhWA?$|n&DX`hg3%AZti4E^FA{ZcS6j- z_R}3et|p7lN*<&No~)3~>vCRemDrAg`vFz?X(C6k``8^*C7cv zon(Cq3cH|(rN}y_;UqQRed}yLdl~(@@IRa6E4uU-YHnN?U4HjAy=9lt2``|nq4PB+ z*q_P4*3d5GGtVvDMUzDbzIfTJp~0!QZ=HR)b_%ZU%y|>Ne8D)*oiZ+TV?Wr=j<0VP zY&?p7IYBqx6nf_}`|uoJbBgLIV7t2HE@c`1_a<>m} z*A1{3*epYzWtMp!a2Z+orqRPnnbN%j(rnS0viQC-U>VIcROe8Z&r+Sv!X`~- zsET8ZgF{!~jFzk{KYbX|ah-SgedZ5?vy$K}Vd^~DkThqT4Bif93!?BF@&NpE-Pc+r zJ;6aAv;(~1K%2J1XGrHNvZrY_VvX}qk$qb|jk-UR=&?=sqo?Du@J37KLtd}Q-o785 zHQ$fUn6K`UI|YNhzdddq!#DMA33E%tLf0}VHM zzL2T+=;x!uLg!+gi`tyaq`TMAA1i1RMa@PAOXbly+cvZUu$Az51{^6qT4$%7iq9P2 z8DFcD+icU_(8lXQHc`2%4qpEnpJ|z#OO5ly7Vq&sealB=E2O&~-2}IuxoV!`QGJF_ z;SJgKkMS9NJVq}R-|I8hz(e{|I{4hGoWVju-DtM<-nDz=L3n=Xq0wBJB6_THza=nBjkT=? zp6>Gbb6I)&svP(Qfvp1jc|W}g+oM+tCB2;W_XGku!5hVs)$Tdr{} zTD;Fye7S9KY6iYEe&ec@Nl%mAO=?Z1BSPGCq)gVV$XbNoYZ+a`1^#p5m$Lj{oNH!T zGZx(R7r{{pr$~Ra@mUR%D;Z+Vy36w^?58a6^zs!mI(OOPvD9}v%9(R`ntoe280nl7 z3-JHEgaP&c`gMsl)5bm~Elw{x*CY3PNB`!>-d2hbO4sZR+ow!u2o)sb$BM=7!yr+O!g?vh|u$|pGE#J zagt88vZ7lUM8J`Fr}I;XdnI38M_E zu7MxlS&SU$7Jp}Llm47_e70-wEu71e_~1Qwy;iu-TyV?FettGG(02CjIr5ET_VeZ@ zXLTEyKC5xf@g{QqRnMHVDw;>4tWB;Kw6I_ZJS!e>nNEZy zu!uW>e;|AjA2zc{cu&G~>UasH@t-EiBcs2p1chDcVPJ2M;}h0iD!x#&W%9)s8d!n% z6h#O3q0>h>C*a}l@}6V(;>kt0g7Pq4;B#TE2J6rJ;0;4yqR182YWxrI&$G@;)+`P; z@7el%(f*Ut{=l!*mIt34eaT=3|msx!X>t|S8|Y-0~z;_Nohp1lBu(dRBtT9xbF z@veYvq?yu1r#-ax(qbw*~Gm6xkAr-AELp;x*J zZ&`BD8@9y#i@sCCXV+%Uco^}Sr|2qL=X>Nd3uFOPH|Rm3e$-|RmFLio zt`Wv#76TK6$qSZPw{vvV(!VHgllp$rc*}}ibmlcUza8+`I=H=#M;Gs2o&Mi4pIZ^U zoPzfb@T|u0$z;F*Sv09A{FV4PAD`D8n0_?G=ZfD`XP^e3zj9^bO_cRc@T_Y;EiAz6 z&4B%s(M9{~(fyL0CdY~2FQ`5*v}tj%>fY2@(9anl2R<(_Ls}U@=_qlsBRTpe#1|Im zlgQ>-Pw@}d@J9AHCvR}x+5&5Ca2+?>5z_&4XG+ZbY|+Dv552aA@0!nd9lduQUAX6A zRwuJ&*KBxcTuWvhjJn0TF5W=iLd^p6gU!^9s`*n{&assh_8&0A4%~1Hz9=+y#n{Oe zx>ygD=So+8_S&ci?q^R1o@hAv6+DH)%dvZKg;&r#ubelU6Tdk*gr>#JEjY_QLUYx@-nT59w z52_pGoTdF8-C;)jb{OKh9S4>8;Qo zAWV_OuPraLW{;Qg(a2|2M;|KFU0y~XEi=2M1<$m`9@!X&1B4@svWL0JZi&nF;cpU$ z6laED1;1;NYh4m=LpDOQ0yTRp>p+X({*^u^Uz8JH)rvF?GE4K|o;k7yvuKdkj7-jq z>S|M#xB?F*Kdm}VvSU1ZcfssjvtxdJJTz#Izy}BPJw0Z=>uavt$9T!U;5vPMZ_0dz z*X-pue!yXJkYKp{6th^#$k@Sy^L&0zutZ?t+rx$XIJ4?l$EI3=m&-WT1EHJIX4Ubwlo{o()G?I<50}yR4rLx&wOjbMC=W>h<^vdE*Prguzqr`1BcaxP9hn-z94<;Cu2HAI&Y8 zUxp&giKO3>bLcvLw=}wV5G~XPXBMVwA*T60cX%fF%(rf$-`*NB58+dvpN3Bq-eX>1 z?<}2{XRcVdZi~-jOPFoOW*^Vxs zgVqZ9ix0^1DTAZ=dnJ0uE9C0CXx5soTt}NNf!iybMVfe_Tim}*xZn=n&mQ-{7GA^y zboCzhK%V_c=Uw?sm&u*kg6N9y{TVnR&DK`VOBn{8iLyK|NzS?n`j6y=O@U7nXU`ko znX^_tD$6~Y!H1#_`yl5}?WrC-{ee8sQxX3+9%6ODEz!yAKues0E1ZP;86(3#!E-l_ zmSAa?ta+nwjkkFIuMM0s0~4p$XBk6a)D?-p3*XIVs_rRRaQR(>UMgRx?m z=idwdBlE^Q1|NQ4AN{fcuvUn5PWdel&zW>S^|h#nPV>P0;4H1VT7NY=PIC@29VhdJ z=gkCr(+piXi(E$+>$!_xLtwyMmKg}#x9SQM9`N8#T_GRk6GsSk4#NYcn&`CbC*rx( zIUG&m7o^LsTtz!;m%v#q@L3tGRW@Jz@}21(RlpuxLv;T+)}%$&j4)b-_&FQzQ~p7{ z7FkpLg&~veEt8oApW`J~f9NdlVV1RT7XH9P9!g8*YYku~6*Zk^FZ_FS5{Uh^V z|KDF*9d-v#+TbMzGiKpgxd+q}Z27*x!{sK|2)|dmgSM_tB=%+-+L<-4S$rlP9MWT# z(8&iEPMKkRi^F6u#C^@XZt;G}bMD5`g0t3ZYd>k-m&&}z*Qt5s!nc}zDQqDOC4JG& zx^3tFbH~XU!-0fy_zmzVir%GhJ3pl_t5zcTu z7i$|D?bZUC12Z<)xTo4=L2GSh#i*YR-L=r=yn{zz1+3%z-=5b<9&A)c4*+xZ@SnDQ zWE~xN8t`;C@bu`MTfxt(edIXqw>)iS_5wF+;|jhW_nix9vFE_DT6gwPdZQRNEg4{CF^-37zfoAL!>ga40d~Rs@ngth+ zkw2J0%K(R3+z8h%gcrh#_O-w{a)PY1x}x+<=ES4nDNl3X#F;ClnOYS()k-7mf1I6n z(NB)ZIo=-vKhghDhEENm2gTrG$`!Qh7(6TI)8!!C3-?bh4tRNrz2jy8`5Rfj`gWlxi@?l>7R4}D&9 zv`Bx(0)8JjwiCE1_1tvXuM7Na>faBs#;GGU#Ci}}L{}N5--~{eEqpLN*7722y!6i{ z);m8OT$*!3eLaT9)&>7e?n;ju_udGj-ajF zcq^LZ6dUlr!bRd5cHx)yM$r$+YzV_Gvj-^i;e?l)0#o|AckSd868Ht|%%yk1iD<61 zlb-V>KKn)Zy=62>&GJ=0a|N8MJ+?iGA8eLfs}IhRGh-6(U6`|B01iLOewM*|BYsaB zYZ9+Xux?{kDE-N3ChGB!7F?u@uBdsp;Hxs%q;``&4)*!j6|^<*a&R8phtJss{&Vs< z`skC1!h2TwZ!?SRuGv68-M$B>#{Jp`o0s7&v-H8ZSx;SPZ!6^bwKq871ee*@7aj1L z=wB=BnL+xyQ(Oae5SREFdd#ZWVO?mAPnasc$qn>5&Cq>B$IA&?#t~1!-Yxw`#XShc=EAG?3tr=_TQaPDs79-e09)J#f<@OH#Qux2#b`alt z7_T1L4bEfAy{FrpZ}CEP@gsM`%v|%3tH7UD!;8}-OPA-|?B+bHJeT}YnkgjTxHPL` zTlqxRaJ)tddLD{sn3|Wfihi;RKG*E(8hG{*-7A_6_z?Vee7=ut5qPz~-@M}f`EX*| ze2qT-tLYVM4#&G&bWwA^Zj*s--hn5+aE94AoJ+6KCwQHX9Io>kXOu%Y)yLrCM;Ex~ zPvLJk-A@lDUE^F2&B3;wE!LquGC1#sX3UrL=X}g{ea63ga(jrL7jnmNt2JgertnKf z$mK-QpKIv4O&k7e&W<`Ow(vb@25?;2ba?hMKa;#C9W;VE9DNZVL<>KaUkuTDRZ&P4`!yY0Y z(2nNi<(%MUUkA*Hg7+DY~FowVh*3Kk#S90 z?^E;2eB7fEFxm?J3&}3L4&I+7xS1vPDs}mW&{j1ARQ)uX=~m&-YxN{&8b7{3y6eR8 zfi1Gk&ML0ql|pm0x>O3}M98fN_}<-~W{Z?~esX5}uw#Dx=kLvL{`!;o_V-_!)`Pln zqQ5QUm$iGr2>TtgeblzrEGHO5+?x%qQL}TSRk}nrVkQo^=7yJFfroeC$(2m2}$J(OW$1`Qpe@{7m|K z^K=CG)s4;icypF}WRVOIJZFIWJd58=`2yiVdBfys)HE4)<4Am<0bzsYBib4$#V7 z^DHj#v(15Z&;mzVFZi9T%}g^r7g;l> z(eq|6oif2uvM-z$S7Km7 zOc-P>DCL>202YxJp6B~3Cy~Ju8snvWW&$5zkq*R~{Hoe-I-Jcq@UC!&HTZAk0gHJj zygXeK_>orO+Sl>YJ;3j)?zEF}IxFB7Uap7yBTsZ(ZKyaKOPFn^m|$LhtibXD+o z=w(rtU-jnCneFBnSw}o9(r>eaefam!nDouFCV7TDF#Q&<**A|T!QY%mg>kmY|JK;+ z66{AoI!1)ag8ZB*w1FaPvStBqah|$AOFndL8b29&9sZ~XBlFDVVg?c2i3>c-Htw%k zvIs7^&F0wG15-gfU z_>*!4t~uw#5V}DU%_`2lAfH#9bE{?u1uC4;Ype@k6y?M;wVUA~7-$=tp(Iw#yBvv9}KfTjD2-zr~)OXYitzm?52`1Rg@qXN2zZFwdgA-CjKVez121zm8_hbn%&PaK=(EWsm!R zpM3KZbd3|{0&e10+y)CiCtv>=d5Vu0oaQy$=qJL))63@dG|w#8_;{JMlC|zW8mzL> zb)MlSUWQF{;# z?V{bh;QwEcJwCWg$0b~za%{;f^oTP@G6i>?VP;W@v%k8=Q{2Y|IyQ^wz4EfA@K>T8m>!U?zP4y}L%R=}uN%@EJnDBpW-ie5N6(i7|v z6*{~&I?Q=EJTjlWdt<)*@+0%;@qK(;T}xMX!L_+KOKL7{08LR@iikQ>;H8~t#LAxp zc>i&HeJSuokY6M8MF&_{+~iSGbdRRFkMo>!n(NF_*r}4Os90XZ)_UIj`QLstzx(r- zM*Sh*{^F(i^&j3_|Nl!ocfbEHUzlJ1?v;7}-3~angufzTzW(W<`TPI*wR!g8mZcGg z;e`WaKD`YvUX836xns?{+uUJhTrGq?9xy$j67Y@kBZlwGf`Zh66JcoOlK1YPRw$Cs82 znq(tta%~b(E>Vhv>%V=N!FZ7O!7q7AWr(U+y^1*Yphd zoM+VIXYGM2k1&tGF^c9*?lz29J^`Om0cX|lH}%wmORtk=I4%b8&#PYupGmomUa`S@ zhWiYa&zJxjysOMLgJWCbte3_wra9!ge!3pZc+J!oAY7Qoo0)~n$a8(|6_rRU^ zZ!nVsuHqQo@`z5EJ?3y7gKJ*i7%;ElD&Da7>-^h6Z_Kg(Md1YeU_3twPw(Wd*Jvc zuR5;|+{M-;dJ}%E7dJ=noDZ23@~@iDzJ3j@5dXP4u7l`FLEgKY{!ZmrN_0;&;kPss zZ3_&(0cX{O&q<+kM##Oor{#yf$@Q-3jNm&9pnWFDu$21w%-K`cnS-*yuN&-FYjA?f?Y77*w(#)xn3vnWeaE!vczFOn z_z{}i`_TpS8GFe(8hxGp%Hj&qhc)jufsaX9-IHs03U860CY#tCB!>wvSOF_k;Jvb7 z(cqP{bPc1)g4HwdXE}U`HT3ZcdYWbvJf)XQKi@d8uy zQ`pGkMB(1zm+>Jm%THc5^>Cy(^A+KQOYE2H=wv%+aT|F3Yw(&mJZb8?P*<9C?4-_I zU=w*Pym)av=&d1m73n_exm3y+F4`+V5^W!P?hyfGjSEXGrmOc+^o3|SF{I4+M1g(`*YsmQrqz72I; zd*S%x|CJ{w#F}R9qpZoAX;a~x-onS7$3v^60QuKa?p(1L$C z=QrOClEq;yIJ(8ZThtmy*8%*r`kTTNaQXN!%k)lJedVXmn?!#f&o|EvT55v*G=s-X zor87u#*93_c%mzG$0}RZAa~Nd%Iq8N|6R@=ha>oW@bxGwlGeGLy+B#^6?w+kv&4NX ze-@)_E}S8INN2AyNGqJpY##9)+>cItX{?og^oAflw`hd(lYEgeG?^rO8~&i>0DD6G z2Dk^U*Mo-Z!%rGU{}o5V8EeFT5e|^ot5y z__ugw!*Ei{pE&s0opc=v|Jmv9Q6HQBTm5kAPMHKxkCBfarBmJpKc9<5%x0@?K7RRu z`Rt>&=F?B#Fymp@Y#(gG6J_Wgp27o$-vhnPO|DdPFG6UjA^3tod6~Ti9)TQx1UwQW zvzcIjagpuvp*@L9(M%cj`$jWpNVSOBxZf}*FZaw}{^Pgizy7bkSolv}#2Y(xJQR5H z$PXMpSu^U7R$uk;lP;Orhi2zN+w4E8n=gL2Z+`dJx90Ev?I-i(%^shN8xDv*j*bIv za-Pl_d=s6r`R04x%a^ar{l_~N&!u^4@)ItFz`bR(4xYbOFNqG^roZ?xIp0@ga@QRM zGf%Y6EwR5ZfG4M!za)HU15avZusR~8A#0YgaGZL8MrZi^Su5oYaNw&?f!DHVbebEN zD3NssYk1Mr^}VOj9)|cCb#9m?YoNZY80$n7ABol=^)skLBL?=0$|bU1%n5 zJ`)Dx!4t6$xDs%wU}Ts27{sC*nF8-cP zG{J4wxD7az4$of$jNRa@mSW%Va&D8qV}^{1OXo8FJcchMDSQJ*UUR}hlEI9!E@^&g z;_g{%uA^oS`{gx7lb@pt!p6R4CnKrZ!lSdN%!Iu4_#XY>_ze8EW*8(mho*EUL}y41 z)2Bg~OC66#jx&}zE7V!8Yc9;?#wRHZRbLCU51>gm0@l3elDeZ;`i$+yDdPj%tFPQ! zq~99sxWsei323e)92xgajs0DI^j$E>6V_hMB~UM__OL_dz#fnpcu0;;I^+lFRqy)l znKxjO2WT)k?z<>jcaZf@=dlEMJOf6~;{lb9TcWo^v*xSt4c4q1uw8)jt)6N1?fUUc zMBy4Vho?;EeUo!ugL6)e&$@_5p#b+;gtMukdnzw!`ETGy?q6m@qF;tCoi_fdOV;c}^;Ih; zri^l#`?-rY*~Jr}nfFCFjy-0uy@H2(#(uL8PL_^Tr577oqoB z=3LSwN7O`%t6ZcH2VOJD_ldK<#L0Ij@N!rgBKUHh<9uGUX3kH3@SB%Ron|rzIS2c> zCzQcZe@_&De1bJH&Yr2+5}I)(y*I?mNuRQPfoBJPb^#67;_}eXrPt-*Tx)zL2Ye>- zn*Ga|!~AK$X8wHFW_~fo9KB5wa9fLbLhyf<;7Uv2Z*ivL&Ngog!}rrkg!Xyq9CKxFSbl(2 z^!)~FK%F(Y3nng;&)3YfF8tLVf9C{#_*OV*nMy5kHp3SsJ*a?B1plkJCW~`|ThSUDiz~MP_E85b>!!4aFnn`-^xan(ZvJn9=2&ocHM;)c)%X<4033%l}8ydp^f?W@(-zLC`zUz#{=9 zkU)Cxz4r#0FbNNk06is&5+#*XDz(b@R9AJ!)@;n|L`SFg>_KYVBY<)?4W zr?20EXVgs{@2Y%Rs{I0J#e?J#D+4=@raVgKmh^zq_(#B-`olQq2Q?V)DT;5<%KD>@ z$l(pCGCxgz+Wv0MoV?mL7azuOyuUYp|F6GimK|P*egVEod6yY88Z#3IPvz?m`}}?m zyd^5uH2hX!O*vLc6+bSQ7i!~!p&olZ%8{E(naF4~+JH}02r0irTJccxdYk1<6 z|Dzo0O=>{pd~5ErW}Gb3*V)Ktm0olXFQ%|!=>vr6N>kPuaEEvCoDNHT@6>=~;W?=f zr`NBVxea=Vwd-ctg)WF*MBdISew!Nicm;e)-iBlWJvR5dG(q~v!uv+30RzhAiJ>u~ zJ`1vjEFUU?p4ubl3tP$xj zvQ6qwa;uuhDU(106BIs)EFf>rju%+Y|;%%TW`z>iB~3q&Dbl%4qu2_$RYVx4=WFN6}OY z{|r&TI`O=%!CkFyOi|~9i@UB{nha%(N5EubA-D?e*y08?=K`8EI80$3sp$#)kkk%% zd^&KF$;f@`Mfxr9LRSb62fU0QjX||d&5DL@e;2+Kj%R>|Ftb2T>dZBhqFxTbL--1; z18P9ct`CDjHsru zyu+-SUKL)59(hQ;&_#DvXBKS}+@lZgHH0e_{&qlpastLCuJseW_yskcW}~S_%aO^d zED+`W`uz7yJV53MXY&Amq2Bc&|8@)p*W-RF!o#a(%de3Uj&@D?rt&X|r|#o_7w7ZF zhL3k)*?i9({|mL|U#Ne7x&`OR9exR4zDM3pNA=GW@{6dy^lOt^O1ZVl^{?X*sd2{) z;AcmC|I)a(@CI9Rq`(MA+>2*x9`hQ!>I}T$n3*#>Pq{mvT)`{E=Ywl%P&XDPCM?dX zz|R?kSN2U@H|`rZOpdivL9Z!nCIK#=pqEd;ac9VyOYv@s;7WaRq_?S&$JEO&z%8UX z6Bc+xc8A54PlEwcuLh`dz1-PJ_{PNK4O5u{F98?Od=BAynqAPL-tX{zcjyVEnb*%) z=4=rUBi~mLo=Ya=3g}+oYW!I&TchU#(eTSH9=O=eD_?S#W^puxq)P8>AFn^!*nLo~K zf_KlFZ+Kqc-lOiP=Xt$|_hJR#03Z6?$2`LwFji?RwI@{jy&)q|Il^sl*xe{ukbW?4 zdXKm~o@h>s_z_x<@0vb-tZn=?!j^ih6U|rL_0f0W+uC72b*M$eMYh17D&+dKsn2() z^-q1w3L*dEAnV5u4__l6UzKMKW)jC!B|n`PZ&xIR{uK{G5gn88f8{%6xN|hiQ0J)T z4=MLrIiBj1HS;7(@1|VcT%MVGyq7Gx0L|j)1<^M<&}ec_HsR)b;FgUE`WE3M)sTI)-&`7HpW{t9<-aeyWP#z~`^N4v ze_!Ff^WMInUNv91+~xzd_YU={vT#~p`CW3HR0CG1*=qcE9&L1i`XtJF^~TAT=3Wir z?NmKjM-R1yzi-Ihp^Skp_4hW|;oc+s#CUcGx9?gQc@eBV!C4yxEze(A}o2q?|k>bx0NSx4}Or|DFU8D{}sez=BD=Z^WXA9 zIr02%y3qfU&!+lre)+Cd2MP~dp%xHUq*}qwyq1OKTV|aaVU1^~42?EE*%&pR2c4mp znGl*+5GAKpI(>OXqVk4N2WqC6y!YZ9H+lAJYh<`AG7l6?!?6HI$@w`R^vs*{Q}h1K z1+^11%E04_XjUy8kM-%Pfp?WT8*1h!dl?{XT z=;*Rx{`fbry8rmn{OkYr+5GVz-@+%iERNSvfVYI>S1!l)QJowa_(i-c%D?VxXW$#r zzER^TQ(1kP=HrT+Zs4ic{FWGXh;mN{yLesD@hjIwvzhJaH*NGBHfn)o4}AjlTmlW8 z^l_VHVhQVYDZ>NqS2|AB@S0UOg`Ry4&67CZP}E~(S+9WyD+AI6-sPdj@N-6J4vdRA zuXb>6d5DBN+UT?A><`h4PMRl6*DX(Zk@KKKwn&9p6ODeJ?3NbXBAJWSZu5=_YsQA~ z%IQsJhp;wt)P6Oza~1CSGWUA2j82;xPTFMY)#M#^f<3LEPY{l+wI2c_N>T$Bi{e4q z2Rsiq7@&=Mc|FBBP0geCEv=yTNfzv=!2fHnIFoq7!JY%u9ny`a!EQ7IAi>%x49GAz zZP8B@SPSHmbGO#PKa~q1zk~8TtlIJdUZE$?wA2>&~vULKP>akxhIE45J(?^u5E zvB`1w!~*gWvL?YbtjtYnd*PzuSvx%6Jo}}9?k}_kcf}bRmevuBBg}hO7P0o5-p7)g zIq|&Lb)LD8_YflUv{_FxX9=yUd`;AwIkMp5%u-3yH)S4N0jERXhM%Ja7MTUZ5V!0K z-?TKJw!nmSe|B5o4fH1Gg`}0IqTH4oxVwiM$I?u|>*Vm7OKY5(!UIaJTH=h}rY3rK z{W16+bEDvQ_c+&gsjEiZjh)BLc7^|J;DKnPT^qv>Do^XwMkW^+v*v;};XO3V*_w}w z{;S4bt%Au{z#Ns?BdwQaL?+nB$(AsE^a^lLez4^r+L?G2oPzgOrM7PJO#1ZfedcM6 z@$yM~s9C7H=!$l)OfbXk2AZi`<^|l}IW^F0?%5+WePehrWvHeia4PT)j>Ht+bozSw z-SQHc9Pja%pX-R;UH4apy0*mcrRjZ@ODdmM8f>|$KAv~o<(?SR8+-v*_ubuR<}*IT zf4TF-{FOT3rzP$e@V`^;q46R!3dnEH;)zX?g;xN#>VYY2(MKqkrhM-Tp4+Pyb}%Au zcMF|*9}KYxzS^B;wy%R(VqjD+sONXV`IW~uWDj;9Oqd*+!Q8}EaEhB`+fdJ;A8@0& zvQ1twGyE!VMw&eHB=0khKhqEP>0Y{HBJw!1#xvY;%1DvksYmY67<@*Y+RKM%9r!t_ z==2NVGFcn@Zk;-kIw?&qW0I_o%o6io*bj9$*D_zDiH@%El=TP3I=Bv>jsLjAzUZWw z`-5J|&wf;|^(#jHYj$X+z~?1rGDY7M=iZ5;PmYnd80P%(!?SJrz$(y|DMwzpPdfjk zYgQep|4!o%52N8&Wlt@wQ~!a5`R(+L)Ju^CczLw+C1%g{@zA^k@B0Pr_n$K!^Y=x! z`3yg&`4@d^j^Ye^hWDx2vg)(tcd*V$-cOudjs(xBLCyAlYRUX^W6AvO-n#kAjMID% z@BZD5Y4g?9DRXgynJi?`ol}QgQ17V*9DtQebC5@msAqEwjy~c!7s$_vRZoq+NU+_GJ+y{NWuYK-|-A>qy!1Xmlual;a0(;X8 zHDT6A%<8x#&+lyOWzD1@^A8m=p5su@B`z(5#v~wPuqV>(K2sFCEMfo}QE$^V@C4_mxpgPXM;XRT z76mIxfnBLD@}c|o$C+u&o)HHYr+$}~N%f=faP>eD?igkJu6oe;!SSlL^TV-tl&y-l zK^et!XPZgY=pg&p84gk z-t=FvVMP;F^lUcaTyHUL+ z|8XecF)L(!Ev()|-+3Lb7vIke`a#~K{2lswzs`q&52k?2X{ce*Fq8Tpz{UTnAH2Z~h1h%X>(zE=V1sB+J7_67N zO|v_dr=hw!3BHq6{|R3{7?BGOSL?+K=VpoDI!6 z-28bVP4+%B8|W45WMMVt7RbZ6Yqrn__u!;$=PsSdg*+HK#C#rctx*s_3!wxng91NFP0bzj==S`b%M3 zcEq=AK-a_e>-Lt!G+5K4uQX*;3xY~oGI8gb$F4QPV*si zaJ{((Js~xfl?g--q}-e=c?Jb?4aKv@bnek7Xx6bbpE>5vrl)Th<)5_RRJ+uCI}^9b zf8e}DKi3EQ8s3-y$GeTLjVvV`mBTs+Shw~YO zRcynlR>8T#H?NpYW#FL;@&(8x(|w2Uyy!;fjm}>`=NW6{EAWX=SMQrI(0>1bcJ5E; z(*FhQ=Nt68Z>gE&%N?@UYVap1yc;RoU5m4ClkK8AzK!0q#%xq!Bm;PuH|vwCTpLb2;D&%Y(wj^jJ{m>^nhHKV=%zyU|Rdvr_45)b?qm!rhuM4 zjOHN7U8cP5r1Ylr9$7FuWmja-MC8E63wUv*m)GpL-6i%1z6tqB<6ymhuqOEcr88A_ zyZ9mH7+CW<`12gzFx_iWp0R!n@XVz{u`>BN?=9D>u23G)Ou%cJAmdHmFT{b-5$eBJyqjlUKQ`;?ze_*4e(XBr>0Fwq>D z0@YTG93<{V&O$di842*eEqp_o752Lu^X8`;5(xUt|W%3VD{ibIqC2 ztilF*+cdrCCUwP1bOI0PZR?IuCY*E)nw90}-AIS7^GLJ2Qv4g?5ov0UD11sV1wISk zqCK19?=<2wCKr$3Vy}Vu!T)N`NEt6fkvyde_(6kuuLa&-=jRpn z-Nf@cCjashF69hOvu4$3U!CFU*qgkD4)&gTzr1Q*b5?zTSO032tWUfw zx2mHv$a7v6se`KYTY2_Pn!85Y6?qq}913bK&8BiirYw$8^NFqV4PC14is8hB>0P~Q zwr-FI04Ay&#dLx@2yKq)KRw5!YHjLy>GW2p$9&)x!X$Jqspb}k6-&XX!kt=~Q~Vpv zIa7v44o!^k$N(6mviX*sMAAMPr?|lt_m6JMNvohid>N4(!D02|vV06MBqAEi=%(>;Eo(_Z4 zY>+eKKy$Rr?4@;j(>2~r*zdt#(g(9ElDn3pW+KxJ>?VN^&sCo{9=riD@ahDb63vAy zkO@(st}1}pDMPeSX6_v4=HZKN^XBupIeyzC_xQxTeSK*D`X9eBfBWZe&F}y18*^~c zw&o_(`zg5ED%jyB87Yq}{xV5@shP{l>XR1m<7C-W_3;!zjSGtIA~_k<7D+&bZ_LDuUgdVM=}`>dT=7hqX#Jm@RTml2P+ zxQf5W4(E^FY?X6Ie=fdPbD-t@4DfC=2hfX_EyU;B4D<8j9a6uoIZ4U^*T*8+kh3ey zz?;4X?}-+N8dV++Y4z0~7Wp|+a657FxL_s9CCuabP8aAksmluJAcXhSsAV*>Z9q-D z$Fm*Q!Q_~+8>Oc7CGV5%O-5>%H643sJ;OAbWch|wGi`vEN>l1Yf9wFC5g#m{h_cZ0 z{Jje2WxXe^AKw)9mb_avu+awDUrp9(2XB&Q9Utsf%t0Y+J|rUMQy^k~6H1Wd%G@UU z$`iPu9dLnd)}%aNL;AyQG*Kfo*dsW<5?E0jj46DdbNlgxHMb}Z{vHIgbl|b$YmP24X@Bqr%EpvZX@E5l64Q!*~Iki!V^UiE1a&OSf2 zei44Z!1>st=BrX`HNYC`WCb+Y7j-Z~YbGo8adH;C^Uj3HUcF+H)O-2c(>@H1*#2Q`H1@}Q6GhE+7-OVn%B+B@)dFQ(?rS7`RXMt}6-7Bda*JvP6&a?gCm z|L`?6zs zxHsjYsrt#KLEqNmE^l$JC(&Ve!5X4uH+Y%xQ9Dy^Wf;`WR(4`z&s49yo_4e+z@^+V{% z*T|SzTLIfzqt~Gh46ueHV2Ozh@HT2<vA&Xa~Brj|uMtuzLhGw_L`hP{O|93uj?-uo$fzddR|&H3n) z>oa^ty-pucLl0R7>&uX>F0Dv~_m!bmjlwMk;qWbAHs?_W-*A}zJV1>UWUa*U`jqI! zcDXN34zlL(AZ>Z!2RqDi+l`xp-K2Rz-+e&sq}e#{7klFaUYh!~y6dfKFS#N;e&+Z?-i2U;yG{*3p$IJ4`i* zX0~aT%r1LJwcoo(c&>Ox7mui^?x3LsKNsHD;Ox`<3$5c4m_-54K*5F={}Fqak0$GC zw1!>+9(ZZXG8nKUg?lKGeF-lWE}{j+$AqZ+0S)2^FA7eafw{{KJ%sE zkFxNFRrIGtJn5P{nx+1WQ~So{&p>-8&!qTGVS+`xF?BezE&F=8(HPgO+&Ghk) z^^~cT;G6*ilYc|}f#%O-l$Cn%XuO_pM0mvgVUX(`cJb!RBr~*Oe+IyGotzv922g|PhLtO$$mf!8Rhrf z@WCE*X|_e?(7}5wqg{)jlTg--&W-Yb*$X2uvtGn_+GywCid6T>8z3xOdCnO${)HiR z`BnxDFa_QkHs^R#&ff2msl02x|LKkS%b&k8zx~r|^X2!)X79X#mw`;*4!B&COu7-X zLefdb2m)@ABJWZ1cbxWN88!AOZfe5_=Gn(_g5As zjhz}o*`3oF>I~LxK-eXEj{q9HO?Y?@Kfe!;whND$YZ)wYnfeGGEy!%lkPWVo{L3-f zt*?&o+@BZCt6|jav*()hzkReuL-33fF!Uob{d?TcsRZv=960*mBsFJ*`=UTTMBTxB z68OOv)M-a#H6Mf1Xm(WJ5B3Sh(?oBkOuPEzRW#hpnWyI3gYVr#zor=(eQL!%n1Qkj zGT>;+`m3Pvm4;G%_Yi&L5!o@);2e;rr5?M@x@_X>NH@s~p+{3Dx@K1R;NlN@lTiJOz|uWiG- ziGRB_1>VQqU!|XJuFRS|xKNzjm^>J3~5lIR|j;6}px z+~8FkPbTrHGTR&MLKsCD&s&T-%g_Gwp#6~V?;-ii((Q)1;}h`R%J)`X`*F3r!L5I437 z?%`mcF9x5Q1^A?8>OChtm6e6$1}~!~3~^2c>1hJ2X)hXD2j`(?uuJcwdoqIFC5?Bn z^zeZh-g;$5?<|g&Bf-~5krS2S-6@wmga*+IULR)$c%2zSM~B=yW9q(xl-b%=?U$wpjG9aG zvQEHe&iLNnp*wqz7UB(lpaZ^FWr(ZpO2gZQsoCWBR1L9+CU`D{MgYDr$hqW!oA6VU zOM4WD&y2DsmGQ6ntzkGvVGb7d$GUN%9badkt~qa^kK`-?%g)k+Y=QT_d<_0~dye^T z=tt2GoIFDxftG6kK3Jy)Q-+GP0!?b$8tbu4_PqMG3L4@f{wJ#rL&qyk#W`5(F1@F8 z5t?yqMWw^zu8nb)rO=LxE6SnC(|eK6JOJkH14GlV z>I?JKJO%2lE;zq3*Y)gs=mmyknRLk1P|j6_8L0)bDGK0R$|}#HQz*;x2yP*)TRD?{ zd>X3%G#e|-{SX1S2*4RDH%0fk_&mE0eR$wLxD5I{bP)1oY8JP0Tc&L{%`|&`n)7gW zj=P_1mnE=od245>(;uVZdj>u@vjJxe=I2ei;huf?BLnP5C-XpVo7ws6W`kKeF4n%+ z2iJ)1D3c@iH&4A4_ZuJkz{NZDqEn7?H?3|^Yf>MrqZPFC45Y(Q4Jb}o_qKdo5pYvK zXN?yfy6#2w748Jj4lcmWnIz4c@`=S0Yc`3CUQ{)xhfF3Xy3h?UiY01J^|12B_;@#d z_`wMEg|7q7DP1I9!dg2@4HqTbBV;l?JWJ&Mwnk*rjJNRdcC4JaC}+*?^Bl9z`sVrb zhI#jSWZr)sTiD;=palMk?*c87{O;2J6*}nTz$BL8OvKAon`v`+JT%WQ_RRnMzy96) z`5(VAr zkxX~ml)7N+!pf-W(lvUHzQ^*^R`BfCnmKgwXzJjXbKpGc!!%<;87sn~HMeDv^G^7# z{5wm$S84wWO}s7KZw|PA)&8q+Pn(=S>v}(EkCyCs!SP(H*7n4xtpbzu4|qX^1EQIT za1KT32}<=M`M-E(66pE3yXE^$<>-%?*%zgj_rP_EI|{*1i31i+p2v5l9FKZ2h>rpt zBYfuo4!Vm*IE#*1SW8WNigQI-AHsEdIr2&U0rNfAt ze`cCrQvbY6GW(oNn?1aaFBjL$H_Or$`^+z^F7qv3hOgE<%$mgC&$`zvPR%%P(N`rn zn>P7y(d)TylE3rhrrDUg!M>qq;f`{#wk@tpT3qfk^*=$@^6KIZGIhb~9cU<{@Qd)V zUV1<;o?G=m%B6JEzdG>5Z89HV6Ao>2miv&pD>8%5Yo0v4<*P7{YIE&-|KO+nc4%rzVu1O|`Sbdl#+5J@P?r z8}HN=6XEViQx}!5!+BqYE1m?$fTJ2RLrwawQ|fTdnEFJWp&6r^-Kh+g3TLstw;uYg zKKS3(gKMVFS*pB=BE3ZR>ZHk`Axu#NCaE1$+=CH3-kWgm9<*)Vr5j+w!iR+Q-ZNov zK`-aJlbSb7y{G%z4>l|wufn_0tQ+AA%U=3dFtjv#HWBB(fpgM4K4*%o%~qTqG{QXx z_kjOZb!Y|tsz1R@G5jE>H}Rn0C+^`z9nnA4IUA%AP{w|U9zI4ts9At1&W9A5E@7DR zSdYM24$!&n!Mzm77g26bknc-%pAT=k=C(^ushPdffIGPdHo%wG$ShE9#VYG_9lpa( zZmErRwaTyhZ-@RZ_n~y%0cn%THe2Nm4&ynD;ksW{U4szLyw& zY3cBG$*%eG&Qo-I)Pc|NX6XA>?SJncYn}HB=AI$zGY00KS)0QjPUf?neZsxIg_f-Y z2EIpqetHG{D}1Z;j_MnBc>jHL|1Ca;F!(;7r^BqJ3YiFP?%6uMt?m|S|C?|tr7-?# zdh-<8jwt!?^(u43TS4Yu<9FjM-Q;}s;ctEa~V z-vhJA=U-aD)BEhYnM0Q}k5<>3=K)qT#h*W7BB${U97k0^V3&B_Hcg z``YOcvj*)_kOZhZCMko*dO)$};xA8#*>t%<;+Cs{j6<|L>pX z|NejfYECb@X8){b`s1oK3+(Nu1M}k_zA!)i@`)_OSLPIL;0QiB3zq5*$WNcJJOLTb zYH0u)BRFbs%rd#B(%o8T1p3e+^=NyWymmAn4t z!(&nFCDAhS25Y z$;!%r>D1AywHK-Hs1d^4OFle@%4$##yNO4BgEgXT3H4r$5IOrvzu5=7K7~X0(dI#` zkB9X(JOgLa3oqH-QNMZVa#@<?0q&RzQ0N@5KhVo`*Wb?jk>F{U-WYJ3S&Z0b^(BZs{MAnFx@`Y7_fq|% z=B!A^r1{1nIJpq#wQzQM;QiDgPH@Lf=B{quf?r0bRl>(!L^E+pzT^(?-~$=z@4(`} zKy&lmof-2PpT^|`S#vk9TN(Bv`ms9uG_AeLd&+SiOSfFibKg_T)tGm;4c@N&<1sbR zF89|Ko|h(ix;nm>IyH73Jwb)@r$OB}pf4KMoo2teY4*0G%=ZAdsDYPMnQsJVAL4FE zqQBBy;j_ooqzeu*UdiDCo7_cHD1Nxa8V(iVKG5&V!<_^dN>W$ngcZ=A@50e2?@St| zE@ypp5x$7tSzggN+*1bai7z_1Z1KcMM##iHB+oq0CzDpZiV;k(WKlQ+Lx#wCBuTukFMYlJ}%-HLu4Cht9 ziyj`%vBA9*hbvM}a}?if_$t{PU>+grMrGTD9CwWu&TI`V&jHut1}}2s;qcqYIR_`! zj5;rPsfRku1?HjpuhfO#foIZQ_HeIwy*DMzao6YI0u$hp zIcEP>&`oNtt*|`Z%SE`knr7ut!<5KV&>D=gZY=FEcVPl9K{LD3cfd4RcRloSBl`o^ z40R>_ofG`eR+=+wW$p_0zDN2MFz-b$r3LyW%_Go<<`X!mS(RhqU`~=3zD)iuJ6WLX zIr=CxRO*wYHxcJN5APtnAWAQnU11;bbtB{*gxR0!6RL0^HSVSi&n@N7N$xEbuD) zy>y-05AH{MDGBeI<{VZ2y5=Xze>faP%oyIQ&z&(uH#-LFJ>m{OW<8wYr+qVVo1A5` z#p(U(WZzV&#WTzJ%;-s#*P(YIkSTNxsM(}nGtiGM+?;Tn%kgS zFk1ny$9q+$-qtMOEFS9&nTUx+{HCmBFK4fxGa@6rQJxR_od(!=k9zQAnc2DMQ#d*7yy>Y^JQ(kCd-(9&qI)}FH;&e(rDa4d)5efxNhcKys@rB2qo zXU*w-4z7L--hMo9vpjhH4YHP~O`32yn%k~uRya00>bLRr_%WO0z8i# z-WHu9%A7hyXL?Q!sqUN|XfjApTRk|EIv%k+{BvHq4sdJf zwS{{tM|K?zqV)JN@cOuFr3knmo_P5Km*6Di>s?0&t2rIh%h%C)q3>E`RtG*aJNsY` z9CDgjI5X7Ivt&jr@O`Y%*V^UX1-JKs1r&xUGw4%0q)4}5?R?nnE31*~#82rlI(2ae}x=j^rN z2XSy-`@mCG1BU2@Lg)bH2ljG?xT#m9R}+S)*|^Fokw!$>ZrTUIwD3?o4%FUuW+pFF z=TG6^TZF@G;*FH=q(81xb8VZW=VP-s9^koXfQiN6jWh5gTGzjNaoX)L`wgu-SXpZi zZ{=~(^p4V2R%Y^lVX)ymcME!e5|~zj8E>Tub4CxkXh{oBA-F^pXSFo@zwpOpGR3gniUsezl-w~9~=^YL|vyDdGaWCcF-*Ht8|fi zmb>I+cZc{`&|y~K%k{kqm()9#&RZJe9yno}c^nPS)-l=kM^BldF}+Hz7`P7JfF`|p zBh7OMv+r<+os!d}IhUWO*UdKzo8}8@FzM3H!8pd?b8WEb;ynI5?$ZwY|7eNNhey1z z!u`cP>4Hb`I39viK4I1%Tqi$MigT>xr$!-<^vq7az%#U3=zhMtNlgNGbAnD}dM4^Y3`2mf!;e@Z`RvaEE6P!6Y9Equ>r@ zJrwbb2(L?^`|}j>U9!KbI(yO2wBdcmXtLh&Z@#0qf5UrL9ps$}(5(cZ|1;Y1Va z0aukiAxeL(?2yC;dJ6LA%6LH}2zCX?;>TC}=_65%21MULd zMe-VcbBFi+ko@NbydBh$4f^2*=Wdlfk%hAp78Ieji&EF+!Rxxzja@vSEii;U>$1%K zzl9D<`U2&<>@kO60Cp=~;Q&6lMg38MgU&yOKYoA?6kb~@S(|A zXP??q>=is*np?Hb+856r1Pe*iZzy|1?^PVHct>Xv&Ks?Ow9pYWML`#SMDS+aPeC;P z5qgU_9CQ>6Q@nYIca@<>tDs-0(HmRyRl%3rXu)=F-7-hywS7%L`I*|`E0@nar%xR$ zlIshelw;rI;3CWPfSL`FM%UP}f$89tAK*K0anCEiq)k>&mz?u5TF#zkgz$Gt^H0#W zJu@9IJO&(FyTYEK{?n|1CLC3xOx7jy7sc84`0s9=S*EoZnicM1bjw9FLDD&^E>EG? ziRYOo`Ehv$=b%v)-r7hup@hpIEmZq_Duv*vHg zOR!0{g7V(x*2$IvH(6sJh|6>az?FQ=e~8SPc`yKFhX{9SppmU}epSH@?C~RVGLP}bpUpCRoU?jJ z|K5uSO(O^HK(1RKymbH;mB&v|SjPvh-jaKM zr{R$<;EmF(oC@5c@`scs97orbK(`WWDKm$8<=m?Y`ZFKgNP(=IGx08Xz|PQMU+^_9 zsQ;y_R%TC+^Pq(;S@T*nXKoCyqq!#X-;MeDO|WKZu9bnSo=P)LH5X!yUfB&^qV*o( z_vHET;@#3-kq2s(GeNT>G#6F#+mzE{$2+vLG!2%=J4J6gN8LF~j>9Z{{2aLnssY6b zZh%h)(fYK($9B(X&xzCGWe>ESPMzEZwlT2~$ zgfQ70nu)na{@AK8Brt{`T>1v<&IVUK>&2fCq5eb5Z>NT}wEAfFmEq>({MK0@ZLp8? zNWObPAGMRPLg8G(0B7JKr&i$LxN|$*x@it_?583c z%812Z$`g?RS5HyHXzq~a+ z|KXGQ?x!!!i&wiQO@5fNzhgYN9Or1dz%%WoEMJFopyIdH$H%0(qb}1k@WZjnACzYu zDwEUFWaQCN!WBpp{bc33H4j9&&?{h7@}R2j3knn9SIt^hww}1a09q9Jw?pvhs{7*b z-NGGna0)4OcoF7*N$)5BS7Q_fhm2AO!sRrmQTgbiKd~}}xmU9-=6>)qD9cbfo&sEw zW=6EYO83}fmrwBXbN_30(ZvJioYGf!nTgS&*4p;D;V+nr{>)}RKVXg$-mF*f1|Jrf z-$i!&m(1LF&%QqMdgv$Vb-~1h35lyc#>YuQB0BJ5e1n;*@1&E+7+ z&tX2`5BtRD{_){5^&fMCZlU3(Pus`GFwT;%Kux#Dnmeup%n_Lj+h~c~WV^MgKZ;;P zacYnNJ!G0*EyP?C>2AI7ib3uvKisQ)@+;g&OP)LIOY!c^g5$njT|*b>B*P56KZI7o zPk-iCUC5mj;EYxNg7Ws9zDY1ba0@WmD0-9>Txom>T?jw-2KUXYPek+Nw(t~;xTCvxP#dbJ$)wY> zNnE{ZV&n^I9*Gw(agg^N;$8@|=DmClFFm?^6C?_yWs1 z$LT-p_$BSsa6ZmRJ9w{~9(JyH*KAbidFVxySHI3W^MWHPyCu%^%-YaAQul{k;2!8N zRRep-(ojZ4oS(YeZGZ`vq!zs zAg{4T@7jT1sk0}0;yd6ToAeu1&IZkPY;fLcmQW2orrBdgYM(izWIr?tU{yJEG14Qo zf1SHgCD)(^*I2D`*TO+bd#8;1L>um72+!U?pN1B&qD(*bt#p?S@Jr={A6*B-hSR)c z?Y^2KGYFow1ZP?U)2pgRM@P1i5vhyHCkMU83$1=68=gmut688|=D99jLxW*`#%9zYa5} zrG--_)F~OF&)L@(_-8I}fRWuHCz&}y`skotRNXw}c^;uRJ0O?$6fEy8y6g))^p~-K zdAG5N#)V#zn*23A*Ev4x3ueb1FLB1B9~$Q3rc;WM$HKfBu$KWT*8xSYtMz87Ptn|Vi2ROqm?IHiKtT4Spd3TrK$87Xx)8G(`+#U01 zTGm*@Htx$+*1)pnHlRD1nYl|H2v>{_MP8`@`qCQpXBqsXPtCm_@R4Wlv$R+p>O2=Z z6Xm_gN8*%!jK7l$GDFqNj0E0=W`c?z)vP9q%VBTZSx530yYX~vkZG%#bBpM9m%ykt zc#ggzygEMSHLwnOJEiCFa(=jS@Qzu|Jo;7-IG>yIME-vHUQ`Dqq#;RB!)3woYH9e2 z6j{M3u$~R`n9nai^9C5co3mc}x?aDp(4%n$JPeIqCu;S?!XjL( zwFLM|nHp6X|M6jmxp=$Oiz9RK`oIjw9ekJPabjQuq!uOS=Yh=SN)HTjef@tz9-$Eyy5zs|5*dd@1gk~ zv4pZdnUg|BW1d;Ws`=ELiZ2%DEACjn<{bE=YES77H8ZUXt|`x?{JWNSgBrIv!pjVP zEN(+NF7irgW>}m3GoZIVn432*$i#YmZ_2y?*EmOecj^~+0e-}OJr0n=*qPC| z=w!YGnaZ=wSYuCIlHGrS*Zj+T)Vv6InQOFW-jM_K0WH}p&gvmJQ30P>h_gm~m>c}h zj?POSC?^`h;3~cV?$Vu&4Qn2g=Kg#|O`(r3?>shNp;HiyO5WCz%`}9iZ%w>DSd3DKoe@V~(mUHwA?!F5&WBb%8ufW3g$%P$In@Vq# zq&7(KKD~HIJUQ?ga75kj@mOZDDIxa^O&pPHX;&zsM@<8#i_KJ&hsJhwXja`~nLU`gtW(yY-6^@-+o z_Rs{h@2ZC5-kH2@_PLw(;WRE-)30`l=8|mE7x?lI(4_9barUW`H9O8SE3Hp&(xxi&*MEQJh*B7zchmlYQ`$hPI<5ORXpSH zh(qf55w(Zr5%k43krgCvtiksc=dKK0$776+agp4&8Se6VIAl9I@-?)08~AwFxCf-) zbD#+ba+hfqpmj!U?iGsK#ro|C>>IUeFv}e*Q|*lQT-mh3N90l6q8`%EEYD_nn%NE9EnU2g@@*-XN_D06LG7+QO-JS#nM<6{ z@(WNu#FvJ(c04>=9+@?4gI=Ved4VW8H+?ZBxhe@Pcg5lN-VrGXme}xTxLW z@p9CnCHU_ux_~mejXXXq&EFCJl}DS@1V63QgLg9WdZK@(=F?p3N(@c9IP<*U6wza9 z9;5R7RsXd)*W2vpHhuOMTImjdPkmUGeNo|DD8S9KsN%yNfmI<`?L2#HAKb`>( z^8q-oX5kgZ#m}>bR;hXX)Ehzi)+C%mf!?OZyHFnG7B$Q3r#9v*E?OU#4`$3c_1iIg z!CRt zW(1DXYx#|`5$a$i74AmmQ|6dg(E|5-&iDV}!6JH@1#)2EgV3maOKtk@KE7l6xe<4i za-b{JP6aUS1ig{4P(43S3GP()GG~`Oipp}7E>!tHudd+z;oMaQs3{=C#};%$XdfbqGhEjPfaH|SkfssHR?ftzS4 zqudt-^i;Ja)u?!OHoWG{={I8+Gu9JcbXCk*fH&Wy4^F_r=g4BIu`k5CHRzdQH8=${ zJRx`-KeOgkU)jOx*Qwjq;RIZqJ2r3-d5-nrs7*8IoAOPvLArR?@TRIZ z(!97bcb~Am5?EoS0oL3}n;Ks~#d-~sZ6lmfn3@8}vN6e2|)p+;r-$4*59B|4^p#F5JGjM&;KJ z#5Gb|X|Ali2l{w5BhH0+mGYb7yQra=%7Ovv{_u0wYaf(DOQz2EE}go#?JVbm=5>iH z6Bg87V2%@9K^Ls30lu3@mzv^NVbn2nv@v|Ul|DIsT|8u9(wfCxpf=Q9o(JbEP}kJ& zQe(ljb>Yxz@DWjXa5p%EvL!c?%;@7R&B32*4(|~E<>@TnH}~;NwAA0;m^MG$pEsX) z-)G_3m6VJNUKF;6k6%Tb)P` z%DrrHO4rC-rY1drw;6+-9MPjFyF%-#GVv>xQ6vMf2$xtyf2jMZLVespA1UrgbL}!u z;k;NM!cJBH$Kt4!npUuz5RNSC`S%Y7NcQypN9ErS6{qcg+L zxCj=zMExvppU&`g@GfO>hFD+1o-N!9o%j-Yfb;O|>dzf6X2&@1;Jd^3KyN7Doj9u~ zn38g_q|a8ptr}2s2gIu?XF19~NxP^4$w;oCsgjpc_~{4^T)7$2eYWXME8xAl19i@5 zc87GfZq9B8=aKm47#i*(J$r5wzK!Ql0aNR(+s%hfueJA77sv5n`1yKP-48F6LRS?5 zL&x z-{JgfFdM1X0GDb-O}{RF5=}AZaY?=da=hBi5me7m1*2@h-!=LD2AH<;vV81Q%}H19 zt@-K7OjPcEp8G#@o1779J^7N)#HF%!-%?|}K}T^&UR#aYrHXb)^ViehECuktGB`+{ z`!<^535!6iyZxe}eTJekT}jIkdx)XM4!G^eBoS8|LF=EH*B{ESBX_w30Z(HZ~l z&H}X?#rhwrt+{;ctP%3IoEpSI@N zU(yVdN6=v=X`6mQxi&Aroi4!PFL{pd;Br2&F5iO1s%HCgYJt3Vurq46ww)dYEs^+N z)z>ZjlXY~GHM|^}Dc^u=S3bJ(`d>0Hiayky3TCr#Fe$@ z!8h#p!Oc@!X-}tvyXL{t6$_u3vR^YU@W%kY1=W8}>OU7X?FM^k zot|m^34S*AjgO3;5}xWYefR#;Wpl{K=`xxq)_*^P{yz*x*5A{f*MqP=1A%g!QPOTM# zmyI{^6HtHn!M=R#sUUZoGOU%4=1Rh!QF~_!A+$zYR_@C0e)-6r%kX&u#@#?e&OT|N zs~hd)&1k<3KOX~|3|h0JLTKz}oXWnz2gllW(qk3LgQ-=EaGhbxpDg@OIXiCfgk|=( zw2W?QQPqJZ_N+2g-EelwJSu_1E3>p%3*ZM%Sa?}jc`V>~!hyWJH#azxcLm)DGu2A) zq0)U+sI{b>k*+QQ=Pf+3PTf(1Pt8y_DqlvNvkz=WHLx($1T|rXKi8eBT=o#_K{`m) z4EhlE=caDf_Z|WBwtO_4(ZYC=)D3Z-p>hn9aGdgN#M2(mP_P?nK7H7HggX zTB0iYx*_%NNg--JrV{3hV8EK|tr-o+(rUr=lsLmZ?3Yb1vko~E=fF!=z}_s)6X$e< zI<1AiVjqvhF1Unpc6(&!o^vOClMI?K+6i-prtN^W*k>(9!13JR<16&Oi_=%k{CzlF z&i{2M-d_0I6~`4zld0ZnlROv)b%4B5%4`V3acNGY=CuV`KTi4%ADm?Xep9n`lpUqH z*kS20sk@wDc>&gyGSo`w%hKFc1A}4mTxS+7^~~Fu1#?EGM|X)ngqlfyXysq0!8(PxMOkN>p`{F8 z@vp)G)6^Uxa=Bt;MW(4QbY|wklgrcqn%@=&rxDguV((@O;0f$|WgF$%VDt3cDfFqD z8&yZ+WogC9b}f>hTZeC}(QnH0mSt@#-+s|cZVodjBl2@F^R7nSS!M23kG?^3+>SU` zFUafo0$k(sJ>J!l4LktuhUeV`ztT+aGBscU4MmNgDGwf2WZi|pE<@ZuLDo+R{g-rT zBkHFkGzrf)*U%KXt!(0LbZ*CJ_%z>T3>I;SeoDSo%`BC6J`HXv46F_hBK=blJ-P6| z8hG%Qos3!f;TG#oK8_MtskpHY+?c$M18}7QJXI5|&lWhM>OWy0Tf#`d8oRftWAT^A z(NPKWwS#ZXfQwGekkx{>cagjw%~n!|r?O^4VQOx8)CB#5^2U_0>7_SRuEQc2xoriH z^4d+a>E!c;>3z`CC}UgaSFR~u9!&|lX=z5R+4E?dV&FV+_|OPHXJ!f<;080a&_#4^ z;fs8RhH;sn8SbP&53e&vIke(Xgo9YUdz$PgY76BC_|PaRH@D1M?&8H5QbQfWo&I18 znh%Q(D+@0@1DA__!401sMDt*MpXjfWtltv;+B$z<`uqxCyFor%k2-XJ2^|JJa*W#8 z(%Z6*eQ1p2V^LO~kLR>W?~_Jf)`DAn`)u7@UWYfBAgkpX9#fvPaMwL*$^-OeJM7sW z+(e7dSpo~nfRSanqjS7JW%_7_M1$J3fhMJj{#dyI%FmOJB}Z?bW>3otp&qvg=axjf zo}mAbPgB~63bkI9+?g8Od!62`Q6SH>#Gb8C8{+4v!S{6GNJe0V+i2aDsnh1?7Y5md zlhiDd&NDvXTHA2in)$7IFGlT=qQB2m&&PTG5pq4_p1UT7mng#wjVc+K((9_um5=Eq zKkGT#xe@0|lXp@JfhmFuF9KprgB_4*UoQ^B!FN zTl)SF_n1=yzPr!-?uBo{u5*CPr?BP`0zugaXQg0DpI{Y59Qa2~L} zl(j%@DV<0guD3nK&xR&_i}PWN+O`L_KcFs_M|{k_7Y?XdlZTuI=MQJCZ0aM{2| z3g@3SGY$=nh0Rm{DU;U@rl(mPUNU=x-D_5dytB%NQQq$|cp=s*8DfEW(cqSe6 z?mo^w58StWV_wb*58scMJ@4U+^r2k|ux?6t{13rDPaorbyN|y9A-ekoGH;_HK3KbM z7rJfkfH|HaeEZQHockm0JNQ~Fx0u>3qk5nlrtd^+1}7koN0R$0+hCSjGli~^d9&Ox zs#Eg)DA*kNmf%Nuu&44cZ%WMC%~3m~;BTc}(MODaDoKwo&ugxjFo%bS=IhUI&5O%1 z96%6mcg-xN$bsM<=%S%L0;4*8(=)x@I#>icLH?~ip5dW;Os~8^zTpPXPxo^)0-o1O zqW|M-mGGT_v)bq>=g3MHmb!tDQCitBcb`18E_zNk7-9_0Lmv1Tc#-nBb+!h%2c@l0 z{Uu&K#5_Cuvq`hLaMgs^r)B2*mD=DhEie;!D^DCwBTHWi4_zSpB~$t}`!P;dhkW|- zDT}}HaHeYhh59tj6I1W3oVYL;YF_*R+75YIq-)oQ`hMwvGT=0Y8dx3PGu43dfn@Lt zNJAN;9!&6inu{!MNI0JAKmE6|xP<5Jp46xVt8fruYgUP{N#*PGMtL(Bl`QMijOlErQ}243}_=3#7u ztx4;&14c8zSKCLk8DcFu$fsB&muq%|5AsW9$k|!oe71qV&BCWT$hq@#x8Cf) zMwFSY{66V-?dxdvXD6&&A*UT3EZ9UydOdO^#BHSN)a_(yhp63LyjS6fVer`)SX`4e zQUo)WZhr`ewapw8)u|o$x?S$t4qvNLLgP)&t%G&FMs2AN@hEOIWy(^Jepo$@=C>(p zuDiBs_GZvjf!Til$YDOufy064X2GPQ^igp#Xng*M__xVf;aQdVvmNf0^LabDzANOr zksI<@c}DBzWZK4`v3JpU1UbKBoFBq2t-K5eH4yh)j2gQHZaaQNe=yBC@{HMac(V7v zTJ%2E?{(1XDaU=Evtme3sM=PVwv>$=@ugc}F8D*~2h-rs=>=+8vIc5?G~qn=9vqG8 zw<_A;Omc>KYIr_U^kB>f(b=haOv-7KhfZgz>c0m5urhvyGM>s>CSZ9IT4X4wHfeze zjKBxCz_w28WQ&5Ub-^8b;6Yp9LS5>EHr^9?kc1CbvS5v@^DNjzj@;Hbd{3NAjZ7FU z-FAZ>;)=zB-&^r(DI3Ln)z2NSD!PhyY<{q+cYv{lV)Koce*aH8p%yVfWtGtse znNvyXqZEIyK#sTS0fUAk*(H>*_Q0(I-ClkG$(I`FIItb+AbNhySAjmsDn^X%+9IGWH7Oq?4wv7-pDxZ_UtecgmU}~b4taf*L8mN$1b#Vbx#j8BToC0R zufh?F6PU8W>D%EF@I7nJm-s0U=cPPSLHy1EFx@!XrUX2N@};uqvc$x|p*l64)JpdTZ@if6C6fXeGh;R#B$siW|{XpXk@%Hj3f#t-%q1~*dfezuBlvcK3UAbsSDV2c&}#$*YKFW%6-kC(3q7Tep+ zS#_ZDste=;Wx*!%_(Iw}eA4LW4^HZ6A2al^oMmu_szJ`_V=utwrAK>dn>VlN9W~2b zXHpTKLjKNSHem+ssu^?&W*hwR6prXQea0*FZf_Rwd!XGpe2Vq~o>1AMMesb$(~Y5f zE2G!RQ@2HKT{U_3QBIs980nbrr`xZvCpM_bm}TqZ9ieM>u>MzB|8sV9H~m;0PE0u# zNw7d=Lq_p@C0O5a`X8>HS(W&H=KhvQ*KOwJy_&xB)~XI?7c8rxIFk~z|Cx$2sobYwn@`}bf+e)S-@{* zdEel4N94N<@hJDun$^H3O1*{MKDELiaahPl)@~oYOj=cMJaK^a;8J-Szxlmvgw84sf2&nQ3t4 znN8+1p%qx<%$R`_eu__3vw9Zs_1oz&l&vYAQMwQ5e%;iA$|g`YmU1N*9$hgja8eu8 zzE1Tb;Lv_*6rB$Vc=-q(HXoX7@kar;y%2m`Wf8m?pRDfZ61g@Np0)ff((gC$OE&3U zdieV_2SK_4AAFNM$jT{G4vQ~IO$PoIs?Z*!fR?OE=s6!SP zslnlU(a?#%jiL_gVd4m)-n2n1bN|UyjvO0gM#u7(MVU|A6lHHheKvt;?F4X3^ZG@LMP!q z^&k7)>Z{36Et2^mKC*z;x=IE}m;K+SF04}fb*TZj(Mb1J!JMc+G%NUw-p10MPM~Q) zCnue3S2Yoy&@ImO7JE?hC~~^@xd&1yGA!6P(fKQ6p@aY3y@n_Gx@nLR)wqZL4}I5L zGJMbQ_P+oV8q;TpmlO|Q#sg7A*Ib~^6i>Osd0mC)PEs4?;U9~v?Hc}P;XE&$0rSPW zkC|y}=90|Bw_w9xGnef(>*NjVS)R>SAj?B=26Fr{<`4*WrAb`>@5HsnORev%SIEtiiAB@xG49bAL`h z^35{-J+Q_fSzDLzl;Tr`nO5z*7ksp3JPLL3>Q=AI?={7DgR4?Ix53jjr*0n&u4c3~ zC$4~dT{FtKZ{L_?UfWGFr>RrvKb29CV?9UFdh4EEirz9yU^biJu-+7WI=xFC&AF8o z&pDMxGh4+!oTq+BI>7BV;Wfw)RMt|;OCOAWsDPHbg5Dz!-Wk1m#e}b2Gl?tLOzP@& zQ>6Bj7fo8^HavtrpX$FN*qv~HC)(dN?m=a=IXNeTXaQCKS$+ZVoHTr91|NBb*$;l^ zAzJ(^_s|BuT|XN403PHJxVM!lz&n;NvWK?34{q9@2J1ryeR%~PDY)wSBXoe^qr3Ek zgH2`_Qu}GX-q^NDmJgT>cl4|KtLD{hoB8E$pUk&EotSUFKgXL90^@U$eM>C?z8@`9 z`%<%=y*M&&-(8yD|M5%n=YRde{P}O6%};;&VBY_*Pu?*zSHO{m`%QClIWjNaQun<+ zK~rAg_nCR~vSMmmXrQDkf(I2Bn`SQ+Yk9OkISY4CKC5uC0?$DD!0vYG|L5sGyW_mm zG_fm@5|t@22Y?`Q4pk@=PzfmH90)LHB`SyR9!af^GriM2>$7W*&-&Oe>|^`2Kjh=z zRhr!wb*Mm)RrUPCeP8J=wvQHJbaDsyOee}y>be`nHNEMF-Diq-F5>jyHJN`qA{TR5 zPdx&|NaoR?8nCbIJnnzP>$LONydm|#^?tcY@bg~tNBe0&dU)eRbs zINlVEZZP|bvvGXrt(_w4@G^#bPR3^Xm0ANvzob^jGXxVH zSC2K<MZa#x&*s&$zpT{iU93z%v`ZtLXMJS1#JDc=b}} zHh4T%ypR0Z$vGdDz1BxtGKI4Xmy_8{9e$YCtz0qpMSU|q?tQ=vW?^K@FxZ`TwK!f} zDjuygWNVD^v0v@XZ2X+}@_QK8i!R>xf!^ZT6y7^JX&SO<*_QYjn*3bR`lQave1;Pm zwFh{fXXmcSbdnS0tiPkKTBO;ZcR!Tjdck=X+!sxIacNZk37%lV9;?vamG$G9*>eYu zd;-(l!WGQJdM5Re6FgrRZ@g2yDRbqmn{Xz%D|7S@b@%QfomQLAWZl`ZCKKQ;&CLUI ztM0>U*5$m-$`z`p{{||wqcRk(;3Y1~)V!*G9DofB@}w;`&7_f0Q01R0&Bo6SM^=ZA zTWeF!fdxA7E!yu57{HQz|79HBQVADlk7T~o>RP#&hmUWp&ldZ>ll`}7M0f(ycRlEq zl|yH7hlhRrR->3X;JZDTrdPnLtJ{*rv~^xiulMyFR(T9Vdg$-mpmPpCn0$iF5nAIT zydzWSks9R_Fk4l>^_NS@GgvJm2Rj37tEZes&l?s zx9{~~HFt9I3G3Exa-d7RG>hZ-jdRY~cV6-{ui%#bS@4I%85dZ`-3c+oxB`?Cki#d-!Z_s&U3?0H^r$ z2Cuwc^j-9l-_z$glyE?E>Z~~!@(hjTjGAD{{*7m#N@L&8OWY09yh(30Li1Rj#LuWb z(o0tLALe`R^<7%^}y?J=8i{|R%BC;)WW-` z<{GBm%RIrWbk(Ccl5zggY3JgCeVI9gZT(2*bo~Ig`~I?e%V%DMi!R9PDAQ^zz}=d; zm+apbzHr4|_ap588=BYfgNHcSZO`~N&&?fY$5ZvnJ^XO=p{?_0in8xyT#Y=ZpI?YK z#O&mne(^*t{(uhRd-e4T+JSrcwantJ$p}rB->RNr&7FCo-@R*|$`RZ$8oOkb*L}W< zbF6y984TC0s;N7A8s~dvS>Bf^`+Q}dm)spVG*KM!i0n?fJMD?ZWje&Bzr*>vJU>Z? zj{kAzhXY>re3O-!`)ipWA$aNzJpBkJexm=_e+w@vKP6tJed}+Pf1rBmm7*$RCf|46 zowX?QqscE53}6aw9?X6b_PeOpoV$ppls!NH-m7Z5Gr#H;F45q52Jtw5rnmm={N>^k z&*GW-`_WZiu@Ctv@O&SuqmI<+I^-gi3PI>t18GPxP;st#0i zw)Y{d>H%GFvcwL~dWQVKOEf)IHBDy@je5D^o{EQdxk1}Zv)Y!skU4d!r|;;|GGi{> zbg;(*Yd#!w3yv2ZK-K=M^3*TkM3(ity=Aj)^*T4ovQtWO`=eV>*HzUUHT8A#!&i#d zn|}U=^Fu${u%7DlS54SoW?+=m0yFeP6?{>2qz$}q9bP#9_UWPw51f;;S5bpkWdfA! z-`RK6hu*`y`zYB?Giu)s{s-%wltte+eOgW?y)X`Qke0bjACQ?0C7(HdhWI+?;c(Sj znZ9DQlMg*^-H)rKtMI<1%QEiW&yQ(~o?pCXj;A#NYj}w7ePEwH`rxvD8;=7+8cIvggu(hSegRQJNqigne!=E(++bAu{(=Op8WN9Zs~vyKB0bi|?NYINTv7v$J2&tX_}X|)>d^@LjSwP zyEjf3m#?0d*XO&VOPtjQ*01x?x_|Br4mum|g#M|ypq@7;rDgvmmnd^wTEW4*);24}<~AQXZ{IC_*}8q%;!Rr0uYP~cov?M( zDC!&ZLNZ{N;q&2d!b2YW4i4A-WpV?NxW^J=}H-p}Wn<#|(&~?}#{jc$&9ME)}Sl9dXPMHaonjk$#y#5og z<)JDpd>%fx>^{~nCDW{vKgXAtIhSoY#2dKg`2WJ4-nBlG8;KX*h!mt?J>&okywL20rjz zos%nxm+V)+_L~QLa}d@=``d*51y7xa3Dx!2E%RfRVI+&*TlUw2497X#Va45F9a1yW z9b}e7bS3F8SL~VAl)hCzo4lkF%|Py;cIrQweS7vraI#hY$M}F2?Zss4-Wia;>$!wG zoQ7=-I^+BG2gxCe4{(6y!ABJwa7V4a%*VTC{>~EJ;|46~o_+E_pL_>TyD6`w z>9Z|$>#KU?(&N0cPb;(_@jNfMW7q8U`}0$LLwr})dg(u%GqijA@a^^JdRF;?)C`My zzM7oG@D$bt``MN=B>3H)42IM*Tk3%W`jZoDI=l|ofT_+30K`z>&BB^ z)e}w71++ZxVVc=eJTrQ;{QI2$7an(BOD!Etp{d;D2d^R*)d^1RweQl`tk*@N$=lC$* z{IGZe+e^;zefUsj-9Au1eXD-`J>KF+b>J`IhOP751;41(e$mtayxh+H|O3~AIO`q57Te9^oTXJcash%E3oZ_oiY@C}(Yy&yYg`ogKAL?czP?}JSwL%pJ>4?aIZcRh~l z4X$332|Nw!$n3rMubSz7?NwP5w21ti%{ENTec8zj!0`^M_mY)TXqvy`I2g*tFkhN>AT~VJ-W4A{HMQvU;O)j z`?>hv|F6Fm|J(ol$KtR5~v@!;Wc@w=b!$G`g+4&mo##(7fANu!$^gwOP;CxUPF z;BqhP=P$ub-n)9LxIj039R@K}m7(AjA8>ScC0Kp3vZoh*y;GBg7hlK?xpG+(<2B!@ z|5kDDmYgNi?&Ssg$HtbNSzJKokX0+5HJx-BpH_o~r2bok`6O#)#{7$(nryEo&BHdm z@D|L@+F8WYEc$bsYPHNm${dR z=y;m?koYuPGPE}QY};L2a<9+O=_Jb~Ge(>8rx(2HHy9cmbpc=%e0A`YS857q=r4>w>se^ z%)Eg3Y=R4~ZMmD);m5w4CERWUC$NGWIHq+y+AGl*$nUf#CY=|_dRXG|O#b~A&U;^v zyoFO}=A6?LPfo&r;Mk=qT&@y7r#qU)rS6|w`lKa#yvzXJfvxOW51ab&MZ9=sc&<9{ zmU%>y8?z$MJABQF`gR}2S>lTvquK0Lmrv0r#Md-Gi`yN(EQgCvQ!P4QrVXmlv#TAJ z;9AYeD@DsQ+@Tx41v|L?>RZLb({dGFdabyJ6WOIXYVp@q--2uL5l_-~4#J<3V_ns2 zFATz4+~Hf7X`N{MGSh8YM#~QVZ`pafte%M8Zk@iXqyLmib|`!K7!DBrH+q6O*w-xG z;WU1C3^o<6rEA(5=H8vu%a-J4HR$~I!V}5e$c(*@;TuOV+g0zg1^Xz|QctP<@_T14 z(3SB~C)aj|_9=6xcKx2i(>yNbHEgLpJ99N~Gr@n8U(^a z8Qwo{j!9GP-N9~~YISF9G+mwSL3=9L;wCTOlKQVkqcAT!Dmu%I_3QNCYUnaQ&m13O4bPd( zqrpk%1w3K~pE~9)oA#ME%)fa$FniQktG`!*eXF*K0RmS@ujk z%b%EI^S#%nXISLfos^Kbdpmy3G%LG{~$`n){kZs>b}QKfZRp_~CVP zPTr&m=JEMRJ@^8@{!Q;t@d7s=yyuDRq=&wzNA}=HybLe=zc18npQ_70gSCB!7tD;I zLhU!nb2x`zuEV3Nu?zLOmut3^1;UX%n|V1Gsj?v*S)t-PMCk6 zQMXLOHG}g_>a|DIxbcOZ#r=<{mFM&@({k_zVF>+$I4ft!5PW?au02?>3J} z!x>pqGsiELT&&x)c()&{tKn9Prn+YuH`G;i$GS_d_>OK2xNFr7YirHo-o3-(<4^7s zUw!)!|NC|E=YRXA_~p;v=$~5lP`l&V9gsoVO?%y=_lfRh5MMa$Zd|63iodF{g7b!t zh5wvVtJUB_D{cAd%X}YC4m%mIdk1a$=V5suH;NAiUM;T3HyY%(Oh(MG{%^ot(?x4@ zl}_fujW>$-ufN>!3tSyO4a?J)=HABy*S$78BiE8xnpqPI*h9| z1?Q4K?zx03XnRlF;eM`n6_4E^N6xUlE;IhTmS}!gWG&AA1MR|fFXlQ^MS zc>`^E*vszOrd;MFyv^;6@nVOzaqoV`c|JhDBll!jP2L9|aQ`g3Tb9N~i6|>ciCE(rLzH__ugl%oA#Ql$sP6K%AEWE z*F4b;S!0{@FuU%tJ@@J%{pR78Ki~6T3+|)#UE`t6SvNmTcTdybR_~=}h);aRcUM*) zF3^Y8<<2aav%W@$ne62)J#=zmCvU*H^fAMDyFplB=1C6Ey4z>fe{ki0YD-lx8!6PU=FGbuS`19Ehdm9?TKZSk5WL#@gK zG%p{djn@js(b2^?w;R@1YL=s91*)l1^F4vBJ%pLviEoyseC-{x2jC_1d~0Rc)s*!+ zGp5$M>0G+RR|{WyjMshW_uSLpcQ6fJfN+P0>fT$hg{|be>T_CfuPr&pd+M8bednBK zsr_bguQS$D&g{(7NUr(-?LlS`HR$LYFtXg)cdhk@Jl2`_xdZ!Xs0YL0%&AxAaBtNP z7DoGv(~X`!vly2A?CPtp(VffVfjz9iB--*?QzN!vSQ|1}>bTw-te~v+Y2YU6>dzK! zM>O6u&b*3VF>_egorCM{w|G$N?)pXb?WTJrb>^ne6TkJM-Y&Y!scExs^^pyAe%*SC zw{zD_nbiww40q}5D=!yS_1}{BwQh~7QS?376pSfayJ__dCKVByVTGhX=l7 z7EXCm?f?xkKgqWr$aQ<~X7R@l2a7MRnOWFFdy>9WEzqLp%vmHmQY^8=M+#)%Sj29R>?rJI_aek8h|w>T3N;O%KlV znXJ&{eRmDgHP2qA?LXb|xsAKW%5dsA{amoGEm+WQbcJ-AM>HnR_~L;cb%>nOVD+i;>s>cD$)|L)o6&++n^G5-BK zau#K{d<3^lk9Hpp_d?zN2mJ9L`M!U;cD?vXE%#SiiN9a!Qukdd{^j&P+q_15`o~Rvk9m5~as9{i#nVO8 z9$)tyH|bxZ$ItwY>*|AR!!lBQ|I>6))kRqBqWc%7*P1oEN=;LvL&*ADf?+S=Empk8 za2uU$)$(O?Z_RO&?>eDJ8iPTO;vuH=nX}e>u(&CoW47lFIwn}WIn{-jr*7*co>NKr;W_gt=^!u=~=#OS;TL-Q01%#CWBwM5_bZriYVim9f#?O|l?%?A z%=+0=FBj9ai)Gr$y1Dnq54MX{_g4$YRa29cHqE`Noi2K+Z_5Exi+V2cpNx#q1(^pw zIce6)t#+|}tH}>Lr%tDlSX1Y~D&sYcPoc;8d+rjxwTq9FuKkAfJ;R&Wh9gF|mKv~( zOPavh&iTxZ`3k&OmR_SoYfmS?*uYitgYpJn7&}$mPHq7hGKa*GRzA1h44Bt&=sF#=gJN-rGTtrt_asQ?c98=egsP87dpBdhd(hd*p zruVl$TWs7}C|Y}F_uyB9wMF~BkXf7Rz+~mu*1QitKWUF=7JBZ>aM|&;9NudeNBH!O z`#dv`>O~bcI2VndS|oEeR&Uki!|5kM`q9MkJBL11gIDDD#5SIH2HbY z(J5!nU1ydMFU=ZF?9#|vMcrAnbn!C2?FNlVzqzM4xNh?x^ro8M72%B9GnEC(h?}8E307n>K#8eVVSw{kW_LS)(yo zRjV!fyVCc6wzE_4^EP>b5l&z45wzwkvaJPbOsMO|Kp{ zilu{EQQI#S2ai{Zr~FROo@^Blj@!kpt@%z(x{_R2{BiPO50}ctk-fZ`a|BKh{%y~F zb->quBtz)dEX}wYb(`+E<<4ERo}wqHIqPQB2$>t)$p**$mZKAoHl2Q;u8ym@Z&%E% zUDGq?8MLDfga0JUde}LZ{LsuS8RqLuK6Nx)oqEEv+{NqXzR3KJ2k&0!_%T1h6MTG0 z9t6$Sckf*(es*tv%`5o1^Ys&W@E*)KI_Mea^?2Ez=UMI0M5gaeu1~b*M|{_ZS79i6 z`rwIeeynxpU2;(G;g(L+eJ5(bN3WZw{#J5X)u3>alD)dzruD6m0TLyoY8yct3Z2&O5&ABfatgTzk_jkrgv8lEG5b#x0(Sc{o5#ZC%s1SIyV1 z!ChzkT2>F`zb(N9+q7M&#WQbj1{WjfCt8@vA_`ABgxGKk{C5K~C-Pv$2CF44H z?lk-^`#1T1%>^}}vuo4)&D^BtMqzz zaoL;dLvwjoaQ4N1cA6cVOOzk%-7j52*ktH?ZmcR3J z*xPftI-B)2c!2}^j#&N`O~+q6~DaMRs72v*WpP0#pf`J$2ahobZv)Iqs9H{ z(c&5Y|1Z}DiocxeEB^3ikD8;e_~xSd;=J@LU9f6*OE}=nhWH9D_qqD?A@A8epYMUp zvm^e-Jvd`BFWPFrHXr}uEPatWeN28;^17Qm2kUB>^vZ4cP-EFFh)wI;T@Wu->hmRc zMtmO~kDI&bV}0Xi&b)B2k8zj#ayN2bZoVx)++3JdYd9LRn%*m3!Fac)n)(iR&?t_5 zh%YD^kHMt6WsqLv_v!ADaiCrdK3L}m+cYC#SG~H=hmic0+iLgZ>m_gQpWeKJi|r{s zKWom3_kKV6Vmj8lYP#Fb>j&3w6py^W=&ysLuF+8kw_a6?Z#g>-F4NpyyHbRU|4hyI z`P=7wuh-R%p0S$oiJIbf*VNm-$3O6S{6b^+=eI8x|8TGT4Gs|O@6T$Ey#DGv{MCQ| z^F>*LJ!75M_wc80-tqUJQy;@xlRuaof+_2^jw{JLg(dfB_QVD(XEomZ>#ysT+^hVD znVXiHAeoe1YUDxZWAO5vqse?oUlXtI9-qYyFIjRH=W!SlaJ1x0rEHmG$XO`+AzEY#s(V%X1UGUUU^zTI7M6nw_?$2X_=* zS?Z0<{2Yeqk6ZVdPgugum#)2QuA=?m9Ggu>1Wjms9m%yU$*Y)<$Jz^{I4dLSL-p>5 z_C#_)lMB@Y>mA_nD)To~t(k=eJ(3%1UuT$KUsbM^5f_wlQY^FhzJ$7W>Dk4)kLaJXa6wa#2JcU$=0 zNt&j3bFbr)qRqQ%KU~oVcF~D+HhsMFeGLAP zxt9Zc8s~>;HuXu@M|nYEqBH8t;BMh|Gg~fN&eUJd9$W4u*#e96Qw`Mc)5ryX^}t%vKy&V#jL=gCfS@O-1#xXbGTONv)u-e){|v{Rfs z-z$#Ipj&^^C{`cUiuN5f@X>U!z*kb;R0GfwmfaKaV<*FT^PpKA+%ae979N84a??Ip z?1O#KM5IZj!8PI%U1G)3byOtp%;jxIf3 z#>*e@GV0A1=@w>bWgE`P(eGU*(_EgB>}8lHv5ROsJe`!9g&!_1@Ez=zC1JwZxa@r9OSmzf0a)rxvPhF&9^;TC~mdN#qFu_ z;vP@Slfj`*KKhgCa`72&?lJ6OcaV3sm(G!AW>@yj?mEpXPIqx%?S3>{-2QmG_~ON_ z;+qFM#b@jF;t5UA5v^h}Uzg?NL<1InC|Q38tw}QhEG+Hy>093Fg2;q`w`8n<~D+s?|Gd!T_AZ@c$rVG-#SlY^iBHQYopw=1-|nZ?qg z!8_EerEZH?WRywc2i zdUx>k;@y7wJUC;`-J3ZwFRtAvem)NudKahYzB%xGQ}Z=wG8^i<%tH+>_MN&bJ;Xh@ z^rg{Z7B~ z6EE-|PhayZKN=qR(4Dr;AG(SUSaQxBexHFgb`8l=GrNQDc|M1}@eEblM zXJ)eKcsOJ*h086wn&-0~q^t-G5 z#XqUHf2)@J%fF2d)GQTpnqH*F8+3@zxd}5ZWMog{X+5AS3d0I1^)f= zK=JpkvEpwRM~c5*87+Q)p62Y0%X$u(SF#W?&nKRu8K1ift62*F24h*3FWTmNPj2D- z5WQ{mbv$RehjNz>shhiTBk{}5z`d90fEVcllE0LDA)3EUJ>0ha+*VH{Pkk)Cuk#@q z^W-U&@h9O#x_#Hz{T+RNPjb9c*GG@E;AhKMPZbkyI#1~*;@e0+JvZ=1NAEx0l+nRg zm;B%n*v_cld{mD;gbNszxjZf7Dz#s*+su2P^t|KCpQcrekA9S%BHF7F9NUN*u*?1U zp8N1kI>UGUdeid`H$0F!5Oy*{mo!iBHVYS=E2(eng<7&Jav#Q=Yn@DMdaq&L zg3PKIbFN?Wd9UC^GRyd~Ow@Ci&J^7=kvH5~v(E5Vn-5r?`qB!$lX^WlD080Md;|ZE zdoMTT)0b#Cai&+*?tS?3A^wFvHSwsqm&sC`^!ta9IF%eddn5Lwq)a%zB^xRJmAZCzFzD;!llbstm56`3$J?3x5w3frQ&FR zpxDz_ZmP}K@Da&%4<`QG3j@XPKO88Y>rXR(?QSqNckQ-kQ};YZ-ha91S33;S+>AJ5 zlN}kY&y;oA(Kk4VFJFA~mCpRM2|BXz5k6D7TH&1II~=t} zhGi8^!M$ht-lPpPzpCra;`$l7clz!@J?bnGiM&0Bbu1LszBMH~MA&S_W)uV?VWd)KcQcl23DG;9ZYjYU{nEA=1$ zPE(y7o#g&*xj2z&cn7|a`|%l#_+5SP1DMzIX?R8dNbv}^5Krg<@8CYa)NX4A&pTJl z!>bqftHmKN`tz-3@!e9b_=2|RGd1K#gTu~KXLaU=`3$Riwk_K6Et%pQxcWUl@jYu` zlddGa*Gcl&aOe+kh7V~mcjcI6wr5RlOU|0kJd$a33{7Ze10@$_)-0zwTrD$&k||&3 zDV@_-mDN9)rIoCjA+ve9hxC<0Z^*PUx5QeThsn0+tXJXucbxP0)$@;O*FL4Y{`%ad z;%gZU->Q@YS}>?US~|LwTLdy>(0ZH zXZ4#E^>j@Q)^JuV;&YbOO_*ug5*Q~*D8D=ASw(hcU z(7ogC4?e);uq1z?){TFHVTV5rMzf|LUy)U`n*84M$~<0+YqSFDzh$|3?d!Z9m-*}6 z|M3BQujhN=xuxI#oX-23@lhCDU-5-n>|3Ajk7v#m{}fC>{r!<=edKe-Ba&Gtv-tXc zI7JoCJLWUroVdjAcdq!*dHYr`{5~^y)OO)ZgAc`j@bg=jia+q3eg~s}MzepSM&*_qSSO$3EkEH={PFE;=1B9tz60-6tL&HYx->oco>!g!?JhX(hgUlJB*`iH z_R_HTfP?9V^$)@LtGsh&#w_uFtjfw-uwSOH;Ok_lOnTl6@u@oRGy5QzZ0ET-*T>*L z$ymw^kR!d@9d~Z$ex-B!*n4_}XFH)EjOSrR4qLJg(hHQGrOAko#=N8L=NU;oQc6#! z{_myLy*hHn>#a_W7>*>FRA=E}*JM9Uz+|h=(?vB;X4LG%|1yg?Gt#08%*X-x4q4;9Aaf!Qf!j3)H%gu>{8s(Z>c1Z@(i>ipIiv1AQD?Q?&zap@4Q`F=3HDuGbNA|RC+)APq1W8S znP+S^11u%?ee%hN>Tn?($ovSu1#eN4zx>$eJHc~TVQ&+-#cBLOaMgI(X67!M#R;pU z>l)Kn2iFh$^1)OMfdXF7$?H4A|Md{WNDbk|Grnw>Rs z;XK@L@W2ubs_dDTy~hc7%AmSw$XPW(|60P0W~O8E(+4xtQD2f7vXfb+Di(O)Dsb=_|6ZAudqQh94C`2i zxvbJjtika2`PN=s?<>B(NbBwn3g>=of5k8V1keAme(F_0Ng`b0mf-kFL199Em`<~jQ(zT6q#Y5$$>Zqr_YUaQGEXz>Wef&6ruOP^!8|p|(wd;FN!^}br{IH`xi(5W z+OKxcEVkf)gC#SDop+dc=|of;}=`S;j@)a?RWRn-A-M&aojA{4;uJ4cs2dRG(BTu$@AWpb0&0MG@&o+M6#U@SP zcB#YT94wkUgTr~of0&%=;66{gdyB{F=TEPgH$cDgfR<&KpEH=|COzTi_AJbHrbvF` z@y0@Nj}H86T+=`Gj}@O^ph3omL?0QA&00Lse2u&EW8&?o?Z^w;pDFhBA>pq#oS=F6Zqrqx>4ozoEIXt(!wk}h?2Cu8jhHQ9`b8zNG z^}-ZwN_y>Xoa=km)tO%PAWUvf{@m#MFVUar+to7*yd?9^m=XPZckkPBp57^XhUp@` zkCDmCasd1{JZCSyX^MAj+&V48?;7;(6@2E!qBG;^BTvoAEW= z_OnY@i%;}JFW^)k^AEpJ?|<>?>&2gVJu`bbxo?kP0k_;8EgbipzJG)^vYY-i`*)O| zHRoa9WVbn+*NP9LSJMx6e|U;6@(nr6A9V1ipIQ>L;Gr5_cjN)$9 zQ5(Hy)iyXu7~RKkz^~~CUN|$J56Tv4neD!V*WKg~b?;_IVRDymy(4d(X89=&@>4a* zqY-!7ocjg7zalqyc?q`!Z>?42xxvaSp7ktEVhNU*TCctne_-aa(PGJfDdE794ZERc zOfQt#5Xqt0rJ38qPh?I>)wx)f8&|og57B#8N9Y821gGgVhu~IyftZp*3RomF45HvI5(&C7MYivOr7K{@A4z<;bac+9#8Do7c`U~ z$@P13&G~hnUfQ`5z06uLWH{fRpWVYR?7PDc)bd9-{OwbxWSqQ)51D?zLZe zmIHrB=DVlP{_DBH;_vSd6#samr})R4H;cc~Uj89zbf9lirXF5!zC*tdm)*yBLnaV z8k2sQ(I|W=XJEWBQ#9F4n(sx}ee@qI>fhV+8Yf;0GBuMUKJC02*RM>JVF*wCE{%Wq*SujE);Quv( z>#N6S=@@f2mhd4{u)JY)Q=j{)UlvTCwK}1uNKGMKlY~t)1t3lxMWlPe$BxF!WupDUmiT!m{rjYPb^^AY`HjIRM!n+0h<3O~ zEgrmcG`uUkDX(zbmuY{m={2vb6>iX-b>js3 z6Z*RYIOXwZF}~q>%VistE#CucxY?;q<)Nwf8)oBXcE=!0^gPYi1w7A%;dgjdPN{=s zj=R%unU(VB-d^#=*L$>O>&3(8YsH->>&3l~wu{?zW?Q$KKCkbEUo<#lGNYpHU$n07 z@{2!i&lQhqb-C&j_?dyu%*?OO(59HTv~PW6M*Y(fbF$zi>v)x2eC^>)UN(DkSFLlG zo;tY@tMmxFbOxL5gch7O^Ba>Hl02?tsQ0~ds<`;hYsFc2R5$JERrwpeH1apk!p^Up zg5UTKd6~yx?UQQ1!Lxcg_xuVC_CAjBv3~F=Zsvtv@~g8jBX`HsoAf;6vflMQ)9|fQ zyz-Y`EoLtAQprAEb|0x+Vqy&yuLfKXin79C-k%*zsp01n+o6F(Mh`dHr}MycP?bETV|RqxS!V5 zfk!+p2mAmhu&_JM-rdt?(mIFNeV5^5nzF4kKR)xI``trBa!RWDmFP)o?)%w3-Vprp ztk;75Rd;q}E_K=5z|4{!n$eHSCh8xjk)U(w!^4i?6{>KTMR;jN{a2;;ZNXGmWo7NE z&55q zTyPx;nDt*;drA(P#I< z*s8Fcl1%N2zON#StvxZ=!7k%3n6>^Uof|`H+e=-qbneK^(;eg$pT7B4F(c1=od0O- zCf|R0cU(&^O+j=fUC!)y-iL8Z{jk5A_~y)e8KKRa@;u74uF=3$UVphL!>KcaYkm~p zI|s+n-^Q1one8*Pe#TurAK%3Qj@a3nT;0sLjR(7_KAfg0&ph4C`|0Gk(vEsp~$P=ra=RN6?|6z{a#yUOp8a<4)o4mMIlSa+? zvJN{9e{({2_O+Vs8~UFw&nI&o=c}GtRg3Jn>rc!*&Ai4>dHp_xrM`HDFGH<(!oSh- zv*Ebc@V!%Iv+5>aD$eqACo5|}Z5*#-c*yW3Gqg6DYnC}$;cg$EHox!mRdXBq@Jlc; zUeQ~01rP1ZaQzRQGxzMnXEYJd=BmZ*VcI#E`UBX+2`npKhRo@Egs=ZXUHAjM?t5I~ z58mJR7cUoIOgSgu2*Ip2XkKsA3*3)}-5qy)**+~-i=(A^-s$At>z!~mjmybOeyLdD zyA8H^zLMLXC{d@8J~~bbnsyqL*@CPU=7B)q3-KplB`f zOm}D-qMgXR%#Sb7u;6HK(QWL$1}}ZtdE$9D@C$AGeM3I(T7%cl9kes>iXP3m_{N*X z;VUq6d_eYd^4H@Hk2dEvJx=C*d`WK`{YUEh|7zyTzrQzJ{L9&)PECF1U7YjVG)2yl zXiKB}i1+xr>oS7Qdfx9`>tx9#|225@4|sv^;Z>z2)#LJO}!K^j{6Nchy-nOCL3@eoscg%sBs- zJ~KH;^YoKbzM~R8tO7fY4l#P1QFVIw+bjI?mv|2UJN7qDgO*zGroG(@4-O8NUNjtO z=Cw{b<9g_C&-1Qaf*JJQ;47V-Ec$7+hVXUO5gCB^r8e#AM!l}@tJ3)|z`SS8E}AM< z$8qPfwwG{Dso@`)ad_Xkn>%KWo?}}+;=0;&mnJE9e{x^q2~Qqi{99kcT|U1#P<+(W z>mD=%#IMUc)1CPdogM|}Ffc>2sE)fvpAg(FJWA@ae&1E^f6QS>&l|owpEt9y;*Tju zQwLj1?Kck7$!kC!LKhA)uR)sDabDmFp3D56l1#s*Jp5$AWtK(izsyxlZJFG>)PC9P z@l<3Vmgxg4Fr87@OrQ6Zx-OoMVf!k5cevd2-J`I$%y-FL-HG(#&WT|)(})^;NCwD| z+H+K`J}Q$gYps)Y3$rc3Aj^I}y0Lh~x9G->A1@c}dwRkhHO{JDF}_>4PQ0P3yXMZp z<%VemFU#q^>ideHrz}%pp*h*n`Q>iwa;~0>-ggB4=@oCp4Z61(XWj00tGIu^T|E0} z*F2P+;?C1u-sK^9tT`*;gJ}Y@SKPDLTL-uCdONS; zOYQZ&k?dSpHBHP zuJF06s%Us#I47P2H?kJD^gA^^x99;HYM>U}xB@?(!QqzhjvJo)GVRQc^&R{#=ldNs zN6z@A|qu?DwH_VgV7VPjkESEtFQ(U0do9K>g8zc2O5A3GBts6q3- zGV3XS@0y;bwGj`G`IWK{GLP+^y6_GR?5_In*2}LJTYlYk4rew-c)0jK1}o=_n{~PH zRX!qpN&EwKHFzW505!(~4NuKXjrdpR^jy&r-Bho{-!?Fn92LDJZYeXw`}*E+W~mq9 zy>s*?3-7)xyBFsvm$ZG=`jB052=_ShJUeq+oX^pH|3!`dXSl{s?_Mf?hg0~5hUW=9 zC+A7LddU@eaRXncPW;FjA1^_)h1=?lJ^f`oi>vCamUC!How>vV5RF*t6?i9pe1{gP zg+DD{q@QtirfnXWAq+q^WHnN*SoQ-+(D+zSJAQy1m$U+6lcm!xCp zhW`zwXU8G&5KlPEhdi?zaJg$fS8Bj`-cw_Smq-p~^vh#-<_Q|D53?!EIzl= z14o4SWiCTS_G@%R9ep#+Q2d(V;+NEp+tzjTUYU7OOSZ4Qo!Jr73-BUZ=4m>oWL$>p zs<)EWF4J8PTJrD7{+f~hF;#{qc+Vx?;AkeM?3V?6{(}3bN^4$~L6Vs=8(XmFWu7Eh z!X{5(yxYmvh~N2B+U}1$8rJUs7yeaC&pld@nRB$MV2-Nq9-`RDlUk6wMZ!{0XX zh*iDYJl|B^eOGOoGg>{38|V9tUs2}BOtSf4Z&l}ZG6dq;-BnlIf)77D1^Z16s0a9r zXW%Ih#p9RdlkoT?8)`=_wac?|%Xj^>y-+-!nQJyyR>@ zPm?-7`Ap-bUvtTBR{aWBoTl-Z_g-fB6N2?k$%-Cz_6*vmQ}W#^o^eI57{BI5C)>du zgX*|eV&pGw|ChfC#*Xq2VVZ6V=)ns=)Ecsq1WwQ-Wz}}sisi~8J&@-vt zgW=u48{?U*G^}lSPYWj<4@g~)U59&D)B|JwoMe17^o;RaEWroX zy_VHbP3M2Z{#)Qfu2`RAJh4|{kmq@LuJX;tYc?o1e1u0Lxg~viyKtSEVH$iao{n(3 zlOxs}tb2f-@1{R%LN8ud1E$7XovUd9hldw+NsQQF->Qa z+HZjI7?w%I){8hUL@@nWvWeb=-UG=mP!x*gT#X?>i9v+D@f63EMKX5}GeU%p=bB6bJ&0srODR$&5wzlSr z+Ez*ao2=2}Nm-$I2Kw)rWpf+!uYGu__?@#i*38wot){svm*5UAF&IF+d2L#cU@kk+ zT6qsgt*PQb*55~Z;ZMrr_>rr{Zzo5JU+Cd}q@VlUvE=E zr_+&PmDh=yDLEI5bcPFf>84zmy6-(+*anU}c<-3~mt2Z^H~{{jXh2$cx|LU61GXwyHsB;Q)i`?>e` zSY6tg*NNNS^4XTv2=S$sVN}UxNtS6R&(9qjpWRo^#joDJQhZ7a9}nq%vNZX8SLkZC zXcdwt7!Ejjv2B>$J@@u8p78+>&0~7F+xqp)LpyM`M^BbD)ITq0$@w&-4vb#9!bhDt zGSFPaGhM}>^x40Yv6UYFyFPq@nN7R$4w60d zG4I(=bjRO)NI$6$-@xT%E^GeZj{80NCz<^lymm{*-WJW_3O;|=^V@TOW@dcuvAqmfMx{??%!MSWG%vznuYukh;zFPx%DnAEoos(pL){k?s!(Z#&c$wnEi z@O?zvqbKas8ylf@(DS#ip6h5>8*1LH-T81KaM<+2@i;bd5}6&apoXhjbHV>+ zol|puEvFZ)sy|^6vv{s5tg(zIjAm@wd(Aw8lD~h!?^}>1kQrm!dgLQ@YxZ(Hoyl%F zxq7*HLce(%=evyq+T~%c+6S3AGGShKvMe^~C*zYmqW27rcIa8n;08-@hdFtWlj`G9 zpLcTOMlnJwl{p3R@sGea@?0|GBYDerdIvlD@kejTkDmDTsNYV2P*^n>&YC451{`>NndEAsy<&C9f!INSUx|7BroTrVzv z!JRfs>$&Lj1$P=Wi)K*n;t1|phP4*fLaPytZ z#j3M(n;xcp`lZg@rOn(ZN7wz7# z?AG7lw4CM`HJp6ovzoupF z&spmw=lzKHm6=kVIkV|Y^@H8Gm4P9;vT2}ex?<**1mrJ z?!shoAD5P_*G0U^3Z6ANZEYEC+w}AIU>?sd;BM@pAFuNX;N<@0`Urie8VmorxCH}L z&-JM5qDQzyL-e8h;hY?|%e4IQZHzgGtMH5w`1zDNan8AxIR%-oJ{up7^E4T4@$pW3 zZ_~20OH*>M@ZQ1w^6wSe@4OcDCX43VwwI^*YH1#Wm$^GLPaw}AJ@kK{SGKZVwwD)Z zKIYY&cwfJ7qDG@@&&De`RN>E28-?4Q=PT)8uyek9IDD|bypjiHX&Eb&?UD-o3s)SRCAM72C(ol!I1>7oRsvp^DdO%M2J@hLOSO z8oV!~m*pM4M_=UbPJY&6h3>?AD!Ug3adwyBfR_i}?&u_k;9Qw)kylHPnwh_=N0p+r zBO`I0A4pd4&H-LtpVTnBv|qp25Bm$3UC!O5@7acJJkakZMz z=ns8Q8?sMU7t}ubl4BT2=8FG7OZgox_b2_|AID0?&m&XCk6!up=b`E1+g`c)Jb&xX z>dd8Ggl7|>}=F!_>alrr+?CKZR`8C-l5Za zTV@n2YenY55zKsFX6Bljb040X?_<@Sz5zc;*2Zv~Ucob;!%r_dV~%k?ci>pbO8xlU z`Qi&$#E~;}700lsZdt=A?pc2=a~9&=3_n+eDQ&s$58QWm@IT2#{8C?>Ig9Z^1Up=n zwbgbWw7rKN`Or(&;+hQ84R~;7{BE3i4Mrjhg;(LBITfk@wt3E$t(WMalT{j>&^%5g zTEFP+qHAlKCD6$lc87<%o1z;T>vDg`V~AJkHp46aw(IVf8??>gH-^hJNVw2&$1_*Y z$P1CTf*)Mj8a&E1efElM;_d72$o7^E1KatnzW-lw^#AgX8qb~kgPQQ4_+)|w ze)ZnPPWDG~A%Dl8`~B-?dcgvA&41dFxwnHG&MR}Gw|&k%weCJ$dN}(-rnA72YxT5e|)u$^J^OS=H-R_){uszj=6nP2Jt(b*tGM zQ}OYuA%|u>2X)vKY-yy1PpZLd=KT3;?PR=G^al$#mYTnN0bV@^_m1x?xdy?Dll9VU zba!yXGEO+NmBSTe*3E=}pHUaisVy_}a8|a&tX^(D{>KTm7(Anz+SB=3(Sxke!ri6O zjfXRwUFIrmsV9=@v26`E^+1_b(o#3f>M_RMKch4pRk%QzXQpZ%$bx4wM{lrXEw$X) z*^|TiweTJ}A2Tzix+;@ER!C;%Wu8v5q?&NuRlnZt8=?_N4&8;~m`~$`)^G<_w`3hB zD|->&u*0*mh)?Xr{dS#yt+;mXC0V%o4fWBnJ7bT}X-~huN5^ps_7v|y=BC6`^3-|o zKrMSr`?(8e+lH4Ms^yM--ppiq`VNnmJ$9s4JmI%Gs81I=JN$LGCX1tk5&ae)nS7j8 zp8Iy)Y;8S6UhSs*_7(ZkjtH-q-@D8oF)ybny3++2FSB^8YE!S!#Myc_ zCA!VbN*uKY;^nR2n&Jgmh7m1UQE3Q?KjaU~y`hXu#4@A>6l{nnXR z9PV(fM@^&t%glhx*VxoMo#=}n;)gOjdQgx8$Ckz;?FyWWv36@OQXU zxQ)~n;qoe8Eg4BGu!PK3YQR;ZwVW~sAal)=Pke1Q+y{NVnmai54g0j$K91(MYvN6> zGsPvfVCuij21{R;IeZPCxfQkBj(ejex4DTcXqNO6d?YP@R(wVA%-prUkKL=svg@-3 z*WTrs!1p9;Ao{;6aGabosgbU`8@u=%;@8a_kA5}efVG?q-T^*~_&i3`-J>)}rD1t= zwCANU*={(zc5SxUQvdC*$c_^Dvc4#U?%Lc70BbI1LjtLkgc9 zY$VTd8&-ecOw(I>^<{gk=?tjB0~gdFS%<*{AHo~s?fZ^)tQ5eFPIuwo7Wdc*Ls>dpuZ-er-YxnEAU~ci?n1fw%516uWA))kS)z)PU=B z^6J=C7+dn`N_wffQF$N*gfd^~SU{S(3HMn+0ndpntkS7keIu7GF+qye)Uh2EH_X$x=K4vZt2a`@d$y z$^_9rCO2+ZhVKfDybb@|aBer<&28LiYP}`>%_6RPr&j9BR^78+a#n72!8Q2r*Wl8N z?)qqh*VIbU=WOZUHu=K$%*|bQ=e9TE(ZTmET`IOVM~f0)zyUo|XAS{8;#1u3r!vEy z-e=}XV3;LXYQ12bGUBiiv@>I2Ga;F*$^(V8>XDOh?#{L&ueCd&+#8c>z?@& zGrXKtd84(qUaex*9b9vnXJ^s(8QtWubNlnF@?|f}W>eSx>Gb=>Z~WcAbyxiOn(VPR z&i`8Xoud7w5&YVE`wZXoj7EQ-{%IG_yNMTzu5pXTYghf38gLg+e@o8tZCG;doXqjs zS3@l7SNdUpH|e$pU>rC2Inqz`J68tn>C{WvSDD{CG2?UcDx{8!-=$<B3c;MmgtTCKkYQFe2l6jlnaYo%y z+Z=-Ht7*5)LQsEK^_5li*KD-Z`0HeC&*O)td*1BSn2WfmP5PbaO^@xp+_#zKv1{IT zJoCv0Nv=xf1($G;;iGD>uNfNAN&QQFy_tOyPxXvDC;pw_N%LyPHFGlJ)w_!O${eK< zuBWC~Pj>QwJAYFRvahzk2VZ*Po`~*0+3$;R>lJv;mfCOII$7p7t-T`q?EC_fYp4x7Ax~`no2pWf?xT_}Z)dQ20o>1&??)cJ-lqH!sUx zk{@}KkE)A~?E`)oJ<{fDuj3rmD>%f%2{Y{76}tx|+8kL32cyOIx^u%?$@#nFd}_(| zZN&RkHH*o)k{p0F-o4CJO3&WOx>B#VTkap{>O7n-`OwKJU69MO08>njp63=$X$W7R zJ|MXIsQEXUCDfEBQFET=%wqTy?yqhiOM>4(_ z+{10P?#WCz8#%hp!yR6V16;ym9O`piM0{wOleR|Jy!h^`GW6(}^zwbQ(Y?Ow5t$2l zo=rIp8#I;47pQv=6Z{#wGK-FO|%Gm^uRwp@EKWQ0_-RO=aeK-I$c6 zh4;2I-S+)P- z0jc6*;}cokz>V)LbbfESjVq?ln|99!CyoYw)V(pHh6pY=NY6V?!=22=)OhK0N8Bmt zDWWr)rH!pF(G&)gvsRMdS8BkkR-Dz#@cue|#ynrqtQqd|h%&1!7}DyFe7BQwaZmks zdtW9TTyo8Kk-l@ytiJ8Cnh;+aZBVqq8?-YgGN?}Ik24>19zQfu@09}~lT7_LsD25i z8ZB2crf2<~^@ekPRnLzL%`AysI<+O-Nc!h>z3T1uycyZf92~^B9={^b?~r#cnVSz` z(~msg2kzEYy8DLbHfOJeU(2k|iry%hF}u#%6By8w>ah8~-JLuCM}78R-nuFaYC?#zEblr6D4GF0r%P8FN_l?^i@nmGONY4JN%;knDQkJDFg>gf&^WuM4s z+;tAG@K7z$+QcuJoZxNz?7_>Q%)%j2`X2oIFa)pXY`;{TH|(13;R!yeapxL4NQx0}2}E9&P>y-m(#Jzhg@ zXLOI5hZ9ZtLmYR!yZbP{%;}6KE!oLq&XxX(9v%nZP$!r5h|yK;xU+7l$)aU{?C!ez zI#1)fX3xqx-Gf(dRAE)>`D7g=_dXdF@sX~m)mHRQ%V(V@Z=EXc!N~5xZIT^!-x-`f zx}shm$K%ZDp)0uY@OdqL^N!y0w%&S|b~|&nCV628VF{i3kH%P6@OL- z{MKxYZ(crK{PdFlPIvvw#h&7qYjXYvhKeus9Qpm9!wT->8&2Fsd+zn^*JZQv0_>{` z4!rWdldp20Hs}GJ+Jg_|yy5hg_y#fucm$u{$H$wT$g4P#%W&rI@HuL!VCtPY;qKg0 zGM`{AQ?jThXYoKZR?BAMY;VERc(Z2pVwqE(eAjp^(z{*N$4=q{`>c^c&!JO0R(Pk? zc2gBPjahd(?s$Y&pr1EzKrNljh~&Q|i#wST$?%W*k6VRg|zG;nV_a*np}`gMDG z-pskGI$_s*)#Dy{zRvS!_H^b=Y~F;0BvVhFSL1V>gISbeY*jVkynQuA&p2t8>9jg4 zbC2Ucoc7<7%|3+}8gc%QxR1L0{1x>?*36V#t;}89hV?y==kxSZZzo^m$tiaQ&hTsb zfw!&2_(!9?Sf#xPhrbJpUgqtt^AuHOc*Kvsx9TjX-{`)g_P(SBG|wg3GV^pcE4b_y zUB{9de-WOwXpUU6oic}S3zn2~A+sU2cy?BKI@|7>rp$qoJ<+!AqwU+nrEG1`#oyxp zJ#uCo>I-l4_pc4XAgpOxn1<}9^xI2w^f_?7Hoj^>{omAMFScP6aD`yK!D?HyJWH}+ zqA?C{(Kb6`QI<$v@#9xuxf67t-Ohrmu)S-uGz%^35>J#FmaXO4VpQ!MZYz84vic-^ zUlaDerd~=;Pcr#-+yl4t<%jC%%&A$iXYM*vpI(eNhK`c%Hu|}5KIkca6PN~YpZ0Mk(M1O($EOF^(%Vaq12ap_ z*F#G`2)}I7Eo9begZ^qxzInZ*22sORCgl;U11tW0u{PIvHD*h+o3-L(ZL_$$v0ZGG zctEByUw*9E9yMoRe7raw8!K*)^TQAJb!Hl@J7>3Fd&63ymyoA^61@f9br-I-MMs}Z zk7R0Wx?kcM{>{zd;#>ZmpUezi+b?(Yv2*y}^vYfCjhqkXe1^;LzhqF~gds*-6Rf;s zEi{7Tsp0Bt6UF)lj(T&hSX<|}caJyJc-f1o1M9il)qd?o`&5mW+^^*}?iY@=#@o8R zC1YcQKEwX4wWrKy(TnkI%+XzB{%!VbYRX_sD?4+=`mIKh9Ocx0lW@zjOvzF-V|*jw zg=hHpEBJtTKc>}>)41v6FjV+Uk{g{mF__?#bD-vDYp}~1xL>)Yf7Tz&@mW-?li-2V zwBQpoIy3H)nsfaBr|G_*<2ti6LCa9yQljVy!h2*Q9ZXsv6W$Y`Cq+@dWJ+bbs_j(I zY;Vu(PHfCZY{c%Ld-r)$-9KbNh6Ip#@BPj>uR8;C{V`qFQ$6b!`>o=0drH3O;_e%j z;;e#?n4BK^)Sj4|AJaGAzj_N!j@yvuc-k=oZ{xY~5w)JZc4|&E?PZvFPrtehr^(lj zS!Q$InZa-RF#FPBCHLvDp7Uxyk=^s$y>p6F2&Ypwch#N0eSX*%^k~W5{9U{CZt?27llGpaR=j{iz_y_s7zk3TW{Pxx2Pw!qY{%9Ue z-v2+*iGGIz%I@~;W4+KXWxm+qv&g)^?LNpZw{5-tz_s3o{T(__kIl!Y=7K&RbU=GK za1FwT?mM58k#c1IPPW1}|IDUybe;aQ=e23K%&GhO9*^!Z+~XdO=2-9Bqb-d#V6Ba_ z%go`dPHul+-Rd%?ez9UEWhXhNp15==ScbN%wG<_w0au;5A7{pXX9*?=eWj|?>rIPlp88n2;t z?bn>FA>Le(!>x{PBv;UR-}($5BNyz%`Sw!3_Iq6TU*MX5;p_baz1MH`o1%*kq~1>d46C@;$0GW*A~ zm7T}iyZXR`v7%>YO3zo;D`sX({zmY)U$emQ2+ouEIfj2`l@=#`-zrW`U60-7p>=U&;Rv+2Sa z*WifJBG&Yj4Yh1thD9BhRQF5;BlOK=< zDf!zkU}lbDJhYPjQOdP3BH= zqqB4EE4bU|a#VizsjPl8)wdtP-C?Xh@bdiiw#>bmO7X8VOU2Ln|ED;TL%3H*nl@Zx^4F}-T&{L>wkUk zX7P{mWAgLU1AceQ-W6HK`_6#_SlA=a^5fUu7<#(HQ@o@<{ucK9J-jZNBGFgxz_pSy zvTLqC!9^UwpZCla+q4_WPHLM&l0(xCSS@Q}^t#IrI!=w@$~i z(D!WKAEChtMvC{&UZ*`ii||xy$xHGaE$9`~=S{*lMsCTOf?_4H!CM9|Ta?wYVvkjNz-gYa zG1>vI2a|NU3osn7d$V#q)QrsAU+|@Wujlw4p8s8WQTB&g4DX5t<8VYCFx|!j+K$K3 zbDHzBmnr!#@kd3c9G^ru)H|?&VA^@zr45*L&Bwgg==rjvE&X3dua}Ixlhe+y_e=kG zbhu7?#ix>9P(Qc3BSS;)w`(^1&)%=^XKm^=2YRn)<+GDFJzyJ#zwY1H;Op_=4ff2@ zX6W>m!T&bQej7(CMekT13v8f7zf*O#=I>O)6Y)AMA@UVR#ll43tztAY?`CP zUcPCcfVnZA#8op^JQw?B{(EX{^t!)wE+khe=kQC?M(Gy5rtSDHxdL>qUpo7L zqwo9WiW$Lq@wfMH6@QTv^XGA1uB&w4_?UP;Pr~8ilJ?9q1DM|~%x{P8b1xcxv;L7D z?U1J^vqk#s++)MOO@E)BZ&&ZPhsTe{w;!EO-?fD!9@4}f-I8+#%M53HK06fd+QuNeB{}D=xqB|jzIPx z{NOXXFxx)hOW1}n9^rlW%!qaKVtnnTc$nZ#$>}JWseAZUdUFyuiwdT z&WFy2Grh?@_}T**YA5)M4lZ_89#vkY6@=Ey0foCvj#19K>82Vq zpj}WyC-h45Fv10YZgvT0qMu!?z6SeKKWA|*SF^v1KNzN%ee5SVoaD$QPwof${6F}t z{`AJLyC0sxn3E;?FL!2#8i79syU;T{r|0|jlMjop+?S8kjbR3h<)9OI*&T!ITO>HFz`R#xQj;L@VgOMXapLd~qw@z5SsX+-L6 zo)Ue_1k7+W_#usNcKn>2%lEwBDIT2YdwAJ{dmZo|J>n_+hNtG|u_-yZ^f*4}AK&%t z(Z;?|hwkxsCeQl7ymeq#=oW0OrSD2jtf^INdZLxlcVq#%C)L0nk7?_=-VZL(!V_$& zqbsjnDxy!n2~(NAZEupA7C-)77;pU1cascTB8?V518TXjZkIs5lL-{(HlzoVi2$JahA{)CJDhtbL6e~p!j|9N9Vt>BUHtmOLt1rPjx zO_hrOHB~PDUB>92=pEy|>daxc z$z)T0g%kei%`3%Mm#**@T`pc;;thXQ|M|ZBI++F8ExGSri%00OmjO=|kWz4fo@+=RG?a+VG2poUtnGbq@cY z9x(mhglDh}lWSISnc;P-^J+YuDQ+-2zw~|mby|N|V0X1b-&lu*HF2X&JZHnt(6_9> z%GU9vc;6$N?QS6w1cWIy7aK2%GM`PH= zHLpc;z0La*?+6c2LmuSjshu19cJ-R$YnyaSTjnocJBRvhT{ zs=f{njSt-E@kr=3(*tJ5=W;Z_`puo)by`K9Upq_U3l2^g>~CbjELVZOnFW*e)!c*y z$`gogCz*rMmk2g2}b1(*CXC73=P|MKfG{O`CE6cJLz6i+rkW&=?-~dAJeAXH&=c|!<3xd^lb+;DH}9H z+c4RagR)m;sELa9bX8vXWa<4O&Q_v>==zk9{goz;0k=Sg6oJL zI=+ZGoXN}``HcSFF#7}snaqd{b8ky_a?c!dNVkw2?C;d2WIcRAcc0zBzc{mhbB*VN z?j^Z^f5sdAJzv}}{Gm_ueqX|zzOXy@a~#AI*k9)PWB1dcJ}`UMy8g~8Y%4W!Jv;2| zKq=|{#;?3pEZ%|xI(JKE@9EFHADCDbKGJXomvN-)u6u7*y`}Zr#s940SaJ`?Z&8Qe z^bX7%Cp2CMbUm)!;IOOroz)8`&yKeSp5BM+Z{TcOzAn*vjM3-EBRDPFB{d=bu^HN~ z_%~;&Fcw%~aD@EbWqR})J=Zer$TUuHlHYW)Ny`lfTA)p@@rljRlqb{Uj^6P`4F<5n z?{iWup3*8m=Ck^7RQA!NvsyjN9*3`CeSh)Kf4VL^gXT8#+;8NnWEMaA6#h>uAB}C# znSC%0+j+x|V>nH6%4*kOa3hzB4((MmQ*FIp=dPJtkJhAZIL0~b!%B9_tAX&BwcXu@HR<)>{)aRk>G|?JBv&On zZ`&}#wp^{P19~O8-IX?7ymNOrGiATyL{H+Ui1CK<3-Cl+|gm~>%)Nd;hlSO zYoa?251C#pS$`|~|HeA~L;XFo-J9kC{`0Dw1p1)-E*o}Ab@hu?pUEW6;@vqp%mo}MoLePXuwzwxvG=Jn!J-a8rfU%R%) zo`Ef1_;}Hl;9>dx*|XvS^gay;TtvQ3x4khp6|!_=wU`YZSPn9|JN|OFP&rAS@{E8>Xhf9KPtN( zch#Hp73R2(ds+1?B*QeXdi?P4`L(Lwg*IX(pD)fTS)jYGzgB#XXW#c~@@h%cB>G zZ)A-hzl{gZ4(CPM%^UIoZ^I04nv?IEe`oO?EBJ%vJkJuHUwZg_erLfM%tzE4s|6}?}4@O$BGJTjI#Wpl8nDqe%uxhQn#zW z+kk=j=j|4}Oy9TDz=Nh{=Ia{VYo`P2+Jt4${`rg#*6;=my;FTf?tG0NagN4U-iNdK z{@uCag?{i$*%e>X7leoTv05u0FW?^W^k3;o@=C_$_jt%BFz27)yu;i-IBv2O_v6p; zd1g<+^u!r|)Zerqc)h`tLly>h(H}?&b+x z)VbN*^?kSb^>*a2z~L8hmCZgpalcpW9Bnu!c%zS6Lm$Ypvp&0nJ6kY89+5@;Xc@NH z-p2*N4ucU-(BMz$`^qqYXm;jk1{Tcfi)M&g1?S7d*VG@a!xH0XY3fUoYZGl_GRdPg zs?bNQ$(f5M^PZaaFZS;J)1_<0-!8+^X?DMUOW%D--}jce$ukqpd+z0AFJBB+iVMBy z@zI*yz|Eqo?`^_svQw*}?`!yT$@Vz*93+c9yL_MED1*`e>6079_vXXz;=k1Mef#PM z#TRdUSbVN;fAOaLg^z#5(O;^^Pdrn}{@ZdcB#Uc9Z_}muKk(V~_*pl$_>`Sx&14AT zYffRkCrh&PWZ<5`wf6JE?>u?uHCgUiNAMP9Y$3d-GCX! z-?Gc6xx?$x(;K&B%=Bs3`|^VN_|161>T2%-E@lCKo4l^@^jn_wff*vNzJK0UBX)eo z!3Lube+K_OpUiys!LYx541bFM_j|Kfu<`z;ev~$RJ9-1PWNW}LLu1(LsZa3X8F;|b zv}-R1X_dFTueM%{-hrLoDZZSV;-}$3jz1GV_dxA_AXD%pp5Wk?Fq;jW&AQqfEFv12 z_$9L2;N^SH;9x%=xQAYW1H8kRB75aWGx=}Lc>i#F`qw>6BU8oiaKS(57rufSUBE1N zX>nJbuVZ@RMKvjTF!Rpj>}<`>i_AtKKk7+;=S=<`Zt(YS{JK-<0bDBm!Xp_q*-?5Q z)_3f+kJC){Pxb|Gm`9U^5nWr?oV+P>t!eH~ZrZ{}vclEOc|GAQUVX{V)AWm7y?L1y zrwpI&!Sjudhi*wsu8r)iXzP zd;)VlP}|phehr?$ar&&}w%!=~bqB(AS)L<4%e!X!c=>0pyiv?K(`IM@x^Ti{TZxdLOg>#*XI@4jVsV^KilLTX;cm zHF#N9|8Pt%d`cU)k6YT{M@s%~cHFG%ALH3s>(a1!o-@BJs^!@cR-x?(chCse!y}je zFPYf2Xt{Xr@-sK11%=lh@Vgwqkhf)q59B*hzE>F?T@N#d; z<-Es-xl2>I%?sBuyOs45Q7kmigbodRH1C<&*YV})y*oUX$*_9vx_yq{ z{ra}uba2s%K6;TKZkeZGMUS>E2jW0hTXyd}qut}tXZvq3zrW5d z4RwEi`h?&9og2lUX#u}bTOOMKvxmJ$N7lw&C6^>xl-hf*7wd1nE{BgN!}WY5d*U=_ z7(8PT+#J5u;6q)BUi4!)fqUdj{nl4-wr@SB*$I}Nkl6+FrQE^ryf0xx->E6TydHnQ zngcI0x&1VRmr}nYE+8OV;ZkT1URz zP1tob)>HbqXj!k0&CmQ4#NJD;kTy`Jn5|!5BBVuII#nEe?a%J#y3ez zwM5r2PaidhE1rO_Pt(!KZP~bvf4;^Kip$Tg?a%o=zBVU+jWgS)F-$H%G8vOc8;#R< zAFEHiKF`&e=kz;|o%2Kg(I??sqbx=O?Dk51LRB3#veVaKbfDhgD+a?`|g)B8qBBW zrYB~pV_en&-sA9?{&82I4-*S7y>rCNLnF6JKT%Il$ye7kJD$o#80Mom%af7!%=7xi zyYe~odeMKqc>R5QFWw&deB%i{SA&mWcG(*rTp=F)Guci#b9Qkt8}QKhXR=edIiRQ7 z#dGph_Goazl^)?x&S|CY%MZ9mPk2ImaY767!1@2eIroxw`x|Hc_hVzlA8}Uycz1Hh z2}UpYwR!i#dAAQUh|fH}-Ta&t`%2@R=<5H5dtLPT>HQA(%|2V+zdw_Vzv#qM85 z@_q(w{FHipa*PvKCytk{z|8USG%aT`>n@yW&&?EF_i}CBGYi*V!kwfSUD2C2GGq%kKa^HFO*!9aE(F^_b=dT7wv(pi;`V0N{FVk~F{^$2M?iT;e=N_!+OZP>3 zg%dd0fpc%yeOtmum1+G;`i)ti*R0(w!7ygO_cbDNG@eoo80(bJzD z>*o*X{O-H|lF^oX`w2Yz^AC76;F8frAL~<(V1#G5#GKJT(;)otiao-wyj47RPM**# zMjO5T>TAXJD|XDAE4Q6L(YSBJ6O)yEtmd`Uz~X&vnMd00)4`lfHT*>K#+PAtwU!!Zu4(ONXCw?_g9c~=&)uUB z!iUeQ6SHzRk}KQbeM(+m6Hinr(@ZYm`uV@Y--a*#)jLR28U2v|KFk&HH94W#<(-Vz z+v>=IninluWkH^;GbCJR3un0tYd&*^?gp>cd#&Gr$I;=O+oSRudcHrH-?L}+pK%3$ zzUJA|Q+<1l2h{t`bCi9HCA~vDyV>8jN&nuE4>EJhjstk|^q9T^j#v7OF9IH$Ub^GH zI9C%6oj-dxpA#5Q*EzIASHGkenu9sd>Vx7n8=sEeSo$8Zqv>H~U|3!01bTQX>JPh7b(5e zJyzj(>%3RN=-M>8Yxu}x{mVH%@I+qJF0bi&v=un|^wG)02@lgSqeqXK+Mb#oP5%l! zqT#&AE45>j#(`#<)bPMhkIS7!(MVtqlq0U z(QukgtIno%wQkc{v8(?(xa37Ia?dOtJUp2dJ2Wu^KB(*sO1{^?GoOEs7rdj_4W7DW z{%*j%tL~@d1BRoFR%F_2Sf0bF(d|@W1@S)3dd{;qYt~#*g3nJ+nFnF#qUsB@7S%NLko8jl+>T~+~1^7p4(piRQ ztv(C%z~h)Yn1XPHtatx8sL;*Rxi!f8K%lWpCP+9&mrS$L!+yZqcXTYvKQb7bbrt zzP{!ze~5g|>`BkT;r_f9l5Tc>nu=Er!oGn?O{Ef`VL?yBL*zl;8(cS7HPR);I% z)z!C(K4%(du)xz*#zQXCX|B?&w&diD(+hnx^H%ZJ%qzu}(yPuCyGYIV72mJo9?0I3 z?4jC_3$wpjFYb9A(@X9;J2&WTH&cITAohIb_paO+@}$97GcWzD-~L`5{n9mga^r^2 zT@M&ekSFgH_IA3Z?>+I}X_VJb?Dq5ChWjghp2?kD;e}gu? zx#uIhQ?u{v(W~zkPxOAt+J7WdDSLR5i?H<$P5oQ+v0mBxeL!z|EZaKXip})fu4B!7 zUFq=I~dynwvPx>Uux4OS)j@j|K>VJ3rKIs9Y`wYe$ zFGoYKmS;7&+sP0L4n1(r56>5~T=HQyc+yw-b(VN9C-r~hExn(fY?ZEK&0OE22kGi} zhFL56`C(=}t?yt%p4K*9tbX*s9Poe!<$;8y&es6cIYh7Rxil_U82ukSB8_y6?r&EcMv16rMZxZsg~ohd+6L zPv}Su0`)>}Tidc(|$_tB#!S8iWj+STti;T?5#s>NqH)M)6p;??SI<3D+PHob!V zcHt1oZ(64VNQP65c5s^ZCw*S_xUag`Tkz4QSDyd*d7Llp(1d>;E9v?Cb8-X1mk;-L z=`FGgEf`>SIF0C!!l$mdm)2!Tufp(~^r4;T&eGp3$qF5TanbKaN4{-7f3~tzd`s*7 z&7utUF}o6Qv@b5p)_dQs1bK@`be~)B)hcdnj&ESjjIey?{b82!%w1WAS6?f}>7piO zs+6z4SuDAKR%oPl=plEm+y8cDqPS;%*uuN-IuklD*}80|3Vl|*z)R}e0z7Pyj(d!s zGFfub{WXHI=RU$S_mg9QLv7Q>Y~sK7JP#Mn&~x`?3jt_`oHR`Yq3T{ zsEHC>V}*Yn*L4KuX_i+L^E=azy6tf z>>0e~1YWeSx7|{^!&i6d;nr!~R^iNT*)xaNc_6&6m-No}^|o97UNW8+@4C+VB%@4@TOJ;6P899G83RjpBZjH(<@Hv@BO=ZdhABzhS4I-tVgs`=>|vCY}G=G{XbW-u|sS z#Upj-<>+Yf4Ib*z$a}@p|2W_K&hq#|`_Ad(w=T=!hRxG4Zu>jQPdlQoI^xUS^E~$4 z+imw}bXnowl7qTxeppYApWd&nUrSy~-MuyJ{rrq&^|(Z{v5co{$d*ZtUK{Vau`mDQ zWPQl@29t}IB%a>>q5O6KFSuI%z3yivXC@i1ExkbtPaEE*N5h-muMEq{?%oxBKr+2= zP0_AQ+Lbr{j$Fbwi_fOtEXJM94K=%a5N|;R&Rd~%lIPcj{i)##Fr~VlVZ%JMO=p(* z{?_v4;$3IW$8f-W-|)WGW#0)=@eZT0L zS2Dl#X{m;Ld-ZSk>`OWDnGbxn!Bshj&gw__M!Gac{$JV)WMt2zNk5YkS#g~$6wuQrwjxhISu;>*&-=(e{ zY4V(>&HM{`+1fe|f{tV8WAOYp!wcYLl7+Ps-iP;Lo9|_F!}-smf<$H-YRy~;lZU>@FB0sN_ovr z5S|iTZ1x~LHB+YNe$4ZFERSIyFLF*Vwg<=092Z=zst25>U73>cv@~z0;*9-fd_%*G zDZNR&A?g37m+YFRp{u}idS<=@Gh^`Py5G44Gg{VrR`LG>_xUc)dfy(Ew`2fC zGv0gSl1yS554?5Tc#CkH+wS9CUg~pLK=R}|+y(j~pfG8|(Ljxhz_$)1dcK4QxmyhWeCrmq;_gSPOu zkMVn7;eEfjYe$Fv@7yezb9aXhYA-o=!COCspT9>pz;7R%cndz1d2l(JEqG;e4HrlG zIBBhBZ_!5L#m41*E`18GlmFJH3){74U>jEa<@@HvH_d(K&|SKW9v-((8`*|mRj$8Q zEPjT!*7Hrt3e3)nCD$W)+tKGo|GH-m+BP%y@OB%x?E`an&WU6+ollM9AZbkWMo-~U z7oV9Cor{l3_KNG@&uNVJag76{Lx+senBJOg3U$0 z8cjrF%J0;SFB_H*zt6ext2StUcxH|IET&wec(R5#ARajRup4{urUPFO;bEI*O>+dyTD(BbB~wpi}%up!!=>vTb{MHnLHVa z*=Ik7^Bu<@FXPCvce4d!j87tYmfzFn{PFE8#s83-{?B^(Ki;PCysHOrHdbg|qqUtj zhsA%gxg@hHGZrlEAq@X3xO*~|pTKMGxjxzNvgvt_-ZObI(M}xW_oC?<@B*)RPHOt+ z6+5w_t83|}y0F}x_-`}2(=k3&Prjd)X?mMCYZN!{x;^sV;%`kJ)A=i}4n10rJ@Zf0 zvoL_%m(*p zXz$4mRO(dmiVX!XIxp8A%~;D z+wSsh9P_*;2XT`oBEFUujZpITlg&5W;|3Fp$7O3*ecY+i+sH%L7uH)aJXqOMa6sHy z*>l}+cC6~Z@=B&&d=}ZmJ6}uYg5Gfh|40|s-jjj1ExXxS9c@y0-*vvN=m4{SE*_Em zoeFHMP779}DZ5L@n?3F~Qi~d4ElA`^{-yLucb0O;p(o5nQ0*d1}GJci{0)T!R<4XN%8o^Vyhp zx8UXn>fXsaeClxF?9x6rBLqYLM&16M{_i(*e?vc?bMcwFc2B0rF^uVC+4+b2Ocq4? zoC? ze4u0gfp~`Rw`un1SI_u)pH%dJB|AoCOg@J>3^_<=>#6xUxm_oE=1sGI`nl*W7Lt*n zj)Z%Rk0x__>UA>0^V)GAZ2KJg^g`K@)=_8D??+#q9fHvi?(k1;^GGNACmivdSu&cg zCB15cCukj(-^Sf-OyYdZZ|VECu73u{k~84z{`Gf@!5ChWMt^{x*pwZd8Sg31C%IbZ z&izMpQ%8EH0lauUShU}1J^u`cY~y|BCS>jD2WsxUifrD_%nd!H`bT&B!tDQ*9`6@= z&v^R&@wNAgKe{)PhxY|6D?RcvHT@Bs;GD+j1eSN`92=;IeR{L}-dnQXHeKU3ZGU|G z4`FHPsUPu(>E$f};V9cZDgZFu7--R{Igv;}D7SxbQ z9Ka~N{0{75gzkB4M(;z@G@D#t_**`wb^XU2YUcfV)HQ!>pC`3MGlo*SR>>fDk8YhLTB+sSGuIdga9 zeXV}xI=xE|?>!FSjJ@kHI2yoxe)n)p$7<6tZTPA8bsq+E=6>6z8Qj1-Z~NZcYHsvt zt2AE8nyat-`|8dB_SDwv?3lIAX|f+RWW@2LuEC`m^dL(edr~%VM0&u*s$RDOYcIL3 zp7|k%`yagT=o0_$e0pa4Exl%OlZ*61%M0>mV8HqF$zsG~#!sArt z_)65jlC!IXo62siS$yoQ+_kY=uNUK2Uy%dMv#gg{rU6`WKJ33wQ~FW3TKJLvBKX># z`FB7M+M;u-#s^IMv*7n$^f`u$n;3gn?KBgZ7l&SaXZOBmHMuKC=E8kv@;?0U!miTC zzHfGaoYHb;_s6Ne^FD9m1%2Z=U*rKlabN$}=ill%Lvo+5;^l+cr&lTCT$795!Kbug zC`~;}a$VNq@t*cs@?K|uUrFy!q6ZEJ5FD_s*DKR{j?+y9pN$768P4&8)bSSeF8}Qz zJu$s_yudx@+YY?>B0MI1JKl!u7s-7ZUDQJ}{0no`_q2L{xII?LEXCA`mYW1>>k3`3_2cuqU`%_nfpkN8jM z(Jx+=VJF-9>@rT5e(`MN8oV;+qdteGZu=v-+;q6x@P=T?$u>QERqrRC^L~84v=j&W z&)qGVj(uKqylT~}Lu0qD|7)5Z+L@tYfZ>4SkD75U!vhbsfbN53`l9j&G<9C#cvpS@ zy8bhJGIOR^XWkiRs}D2aT<4za-NoN*r7yutEy1iNVSQt_;Xu=PS^a3K#IprsoHWDD z@@-Ah>I5Si(|5-ATPe|O+<3L9eT1jrY20wO<+aOapWLl&b8)!SZ5&_n6gT~uV71BH zJm%-v;(hM(H@4wsRp-o-J}{Y&CD=z$cmjFy(QU1v-m^)_(Ry=%iH!^ z-x^=A1n>`_tM@d4e>0 zaG|}Edhy_)%)a9?J(%D5Kk&W{+PrXvZGGU-<7+PL@2ui0TRaOD+Fbpe{;x*6wulp6 z#`%@>iFwsrpA~;Ed3#IFpBkyju){C(@XwcJR5a*WBR=8(e3Q;IS*hk zw1s1`itp&flIOQ3^Dnu5H{d(re@A77-+%|-##>A*I9KGi2m4!l=>4AKuupjak6@eT z{@#*(esnlp8QFDOh-z?Kb80x8?1dkv0Z9K>!VNF;b}Y)MtbKq#xJ*lX1HX4w&m;37 zb8mLTc0SgV!RWTl2YE(Pm(OHdeyJbJj>F(RKkM~>SzN;L*vUq3`@r={hRbTp40WxaPP)F`0fLI!!!5$Bm1Eq;(I@baXzAzKFn;yZx?M|YDLc9=>BqU zN57q{k@yg5`l)ER)5kURp27U$f5~2~E*(I$LhE?wCcj0ripgN;wfV&9SsL!6=yjLy z*LD0te1ZeLb^>zMnT2Y+gnm^Ya`LsANGe3fZzTgde z`KEk?SKcXpc5QwzZ+)Y;N$>ZF{%W`r2}XOukG+SBIrn_*noD+^m(iT`>BP5W_iwm| z(huyxA>yk%)DIn-;o>Pdp_T9JTce#@qMcs))NT(w{|M}96sLNHU*aR4xhwX3-HM0P z{WK@{JzlMwYHM=zk_jE(Ryg78CS2n^Y2lid@zPUf{Ymrqoa}=kKE#__qbF#44=pux zU0>EVqxXH^zMQvBob0y$c0YK6doa7)j{NsvO+Dvuvgmre0Bv)3@)&!t^;JDc@>`P+ zvB6KUCs%a~#?gYmcJw^qgpZzsa8S3+L zPF#}>983!?aOkX!{^}`??{vg{r(d1IcaAK+H`EMF^P(=nBEmB!*E!n3#TDF91I|Vd z9Vn=cih2pnHG=sJwL1GT-~Gpc!)E6enrj4zkYRw-N0+t;eI#d9b9#< z(KCj}tE{@eef~qQO@(&T^{Hjnqb119tE@5qw&rT zmZ7%JbCw+G8f{FAj&-R0v}1R}jMs6m?7|jy-+L8KXh)EH;#eW)bK?bhZ@eZV<%Hn_Sw8=eHCBPlkKo# zPD@VblB|ju9^zR%Ph+6A;|#NNCBE?dzN0X|n|vQ*qxPM{=VxK~$-sI*8IQ7InHFBLDQ7K$%NX6#Ze7k{0o7XM|m zTKw($Lh(;mr;C5U?IwfyJABfEr6v6v-k0Y&dmO&?JN^FSk>a1P%@qIj=0fr3JMthW z%fn2NXOlEpH|Q{&Kab%t$prh(9DU|9yufKcqB*?3v2L!DBePuM2b2x4CXa7_ORr}q z;-MV9133va6kEs3#St8RJ-u6S8hWguX3L*TeoAj!7UAwX9sk-;!|umZ;0#p@9@6``pV=;rv_b_dVSc7$AdeMU;c!j?PK|nSLtRJ@SwpEOZtv{ z&l%S)XYj4*>{4`YI0vR-x_8x)>>-(?|EcBAns2k?qvQ-&qcPcixL!QqHF;n^&{4_R zgooY7#~+s~LmW0WZ`HjQ&&RlY%+VQ~3VdQtZyCRSRd2VV=Cyd^cW^WNIIer|s&i_1 z`nY{L{n_Ue9mx(|()OFb;uRNgi*IlNxemY4_y2XFOxrzP{A4Hgw;#ARbiC;SAM44J z3-Z_*@KpB5GaBkWo~v!OYR8$G_cH^BotHb3xifntn(0|_hw+;AVfNw9dN7jVjs<z4WgRRzR?^X}=@`pHh-ka=JS#2dF#2M>+dfz#PB3Q7VoH*)d}-bcV%G*EeSzCzI6dvjtDwgBgUcO|DljIgHNaU-u}( z7Wq7engJe^>`_hz+mf?AUh7uRyr4f=>G6&6c{k0I8#~dP%As5de?%v#SIvIb2K{ID zHpIJ`{$k%fm3cWl%JFBT#km>j9xU$x4CV|T_t07Y#N2%1%-Z3L8}KKle~7-NOY0hq zW$$CVFGuK?uhNI(*2*x8I;^9NqZ|4J_)AvS-}Qd%Y+v{1^{%__+hp(U(SpR+eWH%U zXZ6TE^5|{ZGJ2dX$S}-1#n*Ok?2PivN>gM+;Iou0+ zqbVNa;T}5u-(CFkq?vB2BzG0BHL4dLr(q7CILXH_N{bvV-k6%k^S^86UNwU^%!$i&UVfkbul*mca24O~`poFN!^Ovw9ZWFVzs!GkX8wB>0T#<1uTT(O2jU#DSMr-|4!vn2;2IUC=~?fI>a=eY}Cs^V@N?vqvel~r@mdX*1N z?XKag%VxonvuTy4djnn)jaF4}o#$j&8$O^7f^Gh&|BP?r@7|a9A?Nvf*#hZFKYxWs zgl_!oQ}ssAwZ=SoJ$M;FrsKw0QEH zu=sBI!{M&?d9zKu3Zv`ccX1?B_{_V!_ahy%5bfTt*P2FK-di#(lFvCp$8l%mJ)T!^*LaVU4Vd~C-C&82qs3qLkQOdEc*ii`{db(nuKnTba%J2fE%<28 zyxi+;KDD-eRKxtDKK^d7M$6t*pX@qV<3la;AS~gs=(Bg#podd)#gplU;`xM(mOE3$ zFCz=Z-`^<}e;k+NHd-nE$4IsKKR%l;{{54w;=kWsEdF)M{~N_MF46trg3n>=_w{to zKeCrz5AydPjTHaogR$awpUC8r6ZLXTk0=u?8r+ApK*49jF}>h3+ruNC(tz*#z3+Ec zi*x;6uiI2(+cbQubkf~oe@_of@6Hju% z)`qXmJ^#GB3iGA4+u)Vt)m(a5X)gtZ1JPqA~nKK#8=?N$GFxkm`bLKsJZ;$=X57%fc>8Fy1{pj+I;*4i9yS`4Gm+=~Amuo|d_5cqM7>C{;gxP z;o-8(8(3f+pOP%eWKpftb+ve(v%5JO`1Ax@{(cK)-sdyhcV370${ynQu#!cwDkHxt zYb*N8&K_?~dVL)J);^5YxtVOH`=g=ndg)3@e&HiPZb zovhhc*TJ3l^qZUJ)#NL6wqSaCxz0v|_FKKjCvVuF*`YT~)=NC)bsCOjLk+Xka6whq zKDixjyh!^GnhZ9b`>3wZpeN(O?P9vWmjouy(Xj}ii;xk>MNe=fEElKho z7JQ9gV2WmVZe5-3ywB6dkF4(OI#0G>ID=0v6?=4U$;vsWXO2(j{+pL*uwEbP_>Rol zn{dBjt+3lRJ5YO@yhsQ18Hco%GHjyvIe`D1(Uhi-434?%9IyEvEp@0PQ!n12ahTX0 zx`fpHcomWvzMzMjRV$|SWOvn+YtFTIX?|Of2cR*lc*8hfh;>(>}21>kI;qN*I|LdA{YJ4 zn%N?{%c1_Cb|AY~o3ekC&%0v2Pd;^ai8gWF0~+{Xd+`ab!_ijYJnJyf9sKnf9pdBH z=o2sLfnaOf&iQ4&!ErkBYw+~zdX3wBJhLmfB6!nO9oA=_n9z&Y_rCEqo}7;8<>W}esFaF_Wm)X9k2B}>VSv#<#ebTfBUn{-OIOSw zYkH#%n%TqMlI(xE75i$Y+?Qy^%bwlfFvGlVcxq`v&Nu#gh4&-(!73a-nz1sS#-e8~ z`xTfBO(+Gc%{D4(6Mi-8-YR=h$;qStO4rmch z=?%gKztGEMpGoR_?QPxxIdV-oBu&q4ofo067byGZ>9=XhoEufT%cgs8<;GidVsH9= z^(?af*6=XFQNxWUlRLQmnOgn#m#!6mefvi713l-3nV@T?OJ4UXykc?IPFNiNl6$@Z zr`eR-(b5BEAMmkybY|XeW&VVXl}lFt}t%$L(wUmbE*`}nhAhF)~J=8fny zRy_~35{wv5*7bYFLwEvT*pd~{edpC;K%2B*m3=RxG5hyAvO9+Rt<{{W-+#g1ugJ=( zZt&f9^nzV|dU!zn-Xg5B%>Pn{@eKccg>J5)XMnk9cX^|AW2oOvj$^dCi+ca$an7#d z4q^18?u&U|q#5@~g$AewCz-c5ei5&?M3;Vh^m1`^B02c<8TjcsKCen^9lcrwwmmI> zaDLhIclRyNBFzV^X2rGa;ZnBfU5?+m%8%>}@%as8(gYg}Ufz^Hu)(v_ugfe;4Z{6q zzx3{gT;cUfv0tZ;;^#e(*%&V1=!2`c{|R&8nCJgj&FoX$VRmx;^H{C;r-@qezm1fN z|L;z<_zp6C1bm6RmA9<$s_r|5`5WOFDxW zIEE*315W8qcjb3Q8=anhxHrf=eKuWp8h21+Vjt`IM?+3+TtLNEl4{Pkk zR_d+io+tI-gzn?e{*L`M7*54`pbqP$whq^aJzxC2!TrMbPT(jfH8^qr$Tro;19t-azod-v*V#T9;^F?AsN z!gv7|oo~}Jv_{;IBWlj9zq8=y1{<5jGsUBqT)yDS(T}b3p6{4rA29IC(UdtcR<-$2u%*k_lio3K*6MXs$FyDCUR(aFAuU*p9(eL4LPb+3- zym|C$ZJ$|kj{44_E&TQ#zeLA5n7$%dUbNm%^mLERcjr9z$7<43IKfx4Uw3JEv!`h- z7__XFE%(?3F6=pu?+_onPq!PL@8%+mJ6d15p+>%{6Ki~wD>%MhFe5!ei?(>}sxyk7 zsHaw?@7mIfrKd_RPqdR&SZ?yNvJYY4_fKyXJ$&$)@L$Q!D|>#k8>J0rZ+dQ$ZQ8>t z1h+|!UpzFKqw1casvfby1KT!-wrDz&)0M1^n^-8yL|_5 z^T5I#_F#UyasZ?C+PMBc9!-667Ue$OqEkIyalV=z4&Jd_((ioc{dC}J^XkunzrU=f ztlG)2uFuO3&r#U^?NKRbyp3EQl~e^<-{ImfH=d1~vh0sp;+3tFcEs?*n{7hc1s z$A3}s@AJ-vU|zv^v(K*XT*-{mF&iXrvH8iHcsaNW%&e{7+l8%VuhwRGy0=~_I(onC zo#poh|8PAUyZ8Csb$lCuW6rAFtIZ1 zHosfbe)8n+$Df}4&3R^LVX~8E+VmI8@c9+}W|t;pU;R#xnoOc($$fuGP2pGl_V$E6 zk58;?4qW^I(RGh`}6y@Gn zp#(K=BD#L(?{Z~g8`=ZOGb3E1EL4aezyi}yF??jN^`KIH#)N0ZjY94 zPp^LbANtxecu7yrLfvz_%=1+8tSs;>&3kU=T%TDy!6a^d?v9KRy2&9w09R|n08-<> zm{{N^v1dVDe)<|M@mrVWG04ioujZB9^G!2o9qzwKR~x@W{6qQuC-o@Ncdy&W*7lk8 zWyo#g?+2MF>D*h+yt>}HLMK|$XIDJ;4Z5N1jc6>xTW0a#^yDQzi1_|H>hT^PC*I~W zn&9x;U(k^J>@55qC-IQJ?fxZsGqA}Q>QM6bj%YvcIWq?E<_*73a$MHj_sL$Y)nzG} zH&)=M$raifH@`Sj8o#|dUHtUfI1ZP`J6t@D>UVeMir?RzHGkbI{_XN;@&D)p|L1(8`1^%Q@t1O= z_|tr?_|4c%@d76FoVM=^ujGsT;QRjh%3V1@w1b}E=kB`)@YsqLjIF>u@b#l=w zl6|*(1TXUEg8TJ$>iVoXpMUan?3hx&@8D4Hn#bnhI`L%&|BL4)eO>bTTJ(JB^WvRK z-#51Wsr*Izk(_a3p40S@*~>YHi@b8@{o;yx`YBIOxZNeaWBA?73sW*}#^BMT(ZKjV z!FU(^{Or!ns}x+pY#a?+UwuD>SD!}XVg5=c%g=hR@AP3`zy+eOAJ8%-e(|THRc^2*1o8qhuh*&%2KMO(u7CYjpK+1O3y0 z=ce!9f8|r1-Ay$Oj#*Zl%d{KGx$Am9*Ywt#=C=_Vf1*E#3Hg6|pac5vWnv+O($D%kr>Rez<=%yT>%jfQ$QMz0%xSh8udM?JXl zP!GB`J-p_3&CN4r`D9LRz@k^=-mk=)&3};{rOC#6{xPha?=C&mJS|$)b6j~Hhx7XD z!}Gn3tIh7Px}LWMGw!OZeR_kOmz_^s8+EdRYpKS|#V?!O?(MK^gT;d`9ZTX>9k=~vq_%$#$Z z{r|{I!wGljM(aZi!afX{K~uP?Y1rk=`>z(W^o!9?t+y9=Qm+>`NA+`eUMp^m*x^9K zcg@fJjBfO{nQt;26A#8G@UEM%?9V>2{~b>_ZnnQ`&&w^^%`wmH6#eUz9zJ+xduwTk zb7s%uC>%VysI!B220t|6`%J-+7V(7PjA!^S=gQ7rz0As0_cku92TQDn%i)VGH+UlS zRq5NJ^9=tRd^tE^&g*6u|4IAUG9RSgWRFWSN6UEEu?72Y+$Y2RP0s3Mj;5xxd1cdQ zcI+-_&{a0fSIJ(FPUk*t-#z%rAueuTzr3ZsZ@r4I*Greo@r(Mi5?;K7n4$o@;W-E)gDz zaoFvsc_!yvc&kOvU%V&LYNpSh!FOcO^ODa$dWvRhsuJLZ-)4!)|NF6({5 zr`PHKdV0&?+vo6yXYyaeP5$^kjNI!Pocsw*Q}RL{@N6CXz7O^C$-RB)_djrMWiR#_ z?ePnkz|-TVyhOQQW~pWK_bQEUX145_DNTDu^?>oJG{VQY#{GR~*PeM%ACOG#dG9~F z^|DtvJzjR|g$JxD&cl2G6d4UgtwaGfiJ`CSKwjcZ8p`xp4mOU^%`$xJv}vlX&vWShCMAU z+HucM*s9v0Rjv8Fy>H&InsX=fS9W6V;*U?$IO!p+(8STs%YBXd#EUEi*IO+wQV&;Hk`AyXDBGq?_YfEqPgnnGy8s)WC3rlKD ze1r{JqWBbM%}(Kxr=8o$OPGMAjLW-OOm8mxD0z)7IBqk1jn8hCZnUPaiavVHXWgyf zY&KwGu)j7uzeitpunhZ~Ta<4YQ;a4s>M(9rQ&zvi^FWq=jOE+@ZqPP!*ILFp-!gn z51-I+_?{OZ*;8_Dw77>eK7%Qpz>7}!O`FJZ*9K5xnUbS(>n@26Re{6{PC3`!4<1{@<`oeKI zcY41?8kOwuT=uz++7B~EGc!ZeR>n_N>9MlEd}8Ltke?dify+D`{BOzi42F@s-eu4E z4v*#z9OvXZUJW;R^x>!SnC(S_2mGui{QQc2czT5k-0Y6*-Z~B6sC!`ICcijrC0S3? z{Fo(t;J|#;_j9-CnzH|6)n2;lQMp*r_jL}d_S5kJ9V`zq?q;&6^hP_LsU5nQ10KCT zuU(6VD%@Xs$+~|oelL$1}yh5d3eK9&j7K)52rNw_K&KSu*=9FpS)EE|PU`-g z^F2GX=DN;%SYxy~$>dB8U#2UG$NI+N$HlmvtJ%Rg$-6P9pB(kQC*sjk_jAvbVV21f zTJf2OGfF+YZRVVSwM7%Ux<+5-^BurXmoD)Vl)Sg0_TFqWXEqI9xv0j* zXAphVIsW;H`TN2-vWvgna|R!{hY!`#yms_TnU`Dm*Wq4K_xPS(rU^p{Kh<;3?mGAS zdaiXdMs#*F@aDVbgbAMBasHzjGy1fd=q8+G1m>FaD_D2-_l}LdRovx=xMj|`hR?oo z^Znu)E##am`t0Wpw>v4Hc5#OP_lD0x|Ci@#&RHI9^r9M`ULw7Ghn6V){j7Owgnww# zd^SU;G-t2Kv_4`&-;`|C_#bD?Z`mVUrPq&duMc}m7GjrfZ(VI$uj7trv}!c`HD`T| z9xJ)b!>{IoU;~@(ksc0bofdE1=i7us*Wo@h4ZoN78E(4<16+kS_tnBJXF>SLvn%S` zC-73(MzR6F&u;VU_66Wdp89{sZ@pD)dd4?if48Xd$1l*xW|zn!jr$TkT=c!;c0P=% z>*;gzo-$8nJ_*(~t#`Od4;;L74xbvo@;Z;gK!16J56B+7-~;=Y>Em6aLwdU%b#@2l zzpFnyfs>pq*rjdexuA_r*7J!uX;q(-8FhL|Em516eWvsAXY0*w@oY@c15Zzk6r=j} zal3)T`!3T*B#(5-Tw05N&3U<+GtOKRd@wl;Tk=slu$thgP0v^x|JFBiMK8Q~+dbuM zTc?rOfi2!QE5(PFeL>&BB3|fWvXk#j?m%|yp3-R_;R*I`kllY0I5 zXv?^U)bn_)ew{<*>gfNX_Z#|f+-sA3pp#{|aE(4ZyMEmNQ?RLcV&?TJ@s?&T&91Q- z-p*+L$MwlK-Nzq~zQG5|KjaKa#?!C*A9?_Ph02l zull(Y^KTb-y~gD{&hVF2@w?H({r1{q@s}$T#ZRB!Eq+qde|(q!OZL|{Fu)gd9NGEw z@D=xsdoj5iW!{Mr4`2HCVb5$X@2GVRy4teF8G7q_=v5r+Dz8#->14QW(e~8bFO_6F;Czy?KIvzr|4SZ6{Q2?xLFv~MDLqC@DuVhwVfN|!v#5Y~>%vRul>GhL^l{q{*!7@Ep)l64cgICm_ zW_GB;{?h+#&&(AM=a!3?lO=rY1gsTir#Ji4^_k)yu1(vM#lIW;$?Oq5*iRF1LAjs5 z!A1T=i~4tJ*T2nGi+`>)i|^)2#kY56@s_e6oo%1Pev-?0LJySvs;9Y*IIhEwc+RfD zhbC#!YW3obw(peBt)BQUBVqZ<@UB({Mq>2L6^36!CpG~>!lKp*J^RtUoVc~ zd5`X`7thZ5BsRxn_tH*3-J$91!u;%5JH)x^`}QxI#l2^PVGr2Zukqk44tHu~-{`3G z?Y1-frZaoYIXC6ZuF37F+X>vD53ID^+lQ@U`)tE=d{-T#)r6hQsDbn9<%}~ed~)(# z>dj?m-(4CBxT2osCLQB#_vth(V+r@V$Y&OQD*fLi4dJXhyy(nJCUqGvm>S-OXZPT_ zN9McJk3HjW*ggOHXT|q0`e=W@qVN62XZ}nEKp!rUT~sY|R%+bMJMt0Kff@M}%XTHM z_&uXt3x>AHYZh#)bI~n&N5A5t$<*6_xHjBR5=~d0k@z3up*_Ik_atJlN!Mz_V7}f6?McBeEyc@xdK=jw3QZQq%76V5kv&{<U4OzoWs#;weV!gky!VPt$LqB z%|HKKSzU|Y`ua3(g|25oA31{?nDsl{!R=&sbLNWleaVwt^!d%np~foFB<2h(;;r>&g=E z(1Np8515}9pZb!%U_O1hnlTkTOuttS&H_6OpA`LDuIp20^HaP{__OdM9lvMCEE0c6 zAHJ6zwOjC)>}`mDJ3EZiBMj(<;`hF%pE-ASAK!tqI;Si0S7zWKDzy-Iq!3UuZ6BFnzxGQF`WGvKW#km*%OhTD9>BY)8wK=lQle}WuH~m zn2y)(Ej^GwyX}5x$(UY;0j}`VhWD+|iC5QQY3uw2>P2?Jx0m>==||T+bJ@cX%sTl) z4LHIw+@Pd4SccuCm&r_YtXDdLy`9s!{LG*E%bS;rzrJ_9_@~QuCwwG34fp?;{=P5I zHlCg?zNQ8%Uxw9{Xd~h`n57??)Dw)%+54ma3tv60x5`e8>^=)-lpPPZ=Y6g|>zUjB zp1;5B=eG2FhnXd5gucGU-$4)ZKra=}C7Isac%(yfz_xkdOrLb1wjHQ@r~0>Z8j)?f zi0n$5H4_Z)Nxk*L|IgHYf5&xR>4KIiQCT9z9FTKHp$ZjI0Vw3moF&nctYFEqEw@wK z_jcd8-M81wKYiwTi_>e(4_K5K5YG9+-f!CQnptx*hR4TXw%&`reNitr%NsMR{;1H` z#M7BM(VZolJ2RcT>hm`3LB(2KwKvvbWDOYguD)|HKi8d@eDt1umwDn1wOsD`cnKSSCZp={HFG<7;`U(a=gzn@XT&-FH+eB9<}u&rMIX%i^0S>eV^ZTE@g?j! z*K>vp@EU6|{BQE!vo4pN3A6V8yuL5>+ZqjLa-5gc{qb(j!HgEV>U{m*EZjG>TDaR} zKF8aYGiI@hBQSq?-hPeeV{*y*R)eJmn76K0aPj|*|3wQJJ~`gs%z#UMJxsfH$2z@k zZC|$kg9R9~HmHc@<|NB{ELZSxythg_uHP%mT_(@XgCmpI_~f5ZRI>*W^k z@eB6Hs=jdrZ{96MN9=hY$o$F7SUWn2oB=*j%Q$ zn_Gql$ZMU@L*kHw0UXi8p5bUSyXl;+aWJ!wuH}dqXxIDCEVbme_h5u=+P7ryB=fi9 zj@yOh9KvmOaT3Ae%P_!InJMu*SNSNK>b911J+qqDH|_sT+F-in3cjz#+ta5ZYSVLe zZpreKow3K`f1r2V=JW2_WBtr3$r?-TW znz+Ht8%<_$bck$3Nt}{OQWw;-}AU@MD|1Mo;}> zWTf~tuJ{|+-gmg&?{AnH2E+Rb?sE?J*;AYB>dP|!@su}iFF2GO%RRhbatNbO-PQB% z`1?DhHTfo;;_P^@I6L1jj$wM|`#W;ndfpX{|3(GBFs!%CeF1Bg30t0|7oj8FuHge| zde3C4yi_AR(fh^UdG=sS&DT}?tqEt&n&pF9v1g+Fiza4_Rw*BIdfm*WYr@T|zHXT}wIV|^nH7EK^@+RU z$vd*k^}Q$d;t_98{CS^yhVfqP%Wd3+Q$|~S38pf6_Z@p59)=H0|Fe=B$TMo}$e-C# zUmezp{#m0qI&T!`kDJB8<9f0GNDZha?$X4x{hc;_PR`+IGLnhXcjsm{_F%raKBugg zUyL4(Pjbh;Yx2C*ok4xI+o}BhN8Z^}Spat?^v%xO34PWS{AH7# zCU?vr6Bkd|g7vN1i}8tsvx%Q0=Rh*D!)L7G0`rW518(ifi^1Cu=HuzNn`)7kJ=0eM zrT$sDDZkcvJP)H^i7waYsnS=i;R%xG8b5zi&R|RCbQR{i1oxOxhXoUf_Hziwy@Hpl zc@|aNWSt+PBa3|l2DJh6+i}h&54nqjPraEe-&@x74d=-ytZ6Fz8B8I*lgzRXR<>HA zsm8}=wo`hE#qoEGSvC5Kvue(LH^O&2t1iqekZ_gw!G3 zCM-J~?+#7!zJC0Ke*P4%zvo=u@qG@yKYUE;n0WqnJ@%Lw7g<~{vcg><7#z{}Yo@Qat z$=WaDuiM^pu$t&Fm%Z0zYkY-oV2)od`tnWvNc0nB?>ii9bo%pZ$J|-7_^RYB_e!%rl)PUpiYxpMio!uSxLDNi@a)YNAUb9-Kfl~i9YxESJeaD?J&=KK{ z!yRW1TyX1#pQ*CxY}Lz$gUUSaU4Ay<0-|2VnUoQUg?v>*27q7_NmbLwX z95BMA@zcgr+sDHk^A~@9nH~pz^gz9N2rJm4BRP??e_}lZ|GmGnR-D1* zPGHR^G*Cx7_`QAF1-`U)yFBm}tvCz9>6O=3y^AG!E*P4-yfs2AslRBd6TALSywVLG z?wWO0#Zz|GmmAK%lCyKc$GrP*)z1_SU{k%2`z^KEQD2sqvoPONGR~jq4W5|~@tDT# zv8>JmyzV0&v@LnaM=f)@X#fuUW<;*j&X_m1tNzQp-+j396Kg0vPV!4LSF{7qPabDH zTB-NqQCPN@m%P7V`V-E~S$@yKJZ|S;>bu}XsTWfBMI$u0qv4n{IHUNjQu~#weBZd* z6@PD`rXHuajb3DiFJNL>9p+<79k2k0UvTF{1Ga!Sh(<7VLTbj;j(2&TZt(Wpu(k)D z89tgBI)y#>ZFsp?AIf5+qx!+U{oUQ+;tLpTFwlLPsmyfR;snX^gXw5C7nxkGX;@6oZfWhZs5`C!H^?|fTU z>!#j5SuTAwVCuh|lPmc5QpsMXk;wTMoOQ9|y|gYA$;eMV*55Sm18>|PqPLc(ypQKP zl|hrtsuLJaa+;3ZXU8y{wZc5@wvL}*zYClv2)pddCNX@Z|>?TPxL1{V|qC{rKUBur*1spML1ZbKde-X!=71j z2M73E^L0=5i?iK5nuj`0WnB$Wq7hyiXo9BQLCJ+(Qd1^NXmeHOvza}6aEu4;z8CP2 zhsmW1UrXzk`L`SLn0tq%V&|+{?A(+4a#kyjpX?55z>{bFA~QFF*(~F`g00rJ)|~fC zo~=7|oiAvw4m&gVnCEo=Ue8RBj`N_zdx)dLy{+-l#2YfNw^)LmE$f}j{$1|faqnQ5 zR_>Ow|B8IHYcRACm|QgLi|V9FJYBLaqK~Q9ri$I3{2kimrrvmPX2RU-u#_(SN@imm z%H!C^4@Iw&+=@O;M(&?odX_D)YR8OX(y|fxW)%Vr)`TKCd);2$? z+V}ind!UaDH-7r~&Bw`u#(*b{rzUuJ^6&RyS-aL;=Ckh7jvefp`RuuL_SOdL^prND zuitCHW|Fseswcc>U!IM~3%MZ^(_OX)xKUAC~OTl67BlXD#9V;#-I&uIV1n zS=DjwMjsU2Lwy?uY(ETUEGI(|zP6+&PU zi<$c@yh6C<9a)fdcS)DOxGnRgE@ygOpH<^8DeE2cj>p~Q@j^zMw??nork!fRUYa~l z75&k|hi?^Y^0;!|cAc3G_1L(2?5gws6W*em*7hCGGFtjYc_K?VzvPiE@&1GdSg{Yv zv<9m@qD$(4K?WmidP2=TuKt;W!L2RG?ZC0L^@kmt{()L8d->VgLh&>`PIwfUWLF)w z&Bt-%BOZk<+LFF=Bfj1|o7};fE!4j(Qw1-OS<=fs-yQzdA$P^F`A0Xc%};4VFMs-0 zam)9V+HYJvFhk$B4jT%7w(D;0;-ea#`6^DQa#zN^p5QKDMtr}M_Iv7@C7kA(dp2|R zqRWoQb;WvFv4)m$B(t+HU_IRC;nKisQOEs+dkuD&Jc!^DW!z3U(V4Ng2K8gjGfWQl zhPt$+N8i|@W#4mOZPAbS+|ADEnRQ;rhT0GI(_X{%;)Am1;xFCxT;i45b}u#6^JV>4 zxSZ4k!|L@Zy+!clvo-U~oL3KM{=)BOp7wX|UNURvQt|zTaBi2(S)l{4##+`_4aU06 zKb!rMY|o*&%Q9c&PQf|v;I#+&!Sutk_VtXpXyI0~4$9WU99{S%|8r`_)P1EHnfTMR@p^^K2;PQ49Q*Sl-&eBCv)1x{>sdeU&G6w%gLBXKt3H}g z=Pb&k*}${(oY}#Sk|B3OBk|C)eykpT499%wxxCISaJ|x=eqnzUE=f}sEy5vL*YBKGVuz9H{&fwm`^g|9Ek!ux2r_(`7Y z52@j<+#F;Eyc{0U%ke|sz_-CgPigp0hj80__`nBx z+%soUYU3@>x`!ujy=`^|P3Rs!^cL}qVtR^ooO661UAoUbdD^FNm~(!=$2awn zzUGm$`DyBRcUdss^z^C!TC;eW8Tqy_zz&_*IS%-Ea;i9o=VT`D6Kmw0Ug?1D=02}Q z$IqU*zsav&;R{~kO^b)6>0XUqu#&gMh*Art-kXsDG$L<(4wex-IrvQGL8M+t%~6qQkzA1(ebO@i zuGyL!WJR=(D&{LR@u0kqe%|PRS1;)?Z^Bk#5*>F#Ta8i0u`jzLR@Fdjc-&;GjpHM3 zIy*9FV!`=1n5m?GUa)V1{mrPKXZ6+#@Y6M(s?FO&=DyDs-w(|fKYlt^{PK~HD`T>n z>Hh9a6@ML?mMcC|{P|Wg#z*nK#9%MJOil#chBoEKX{;D zch31n9`6ilz{AJA;=vb3#mUn>?=M{M3LQro#<~ip_e|l7!TyrxynTX;Rs%NM6=yFE zlHO+pW|#bzXbI=M*Eu~;zTZV0UvR+Ge?y-AUHkB}tM94-KPc{+T`&u?jW;A&ZOh3Y zP!lF2q^-`1H*|}yt_=%Fc1Blz#V!v<<|#bJ<2>ZcjW451Ym=O@aF_K1`1-bN@trw2 zU~orS?Nhk7b$o4=E+F#*cG|F3c{pu-eKO7Cb+1`RZJ6bw$J@ojr|sh5i>5PQ9*}dm zkMB9|l!~)1pSW4d2hPjPMvISir!OPrsBRvvTzzNnzWv^VL1q@n9xml6-^FWu-FfhE z_xu8V$|z07?KyMr+~uSA_UP@S8#(ZAqL0tdo$P>QZe`v{@VI0%#(&dv2UTP$m++G7 z?PX`?r1}r$fqzL4{ofgAsR5ILn|?g{t(Nn=;v<^fwVr-$Ypj^-ISXV(#8bRV;}fsv zlpgX9&TxjduK}Nq|MoGB<#({`pZPKV2=j`EY0pQ_#neGL8@J)Shu-;)_n&O$eS5MC zTklkOSKNWozrZ!#V1 zYl4^HhI&O$*m&=P8D<|858T<0t>>q8?@_(k{zR@DUBTW}oTa^-wbtSn*wPap&?{z! z=OeY>>95`{+Oh#FvPV09hL*Z-!8tze{te!J8$WZK@8Xgg@DnxQogq9F&(M^faojw$ zlB~i$Y$$wk=EcSrwBg*Cg~i3oKEtmuZI4gGG3r?l?#l4H^`87{_i}og=#j#0MPHG% z(A+npRgKud`6jEm8NOYQ+=RDp&|7rWRJ}#nxc+Y2eVF<4J-kikey;53m$&`OBfT1* zx33XB=n~woiP!7E;F|m@xg(G8PzQL`Eq;!@a8Y`>cmbw){E~AwW)DVB5)EP_85H{B zBYj(DaX#j={Yr+}ALw|0@7EvrJ${z+@}1{;jI-=|KP%pGGD5GIYw@XUz{_gD>)vrZ zWs~aJ;JNc^mSCx=|5xP=B>Sv{>yHj(CjLNuL*{;DmOwPMZRh>t5qVoQ*vY#Nh8C?s zFu-UJQp;|_4tnO^AM7VHm9~oqq6!bJs{QIXv#lMRjeMkDZFMjoU};1hPUR|p?f;m$u2MMzRZywm_zo<4qfM-T=a1@^NlHYv07*xPdN|I>2A?@TZhLm zmV2JrOL)ceWQ))ToVmN6;uc=vP?9&YW0qTAZbs&GbkzE%y#9N%qIuSbdbMPmCg-O| zW7C6$pH=3H=QywDw6cflj6HYmQJLO_E~Tjth+iPH9ZK?EmRcWp?|2kCzMLPK&sb{1 z``qa{D<-X(8F&5+K4A%7+>j4lgB`cbk_s0PP5<;74eW}!4r;(D`HNYfGxWE?^pXo3 zokDWDXW@f$d;tsc8yBj0AGJ)pB!gM*?uk`(eCnUNJ@({7+P$}L7r(ncS^RW+y!b)i z5MO1myl;l)imz|X@$<^ppd0#`52JplZ$7ae4%3^t zH(JigKJ0BC{x^H+q8{=60nb#`*Ty@P+|{)_uMPWLuHK=$?SWc#A2yj8BwH))6d%cI zF6nKPsW;oAQ}L1Wf1Q@PSHUgZmVtKmaV&Zfd@ViTv%oXtf&KL=m(Oy6y0-tgwcLy&R9Grn@6(V_VEO58XdUc zxV;*VqDGt2@j1?Tt?udR4%Oo6&%(20mR~s3{?ruRp7~UCd}YtK+VDIp%Yzt4x!Pr4t*X}V^e)2pzDO+Ef|eZ#j`)OVLg2ime^zkhej z><$=nvRnQ@tM@y4zMm(iiXYaOir1M1=I1}4Gdk0wex=U)!X3WLd(gTfLum{zNWas? zllMHIW15T8=;-(%dgd+E;K~)XWV=+xU2Y9NwrVZpXf72`9Lx-v~C-fEhON7cKbjhB-4`@9$pK+`N9TC|Tpl(TM-#jx#U1`pvD? z;-FvVcYw_~6I(EXD&JS|ghsebnO8e{qvWI1+l53J!5cHp+%gJpUR zc^dAHH_DCpPs?a`mV5o#WSjRZLuct5~J; zipGCYhEL0SXws3EakVAA#yHIIij27{vXF1lbC25R@f9y8KT1Cwz1*67r+GC^xPf2_ z!LU};x(hWryhSx8&t5V+7GZ2&bd9){87XUhAHS9>`e9Q>uT zyFv>m>lp@^vptyCG3@BfvuLTI(xZo?YNZZ`zjpo1o9?g%4!&)TBsZY8V}Cn`gX=87 zj57m#FxNZ%MpthRH_lwny8Yf$%j~>MkM8?T_S`<7T_yf&HC|m!mN`xF6r@fFb~rU{ zwwVl$wy)Wd;~Z?^iJ$kCY>nT@u+5ykpXu4Y`{>OK?jJsucT8(j@=WJ&VL9(UoBp79 zclzQ$KRM(siN+|Iu#+@@L!R-duRTdu5YNdP&3|%@;=KsAFyVZdR#&Z6WJg#_%RI+r z^L~@pbnipj+>fri_i%+YUwzu*WAnDQ>Q%XDyjJ#jBf0B4GAw1{b~n|Ctu?rgY+|+N zq30f*K(amu8R|SPJMfWYN1fwnPU3IoWjb=lgg-mvE7_yr*)@OXgx0uAS2#uII||cY zqd(~28j_{n*FW#7^NwItC!eTQKXCu?F>cCCysut)gkQ{jtu1HACd{oN_i>va_rN`L z;7q(nrxfpU{{6OoBfg$Z@45>^J%=s5l0$OpY|d=8%=|tx$1GU~Id5yYnsxYX@}1^s z1fm;RO3mRl1VPiEI&xJN0WRcGd@o~N@|+ap6htY^d!5@k<3n> zzx5X0LjQtOIqX%6*L$mj`QFjGbm=YAyKL%d&*3H~C-hJ-%(A;II9#7EY2XisjlG~< z_#yM|T#l(*gfv zaJo9YH~B~HEtr0XpV@y8@_g*~Xgi}bZ`nUJz4x{Zrjw5^6!$)UTPBiyPSf(7uKAf6 z!uR>H`m(Y+`09cG$@^bev)|Uedss%EQ?QH7jA;%0z%oJbN`qWCn(700)`_ou$fFXy z;r6k6XiHB=Up(YJCo^s;{JCCoOYgj=9=`vntbNb*^dh`LkGS(b{k6StVjmsoeRkTO zsXUiDoGN@@9WFPIw;rc~2w%FQpKIusYW7#S(`oov{ye$*E4f?r-4$HUzJ32n7SQKI z^dGeP561cF)qbz^xIgQqaz=g2cm9+9?l*e6UoXmp*3+d{PWJ0P8mFgxW|_&Ge(F#^ z(DVQOk@xjxJmpk>*E?KW>OkFNb$wvWT@_wbG3 z1Df#qWV^2?7eMC8th}=2k9>Z3#Mw<66*cSwTDhOD@&7HnJK)+g!z~3^t zKd^n=hFi6Y<8%Jtv(4fW?C;sD67|i~q@vl0s+S~B6!+P;} zr)3768c+Q>$)_<#53!)9oW(CJ&{kFAi;C9+o<8f0nV{txy8clyw4>JR;G{Byao3&%eK`N5>CkM$te=15->57;NwWuDv5OwZA(j z>%_ao8P}aT;W?s(P6k%yA5Xx-l7AgOG;=kgA@0Et*YT(6gTvJ(M>pqb{JOnEex+mQ z#gTQc9*piTe-1o@}u=y*2Cvcj&Ec0i1*pQ&pz!& zuZIg>!6{DD?94k$l8v#Y-+Lx+;Cpq@Pw#wG{LaTOZ+~3;3%ur!^bOyBgb#+-Y)4nG z=QwbmWJc)$eaRNQWG8qxJibSBo-?#OF7tyors3DM>pax7OdHP4@M6pI?NTGm4#~fj zV>;uVEz!MHuIc$@9F+8K(SL;J8=6w14qb$;@p$5RN92NKK3ekgX8rjry-hIbWjxqm z7FbJ7MB_43wLahs;i4C2U3Jb|ghPH9dbsY%X1rN_CB549#c?(_{k zZ#=#YXF;ELd(RoW4F@>#eJ1y(?A%;&e$EfL23eQ-meeN6ce!gOM(V#|eOv0nR(ZO} z{P-46X8j!)BG1DHZ9~(&-E;@6`kB}8#3lW~jCv=$TsX5)evV}|eFM&&Inb;6}7_YP?y=s*5KxSWIfWIzBpleG49+Id@00RnwEN^0364TY@zWs~1*bt@Gw^%vC>7 zJHSNM>(PyNufYmGd^7Lno?P#jywbmgyJgm1W^MfD^7Z0JeRs53@#i*Ztyk%_k^^$b zop)!-bM)S4-4lxg-48wB7;iPd;*hT~qfTB`FR!Zq(ieqiT5(3C&#amuRMDf9y}v5V zvMtkNN3QoSe`nXP$?d6m51V?N%!W#qR##8fK5XcNWqrZ{H*u3&d>Nbca>u+(r_SO- z>+Q^3hhRvVotN1_kFN6i=@rh^e!)y0c?ZeqI97)ro5!&ahuh=P@9&1om$wP0nNlBT z7HW&0w~tF2%;)zbPki*IJMilJ*4w$9te4K7J^7$*yll%Iyzl%vbpG}EMINg? zPu(}?`03z&squ$HRac3 z{qbyBrq)KXoZn=(`&fWvHlGk^>e!%Y5)heC3?}JUwe&onQ9eSM2f92(E_)Bfh```n=3be}TvU;@vC7 z*Yun}!gc?2bE5cPpNf-9Fw?eewi;ajIV5cMrAQUv0hEf%EL4J7AB`x@+HVL?iN^jCdI%S+~jQ`}?K4 z#b0lX7Jt4yQhWs$ej@w-VR^B5P+2J+)G9J0@kaFi?aDfjed<72#J*0lLNjON*t0*v zkDacXMRJHo!J|fNJxEH@haVy8+Bh^?IZQd zD|K(?Zuixco7QU^##-I5SJe{ncqh|&Q~wxWMbnXVSz2Hf6_c@Py>o%!bNG7tYw$i*=m;9rymx z$W<7a_vw6zXK}u-Ppf}QBWi~EqJ1piHJ+~)A5U_TQv)8V`#SIVz4zYafp*{yEuQ<1 zeyr6g4}20W7+`Br?F3KCyoKnG*6h#Z?=;}tYjhcl&VX>iEm_n1c+MR@ik>~&`$Ybf zb@F@&mP;3SIO^G`sdnW3#aqm%zeKV9{;<;SJuO+Ki7$JrmtRoey}Y!Q0t{|H%no;r&XM zeteugIU`-z=^(3Je_w~stgHQMG^)wPe|+V3@zs^#K`-$_lwh~z2fL;XOIum#Fh5@E!n_kyQ=HMt@W(e zP0#dX-W(*pv$h^1-28%jJl?l?p2d=Uo!qhc`z816l6O7r%*uT@qMo}ua$R;3?Wd1$ z!Xt7WGVADsuljR%!cUiO7cbqn_rovIS?qdOTe97PS!7m4SI^Yx*hl;ALC(mi-u9+@ zFL&0Y?C@21WZmEC;#9YB=6n84@cDyzHCFV$aFonJ3wD>jWS$=&+-PP+tf`+io3enO zvo8=y{iK=H4osg zbll0!50;l4r0AgrJr4dVd~k5QGCX{Vejqu|TRS)>AL*%6`wenh;D4W4&7jM{xy)-|Q+02KR9IlRiQlX^7~TLK7o2;S;E{FvddEE;UH0CU_XgUS7F=sR^&g$qocm!?pEIR*ndD)aP-_m~g;)AHC*hA% zG(=r~l^zXI^5{0~<*IYG2@i}9Xqj#~y?!)1$=3+plDQtKX&Um~GBY(9O(nlJVf$@< z?;Utmw5s#Y?j`s5rcB9~@(wbO^fBGeQ~mM_UXv&E(V1^^K-aV3PF>bJ#TSwc$HAQS z+{e!HaLRKy=)wFvy?tic=NV*{($;%#%N=n?;k{2_pxgFq(>qS~+MIi4$@`g?(K@f+ z2?m{WV8QoO@-EBry!Z9YyZE)^cam@MUh!HDlKStr__LpHWj@lK;y0hZ(F4Zom|kFl z9&&_+a(IG|Ky92ET*-|eo_mw^GC|ik1Vf&q@0zlX;salxA6R$JSKJfpIF~YRzUppl z@Q@`Je#83Sdh0DYgWj9(XP(}q0f%ff_^#l6ZM|OA-d={0L_44PR-3d`;ml8YQ_kcR z9IB-2C?6{jV3vJiWea^%6_|Y$5 zhIHo6Im~&6qb=(vI~^WS@3?MG(tdm->fo=`@4wO4eQ&t9Zs>e(7m5n>87((SW`2^5S*z3*i+0TVqm+Hi!=+oJTSmqd{AT z$wzxu_U|$$V~~-|Ll;k3W~{8+?@hlB{Jidfio3I>&**&m4$T3Nsy*|--S-4Gnt4Hg zoLMgZF*0BL$EAtlKdqyGRTKW^0~q!D-qTfjEcHS~Z4{m38XZI38L`!q|3zbynraHy z7@Vl*9vSe#G=dL@hl>-u+76y~TYr1(F4^`uj;-~0!Gi66r!M)+XSa*L;-LTi@=)>b z^5g#F_Gs~s(TU=hrKRHQ<;CL3++6Xe$b;u$P9uq+;8<0^NM8nZt3^7 zVNH8@@MFHMb8|^f^}IQwGShyE9yt2d%ydsqUvebk1JB&5miHSEWwPRv6|gbld!$?4 zei0 zT-|d_j`ODTtp^u~wr9s#ko}vQrbi1}AIDAKRWIomX5iTK*RnsC;C!;_)T?FdagAmr z_fzVxgK&&8CezO~)l|vP&+M_ycp+eBU-PK^?($t4M!pxlSNOeQKAh{(+?TES9&Iw8 z_5S^4@!)aa+~B%wk@W$8bnu{A^zW}1`%hcN!LyB`q^_CwwUSrag69qNvwE4Wsj-3f zvrj+MzjRGbwOopiFS~Q>AM0+G{%}E^mDz^LMM}oO8VqRBnKTX~9D$SGqz4=hUIM#q zt%Vzx?D<@hWGY`~M*N9KC5~uI|&}?&+Jhx10KAT17R}Buztd ztW#Gd3t|?=v8=YN(b$CZ>iO?2xNAI9$NK9-+-qhErT$AM@*sOE>lODJ|3+pvHu*yi zA2!s(ZGM-^o7@$BQnL7VpWd$EIyKcr%AMemNyI0+o zOqIcGdN^Egzvx}_{bo*HbJLpbdgnN|Dlbii<~9D9)P*HE$?MkdDn73a3)E}{{g4+%jIDi=Jc^Qri$N=(-V!j3*Ak9oXEaD z{uC#DOqX<||4n|+!(^#mxjE3pHo>Ff9Dpw!ha=+t*;=;r3FWjKczxBOYua+2rAnrkrh4c$dtkj@~$RU^I=HLAe53 zO_@MjxgZs2OIfF7sb@7w8)vxcs;@@Bt$+{cN38hzBmdmyx zZ*ccxnqIYXPaS>uVdl8LU3{(P{^PaL;%{`=|Mb1){{G%QdY?vSOC40v6U?er2YmR{ zrvu;MIGk#Rr*v}SZMEN9#i-h7!aX`RENjC3H0|6enHyfZOBcvvy{b>C;tf;dWo~@l z?H12@OFgvk>D$F5+Dm)V7x z*ZKlp@KU|;csHqR!7_#>0?do&}gZY7e?S=>TXAfyMp5NsO znVK*DG&EiOZ?jeZ!+rWszP0obU%~Jn-@+B*<2K;01D_DR&^o_lM_yU7QftxB*r%BZ zylMX&suiEmdVNV>_}YBdSF(AZ%I^DoeWiG@MgtCmJW>}07yFTx_0L0N#b0I7{O4yw z#s5Q}_9Tg@n#bGM@EqdnZ_*n^ z5541=ALG1_@T%K*zNT|HGoGj68q>l1^^M7xjdm$>K-Qb?D7Z>5-0+06-nkLpHu?U$ zdZWkc>PODQ`!I)HI>7Zq8bZ9r>V|U-J|3NAJ!cK~F|%gY+@JH# z!}t!OEv(UB)t%8jbzX3s?Je_hcjRSk!Ds%z`mbN5;VncUIRM$1`O zTej6GTmHWVzgTsqR4%>w+>>1xPZ}0&uZ<7vf=Z?$@KDP&SdOOaZ9X-kk zUC*Jj<-j?7I;Q7yK5XiH58zrGyuT&2`7+$NLR+|U2|ja4zi+Rv^7Qt%`9Jz4^ONl> zd$B@Cb$`27JaA|1({r5Y7vg_CQBwx5I8zq~3;*^5`Q>!`EBK0)zPXpqh-fN?WFX_Zfu*XO1#pc6Gv3|c&jPrHQuX-QW<_3LPSN|N( za&Rcmb?Pd^7|4*oagd5p^uom2Zoe;NKInSayx;Ss&gO<3tLPxP9* zud4=3e!(t%=ROa1++Djc+?TQ7_|BxBOm9R$}m(Thlo1c^PZ^wdh(h z6Jrs+nE97E7qd@>r!E%5v=&45VtCscPf69+Om2_>T)a{neWj27{>t4!7I*Hs$5-8H&dO7@ zfAYEy;F^2ZYci11b4R!I`0Y!@7dV)2orn4NPp$LEm(^K%t7s$|ILakBN_6|l%P;W^ zg|8pzvv3&qofQwFXW^}E@%N|x8f5C~i!x&&JmrY5IpN;RIWSLyIK$I3izCau6n;Ee z6u~Z%Pd*Bp8k5C5flJJcxM*rOuT>R z&qdpOlW>X+J;@#qdUOkU2FLj7%vmqR*W%}zRa;H!q2uFNg*q|2{fj{6oJGEaflm%x~Z(&qwsF?)r6jH06OY}@?E5?qJg{MYr5}}#oVJ4+4gHRQkhHD zp`VW5phE|^wL%ZL;;x}(I_4)0Z@Fz=QR;)EeYM3s^F8%MJL>lCBFuyz?qGX{4uyYm zn@+5c+rtsI;BOswdRLu(Xnw>K=l7%c;0JKrZU3JP%R?U94f{CRaha{0y%UXonZLKx zb3gWAb?s#P;UU!?Q~qu;*W>F*rr!V)gi9qmCYrP+ey`Sb9=G&paH^X;!O7>2K4mbA z(*CQNnUqYk#oe|6bLqlXZAXsyZ7Jl zB>(yTr^SEim;du)e6ZPJKgtk!cEdZdjyKGP>dY_7_tx91LD#Lby#Gz>U<-Dz*)lI+ zf4q2n%>S^hwe951Ej>r6-Z!dbp zP2#quWN+mE!>2{tSyCHj{?7XCcg*L7ZPHvEzHR0s z3_d;cQ~l&q`hdreszv*lFY~wodugfT)FgVKJ{)Y%eQ-cWcIJ7V(a!C`$OhOLY&&x! z;tiZm=9hV9WxAgl{3N(i1J1XB;~&&gsR8ksoAANi2ET=m__x|>!8bEN@S4l~DE8aB zHIVG4%=#YWdpmFb-dQG z+V7z=-~pcXHGOpQDqrbwzPW1ce+UP64*&Y&&uA5C9QK?k@)XzkY|3rAN9Xy_%sYBz zm@3X_`=nW%KHn`KeRW*yKW-O$k6Ojuu? zcGq{^-8E-Mi8gE+e=_vWg<@DglT|o;-K&_OEDO;R#Q0{IBzK(NKJ$E_v+djP~V(rux9oe(v3!(I4JF>=wrd zP4Ao5P~D%}C|FsUCn#%REtv+m&2@Kg178%}bik3|D&o(GkFR&=oqJC0XtC8{T^f%) z8on}5L@k={lXB5l18yABYVd(lWBE(=KVp&aWq@0 z`38G|4>%s(nN>Uro%S$XXGk3qEmJgrt2O)-E_ja4H?xy(-Q}56BM$4ElFt=yRDMks zdTP0xyE$j0rC!rpr>KhwjEVnfkK*-MP`9=qpLzdf^VGlTgMP8$pWDqH-7yU0sWb2uz2M8#fS+6&%yItG8JSr)kNll8*;`${pLJTas{K`lYp==juHt#N z^#7T0lzH#b&qvd?Ny9Y_1DuQBN8dWA|J*-gb5{pm(ewd12bQdbc*__3S#ofqUkZ;} zR<{KQou4wNgU2>pWi(e!^er~@1L zcbRIP4|$>80m-3^e{b)@Yeh|M(4zNRv6rWvaT6o%OW0n%Ry3-q;geOkrN`U1c6#yw zTGr1hK02Q}a~Xp3Wv14Wx_HUmSjO#D)rXB5&%HIAOoe3TCx<_LWpd6AA2{sim!^?O%~=kLM*X{dH#>zSWbr!QZGjgQaT%YNQ?G?TxQ zoX+SD^WT}L5>BF~|6Yd?L<1PzQoJ$Iw`}>^(P-85=1cILyL6wo<*y87EyJFYBe(5m zO-@-p`ufu?@2GE09=cC6>-$H#n_u*Rxx4>uYPtB^>`L+TD9(O zM>L!t6bCfY$;j)fJ)8dh{HLk+WX$2Ir*T!Y&c%6p&ShC{t9r?%GcuV{M>z0!H1=@# z`|j3z>Va)Kj3w)84!657=kANIR=v|~ykG3QpAVd26};HGGdy+nLzwLoeecWLW*Azh zubknp>Ct`*$IQH<=kVh*_2@1ft7~nq)A|OBA8-o~n`Uyu{?+ZtVcLN0Mnk`C{RSJ3 zHmttlY=hIsQxrU89Y&R`t8Lsz@(DJbQ-{v_Bi^+mwZmas?#VVh{shJ(2dHZ%RD+Ie z(b-Uk!}V~hT{TwU{*R9-S=-xq!puh>%(e_3O3TyJTh_ZYEAX9pYjBl5Ed5hu)4ks^ zo2RXw#t-KliihoumRT*J{>zycyt?F^N)B*C#@u=rH>@6*ptBzHIq%|^hi7p{`nJq% zDA7k$>7BA~R`7kRuz=?KG>^{z=Xb}7mlHB>N8F(>zbXtRT8RcP$RQ3e9Cr$hJ`dcx>je)j)g%G!B4rB<273+t25^@RsC(wSWyoo##qe^F2W-Cg`2 zdanO^?^^L+S0;*ol_mV+=pqcm-Khp^s#Cl8#SUFU19lOea{S-f_bq;_?VaGZG976R zPTkuF`rKXTQ;j!$4R1Q{*;K6aXc?OLwwBttweT6<8t%kr7Hsm_`?M4vULRy@{^6a^ zitpd0t#U5KM_c8iT%ucDqmQUsZ*@M|1`W%Oy?lZL3Eq;w7hl`9J(=8t>UG)_I@<=l zUK6$u&u`AA1JUBf9p zG5+WWPq&M$bDFec{g7I?8Ex8OgV&%r;60CfbeX*xk1YRXA1Bw9Z3p99!}Bb`@RI*B z$bc#H0uc#?N^4UExLP>QJCDqp`4%enO(ZCwmhYhzBGA{nSb-; z1kXD><+c2**Y48q@l>ziESVX7|J@IZFJU#&WQLdA-mmc#EDt(_uXjA zO!52MaJ9aD-G`g>t@UIigk$O9WjCFTn`ip4UHed7w~1em|D!`I*??AX;R+7y!Mi;AJiv~DeyL{f+X!`86 zg{GR$*}T%#x2p+)-9(RFq77X0Gi2^v&bS>l_XZtJYMlpkd#^vmk9-IV`WTObD>%Oy zt`#-|_ldu-53|~WaqQ>^!@(ZV8f5Rnz&90yPBJ$L%PzdPXIKDbcK(a=rveJ?oMqsQBXQ*>$G zn>fRU46KU%ms)R%Hf}=gmf9qkHX@Qn5{)Obob>&gUFP)6<5>9v4 z_r9n`7|c{xvxf7{yyS-7Hra3ky_C9sT4vg~eI9Q{1IM2^H{opd`7@%&-1m%AH{Tm^ zr`>_?>NBI2`t@5M6%XIGzuvX4U@Qlo^^Wf?^T#qvZp```@?4WunCF`NeQE`EUH07E zm(de6Xj8%kchylFxcq22n`Rld=mMjU+TX^t(SOb0t!_9wJ{xAENIL%$T z2dV#@mz!|gz8WAox0&Vj4c*lrU@w21m@fV#8{=PSqx112UC!q`V)yml{qzd(h~PnO z_hRmnNACL*wR;b?utwXKJndP(&dTVXwf5$njmx<3w%+x?J(sMuCpf5c_guKKr#RiG z-p4(dU&r&FwJ(==X13w1Te!~TX!O0eu6{BzyN+-$J9GitaK`&1JRfwf&z$jJIJ2I? zTf<#EppQP{Gu}6MAljfdA6+~Y$xP|e{+*mP2ASQdmEwubdTl!|(}yPeGTQZggo8iWQEwCDlXy{pXQj!&qrMhsWb_Io8*d%U!3 zbY5%kzE!j?{%Uad_hfvOaDNN%oqV6wO+H@QvS0_9Au~$bk__kJX)_rX-W%wdCl-0? zeLqhMtfmo|(i}ZS%|2{-|H1vr zddpq++s`-DPq(Iv|1oS%@9haaBux;^VGoYG3vatOq3(^A6*h3@j5@;=KDQRXqci!F zyY-*+DgSePvG~iVOqjd$lCt(5tS%Oh@PUIISiH|RFW(;R_P$#GSYBInoUh?@-{Ix{ zes!$)S3UAy)S+2_U-5;$ruljZ|GRfvMk<{}=2vI!CcF7J_S_$6)&2_q`y2i6Uq7Ww zygXj~IJ`LUk`3?^IAWVOAzG5QJER1knR9O};4PAAytyG`c9y0Dk9d5Yc2s|SuI@`e zy{Rv4sqMNjkxrfgFT<8Qw}s2-z}vU=W$_r?;}`ns;wQ!L=(d0U)q7^`T*3{$@gybN zG_`i}k}_8}8Dv$tS{;~Ga*)Ca zd&>iz&K!@`oINw6r(N{C!WTv}mQ1|;HjGN07r#e&S&inM=GV%KyLwH1v25MvznAfP zc=n#(OWoJ0@QRfDii6)+TUFC}{I%QTGlmV4~38e$z6u&G|jysT(MAK@*&lwbPik8T%#`tY{dbLP?U zIfYw$eF-)ri|nbse-g*IEDyKl4&2+X7ro6D+>ZUsYaUHZYP9@p`)6G>-*)jr9r(@H z=f&%n`*5|I{QC`Auj(oF-@@|cVsx6m=C=C7T3^-AW~SaO{m6{FV+^)&8D{m)mA8ve z)rgaDpy=6}YOwS-Yy26D@T3)ISDsskj^@DEKIoMO^;z~oPaZ-~kK1)-N6)zF-bz1z zfKv(|aq5iE9L{8_?$di7?VHsB=i6`xrv}Uno@gc;`hnE*>vA`P3vQ}6yA>Kh>$MA; z3!k>`|Kmxj@$)qf^nrTkYHC7fLP!1A?W_H|nRlrV=<5fzmx@L2A$g_2klJQk^l?~Q z@PM4BNASYO=X^7?;w|rfNq>~ts>!*VnsavY->y_?Bk&=aU6Cw`)QHi}jL{w6#YN^U zj4y6U{TD6UEu7f3o9`C4)hDB}P)2#2gI$gAxeV@P-0on0lKL;%s*{y>as4okF2CHC zejEQ&;lmi@JNY@{`^kK#j@@aV7U1-`g&sd%oBh>jq6+S^yuUAV`6x|CfQ z?pEgC(fcM3X2)G0{oaXlA~|k3`+91f;77S1H=SRrV=}wd>Q(x^O+CUneR<|7J#+`3 zstJ$zT=#sgoE3Op*?X$vFL&i6?EC(c z<t@O`8i6Sc>pAm`Gj}6d&e3dT)@Ly83f?9D9OK3i>2cCty=M;GyLbFk>ZbLX#O7d@(rDKysNKqdH3AYnX|Z$dwrnh`nCJ|*J`e3 z^yO9cKr{~X`jdI};0zD#EN)>LC%*L#jDrW|oE9nb9llUAei>XFmU~}){?HlKqjBrv z<2PvV26^CWvdnF4!ZI?yqvx)P-@S87J*jp+;?+2%8A@)!bK1qP=!Bm8{*sk@=6&S% z&)tv76I|)&*>IuJhID8)502Icyh3K^mR5XDU$?@SnOvyUP?bJl+8wjRg6s(AA#Rc_FcZMhTi!Rz|fIXp;u$4eu{cO!7*xrO2xJm?|ZJ(}4*j3>JKV`tqNjO7Jh;+ekm6&x>E`Cs3@ zT>Mq-^^33ftv>2Ea;8uDQcmUH#S41`M~$C8I)axl!5^J(f1qdoGylimZcX7}$M~9f z4?m^3u`hRck-B)WE`4Ua->Lr=gYmepa*rMGDjeK=f8aTNM%R_Bq%UX+pS6m5r#o*6_6m*H8c%Lzi9Xs#YQXv`FU8^l z%zIfDHg0)kc~J9hr~y06E3~i+d}+>Rm~d@Q-JmY)*60K`YH}3)c||RVFW%XM3#kF? za#&hwmj<0#?u*8%OqQzegMMe1|9IbgvHQ-p2fQfv^^%+Lkk%ddhy1HLyfFW+rO%nW z{BE%T<4y+cx^tpRySnbosL*Dw!Jb!~Z^Lw9qn>Hzk?rxE4=^$~^Fw<2aKFL(a(BOa zhxgaI`W(OW4Sf5B8uFh0V}dSe8df%KedOoZY&VM;xb+yke28Wu`lESS8QWXc;^ASh z`229Q`0;eR_}yWr_zu<@t#Nq0;6%y#$y|yl=lvZ#&9Ha3>`YsfaWHo`SPX6%FLBLm z#cOoVL%Boo#(RxbzEU+3ZYKGAt1$bV%d0+bpXP6WeYrT_poPK1@4$e!%pOU-(bkJ( zKlOu4=&z!yiuNyglUq35WDFf1*Z95h{AO+R>fW)enJ(OR6DPL;7p#Sw%dgRd(n}@Z zBy(@Vm4%0$)ql@5aHz>Vlj)H2cvTObT#Y7du(3@~%3s;qmouXtF2Vgq)E${eK8(Xj zPG55F2iZLC@a>&)adL0#&CC`2RydRNMT5CUaGLlt!rvyJEqb-gW=-vvk74-g9emc1 z9xgp}{BfCybB(w4%B>G^!SHo+$iizcst@l>y{Q$`cc;HzbSG!dVsO9#7tH5V4t8li zT;{n1SM1PTZNhK1oE3xI0-nTOI9@bB_ur>w;d_lXw;S#2Fin;0^n(U%W@;37-zHB& z@b*Vhb=ThPsBtn2DB0D)S9>LXr5o?Sx-S%KW}!7cQh%u#2YP!oUh<{( zU~MOQ=o4pW&d^h5`WgLH6URJ_gBnp&jDGZ1F(;=Zxjo?~tM24g8QdezlH56&Co;lQ zehsEROk0vUyV3qH(lJK+wd~Gp&>L05`>LZdzcx8`8_uPwT4oU@SA*vyqcS?-Xkwav zhJ{-){9r%RcP|X`qBAQu+1km;+H!|((NuKl>XW6vxC)1bLq?C>!tZ64U1qg5!qw_s z<3SqCbJ1_5R!lEca!*!Z`_cWhV9iZ;P(xiAoO#9PUgb$z+>xC`lQb_wAs*&voHLVQ zxkvNJOFls(G*4r_lnirtT=qp@eOVpGfqD+{XzZt#_ddI7@o;@D_rSWDU=>>GiaNFB z*M=O8w&cKz{-lajm=ZL%2ZlL!QpjI;#IN_v9Y0|B?6FKA`tH zgzc)^O36pFpM&oxF?C{xOZSlx1sTEU)$6K@J zd&@^^zp}4Y_dVBfF3Wn!8QfrW$MIqe_}dPw2L@Xy!DZ<17U{D}&cvLLnccUh za0{v7#++4mrY{z^Cf_cuj=WXehBJ-IEX;Y8*(}jSy!nt(L^F`HZQ5MJ=%B~f^m1iq z!I~`3S-pY1(l!UH>OLshD@!-%Hr0LOd<$dn$mE%A$br~b`#o{L{f(dTe|>Tbr}|m( zx9fL`f6|8j;mTO?z1)G{@&|oIv-0xVoq;YT`HFimz52-wsdvd&vn^gSv}Pt%038=5k!q1M*fqR;zqHJy-lZGHYg-H44Mbtie-1 zS9dCx_~l=kPs_=BsyZ6t90}{lAB= z@q3^1Y=5bydnt$D*gD9$+Zu!IsxLO}_2e}_arUMkdIpD%*YDi@e_tEd#zjeBXuDqoa7}Do5@qg{}zwrFd@sfK!XW!k|lZ&1+tFA|_sM~T5B#&y^Sum;w z9r*p-cTM`WWK*wOOVI-k&3ec9>4jO1y3yZF-B;q@TH!BRqvLI@`a88M&KMS0qRHWT?N}Ro=A9kynyCiY zN{t?lxJ3)vnZ~D$>hoj)K2e)~jzfN~c6{vfpL-_TYcg6&G+geA;QJNYz!u%tlKUw+ zVT)?C+*d2=!2C=N`JiRq{}Datgfl02)E-USzIt*?&3K3xJ;g6Qy6`?;?Ze`QJhm6_ zT;lh>OoL+HEKKp$(p+)ZIXdd>8N)|Rr~&6-)+59EdRmoH8oHb6v*`3n{2F_(&j)JZ zCnKZ9_k2!&)tXK zVM5*3_VxDFc_;e$ZFy$v@bTolEXwtZmSIDF_JQ;L)N{@p?KiV?lbNk{Rwt()S(iuN zr)S->Z<1r#&3&4+Wll``gti)RBl>yT-DD;v|8cv+3yxC@cVF@M@(~?(8E&!ylb)}` zHO$+bR5Q)F*XLo>$$*~Y(Fk7F&@WfjP?=?ud6=`#-^`UuZr)w?YWF`rc&N-58MxJkbALagNeR{eSge zw0gtK>cNE%iW_6^(F1-k$Pmu?(C~d^UPrLMoVDS3lm8waM);kDs{ileeVyf*O*{uX zn8&ZJ+ow%`zpG}-`Mc@-jh1E;p10$DW&UXoSJq436_0jiXSC^%!ZBr5{4Oo%j-It= zeoa@MQKOTYybUMQORn%(m((Ab2Oj;>;OpFl-Fa^->Wy`J;^eKBajJE_WwKKmm*FV9 zCGl3IHaUek9@1rP!%*V+8@l?j8u0C6)yBiHP5T+jOwayOTl{dJJAYu)&0r;Y5LsJ z#zgBj2QQw3-$tjNT+@B;`XD%JGEQ@byL-duF5#{ko=Y_B$r5byzUQMM>!S+0&)VKd zey3VIGhI@%r7nv8sCy#w=V6oYs$MjXmy2a*;u5@O*>hj;9%ro4%+eUAsh-2{FW{jw zb1VEyG=l3mi55*)4==i*F8}X&ylpjLU+>VLzi3CN)NLbE@>S%+q=t*fJb9JLAx$<_xWsTrT^L?!q-KS-#JQfk zA>NviaoK#Zrt~s*Ct*p}eR3YR>6y;-?WfM(_(l%(lF1#(9kfB`R+R~`#|L+W8@dNu zdvpyhsQ3LrfAAw*@7HjYA3nW0(6|3`WmrD{aPeC0_w+-)JlMz%{AR=XlQU|SMrz5t zhpd$)oI;E5scX%r=lK@S^haKepXhJCNd0#cXM5cI}eUdU<{|;`95t_bR~2o z(ftKiSmn)H)!(eyb2)4CJ_eb2p64jd)fgUqLjN}K_Xi7fFD~g-l9`fyS8=}#KK#2X zolRApUbE-py$%-<-AU%KrvFJULHLMe_+CD8cBDR>bS7rD+pKeNxdC66?U5QVv;3|M zzvT|USlk#l+gkmXes!21b(DT@lz!~LGp)j5~cZ@&5JV-)@-4MN{{C z?>za=-`pM>WWPLt%N@dicIZQQogMLt#*h8WXLo##o5epa4Vm9HIjG6Ly2HymYt~O0 z4hTbfP7fGe-;)t@gkjA;=_`KYF8z{+;?=wHBWB%A!2YHNdh{3Y;^-<))R)lqqY;zY%W#g#P#mt-_bl>iT$cfnEmQbK+S%a_>LJF+YVNJ#y}xT08sReINhP<-!45-`jrKl8-p|0`dH!bjTSkc!$A%VY%=(Us2o_eHawpxcaY)2O3rh049oik@YCMP)a+g9LL ztM+yU7vGtO-X!uMSJE$@J^d4R)HIiA-KK;{K|+ukgM4$~=t)ZnrFNV@>{> z*?p_dngzOpMOj$`e9_;Db}+ngTm6@uuHaM0+ch(KTV{Rv8s)`-2IOGM?7y+e;+w^_ z;-`g`;twmO;&(8_ujvZ!+n)#S1d{$p;K4XCpe*=cl_{%HSgocJJ$atJ%)ZdnGTs* znY(tNtB3I}duNMgQmydGRQNYmoY9%LJfr?w_PJN})H~Pj>ZK=~({!_ZypQ3@_hH$O z^dSd&@@+n#Ew$;%$VhR2()sB*x72-I_hn{T_S9Ixo7?V}ZQ86JO=QFSZ^HRn-bKY- z8k{-#g)NxS2Cq7UWVPhqHR)A0`o0F7XB8J$$J=xc%>3;5ck?tw&b;70>uQT$izYDMK$@H?o;5Ri z*X)y0)7=9H&s_6CE|#7vy8UG8PVk@Ic3z|g%>6hrgX5jOJg5Ux3l6WEBfI#Xo=RQF zb2wt}<@X0!t8|3nT7nfu4>(CjU2->Nj=-vYxIj0YIxv`HYK+W;Ezxf+Cz}Ru+T=mq zaA()>e$gYumzXU3O}JHZXFIUG+=f-`)E$9W zjQG4)e^p$f2fXV%%WQ{9ILnlGyrLFeSFf$A3(C&zSsJb}HRBC6;1GOyoHlw=pBsF8 zaR$DC+nk0`M1MI6o64;6{`fF|ys^LqTA z^>+jp-?q2*oJaef!Di-oz*tN8vSoU{U@r}GpYn`qK5qk;7cXyS8^+U-_mTX?yraxM zUBI`l?$MRruNTcznc0u4MRJ-3GZ5$$g7wXI@MvoLG5F17S8Z$dM~^tvj%fCrB_p-WsUH(?KHu_O< z^X`YmRlL*)Px+MG?ujdJ73(w}nS*i9ef#3-?ZHQUC{=wynbvbjJ)3-o%&<#t*p}R| z=jyUAa2u~_6uwf&{Q$TA{YAcJ9>*Up-R8a3``(a8>GLHEzpnuPbE0ffU(#$z-E^LogMiZcaooH@Js2)Cbgmp(Xk;$V)ey^iJ~u5Akk{T8F6vQx8t*m&WiblQb9MCelxJXhOpQG~UIPe#HB)9y;UG zNG94ke`GXKPr9`Yys@!cE6zrOWZ@%OhrE&l%Q_2M6&jndSOnnR>! z_ujsR4`$|Cv;di_mz?vQXHELDBc8%9VR*^I_>=YVC;r=DabK$iznGaXK9|e)VnKct z4c1H8*z@S2)pWnVI#T>{cWQ74KH;N(#3%nkfA9iM{E{y?b9%e(#oe2H8L*L#-lpq} z-qs^->!I3u&b~AKDR1rEf9a08po?c(+oa>**QxfWWOwqZ(x)8L zA3XB?CwKobPxd1|mLuAQ$1v+7n#cqHe{9{Kx%1D>tT=T}9yxF0yE}GA?>j&HdbN#s@J{jTG+FG(Mtg*}-j#hBBVGr`CSFHb0_2HF? z_ll42n1y-!qB%|<6<6Vb!#INEw^iZhEwxrhO;(o|l3A_6a{3!0O6EFbG@^kZtl zru@G(I>gj7OSt3Z_&?}7+UmoNd0g|dEWi!*-2O)KS1G>9=&W_*S znJxZuXMTV&{|sOL4ZQBY`)OazcVH&-{^6UM;^7kp^GEf#4PM6C5j^?4`MG-FdDzRG z-%qVI1J4cD7f)a~sT$6tYLE2N8_}+8tI_vptGalc_$3Z#vEr@idw0RwZu4;6@i9yz zds|&NBafr9fM0@9&cZn-)r7OK<7CcE%eY7;!ZCkfIJgJ;mDk?;SN6=StGspAZE`o# zZ_c=rrjtG4`DKpjtUEFMeCoh5{CzNEO^@EcBnwCOL2}vSL;uaMJ~HFe42kz-BFJX? z$-YhR_T^PM_H;WZ^gLU#X14Ur!SnjQ#;$r}N8UzXkK4wjHT;@P!Q9Df?$g!GhNUmu z*{v44Fq~cUK$?sHZ+qt*9%Z?${dZC? zpduFR4M9QOC^nF7!GeG&Afnh0sMt_9xW&GGzuy|r?K#(V%6IX0ZsVNQ}-o%8__?>`GTS{d<<#DZlK z53+8{sHEOiB{&uNMj7XxXjzQtPE71G!KsRv-||?G^W}PFjS&ygY~qE%;QFZs_;S?t zq(7JoPC$7QKF{PfHhcxGXoD=_@O$(@{(doLo-cSuJoBb8Nu%b0^I75*wUl~s6?y~d zLt2U^$VkjLI5A9($IBxsk$xZ4u5-u}q|c0CR#x&Hx&B?Ie19&J1}>Bg-zzf#?3}pA z%i3E-OzbK?$E!D+@F5|d5xsH@Uo>ZfcT7yPE>e=;^!#-j6U)K7uUM@HkA=amJuhE5KD*_ zTlg~4_n?rPM>e%xXJ?t}=m5*^q(8tgIM73>O@KQWa~#CGC&L!0COKHY>C2K^4QB*z zr+SXD@V?z>^4;Weom}xROXSXQAz5=81!%P$!dQ} zhT2R1+6gYwOnpTBB`Y}pD&YmmTq|`I2gj^}=SwUi9Qmne(`W05CE-=cYmOif?jkR4 zLpRpaY$q4QhX<~cm9@)_wxYZmegoH*9gN)pej>Py9e%Cwg{9|h1+ktJo?jU`p{oLZ zIJL5dX0*8NXnZ<|6+4LUTF@JLSQ|N}(gRJra>WBiYUSB@`%4}nJSx%u39gb&4I$GC z_R5-FAnOM>yba#7of@;9nui7Mw0IbapSi?;qP4S7b2Bry3BOBvZHOb2QIsBd?zk@D(s6-PXyxKPA9#1xULU`^zawSh8IV;>Ae=jAtvE}eH>jvWq&vi1E&oK%9 zh42=p5~B{Gc3BNZDE%>{CxCE#%jox4+fYc)KjI1I&n7sG-Ry@3h4~Qvp7f~k@ZMc` zc1jPxR<0M}9JZi8sf8EgD14SXpx0iT|quA8Veuic`cZ$U&9A)wGq6c5$;S2 z>qY~7Pl+GJ?`8;?tmvUenuuG#0fb*D$Elrt+eJPtzE<7@u1`4D(l@DqHBY?hr4LCi zIEASM?1B1(gP77yeWiqXwwU!VrxcHB@>XYy+0UadAjVCB?;e(*&;v|S!v`yVeVFj# zONz)<&{o;O#eDQr6py}I^cX&dw~Suf`K;UM7o;{@YqR->)N*U=#Cr_sozYNPfw!+) z^${Od!ws$hduk#6Yl+846P-mlHCE9CTk&nNQ*(5ICsY#OiO-U72#W;I0%J0x8*vL~ z5FF6&Q3saa>~pBY+iURU@u@>x^gzog0N*mH{V_S{)pFH^k(ug1#9(zGJ_DX991Z{=IC5< z91GqWPCx?{5wFfxLeV3I!$p z_xZxJA^s7~ugv3K>VCEG@atLU#k0L??8jE=i)?_32TLD^4BN`k3I=~trxtE39+wXnC++M_WFJ3893oRsXlb#O3L$kse zvA|)ogXat8XQv)oPW&SN!t!~uZQzWo|Dx?T@;K2n%MeXaL5bvk@X;B$)Pi#0!kf_* z+K9oV&xey5kN7!=MpLwgMd&$thGA8nYE^Q1X&;JjDbrb&|&k?l0%8=&*~y`=n=ui5iJ`_Y`to zn81xH=rdE-ZuRFEHQ>||i+!1ANs2H-63V#jDBNMRV1_vrjw(R2M7;%XmX-Dnz>_CG+vU#`m%O)Q3o3x8KX`Fw-^H!Texj zuBfH=VtoU1TpK(kV!DbJyavE-q(m(rcAEd>u7kALo&ec)ks7y5O@DBNOTEi{^s3 zaR$$y3yw3B7;bJ5{@UO!Jz#|5Mb*yQSp%P_0*<(wyhpt2gk$1_Kjb6#Y@>G8JqXGcy2J*a`uszdQKg9cNhJC#(<0Tk}FNg%fs&&-T-l`m-A7M zxp;WWv5|bw!MrTm@`^~V3AkQmdh#gno>K5U=?z)Uwbcm5Bc5_?Xzm(VZ>m_Mq_Ui9eh4xNIVql)SzSA1f2byg<00;1qdgYAnpBgyqSU#anl$C1=1YQSYZ=sfC}*Bin1 zeAH{}!1bgzu8aoauir-K`@4gLQWBxlHsn_;*Y1=XUA>9SLY1;EB56c-XItMlVb@KcTc-U!nL_Zk$T_QS6mPW@K6A$45yEv5 zIqNBhqll+Xl>zo%phnx^F9dhgSHrP58ofam|bc z!cM{{4tU^su&^S$6Xa@^hEu;r!rojOFHB_1!t zgj`=zbE)#ekq4WR-cC8>!$#u3V(M^>wN838(u)mWpgO!*YVbR8P)C=3MU@T20$p~r z9Pk10Ns#)6ojRJ#>rOCh2Wzq2&VDA>7mu<+ur1*}OTAV2T9wp-YWO@gT+4N6#5(Zc z@xg%bHMYnc#MJ1lSJ(;hv#N8pXU)KH)BkrozZ)m3|A7`-z`q0X&}q>H^vHca@&hRyf3Na2(;9*~v*PaJ$8;qlEf` z=rWA(#0rQzF zOk4*>Fs(e|Fk3ElI&geh4|6#_dEnbQ>dlh{CbS%uU{WIc6w@e62os3W>7s2Ae>Ma<}h zrz3v1POud#9vgm-1!`*2@2Lum(F1>1a4Ny;yU3@;;!`%9enL&eHnr4uYvE?rv#+E# zujFER#8z3+!T!D&5qKYlW(KPIOpO|vrKl+dcsX${gI9pd<8bb#sTl-&}eN8pD_jlVun=kF`;#%sbJtAHC4dvJX6$%{(CAq(*y%fp+* z$vGr`)iTe>oK??vlQ>T}tQ}w_W8jrch>1~0QNw7D$72OQEjM))e+&qR+zm&vntIr9 z;=dO7s2=d48gl4PMW>Dga~YCLTmUb$v8DviXFLqh`_#AL9|r%Uz7;I54bK)va|dx= z3%sq464ix|i?0=bP<%l}b1Qv9JjDMF>cYin$O`f36My}3IGs}W^HBFIt7TrPh6h*< zUzfN{{M1BKC|aRn&b>V1d-2{Dey_w`;;AC}Xg)Q7eDWDPx;HDDRhtbi1XzafZ-s*( zwO^^z_`Ms6=cKkTxV`v%2NwVv;dnoHqr+@w-4@-NliZwObz zyT=56&AQ*oe9=b!Af5y*!k-EWR;PkV%m5Rf5kwyX-b;Km$8c`6!%LGs0I~*Eg6mYl z2lBw*6CW2R*q3+Vs<^hV}5Nt`bF z0O3|hkL^-4vL)!Dvf)3Q(8`HkKsaDk}NXgXXFUoS=nRQ2dG{rya@u9tGCZ57%!}C^;qAcom)w!lP_~kJSW+ zx{X}8i@3BYiPsQr3Awar*^1B=WtoCluc-a7))g|J`_}^2w6ZGlesq=6^QD+NmKh8| zbiSgIZ4ys58+kW=&eAhhbP8G2E=+LxESco8?tI)`nvvxR&@RcE6FE1hX;Im5n=YcO;3pa3Ng-ab@>QsAD z3)QKSIqLLq{P-db>a56gbxu^e|9q8t{{(9B-C!!Mb;K}DaOWGqUz_lZqqm2heOn|o zEb_Nv;?A}vk6(i*ScK#R(yLXjPpMZGv0u$xqvG>zBge9lYYCrTj;oX2B;v_kg*U5( zdW(xZ!pWSIg8nxVu1gZ@RvLb8Y2@Z<;KIcmcMIGo2mE*|7-bdxO{(Eyitk5za4NAso#$JeIo7IQ*LWwSoTl?_$=Ar3vZu>Bg%8Tv@#5hX$hqAdjyApDc$DRBiwd zA$Im-FU*G?=40u7EO?6e?#bL*0k=lSE?qt6zuRT3v>B0~#u@o$5+* zb1)^r2`idQR9`puwZqS86J*H=csPXU&li=IMr-y-~;pISV==Y^zeGqMf z1>8VlyL{#m`7Qm|CHBh%N6caf@81lLB^Z4n^I8tNlpJDAsRfsSPm4csDOwN@=aie8 zhx9X(Ubc4PG;1RDLa-!@#HYl_d0+$*>qp_l%F(u<;y_$C`pSTlq(4U^ zdCU;>x6RDsZsK%1Yi}`LX2#S|IDxzeYocK1jl`KP`1uOw+{b+3VeR#z2`FN%74N-# z@I#6H#2+q?x?YL!_lW5vhN~m~7S5pGvxw)nFlR|WV(FDDT&*tlh4@mtIY*>Vi&H$g zz=h;_q7iKnUw*w-Z3KI4K_}S>{?G~bEOp=J2AiMvD)FDM0giVEepPLFb5KKQZOZ31 zy*`NnD_X&Qnpq#H-wCI`hWdo$ik0Uv;3DFL9Ijz=Eglp2>G^7S9@`cVSZg``@xXIS z!1&~Ru#0aNoJu!57=K9WKhv+`Q^Yi&Fyq8k)Rq0h;%3LLy(S!Z;{{wr z?Ce1=*hp_s;d0cno=T6i7J9u3?lFpMU3#eXgHiMmn~VXAkp9e~f2}|#?_!P?KPj0% zgeOo^LA?d8w}m{}!9Ewy4}Y&<=BJ6&4dzjI?uExEKB!IHC;lMf(I|BQ(Z32lEB!g; zoVRnW<&y7YaxJ8iLuKKQUr0@`f_d2uXTZmNP|f`5#QVw4oFE!}&tSOn;DgQZA3D$n zwBWTRIvDBe=^?MKMsw>;MH>U|(<=3BaKiD#wv+MZ8lYFoT;kmhVk61hd|(QKYqsJ? z-9b%z7{^$AH>HP1C9%Hvwpih@WP|^Sm!scXpZr34QWc^3DT7~auSE07u)w#MHO9d) zDQB(l@;K>n)4-bUp*~s)23AN+Qi#8{Et|S*CTn~uyb@}+HF$v5<#7$7v#2XVhiD`A zBmQdfR^xZ+QCmG8xOw!faJa~u9rQo46CYdfOhnHE$82H{{YsMy)p;g6wFcrm@^>fL zl!dv@A-N%QxD$NKoeW16982chT7K8?8ucY;i=9sDNDhA;+JmmPDbJ`*v^v#^Mk~2* zHgOW#pil#x0klOC>3-a}Uq?I*J}?R$QVTVVX7W8xD|lHWI#~LRHT%re>8Kac$HxNS zO>m2v8kgGE?xB~b-S0ahF|*`-{vHp+(-Kz~am|WDUgm>VtWua>jA0NSo zM8A~|&XJ53U34I#^T;Ph%ICYU>W(Uge~c+mmwCVfuDQ$b=L;oM}H;UD3JU=jZw&X*?e zH$DfAVZl3`TGq|u`XoLS;mGrl$AW0hTi?vxs^<$Uee!uc**C<}EI@e+|( zPy81h=*pc{HhQvH{r8D(S@KIeIfI4uq!4aMfiFi*;j_dQ;I&;yua%NO@E~wK>NgUv zi9W%?H6+|w7qwB*=1MFk96!k$geRCp{FDNBL%gNq@g$P^O$Iu2(P;YXM)1_6KZsv% z&pt>c?=Wy4rNAE=%(mcv@?P0^`w1pw1Zys!h9H_Bvyrt4Jh>cgmJjTy96ZM@J*Lo_ z3;)bYylKm&u1CE>bX-}iV4J!uTR zJcKLT$aCt+i6noLYg+vGY}DpT$eUd7x+jFU?q9rEIF(#US6*)ISUS!LA_L;uC578QP+p3scRGQIpg{t7ew#*0C*(K zp)J(q>c9ib*!MQpYMFD3iT`r4!85>JO5iEh;BV9}^+9q|Cv{y1x-u8%j$pW=*C^y1 zk@(Y?&Szs^+raXw$YFi-B&fqrK)fjH!qLP9(g#G*`{RdZ>O38M_7=1sRm_3nDO`m| zhKt%=Ik>9aCs;;9G`e%nk8Wb)=6L+Ox$c`=;b3;sV}STi`YKnz`SsSK=Vjh*k=kz^ zoF3x6)^<4M@cF7cIZv2Z#LL<1#Rtp_pByfGjhz?)4rmctFcbA+S2rF9^y;mxr%qqX z+E~xIUk7KN^-*eOPVhS?ShDoKDJ3@cW5&$)`S5)OTQ5cTA$x8 z!T}Tv(C>Xt{Fed$FAH4AUo+;pa&1fACR%mL;qo~r1%pqAr<{Q<*kHjk46i=v)~}y zqOZ^*a{Se?De6_kc`JhB)Ky{lxrC>xGXn8?frr_y(0`lXU5pN{uQsjD-}kAHSYSHX z&9p)BYM(9`E;;K7SZ_ZZ!71?8$AF?gRb@VzCbvQwkAQhOJzm-M=o-Z<4@W*+JZ zb?}NrS5WUO!%Mcr@2w%a+}bp*8FXG9#9DQ5sv5zCM}QHJrH(oVoTwX4itu{tYQdr^ z!G^#>UGU+Bt5SwTK?Sh|bG-CMvoUwMlHe>bKlR|j*&m80IG9QeYoWg%pl~hV zpo?#p$pN1nyg=4{8}<5J=0fTFBfTQi(CQ_mgrK7eVD7^wyPWt7osO6Jq?&c##j$Wu zZI0AU5!+Yh;H4FdW`OIZ4bDR+>#^WGGc|$g09w+8%pbkv zYvSo&1@7zy1FrRf|2e5M5YGx%u$H=xll|oPeL_bh+$QOBY9T)n&A&hXHaL)WwXF~zHe(4rtJ2|J8q~Qua*P0U-PH5F zjjLK)=$kyi^+!j#DKkCD$5^2e=kw*U1v zd49y7{wB8voqwKe|4(kKZ>z_ZsFsH221TRM@M4inDDNq?iasbPI4Dpb92^`Hq7My^ ziwF-33r~)T9Tb{fXZO-M*c zcvyH+L`0G`Gd0utfBjG0twigUCZ$KG$x^h@8eOzTeM!ks6ipzXRzC3ge;TbWATTIc z9|C>mCFO}IMXS;2v;n%nz<>ZAeF=Y80-^(BGA+KK*zVrotPA3-E7sqm&#u}2eEg8t zPv_Vs4Xg|aO-M{iPRY$Pn(_k55b&H8(`KOd598*(~+ z(!lGX2|4x?xo707`M=r!?2E1ZUwyMbzSzIM*Sku%PQ$^|MJpcV`xSdTMqP&pMNa*)13z{ncK2r(66nD zOHyOL`pI*3&9mmxS5m@So4)_9Fwt{I#rpZr4ZeA@ZpZ`MzaBUG%saC(9t&T(;ejDb zj$Al(%GmXxgLW+s^1O0=+M(KS5B+%Lr<}zqAlYN8fvSyXN}r?1B|%%hGmSJ?EQy zW8T|jZEzJWe`MdOefNG^amN=|Z~tND;Fpd)ylKh6&%at4R%Z===F}Z?2hSLoe&hq+ zlppd#dfGypau$v|etgZDyW*C-H~LKAE1N$#l-ja6+|)Gm;DzbWo#@X0_MX3XE;{|( zm9x*z4Qt#weq6)q+_~;smhYbUQT2^SvhIC(+qTU~+K2Rpbu)g-`?sM_J+|^A(6Qw)eSif?P_nnO0OM;Kt zzq#q%yzg$B^icVplXpD6;jLYJzUpdfzRvab15Z^oC;vR6?sUEVwe0q6+dy;2bAMg1 zF|4fjiZjVJtqT+ON7UXnJf>*- z_0yKGp4GeWWlzh%fyy;|darc7cjwa2emYulU6-Tf)ltj)ba##WpCC)>y))CclMmT<(iM)|LpVWkG}ufa~HL) zHX1)QW}IkxqNQ`lH*>=@X*)Iyn|04VKHcMqd(mF-(E68jiwvKYjrO@RP7U_F z`0l2PzIB;5#55?Unx2R}@b}-I^NrtpeZ*tavRA&Da5&_H<-rsG+Me^x=~ZdUsWmIE zIihh_ojLkO@w4@R_nbO>>)6Xq)Fx}vhMhUp`fU9=m$$LL^3yf>kKMSZKCfsHe}cU=7Rx(`xo zo$lc8_AZ?_tiEghslO#}T(fzjd+Xo6Jfyy(DB(?Q)91|9Mk&hdISU4cG}ahcKn%eL z2_iyR)-8(C+c$q+`_P7AvWhj=*Ba*Ypx>9YbHBfTOYtvqZxlCm84UmaZ~yJB=)QRa z3t0XDmlWIN{`q}uuVQ=F;sx{M{?ly7O`0j&T9!#AZh#NSc9LvQJ-1!tf6TdUuWV1A zJ!dkHk6CW9X>E@NG;oyilPsn`lszlf7)Kqzl6`JD7ACvT{tj(>a+z0Q(wNp;&!_X zP5p~!^)FaZ+|}DRvv**!p?2=nnT{$r*|c=ccR{p-2^x^M1AMRA>F-(35z`zGC@C_64wl%#k6bzjci ziZW=GqC9!%Pv0j&&X;Km7R)OzDOtRDv3YubpILV3AOHT_2mJBK|9s<5?`M|x`(xi3 z>iVbjE}XT%AUm~h?yR{B2MqJ)_4f4}ivQzD{J(zUpFY-~K1b1z{we(f{d0J$5u9by z=S<~r&zU@Z!SuOv4AbZQXGi#d`LsWM2H8A!Ub7Lq={F^AqFISL6sPFEepLyG4O4XE z?&L3;KaN{l$OuKQypb87ojdQ@=I{Rh|J{Gub==g>pFY(fch?RXX6Rcuut>JKCgi_B z(uqMzoRX}hE7^)kDORkCQ>jqAO1;vebSlG?(aHp+Pno97RtA*C%EihGWwo+axmLMR zxmCGK*`#b$wkeM)JCvuD=arY01Il6LP31l1xN=fCrJPp2SAHSl4Aw+wVl~N{3{9@4 zP-E4&G}W4VO`B$jX0)b9GgUK3vru!f<}aGHn(H*TYVOf&)oj;1rFmYnU-P==9nA^N z7n*N1KWlZ`aBZA6O`E4J(YmxgZL4;ecD#0~_5$rv?JDgx+MBf-wGU~Z)IP60pnX$& zTzg7;mK-Qdm!Qkk73*BOT3x4ZjBbi=2aBAS< zz}0~p0`CiaB5+UOn}H_-zYhuuN(eFrIfI&lMhDFZx+v(XpgV#d4%!{`deFx~XUTbz zgA0SJf;)qIgBJv^4!$M$q2T9&j|86#{!t&M&(K@-4f-+qIr^3Q4f+T4&+3opKhysb z5*3mgQXbM7GCAbJkaZ!OLUx553OO0_OK5bcF|;alSm=z<6`?nWZVTNL`hMs?!otF` z!rWoqVbjBwhus|ZNZ7ux6JbAv$AlMz*M^S^Ul@K(`2FF#!`})2M?^$KUW7MdOvHkS zYa+HrycqFe#E+4&k><$e$jOn*B5#X)GV(~|H-kb3guI02 zgjose5*|%>E8*wFv_xNGf8v#i+Y*l?{*W{{$(z)lv?l4{q&Jg(PBtXhC(le?pS&aa zgOq@jf|Tx*#VL2D>`D1*aNOXE!F_|*41RR*yQ$jLg47|Y7p2~t`fBRgwDh#bw0UW_ zq`jE-ReD0YH+@F>4e8IOe~}TJQJpb8stl?QJvmVa+AUibMl|3cOhwC7x$^I*=qxgoi(+-bQtAI!Q5tEY2IP}rX;6iOv(C^y(PbumX*#b z-BkLXCC1WXS!vm2`PN!s?X%uyJ!*@vHQ1KfcG}L^3+?^(JMC|m#g?^~U0(J=**_gl z$ADv-;|phwv&VV6^O!5n)#bX%wa*>su5mAOKkfdh+)=)u{L%8iR}@#wtazZ}^Gai7 zf90mikE^n(daLfKI$mw4?y0`J`nV_4)9cyj`N*5?o$S5O`!TOl`;q|xHf7p=KFty>qhSQB@jTbfUZVGH_ZCc-StU0Z@ zuX$_p=@w_pB`q(thPMuFy|wkDwt}{Swq5Po_LlbR+u!fV?U>WCqf_Z@?!3P9gDzv& z1zmsZ4(jgezODPyA(kN*57|33cId>R4-EZ&Sk16?!`>Ti8oqG&3nK=N7&l_;h#yAQ zjl6E;@lhqCE*W)Tbjs-Iqj!!89y4OhePhm!tsi^i*puVR#;qRr)_CLiCFA!`NSQEe z!ZQ;GP3)ccSWjTj$ess!e(mk--Pn6}QuCzSC!OxA?YpV()MW4E8zz6zU)6tI|7TOG zrd&7W^Ql!+ub=wGG|#jR)4rNsJN?$_XJ$0bxNF7_GdpMAKU1AGa@NDM^|O0sKQ$+2 z&dfP4%}t-XWbW(p3g@k!cl?6#3vRsN^g!#tee*T*$IsunAdX<_)rF>omn}T8sCvxH$9T6&Ihl#COR(mufDZbm+@+~VuSIk`T+RD)Wq?@&>~VYi{`N#)&uX-(cTx*G-`}ExhUY&22aDyd~$BYj64W z)@irCd0WkG58s}8`<1ufE~Zfz$`qJ*a(f;e%g1H146pf35rL z&TYlp?s+)j;kAz_k1TxT%k4ee-+Hw5(H9i$`DTe(B(z);;@PZg}~{y}rHA?W@}N^#1bwPrc%LWyb->fhS)rd-aLe%3gco zpyS|^hn$CY9(Etz^?K#&&mQp{dH#*MH(oy4eDuJZ9dEw=*6_F9J~r;y@wX?x{rNky z-Z}H`qIZ9JZ~6Oy@2~kF>Vpj*rhd5b-}3+M;p2|u&zz_`@#;rIKYH)uzK>6RGXIlb zPp1962{$(eT>tLq#)j(F^zF8V<+P{Lm$lhGe$9%Gqx}eGk#gn8vu4v6FF}p%3T%8KW4> z8Cw{K89y=%5xhTR9^+=lZpP<~s7T(Q(Zjfc@d)E>1|hfJ#OPuyVcgBw$2iSMisJnl z(-_w>b~27L^wGROV-#aKV+-Rj<41-ehWBU8W8560Br3lV-T#peXmtK<4jMrGxor-p z;Mo2gVAs(Yz~OWE%X5OxZ}V^^S`(mff+!o`ic#Xv-!FMX0{6>fWjpcwV_x8OQZ#}7 z`yXI?@cHdW*-rh_>zn@c`a}M-9n*F0HRW{&cWIO{!JLiH$0&yL_xEsr=K1X=woALt leP;Qb*Rt*9w|;kwvi|(`6>QJHT%$CB2~64-!(SEU{{UB@f@lB$ diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/AxControl/wmpaxcontrol.cs b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/AxControl/wmpaxcontrol.cs index 0e7707a80a8e2..9d8ef0298dfb4 100644 --- a/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/AxControl/wmpaxcontrol.cs +++ b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/AxControl/wmpaxcontrol.cs @@ -11,8 +11,6 @@ namespace WmpAxLib { public partial class WmpAxControl : UserControl { - [System.Security.Permissions.PermissionSetAttribute - (System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] public WmpAxControl() { InitializeComponent(); @@ -26,4 +24,4 @@ public void Play(string url) // } } -// \ No newline at end of file +// diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/AxControl/wmpaxcontrol.designer.cs b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/AxControl/wmpaxcontrol.designer.cs index 55026edf22d42..3f9af95d586b1 100644 --- a/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/AxControl/wmpaxcontrol.designer.cs +++ b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/AxControl/wmpaxcontrol.designer.cs @@ -32,19 +32,20 @@ private void InitializeComponent() this.axWindowsMediaPlayer1 = new AxWMPLib.AxWindowsMediaPlayer(); ((System.ComponentModel.ISupportInitialize)(this.axWindowsMediaPlayer1)).BeginInit(); this.SuspendLayout(); - // + // // axWindowsMediaPlayer1 - // + // this.axWindowsMediaPlayer1.Dock = System.Windows.Forms.DockStyle.Fill; this.axWindowsMediaPlayer1.Enabled = true; this.axWindowsMediaPlayer1.Location = new System.Drawing.Point(0, 0); this.axWindowsMediaPlayer1.Name = "axWindowsMediaPlayer1"; this.axWindowsMediaPlayer1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axWindowsMediaPlayer1.OcxState"))); this.axWindowsMediaPlayer1.Size = new System.Drawing.Size(337, 359); + this.axWindowsMediaPlayer1.TabIndex = 0; this.axWindowsMediaPlayer1.Text = "axWindowsMediaPlayer1"; - // + // // WmpAxControl - // + // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.Controls.Add(this.axWindowsMediaPlayer1); diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/AxControl/wmpaxlib.csproj b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/AxControl/wmpaxlib.csproj index a870294e7b581..9612928933882 100644 --- a/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/AxControl/wmpaxlib.csproj +++ b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/AxControl/wmpaxlib.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -9,8 +9,9 @@ Properties WmpAxLib WmpAxLib - v4.0 - Client + v4.8 + + true @@ -20,6 +21,7 @@ DEBUG;TRACE prompt 4 + false pdbonly @@ -28,6 +30,7 @@ TRACE prompt 4 + false diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/app.config b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/app.config new file mode 100644 index 0000000000000..3e0e37cfc8c7a --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/app.config @@ -0,0 +1,3 @@ + + + diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/app.xaml.cs b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/app.xaml.cs index 337294ae8d7ae..b9f2bd197e4a2 100644 --- a/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/app.xaml.cs +++ b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/app.xaml.cs @@ -1,8 +1,4 @@ -using System; -using System.Windows; -using System.Data; -using System.Xml; -using System.Configuration; +using System.Windows; namespace HostingAxInWpf { @@ -12,11 +8,10 @@ namespace HostingAxInWpf public partial class app : Application { - void AppStartup(object sender, StartupEventArgs args) { - Window1 mainWindow = new Window1(); + Window mainWindow = new Window(); mainWindow.Show(); } } -} \ No newline at end of file +} diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/hostingaxinwpf.csproj b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/hostingaxinwpf.csproj index ad8a4fb5bb20d..89cb917afb9f1 100644 --- a/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/hostingaxinwpf.csproj +++ b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/hostingaxinwpf.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -11,8 +11,9 @@ 10.0.20821 2.0 - v4.0 - Client + v4.8 + + true @@ -20,17 +21,18 @@ false .\bin\Debug\ DEBUG;TRACE + false false true .\bin\Release\ TRACE + false - - False - ..\bin\AxInterop.WMPLib.dll + + ..\AxControl\bin\Debug\AxInterop.WMPLib.dll @@ -61,9 +63,12 @@ + + + - {4788D423-0FFB-4778-905A-76610471029F} + {4788d423-0ffb-4778-905a-76610471029f} WmpAxLib diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/window1.xaml.cs b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/window1.xaml.cs index 11732b87bb685..0940ea9c8ef16 100644 --- a/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/window1.xaml.cs +++ b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/HostingAxInWpf/window1.xaml.cs @@ -1,11 +1,5 @@ // -using System; using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Media; -using System.Windows.Shapes; namespace HostingAxInWpf { @@ -24,7 +18,7 @@ private void Window_Loaded(object sender, RoutedEventArgs e) new System.Windows.Forms.Integration.WindowsFormsHost(); // Create the ActiveX control. - WmpAxLib.AxWindowsMediaPlayer axWmp = new WmpAxLib.AxWindowsMediaPlayer(); + AxWMPLib.AxWindowsMediaPlayer axWmp = new AxWMPLib.AxWindowsMediaPlayer(); // Assign the ActiveX control as the host control's child. host.Child = axWmp; diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/snippets.5000.json b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/snippets.5000.json new file mode 100644 index 0000000000000..da9ebf8da2f9d --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_Wpf/HostingAxInWpf/CSharp/snippets.5000.json @@ -0,0 +1,3 @@ +{ + "host": "visualstudio" +} diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp.sln b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp.sln index 6ab0aa2283bfb..8e7434d0ab704 100644 --- a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp.sln +++ b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp.sln @@ -1,9 +1,11 @@  -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InvokePatternApp", "InvokePatternApp.csproj", "{A0B1E8EE-DA82-44CA-B383-EF92EA1E8F11}" +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.1.32407.343 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InvokePatternApp", "InvokePatternApp\InvokePatternApp.csproj", "{A0B1E8EE-DA82-44CA-B383-EF92EA1E8F11}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Target", "Target.csproj", "{B9A74CE9-0384-42D2-BFED-9B1A83A0E8A1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Target", "Target\Target.csproj", "{B9A74CE9-0384-42D2-BFED-9B1A83A0E8A1}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -23,4 +25,7 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {200FC30F-1B32-4D17-ADE8-7D21C871263E} + EndGlobalSection EndGlobal diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp.cs b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/InvokePatternApp.cs similarity index 98% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp.cs rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/InvokePatternApp.cs index c8d75c89e3c76..919b181666acc 100644 --- a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp.cs +++ b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/InvokePatternApp.cs @@ -51,7 +51,6 @@ using System.Windows.Threading; using System.Windows.Media; using System.IO; -using System.Security.Permissions; namespace SDKSample { @@ -176,13 +175,12 @@ protected override void OnStartup(StartupEventArgs args) ///

/// Start the target application. /// - /// The target appliation. + /// The target application. /// - /// Starts the application that we are going to use for as our + /// Starts the application that we are going to use as our /// root element for this sample. /// ///-------------------------------------------------------------------- - [SecurityPermission(SecurityAction.Demand, Flags=SecurityPermissionFlag.UnmanagedCode)] private AutomationElement StartApp(string app) { if (File.Exists(app)) diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp.csproj b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/InvokePatternApp.csproj similarity index 92% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp.csproj rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/InvokePatternApp.csproj index e595054b17db3..de372c2c2364a 100644 --- a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp.csproj +++ b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/InvokePatternApp.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -11,9 +11,10 @@ 10.0.20821 2.0 - v4.0 + v4.8 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Client + + true @@ -21,12 +22,14 @@ false .\bin\Debug\ DEBUG;TRACE + false false true .\bin\Release\ TRACE + false diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/AssemblyInfo.cs b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/AssemblyInfo.cs similarity index 100% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/AssemblyInfo.cs rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/AssemblyInfo.cs diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/Resources.Designer.cs b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/Resources.Designer.cs similarity index 88% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/Resources.Designer.cs rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/Resources.Designer.cs index 4992257893e49..d6c1fa4cabc8f 100644 --- a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/Resources.Designer.cs +++ b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/Resources.Designer.cs @@ -1,17 +1,17 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.1378 +// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ -namespace SelectionPatternTarget.Properties { +namespace InvokePatternApp.Properties { using System; - - + + /// /// A strongly-typed resource class, for looking up localized strings, etc. /// @@ -19,19 +19,19 @@ namespace SelectionPatternTarget.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { - + private static global::System.Resources.ResourceManager resourceMan; - + private static global::System.Globalization.CultureInfo resourceCulture; - + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal Resources() { } - + /// /// Returns the cached ResourceManager instance used by this class. /// @@ -39,13 +39,13 @@ internal Resources() { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SelectionPatternTarget.Properties.Resources", typeof(Resources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("InvokePatternApp.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/Resources.cs b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/Resources.cs similarity index 100% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/Resources.cs rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/Resources.cs diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/Resources.resx b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/Resources.resx similarity index 100% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/Resources.resx rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/Resources.resx diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/Settings.Designer.cs b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/Settings.Designer.cs similarity index 91% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/Settings.Designer.cs rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/Settings.Designer.cs index 452a1b685fa84..d8911b38650ed 100644 --- a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/Settings.Designer.cs +++ b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/Settings.Designer.cs @@ -1,7 +1,7 @@ //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.1433 +// Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -9,14 +9,14 @@ //------------------------------------------------------------------------------ namespace InvokePatternApp.Properties { - - + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - + public static Settings Default { get { return defaultInstance; diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/Settings.cs b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/Settings.cs similarity index 100% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/Settings.cs rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/Settings.cs diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/Settings.settings b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/Settings.settings similarity index 100% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Properties/Settings.settings rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/Properties/Settings.settings diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/security.xml b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/security.xml similarity index 100% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/security.xml rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/InvokePatternApp/security.xml diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/App.xaml b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/App.xaml similarity index 100% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/App.xaml rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/App.xaml diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/App.xaml.cs b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/App.xaml.cs similarity index 100% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/App.xaml.cs rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/App.xaml.cs diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target.csproj b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/Target.csproj similarity index 87% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target.csproj rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/Target.csproj index 5775fefbfa3e1..3d543e7fb9c11 100644 --- a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target.csproj +++ b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/Target.csproj @@ -1,4 +1,4 @@ - + Debug AnyCPU @@ -11,9 +11,10 @@ 10.0.20821 2.0 - v4.0 + v4.8 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Client + + true @@ -21,12 +22,14 @@ false .\bin\Debug\ DEBUG;TRACE + false false true .\bin\Release\ TRACE + false @@ -63,5 +66,8 @@ Window1.xaml + + + \ No newline at end of file diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Window1.xaml b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/Window1.xaml similarity index 100% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Window1.xaml rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/Window1.xaml diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Window1.xaml.cs b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/Window1.xaml.cs similarity index 100% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Window1.xaml.cs rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/Window1.xaml.cs diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/app.config b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/app.config new file mode 100644 index 0000000000000..3e0e37cfc8c7a --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/app.config @@ -0,0 +1,3 @@ + + + diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/data/cat.png b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/data/cat.png similarity index 100% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/data/cat.png rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/data/cat.png diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/data/dog.png b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/data/dog.png similarity index 100% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/data/dog.png rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/data/dog.png diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/data/fish.png b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/data/fish.png similarity index 100% rename from samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/data/fish.png rename to samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/Target/data/fish.png diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/snippets.5000.json b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/snippets.5000.json new file mode 100644 index 0000000000000..da9ebf8da2f9d --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_Wpf/InvokePatternApp/CSharp/snippets.5000.json @@ -0,0 +1,3 @@ +{ + "host": "visualstudio" +} diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInSideAdapters/AddInSideAdapters.csproj b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInSideAdapters/AddInSideAdapters.csproj deleted file mode 100644 index 8bfb0da421d5e..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInSideAdapters/AddInSideAdapters.csproj +++ /dev/null @@ -1,20 +0,0 @@ - - - - Library - net48 - true - - - - - - - - - - - - - - diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInSideAdapters/WPFAddIn_ViewToContractAddInSideAdapter.cs b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInSideAdapters/WPFAddIn_ViewToContractAddInSideAdapter.cs deleted file mode 100644 index 19dc89e196748..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInSideAdapters/WPFAddIn_ViewToContractAddInSideAdapter.cs +++ /dev/null @@ -1,64 +0,0 @@ -// -using System; -using System.AddIn.Contract; -using System.AddIn.Pipeline; -using System.Security.Permissions; - -using AddInViews; -using Contracts; - -namespace AddInSideAdapters -{ - /// - /// Adapts the add-in's view of the contract to the add-in contract - /// - [AddInAdapter] - public class WPFAddIn_ViewToContractAddInSideAdapter : ContractBase, IWPFAddInContract - { - WPFAddInView wpfAddInView; - - public WPFAddIn_ViewToContractAddInSideAdapter(WPFAddInView wpfAddInView) - { - // Adapt the add-in view of the contract (WPFAddInView) - // to the contract (IWPFAddInContract) - this.wpfAddInView = wpfAddInView; - } - - /// - /// ContractBase.QueryContract must be overridden to: - /// * Safely return a window handle for an add-in UI to the host - /// application's application. - /// * Enable tabbing between host application UI and add-in UI, in the - /// "add-in is a UI" scenario. - /// - public override IContract QueryContract(string contractIdentifier) - { - if (contractIdentifier.Equals(typeof(INativeHandleContract).AssemblyQualifiedName)) - { - return FrameworkElementAdapters.ViewToContractAdapter(this.wpfAddInView); - } - - return base.QueryContract(contractIdentifier); - } - - /// - /// GetHandle is called by the WPF add-in model from the host application's - /// application domain to get the window handle for an add-in UI from the - /// add-in's application domain. GetHandle is called if a window handle isn't - /// returned by other means ie overriding ContractBase.QueryContract, - /// as shown above. - /// NOTE: This method requires UnmanagedCodePermission to be called - /// (full-trust by default), to prevent illegal window handle - /// access in partially trusted scenarios. If the add-in could - /// run in a partially trusted application domain - /// (eg AddInSecurityLevel.Internet), you can safely return a window - /// handle by overriding ContractBase.QueryContract, as shown above. - /// - [SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)] - public IntPtr GetHandle() - { - return FrameworkElementAdapters.ViewToContractAdapter(this.wpfAddInView).GetHandle(); - } - } -} -// \ No newline at end of file diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInViews/AddInViews.csproj b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInViews/AddInViews.csproj deleted file mode 100644 index 3ab9889835834..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInViews/AddInViews.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - Library - net48 - true - - - - - - - diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInViews/WPFAddInView.cs b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInViews/WPFAddInView.cs deleted file mode 100644 index 7648cc102aa5d..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/AddInViews/WPFAddInView.cs +++ /dev/null @@ -1,13 +0,0 @@ -// -using System.AddIn.Pipeline; -using System.Windows.Controls; - -namespace AddInViews -{ - /// - /// Defines the add-in's view of the contract. - /// - [AddInBase] - public class WPFAddInView : UserControl { } -} -// \ No newline at end of file diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Contracts/Contracts.csproj b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Contracts/Contracts.csproj deleted file mode 100644 index 429ddc41f5f79..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Contracts/Contracts.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - Library - net48 - true - - - - - - - diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Contracts/IWPFAddInContract.cs b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Contracts/IWPFAddInContract.cs deleted file mode 100644 index af7dbfd8fc814..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Contracts/IWPFAddInContract.cs +++ /dev/null @@ -1,14 +0,0 @@ -// -using System.AddIn.Contract; -using System.AddIn.Pipeline; - -namespace Contracts -{ - /// - /// Defines the services that an add-in will provide to a host application. - /// In this case, the add-in is a UI. - /// - [AddInContract] - public interface IWPFAddInContract : INativeHandleContract {} -} -// \ No newline at end of file diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/App.cs b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/App.cs deleted file mode 100644 index 583a1d78be007..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/App.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Windows; - -namespace Host -{ - /// - /// A custom entry point method, Main(), is required to use LoaderOptimizationAttribute, - /// which ensures that WPF assemblies are shared between the main application's appdomain - /// and the subsequent appdomains that are created to host isolated add-ins. Using - /// LoaderOptimizationAttribute dramatically improves performance; otherwise, each - /// add-in needs to load a complete set of WPF assemblies. - /// - public class App : Application - { - [STAThread] - [LoaderOptimization(LoaderOptimization.MultiDomainHost)] - public static void Main() - { - App app = new App(); - app.Run(); - } - - protected override void OnStartup(StartupEventArgs e) - { - base.OnStartup(e); - - // Show main application window - MainWindow mainWindow = new MainWindow(); - mainWindow.Show(); - } - } -} \ No newline at end of file diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/Host.csproj b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/Host.csproj deleted file mode 100644 index 5a5400a886140..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/Host.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - - WinExe - net48 - true - - - - - - - - - - - diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/MainWindow.xaml b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/MainWindow.xaml deleted file mode 100644 index e81dace736ff3..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/MainWindow.xaml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/MainWindow.xaml.cs b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/MainWindow.xaml.cs deleted file mode 100644 index e631681595ca6..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/Host/MainWindow.xaml.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.Collections.ObjectModel; -using System.AddIn.Hosting; -using System.Windows; - -using HostViews; - -namespace Host -{ - public partial class MainWindow : Window - { - WPFAddInHostView wpfAddInHostView; - - public MainWindow() - { - InitializeComponent(); - } - - void fileExitMenuItem_Click(object sender, RoutedEventArgs e) - { - this.Close(); - } - - void loadAddInUIMenuItem_Click(object sender, RoutedEventArgs e) - { -// -// Get add-in pipeline folder (the folder in which this application was launched from) -string appPath = Environment.CurrentDirectory; - -// Rebuild visual add-in pipeline -string[] warnings = AddInStore.Rebuild(appPath); -if (warnings.Length > 0) -{ - string msg = "Could not rebuild pipeline:"; - foreach (string warning in warnings) msg += "\n" + warning; - MessageBox.Show(msg); - return; -} - -// Activate add-in with Internet zone security isolation -Collection addInTokens = AddInStore.FindAddIns(typeof(WPFAddInHostView), appPath); -AddInToken wpfAddInToken = addInTokens[0]; -this.wpfAddInHostView = wpfAddInToken.Activate(AddInSecurityLevel.Internet); - -// Display add-in UI -this.addInUIHostGrid.Children.Add(this.wpfAddInHostView); -// - } - - void unloadAddInUIMenuItem_Click(object sender, RoutedEventArgs e) - { - // Stop displyaing add-in UI - this.addInUIHostGrid.Children.Clear(); - - // Unload add-in - AddInController addInController = AddInController.GetAddInController(this.wpfAddInHostView); - addInController.Shutdown(); - } - } -} \ No newline at end of file diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostSideAdapters/HostSideAdapters.csproj b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostSideAdapters/HostSideAdapters.csproj deleted file mode 100644 index f1b6769567bc8..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostSideAdapters/HostSideAdapters.csproj +++ /dev/null @@ -1,20 +0,0 @@ - - - - Library - net48 - true - - - - - - - - - - - - - - diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostSideAdapters/WPFAddIn_ContractToViewHostSideAdapter.cs b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostSideAdapters/WPFAddIn_ContractToViewHostSideAdapter.cs deleted file mode 100644 index 2855409d3f080..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostSideAdapters/WPFAddIn_ContractToViewHostSideAdapter.cs +++ /dev/null @@ -1,42 +0,0 @@ -// -using System.AddIn.Contract; -using System.AddIn.Pipeline; -using System.Windows; - -using Contracts; -using HostViews; - -namespace HostSideAdapters -{ - /// - /// Adapts the add-in contract to the host's view of the add-in - /// - [HostAdapter] - public class WPFAddIn_ContractToViewHostSideAdapter : WPFAddInHostView - { - IWPFAddInContract wpfAddInContract; - ContractHandle wpfAddInContractHandle; - - public WPFAddIn_ContractToViewHostSideAdapter(IWPFAddInContract wpfAddInContract) - { - // Adapt the contract (IWPFAddInContract) to the host application's - // view of the contract (WPFAddInHostView) - this.wpfAddInContract = wpfAddInContract; - - // Prevent the reference to the contract from being released while the - // host application uses the add-in - this.wpfAddInContractHandle = new ContractHandle(wpfAddInContract); - - // Convert the INativeHandleContract for the add-in UI that was passed - // from the add-in side of the isolation boundary to a FrameworkElement - string aqn = typeof(INativeHandleContract).AssemblyQualifiedName; - INativeHandleContract inhc = (INativeHandleContract)wpfAddInContract.QueryContract(aqn); - FrameworkElement fe = (FrameworkElement)FrameworkElementAdapters.ContractToViewAdapter(inhc); - - // Add FrameworkElement (which displays the UI provided by the add-in) as - // content of the view (a UserControl) - this.Content = fe; - } - } -} -// \ No newline at end of file diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostViews/HostViews.csproj b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostViews/HostViews.csproj deleted file mode 100644 index 60fc990b69b32..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostViews/HostViews.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - - Library - net48 - true - - - diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostViews/WPFAddInHostView.cs b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostViews/WPFAddInHostView.cs deleted file mode 100644 index 61d82847c7867..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/HostViews/WPFAddInHostView.cs +++ /dev/null @@ -1,11 +0,0 @@ -// -using System.Windows.Controls; - -namespace HostViews -{ - /// - /// Defines the host's view of the add-in - /// - public class WPFAddInHostView : UserControl { } -} -// \ No newline at end of file diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/SimpleAddInIsAUISample.sln b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/SimpleAddInIsAUISample.sln deleted file mode 100644 index 8513da795fdc7..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/SimpleAddInIsAUISample.sln +++ /dev/null @@ -1,56 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 10 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Host", "Host\Host.csproj", "{6624317E-A5FA-47AB-A634-5EC4E5F10E69}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HostViews", "HostViews\HostViews.csproj", "{F76C568A-2D37-47B2-AAC0-A384D72F7E78}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Contracts", "Contracts\Contracts.csproj", "{E808F287-31D1-4F2B-8EA9-3F027BF8C51B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddInViews", "AddInViews\AddInViews.csproj", "{75CCA4C0-CDCC-4779-9617-3817BE939F60}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddInSideAdapters", "AddInSideAdapters\AddInSideAdapters.csproj", "{D6B2D9E4-FFA9-4D82-B973-BB6792FDDDBB}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HostSideAdapters", "HostSideAdapters\HostSideAdapters.csproj", "{04C538AD-419B-4733-8F53-6DB2C4D3E010}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WPFAddIn1", "WPFAddIn1\WPFAddIn1.csproj", "{68E9A1C9-DDA7-4079-9EBB-F14FE03446B4}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6624317E-A5FA-47AB-A634-5EC4E5F10E69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6624317E-A5FA-47AB-A634-5EC4E5F10E69}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6624317E-A5FA-47AB-A634-5EC4E5F10E69}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6624317E-A5FA-47AB-A634-5EC4E5F10E69}.Release|Any CPU.Build.0 = Release|Any CPU - {F76C568A-2D37-47B2-AAC0-A384D72F7E78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F76C568A-2D37-47B2-AAC0-A384D72F7E78}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F76C568A-2D37-47B2-AAC0-A384D72F7E78}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F76C568A-2D37-47B2-AAC0-A384D72F7E78}.Release|Any CPU.Build.0 = Release|Any CPU - {E808F287-31D1-4F2B-8EA9-3F027BF8C51B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E808F287-31D1-4F2B-8EA9-3F027BF8C51B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E808F287-31D1-4F2B-8EA9-3F027BF8C51B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E808F287-31D1-4F2B-8EA9-3F027BF8C51B}.Release|Any CPU.Build.0 = Release|Any CPU - {75CCA4C0-CDCC-4779-9617-3817BE939F60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {75CCA4C0-CDCC-4779-9617-3817BE939F60}.Debug|Any CPU.Build.0 = Debug|Any CPU - {75CCA4C0-CDCC-4779-9617-3817BE939F60}.Release|Any CPU.ActiveCfg = Release|Any CPU - {75CCA4C0-CDCC-4779-9617-3817BE939F60}.Release|Any CPU.Build.0 = Release|Any CPU - {D6B2D9E4-FFA9-4D82-B973-BB6792FDDDBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D6B2D9E4-FFA9-4D82-B973-BB6792FDDDBB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D6B2D9E4-FFA9-4D82-B973-BB6792FDDDBB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D6B2D9E4-FFA9-4D82-B973-BB6792FDDDBB}.Release|Any CPU.Build.0 = Release|Any CPU - {04C538AD-419B-4733-8F53-6DB2C4D3E010}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04C538AD-419B-4733-8F53-6DB2C4D3E010}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04C538AD-419B-4733-8F53-6DB2C4D3E010}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04C538AD-419B-4733-8F53-6DB2C4D3E010}.Release|Any CPU.Build.0 = Release|Any CPU - {68E9A1C9-DDA7-4079-9EBB-F14FE03446B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {68E9A1C9-DDA7-4079-9EBB-F14FE03446B4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {68E9A1C9-DDA7-4079-9EBB-F14FE03446B4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {68E9A1C9-DDA7-4079-9EBB-F14FE03446B4}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/WPFAddIn1/AddInUI.xaml b/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/WPFAddIn1/AddInUI.xaml deleted file mode 100644 index a2c39011626a2..0000000000000 --- a/samples/snippets/csharp/VS_Snippets_Wpf/SimpleAddInIsAUISample/CSharp/WPFAddIn1/AddInUI.xaml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/mainpage.xaml.cpp b/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/mainpage.xaml.cpp deleted file mode 100644 index 1b1d384499274..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/mainpage.xaml.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// -// MainPage.xaml.cpp -// Implementation of the MainPage class. -// - -#include "pch.h" -#include "MainPage.xaml.h" - -using namespace EventSupportinVS; - -using namespace Platform; -using namespace Windows::Foundation; -using namespace Windows::Foundation::Collections; -using namespace Windows::UI::Xaml; -using namespace Windows::UI::Xaml::Controls; -using namespace Windows::UI::Xaml::Controls::Primitives; -using namespace Windows::UI::Xaml::Data; -using namespace Windows::UI::Xaml::Input; -using namespace Windows::UI::Xaml::Media; -using namespace Windows::UI::Xaml::Navigation; - -// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238 - -MainPage::MainPage() -{ - InitializeComponent(); -} - -/// -/// Invoked when this page is about to be displayed in a Frame. -/// -/// Event data that describes how this page was reached. The Parameter -/// property is typically used to configure the page. -void MainPage::OnNavigatedTo(NavigationEventArgs^ e) -{ - (void) e; // Unused parameter -} - - -void EventSupportinVS::MainPage::Button_Click_1(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e) -{ - -} diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/mainpage.xaml.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/mainpage.xaml.h deleted file mode 100644 index a90a315a8cf3b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/mainpage.xaml.h +++ /dev/null @@ -1,26 +0,0 @@ -// -// MainPage.xaml.h -// Declaration of the MainPage class. -// - -#pragma once - -#include "MainPage.g.h" - -namespace EventSupportinVS -{ - /// - /// An empty page that can be used on its own or navigated to within a Frame. - /// - [Windows::Foundation::Metadata::WebHostHidden] - public ref class MainPage sealed - { - public: - MainPage(); - - protected: - virtual void OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override; - private: - void Button_Click_1(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); - }; -} diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/package.appxmanifest b/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/package.appxmanifest deleted file mode 100644 index 40f2ed43875a7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/package.appxmanifest +++ /dev/null @@ -1,31 +0,0 @@ - - - - - EventSupportinVS - mblome - Assets\StoreLogo.png - - - 6.3 - 6.3 - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/pch.cpp b/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/pch.cpp deleted file mode 100644 index 01484ff5aa454..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/pch.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.cpp -// Include the standard header and generate the precompiled header. -// - -#include "pch.h" diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/pch.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/pch.h deleted file mode 100644 index fadf910de32e4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_events/cpp/eventsupportinvs/pch.h +++ /dev/null @@ -1,9 +0,0 @@ -// -// pch.h -// Header for standard system include files. -// - -#pragma once - -#include -#include "App.xaml.h" diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/class1.cpp deleted file mode 100644 index 31ae6111fd63e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/class1.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// Class1.cpp -#include "pch.h" -#include "Class1.h" -#include - -using namespace ExceptionTest; -using namespace Platform; -using namespace Windows::Storage; -using namespace concurrency; - -Class1::Class1() -{ -} - -// -String^ Class1::MyMethod(String^ argument) -{ - - if (argument->Length() == 0) - { - auto e = ref new Exception(-1, "I'm Zork bringing you this message from across the ABI."); - //throw ref new InvalidArgumentException(); - throw e; - } - - return MyMethodInternal(argument); -} -// - -// -void Class2::ProcessString(String^ input) -{ - String^ result = nullptr; - auto obj = ref new Class1(); - - try - { - result = obj->MyMethod(input); - } - - catch (/*InvalidArgument*/Exception^ e) - { - // Handle the exception in a way that's appropriate - // for your particular scenario. Assume - // here that this string enables graceful - // recover-and-continue. Why not? - result = ref new String(L"forty two"); - - // You can use Exception data for logging purposes. - Windows::Globalization::Calendar calendar; - LogMyErrors(calendar.GetDateTime(), e->HResult, e->Message); - } - - // Execution continues here in both cases. - //#include - std::wstring ws(result->Data()); - //... -} -// - -void Class2::LogMyErrors(Windows::Foundation::DateTime dt, HRESULT hr, Platform::String^ message) -{ - auto storageFolder = KnownFolders::DocumentsLibrary; - auto str = dt.ToString(); - create_task(storageFolder->CreateFileAsync("UnhandledException.txt")).then([message](StorageFile^ file) - { - FileIO::WriteTextAsync(file, message); - }); -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/class1.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/class1.h deleted file mode 100644 index 9189eba34ac54..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/class1.h +++ /dev/null @@ -1,21 +0,0 @@ -#pragma once -#include - -namespace ExceptionTest -{ - public ref class Class1 sealed - { - public: - Class1(); - Platform::String^ MyMethod(Platform::String^ argument); - Platform::String^ MyMethodInternal(Platform::String^ argument) {return ref new Platform::String();} - }; - - public ref class Class2 sealed - { - public: - void ProcessString(Platform::String^ input); - private: - void LogMyErrors(Windows::Foundation::DateTime dt, HRESULT hr, Platform::String^ message); - }; -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/exceptiontest.vcxproj b/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/exceptiontest.vcxproj deleted file mode 100644 index 983d072f2a4aa..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/exceptiontest.vcxproj +++ /dev/null @@ -1,221 +0,0 @@ - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - {dde14f76-9981-4f6d-9373-475d6be548d8} - Win32Proj - ExceptionTest - ExceptionTest - en-US - 12.0 - true - Windows Store - 8.1 - - - - DynamicLibrary - true - v120 - - - DynamicLibrary - true - v120 - - - DynamicLibrary - true - v120 - - - DynamicLibrary - false - true - v120 - - - DynamicLibrary - false - true - v120 - - - DynamicLibrary - false - true - v120 - - - - - - - - - - - - - - - - - - - - - - - - false - - - false - - - false - - - false - - - false - - - false - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - - - - - Create - Create - Create - Create - Create - Create - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/exceptiontest.vcxproj.filters b/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/exceptiontest.vcxproj.filters deleted file mode 100644 index 0bef1f8f5fe38..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/exceptiontest.vcxproj.filters +++ /dev/null @@ -1,17 +0,0 @@ - - - - - b9d31ded-c02b-4a4c-802c-53ca76a5c12b - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/pch.cpp b/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/pch.cpp deleted file mode 100644 index 01484ff5aa454..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/pch.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.cpp -// Include the standard header and generate the precompiled header. -// - -#include "pch.h" diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/pch.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/pch.h deleted file mode 100644 index 0f9a04f134f6d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_exceptions/cpp/pch.h +++ /dev/null @@ -1,7 +0,0 @@ -// -// pch.h -// Header for standard system include files. -// - -#pragma once -#include \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/class1.cpp deleted file mode 100644 index 574b84882b061..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/class1.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// Class1.cpp -#include "pch.h" -#include "Class1.h" - -using namespace InterfacesTest; -using namespace Platform; - - diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/class1.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/class1.h deleted file mode 100644 index 04a63a87f1698..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/class1.h +++ /dev/null @@ -1,233 +0,0 @@ -#pragma once - -// -namespace InterfacesTest -{ - public enum class PlayState {Playing, Paused, Stopped, Forward, Reverse}; - - public ref struct MediaPlayerEventArgs sealed - { - property PlayState oldState; - property PlayState newState; - }; - - public delegate void OnStateChanged(Platform::Object^ sender, MediaPlayerEventArgs^ a); - public interface class IMediaPlayer // or public interface struct IMediaPlayer - { - event OnStateChanged^ StateChanged; - property Platform::String^ CurrentTitle; - property PlayState CurrentState; - void Play(); - void Pause(); - void Stop(); - void Back(float speed); - void Forward(float speed); - }; -} -// - -namespace InterfacesTest -{ - // - public ref class MyMediaPlayer sealed : public IMediaPlayer - { - public: - //IMediaPlayer - virtual event OnStateChanged^ StateChanged; - virtual property Platform::String^ CurrentTitle; - virtual property PlayState CurrentState; - virtual void Play() - { - // … - auto args = ref new MediaPlayerEventArgs(); - args->newState = PlayState::Playing; - args->oldState = PlayState::Stopped; - StateChanged(this, args); - } - virtual void Pause(){/*...*/} - virtual void Stop(){/*...*/} - virtual void Forward(float speed){/*...*/} - virtual void Back(float speed){/*...*/} - private: - //... - }; - // - - // - public interface struct A { void DoSomething(); }; - public interface struct B : A { void DoSomethingMore();}; - - public ref struct C sealed : B - { - virtual void DoSomething(){} - virtual void DoSomethingMore(){} - }; - - - // - - - ref class Test - { - public: - // - //Alternate implementation in MediaPlayer class of IMediaPlayer::CurrentTitle - virtual property Platform::String^ CurrentTitle - { - Platform::String^ get() {return "Now playing: " + _title;} - void set(Platform::String^ t) {_title = t; } - } - // - private: - Platform::String^ _title; - }; - - - namespace embedded - { - // - public interface class IMediaPlayer - { - //... - property Platform::String^ CurrentTitle - { - Platform::String^ get(); - } - }; - - public ref class MyMediaPlayer3 sealed : public IMediaPlayer - { - public: - //... - virtual property Platform::String^ CurrentTitle - { - Platform::String^ get() {return "Now playing: " + _title;} - } - private: - Platform::String^ _title; - }; - // - } - // - public interface class IArtist - { - Platform::String^ Draw(); - }; - - public interface class ICowboy - { - Platform::String^ Draw(); - }; - - public ref class MyClass sealed : public IArtist, ICowboy - { - public: - MyClass(){} - virtual Platform::String^ ArtistDraw() = IArtist::Draw {return L"Artist";} - virtual Platform::String^ CowboyDraw() = ICowboy::Draw {return L"Cowboy";} - }; - // - - // - public ref class MediaFile sealed {}; - - generic - private interface class IFileCollection - { - property Windows::Foundation::Collections::IVector^ Files; - Platform::String^ GetFileInfoAsString(T file); - }; - - private ref class MediaFileCollection : IFileCollection - { - public: - virtual property Windows::Foundation::Collections::IVector^ Files; - virtual Platform::String^ GetFileInfoAsString(MediaFile^ file){return "";} - }; - - public interface class ILibraryClient - { - bool FindTitle(Platform::String^ title); - //... - }; - - public ref class MediaPlayer sealed : public IMediaPlayer, public ILibraryClient - { - public: - //IMediaPlayer - virtual event OnStateChanged^ StateChanged; - virtual property Platform::String^ CurrentTitle; - virtual property PlayState CurrentState; - virtual void Play() - { - auto args = ref new MediaPlayerEventArgs(); - args->newState = PlayState::Playing; - args->oldState = PlayState::Stopped; - StateChanged(this, args); - } - virtual void Pause(){/*...*/} - virtual void Stop(){/*...*/} - virtual void Forward(float speed){/*...*/} - virtual void Back(float speed){/*...*/} - - //ILibraryClient - virtual bool FindTitle(Platform::String^ title){/*...*/ return true;} - - private: - MediaFileCollection^ fileCollection; - - }; - // - - - - namespace Example3 - { - public interface class IMediaPlayer - { - //... - property Platform::String^ CurrentTitle - { - Platform::String^ get(); - } - }; - - public ref class MyMediaPlayer3 sealed : public IMediaPlayer - { - public: - //... - virtual property Platform::String^ CurrentTitle - { - Platform::String^ get() {return "Now playing: " + _title;} - } - private: - Platform::String^ _title; - }; - - } - - - - - - //Generic Interface t-> test - generic - interface class TestIFace - { - property T data; - }; - - template - ref class TestClass : public TestIFace - { - public: - virtual property T data; - bool IsNull() - { - // No compile error!!!! - return data->Foo(nullptr); - } - }; - - -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/header2.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/header2.h deleted file mode 100644 index 7cb3239573981..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/header2.h +++ /dev/null @@ -1,25 +0,0 @@ -namespace InterfaceDemo -{ -public ref class MyMediaPlayer sealed : public IMediaPlayer - { - public: - //IMediaPlayer - virtual event OnStateChanged^ StateChanged; - virtual property Platform::String^ CurrentTitle; - virtual property PlayState CurrentState; - virtual void Play() - { - // - auto args = ref new MediaPlayerEventArgs(); - args->newState = PlayState::Playing; - args->oldState = PlayState::Stopped; - StateChanged(this, args); - } - virtual void Pause(){/*...*/} - virtual void Stop(){/*...*/} - virtual void Forward(float speed){/*...*/} - virtual void Back(float speed){/*...*/} - private: - //... - }; -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/interfacestest.vcxproj b/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/interfacestest.vcxproj deleted file mode 100644 index eff5133e627f3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/interfacestest.vcxproj +++ /dev/null @@ -1,222 +0,0 @@ - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - {3b1131b5-ead9-4f69-be70-4b97a89fd675} - Win32Proj - InterfacesTest - InterfacesTest - en-US - 12.0 - true - Windows Store - 8.1 - - - - DynamicLibrary - true - v120 - - - DynamicLibrary - true - v120 - - - DynamicLibrary - true - v120 - - - DynamicLibrary - false - true - v120 - - - DynamicLibrary - false - true - v120 - - - DynamicLibrary - false - true - v120 - - - - - - - - - - - - - - - - - - - - - - - - false - - - false - - - false - - - false - - - false - - - false - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - - - - - - Create - Create - Create - Create - Create - Create - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/interfacestest.vcxproj.filters b/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/interfacestest.vcxproj.filters deleted file mode 100644 index 1a3515389d3fe..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/interfacestest.vcxproj.filters +++ /dev/null @@ -1,18 +0,0 @@ - - - - - 6efe2b30-9de9-4ab5-a718-9932d4fa1fd7 - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/pch.cpp b/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/pch.cpp deleted file mode 100644 index 01484ff5aa454..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/pch.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.cpp -// Include the standard header and generate the precompiled header. -// - -#include "pch.h" diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/pch.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/pch.h deleted file mode 100644 index f815ac97bb22e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_interfaces/cpp/pch.h +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.h -// Header for standard system include files. -// - -#pragma once diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/address.details.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/address.details.h deleted file mode 100644 index 95dafe2e246e9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/address.details.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// Address.Details.h -partial ref class Address -{ -private: - Platform::String^ street_; - Platform::String^ city_; - Platform::String^ state_; - Platform::String^ zip_; - Platform::String^ country_; - void ValidateAddress(bool normalize = true); -}; -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/address.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/address.h deleted file mode 100644 index ccc3f7bd4a3fe..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/address.h +++ /dev/null @@ -1,16 +0,0 @@ - -// -// Address.h -#include "Address.details.h" -ref class Address -{ -public: - Address(Platform::String^ street, Platform::String^ city, Platform::String^ state, - Platform::String^ zip, Platform::String^ country); - property Platform::String^ Street { Platform::String^ get(); } - property Platform::String^ City { Platform::String^ get(); } - property Platform::String^ State { Platform::String^ get(); } - property Platform::String^ Zip { Platform::String^ get(); } - property Platform::String^ Country { Platform::String^ get(); } -}; -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/class1.cpp deleted file mode 100644 index c6def63bf2d5c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/class1.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Class1.cpp -#include "pch.h" -#include "Class1.h" - -using namespace PartialClassExample; -using namespace Platform; - - -int Inner::Base1::GetNumBase(){return 1;} - -int Inner::N::GetNum() {return 2;} - -int Inner::N::GetNum2() {return 2;} - -int Inner::InnerInner::N::GetNum(){return 5;} - -int Inner::InnerInner::N::GetNum2() {return 2;} - diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/class1.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/class1.h deleted file mode 100644 index bd2bfb6f7e6ce..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/class1.h +++ /dev/null @@ -1,114 +0,0 @@ -#pragma once - -namespace PartialClassExample -{ - // - partial ref class MyClass {/* ... */}; - // - - // - partial ref class N - { - public: - int Method1(); // Method1 is public. - - }; - ref class N - { - void Method2(); // Method2 is private. - }; - // - - /* - // This is commented out because it causes - // a compile error in Delcaration #6 due to mc already being defined. - // the error is understood. The example is most effective showing - // the various declaration rules all in one example like this. - // - // Declaration #1 - partial ref class MyClass {}; - - // Declaration #2 - partial ref class MyClass; - - // Declaration #3 - MyClass^ pMc; // OK, forward declaration. - - // Declaration #4 - MyClass mc; // Error, MyClass is not defined. - - // Declaration #5 - ref class MyClass { }; - - // Declaration #6 - MyClass mc; // OK, now MyClass is defined. - // - */ - - namespace Inner - { - /* - // Commented out for same reason as previous example - // - ref class MyClass; // OK - partial ref class MyClass{}; //OK - partial ref class MyClass{}; // OK - partial ref class MyClass{}; // OK - ref class MyClass{}; // OK - partial ref class MyClass{}; // C3971, partial definition cannot appear after full definition. - // - */ - - // - ref class Base1 { public: property int m_num; int GetNumBase();}; - interface class Base2 { int GetNum(); }; - interface class Base3{ int GetNum2();}; - - partial ref class N : public Base1 - { - public: - /*...*/ - - }; - - partial ref class N : public Base2 - { - public: - virtual int GetNum(); - // OK, as long as OtherClass is - //declared before the full definition of N - void Method2( OtherClass^ oc ); - }; - - ref class OtherClass; - - ref class N : public Base3 - { - public: - virtual int GetNum2(); - }; - // - - namespace InnerInner - { - ref class Base1 { public: property int m_num; int GetNumBase();}; - interface class Base2 { int GetNum(); }; - interface class Base3{ int GetNum2();}; - - // - ref class OtherClass; - ref class N : public Base1, public Base2, public Base3 - { - public: - virtual int GetNum(); - virtual int GetNum2(); - private: - void Method2(OtherClass^ oc); - - }; - - - // - } - } -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/partialclassexample.vcxproj b/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/partialclassexample.vcxproj deleted file mode 100644 index 58802ec6f0f30..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/partialclassexample.vcxproj +++ /dev/null @@ -1,223 +0,0 @@ - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - {c1c7999c-98c3-4240-8841-835d12df01bb} - Win32Proj - PartialClassExample - PartialClassExample - en-US - 12.0 - true - Windows Store - 8.1 - - - - DynamicLibrary - true - v120 - - - DynamicLibrary - true - v120 - - - DynamicLibrary - true - v120 - - - DynamicLibrary - false - true - v120 - - - DynamicLibrary - false - true - v120 - - - DynamicLibrary - false - true - v120 - - - - - - - - - - - - - - - - - - - - - - - - false - - - false - - - false - - - false - - - false - - - false - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - - - - - - - Create - Create - Create - Create - Create - Create - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/partialclassexample.vcxproj.filters b/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/partialclassexample.vcxproj.filters deleted file mode 100644 index cc08cf53d8960..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/partialclassexample.vcxproj.filters +++ /dev/null @@ -1,19 +0,0 @@ - - - - - 170cf292-704c-4304-b11d-78e8d64e1837 - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/pch.cpp b/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/pch.cpp deleted file mode 100644 index 01484ff5aa454..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/pch.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.cpp -// Include the standard header and generate the precompiled header. -// - -#include "pch.h" diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/pch.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/pch.h deleted file mode 100644 index f815ac97bb22e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_partial/cpp/pch.h +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.h -// Header for standard system include files. -// - -#pragma once diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/class1.cpp deleted file mode 100644 index 41045b712f4a7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/class1.cpp +++ /dev/null @@ -1,10 +0,0 @@ -// Class1.cpp -#include "pch.h" -#include "Class1.h" - -using namespace cx_properties; -using namespace Platform; - -Class1::Class1() -{ -} diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/class1.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/class1.h deleted file mode 100644 index 284cd1ea7870d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/class1.h +++ /dev/null @@ -1,65 +0,0 @@ -#pragma once -#include - -namespace cx_properties -{ - - public ref class Class1 sealed - { - public: - Class1(); - }; - - // - public ref class Prescription sealed - { - private: - Platform::String^ m_doctor; - int quantity; - public: - Prescription(Platform::String^ name, Platform::String^ d) : m_doctor(d) - { - // Trivial properties can't be initialized in member list. - Name = name; - } - - // Trivial property - property Platform::String^ Name; - - // Read-only property - property Platform::String^ Doctor - { - Platform::String^ get() { return m_doctor; } - } - - // Read-write property - property int Quantity - { - int get() { return quantity; } - void set(int value) - { - if (value <= 0) - { - throw ref new Platform::InvalidArgumentException(); - } - quantity = value; - } - } - }; - - public ref class PropertyConsumer sealed - { - private: - void GetPrescriptions() - { - Prescription^ p = ref new Prescription("Louis", "Dr. Who"); - p->Quantity = 5; - Platform::String^ s = p->Doctor; - int32 i = p->Quantity; - - Prescription p2("JR", "Dr. Dat"); - p2.Quantity = 10; - } - }; - // -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/cx_properties.vcxproj b/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/cx_properties.vcxproj deleted file mode 100644 index 4eb61e3f5d5f0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/cx_properties.vcxproj +++ /dev/null @@ -1,221 +0,0 @@ - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - {ce19d451-8b2b-45bd-b74b-f512f4f3c88c} - Win32Proj - cx_properties - cx_properties - en-US - 12.0 - true - Windows Store - 8.1 - - - - DynamicLibrary - true - v120 - - - DynamicLibrary - true - v120 - - - DynamicLibrary - true - v120 - - - DynamicLibrary - false - true - v120 - - - DynamicLibrary - false - true - v120 - - - DynamicLibrary - false - true - v120 - - - - - - - - - - - - - - - - - - - - - - - - false - - - false - - - false - - - false - - - false - - - false - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - - - - - Create - Create - Create - Create - Create - Create - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/cx_properties.vcxproj.filters b/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/cx_properties.vcxproj.filters deleted file mode 100644 index b121a49fbd2a9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/cx_properties.vcxproj.filters +++ /dev/null @@ -1,17 +0,0 @@ - - - - - 30247847-fb10-4e2b-97d1-cd44e28e92fe - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/pch.cpp b/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/pch.cpp deleted file mode 100644 index 01484ff5aa454..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/pch.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.cpp -// Include the standard header and generate the precompiled header. -// - -#include "pch.h" diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/pch.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/pch.h deleted file mode 100644 index f815ac97bb22e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_properties/cpp/pch.h +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.h -// Header for standard system include files. -// - -#pragma once diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/class1.cpp deleted file mode 100644 index 37e53be92bfba..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/class1.cpp +++ /dev/null @@ -1,90 +0,0 @@ -// Class1.cpp -#include "pch.h" -#include "Class1.h" -#include - -using namespace Strings; - -// -using namespace Platform; -String^ str = L"hello"; -void main(){} -// - - -Class1::Class1() -{ - // - // Initializing a String^ by using string literals - String^ str1 = "Test"; // ok for ANSI text only. uses current code page - String^ str2("Test"); - String^ str3 = L"Test"; - String^ str4(L"Test"); - - - //Initialize a String^ by using another String^ - String^ str6(str1); - auto str7 = str2; - - // Initialize a String from wchar_t* and wstring - wchar_t msg[] = L"Test"; - String^ str8 = ref new String(msg); - std::wstring wstr1(L"Test"); - String^ str9 = ref new String(wstr1.c_str()); - String^ str10 = ref new String(wstr1.c_str(), wstr1.length()); - // - - - - - - - -} - -void Test1() -{ - // - - // Concatenation - auto str1 = "Hello" + " World"; - auto str2 = str1 + " from C++/CX!"; - auto str3 = String::Concat(str2, " and the String class"); - - // Comparison - if (str1 == str2) { /* ... */ } - if (str1->Equals(str2)) { /* ... */ } - if (str1 != str2) { /* ... */ } - if (str1 < str2 || str1 > str2) { /* ... */}; - int result = String::CompareOrdinal(str1, str2); - - if(str1 == nullptr) { /* ...*/}; - if(str1->IsEmpty()) { /* ...*/}; - - // Accessing individual characters in a String^ - auto it = str1->Begin(); - char16 ch = it[0]; - // -} - -void Test2() -{ - // - // Create a String^ variable statically or dynamically from a literal string. - String^ str1 = "AAAAAAAA"; - - // Use the value of str1 to create the ws1 wstring variable. - std::wstring ws1( str1->Data() ); - // The value of ws1 is L"AAAAAAAA". - - // Manipulate the wstring value. - std::wstring replacement( L"BBB" ); - ws1 = ws1.replace ( 1, 3, replacement ); - // The value of ws1 is L"ABBBAAAA". - - // Assign the modified wstring back to str1. - str1 = ref new String( ws1.c_str() ); - - // - -} diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/class1.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/class1.h deleted file mode 100644 index d6d5c564611ba..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/class1.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -namespace Strings -{ - - - public ref class Class1 sealed - { - public: - Class1(); - }; -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/cppcx_strings.vcxproj b/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/cppcx_strings.vcxproj deleted file mode 100644 index dba63c8df147e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/cppcx_strings.vcxproj +++ /dev/null @@ -1,221 +0,0 @@ - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - {61c7b54d-d78a-4970-9e15-3fe6b9249873} - Win32Proj - CX_Strings - CPPCX_Strings - en-US - 12.0 - true - Windows Store - 8.1 - - - - DynamicLibrary - true - v120 - - - DynamicLibrary - true - v120 - - - DynamicLibrary - true - v120 - - - DynamicLibrary - false - true - v120 - - - DynamicLibrary - false - true - v120 - - - DynamicLibrary - false - true - v120 - - - - - - - - - - - - - - - - - - - - - - - - false - - - false - - - false - - - false - - - false - - - false - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - - - - - Create - Create - Create - Create - Create - Create - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/cppcx_strings.vcxproj.filters b/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/cppcx_strings.vcxproj.filters deleted file mode 100644 index 64d731553f1e3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/cppcx_strings.vcxproj.filters +++ /dev/null @@ -1,17 +0,0 @@ - - - - - 19ea9cd4-4b43-4f43-aae1-c2586f28d2b7 - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/pch.cpp b/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/pch.cpp deleted file mode 100644 index 01484ff5aa454..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/pch.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.cpp -// Include the standard header and generate the precompiled header. -// - -#include "pch.h" diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/pch.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/pch.h deleted file mode 100644 index f815ac97bb22e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_strings/cpp/pch.h +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.h -// Header for standard system include files. -// - -#pragma once diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/class1.cpp deleted file mode 100644 index be79985dc0994..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/class1.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// Class1.cpp -#include "pch.h" -#include "Class1.h" - - - diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/class1.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/class1.h deleted file mode 100644 index 8c8cda2f5024f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/class1.h +++ /dev/null @@ -1,76 +0,0 @@ -#pragma once - -namespace cx_templates -{ - public ref class Class1 sealed - { - public: - Class1(){} - }; - - // - namespace TemplateDemo - { - // A private ref class template - template - ref class MyRefTemplate - { - internal: - MyRefTemplate(T d) : data(d){} - public: - T Get(){ return data; } - private: - T data; - }; - - // Specialization of ref class template - template<> - ref class MyRefTemplate - { - internal: - //... - }; - - // A private derived ref class that inherits - // from a ref class template specialization - ref class MyDerivedSpecialized sealed : public MyRefTemplate - { - internal: - MyDerivedSpecialized() : MyRefTemplate(5){} - }; - - // A private derived template ref class - // that inherits from a ref class template - template - ref class MyDerived : public MyRefTemplate - { - internal: - MyDerived(){} - }; - - // A standard C++ template - template - class MyStandardTemplate - { - public: - MyStandardTemplate(){} - T Get() { return data; } - private: - T data; - - }; - - // A public ref class with private - // members that are specializations of - // ref class templates and standard C++ templates. - public ref class MySpecializeBoth sealed - { - public: - MySpecializeBoth(){} - private: - MyDerivedSpecialized^ g; - MyStandardTemplate* n; - }; - } - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/pch.cpp b/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/pch.cpp deleted file mode 100644 index 01484ff5aa454..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/pch.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.cpp -// Include the standard header and generate the precompiled header. -// - -#include "pch.h" diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/pch.h b/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/pch.h deleted file mode 100644 index f815ac97bb22e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/pch.h +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.h -// Header for standard system include files. -// - -#pragma once diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/templatedemo.vcxproj b/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/templatedemo.vcxproj deleted file mode 100644 index de11f5b4ae96b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/templatedemo.vcxproj +++ /dev/null @@ -1,221 +0,0 @@ - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - {246d0852-8bf8-4d20-adb5-6e885c616f12} - Win32Proj - TemplateDemo - TemplateDemo - en-US - 12.0 - true - Windows Store - 8.1 - - - - DynamicLibrary - true - v120 - - - DynamicLibrary - true - v120 - - - DynamicLibrary - true - v120 - - - DynamicLibrary - false - true - v120 - - - DynamicLibrary - false - true - v120 - - - DynamicLibrary - false - true - v120 - - - - - - - - - - - - - - - - - - - - - - - - false - - - false - - - false - - - false - - - false - - - false - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - Use - _WINRT_DLL;NDEBUG;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - /bigobj %(AdditionalOptions) - - - Console - runtimeobject.lib;%(AdditionalDependencies) - false - - - - - - - - - Create - Create - Create - Create - Create - Create - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/templatedemo.vcxproj.filters b/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/templatedemo.vcxproj.filters deleted file mode 100644 index 6994e214608ea..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/cx_templates/cpp/templatedemo.vcxproj.filters +++ /dev/null @@ -1,17 +0,0 @@ - - - - - cd08e6c9-c7f8-41f5-8b54-8fd663172fdb - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/debugger/cpp/beta2_native.cpp b/samples/snippets/cpp/VS_Snippets_Misc/debugger/cpp/beta2_native.cpp deleted file mode 100644 index f3e3a8af030e5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/debugger/cpp/beta2_native.cpp +++ /dev/null @@ -1,317 +0,0 @@ - -// -#include "stdafx.h" -#include -#include -#include -#include -#include -#include -#include - -CRITICAL_SECTION cs; - -using namespace ::std; -using namespace ::std::tr1; -using namespace ::Concurrency; -task_group task4; -task_group task3; -task_group task2; - -volatile long aa = 0; -volatile long bb = 0; -volatile long cc = 0; -static bool waitFor1 = true; -static bool waitFor5 = true; - -#pragma optimize("", off) -void Spin() -{ - for(int i=0;i<50*50000;++i); -} -#pragma optimize("",on) - -template -class RunFunc -{ - Func& m_Func; - int m_o; -public: - RunFunc(Func func,int o):m_Func(func),m_o(o){ - - }; - void operator()()const{ - m_Func(m_o); - }; -}; - -void T(int o) -{ - cout << "Scheduled run \n"; - -}; - -void R(int o) -{ - if (o == 2) - { - while (waitFor5) { ;} - Spin(); - - //use up all processors but 4 by scheduling 4 non-terminating tasks. - int numProcsToBurn = GetProcessorCount() - 4; - int i; - vector*> tasks; - for (i = 0; i < numProcsToBurn; i++) - { - tasks.push_back(new call([](int i){while(true)Spin();})); - asend(tasks[i],1); - cout << "Started task \n"; - } - - task_handle> t6(RunFunc(T,i + 1 + 5)); - task_handle> t7(RunFunc(T,i + 2 + 5)); - task_handle> t8(RunFunc(T,i + 3 + 5)); - task_handle> t9(RunFunc(T,i + 4 + 5)); - task_handle> t10(RunFunc(T,i + 5 + 5)); - task2.run(t6); - task2.run(t7); - task2.run(t8); - task2.run(t9); - task2.run(t10); - - //BP4 - 1 in M, 2 in R, 3 in J, 4 in R, 5 died - DebugBreak(); - } - else - { - if (o!=4) - throw; - - task3.wait(); - } -}; - -void Q() -{ - // breaks here at the same time as N and M - InterlockedIncrement(& cc); - while (cc < 4) - { - ; - } - // task 5 dies here freeing task 4 (its parent) - cout << "t5 dies\n"; - waitFor5 = false; -}; - -void P() -{ - cout << "t5 runs\n"; - Q(); -}; - -void O(int o) -{ - task_group t5; - t5.run(&P); - t5.wait(); - R(o); -}; - -void N(int o) -{ - // breaks here at the same time as M and Q - InterlockedIncrement(&cc); - while (cc < 4) - { - ; - } - R(o); -}; - -void M(int o) -{ - // breaks here at the same time as N and Q - InterlockedIncrement(&cc); - while (cc < 3) - { - ; - } - //BP3 - 1 in M, 2 in N, 3 still in J, 4 in O, 5 in Q - DebugBreak(); - InterlockedIncrement(&cc); - while (true) - Sleep(500); // for ever -}; - -void L(int oo) -{ - int temp3 = oo; - - switch (temp3) - { - case 1: - M(oo); - break; - case 2: - N(oo); - break; - case 4: - O(oo); - break; - default: - throw; //fool3 - break; - } -} -void K(int o) -{ - // break here at the same time as E and H - InterlockedIncrement(&bb); - EnterCriticalSection(&cs); - while (bb < 3) - { - ; - } - LeaveCriticalSection(&cs); - Spin(); - - //after - L(o); -} -void J(int o) -{ - int temp2 = o; - - switch (temp2) - { - case 3: - task4.wait(); - break; - case 4: - K(o); - break; - default: - throw; //fool2 - break; - } -} -static void I(int o) -{ - J(o); -} -static void H(int o) -{ - // break here at the same time as E and K - InterlockedIncrement(&bb); - EnterCriticalSection(&cs); - while (bb < 3) - { - ; - } - LeaveCriticalSection(&cs); - Spin(); - - //after - L(o); -} -static void G(int o) -{ - H(o); -} -static void F(int o) -{ - G(o); -} - -static void E(int o) -{ - // break here at the same time as H and K - while (bb < 2) - { - ; - } - //BP2 - 1 in E, 2 in H, 3 in J, 4 in K - Spin(); // for native case only - DebugBreak(); - InterlockedIncrement(&bb); - - //after - L(o); - -} - -static void D(int o) -{ - E(o); -} - -static void C(int o) -{ - int temp = o; - - InterlockedIncrement(&aa); - while (aa < 4) - { - ; - } - - if (temp == 1) - { - // BP1 - all tasks in C - DebugBreak(); - waitFor1 = false; - } - else - { - while (waitFor1) - { - ; - } - } - switch (temp) - { - case 1: - D(o); - break; - case 2: - F(o); - break; - case 3: - case 4: - I(o); - break; - default: - throw; //fool - break; - } -} -static void B(int o) -{ - C(o); -} - -void A(int o) -{ - B(o); -} -int main() -{ - InitializeCriticalSection(&cs); - - task_group tasks; - task_handle> t1(RunFunc(A,1)); - tasks.run(t1); - task_handle> t2(RunFunc(A,2)); - task2.run(t2); - task_handle> t3(RunFunc(A,3)); - task3.run(t3); - task_handle> t4(RunFunc(A,4)); - task4.run(t4); - - getchar(); - return 1; -} -// - diff --git a/samples/snippets/cpp/VS_Snippets_Misc/debugger/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Misc/debugger/cpp/makefile deleted file mode 100644 index 815710645f0d5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/debugger/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -beta2_native.exe : beta2_native.cpp - cl.exe /EHsc beta2_native.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/debugger/cpp/stdafx.h b/samples/snippets/cpp/VS_Snippets_Misc/debugger/cpp/stdafx.h deleted file mode 100644 index b005a839def24..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/debugger/cpp/stdafx.h +++ /dev/null @@ -1,15 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#pragma once - -#include "targetver.h" - -#include -#include - - - -// TODO: reference additional headers your program requires here diff --git a/samples/snippets/cpp/VS_Snippets_Misc/debugger/cpp/targetver.h b/samples/snippets/cpp/VS_Snippets_Misc/debugger/cpp/targetver.h deleted file mode 100644 index 6b58e4965500d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/debugger/cpp/targetver.h +++ /dev/null @@ -1,18 +0,0 @@ - -#pragma once - -// The following macros define the minimum required platform. The minimum required platform -// is the earliest version of Windows, Internet Explorer etc. that has the necessary features -// to run your application. The macros work by enabling all features available on platform -// versions up to and including the version specified. - -// Modify the following defines if you have to target a platform prior to the ones specified below. -// Refer to MSDN for the latest info on corresponding values for different platforms. - -#include - -#ifndef _WIN32_WINNT -#define _WIN32_WINNT _WIN32_WINNT_MAXVER // Change this to the appropriate value to target other versions of Windows. -#endif - -#include diff --git a/samples/snippets/cpp/VS_Snippets_Misc/system.net.httpwebrequest.addrange/cpp/source.cpp b/samples/snippets/cpp/VS_Snippets_Misc/system.net.httpwebrequest.addrange/cpp/source.cpp deleted file mode 100644 index 27900a2f4ebc3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/system.net.httpwebrequest.addrange/cpp/source.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/*System::Net::HttpWebRequest->AddRange(int, int) -This program demonstrates 'AddRange(int, int)' method of 'HttpWebRequest class. -A new 'HttpWebRequest' Object* is created.The number of characters of the response to be received can be -restricted by the 'AddRange' method.By calling 'AddRange(50, 150)' on the 'HttpWebRequest' Object* the content -of the response page is restricted from the 50th character to 150th charater.The response of the request is -obtained and displayed to the console. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; - -int main() -{ - try - { -// - // Create a New 'HttpWebRequest' object. - HttpWebRequest^ myHttpWebRequest1 = - (HttpWebRequest^)( WebRequest::Create( "http://www.contoso.com" ) ); - myHttpWebRequest1->AddRange( 1000); - Console::WriteLine("Call AddRange(1000)"); - Console::Write("Resulting Headers: "); - Console::WriteLine(myHttpWebRequest1->Headers); - - HttpWebRequest^ myHttpWebRequest2 = - (HttpWebRequest^)( WebRequest::Create( "http://www.contoso.com" ) ); - myHttpWebRequest2->AddRange(-1000); - Console::WriteLine("Call AddRange(-1000)"); - Console::Write("Resulting Headers: "); - Console::WriteLine(myHttpWebRequest2->Headers); - -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Message : {0} ", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Message : {0} ", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Misc/system.net.httpwebrequest.addrange2/cpp/source.cpp b/samples/snippets/cpp/VS_Snippets_Misc/system.net.httpwebrequest.addrange2/cpp/source.cpp deleted file mode 100644 index aec1e43561697..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/system.net.httpwebrequest.addrange2/cpp/source.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/*System::Net::HttpWebRequest->AddRange(int, int) -This program demonstrates 'AddRange(int, int)' method of 'HttpWebRequest class. -A new 'HttpWebRequest' Object* is created.The number of characters of the response to be received can be -restricted by the 'AddRange' method.By calling 'AddRange(50, 150)' on the 'HttpWebRequest' Object* the content -of the response page is restricted from the 50th character to 150th charater.The response of the request is -obtained and displayed to the console. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; - -int main() -{ - try - { -// - // Create a New 'HttpWebRequest' object. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( "http://www.contoso.com" ) ); - myHttpWebRequest->AddRange( 50, 150 ); - Console::WriteLine("Call AddRange(50, 150)"); - Console::Write("Resulting Request Headers: "); - Console::WriteLine(myHttpWebRequest->Headers); - - // Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - - // Displays the headers in the response received - Console::Write("Resulting Response Headers: "); - Console::WriteLine(myHttpWebResponse->Headers); - - // Display the contents of the page to the console. - Stream^ streamResponse = myHttpWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuffer = gcnew array(256); - int count = streamRead->Read( readBuffer, 0, 256 ); - Console::WriteLine( "\nThe HTML contents of the page from 50th to 150 charaters are :\n " ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuffer,0,count ); - Console::WriteLine( outputData ); - count = streamRead->Read( readBuffer, 0, 256 ); - } - streamRead->Close(); - streamResponse->Close(); - myHttpWebResponse->Close(); -// - Console::WriteLine( "\nPress 'Enter' Key to Continue..........." ); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Message : {0} ", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Message : {0} ", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/calculator.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/calculator.cpp deleted file mode 100644 index 9a85518fcef53..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/calculator.cpp +++ /dev/null @@ -1,142 +0,0 @@ -// -#include "stdafx.h" - -#include "..\CalculatorComponent\CalculatorComponent_h.h" - -const IID IID_ICalculatorComponent = {0x0DBABB94,0xCE99,0x42F7,0xAC,0xBD,0xE6,0x98,0xB2,0x33,0x2C,0x60}; -const CLSID CLSID_CalculatorComponent = {0xE68F5EDD,0x6257,0x4E72,0xA1,0x0B,0x40,0x67,0xED,0x8E,0x85,0xF2}; - -// Prints an error string for the provided source code line and HRESULT -// value and returns the HRESULT value as an int. -int PrintError(unsigned int line, HRESULT hr) -{ - wprintf_s(L"ERROR: Line:%d HRESULT: 0x%X\n", line, hr); - return hr; -} - -int wmain() -{ - HRESULT hr; - - // Initialize the COM library. - hr = CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - - ICalculatorComponent* calc = nullptr; // Interface to COM component. - - // Create the CalculatorComponent object. - hr = CoCreateInstance(CLSID_CalculatorComponent, nullptr, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&calc)); - if (SUCCEEDED(hr)) - { - // Test the component by adding two numbers. - int result; - hr = calc->Add(4, 5, &result); - if (FAILED(hr)) - { - PrintError(__LINE__, hr); - } - else - { - wprintf_s(L"result = %d\n", result); - } - - // Free the CalculatorComponent object. - calc->Release(); - } - else - { - // Object creation failed. Print a message. - PrintError(__LINE__, hr); - } - - // Free the COM library. - CoUninitialize(); - - return hr; -} -/* Output: -result = 9 -*/ -// -/* -// -#include "stdafx.h" -#include - -#include "..\CalculatorComponent\CalculatorComponent_h.h" - -using namespace Microsoft::WRL; - -const IID IID_ICalculatorComponent = {0x0DBABB94,0xCE99,0x42F7,0xAC,0xBD,0xE6,0x98,0xB2,0x33,0x2C,0x60}; -const CLSID CLSID_CalculatorComponent = {0xE68F5EDD,0x6257,0x4E72,0xA1,0x0B,0x40,0x67,0xED,0x8E,0x85,0xF2}; - -// Prints an error string for the provided source code line and HRESULT -// value and returns the HRESULT value as an int. -int PrintError(unsigned int line, HRESULT hr) -{ - wprintf_s(L"ERROR: Line:%d HRESULT: 0x%X\n", line, hr); - return hr; -} - -int wmain() -{ - HRESULT hr; - - // RAII wrapper for managing the lifetime of the COM library. - class CoInitializeWrapper - { - HRESULT _hr; - public: - CoInitializeWrapper(DWORD flags) - { - _hr = CoInitializeEx(nullptr, flags); - } - ~CoInitializeWrapper() - { - if (SUCCEEDED(_hr)) - { - CoUninitialize(); - } - } - operator HRESULT() - { - return _hr; - } - - }; - - // Initialize the COM library. - CoInitializeWrapper initialize(COINIT_APARTMENTTHREADED); - if (FAILED(initialize)) - { - return PrintError(__LINE__, initialize); - } - - ComPtr calc; // Interface to COM component. - - // Create the CalculatorComponent object. - hr = CoCreateInstance(CLSID_CalculatorComponent, nullptr, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(calc.GetAddressOf())); - if (SUCCEEDED(hr)) - { - // Test the component by adding two numbers. - int result; - hr = calc->Add(4, 5, &result); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - wprintf_s(L"result = %d\n", result); - } - else - { - // Object creation failed. Print a message. - return PrintError(__LINE__, hr); - } - - return 0; -} -// -*/ \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/calculator.vcxproj b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/calculator.vcxproj deleted file mode 100644 index ef668cace1fa5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/calculator.vcxproj +++ /dev/null @@ -1,95 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {E5C03450-2BE9-4210-A2AD-864D16E979AB} - Win32Proj - Calculator - - - - Application - true - v110 - Unicode - - - Application - false - v110 - true - Unicode - - - - - - - - - - - - - true - - - false - - - - Use - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - Use - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - - - - - - - - - Create - Create - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/calculator.vcxproj.filters b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/calculator.vcxproj.filters deleted file mode 100644 index a494cda1cb741..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/calculator.vcxproj.filters +++ /dev/null @@ -1,36 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/readme.txt b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/readme.txt deleted file mode 100644 index 789aa90b56d19..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/readme.txt +++ /dev/null @@ -1,40 +0,0 @@ -======================================================================== - CONSOLE APPLICATION : Calculator Project Overview -======================================================================== - -AppWizard has created this Calculator application for you. - -This file contains a summary of what you will find in each of the files that -make up your Calculator application. - - -Calculator.vcxproj - This is the main project file for VC++ projects generated using an Application Wizard. - It contains information about the version of Visual C++ that generated the file, and - information about the platforms, configurations, and project features selected with the - Application Wizard. - -Calculator.vcxproj.filters - This is the filters file for VC++ projects generated using an Application Wizard. - It contains information about the association between the files in your project - and the filters. This association is used in the IDE to show grouping of files with - similar extensions under a specific node (for e.g. ".cpp" files are associated with the - "Source Files" filter). - -Calculator.cpp - This is the main application source file. - -///////////////////////////////////////////////////////////////////////////// -Other standard files: - -StdAfx.h, StdAfx.cpp - These files are used to build a precompiled header (PCH) file - named Calculator.pch and a precompiled types file named StdAfx.obj. - -///////////////////////////////////////////////////////////////////////////// -Other notes: - -AppWizard uses "TODO:" comments to indicate parts of the source code you -should add to or customize. - -///////////////////////////////////////////////////////////////////////////// diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/stdafx.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/stdafx.cpp deleted file mode 100644 index a65750aa16875..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/stdafx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// Calculator.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/stdafx.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/stdafx.h deleted file mode 100644 index b005a839def24..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/stdafx.h +++ /dev/null @@ -1,15 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#pragma once - -#include "targetver.h" - -#include -#include - - - -// TODO: reference additional headers your program requires here diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/targetver.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/targetver.h deleted file mode 100644 index 87c0086de751b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculator/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -// Including SDKDDKVer.h defines the highest available Windows platform. - -// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and -// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. - -#include diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.cpp deleted file mode 100644 index 6579522a5cdac..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// -#include "stdafx.h" - -#include "CalculatorComponent_h.h" -#include - -using namespace Microsoft::WRL; - -class CalculatorComponent: public RuntimeClass, ICalculatorComponent> -{ -public: - CalculatorComponent() - { - } - - STDMETHODIMP Add(_In_ int a, _In_ int b, _Out_ int* value) - { - *value = a + b; - return S_OK; - } -}; - -CoCreatableClass(CalculatorComponent); -// diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.def b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.def deleted file mode 100644 index 125b4fb8a56a3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.def +++ /dev/null @@ -1,6 +0,0 @@ -LIBRARY - -EXPORTS - DllGetActivationFactory PRIVATE - DllGetClassObject PRIVATE - DllCanUnloadNow PRIVATE \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.idl b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.idl deleted file mode 100644 index 476bf42be3d8d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.idl +++ /dev/null @@ -1,19 +0,0 @@ -// -import "ocidl.idl"; - -[uuid(0DBABB94-CE99-42F7-ACBD-E698B2332C60), version(1.0)] -interface ICalculatorComponent : IUnknown -{ - HRESULT Add([in] int a, [in] int b, [out, retval] int* value); -} - -[uuid(9D3E6826-CB8E-4D86-8B14-89F0D7EFCD01), version(1.0)] -library CalculatorComponentLib -{ - [uuid(E68F5EDD-6257-4E72-A10B-4067ED8E85F2), version(1.0)] - coclass CalculatorComponent - { - [default] interface ICalculatorComponent; - } -}; -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.vcxproj b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.vcxproj deleted file mode 100644 index 1659b3c066407..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.vcxproj +++ /dev/null @@ -1,114 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {E36383E4-A913-4FC0-A6FA-7CE339694343} - Win32Proj - CalculatorComponent - - - - DynamicLibrary - true - v110 - Unicode - - - DynamicLibrary - false - v110 - true - Unicode - - - - - - - - - - - - - true - - - false - - - - Use - Level3 - Disabled - WIN32;_DEBUG;_WINDOWS;_USRDLL;CALCULATORCOMPONENT_EXPORTS;%(PreprocessorDefinitions) - true - - - Windows - true - CalculatorComponent.def - runtimeobject.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - Use - MaxSpeed - true - true - WIN32;NDEBUG;_WINDOWS;_USRDLL;CALCULATORCOMPONENT_EXPORTS;%(PreprocessorDefinitions) - true - - - Windows - true - true - true - CalculatorComponent.def - runtimeobject.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - - - - - - - - - false - - - false - - - - - Create - Create - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.vcxproj.filters b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.vcxproj.filters deleted file mode 100644 index 13c5eb333de61..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/calculatorcomponent.vcxproj.filters +++ /dev/null @@ -1,50 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - - - Source Files - - - - - Source Files - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/dllmain.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/dllmain.cpp deleted file mode 100644 index e8af5dac0d1d3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/dllmain.cpp +++ /dev/null @@ -1,34 +0,0 @@ -// -#include "stdafx.h" -#include - -using namespace Microsoft::WRL; - -#if !defined(__WRL_CLASSIC_COM__) -STDAPI DllGetActivationFactory(_In_ HSTRING activatibleClassId, _COM_Outptr_ IActivationFactory** factory) -{ - return Module::GetModule().GetActivationFactory(activatibleClassId, factory); -} -#endif - -#if !defined(__WRL_WINRT_STRICT__) -STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, _COM_Outptr_ void** ppv) -{ - return Module::GetModule().GetClassObject(rclsid, riid, ppv); -} -#endif - -STDAPI DllCanUnloadNow() -{ - return Module::GetModule().Terminate() ? S_OK : S_FALSE; -} - -STDAPI_(BOOL) DllMain(_In_opt_ HINSTANCE hinst, DWORD reason, _In_opt_ void*) -{ - if (reason == DLL_PROCESS_ATTACH) - { - DisableThreadLibraryCalls(hinst); - } - return TRUE; -} -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/readme.txt b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/readme.txt deleted file mode 100644 index 1786cdd4540dc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/readme.txt +++ /dev/null @@ -1,48 +0,0 @@ -======================================================================== - DYNAMIC LINK LIBRARY : CalculatorComponent Project Overview -======================================================================== - -AppWizard has created this CalculatorComponent DLL for you. - -This file contains a summary of what you will find in each of the files that -make up your CalculatorComponent application. - - -CalculatorComponent.vcxproj - This is the main project file for VC++ projects generated using an Application Wizard. - It contains information about the version of Visual C++ that generated the file, and - information about the platforms, configurations, and project features selected with the - Application Wizard. - -CalculatorComponent.vcxproj.filters - This is the filters file for VC++ projects generated using an Application Wizard. - It contains information about the association between the files in your project - and the filters. This association is used in the IDE to show grouping of files with - similar extensions under a specific node (for e.g. ".cpp" files are associated with the - "Source Files" filter). - -CalculatorComponent.cpp - This is the main DLL source file. - - When created, this DLL does not export any symbols. As a result, it - will not produce a .lib file when it is built. If you wish this project - to be a project dependency of some other project, you will either need to - add code to export some symbols from the DLL so that an export library - will be produced, or you can set the Ignore Input Library property to Yes - on the General propert page of the Linker folder in the project's Property - Pages dialog box. - -///////////////////////////////////////////////////////////////////////////// -Other standard files: - -StdAfx.h, StdAfx.cpp - These files are used to build a precompiled header (PCH) file - named CalculatorComponent.pch and a precompiled types file named StdAfx.obj. - -///////////////////////////////////////////////////////////////////////////// -Other notes: - -AppWizard uses "TODO:" comments to indicate parts of the source code you -should add to or customize. - -///////////////////////////////////////////////////////////////////////////// diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/regscript.reg b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/regscript.reg deleted file mode 100644 index c8611f6b53080..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/regscript.reg +++ /dev/null @@ -1,16 +0,0 @@ -Windows Registry Editor Version 5.00 - -[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{E68F5EDD-6257-4E72-A10B-4067ED8E85F2}] -@="CalculatorComponent Class" - -[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{E68F5EDD-6257-4E72-A10B-4067ED8E85F2}\InprocServer32] -@="E:\\SD\\UE\\Samples\\Dev11\\WRL\\wrl-classic-com-component\\cpp\\WRLClassicCOM\\Debug\\CalculatorComponent.dll" -"ThreadingModel"="Apartment" - -[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{E68F5EDD-6257-4E72-A10B-4067ED8E85F2}\Programmable] - -[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{E68F5EDD-6257-4E72-A10B-4067ED8E85F2}\TypeLib] -@="{9D3E6826-CB8E-4D86-8B14-89F0D7EFCD01}" - -[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{E68F5EDD-6257-4E72-A10B-4067ED8E85F2}\Version] -@="1.0" diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/stdafx.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/stdafx.cpp deleted file mode 100644 index 2e3b158e5d281..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/stdafx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// CalculatorComponent.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/stdafx.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/stdafx.h deleted file mode 100644 index f3a07375c7662..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/stdafx.h +++ /dev/null @@ -1,16 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#pragma once - -#include "targetver.h" - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -// Windows Header Files: -#include - - - -// TODO: reference additional headers your program requires here diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/targetver.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/targetver.h deleted file mode 100644 index 87c0086de751b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/calculatorcomponent/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -// Including SDKDDKVer.h defines the highest available Windows platform. - -// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and -// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. - -#include diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/wrlclassiccom.sln b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/wrlclassiccom.sln deleted file mode 100644 index 98ef49a96305a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/cpp/wrlclassiccom/wrlclassiccom.sln +++ /dev/null @@ -1,29 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CalculatorComponent", "CalculatorComponent\CalculatorComponent.vcxproj", "{E36383E4-A913-4FC0-A6FA-7CE339694343}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Calculator", "Calculator\Calculator.vcxproj", "{E5C03450-2BE9-4210-A2AD-864D16E979AB}" - ProjectSection(ProjectDependencies) = postProject - {E36383E4-A913-4FC0-A6FA-7CE339694343} = {E36383E4-A913-4FC0-A6FA-7CE339694343} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E36383E4-A913-4FC0-A6FA-7CE339694343}.Debug|Win32.ActiveCfg = Debug|Win32 - {E36383E4-A913-4FC0-A6FA-7CE339694343}.Debug|Win32.Build.0 = Debug|Win32 - {E36383E4-A913-4FC0-A6FA-7CE339694343}.Release|Win32.ActiveCfg = Release|Win32 - {E36383E4-A913-4FC0-A6FA-7CE339694343}.Release|Win32.Build.0 = Release|Win32 - {E5C03450-2BE9-4210-A2AD-864D16E979AB}.Debug|Win32.ActiveCfg = Debug|Win32 - {E5C03450-2BE9-4210-A2AD-864D16E979AB}.Debug|Win32.Build.0 = Debug|Win32 - {E5C03450-2BE9-4210-A2AD-864D16E979AB}.Release|Win32.ActiveCfg = Release|Win32 - {E5C03450-2BE9-4210-A2AD-864D16E979AB}.Release|Win32.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/def/calculatorcomponent.def b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/def/calculatorcomponent.def deleted file mode 100644 index ce7bbbdaed25a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/def/calculatorcomponent.def +++ /dev/null @@ -1,8 +0,0 @@ -// -LIBRARY - -EXPORTS - DllGetActivationFactory PRIVATE - DllGetClassObject PRIVATE - DllCanUnloadNow PRIVATE -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/reg/regscript.reg b/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/reg/regscript.reg deleted file mode 100644 index e90ff7cdb5317..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-classic-com-component/reg/regscript.reg +++ /dev/null @@ -1,18 +0,0 @@ -// -Windows Registry Editor Version 5.00 - -[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{E68F5EDD-6257-4E72-A10B-4067ED8E85F2}] -@="CalculatorComponent Class" - -[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{E68F5EDD-6257-4E72-A10B-4067ED8E85F2}\InprocServer32] -@="" -"ThreadingModel"="Apartment" - -[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{E68F5EDD-6257-4E72-A10B-4067ED8E85F2}\Programmable] - -[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{E68F5EDD-6257-4E72-A10B-4067ED8E85F2}\TypeLib] -@="{9D3E6826-CB8E-4D86-8B14-89F0D7EFCD01}" - -[HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{E68F5EDD-6257-4E72-A10B-4067ED8E85F2}\Version] -@="1.0" -// diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-async/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-async/cpp/makefile deleted file mode 100644 index f2881240d4284..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-async/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -wrl-consume-async.exe: wrl-consume-async.cpp - cl.exe wrl-consume-async.cpp /W4 /WX runtimeobject.lib \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-async/cpp/wrl-consume-async.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-async/cpp/wrl-consume-async.cpp deleted file mode 100644 index 4512c8230099d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-async/cpp/wrl-consume-async.cpp +++ /dev/null @@ -1,108 +0,0 @@ -// -// wrl-consume-async.cpp -// compile with: runtimeobject.lib -// -#include -#include -#include -#include -#include - -using namespace ABI::Windows::Foundation; -using namespace ABI::Windows::System::Threading; -using namespace Microsoft::WRL; -using namespace Microsoft::WRL::Wrappers; -// - -// Prints an error string for the provided source code line and HRESULT -// value and returns the HRESULT value as an int. -int PrintError(unsigned int line, HRESULT hr) -{ - wprintf_s(L"ERROR: Line:%d HRESULT: 0x%X\n", line, hr); - return hr; -} - -int wmain() -{ - // - // Initialize the Windows Runtime. - RoInitializeWrapper initialize(RO_INIT_MULTITHREADED); - if (FAILED(initialize)) - { - return PrintError(__LINE__, initialize); - } - // - - // - // Get the activation factory for the IThreadPoolTimer interface. - ComPtr timerFactory; - HRESULT hr = GetActivationFactory(HStringReference(RuntimeClass_Windows_System_Threading_ThreadPoolTimer).Get(), &timerFactory); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - // - - // - // Create an event that is set after the timer callback completes. We later use this event to wait for the timer to complete. - // This event is for demonstration only in a console app. In most apps, you typically don't wait for async operations to complete. - Event timerCompleted(CreateEventEx(nullptr, nullptr, CREATE_EVENT_MANUAL_RESET, WRITE_OWNER | EVENT_ALL_ACCESS)); - hr = timerCompleted.IsValid() ? S_OK : HRESULT_FROM_WIN32(GetLastError()); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - // - - // - // Create a timer that prints a message after 2 seconds. - - TimeSpan delay; - delay.Duration = 20000000; // 2 seconds. - - auto callback = Callback([&timerCompleted](IThreadPoolTimer* timer) -> HRESULT - { - wprintf_s(L"Timer fired.\n"); - - TimeSpan delay; - HRESULT hr = timer->get_Delay(&delay); - if (SUCCEEDED(hr)) - { - wprintf_s(L"Timer duration: %2.2f seconds.\n", delay.Duration / 10000000.0); - } - - // Set the completion event and return. - SetEvent(timerCompleted.Get()); - return hr; - }); - hr = callback ? S_OK : E_OUTOFMEMORY; - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - - ComPtr timer; - hr = timerFactory->CreateTimer(callback.Get(), delay, &timer); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - // - - // - // Print a message and wait for the timer callback to complete. - wprintf_s(L"Timer started.\nWaiting for timer...\n"); - - // Wait for the timer to complete. - WaitForSingleObjectEx(timerCompleted.Get(), INFINITE, FALSE); - // All smart pointers and RAII objects go out of scope here. - // -} -/* -Output: -Timer started. -Waiting for timer... -Timer fired. -Timer duration: 2.00 seconds. -*/ -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-asyncop/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-asyncop/cpp/makefile deleted file mode 100644 index b2876aafe19cf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-asyncop/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -wrl-consume-asyncOp.exe: wrl-consume-asyncOp.cpp - cl.exe wrl-consume-asyncOp.cpp runtimeobject.lib \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-asyncop/cpp/wrl-consume-asyncop.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-asyncop/cpp/wrl-consume-asyncop.cpp deleted file mode 100644 index 51ce4eef54d96..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-asyncop/cpp/wrl-consume-asyncop.cpp +++ /dev/null @@ -1,126 +0,0 @@ -// -// wrl-consume-asyncOp.cpp -// compile with: runtimeobject.lib -// -#include -#include -#include -#include -#include - -using namespace ABI::Windows::Foundation; -using namespace ABI::Windows::System::Threading; -using namespace Microsoft::WRL; -using namespace Microsoft::WRL::Wrappers; -// - -// Prints an error string for the provided source code line and HRESULT -// value and returns the HRESULT value as an int. -int PrintError(unsigned int line, HRESULT hr) -{ - wprintf_s(L"ERROR: Line:%d HRESULT: 0x%X\n", line, hr); - return hr; -} - -// Determines whether the input value is prime. -bool IsPrime(int n) -{ - if (n < 2) - { - return false; - } - for (int i = 2; i < n; ++i) - { - if ((n % i) == 0) - { - return false; - } - } - return true; -} - -int wmain() -{ - // - // Initialize the Windows Runtime. - RoInitializeWrapper initialize(RO_INIT_MULTITHREADED); - if (FAILED(initialize)) - { - return PrintError(__LINE__, initialize); - } - // - - // - // Get the activation factory for the IThreadPoolStatics interface. - ComPtr threadPool; - HRESULT hr = GetActivationFactory(HStringReference(RuntimeClass_Windows_System_Threading_ThreadPool).Get(), &threadPool); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - // - - // - // Create an event that is set after the timer callback completes. We later use this event to wait for the timer to complete. - // This event is for demonstration only in a console app. In most apps, you typically don't wait for async operations to complete. - Event threadCompleted(CreateEventEx(nullptr, nullptr, CREATE_EVENT_MANUAL_RESET, WRITE_OWNER | EVENT_ALL_ACCESS)); - hr = threadCompleted.IsValid() ? S_OK : HRESULT_FROM_WIN32(GetLastError()); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - - // - - // - wprintf_s(L"Starting thread...\n"); - - // Create a thread that computes prime numbers. - ComPtr asyncAction; - hr = threadPool->RunAsync(Callback([&threadCompleted](IAsyncAction* asyncAction) -> HRESULT - { - // Print a message. - const unsigned int start = 0; - const unsigned int end = 100000; - unsigned int primeCount = 0; - for (int n = start; n < end; n++) - { - if (IsPrime(n)) - { - primeCount++; - } - } - - wprintf_s(L"There are %u prime numbers from %u to %u.\n", primeCount, start, end); - - // Set the completion event and return. - SetEvent(threadCompleted.Get()); - return S_OK; - - }).Get(), &asyncAction); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - // - - // - // Print a message and wait for the thread to complete. - wprintf_s(L"Waiting for thread...\n"); - - // Wait for the thread to complete. - WaitForSingleObjectEx(threadCompleted.Get(), INFINITE, FALSE); - - wprintf_s(L"Finished.\n"); - - // All smart pointers and RAII objects go out of scope here. - // -} -/* -Output: -Starting thread... -Waiting for thread... -There are 9592 prime numbers from 0 to 100000. -Finished. -*/ -// diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-component/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-component/cpp/makefile deleted file mode 100644 index af6bf1fd3144e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-component/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -wrl-consume-component.exe: wrl-consume-component.cpp - cl.exe wrl-consume-component.cpp /W4 /WX runtimeobject.lib \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-component/cpp/wrl-consume-component.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-component/cpp/wrl-consume-component.cpp deleted file mode 100644 index 14d7ca87cf67f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-component/cpp/wrl-consume-component.cpp +++ /dev/null @@ -1,85 +0,0 @@ -// -// wrl-consume-component.cpp -// compile with: runtimeobject.lib -// -#include -#include -#include -#include - -using namespace ABI::Windows::Foundation; -using namespace Microsoft::WRL; -using namespace Microsoft::WRL::Wrappers; -// - -// Prints an error string for the provided source code line and HRESULT -// value and returns the HRESULT value as an int. -int PrintError(unsigned int line, HRESULT hr) -{ - wprintf_s(L"ERROR: Line:%d HRESULT: 0x%X\n", line, hr); - return hr; -} - -int wmain() -{ - // - // Initialize the Windows Runtime. - RoInitializeWrapper initialize(RO_INIT_MULTITHREADED); - if (FAILED(initialize)) - { - return PrintError(__LINE__, initialize); - } - // - - // - // Get the activation factory for the IUriRuntimeClass interface. - ComPtr uriFactory; - HRESULT hr = GetActivationFactory(HStringReference(RuntimeClass_Windows_Foundation_Uri).Get(), &uriFactory); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - // - - // - // Create a string that represents a URI. - HString uriHString; - hr = uriHString.Set(L"http://www.microsoft.com"); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - // - - // - // Create the IUriRuntimeClass object. - ComPtr uri; - hr = uriFactory->CreateUri(uriHString.Get(), &uri); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - // - - // - // Get the domain part of the URI. - HString domainName; - hr = uri->get_Domain(domainName.GetAddressOf()); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - // - - // - // Print the domain name and return. - wprintf_s(L"Domain name: %s\n", domainName.GetRawBuffer(nullptr)); - - // All smart pointers and RAII objects go out of scope here. - // -} -/* -Output: -Domain name: microsoft.com -*/ -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-event/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-event/cpp/makefile deleted file mode 100644 index d25885eb75358..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-event/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -wrl-consume-event.exe: wrl-consume-event.cpp - cl.exe wrl-consume-event.cpp /W4 /WX runtimeobject.lib \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-event/cpp/wrl-consume-event.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-event/cpp/wrl-consume-event.cpp deleted file mode 100644 index 10b3de4ad0dc5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-consume-event/cpp/wrl-consume-event.cpp +++ /dev/null @@ -1,174 +0,0 @@ -// -// wrl-consume-events.cpp -// compile with: runtimeobject.lib -// -#include -#include -#include - -using namespace ABI::Windows::Devices::Enumeration; -using namespace ABI::Windows::Foundation; -using namespace Microsoft::WRL; -using namespace Microsoft::WRL::Wrappers; -// - -// Prints an error string for the provided source code line and HRESULT -// value and returns the HRESULT value as an int. -int PrintError(unsigned int line, HRESULT hr) -{ - wprintf_s(L"ERROR: Line:%d HRESULT: 0x%X\n", line, hr); - return hr; -} - -int wmain() -{ - // Type define the event handler types to make the code more readable. - typedef __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_Windows__CDevices__CEnumeration__CDeviceInformation AddedHandler; - typedef __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable EnumerationCompletedHandler; - typedef __FITypedEventHandler_2_Windows__CDevices__CEnumeration__CDeviceWatcher_IInspectable StoppedHandler; - - // - // Counts the number of enumerated devices. - unsigned int deviceCount = 0; - - // Event registration tokens that enable us to later unsubscribe from events. - EventRegistrationToken addedToken; - EventRegistrationToken stoppedToken; - EventRegistrationToken enumCompletedToken; - // - - // - // Initialize the Windows Runtime. - RoInitializeWrapper initialize(RO_INIT_MULTITHREADED); - if (FAILED(initialize)) - { - return PrintError(__LINE__, initialize); - } - // - - // - // Create an event that is set after device enumeration completes. We later use this event to wait for the timer to complete. - // This event is for demonstration only in a console app. In most apps, you typically don't wait for async operations to complete. - Event enumerationCompleted(CreateEventEx(nullptr, nullptr, CREATE_EVENT_MANUAL_RESET, WRITE_OWNER | EVENT_ALL_ACCESS)); - HRESULT hr = enumerationCompleted.IsValid() ? S_OK : HRESULT_FROM_WIN32(GetLastError()); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - // - - // - // Get the activation factory for the IDeviceWatcher interface. - ComPtr watcherFactory; - hr = ABI::Windows::Foundation::GetActivationFactory(HStringReference(RuntimeClass_Windows_Devices_Enumeration_DeviceInformation).Get(), &watcherFactory); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - // - - // - // Create a IDeviceWatcher object from the factory. - ComPtr watcher; - hr = watcherFactory->CreateWatcher(&watcher); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - // - - // - // Subscribe to the Added event. - hr = watcher->add_Added(Callback([&deviceCount](IDeviceWatcher* watcher, IDeviceInformation*) -> HRESULT - { - // Print a message and increment the device count. - // When we reach 10 devices, stop enumerating devices. - wprintf_s(L"Added device...\n"); - deviceCount++; - if (deviceCount == 10) - { - return watcher->Stop(); - } - return S_OK; - - }).Get(), &addedToken); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - - hr = watcher->add_Stopped(Callback([=, &enumerationCompleted](IDeviceWatcher* watcher, IInspectable*) -> HRESULT - { - wprintf_s(L"Device enumeration stopped.\nRemoving event handlers..."); - - // Unsubscribe from the events. This is shown for demonstration. - // The need to remove event handlers depends on the requirements of - // your app. For instance, if you only need to handle an event for - // a short period of time, you might remove the event handler when you - // no longer need it. If you handle an event for the duration of the app, - // you might not need to explicitly remove it. - HRESULT hr1 = watcher->remove_Added(addedToken); - HRESULT hr2 = watcher->remove_Stopped(stoppedToken); - HRESULT hr3 = watcher->remove_EnumerationCompleted(enumCompletedToken); - - // Set the completion event and return. - SetEvent(enumerationCompleted.Get()); - - return FAILED(hr1) ? hr1 : FAILED(hr2) ? hr2 : hr3; - - }).Get(), &stoppedToken); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - - // Subscribe to the EnumerationCompleted event. - hr = watcher->add_EnumerationCompleted(Callback([](IDeviceWatcher* watcher, IInspectable*) -> HRESULT - { - wprintf_s(L"Enumeration completed.\n"); - - return watcher->Stop(); - - }).Get(), &enumCompletedToken); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - // - - // - wprintf_s(L"Starting device enumeration...\n"); - hr = watcher->Start(); - if (FAILED(hr)) - { - return PrintError(__LINE__, hr); - } - // - - // - // Wait for the operation to complete. - WaitForSingleObjectEx(enumerationCompleted.Get(), INFINITE, FALSE); - - wprintf_s(L"Enumerated %u devices.\n", deviceCount); - - // All smart pointers and RAII objects go out of scope here. - // -} -/* -Sample output: -Starting device enumeration... -Added device... -Added device... -Added device... -Added device... -Added device... -Added device... -Added device... -Added device... -Added device... -Added device... -Device enumeration stopped. -Removing event handlers... -Enumerated 10 devices. -*/ -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/ilogger.idl b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/ilogger.idl deleted file mode 100644 index 7046e3b365acd..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/ilogger.idl +++ /dev/null @@ -1,10 +0,0 @@ -// -import "ocidl.idl"; - -// Prints text to the console. -[uuid(AFDB9683-F18A-4B85-90D1-B6158DAFA46C)] -interface ILogger : IUnknown -{ - HRESULT Log([in] LPCWSTR text); -} -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/readme.txt b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/readme.txt deleted file mode 100644 index 8fc281714c9ac..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/readme.txt +++ /dev/null @@ -1,40 +0,0 @@ -======================================================================== - CONSOLE APPLICATION : WRLMake Project Overview -======================================================================== - -AppWizard has created this WRLMake application for you. - -This file contains a summary of what you will find in each of the files that -make up your WRLMake application. - - -WRLMake.vcxproj - This is the main project file for VC++ projects generated using an Application Wizard. - It contains information about the version of Visual C++ that generated the file, and - information about the platforms, configurations, and project features selected with the - Application Wizard. - -WRLMake.vcxproj.filters - This is the filters file for VC++ projects generated using an Application Wizard. - It contains information about the association between the files in your project - and the filters. This association is used in the IDE to show grouping of files with - similar extensions under a specific node (for e.g. ".cpp" files are associated with the - "Source Files" filter). - -WRLMake.cpp - This is the main application source file. - -///////////////////////////////////////////////////////////////////////////// -Other standard files: - -StdAfx.h, StdAfx.cpp - These files are used to build a precompiled header (PCH) file - named WRLMake.pch and a precompiled types file named StdAfx.obj. - -///////////////////////////////////////////////////////////////////////////// -Other notes: - -AppWizard uses "TODO:" comments to indicate parts of the source code you -should add to or customize. - -///////////////////////////////////////////////////////////////////////////// diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/stdafx.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/stdafx.cpp deleted file mode 100644 index ca3ca665fdb3a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/stdafx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// WRLMake.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/stdafx.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/stdafx.h deleted file mode 100644 index b005a839def24..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/stdafx.h +++ /dev/null @@ -1,15 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#pragma once - -#include "targetver.h" - -#include -#include - - - -// TODO: reference additional headers your program requires here diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/targetver.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/targetver.h deleted file mode 100644 index 87c0086de751b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -// Including SDKDDKVer.h defines the highest available Windows platform. - -// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and -// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. - -#include diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/wrlmake.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/wrlmake.cpp deleted file mode 100644 index 63e2244d160cd..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/wrlmake.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// WRLMake.cpp : Defines the entry point for the console application. -// -// -#include "stdafx.h" -#include -#include - -#include "ILogger_h.h" - -using namespace Microsoft::WRL; - -// Writes logging messages to the console. -class CConsoleWriter : public RuntimeClass, ILogger> -{ -public: - STDMETHODIMP Log(_In_ PCWSTR text) - { - wprintf_s(L"%s\n", text); - return S_OK; - } - -private: - // Make destroyable only through Release. - ~CConsoleWriter() - { - } -}; - -int wmain() -{ - ComPtr writer = Make(); - HRESULT hr = writer->Log(L"Logger ready."); - return hr; -} - -/* Output: -Logger ready. -*/ -// diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/wrlmake.vcxproj b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/wrlmake.vcxproj deleted file mode 100644 index dc892d0409ed6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/wrlmake.vcxproj +++ /dev/null @@ -1,98 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {15D490A3-C4E9-4429-9831-C4478787B808} - Win32Proj - WRLMake - - - - Application - true - v110 - Unicode - - - Application - false - v110 - true - Unicode - - - - - - - - - - - - - true - - - false - - - - Use - Level3 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - - - - - Level3 - Use - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - - - - - - - - - - - - Create - Create - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/wrlmake.vcxproj.filters b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/wrlmake.vcxproj.filters deleted file mode 100644 index 3cd5959203d16..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-make/cpp/wrlmake/wrlmake.vcxproj.filters +++ /dev/null @@ -1,41 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - - - Source Files - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/ilogger.idl b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/ilogger.idl deleted file mode 100644 index f54224cbdf695..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/ilogger.idl +++ /dev/null @@ -1,8 +0,0 @@ -import "ocidl.idl"; - -// Prints text to the console. -[uuid(AFDB9683-F18A-4B85-90D1-B6158DAFA46C)] -interface ILogger : IUnknown -{ - HRESULT Log([in] LPCWSTR text); -} diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/readme.txt b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/readme.txt deleted file mode 100644 index f600b4e563008..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/readme.txt +++ /dev/null @@ -1,40 +0,0 @@ -======================================================================== - CONSOLE APPLICATION : WRLMakeAndInitialize Project Overview -======================================================================== - -AppWizard has created this WRLMakeAndInitialize application for you. - -This file contains a summary of what you will find in each of the files that -make up your WRLMakeAndInitialize application. - - -WRLMakeAndInitialize.vcxproj - This is the main project file for VC++ projects generated using an Application Wizard. - It contains information about the version of Visual C++ that generated the file, and - information about the platforms, configurations, and project features selected with the - Application Wizard. - -WRLMakeAndInitialize.vcxproj.filters - This is the filters file for VC++ projects generated using an Application Wizard. - It contains information about the association between the files in your project - and the filters. This association is used in the IDE to show grouping of files with - similar extensions under a specific node (for e.g. ".cpp" files are associated with the - "Source Files" filter). - -WRLMakeAndInitialize.cpp - This is the main application source file. - -///////////////////////////////////////////////////////////////////////////// -Other standard files: - -StdAfx.h, StdAfx.cpp - These files are used to build a precompiled header (PCH) file - named WRLMakeAndInitialize.pch and a precompiled types file named StdAfx.obj. - -///////////////////////////////////////////////////////////////////////////// -Other notes: - -AppWizard uses "TODO:" comments to indicate parts of the source code you -should add to or customize. - -///////////////////////////////////////////////////////////////////////////// diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/stdafx.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/stdafx.cpp deleted file mode 100644 index 9564794931df2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/stdafx.cpp +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// WRLMakeAndInitialize.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" - -// TODO: reference any additional headers you need in STDAFX.H -// and not in this file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/stdafx.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/stdafx.h deleted file mode 100644 index b005a839def24..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/stdafx.h +++ /dev/null @@ -1,15 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, but -// are changed infrequently -// - -#pragma once - -#include "targetver.h" - -#include -#include - - - -// TODO: reference additional headers your program requires here diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/targetver.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/targetver.h deleted file mode 100644 index 87c0086de751b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -// Including SDKDDKVer.h defines the highest available Windows platform. - -// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and -// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. - -#include diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/wrlmakeandinitialize.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/wrlmakeandinitialize.cpp deleted file mode 100644 index 27618b46fbb04..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/wrlmakeandinitialize.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// WRLMakeAndInitialize.cpp : Defines the entry point for the console application. -// - -#include "stdafx.h" -#include -#include -#include - -#include "ILogger_h.h" - -using namespace Microsoft::WRL; - -// -// Writes logging messages to the console. -class CConsoleWriter : public RuntimeClass, ILogger> -{ -public: - // Initializes the CConsoleWriter object. - // Failure here causes your object to fail construction with the HRESULT you choose. - HRESULT RuntimeClassInitialize(_In_ PCWSTR category) - { - return SHStrDup(category, &m_category); - } - - STDMETHODIMP Log(_In_ PCWSTR text) - { - wprintf_s(L"%s: %s\n", m_category, text); - return S_OK; - } - -private: - PWSTR m_category; - - // Make destroyable only through Release. - ~CConsoleWriter() - { - CoTaskMemFree(m_category); - } -}; -// - -// -int wmain() -{ - ComPtr writer; - HRESULT hr = MakeAndInitialize(&writer, L"INFO"); - if (FAILED(hr)) - { - wprintf_s(L"Object creation failed. Result = 0x%x", hr); - return hr; - } - hr = writer->Log(L"Logger ready."); - return hr; -} - -/* Output: -INFO: Logger ready. -*/ -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/wrlmakeandinitialize.vcxproj b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/wrlmakeandinitialize.vcxproj deleted file mode 100644 index fb7e9b717c85c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/wrlmakeandinitialize.vcxproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {575A7846-2F27-4DC2-B4F7-D2AB329DD1D7} - Win32Proj - WRLMakeAndInitialize - - - - Application - true - v110 - Unicode - - - Application - false - v110 - true - Unicode - - - - - - - - - - - - - true - - - false - - - - Use - Level4 - Disabled - WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - Shlwapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - Level3 - Use - MaxSpeed - true - true - WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) - true - - - Console - true - true - true - Shlwapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - - - - - - - - - - - - Create - Create - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/wrlmakeandinitialize.vcxproj.filters b/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/wrlmakeandinitialize.vcxproj.filters deleted file mode 100644 index 50fce758fd0a5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-logger-makeandinitialize/cpp/wrlmakeandinitialize/wrlmakeandinitialize.vcxproj.filters +++ /dev/null @@ -1,41 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - - - Source Files - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/bufferlock.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/bufferlock.h deleted file mode 100644 index d8eb8efedf8d6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/bufferlock.h +++ /dev/null @@ -1,91 +0,0 @@ -// -#pragma once - -// Locks a video buffer that might or might not support IMF2DBuffer. - -class VideoBufferLock -{ -public: - VideoBufferLock(IMFMediaBuffer *pBuffer) : m_p2DBuffer(nullptr) - { - m_pBuffer = pBuffer; - m_pBuffer->AddRef(); - - // Query for the 2-D buffer interface. OK if this fails. - m_pBuffer->QueryInterface(IID_PPV_ARGS(&m_p2DBuffer)); - } - - ~VideoBufferLock() - { - UnlockBuffer(); - m_pBuffer->Release(); - if (m_p2DBuffer) - { - m_p2DBuffer->Release(); - } - } - - // LockBuffer: - // Locks the buffer. Returns a pointer to scan line 0 and returns the stride. - - // The caller must provide the default stride as an input parameter, in case - // the buffer does not expose IMF2DBuffer. You can calculate the default stride - // from the media type. - - HRESULT LockBuffer( - LONG lDefaultStride, // Minimum stride (with no padding). - DWORD dwHeightInPixels, // Height of the image, in pixels. - BYTE **ppbScanLine0, // Receives a pointer to the start of scan line 0. - LONG *plStride // Receives the actual stride. - ) - { - HRESULT hr = S_OK; - - // Use the 2-D version if available. - if (m_p2DBuffer) - { - hr = m_p2DBuffer->Lock2D(ppbScanLine0, plStride); - } - else - { - // Use non-2D version. - BYTE *pData = nullptr; - - hr = m_pBuffer->Lock(&pData, nullptr, nullptr); - if (SUCCEEDED(hr)) - { - *plStride = lDefaultStride; - if (lDefaultStride < 0) - { - // Bottom-up orientation. Return a pointer to the start of the - // last row *in memory* which is the top row of the image. - *ppbScanLine0 = pData + abs(lDefaultStride) * (dwHeightInPixels - 1); - } - else - { - // Top-down orientation. Return a pointer to the start of the - // buffer. - *ppbScanLine0 = pData; - } - } - } - return hr; - } - - HRESULT UnlockBuffer() - { - if (m_p2DBuffer) - { - return m_p2DBuffer->Unlock2D(); - } - else - { - return m_pBuffer->Unlock(); - } - } - -private: - IMFMediaBuffer *m_pBuffer; - IMF2DBuffer *m_p2DBuffer; -}; -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/dllmain.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/dllmain.cpp deleted file mode 100644 index 8fcd8906a59ad..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/dllmain.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// -#include "pch.h" -#include -#include - -using namespace Microsoft::WRL; - -STDAPI_(BOOL) DllMain(_In_ HINSTANCE hInstance, _In_ DWORD reason, _In_opt_ void *reserved) -{ - if (DLL_PROCESS_ATTACH == reason) - { - DisableThreadLibraryCalls(hInstance); - } - return TRUE; -} - -STDAPI DllGetActivationFactory(_In_ HSTRING activatibleClassId, _COM_Outptr_ IActivationFactory **factory) -{ - return Module::GetModule().GetActivationFactory(activatibleClassId, factory); -} - -STDAPI DllCanUnloadNow() -{ - return Module::GetModule().Terminate() ? S_OK : S_FALSE; -} - -STDAPI DllGetClassObject(_In_ REFCLSID rclsid, _In_ REFIID riid, _COM_Outptr_ void **ppv) -{ - return Module::GetModule().GetClassObject(rclsid, riid, ppv); -} -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.cpp deleted file mode 100644 index cac3d86ceeb75..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.cpp +++ /dev/null @@ -1,1882 +0,0 @@ -// -#include "pch.h" - -#include "GrayscaleTransform_h.h" -#include "BufferLock.h" - -using namespace Microsoft::WRL; - -// -// * IMPORTANT: If you implement your own MFT, create a new GUID for the CLSID. * -// - -// Configuration attributes - -// {7BBBB051-133B-41F5-B6AA-5AFF9B33A2CB} -GUID const MFT_GRAYSCALE_DESTINATION_RECT = {0x7bbbb051, 0x133b, 0x41f5, 0xb6, 0xaa, 0x5a, 0xff, 0x9b, 0x33, 0xa2, 0xcb}; - -// {14782342-93E8-4565-872C-D9A2973D5CBF} -GUID const MFT_GRAYSCALE_SATURATION = {0x14782342, 0x93e8, 0x4565, 0x87, 0x2c, 0xd9, 0xa2, 0x97, 0x3d, 0x5c, 0xbf}; - -// {E0BADE5D-E4B9-4689-9DBA-E2F00D9CED0E} -GUID const MFT_GRAYSCALE_CHROMA_ROTATION = {0xe0bade5d, 0xe4b9, 0x4689, 0x9d, 0xba, 0xe2, 0xf0, 0xd, 0x9c, 0xed, 0xe}; - -template void SafeRelease(T **ppT) -{ - if (*ppT) - { - (*ppT)->Release(); - *ppT = nullptr; - } -} - -// Function pointer for the function that transforms the image. -typedef void (*IMAGE_TRANSFORM_FN)( - const D2D1::Matrix3x2F& mat, // Chroma transform matrix. - const D2D_RECT_U& rcDest, // Destination rectangle for the transformation. - BYTE* pDest, // Destination buffer. - LONG lDestStride, // Destination stride. - const BYTE* pSrc, // Source buffer. - LONG lSrcStride, // Source stride. - DWORD dwWidthInPixels, // Image width in pixels. - DWORD dwHeightInPixels // Image height in pixels. - ); - -// Implements a grayscale video effect. -class CGrayscale - : public RuntimeClass< - RuntimeClassFlags, - ABI::Windows::Media::IMediaExtension, - IMFTransform> -{ - InspectableClass(RuntimeClass_GrayscaleTransform_GrayscaleEffect, BaseTrust) - -public: - CGrayscale(); - - STDMETHOD(RuntimeClassInitialize)(); - - // IMediaExtension - STDMETHODIMP SetProperties(ABI::Windows::Foundation::Collections::IPropertySet *pConfiguration); - - // IMFTransform - STDMETHODIMP GetStreamLimits( - DWORD *pdwInputMinimum, - DWORD *pdwInputMaximum, - DWORD *pdwOutputMinimum, - DWORD *pdwOutputMaximum - ); - - STDMETHODIMP GetStreamCount( - DWORD *pcInputStreams, - DWORD *pcOutputStreams - ); - - STDMETHODIMP GetStreamIDs( - DWORD dwInputIDArraySize, - DWORD *pdwInputIDs, - DWORD dwOutputIDArraySize, - DWORD *pdwOutputIDs - ); - - STDMETHODIMP GetInputStreamInfo( - DWORD dwInputStreamID, - MFT_INPUT_STREAM_INFO * pStreamInfo - ); - - STDMETHODIMP GetOutputStreamInfo( - DWORD dwOutputStreamID, - MFT_OUTPUT_STREAM_INFO * pStreamInfo - ); - - STDMETHODIMP GetAttributes(IMFAttributes** pAttributes); - - STDMETHODIMP GetInputStreamAttributes( - DWORD dwInputStreamID, - IMFAttributes **ppAttributes - ); - - STDMETHODIMP GetOutputStreamAttributes( - DWORD dwOutputStreamID, - IMFAttributes **ppAttributes - ); - - STDMETHODIMP DeleteInputStream(DWORD dwStreamID); - - STDMETHODIMP AddInputStreams( - DWORD cStreams, - DWORD *adwStreamIDs - ); - - STDMETHODIMP GetInputAvailableType( - DWORD dwInputStreamID, - DWORD dwTypeIndex, // 0-based - IMFMediaType **ppType - ); - - STDMETHODIMP GetOutputAvailableType( - DWORD dwOutputStreamID, - DWORD dwTypeIndex, // 0-based - IMFMediaType **ppType - ); - - STDMETHODIMP SetInputType( - DWORD dwInputStreamID, - IMFMediaType *pType, - DWORD dwFlags - ); - - STDMETHODIMP SetOutputType( - DWORD dwOutputStreamID, - IMFMediaType *pType, - DWORD dwFlags - ); - - STDMETHODIMP GetInputCurrentType( - DWORD dwInputStreamID, - IMFMediaType **ppType - ); - - STDMETHODIMP GetOutputCurrentType( - DWORD dwOutputStreamID, - IMFMediaType **ppType - ); - - STDMETHODIMP GetInputStatus( - DWORD dwInputStreamID, - DWORD *pdwFlags - ); - - STDMETHODIMP GetOutputStatus(DWORD *pdwFlags); - - STDMETHODIMP SetOutputBounds( - LONGLONG hnsLowerBound, - LONGLONG hnsUpperBound - ); - - STDMETHODIMP ProcessEvent( - DWORD dwInputStreamID, - IMFMediaEvent *pEvent - ); - - STDMETHODIMP ProcessMessage( - MFT_MESSAGE_TYPE eMessage, - ULONG_PTR ulParam - ); - - STDMETHODIMP ProcessInput( - DWORD dwInputStreamID, - IMFSample *pSample, - DWORD dwFlags - ); - - STDMETHODIMP ProcessOutput( - DWORD dwFlags, - DWORD cOutputBufferCount, - MFT_OUTPUT_DATA_BUFFER *pOutputSamples, // one per stream - DWORD *pdwStatus - ); - -private: - ~CGrayscale(); - - // HasPendingOutput: Returns TRUE if the MFT is holding an input sample. - BOOL HasPendingOutput() const { return m_pSample != nullptr; } - - // IsValidInputStream: Returns TRUE if dwInputStreamID is a valid input stream identifier. - BOOL IsValidInputStream(DWORD dwInputStreamID) const - { - return dwInputStreamID == 0; - } - - // IsValidOutputStream: Returns TRUE if dwOutputStreamID is a valid output stream identifier. - BOOL IsValidOutputStream(DWORD dwOutputStreamID) const - { - return dwOutputStreamID == 0; - } - - HRESULT OnGetPartialType(DWORD dwTypeIndex, IMFMediaType **ppmt); - HRESULT OnCheckInputType(IMFMediaType *pmt); - HRESULT OnCheckOutputType(IMFMediaType *pmt); - HRESULT OnCheckMediaType(IMFMediaType *pmt); - void OnSetInputType(IMFMediaType *pmt); - void OnSetOutputType(IMFMediaType *pmt); - HRESULT BeginStreaming(); - HRESULT EndStreaming(); - HRESULT OnProcessOutput(IMFMediaBuffer *pIn, IMFMediaBuffer *pOut); - HRESULT OnFlush(); - HRESULT UpdateFormatInfo(); - - CRITICAL_SECTION m_critSec; - - // Transformation parameters - D2D1::Matrix3x2F m_transform; // Chroma transform matrix. - D2D_RECT_U m_rcDest; // Destination rectangle for the effect. - - // Streaming - bool m_bStreamingInitialized; - IMFSample *m_pSample; // Input sample. - IMFMediaType *m_pInputType; // Input media type. - IMFMediaType *m_pOutputType; // Output media type. - - // Fomat information - UINT32 m_imageWidthInPixels; - UINT32 m_imageHeightInPixels; - DWORD m_cbImageSize; // Image size, in bytes. - - IMFAttributes *m_pAttributes; - - // Image transform function. (Changes based on the media type.) - IMAGE_TRANSFORM_FN m_pTransformFn; -}; -ActivatableClass(CGrayscale); - -#pragma comment(lib, "d2d1") - -/* - -This sample implements a video effect as a Media Foundation transform (MFT). - -The video effect manipulates chroma values in a YUV image. In the default setting, -the entire image is converted to grayscale. Optionally, the application may set any -of the following attributes: - -MFT_GRAYSCALE_DESTINATION_RECT (type = blob, UINT32[4] array) - - Sets the destination rectangle for the effect. Pixels outside the destination - rectangle are not altered. - -MFT_GRAYSCALE_SATURATION (type = double) - - Sets the saturation level. The nominal range is [0...1]. Values beyond 1.0f - result in supersaturated colors. Values below 0.0f create inverted colors. - -MFT_GRAYSCALE_CHROMA_ROTATION (type = double) - - Rotates the chroma values of each pixel. The attribue value is the angle of - rotation in degrees. The result is a shift in hue. - -The effect is implemented by treating the chroma value of each pixel as a vector [u,v], -and applying a transformation matrix to the vector. The saturation parameter is applied -as a scaling transform. - - -NOTES ON THE MFT IMPLEMENTATION - -1. The MFT has fixed streams: One input stream and one output stream. - -2. The MFT supports the following formats: UYVY, YUY2, NV12. - -3. If the MFT is holding an input sample, SetInputType and SetOutputType both fail. - -4. The input and output types must be identical. - -5. If both types are set, no type can be set until the current type is cleared. - -6. Preferred input types: - - (a) If the output type is set, that's the preferred type. - (b) Otherwise, the preferred types are partial types, constructed from the - list of supported subtypes. - -7. Preferred output types: As above. - -8. Streaming: - - The private BeingStreaming() method is called in response to the - MFT_MESSAGE_NOTIFY_BEGIN_STREAMING message. - - If the client does not send MFT_MESSAGE_NOTIFY_BEGIN_STREAMING, the MFT calls - BeginStreaming inside the first call to ProcessInput or ProcessOutput. - - This is a good approach for allocating resources that your MFT requires for - streaming. - -9. The configuration attributes are applied in the BeginStreaming method. If the - client changes the attributes during streaming, the change is ignored until - streaming is stopped (either by changing the media types or by sending the - MFT_MESSAGE_NOTIFY_END_STREAMING message) and then restarted. - -*/ - - -// Video FOURCC codes. -const DWORD FOURCC_YUY2 = '2YUY'; -const DWORD FOURCC_UYVY = 'YVYU'; -const DWORD FOURCC_NV12 = '21VN'; - -// Static array of media types (preferred and accepted). -const GUID g_MediaSubtypes[] = -{ - MFVideoFormat_NV12, - MFVideoFormat_YUY2, - MFVideoFormat_UYVY -}; - -HRESULT GetImageSize(DWORD fcc, UINT32 width, UINT32 height, DWORD* pcbImage); -HRESULT GetDefaultStride(IMFMediaType *pType, LONG *plStride); -bool ValidateRect(const RECT& rc); - -template -inline T clamp(const T& val, const T& minVal, const T& maxVal) -{ - return (val < minVal ? minVal : (val > maxVal ? maxVal : val)); -} - - -// TransformChroma: -// Apply the transforms to calculate the output chroma values. - -void TransformChroma(const D2D1::Matrix3x2F& mat, BYTE *pu, BYTE *pv) -{ - // Normalize the chroma values to [-112, 112] range - - D2D1_POINT_2F pt = { static_cast(*pu) - 128, static_cast(*pv) - 128 }; - - pt = mat.TransformPoint(pt); - - // Clamp to valid range. - clamp(pt.x, -112.0f, 112.0f); - clamp(pt.y, -112.0f, 112.0f); - - // Map back to [16...240] range. - *pu = static_cast(pt.x + 128.0f); - *pv = static_cast(pt.y + 128.0f); -} - -//------------------------------------------------------------------- -// Functions to convert a YUV images to grayscale. -// -// In all cases, the same transformation is applied to the 8-bit -// chroma values, but the pixel layout in memory differs. -// -// The image conversion functions take the following parameters: -// -// mat Transfomation matrix for chroma values. -// rcDest Destination rectangle. -// pDest Pointer to the destination buffer. -// lDestStride Stride of the destination buffer, in bytes. -// pSrc Pointer to the source buffer. -// lSrcStride Stride of the source buffer, in bytes. -// dwWidthInPixels Frame width in pixels. -// dwHeightInPixels Frame height, in pixels. -//------------------------------------------------------------------- - -// Convert UYVY image. - -void TransformImage_UYVY( - const D2D1::Matrix3x2F& mat, - const D2D_RECT_U& rcDest, - _Inout_updates_(_Inexpressible_(lDestStride * dwHeightInPixels)) BYTE *pDest, - _In_ LONG lDestStride, - _In_reads_(_Inexpressible_(lSrcStride * dwHeightInPixels)) const BYTE* pSrc, - _In_ LONG lSrcStride, - _In_ DWORD dwWidthInPixels, - _In_ DWORD dwHeightInPixels) -{ - DWORD y = 0; - const DWORD y0 = min(rcDest.bottom, dwHeightInPixels); - - // Lines above the destination rectangle. - for ( ; y < rcDest.top; y++) - { - memcpy(pDest, pSrc, dwWidthInPixels * 2); - pSrc += lSrcStride; - pDest += lDestStride; - } - - // Lines within the destination rectangle. - for ( ; y < y0; y++) - { - WORD *pSrc_Pixel = (WORD*)pSrc; - WORD *pDest_Pixel = (WORD*)pDest; - - for (DWORD x = 0; (x + 1) < dwWidthInPixels; x += 2) - { - // Byte order is U0 Y0 V0 Y1 - // Each WORD is a byte pair (U/V, Y) - // Windows is little-endian so the order appears reversed. - - if (x >= rcDest.left && x < rcDest.right) - { - BYTE u = pSrc_Pixel[x] & 0x00FF; - BYTE v = pSrc_Pixel[x+1] & 0x00FF; - - TransformChroma(mat, &u, &v); - - pDest_Pixel[x] = (pSrc_Pixel[x] & 0xFF00) | u; - pDest_Pixel[x+1] = (pSrc_Pixel[x+1] & 0xFF00) | v; - } - else - { -#pragma warning(push) -#pragma warning(disable: 6385) -#pragma warning(disable: 6386) - pDest_Pixel[x] = pSrc_Pixel[x]; - pDest_Pixel[x+1] = pSrc_Pixel[x+1]; -#pragma warning(pop) - } - } - - pDest += lDestStride; - pSrc += lSrcStride; - } - - // Lines below the destination rectangle. - for ( ; y < dwHeightInPixels; y++) - { - memcpy(pDest, pSrc, dwWidthInPixels * 2); - pSrc += lSrcStride; - pDest += lDestStride; - } -} - - -// Convert YUY2 image. - -void TransformImage_YUY2( - const D2D1::Matrix3x2F& mat, - const D2D_RECT_U& rcDest, - _Inout_updates_(_Inexpressible_(lDestStride * dwHeightInPixels)) BYTE *pDest, - _In_ LONG lDestStride, - _In_reads_(_Inexpressible_(lSrcStride * dwHeightInPixels)) const BYTE* pSrc, - _In_ LONG lSrcStride, - _In_ DWORD dwWidthInPixels, - _In_ DWORD dwHeightInPixels) -{ - DWORD y = 0; - const DWORD y0 = min(rcDest.bottom, dwHeightInPixels); - - // Lines above the destination rectangle. - for ( ; y < rcDest.top; y++) - { - memcpy(pDest, pSrc, dwWidthInPixels * 2); - pSrc += lSrcStride; - pDest += lDestStride; - } - - // Lines within the destination rectangle. - for ( ; y < y0; y++) - { - WORD *pSrc_Pixel = (WORD*)pSrc; - WORD *pDest_Pixel = (WORD*)pDest; - - for (DWORD x = 0; (x + 1) < dwWidthInPixels; x += 2) - { - // Byte order is Y0 U0 Y1 V0 - // Each WORD is a byte pair (Y, U/V) - // Windows is little-endian so the order appears reversed. - - if (x >= rcDest.left && x < rcDest.right) - { - BYTE u = pSrc_Pixel[x] >> 8; - BYTE v = pSrc_Pixel[x+1] >> 8; - - TransformChroma(mat, &u, &v); - - pDest_Pixel[x] = (pSrc_Pixel[x] & 0x00FF) | (u<<8); - pDest_Pixel[x+1] = (pSrc_Pixel[x+1] & 0x00FF) | (v<<8); - } - else - { -#pragma warning(push) -#pragma warning(disable: 6385) -#pragma warning(disable: 6386) - pDest_Pixel[x] = pSrc_Pixel[x]; - pDest_Pixel[x+1] = pSrc_Pixel[x+1]; -#pragma warning(pop) - } - } - pDest += lDestStride; - pSrc += lSrcStride; - } - - // Lines below the destination rectangle. - for ( ; y < dwHeightInPixels; y++) - { - memcpy(pDest, pSrc, dwWidthInPixels * 2); - pSrc += lSrcStride; - pDest += lDestStride; - } -} - -// Convert NV12 image - -void TransformImage_NV12( - const D2D1::Matrix3x2F& mat, - const D2D_RECT_U& rcDest, - _Inout_updates_(_Inexpressible_(2 * lDestStride * dwHeightInPixels)) BYTE *pDest, - _In_ LONG lDestStride, - _In_reads_(_Inexpressible_(2 * lSrcStride * dwHeightInPixels)) const BYTE* pSrc, - _In_ LONG lSrcStride, - _In_ DWORD dwWidthInPixels, - _In_ DWORD dwHeightInPixels) -{ - // NV12 is planar: Y plane, followed by packed U-V plane. - - // Y plane - for (DWORD y = 0; y < dwHeightInPixels; y++) - { - CopyMemory(pDest, pSrc, dwWidthInPixels); - pDest += lDestStride; - pSrc += lSrcStride; - } - - // U-V plane - - // NOTE: The U-V plane has 1/2 the number of lines as the Y plane. - - // Lines above the destination rectangle. - DWORD y = 0; - const DWORD y0 = min(rcDest.bottom, dwHeightInPixels); - - for ( ; y < rcDest.top/2; y++) - { - memcpy(pDest, pSrc, dwWidthInPixels); - pSrc += lSrcStride; - pDest += lDestStride; - } - - // Lines within the destination rectangle. - for ( ; y < y0/2; y++) - { - for (DWORD x = 0; (x + 1) < dwWidthInPixels; x += 2) - { - if (x >= rcDest.left && x < rcDest.right) - { - BYTE u = pSrc[x]; - BYTE v = pSrc[x+1]; - - TransformChroma(mat, &u, &v); - - pDest[x] = u; - pDest[x+1] = v; - } - else - { - pDest[x] = pSrc[x]; - pDest[x+1] = pSrc[x+1]; - } - } - pDest += lDestStride; - pSrc += lSrcStride; - } - - // Lines below the destination rectangle. - for ( ; y < dwHeightInPixels/2; y++) - { - memcpy(pDest, pSrc, dwWidthInPixels); - pSrc += lSrcStride; - pDest += lDestStride; - } -} - -CGrayscale::CGrayscale() : - m_pSample(nullptr), m_pInputType(nullptr), m_pOutputType(nullptr), m_pTransformFn(nullptr), - m_imageWidthInPixels(0), m_imageHeightInPixels(0), m_cbImageSize(0), - m_transform(D2D1::Matrix3x2F::Identity()), m_rcDest(D2D1::RectU()), m_bStreamingInitialized(false), - m_pAttributes(nullptr) -{ - InitializeCriticalSectionEx(&m_critSec, 3000, 0); -} - -CGrayscale::~CGrayscale() -{ - SafeRelease(&m_pInputType); - SafeRelease(&m_pOutputType); - SafeRelease(&m_pSample); - SafeRelease(&m_pAttributes); - DeleteCriticalSection(&m_critSec); -} - -// Initialize the instance. -STDMETHODIMP CGrayscale::RuntimeClassInitialize() -{ - // Create the attribute store. - return MFCreateAttributes(&m_pAttributes, 3); -} - -// IMediaExtension methods - -//------------------------------------------------------------------- -// SetProperties -// Sets the configuration of the effect -//------------------------------------------------------------------- -HRESULT CGrayscale::SetProperties(ABI::Windows::Foundation::Collections::IPropertySet *pConfiguration) -{ - return S_OK; -} - -// IMFTransform methods. Refer to the Media Foundation SDK documentation for details. - -//------------------------------------------------------------------- -// GetStreamLimits -// Returns the minimum and maximum number of streams. -//------------------------------------------------------------------- - -HRESULT CGrayscale::GetStreamLimits( - DWORD *pdwInputMinimum, - DWORD *pdwInputMaximum, - DWORD *pdwOutputMinimum, - DWORD *pdwOutputMaximum -) -{ - // This MFT has a fixed number of streams. - *pdwInputMinimum = 1; - *pdwInputMaximum = 1; - *pdwOutputMinimum = 1; - *pdwOutputMaximum = 1; - return S_OK; -} - -// Returns the actual number of streams. - -HRESULT CGrayscale::GetStreamCount( - DWORD *pcInputStreams, - DWORD *pcOutputStreams -) -{ - // This MFT has a fixed number of streams. - *pcInputStreams = 1; - *pcOutputStreams = 1; - return S_OK; -} - - - -//------------------------------------------------------------------- -// GetStreamIDs -// Returns stream IDs for the input and output streams. -//------------------------------------------------------------------- - -HRESULT CGrayscale::GetStreamIDs( - DWORD dwInputIDArraySize, - DWORD *pdwInputIDs, - DWORD dwOutputIDArraySize, - DWORD *pdwOutputIDs -) -{ - // It is not required to implement this method if the MFT has a fixed number of - // streams AND the stream IDs are numbered sequentially from zero (that is, the - // stream IDs match the stream indexes). - - // In that case, it is OK to return E_NOTIMPL. - return E_NOTIMPL; -} - - -//------------------------------------------------------------------- -// GetInputStreamInfo -// Returns information about an input stream. -//------------------------------------------------------------------- - -HRESULT CGrayscale::GetInputStreamInfo( - DWORD dwInputStreamID, - MFT_INPUT_STREAM_INFO * pStreamInfo -) -{ - EnterCriticalSection(&m_critSec); - - if (!IsValidInputStream(dwInputStreamID)) - { - LeaveCriticalSection(&m_critSec); - return MF_E_INVALIDSTREAMNUMBER; - } - - // NOTE: This method should succeed even when there is no media type on the - // stream. If there is no media type, we only need to fill in the dwFlags - // member of MFT_INPUT_STREAM_INFO. The other members depend on having a - // a valid media type. - - pStreamInfo->hnsMaxLatency = 0; - pStreamInfo->dwFlags = MFT_INPUT_STREAM_WHOLE_SAMPLES | MFT_INPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER; - - if (m_pInputType == nullptr) - { - pStreamInfo->cbSize = 0; - } - else - { - pStreamInfo->cbSize = m_cbImageSize; - } - - pStreamInfo->cbMaxLookahead = 0; - pStreamInfo->cbAlignment = 0; - - LeaveCriticalSection(&m_critSec); - return S_OK; -} - -//------------------------------------------------------------------- -// GetOutputStreamInfo -// Returns information about an output stream. -//------------------------------------------------------------------- - -HRESULT CGrayscale::GetOutputStreamInfo( - DWORD dwOutputStreamID, - MFT_OUTPUT_STREAM_INFO * pStreamInfo -) -{ - EnterCriticalSection(&m_critSec); - - if (!IsValidOutputStream(dwOutputStreamID)) - { - LeaveCriticalSection(&m_critSec); - return MF_E_INVALIDSTREAMNUMBER; - } - - // NOTE: This method should succeed even when there is no media type on the - // stream. If there is no media type, we only need to fill in the dwFlags - // member of MFT_OUTPUT_STREAM_INFO. The other members depend on having a - // a valid media type. - - pStreamInfo->dwFlags = - MFT_OUTPUT_STREAM_WHOLE_SAMPLES | - MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER | - MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE ; - - if (m_pOutputType == nullptr) - { - pStreamInfo->cbSize = 0; - } - else - { - pStreamInfo->cbSize = m_cbImageSize; - } - - pStreamInfo->cbAlignment = 0; - - LeaveCriticalSection(&m_critSec); - return S_OK; -} - -// Returns the attributes for the MFT. -HRESULT CGrayscale::GetAttributes(IMFAttributes** ppAttributes) -{ - EnterCriticalSection(&m_critSec); - - *ppAttributes = m_pAttributes; - (*ppAttributes)->AddRef(); - - LeaveCriticalSection(&m_critSec); - return S_OK; -} - -// Returns stream-level attributes for an input stream. - -HRESULT CGrayscale::GetInputStreamAttributes( - DWORD dwInputStreamID, - IMFAttributes **ppAttributes -) -{ - // This MFT does not support any stream-level attributes, so the method is not implemented. - return E_NOTIMPL; -} - - -//------------------------------------------------------------------- -// GetOutputStreamAttributes -// Returns stream-level attributes for an output stream. -//------------------------------------------------------------------- - -HRESULT CGrayscale::GetOutputStreamAttributes( - DWORD dwOutputStreamID, - IMFAttributes **ppAttributes -) -{ - // This MFT does not support any stream-level attributes, so the method is not implemented. - return E_NOTIMPL; -} - - -//------------------------------------------------------------------- -// DeleteInputStream -//------------------------------------------------------------------- - -HRESULT CGrayscale::DeleteInputStream(DWORD dwStreamID) -{ - // This MFT has a fixed number of input streams, so the method is not supported. - return E_NOTIMPL; -} - - -//------------------------------------------------------------------- -// AddInputStreams -//------------------------------------------------------------------- - -HRESULT CGrayscale::AddInputStreams( - DWORD cStreams, - DWORD *adwStreamIDs -) -{ - // This MFT has a fixed number of output streams, so the method is not supported. - return E_NOTIMPL; -} - - -//------------------------------------------------------------------- -// GetInputAvailableType -// Returns a preferred input type. -//------------------------------------------------------------------- - -HRESULT CGrayscale::GetInputAvailableType( - DWORD dwInputStreamID, - DWORD dwTypeIndex, // 0-based - IMFMediaType **ppType -) -{ - EnterCriticalSection(&m_critSec); - - if (!IsValidInputStream(dwInputStreamID)) - { - LeaveCriticalSection(&m_critSec); - return MF_E_INVALIDSTREAMNUMBER; - } - - HRESULT hr = S_OK; - - // If the output type is set, return that type as our preferred input type. - if (m_pOutputType == nullptr) - { - // The output type is not set. Create a partial media type. - hr = OnGetPartialType(dwTypeIndex, ppType); - } - else if (dwTypeIndex > 0) - { - hr = MF_E_NO_MORE_TYPES; - } - else - { - *ppType = m_pOutputType; - (*ppType)->AddRef(); - } - - LeaveCriticalSection(&m_critSec); - return hr; -} - -// Returns a preferred output type. - -HRESULT CGrayscale::GetOutputAvailableType( - DWORD dwOutputStreamID, - DWORD dwTypeIndex, // 0-based - IMFMediaType **ppType -) -{ - EnterCriticalSection(&m_critSec); - - if (!IsValidOutputStream(dwOutputStreamID)) - { - LeaveCriticalSection(&m_critSec); - return MF_E_INVALIDSTREAMNUMBER; - } - - HRESULT hr = S_OK; - - if (m_pInputType == nullptr) - { - // The input type is not set. Create a partial media type. - hr = OnGetPartialType(dwTypeIndex, ppType); - } - else if (dwTypeIndex > 0) - { - hr = MF_E_NO_MORE_TYPES; - } - else - { - *ppType = m_pInputType; - (*ppType)->AddRef(); - } - - LeaveCriticalSection(&m_critSec); - return hr; -} - -HRESULT CGrayscale::SetInputType( - DWORD dwInputStreamID, - IMFMediaType *pType, // Can be nullptr to clear the input type. - DWORD dwFlags -) -{ - // Validate flags. - if (dwFlags & ~MFT_SET_TYPE_TEST_ONLY) - { - return E_INVALIDARG; - } - - EnterCriticalSection(&m_critSec); - - if (!IsValidInputStream(dwInputStreamID)) - { - LeaveCriticalSection(&m_critSec); - return MF_E_INVALIDSTREAMNUMBER; - } - - HRESULT hr = S_OK; - - // Does the caller want us to set the type, or just test it? - BOOL bReallySet = ((dwFlags & MFT_SET_TYPE_TEST_ONLY) == 0); - - // If we have an input sample, the client cannot change the type now. - if (HasPendingOutput()) - { - hr = MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING; - goto done; - } - - // Validate the type, if non-nullptr. - if (pType) - { - hr = OnCheckInputType(pType); - if (FAILED(hr)) - { - goto done; - } - } - - // The type is OK. Set the type, unless the caller was just testing. - if (bReallySet) - { - OnSetInputType(pType); - - // When the type changes, end streaming. - hr = EndStreaming(); - } - -done: - LeaveCriticalSection(&m_critSec); - return hr; -} - -HRESULT CGrayscale::SetOutputType( - DWORD dwOutputStreamID, - IMFMediaType *pType, // Can be nullptr to clear the output type. - DWORD dwFlags -) -{ - // Validate flags. - if (dwFlags & ~MFT_SET_TYPE_TEST_ONLY) - { - return E_INVALIDARG; - } - - EnterCriticalSection(&m_critSec); - - if (!IsValidOutputStream(dwOutputStreamID)) - { - LeaveCriticalSection(&m_critSec); - return MF_E_INVALIDSTREAMNUMBER; - } - - HRESULT hr = S_OK; - - // Does the caller want us to set the type, or just test it? - BOOL bReallySet = ((dwFlags & MFT_SET_TYPE_TEST_ONLY) == 0); - - // If we have an input sample, the client cannot change the type now. - if (HasPendingOutput()) - { - hr = MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING; - goto done; - } - - // Validate the type, if non-nullptr. - if (pType) - { - hr = OnCheckOutputType(pType); - if (FAILED(hr)) - { - goto done; - } - } - - // The type is OK. Set the type, unless the caller was just testing. - if (bReallySet) - { - OnSetOutputType(pType); - - // When the type changes, end streaming. - hr = EndStreaming(); - } - -done: - LeaveCriticalSection(&m_critSec); - return hr; -} - -// Returns the current input type. - -HRESULT CGrayscale::GetInputCurrentType( - DWORD dwInputStreamID, - IMFMediaType **ppType -) -{ - HRESULT hr = S_OK; - - EnterCriticalSection(&m_critSec); - - if (!IsValidInputStream(dwInputStreamID)) - { - hr = MF_E_INVALIDSTREAMNUMBER; - } - else if (!m_pInputType) - { - hr = MF_E_TRANSFORM_TYPE_NOT_SET; - } - else - { - *ppType = m_pInputType; - (*ppType)->AddRef(); - } - LeaveCriticalSection(&m_critSec); - return hr; -} - -// Returns the current output type. - -HRESULT CGrayscale::GetOutputCurrentType( - DWORD dwOutputStreamID, - IMFMediaType **ppType -) -{ - HRESULT hr = S_OK; - - EnterCriticalSection(&m_critSec); - - if (!IsValidOutputStream(dwOutputStreamID)) - { - hr = MF_E_INVALIDSTREAMNUMBER; - } - else if (!m_pOutputType) - { - hr = MF_E_TRANSFORM_TYPE_NOT_SET; - } - else - { - *ppType = m_pOutputType; - (*ppType)->AddRef(); - } - - LeaveCriticalSection(&m_critSec); - return hr; -} - -// Query if the MFT is accepting more input. - -HRESULT CGrayscale::GetInputStatus( - DWORD dwInputStreamID, - DWORD *pdwFlags -) -{ - EnterCriticalSection(&m_critSec); - - if (!IsValidInputStream(dwInputStreamID)) - { - LeaveCriticalSection(&m_critSec); - return MF_E_INVALIDSTREAMNUMBER; - } - - // If an input sample is already queued, do not accept another sample until the - // client calls ProcessOutput or Flush. - - // NOTE: It is possible for an MFT to accept more than one input sample. For - // example, this might be required in a video decoder if the frames do not - // arrive in temporal order. In the case, the decoder must hold a queue of - // samples. For the video effect, each sample is transformed independently, so - // there is no reason to queue multiple input samples. - - if (m_pSample == nullptr) - { - *pdwFlags = MFT_INPUT_STATUS_ACCEPT_DATA; - } - else - { - *pdwFlags = 0; - } - - LeaveCriticalSection(&m_critSec); - return S_OK; -} - -// Query if the MFT can produce output. - -HRESULT CGrayscale::GetOutputStatus(DWORD *pdwFlags) -{ - EnterCriticalSection(&m_critSec); - - // The MFT can produce an output sample if (and only if) there an input sample. - if (m_pSample != nullptr) - { - *pdwFlags = MFT_OUTPUT_STATUS_SAMPLE_READY; - } - else - { - *pdwFlags = 0; - } - - LeaveCriticalSection(&m_critSec); - return S_OK; -} - - -//------------------------------------------------------------------- -// SetOutputBounds -// Sets the range of time stamps that the MFT will output. -//------------------------------------------------------------------- - -HRESULT CGrayscale::SetOutputBounds( - LONGLONG hnsLowerBound, - LONGLONG hnsUpperBound -) -{ - // Implementation of this method is optional. - return E_NOTIMPL; -} - - -//------------------------------------------------------------------- -// ProcessEvent -// Sends an event to an input stream. -//------------------------------------------------------------------- - -HRESULT CGrayscale::ProcessEvent( - DWORD dwInputStreamID, - IMFMediaEvent *pEvent -) -{ - // This MFT does not handle any stream events, so the method can - // return E_NOTIMPL. This tells the pipeline that it can stop - // sending any more events to this MFT. - return E_NOTIMPL; -} - - -//------------------------------------------------------------------- -// ProcessMessage -//------------------------------------------------------------------- - -HRESULT CGrayscale::ProcessMessage( - MFT_MESSAGE_TYPE eMessage, - ULONG_PTR ulParam -) -{ - EnterCriticalSection(&m_critSec); - - HRESULT hr = S_OK; - - switch (eMessage) - { - case MFT_MESSAGE_COMMAND_FLUSH: - // Flush the MFT. - hr = OnFlush(); - break; - - case MFT_MESSAGE_COMMAND_DRAIN: - // Drain: Tells the MFT to reject further input until all pending samples are - // processed. That is our default behavior already, so there is nothing to do. - // - // For a decoder that accepts a queue of samples, the MFT might need to drain - // the queue in response to this command. - break; - - case MFT_MESSAGE_SET_D3D_MANAGER: - // Sets a pointer to the IDirect3DDeviceManager9 interface. - - // The pipeline should never send this message unless the MFT sets the MF_SA_D3D_AWARE - // attribute set to TRUE. Because this MFT does not set MF_SA_D3D_AWARE, it is an error - // to send the MFT_MESSAGE_SET_D3D_MANAGER message to the MFT. Return an error code in - // this case. - - // NOTE: If this MFT were D3D-enabled, it would cache the IDirect3DDeviceManager9 - // pointer for use during streaming. - - hr = E_NOTIMPL; - break; - - case MFT_MESSAGE_NOTIFY_BEGIN_STREAMING: - hr = BeginStreaming(); - break; - - case MFT_MESSAGE_NOTIFY_END_STREAMING: - hr = EndStreaming(); - break; - - // The next two messages do not require any action from this MFT. - - case MFT_MESSAGE_NOTIFY_END_OF_STREAM: - break; - - case MFT_MESSAGE_NOTIFY_START_OF_STREAM: - break; - } - - LeaveCriticalSection(&m_critSec); - return hr; -} - -// Process an input sample. - -HRESULT CGrayscale::ProcessInput( - DWORD dwInputStreamID, - IMFSample *pSample, - DWORD dwFlags -) -{ - if (dwFlags != 0) - { - return E_INVALIDARG; // dwFlags is reserved and must be zero. - } - - HRESULT hr = S_OK; - - EnterCriticalSection(&m_critSec); - - // Validate the input stream number. - if (!IsValidInputStream(dwInputStreamID)) - { - hr = MF_E_INVALIDSTREAMNUMBER; - goto done; - } - - // Check for valid media types. - // The client must set input and output types before calling ProcessInput. - if (!m_pInputType || !m_pOutputType) - { - hr = MF_E_NOTACCEPTING; - goto done; - } - - // Check if an input sample is already queued. - if (m_pSample != nullptr) - { - hr = MF_E_NOTACCEPTING; // We already have an input sample. - goto done; - } - - // Initialize streaming. - hr = BeginStreaming(); - if (FAILED(hr)) - { - goto done; - } - - // Cache the sample. We do the actual work in ProcessOutput. - m_pSample = pSample; - pSample->AddRef(); // Hold a reference count on the sample. - -done: - LeaveCriticalSection(&m_critSec); - return hr; -} - - -//------------------------------------------------------------------- -// ProcessOutput -// Process an output sample. -//------------------------------------------------------------------- - -HRESULT CGrayscale::ProcessOutput( - DWORD dwFlags, - DWORD cOutputBufferCount, - MFT_OUTPUT_DATA_BUFFER *pOutputSamples, // one per stream - DWORD *pdwStatus -) -{ - // Check input parameters... - - // This MFT does not accept any flags for the dwFlags parameter. - - // The only defined flag is MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER. This flag - // applies only when the MFT marks an output stream as lazy or optional. But this - // MFT has no lazy or optional streams, so the flag is not valid. - - if (dwFlags != 0) - { - return E_INVALIDARG; - } - - // There must be exactly one output buffer. - if (cOutputBufferCount != 1) - { - return E_INVALIDARG; - } - - // It must contain a sample. - if (pOutputSamples[0].pSample == nullptr) - { - return E_INVALIDARG; - } - - HRESULT hr = S_OK; - - IMFMediaBuffer *pInput = nullptr; - IMFMediaBuffer *pOutput = nullptr; - - EnterCriticalSection(&m_critSec); - - // There must be an input sample available for processing. - if (m_pSample == nullptr) - { - hr = MF_E_TRANSFORM_NEED_MORE_INPUT; - goto done; - } - - // Initialize streaming. - - hr = BeginStreaming(); - if (FAILED(hr)) - { - goto done; - } - - // Get the input buffer. - hr = m_pSample->ConvertToContiguousBuffer(&pInput); - if (FAILED(hr)) - { - goto done; - } - - // Get the output buffer. - hr = pOutputSamples[0].pSample->ConvertToContiguousBuffer(&pOutput); - if (FAILED(hr)) - { - goto done; - } - - hr = OnProcessOutput(pInput, pOutput); - if (FAILED(hr)) - { - goto done; - } - - // Set status flags. - pOutputSamples[0].dwStatus = 0; - *pdwStatus = 0; - - - // Copy the duration and time stamp from the input sample, if present. - - LONGLONG hnsDuration = 0; - LONGLONG hnsTime = 0; - - if (SUCCEEDED(m_pSample->GetSampleDuration(&hnsDuration))) - { - hr = pOutputSamples[0].pSample->SetSampleDuration(hnsDuration); - if (FAILED(hr)) - { - goto done; - } - } - - if (SUCCEEDED(m_pSample->GetSampleTime(&hnsTime))) - { - hr = pOutputSamples[0].pSample->SetSampleTime(hnsTime); - } - -done: - SafeRelease(&m_pSample); // Release our input sample. - SafeRelease(&pInput); - SafeRelease(&pOutput); - LeaveCriticalSection(&m_critSec); - return hr; -} - -// PRIVATE METHODS - -// All methods that follow are private to this MFT and are not part of the IMFTransform interface. - -// Create a partial media type from our list. -// -// dwTypeIndex: Index into the list of peferred media types. -// ppmt: Receives a pointer to the media type. - -HRESULT CGrayscale::OnGetPartialType(DWORD dwTypeIndex, IMFMediaType **ppmt) -{ - if (dwTypeIndex >= ARRAYSIZE(g_MediaSubtypes)) - { - return MF_E_NO_MORE_TYPES; - } - - IMFMediaType *pmt = nullptr; - - HRESULT hr = MFCreateMediaType(&pmt); - if (FAILED(hr)) - { - goto done; - } - - hr = pmt->SetGUID(MF_MT_MAJOR_TYPE, MFMediaType_Video); - if (FAILED(hr)) - { - goto done; - } - - hr = pmt->SetGUID(MF_MT_SUBTYPE, g_MediaSubtypes[dwTypeIndex]); - if (FAILED(hr)) - { - goto done; - } - - *ppmt = pmt; - (*ppmt)->AddRef(); - -done: - SafeRelease(&pmt); - return hr; -} - -// Validate an input media type. - -HRESULT CGrayscale::OnCheckInputType(IMFMediaType *pmt) -{ - assert(pmt != nullptr); - - HRESULT hr = S_OK; - - // If the output type is set, see if they match. - if (m_pOutputType != nullptr) - { - DWORD flags = 0; - hr = pmt->IsEqual(m_pOutputType, &flags); - - // IsEqual can return S_FALSE. Treat this as failure. - if (hr != S_OK) - { - hr = MF_E_INVALIDMEDIATYPE; - } - } - else - { - // Output type is not set. Just check this type. - hr = OnCheckMediaType(pmt); - } - return hr; -} - -// Validate an output media type. - -HRESULT CGrayscale::OnCheckOutputType(IMFMediaType *pmt) -{ - assert(pmt != nullptr); - - HRESULT hr = S_OK; - - // If the input type is set, see if they match. - if (m_pInputType != nullptr) - { - DWORD flags = 0; - hr = pmt->IsEqual(m_pInputType, &flags); - - // IsEqual can return S_FALSE. Treat this as failure. - if (hr != S_OK) - { - hr = MF_E_INVALIDMEDIATYPE; - } - - } - else - { - // Input type is not set. Just check this type. - hr = OnCheckMediaType(pmt); - } - return hr; -} - - -// Validate a media type (input or output) - -HRESULT CGrayscale::OnCheckMediaType(IMFMediaType *pmt) -{ - BOOL bFoundMatchingSubtype = FALSE; - - // Major type must be video. - GUID major_type; - HRESULT hr = pmt->GetGUID(MF_MT_MAJOR_TYPE, &major_type); - if (FAILED(hr)) - { - goto done; - } - - if (major_type != MFMediaType_Video) - { - hr = MF_E_INVALIDMEDIATYPE; - goto done; - } - - // Subtype must be one of the subtypes in our global list. - - // Get the subtype GUID. - GUID subtype; - hr = pmt->GetGUID(MF_MT_SUBTYPE, &subtype); - if (FAILED(hr)) - { - goto done; - } - - // Look for the subtype in our list of accepted types. - for (DWORD i = 0; i < ARRAYSIZE(g_MediaSubtypes); i++) - { - if (subtype == g_MediaSubtypes[i]) - { - bFoundMatchingSubtype = TRUE; - break; - } - } - - if (!bFoundMatchingSubtype) - { - hr = MF_E_INVALIDMEDIATYPE; // The MFT does not support this subtype. - goto done; - } - - // Reject single-field media types. - UINT32 interlace = MFGetAttributeUINT32(pmt, MF_MT_INTERLACE_MODE, MFVideoInterlace_Progressive); - if (interlace == MFVideoInterlace_FieldSingleUpper || interlace == MFVideoInterlace_FieldSingleLower) - { - hr = MF_E_INVALIDMEDIATYPE; - } - -done: - return hr; -} - - -// Set or clear the input media type. -// -// Prerequisite: The input type was already validated. - -void CGrayscale::OnSetInputType(IMFMediaType *pmt) -{ - // if pmt is nullptr, clear the type. - // if pmt is non-nullptr, set the type. - - SafeRelease(&m_pInputType); - m_pInputType = pmt; - if (m_pInputType) - { - m_pInputType->AddRef(); - } - - // Update the format information. - UpdateFormatInfo(); -} - - -// Set or clears the output media type. -// -// Prerequisite: The output type was already validated. - -void CGrayscale::OnSetOutputType(IMFMediaType *pmt) -{ - // If pmt is nullptr, clear the type. Otherwise, set the type. - - SafeRelease(&m_pOutputType); - m_pOutputType = pmt; - if (m_pOutputType) - { - m_pOutputType->AddRef(); - } -} - - -// Initialize streaming parameters. -// -// This method is called if the client sends the MFT_MESSAGE_NOTIFY_BEGIN_STREAMING -// message, or when the client processes a sample, whichever happens first. - -HRESULT CGrayscale::BeginStreaming() -{ - HRESULT hr = S_OK; - - if (!m_bStreamingInitialized) - { - // Get the configuration attributes. - - // Get the destination rectangle. - - RECT rcDest; - hr = m_pAttributes->GetBlob(MFT_GRAYSCALE_DESTINATION_RECT, (UINT8*)&rcDest, sizeof(rcDest), nullptr); - if (hr == MF_E_ATTRIBUTENOTFOUND || !ValidateRect(rcDest)) - { - // The client did not set this attribute, or the client provided an invalid rectangle. - // Default to the entire image. - - m_rcDest = D2D1::RectU(0, 0, m_imageWidthInPixels, m_imageHeightInPixels); - hr = S_OK; - } - else if (SUCCEEDED(hr)) - { - m_rcDest = D2D1::RectU(rcDest.left, rcDest.top, rcDest.right, rcDest.bottom); - } - else - { - goto done; - } - - // Get the chroma transformations. - - float scale = (float)MFGetAttributeDouble(m_pAttributes, MFT_GRAYSCALE_SATURATION, 0.0f); - float angle = (float)MFGetAttributeDouble(m_pAttributes, MFT_GRAYSCALE_CHROMA_ROTATION, 0.0f); - - m_transform = D2D1::Matrix3x2F::Scale(scale, scale) * D2D1::Matrix3x2F::Rotation(angle); - - m_bStreamingInitialized = true; - } - -done: - return hr; -} - - -// End streaming. - -// This method is called if the client sends an MFT_MESSAGE_NOTIFY_END_STREAMING -// message, or when the media type changes. In general, it should be called whenever -// the streaming parameters need to be reset. - -HRESULT CGrayscale::EndStreaming() -{ - m_bStreamingInitialized = false; - return S_OK; -} - - - -// Generate output data. - -HRESULT CGrayscale::OnProcessOutput(IMFMediaBuffer *pIn, IMFMediaBuffer *pOut) -{ - BYTE *pDest = nullptr; // Destination buffer. - LONG lDestStride = 0; // Destination stride. - - BYTE *pSrc = nullptr; // Source buffer. - LONG lSrcStride = 0; // Source stride. - - // Helper objects to lock the buffers. - VideoBufferLock inputLock(pIn); - VideoBufferLock outputLock(pOut); - - // Stride if the buffer does not support IMF2DBuffer - LONG lDefaultStride = 0; - - HRESULT hr = GetDefaultStride(m_pInputType, &lDefaultStride); - if (FAILED(hr)) - { - goto done; - } - - // Lock the input buffer. - hr = inputLock.LockBuffer(lDefaultStride, m_imageHeightInPixels, &pSrc, &lSrcStride); - if (FAILED(hr)) - { - goto done; - } - - // Lock the output buffer. - hr = outputLock.LockBuffer(lDefaultStride, m_imageHeightInPixels, &pDest, &lDestStride); - if (FAILED(hr)) - { - goto done; - } - - // Invoke the image transform function. - assert (m_pTransformFn != nullptr); - if (m_pTransformFn) - { - (*m_pTransformFn)(m_transform, m_rcDest, pDest, lDestStride, pSrc, lSrcStride, - m_imageWidthInPixels, m_imageHeightInPixels); - } - else - { - hr = E_UNEXPECTED; - goto done; - } - - - // Set the data size on the output buffer. - hr = pOut->SetCurrentLength(m_cbImageSize); - - // The VideoBufferLock class automatically unlocks the buffers. -done: - return hr; -} - - -// Flush the MFT. - -HRESULT CGrayscale::OnFlush() -{ - // For this MFT, flushing just means releasing the input sample. - SafeRelease(&m_pSample); - return S_OK; -} - -// Update the format information. This method is called whenever the -// input type is set. - -HRESULT CGrayscale::UpdateFormatInfo() -{ - HRESULT hr = S_OK; - - GUID subtype = GUID_NULL; - - m_imageWidthInPixels = 0; - m_imageHeightInPixels = 0; - m_cbImageSize = 0; - - m_pTransformFn = nullptr; - - if (m_pInputType != nullptr) - { - hr = m_pInputType->GetGUID(MF_MT_SUBTYPE, &subtype); - if (FAILED(hr)) - { - goto done; - } - if (subtype == MFVideoFormat_YUY2) - { - m_pTransformFn = TransformImage_YUY2; - } - else if (subtype == MFVideoFormat_UYVY) - { - m_pTransformFn = TransformImage_UYVY; - } - else if (subtype == MFVideoFormat_NV12) - { - m_pTransformFn = TransformImage_NV12; - } - else - { - hr = E_UNEXPECTED; - goto done; - } - - hr = MFGetAttributeSize(m_pInputType, MF_MT_FRAME_SIZE, &m_imageWidthInPixels, &m_imageHeightInPixels); - if (FAILED(hr)) - { - goto done; - } - - // Calculate the image size (not including padding) - hr = GetImageSize(subtype.Data1, m_imageWidthInPixels, m_imageHeightInPixels, &m_cbImageSize); - } - -done: - return hr; -} - - -// Calculate the size of the buffer needed to store the image. - -// fcc: The FOURCC code of the video format. - -HRESULT GetImageSize(DWORD fcc, UINT32 width, UINT32 height, DWORD* pcbImage) -{ - HRESULT hr = S_OK; - - switch (fcc) - { - case FOURCC_YUY2: - case FOURCC_UYVY: - // check overflow - if ((width > MAXDWORD / 2) || (width * 2 > MAXDWORD / height)) - { - hr = E_INVALIDARG; - } - else - { - // 16 bpp - *pcbImage = width * height * 2; - } - break; - - case FOURCC_NV12: - // check overflow - if ((height/2 > MAXDWORD - height) || ((height + height/2) > MAXDWORD / width)) - { - hr = E_INVALIDARG; - } - else - { - // 12 bpp - *pcbImage = width * (height + (height/2)); - } - break; - - default: - hr = E_FAIL; // Unsupported type. - } - return hr; -} - -// Get the default stride for a video format. -HRESULT GetDefaultStride(IMFMediaType *pType, LONG *plStride) -{ - LONG lStride = 0; - - // Try to get the default stride from the media type. - HRESULT hr = pType->GetUINT32(MF_MT_DEFAULT_STRIDE, (UINT32*)&lStride); - if (FAILED(hr)) - { - // Attribute not set. Try to calculate the default stride. - GUID subtype = GUID_NULL; - - UINT32 width = 0; - UINT32 height = 0; - - // Get the subtype and the image size. - hr = pType->GetGUID(MF_MT_SUBTYPE, &subtype); - if (SUCCEEDED(hr)) - { - hr = MFGetAttributeSize(pType, MF_MT_FRAME_SIZE, &width, &height); - } - if (SUCCEEDED(hr)) - { - if (subtype == MFVideoFormat_NV12) - { - lStride = width; - } - else if (subtype == MFVideoFormat_YUY2 || subtype == MFVideoFormat_UYVY) - { - lStride = ((width * 2) + 3) & ~3; - } - else - { - hr = E_INVALIDARG; - } - } - - // Set the attribute for later reference. - if (SUCCEEDED(hr)) - { - (void)pType->SetUINT32(MF_MT_DEFAULT_STRIDE, UINT32(lStride)); - } - } - if (SUCCEEDED(hr)) - { - *plStride = lStride; - } - return hr; -} - - -// Validate that a rectangle meets the following criteria: -// -// - All coordinates are non-negative. -// - The rectangle is not flipped (top > bottom, left > right) -// -// These are the requirements for the destination rectangle. - -bool ValidateRect(const RECT& rc) -{ - if (rc.left < 0 || rc.top < 0) - { - return false; - } - if (rc.left > rc.right || rc.top > rc.bottom) - { - return false; - } - return true; -} -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.def b/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.def deleted file mode 100644 index 1699fdb071688..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.def +++ /dev/null @@ -1,6 +0,0 @@ -;// -EXPORTS - DllCanUnloadNow PRIVATE - DllGetActivationFactory PRIVATE - DllGetClassObject PRIVATE -;// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.h deleted file mode 100644 index 7c6c88c00df1a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.h +++ /dev/null @@ -1 +0,0 @@ -#pragma once \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.idl b/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.idl deleted file mode 100644 index 62bf0c710cb63..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.idl +++ /dev/null @@ -1,14 +0,0 @@ -// -import "Windows.Media.idl"; - -#include - -namespace GrayscaleTransform -{ - [version(NTDDI_WIN8), activatable(NTDDI_WIN8)] - runtimeclass GrayscaleEffect - { - [default] interface Windows.Media.IMediaExtension; - } -} -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.vcxproj b/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.vcxproj deleted file mode 100644 index 9e62cf670f119..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.vcxproj +++ /dev/null @@ -1,212 +0,0 @@ - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - {bc0c14a0-37c8-49c7-848f-954cf4985230} - Win32Proj - GrayscaleTransform - GrayscaleTransform - en-US - 11.0 - true - - - - DynamicLibrary - true - v110 - - - DynamicLibrary - true - v110 - - - DynamicLibrary - true - v110 - - - DynamicLibrary - false - true - v110 - - - DynamicLibrary - false - true - v110 - - - DynamicLibrary - false - true - v110 - - - - - - - - - - - - - - - - - - - - - - - - false - false - - - false - false - - - false - false - - - false - false - - - false - false - - - false - false - - - - Use - false - - - Console - false - true - runtimeobject.lib;mfuuid.lib;mfplat.lib;kernel32.lib;%(AdditionalDependencies) - GrayscaleTransform.def - - - - - Use - false - - - Console - false - false - - - - - Use - false - - - Console - false - false - - - - - Use - false - - - Console - false - false - - - - - Use - false - - - Console - false - false - - - - - Use - false - - - Console - false - false - - - - - - - - - - - - - Create - Create - Create - Create - Create - Create - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.vcxproj.filters b/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.vcxproj.filters deleted file mode 100644 index 4c05be36dd71d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform.vcxproj.filters +++ /dev/null @@ -1,26 +0,0 @@ - - - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform_h.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform_h.h deleted file mode 100644 index 654bd5892c45b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/grayscaletransform_h.h +++ /dev/null @@ -1,101 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.00.0595 */ -/* at Wed Dec 26 09:45:19 2012 - */ -/* Compiler settings for C:\Users\thompet\AppData\Local\Temp\GrayscaleTransform.idl-24dcae0f: - Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0595 - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -/* @@MIDL_FILE_HEADING( ) */ - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 475 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif // __RPCNDR_H_VERSION__ - - -#ifndef __GrayscaleTransform_h_h__ -#define __GrayscaleTransform_h_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -#if defined(__cplusplus) -#if defined(__MIDL_USE_C_ENUM) -#define MIDL_ENUM enum -#else -#define MIDL_ENUM enum class -#endif -#endif - - -/* Forward Declarations */ - -/* header files for imported files */ -#include "Windows.Media.h" - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_GrayscaleTransform_0000_0000 */ -/* [local] */ - -#pragma warning(push) -#pragma warning(disable:4001) -#pragma once -#pragma warning(pop) -#ifdef __cplusplus -namespace ABI { -namespace GrayscaleTransform { -class GrayscaleEffect; -} /*GrayscaleTransform*/ -} -#endif - -#ifndef RUNTIMECLASS_GrayscaleTransform_GrayscaleEffect_DEFINED -#define RUNTIMECLASS_GrayscaleTransform_GrayscaleEffect_DEFINED -extern const __declspec(selectany) WCHAR RuntimeClass_GrayscaleTransform_GrayscaleEffect[] = L"GrayscaleTransform.GrayscaleEffect"; -#endif - - -/* interface __MIDL_itf_GrayscaleTransform_0000_0000 */ -/* [local] */ - - - - -extern RPC_IF_HANDLE __MIDL_itf_GrayscaleTransform_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_GrayscaleTransform_0000_0000_v0_0_s_ifspec; - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/pch.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/pch.cpp deleted file mode 100644 index 01484ff5aa454..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/pch.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.cpp -// Include the standard header and generate the precompiled header. -// - -#include "pch.h" diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/pch.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/pch.h deleted file mode 100644 index 469abe46f0024..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/pch.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// pch.h -// Header for standard system include files. -// -// -#pragma once - -#include "targetver.h" - -#include -#include -#include -#include -#include -#include -#include - -// Note: The Direct2D helper library is included for its 2D matrix operations. -#include - -#include -#include -#include -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/targetver.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/targetver.h deleted file mode 100644 index a66ecb00f1531..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/cpp/grayscaletransform/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -// Including SDKDDKVer.h defines the highest available Windows platform. - -// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and -// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. - -#include diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/mediacapture.sln b/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/mediacapture.sln deleted file mode 100644 index eb02c2c82812d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-media-capture/mediacapture.sln +++ /dev/null @@ -1,86 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GrayscaleTransform", "cpp\GrayscaleTransform\GrayscaleTransform.vcxproj", "{BC0C14A0-37C8-49C7-848F-954CF4985230}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MediaCapture", "cs\MediaCapture\MediaCapture.csproj", "{34F490F1-3F87-4760-B0F2-D235616EC53D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|ARM = Debug|ARM - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|Win32 = Debug|Win32 - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|ARM = Release|ARM - Release|Mixed Platforms = Release|Mixed Platforms - Release|Win32 = Release|Win32 - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Debug|ARM.ActiveCfg = Debug|ARM - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Debug|ARM.Build.0 = Debug|ARM - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Debug|Win32.ActiveCfg = Debug|Win32 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Debug|Win32.Build.0 = Debug|Win32 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Debug|x64.ActiveCfg = Debug|x64 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Debug|x64.Build.0 = Debug|x64 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Debug|x86.ActiveCfg = Debug|Win32 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Debug|x86.Build.0 = Debug|Win32 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Release|Any CPU.ActiveCfg = Release|Win32 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Release|ARM.ActiveCfg = Release|ARM - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Release|ARM.Build.0 = Release|ARM - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Release|Mixed Platforms.Build.0 = Release|Win32 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Release|Win32.ActiveCfg = Release|Win32 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Release|Win32.Build.0 = Release|Win32 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Release|x64.ActiveCfg = Release|x64 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Release|x64.Build.0 = Release|x64 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Release|x86.ActiveCfg = Release|Win32 - {BC0C14A0-37C8-49C7-848F-954CF4985230}.Release|x86.Build.0 = Release|Win32 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|ARM.ActiveCfg = Debug|ARM - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|ARM.Build.0 = Debug|ARM - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|ARM.Deploy.0 = Debug|ARM - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|Mixed Platforms.Deploy.0 = Debug|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|Win32.ActiveCfg = Debug|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|Win32.Build.0 = Debug|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|Win32.Deploy.0 = Debug|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|x64.ActiveCfg = Debug|x64 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|x64.Build.0 = Debug|x64 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|x64.Deploy.0 = Debug|x64 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|x86.ActiveCfg = Debug|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|x86.Build.0 = Debug|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Debug|x86.Deploy.0 = Debug|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|Any CPU.Build.0 = Release|Any CPU - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|Any CPU.Deploy.0 = Release|Any CPU - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|ARM.ActiveCfg = Release|ARM - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|ARM.Build.0 = Release|ARM - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|ARM.Deploy.0 = Release|ARM - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|Mixed Platforms.Build.0 = Release|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|Mixed Platforms.Deploy.0 = Release|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|Win32.ActiveCfg = Release|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|Win32.Build.0 = Release|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|Win32.Deploy.0 = Release|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|x64.ActiveCfg = Release|x64 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|x64.Build.0 = Release|x64 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|x64.Deploy.0 = Release|x64 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|x86.ActiveCfg = Release|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|x86.Build.0 = Release|x86 - {34F490F1-3F87-4760-B0F2-D235616EC53D}.Release|x86.Deploy.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-microsoft__wrl__activationfactory/cpp/activationfactory.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-microsoft__wrl__activationfactory/cpp/activationfactory.cpp deleted file mode 100644 index 646f0b61365f7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-microsoft__wrl__activationfactory/cpp/activationfactory.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// activationfactory.cpp -// compile with: /c -#include - -using namespace Microsoft::WRL; - -namespace ABI -{ - namespace MyClassLibrary - { - [uuid({3B631C7A-B226-4F9A-8279-17D4CBAABA93})] - interface IMyClass : IWeakReference - { - virtual HRESULT STDMETHODCALLTYPE Resolve( - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out IInspectable **objectReference) - { - return S_OK; - } - }; - - [uuid({3B631C7A-B226-4F9A-8279-17D4CBAABA93})] - interface IMyAdditionalInterfaceOnFactory: IWeakReference - { - virtual HRESULT STDMETHODCALLTYPE Resolve( - /* [in] */ __RPC__in REFIID riid, - /* [iid_is][out] */ __RPC__deref_out IInspectable **objectReference) - { - return S_OK; - } - }; - - class MyClass: public RuntimeClass - { - InspectableClass(L"MyClassLibrary.MyClass", BaseTrust) - - public: - MyClass() - { - } - }; - - //ActivatableClass(MyClass); - - // - struct MyClassFactory : public ActivationFactory - { - STDMETHOD(ActivateInstance) (_Outptr_result_nullonfailure_ IInspectable** ppvObject) - { - // my custom implementation - - return S_OK; - } - }; - - ActivatableClassWithFactory(MyClass, MyClassFactory); - // or if a default factory is used: - //ActivatableClassWithFactory(MyClass, SimpleActivationFactory); - // - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-microsoft__wrl__activationfactory/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Misc/wrl-microsoft__wrl__activationfactory/cpp/makefile deleted file mode 100644 index 52911eda31713..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-microsoft__wrl__activationfactory/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -activationfactory.exe: activationfactory.cpp - cl.exe /c activationfactory.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/module.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/module.cpp deleted file mode 100644 index 3a0036d9147b6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/module.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// module.cpp : Defines the module that contains the com classes -// -#include "pch.h" - -#include - -extern "C" BOOL WINAPI DllMain(_In_opt_ HINSTANCE, DWORD, _In_opt_ LPVOID); -extern "C" HRESULT WINAPI DllCanUnloadNow(); - -#if !defined(__WRL_CLASSIC_COM__) -extern "C" HRESULT WINAPI DllGetActivationFactory(_In_ HSTRING, _Deref_out_ IActivationFactory**); - -extern "C" HRESULT WINAPI DllGetActivationFactory(_In_ HSTRING activatibleClassId, _Deref_out_ IActivationFactory** factory) -{ - auto &module = Microsoft::WRL::Module::GetModule(); - return module.GetActivationFactory(activatibleClassId, factory); -} -#endif - -#if !defined(__WRL_WINRT_STRICT__) -extern "C" HRESULT WINAPI DllGetClassObject(REFCLSID, REFIID, _Deref_out_ LPVOID*); - -extern "C" HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, _Deref_out_ LPVOID *ppv) -{ - auto &module = Microsoft::WRL::Module::GetModule(); - return module.GetClassObject(rclsid, riid, ppv); -} -#endif - -extern "C" BOOL WINAPI DllMain(_In_opt_ HINSTANCE, DWORD, _In_opt_ LPVOID) -{ - return TRUE; -} - -extern "C" HRESULT WINAPI DllCanUnloadNow() -{ - const auto &module = Microsoft::WRL::Module::GetModule(); - return module.GetObjectCount() == 0 ? S_OK : S_FALSE; -} - -#if defined(_M_IX86) -#if !defined(__WRL_CLASSIC_COM__) -#pragma comment(linker, "/EXPORT:DllGetActivationFactory=_DllGetActivationFactory@8,PRIVATE") -#endif -#if !defined(__WRL_WINRT_STRICT__) -#pragma comment(linker, "/EXPORT:DllGetClassObject=_DllGetClassObject@12,PRIVATE") -#endif -#pragma comment(linker, "/EXPORT:DllCanUnloadNow=_DllCanUnloadNow@0,PRIVATE") -#elif defined(_M_ARM) || defined(_M_AMD64) -#if !defined(__WRL_CLASSIC_COM__) -#pragma comment(linker, "/EXPORT:DllGetActivationFactory,PRIVATE") -#endif -#if !defined(__WRL_WINRT_STRICT__) -#pragma comment(linker, "/EXPORT:DllGetClassObject,PRIVATE") -#endif -#pragma comment(linker, "/EXPORT:DllCanUnloadNow,PRIVATE") -#endif \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/pch.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/pch.cpp deleted file mode 100644 index 01484ff5aa454..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/pch.cpp +++ /dev/null @@ -1,6 +0,0 @@ -// -// pch.cpp -// Include the standard header and generate the precompiled header. -// - -#include "pch.h" diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/pch.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/pch.h deleted file mode 100644 index 9785b875951e3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/pch.h +++ /dev/null @@ -1,11 +0,0 @@ -// -// pch.h -// Header for standard system include files. -// - -#pragma once - -#include "targetver.h" - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -#include diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/targetver.h b/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/targetver.h deleted file mode 100644 index a66ecb00f1531..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/targetver.h +++ /dev/null @@ -1,8 +0,0 @@ -#pragma once - -// Including SDKDDKVer.h defines the highest available Windows platform. - -// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and -// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. - -#include diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/wrlclasslibrary.cpp b/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/wrlclasslibrary.cpp deleted file mode 100644 index 56d825a040712..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/wrlclasslibrary.cpp +++ /dev/null @@ -1,27 +0,0 @@ -// -#include "pch.h" - -#include "WRLClassLibrary_h.h" -#include - -using namespace Microsoft::WRL; -using namespace Windows::Foundation; - -namespace ABI -{ - namespace WRLClassLibrary - { - class WinRTClass: public RuntimeClass - { - InspectableClass(L"WRLClassLibrary.WinRTClass", BaseTrust) - - public: - WinRTClass() - { - } - }; - - ActivatableClass(WinRTClass); - } -} -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/wrlclasslibrary.idl b/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/wrlclasslibrary.idl deleted file mode 100644 index 51e7b8cff463c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/wrlclasslibrary.idl +++ /dev/null @@ -1,23 +0,0 @@ -// -import "inspectable.idl"; -import "Windows.Foundation.idl"; - -#define COMPONENT_VERSION 1.0 - -namespace WRLClassLibrary -{ - interface IWinRTClass; - runtimeclass WinRTClass; - - [uuid(89656677-8679-477c-aff1-f724c64b70f3), version(COMPONENT_VERSION), exclusiveto(WinRTClass)] - interface IWinRTClass : IInspectable - { - } - - [version(COMPONENT_VERSION), activatable(COMPONENT_VERSION)] - runtimeclass WinRTClass - { - [default] interface IWinRTClass; - } -} -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/wrlclasslibrary.vcxproj b/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/wrlclasslibrary.vcxproj deleted file mode 100644 index 8d916cc1a9746..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/wrlclasslibrary.vcxproj +++ /dev/null @@ -1,320 +0,0 @@ - - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - - $(VCTargetsPath11) - {89656677-8679-477c-aff1-f724c64b70f3} - WRLProj - Win32Proj - WRLClassLibrary - WRLClassLibrary - en-US - 11.0 - true - - - - - - DynamicLibrary - true - v110 - - - DynamicLibrary - true - v110 - - - DynamicLibrary - true - v110 - - - DynamicLibrary - false - true - v110 - - - DynamicLibrary - false - true - v110 - - - DynamicLibrary - false - true - v110 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - false - - - - false - - - - false - - - - false - - - - false - - - - false - - - - - Use - WINAPI_FAMILY=WINAPI_PARTITION_APP;_USRDLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories) - false - - - Console - false - false - runtimeobject.lib;user32.lib;kernel32.lib - - - mdmerge -metadata_dir "$(WindowsSDK_MetadataPath)" -o "$(SolutionDir)$(Configuration)\$(MSBuildProjectName)" -i "$(MSBuildProjectDirectory)" -v -partial - $(SolutionDir)$(Configuration)\$(MSBuildProjectName)\$(ProjectName).winmd - - - - - - Use - WINAPI_FAMILY=WINAPI_PARTITION_APP;NDEBUG;_USRDLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories) - false - - - Console - false - false - runtimeobject.lib;user32.lib;kernel32.lib - - - mdmerge -metadata_dir "$(WindowsSDK_MetadataPath)" -o "$(SolutionDir)$(Configuration)\$(MSBuildProjectName)" -i "$(MSBuildProjectDirectory)" -v -partial - $(SolutionDir)$(Configuration)\$(MSBuildProjectName)\$(ProjectName).winmd - - - - - - Use - WINAPI_FAMILY=WINAPI_PARTITION_APP;_USRDLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories) - false - - - Console - false - false - runtimeobject.lib;user32.lib;kernel32.lib - - - mdmerge -metadata_dir "$(WindowsSDK_MetadataPath)" -o "$(ProjectDir)$(Configuration)\$(MSBuildProjectName)" -i "$(MSBuildProjectDirectory)" -v -partial - $(ProjectDir)$(Configuration)\$(MSBuildProjectName)\$(ProjectName).winmd - - - - - - Use - WINAPI_FAMILY=WINAPI_PARTITION_APP;NDEBUG;_USRDLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories) - false - - - Console - false - false - runtimeobject.lib;user32.lib;kernel32.lib - - - mdmerge -metadata_dir "$(WindowsSDK_MetadataPath)" -o "$(ProjectDir)$(Configuration)\$(MSBuildProjectName)" -i "$(MSBuildProjectDirectory)" -v -partial - $(ProjectDir)$(Configuration)\$(MSBuildProjectName)\$(ProjectName).winmd - - - - - - Use - WINAPI_FAMILY=WINAPI_PARTITION_APP;_USRDLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories) - false - - - Console - false - false - runtimeobject.lib;user32.lib;kernel32.lib - - - mdmerge -metadata_dir "$(WindowsSDK_MetadataPath)" -o "$(ProjectDir)$(Configuration)\$(MSBuildProjectName)" -i "$(MSBuildProjectDirectory)" -v -partial - $(ProjectDir)$(Configuration)\$(MSBuildProjectName)\$(ProjectName).winmd - - - - - - Use - WINAPI_FAMILY=WINAPI_PARTITION_APP;NDEBUG;_USRDLL;%(PreprocessorDefinitions) - pch.h - $(IntDir)pch.pch - $(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories) - false - - - Console - false - false - runtimeobject.lib;user32.lib;kernel32.lib - - - mdmerge -metadata_dir "$(WindowsSDK_MetadataPath)" -o "$(ProjectDir)$(Configuration)\$(MSBuildProjectName)" -i "$(MSBuildProjectDirectory)" -v -partial - $(ProjectDir)$(Configuration)\$(MSBuildProjectName)\$(ProjectName).winmd - - - - - - - - - - - - - - Create - Create - Create - Create - Create - Create - - - - - - - - - - - $(WindowsSDK_MetadataPath) - $(WindowsSDK_MetadataPath) - $(WindowsSDK_MetadataPath) - $(WindowsSDK_MetadataPath) - $(WindowsSDK_MetadataPath) - $(WindowsSDK_MetadataPath) - true - true - true - true - true - true - /ns_prefix %(AdditionalOptions) - /ns_prefix %(AdditionalOptions) - /ns_prefix %(AdditionalOptions) - /ns_prefix %(AdditionalOptions) - /ns_prefix %(AdditionalOptions) - /ns_prefix %(AdditionalOptions) - - - - - - - - - true - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/wrlclasslibrary.vcxproj.filters b/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/wrlclasslibrary.vcxproj.filters deleted file mode 100644 index d56ba3ca9a0e6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Misc/wrl-project-template/cpp/wrlclasslibrary/wrlclasslibrary.vcxproj.filters +++ /dev/null @@ -1,9 +0,0 @@ - - - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ActivatedServiceTypeEntry_ObjectType_Client/CPP/ActivatedServiceTypeEntry_ObjectType_Client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ActivatedServiceTypeEntry_ObjectType_Client/CPP/ActivatedServiceTypeEntry_ObjectType_Client.cpp deleted file mode 100644 index 0a5cdc65a367a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ActivatedServiceTypeEntry_ObjectType_Client/CPP/ActivatedServiceTypeEntry_ObjectType_Client.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -void main() -{ - ChannelServices::RegisterChannel( gcnew TcpChannel ); - ActivatedClientTypeEntry^ activatedClientTypeEntry = gcnew ActivatedClientTypeEntry( HelloServer::typeid,"tcp://localhost:8082" ); - - // Register 'HelloServer' Type on the client end so that it can be - // activated on the server. - RemotingConfiguration::RegisterActivatedClientType( activatedClientTypeEntry ); - - // Obtain a proxy object for the remote object. - HelloServer^ helloServer = gcnew HelloServer( "ParameterString" ); - if ( !helloServer ) - { - Console::WriteLine( "Could not locate server" ); - } - else - { - Console::WriteLine( "Calling remote object" ); - Console::WriteLine( helloServer->HelloMethod( "Bill" ) ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ActivatedServiceTypeEntry_ObjectType_Client/CPP/ActivatedServiceTypeEntry_ObjectType_Share.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ActivatedServiceTypeEntry_ObjectType_Client/CPP/ActivatedServiceTypeEntry_ObjectType_Share.cpp deleted file mode 100644 index 3dd42ed0c120a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ActivatedServiceTypeEntry_ObjectType_Client/CPP/ActivatedServiceTypeEntry_ObjectType_Share.cpp +++ /dev/null @@ -1,17 +0,0 @@ -using namespace System; - -public ref class HelloServer: public MarshalByRefObject -{ -public: - HelloServer( String^ passedString ) - { - Console::WriteLine( "HelloServer activated" ); - Console::WriteLine( "Paramater passed to the constructor is {0}", passedString ); - } - - String^ HelloMethod( String^ name ) - { - Console::WriteLine( "HelloMethod : {0}", name ); - return String::Format( "Hi there {0}", name ); - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ActivatedServiceTypeEntry_ObjectType_Client/CPP/activatedservicetypeentry_objecttype_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ActivatedServiceTypeEntry_ObjectType_Client/CPP/activatedservicetypeentry_objecttype_server.cpp deleted file mode 100644 index 188aacb6278b5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ActivatedServiceTypeEntry_ObjectType_Client/CPP/activatedservicetypeentry_objecttype_server.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// System.Runtime.Remoting.ActivatedServiceTypeEntry -// System.Runtime.Remoting.ActivatedServiceTypeEntry.ObjectType -// System.Runtime.Remoting.ActivatedServiceTypeEntry.ToString - -/* -The following example demonstrates the 'ActivatedServiceTypeEntry' class and -the 'ObjectType' property ,'ToString' method of 'ActivatedServiceTypeEntry' class. -It registers a 'TcpChannel' object with the channel services. Then registers the 'HelloServer' -object at the service end that can be activated on request from a client.By using the -'GetRegisteredActivatedServiceTypes' method it gets the registered activated service types -and displays it's information to the console:: -*/ - -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -void main() -{ - ChannelServices::RegisterChannel( gcnew TcpChannel( 8082 ) ); - - // Create an instance of 'ActivatedServiceTypeEntry' class - // which holds the values for 'HelloServer' type. - ActivatedServiceTypeEntry^ myActivatedServiceTypeEntry = - gcnew ActivatedServiceTypeEntry( HelloServer::typeid ); - - // Register an object Type on the service end so that - // it can be activated on request from a client. - RemotingConfiguration::RegisterActivatedServiceType( - myActivatedServiceTypeEntry ); - -// -// - // Get the registered activated service types. - array^ activatedServiceEntries = - RemotingConfiguration::GetRegisteredActivatedServiceTypes(); - Console::WriteLine( "Information of first registered activated" + - " service type :" ); - Console::WriteLine( "Object type: {0}", - activatedServiceEntries[ 0 ]->ObjectType->ToString() ); - Console::WriteLine( "Description: {0}", - activatedServiceEntries[ 0 ]->ToString() ); -// -// - - Console::WriteLine( "Press enter to stop this process" ); - Console::ReadLine(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ActivatedServiceTypeEntry_ObjectType_Client/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/ActivatedServiceTypeEntry_ObjectType_Client/CPP/makefile deleted file mode 100644 index 88ff0f64259a2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ActivatedServiceTypeEntry_ObjectType_Client/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: ActivatedServiceTypeEntry_ObjectType_Server.exe ActivatedServiceTypeEntry_ObjectType_Client.exe - -ActivatedServiceTypeEntry_ObjectType_Server.exe: ActivatedServiceTypeEntry_ObjectType_Server.cpp ActivatedServiceTypeEntry_ObjectType_Share.dll - cl /clr:pure ActivatedServiceTypeEntry_ObjectType_Server.cpp - -ActivatedServiceTypeEntry_ObjectType_Client.exe: ActivatedServiceTypeEntry_ObjectType_Client.cpp ActivatedServiceTypeEntry_ObjectType_Share.dll - cl /clr:pure ActivatedServiceTypeEntry_ObjectType_Client.cpp - -ActivatedServiceTypeEntry_ObjectType_Share.dll: ActivatedServiceTypeEntry_ObjectType_Share.cpp - cl /LD /clr:pure ActivatedServiceTypeEntry_ObjectType_Share.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/AuthenticationManager_UnRegister2/CPP/authenticationmanager_unregister2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/AuthenticationManager_UnRegister2/CPP/authenticationmanager_unregister2.cpp deleted file mode 100644 index eaec1a8cfc9a6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/AuthenticationManager_UnRegister2/CPP/authenticationmanager_unregister2.cpp +++ /dev/null @@ -1,63 +0,0 @@ -// System.Net.AuthenticationManager.UnRegister(String). -// System.Net.AuthenticationManager.Register. -// Grouping Clause : 1,3 AND 2,3. - -/*This program demonstrates the 'UnRegister(String)' and 'Register' methods of -'AuthenticationManager' class. It gets all the authentication modules registered with the system into an -IEnumerator instance ,unregisters the first authentication module and displays to show that it was -unregistered. Then registers the same module back again and displays all the modules again.*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Collections; - -// -void DisplayAllModules() -{ - IEnumerator^ registeredModules = AuthenticationManager::RegisteredModules; - Console::WriteLine( "\n\tThe following modules are now registered with the system:" ); - while ( registeredModules->MoveNext() ) - { - Console::WriteLine( "\n\t\tModule : {0}", registeredModules->Current ); - IAuthenticationModule^ currentAuthenticationModule = dynamic_cast(registeredModules->Current); - Console::WriteLine( "\t\t\t CanPreAuthenticate : {0}", currentAuthenticationModule->CanPreAuthenticate ); - } -} -// - -int main() -{ - try - { -// -// - IEnumerator^ registeredModules = AuthenticationManager::RegisteredModules; - // Display all the modules that are already registered with the system. - DisplayAllModules(); - registeredModules->Reset(); - registeredModules->MoveNext(); - // Get the first Authentication module registered with the system. - IAuthenticationModule^ authenticationModule1 = dynamic_cast(registeredModules->Current); - // Call the UnRegister() method to unregister the first authentication module from the system. - String^ authenticationScheme = authenticationModule1->AuthenticationType; - AuthenticationManager::Unregister( authenticationScheme ); - Console::WriteLine( "\nSuccessfully unregistered '{0}'.", authenticationModule1 ); - // Display all modules to see that the module was unregistered. - DisplayAllModules(); -// - // Calling 'Register()' method to register 'authenticationModule1' module back again. - AuthenticationManager::Register( authenticationModule1 ); - Console::WriteLine( "\nSuccessfully re-registered '{0}'.", authenticationModule1 ); - // Display the modules to verify that 'authenticationModule1' has been registered back again. - DisplayAllModules(); -// - Console::WriteLine( "Press any key to continue" ); - Console::ReadLine(); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\n The following Exception was raised : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Authorization_Constructor3/CPP/authorization_constructor3.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Authorization_Constructor3/CPP/authorization_constructor3.cpp deleted file mode 100644 index 9d25d5c5604b7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Authorization_Constructor3/CPP/authorization_constructor3.cpp +++ /dev/null @@ -1,104 +0,0 @@ - - -// System::Net::Authorization::Authorization(String*, bool, String*) -/* This program demonstrates the contructor 'Authorization(String*, bool, String*)' of the authorization -* class. -* -* We implement the interface S"IAuthenticationModule*" to make CloneBasic which is a custom authentication module. -* The custom authentication module encodes username and password as base64 strings and then returns -* back an authorization instance. This authorization is internally used by the HttpWebRequest for -* authentication. -* * -* Please Note : This program has to be compiled as a dll. -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; - -namespace CloneBasicAuthentication -{ - public ref class CloneBasic: public IAuthenticationModule - { - private: - String^ m_authenticationType; - bool m_canPreAuthenticate; - - public: - CloneBasic() - { - m_authenticationType = "CloneBasic"; - m_canPreAuthenticate = false; - } - - property String^ AuthenticationType - { - virtual String^ get() - { - return m_authenticationType; - } - } - - property bool CanPreAuthenticate - { - virtual bool get() - { - return m_canPreAuthenticate; - } - } - - // - virtual Authorization^ Authenticate( String^ challenge, WebRequest^ request, ICredentials^ credentials ) - { - try - { - String^ message; - - // Check if Challenge String* was raised by a site which requires CloneBasic authentication. - if ( (challenge == nullptr) || ( !challenge->StartsWith( "CloneBasic" )) ) - return nullptr; - NetworkCredential^ myCredentials; - if ( dynamic_cast(credentials) == nullptr ) - { - myCredentials = credentials->GetCredential( request->RequestUri, "CloneBasic" ); - if ( myCredentials == nullptr ) - return nullptr; - } - else - myCredentials = dynamic_cast(credentials); - - // Message encryption scheme : - // a)Concatenate username and password seperated by space; - // b)Apply ASCII encoding to obtain a stream of bytes; - // c)Apply Base64 Encoding to this array of bytes to obtain our encoded authorization message. - message = String::Concat( myCredentials->UserName, " ", myCredentials->Password ); - - // Apply AsciiEncoding to our user name and password to obtain it as an array of bytes. - Encoding^ asciiEncoding = Encoding::ASCII; - array^byteArray = gcnew array(asciiEncoding->GetByteCount( message )); - byteArray = asciiEncoding->GetBytes( message ); - - // Perform Base64 transform. - message = Convert::ToBase64String( byteArray ); - - // The following overloaded contructor sets the 'Message' property of authorization to the base64 String*; - // that we just formed and it also sets the 'Complete' property to true and the connection group id; - // to the domain of the NetworkCredential Object*. - Authorization^ myAuthorization = gcnew Authorization( String::Concat( "CloneBasic ", message, true, request->ConnectionGroupName ) ); - return myAuthorization; - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception Raised ...: {0}", e->Message ); - return nullptr; - } - } - // - - virtual Authorization^ PreAuthenticate( WebRequest^ request, ICredentials^ credentials ) - { - return nullptr; - } - }; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Authorization_Constructor3/CPP/clientclonebasic.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Authorization_Constructor3/CPP/clientclonebasic.cpp deleted file mode 100644 index 2b7b7b551bde8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Authorization_Constructor3/CPP/clientclonebasic.cpp +++ /dev/null @@ -1,146 +0,0 @@ - - -/* This is a client program to test the S"CloneBasic" class of IAuthenticationModule*_Methods_Props.dll. -* -* To demonstrate the functionality of CloneBasic, Client class has been made which makes -* the webrequest for the protected: -resource. A site for such a protected: -resource -(http://gopik/clonebasicsite/WebForm1::aspx), which would use CloneBasic authentication, has been developed. -Pl. see the guidelines.txt file for more information in setting up the site at your environment. While -running this program make sure to refer the 'Authroization_Constructor3.dll' -*/ -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; -using namespace System::IO; -using namespace System::Collections; - -// To test our authentication module, we write a client class. -public ref class Client -{ -public: - int main() - { - array^args = Environment::GetCommandLineArgs(); - try - { - String^ url; - String^ userName; - String^ passwd; - String^ domain; - if ( args->Length < 4 ) - { - - // Proceed with defaults. - Client::PrintUsage(); - Console::WriteLine( "\nTo proceed with defaults values press 'y' , press any other character to exit:" ); - String^ option = Console::ReadLine(); - if ( (String::Compare( option, "Y" ) == 0) || (String::Compare( option, "y" ) == 0) ) - { - url = "http://gopik/clonebasicsite/WebForm1::aspx"; - userName = "user1"; - passwd = "passwd1"; - domain = "gopik"; - } - else - return 0; - } - else - { - url = args[ 0 ]; - userName = args[ 1 ]; - passwd = args[ 2 ]; - domain = args[ 3 ]; - } - Console::WriteLine(); - CloneBasicAuthentication::CloneBasic ^ authenticationModule = gcnew CloneBasicAuthentication::CloneBasic; - - // Register CloneBasic authentication module with the system. - AuthenticationManager::Register( authenticationModule ); - Console::WriteLine( "\nSuccessfully registered our custom authentication module \"CloneBasic\"" ); - - // The AuthenticationManager calls all authentication modules sequentially until one of them responds with; - // an authorization instance. We have to unregister S"Basic" here as it almost always returns an authorization; - // thereby defeating our purpose to test CloneBasic. - AuthenticationManager::Unregister( "Basic" ); - IEnumerator^ registeredModules = AuthenticationManager::RegisteredModules; - Console::WriteLine( "\r\nThe following authentication modules are now registered with the system" ); - while ( registeredModules->MoveNext() ) - { - Console::WriteLine( "\r \n Module : {0}", registeredModules->Current ); - IAuthenticationModule^ currentAuthenticationModule = dynamic_cast(registeredModules->Current); - Console::WriteLine( "\t CanPreAuthenticate : {0}", currentAuthenticationModule->CanPreAuthenticate ); - } - GetPage( url, userName, passwd, domain ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\n The following exception was raised : {0}", e->Message ); - } - - } - -public: - static void PrintUsage() - { - Console::WriteLine( "\r\nUsage: Try a site which requires CloneBasic(custom made) authentication as below" ); - Console::WriteLine( " ClientCloneBasic URLname username password domainname" ); - Console::WriteLine( "\nExample:" ); - Console::WriteLine( "\n ClientCloneBasic http://dotnet.microsoft.com/ george george123 microsoft" ); - } - - static void GetPage( String^ url, String^ username, String^ passwd, String^ domain ) - { - try - { - HttpWebRequest^ myHttpWebRequest = dynamic_cast(WebRequest::Create( url )); - NetworkCredential^ credentials = gcnew NetworkCredential( username,passwd,domain ); - myHttpWebRequest->Credentials = credentials; - HttpWebResponse^ myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - Console::WriteLine( "\nRequest for protected resource {0} sent", url ); - Stream^ receiveStream = myHttpWebResponse->GetResponseStream(); - Encoding^ encode = System::Text::Encoding::GetEncoding( "utf-8" ); - StreamReader^ readStream = gcnew StreamReader( receiveStream,encode ); - Console::WriteLine( "\r\nResponse stream received" ); - array^read = gcnew array(256); - - // Read 256 characters at a time. - int count = readStream->Read( read, 0, 256 ); - Console::WriteLine( "Contents of the response received follows...\r\n" ); - while ( count > 0 ) - { - // Dump the 256 characters on a String* and display the String* onto the console. - Console::Write( read ); - count = readStream->Read( read, 0, 256 ); - } - Console::WriteLine( "" ); - - // Release the resources of stream Object*. - readStream->Close(); - - // Release the resources of response Object*. - myHttpWebResponse->Close(); - } - catch ( WebException^ e ) - { - if ( e->Response != nullptr ) - Console::WriteLine( "\r\n Exception Raised. The following error occurred : {0}", (dynamic_cast(e->Response))->StatusDescription ); - else - Console::WriteLine( "\r\n Exception Raised. The following error occurred : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\n The following exception was raised : {0}", e->Message ); - } - } -}; - -int main() -{ - Client^ c = gcnew Client(); - c->main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Authorization_Constructor3/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/Authorization_Constructor3/CPP/makefile deleted file mode 100644 index f4bed7a3d656a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Authorization_Constructor3/CPP/makefile +++ /dev/null @@ -1,4 +0,0 @@ -all : ClientCloneBasic.exe -ClientCloneBasic.exe: ClientCloneBasic.cpp Authorization_Constructor3.cpp - cl /clr:pure /LD Authorization_Constructor3.cpp - cl /clr:pure ClientCloneBasic.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Authorization_ProtectionRealm/CPP/authorization_protectionrealm.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Authorization_ProtectionRealm/CPP/authorization_protectionrealm.cpp deleted file mode 100644 index 3eabd24b023dd..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Authorization_ProtectionRealm/CPP/authorization_protectionrealm.cpp +++ /dev/null @@ -1,192 +0,0 @@ - - -// System::Net::Authorization::Authorization(String*, bool);System::Net::Authorization::ProtectionRealm -/* This program demonstrates the 'ProtectionRealm' property and 'Authorization(String*, bool)' constructor of -the S"Authorization" class. The S"IAuthenticationModule*" interface is implemented in 'CloneBasic' to make -it a custom authentication module. The custom authentication module encodes username and password as -base64 strings and then returns back an 'Authorization' instance. The 'Authorization' instance encapsulates -a list of Uri's for which it is applicable using the S"ProtectionRealm" property. -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; -void GetPage( String^ url, String^ username, String^ passwd ) -{ - try - { - String^ challenge = nullptr; - HttpWebRequest^ myHttpWebRequest = nullptr; - try - { - // Create a 'HttpWebRequest' Object* for the above 'url'. - myHttpWebRequest = dynamic_cast(WebRequest::Create( url )); - - // The following method call throws the 'WebException'. - HttpWebResponse^ myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - - // Release resources of response Object*. - myHttpWebResponse->Close(); - } - catch ( WebException^ e ) - { - for ( int i = 0; i < e->Response->Headers->Count; ++i ) - - // Retrieve the challenge String* from the header S"WWW-Authenticate". - if ( (String::Compare( e->Response->Headers->Keys[ i ], "WWW-Authenticate", true ) == 0) ) - challenge = e->Response->Headers[ i ]; - } - - if ( challenge != nullptr ) - { - // Challenge was raised by the client.Declare your credentials. - NetworkCredential^ myCredentials = gcnew NetworkCredential( username,passwd ); - - // Pass the challenge , 'NetworkCredential' Object* and the 'HttpWebRequest' Object* to the - // 'Authenticate' method of the S"AuthenticationManager" to retrieve an S"Authorization" ; - // instance. - Authorization^ urlAuthorization = AuthenticationManager::Authenticate( challenge, myHttpWebRequest, myCredentials ); - if ( urlAuthorization != nullptr ) - { - Console::WriteLine( "\nSuccessfully Created 'Authorization' object with authorization Message:\n \" {0}\"", urlAuthorization->Message ); - Console::WriteLine( "\n\nThis authorization is valid for the following Uri's:" ); - int count = 0; - System::Collections::IEnumerator^ myEnum = urlAuthorization->ProtectionRealm->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - String^ uri = safe_cast(myEnum->Current); - ++count; - Console::WriteLine( "\nUri->Item[ {0}]: {1}", count, uri ); - } - } - else - Console::WriteLine( "\nAuthorization Object* was returned as 0. Please check if site accepts 'CloneBasic' authentication" ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "\n The following exception was raised : {0}", e->Message ); - } -} - -void PrintUsage() -{ - Console::WriteLine( "\r\nUsage: Try a site which requires CloneBasic(custom made) authentication as below" ); - Console::WriteLine( " Authorization_ProtectionRealm URLname username password" ); - Console::WriteLine( "\nExample:" ); - Console::WriteLine( "\n Authorization_ProtectionRealm http://dotnet.microsoft.com/ george george123" ); -} - -// The 'CloneBasic' authentication module class implements 'IAuthenticationModule*'. -public ref class CloneBasic: public IAuthenticationModule -{ -private: - String^ m_authenticationType; - bool m_canPreAuthenticate; - -public: - CloneBasic() - { - m_authenticationType = "CloneBasic"; - m_canPreAuthenticate = false; - } - - property String^ AuthenticationType - { - virtual String^ get() - { - return m_authenticationType; - } - } - - property bool CanPreAuthenticate - { - virtual bool get() - { - return m_canPreAuthenticate; - } - } - - // - // - virtual Authorization^ Authenticate( String^ challenge, WebRequest^ request, ICredentials^ credentials ) - { - try - { - String^ message; - - // Check if Challenge String* was raised by a site which requires 'CloneBasic' authentication. - if ( (challenge == nullptr) || ( !challenge->StartsWith( "CloneBasic" )) ) - return nullptr; - NetworkCredential^ myCredentials; - if ( dynamic_cast(credentials) == nullptr ) - { - myCredentials = credentials->GetCredential( request->RequestUri, "CloneBasic" ); - if ( myCredentials == nullptr ) - return nullptr; - } - else - myCredentials = dynamic_cast(credentials); - - // Message encryption scheme : - // a)Concatenate username and password seperated by space; - // b)Apply ASCII encoding to obtain a stream of bytes; - // c)Apply Base64 Encoding to this array of bytes to obtain our encoded authorization message. - message = String::Concat( myCredentials->UserName, " ", myCredentials->Password ); - - // Apply AsciiEncoding to 'message' String* to obtain it as an array of bytes. - Encoding^ ascii = Encoding::ASCII; - array^byteArray = gcnew array(ascii->GetByteCount( message )); - byteArray = ascii->GetBytes( message ); - - // Performing Base64 transformation. - message = Convert::ToBase64String( byteArray ); - Authorization^ myAuthorization = gcnew Authorization( String::Concat( "CloneBasic ", message, true ) ); - array^protectionRealm = gcnew array(1); - protectionRealm[ 0 ] = request->RequestUri->AbsolutePath; - myAuthorization->ProtectionRealm = protectionRealm; - return myAuthorization; - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised in Authenticate method: {0}", e->Message ); - return nullptr; - } - } - // - // - - virtual Authorization^ PreAuthenticate( WebRequest^ request, ICredentials^ credentials ) - { - return nullptr; - } -}; - -// The 'Client' class is defined here to test the above custom authentication module. -int main() -{ - array^args = Environment::GetCommandLineArgs(); - String^ url; - String^ userName; - String^ passwd; - if ( args->Length < 3 ) - { - PrintUsage(); - return 0; - } - else - { - url = args[ 0 ]; - userName = args[ 1 ]; - passwd = args[ 2 ]; - } - - Console::WriteLine(); - CloneBasic^ authenticationModule = gcnew CloneBasic; - AuthenticationManager::Register( authenticationModule ); - AuthenticationManager::Unregister( "Basic" ); - - // Get response from Uri. - GetPage( url, userName, passwd ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/BinaryFormatterClass Example/CPP/binaryformatter.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/BinaryFormatterClass Example/CPP/binaryformatter.cpp deleted file mode 100644 index 8721c96f86ea8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/BinaryFormatterClass Example/CPP/binaryformatter.cpp +++ /dev/null @@ -1,90 +0,0 @@ - -// -using namespace System; -using namespace System::IO; -using namespace System::Collections; -using namespace System::Runtime::Serialization::Formatters::Binary; -using namespace System::Runtime::Serialization; -ref class App -{ -public: - static void Serialize() - { - - // Create a hashtable of values that will eventually be serialized. - Hashtable^ addresses = gcnew Hashtable; - addresses->Add( "Jeff", "123 Main Street, Redmond, WA 98052" ); - addresses->Add( "Fred", "987 Pine Road, Phila., PA 19116" ); - addresses->Add( "Mary", "PO Box 112233, Palo Alto, CA 94301" ); - - // To serialize the hashtable (and its keys/values), - // you must first open a stream for writing. - // In this case we will use a file stream. - FileStream^ fs = gcnew FileStream( "DataFile.dat",FileMode::Create ); - - // Construct a BinaryFormatter and use it to serialize the data to the stream. - BinaryFormatter^ formatter = gcnew BinaryFormatter; - try - { - formatter->Serialize( fs, addresses ); - } - catch ( SerializationException^ e ) - { - Console::WriteLine( "Failed to serialize. Reason: {0}", e->Message ); - throw; - } - finally - { - fs->Close(); - } - - } - - static void Deserialize() - { - - // Declare the hashtable reference. - Hashtable^ addresses = nullptr; - - // Open the file containing the data that we want to deserialize. - FileStream^ fs = gcnew FileStream( "DataFile.dat",FileMode::Open ); - try - { - BinaryFormatter^ formatter = gcnew BinaryFormatter; - - // Deserialize the hashtable from the file and - // assign the reference to our local variable. - addresses = dynamic_cast(formatter->Deserialize( fs )); - } - catch ( SerializationException^ e ) - { - Console::WriteLine( "Failed to deserialize. Reason: {0}", e->Message ); - throw; - } - finally - { - fs->Close(); - } - - - // To prove that the table deserialized correctly, display the keys/values. - IEnumerator^ myEnum = addresses->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - DictionaryEntry ^ de = safe_cast(myEnum->Current); - Console::WriteLine( " {0} lives at {1}.", de->Key, de->Value ); - } - } - -}; - - -[STAThread] -int main() -{ - App::Serialize(); - App::Deserialize(); - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/BindingCollectionSample2/CPP/bindingcollectionsample2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/BindingCollectionSample2/CPP/bindingcollectionsample2.cpp deleted file mode 100644 index 0f79f9a52a7dc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/BindingCollectionSample2/CPP/bindingcollectionsample2.cpp +++ /dev/null @@ -1,170 +0,0 @@ -// System.Web.Services.Description.Binding.Binding();System.Web.Services.Description.Binding.Name; -// System.Web.Services.Description.Binding.Type;System.Web.Services.Description.Binding.Extensions;System.Web.Services.Description.Binding.Operations; -// System.Web.Services.Description.BindingCollection.Insert; -// System.Web.Services.Description.Binding.ServiceDescription; - -// Grouping Clause : Snippet5 and Snippet8 go together. - -/* The following example demonstrates the constructor 'Binding()' and properties 'Extensions','Name','Operations', - 'ServiceDescription' and 'Type' property of 'Binding' class AND method 'Insert' of 'BindingCollection' class. - The input to the program is a WSDL file 'MathService_input.wsdl' with all information related to SOAP protocol - removed from it.In a way it tries to simulate a scenario wherein a service initially did not support a protocol, however later - on happen to support it. - IN this example the WSDL file is modified to insert a new Binding for SOAP. The binding is populated based on - WSDL document structure defined in WSDL specification. The ServiceDescription instance is loaded with values - for 'Messages', 'PortTypes','Bindings' and 'Port'.The instance is then written to an external file 'MathService_new.wsdl'. - * */ - -#using -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Web::Services::Description; -using namespace System::Xml; - -ref class MyClass -{ -public: - // Creates a Message with name ="messageName" having one MessagePart with name = "partName". - static Message^ CreateMessage( String^ messageName, String^ partName, String^ element, String^ targetNamespace ) - { - Message^ myMessage = gcnew Message; - myMessage->Name = messageName; - MessagePart^ myMessagePart = gcnew MessagePart; - myMessagePart->Name = partName; - myMessagePart->Element = gcnew XmlQualifiedName( element,targetNamespace ); - myMessage->Parts->Add( myMessagePart ); - return myMessage; - } - - // Used to create Operations under PortType. - static Operation^ CreateOperation( String^ operationName, String^ inputMessage, String^ outputMessage, String^ targetNamespace ) - { - Operation^ myOperation = gcnew Operation; - myOperation->Name = operationName; - OperationMessage^ input = (OperationMessage^)( gcnew OperationInput ); - input->Message = gcnew XmlQualifiedName( inputMessage,targetNamespace ); - OperationMessage^ output = (OperationMessage^)( gcnew OperationOutput ); - output->Message = gcnew XmlQualifiedName( outputMessage,targetNamespace ); - myOperation->Messages->Add( input ); - myOperation->Messages->Add( output ); - return myOperation; - } - -// - // Used to create OperationBinding instances within 'Binding'. -public: - static OperationBinding^ CreateOperationBinding( String^ operation, String^ targetNamespace ) - { - // Create OperationBinding instance for operation. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = operation; - // Create InputBinding for operation. - InputBinding^ myInputBinding = gcnew InputBinding; - SoapBodyBinding^ mySoapBodyBinding = gcnew SoapBodyBinding; - mySoapBodyBinding->Use = SoapBindingUse::Literal; - myInputBinding->Extensions->Add( mySoapBodyBinding ); - // Create OutputBinding for operation. - OutputBinding^ myOutputBinding = gcnew OutputBinding; - myOutputBinding->Extensions->Add( mySoapBodyBinding ); - // Add 'InputBinding' and 'OutputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInputBinding; - myOperationBinding->Output = myOutputBinding; - // Create extensibility element for 'SoapOperationBinding'. - SoapOperationBinding^ mySoapOperationBinding = gcnew SoapOperationBinding; - mySoapOperationBinding->Style = SoapBindingStyle::Document; - mySoapOperationBinding->SoapAction = String::Concat( targetNamespace, operation ); - // Add extensibility element 'SoapOperationBinding' to 'OperationBinding'. - myOperationBinding->Extensions->Add( mySoapOperationBinding ); - return myOperationBinding; - } -// - - static void Main() - { - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_input.wsdl" ); - // Create SOAP Messages. - myServiceDescription->Messages->Add( CreateMessage( "AddSoapIn", "parameters", "Add", myServiceDescription->TargetNamespace ) ); - myServiceDescription->Messages->Add( CreateMessage( "AddSoapOut", "parameters", "AddResponse", myServiceDescription->TargetNamespace ) ); - myServiceDescription->Messages->Add( CreateMessage( "SubtractSoapIn", "parameters", "Subtract", myServiceDescription->TargetNamespace ) ); - myServiceDescription->Messages->Add( CreateMessage( "SubtractSoapOut", "parameters", "SubtractResponse", myServiceDescription->TargetNamespace ) ); - myServiceDescription->Messages->Add( CreateMessage( "MultiplySoapIn", "parameters", "Multiply", myServiceDescription->TargetNamespace ) ); - myServiceDescription->Messages->Add( CreateMessage( "MultiplySoapOut", "parameters", "MultiplyResponse", myServiceDescription->TargetNamespace ) ); - myServiceDescription->Messages->Add( CreateMessage( "DivideSoapIn", "parameters", "Divide", myServiceDescription->TargetNamespace ) ); - myServiceDescription->Messages->Add( CreateMessage( "DivideSoapOut", "parameters", "DivideResponse", myServiceDescription->TargetNamespace ) ); - - // Create a new PortType. - PortType^ soapPortType = gcnew PortType; - soapPortType->Name = "MathServiceSoap"; - soapPortType->Operations->Add( CreateOperation( "Add", "AddSoapIn", "AddSoapOut", myServiceDescription->TargetNamespace ) ); - soapPortType->Operations->Add( CreateOperation( "Subtract", "SubtractSoapIn", "SubtractSoapOut", myServiceDescription->TargetNamespace ) ); - soapPortType->Operations->Add( CreateOperation( "Multiply", "MultiplySoapIn", "MultiplySoapOut", myServiceDescription->TargetNamespace ) ); - soapPortType->Operations->Add( CreateOperation( "Divide", "DivideSoapIn", "DivideSoapOut", myServiceDescription->TargetNamespace ) ); - myServiceDescription->PortTypes->Add( soapPortType ); - -// -// -// - // Create a new Binding for SOAP Protocol. - Binding^ myBinding = gcnew Binding; - myBinding->Name = String::Concat( myServiceDescription->Services->default[ 0 ]->Name, "Soap" ); -// - -// - // Pass the name of the existing porttype 'MathServiceSoap' and the Xml targetNamespace attribute of the Descriptions tag. - myBinding->Type = gcnew XmlQualifiedName( "MathServiceSoap",myServiceDescription->TargetNamespace ); -// - -// - // Create SOAP Extensibility element. - SoapBinding^ mySoapBinding = gcnew SoapBinding; - // SOAP over HTTP. - mySoapBinding->Transport = "http://schemas.xmlsoap.org/soap/http"; - mySoapBinding->Style = SoapBindingStyle::Document; - // Add tag soap:binding as an extensibility element. - myBinding->Extensions->Add( mySoapBinding ); -// - -// - // Create OperationBindings for each of the operations defined in asmx file. - OperationBinding^ addOperationBinding = CreateOperationBinding( "Add", myServiceDescription->TargetNamespace ); - myBinding->Operations->Add( addOperationBinding ); - OperationBinding^ subtractOperationBinding = CreateOperationBinding( "Subtract", myServiceDescription->TargetNamespace ); - myBinding->Operations->Add( subtractOperationBinding ); - OperationBinding^ multiplyOperationBinding = CreateOperationBinding( "Multiply", myServiceDescription->TargetNamespace ); - myBinding->Operations->Add( multiplyOperationBinding ); - OperationBinding^ divideOperationBinding = CreateOperationBinding( "Divide", myServiceDescription->TargetNamespace ); - myBinding->Operations->Add( divideOperationBinding ); -// - - myServiceDescription->Bindings->Insert( 0, myBinding ); -// -// - -// - Console::WriteLine( "\nTarget Namespace of the Service Description to which the binding was added is:{0}", myServiceDescription->Bindings->default[ 0 ]->ServiceDescription->TargetNamespace ); -// - - // Create Port. - Port^ soapPort = gcnew Port; - soapPort->Name = "MathServiceSoap"; - soapPort->Binding = gcnew XmlQualifiedName( myBinding->Name,myServiceDescription->TargetNamespace ); - // Create SoapAddress extensibility element to add to port. - SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding; - mySoapAddressBinding->Location = "http://localhost/BindingCollectionSample/MathService.asmx"; - soapPort->Extensions->Add( mySoapAddressBinding ); - // Add port to the MathService which is the first service in the Service Collection. - myServiceDescription->Services->default[ 0 ]->Ports->Add( soapPort ); - // Save the ServiceDescripition instance to an external file. - myServiceDescription->Write( "MathService_new.wsdl" ); - Console::WriteLine( "\nSuccessfully added bindings for SOAP protocol and saved results in file MathService_new.wsdl" ); - Console::WriteLine( "\n This file should be passed to wsdl tool as input to generate proxy" ); - } -}; - -int main() -{ - MyClass::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/BindingCollectionsample1/CPP/bindingcollectionsample1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/BindingCollectionsample1/CPP/bindingcollectionsample1.cpp deleted file mode 100644 index 1e66ce14ccb62..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/BindingCollectionsample1/CPP/bindingcollectionsample1.cpp +++ /dev/null @@ -1,62 +0,0 @@ - - -// System::Web::Services::Description.BindingCollection;System::Web::Services::Description.BindingCollection::Item->Item[Int32]; -// System::Web::Services::Description.BindingCollection::Item->Item[String];System::Web::Services::Description.BindingCollection::CopyTo -/* The program reads a wsdl document S"MathService::wsdl" and instantiates a -// ServiceDescription instance from the WSDL document.A BindingCollection instance -// is then retrieved from this ServiceDescription instance and it's members are demonstrated. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - Binding^ myBinding; - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_input.wsdl" ); - Console::WriteLine( "Total Number of bindings : {0}", myServiceDescription->Bindings->Count ); - - // - for ( int i = 0; i < myServiceDescription->Bindings->Count; ++i ) - { - Console::WriteLine( "\nBinding {0}", i ); - - // Get Binding at index i. - myBinding = myServiceDescription->Bindings[ i ]; - Console::WriteLine( "\t Name : {0}", myBinding->Name ); - Console::WriteLine( "\t Type : {0}", myBinding->Type ); - } - // - - // - array^myBindings = gcnew array(myServiceDescription->Bindings->Count); - - // Copy BindingCollection to an Array. - myServiceDescription->Bindings->CopyTo( myBindings, 0 ); - Console::WriteLine( "\n\n Displaying array copied from BindingCollection" ); - for ( int i = 0; i < myServiceDescription->Bindings->Count; ++i ) - { - Console::WriteLine( "\nBinding {0}", i ); - Console::WriteLine( "\t Name : {0}", myBindings[ i ]->Name ); - Console::WriteLine( "\t Type : {0}", myBindings[ i ]->Type ); - } - // - - // - // Get Binding Name = S"MathServiceSoap". - myBinding = myServiceDescription->Bindings[ "MathServiceHttpGet" ]; - if ( myBinding != nullptr ) - { - Console::WriteLine( "\n\nName : {0}", myBinding->Name ); - Console::WriteLine( "Type : {0}", myBinding->Type ); - } - // - - myServiceDescription = nullptr; - myBinding = nullptr; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/BindingCollectionsample3/CPP/bindingcollectionsample3.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/BindingCollectionsample3/CPP/bindingcollectionsample3.cpp deleted file mode 100644 index 3be2280b84de5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/BindingCollectionsample3/CPP/bindingcollectionsample3.cpp +++ /dev/null @@ -1,51 +0,0 @@ - - -// System::Web::Services::Description.BindingCollection;System::Web::Services::Description.Remove;System::Web::Services::Description.Add; -// System::Web::Services::Description.Contains;System::Web::Services::Description.IndexOf -/*The following example reads the contents of a file 'MathService::wsdl' into a ServiceDescription instance. -Removes first binding in the BindingCollection of the ServiceDescription instance and writes the current -'ServiceDescription' instance into a temporary file. -Adds the same binding back again into the instance and writes to another temporary file. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; - -int main() -{ - Binding^ myBinding; - - // - // - // - // - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_input.wsdl" ); - Console::WriteLine( "Total Number of bindings defined are: {0}", myServiceDescription->Bindings->Count ); - myBinding = myServiceDescription->Bindings[ 0 ]; - - // Remove the first binding in the collection. - myServiceDescription->Bindings->Remove( myBinding ); - Console::WriteLine( "Successfully removed binding {0}", myBinding->Name ); - Console::WriteLine( "Total Number of bindings defined now are: {0}", myServiceDescription->Bindings->Count ); - myServiceDescription->Write( "MathService_temp.wsdl" ); - // - - // Add binding to the ServiceDescription instance. - myServiceDescription->Bindings->Add( myBinding ); - // - - if ( myServiceDescription->Bindings->Contains( myBinding ) ) - Console::WriteLine( "Successfully added binding {0}", myBinding->Name ); - // - - Console::WriteLine( "Binding was added at index {0}", myServiceDescription->Bindings->IndexOf( myBinding ) ); - Console::WriteLine( "Total Number of bindings defined now are: {0}", myServiceDescription->Bindings->Count ); - myServiceDescription->Write( "MathService_temp1.wsdl" ); - // - * myServiceDescription = 0; - - myBinding = nullptr; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CallContext/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CallContext/CPP/client.cpp deleted file mode 100644 index e138ddb4a2ff4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CallContext/CPP/client.cpp +++ /dev/null @@ -1,49 +0,0 @@ - - -// -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Security::Principal; -int main() -{ - GenericIdentity^ ident = gcnew GenericIdentity( "Bob" ); - array^id = gcnew array(1); - id[ 0 ] = "Level1"; - GenericPrincipal^ prpal = gcnew GenericPrincipal( ident,id ); - LogicalCallContextData ^ data = gcnew LogicalCallContextData( prpal ); - - //Enter data into the CallContext - CallContext::SetData( "test data", data ); - Console::WriteLine( data->numOfAccesses ); - ChannelServices::RegisterChannel( gcnew TcpChannel ); - RemotingConfiguration::RegisterActivatedClientType( HelloServiceClass::typeid, "tcp://localhost:8082" ); - HelloServiceClass ^ service = gcnew HelloServiceClass; - if ( service == nullptr ) - { - Console::WriteLine( "Could not locate server." ); - return 0; - } - - // call remote method - Console::WriteLine(); - Console::WriteLine( "Calling remote Object*" ); - Console::WriteLine( service->HelloMethod( "Caveman" ) ); - Console::WriteLine( service->HelloMethod( "Spaceman" ) ); - Console::WriteLine( service->HelloMethod( "Bob" ) ); - Console::WriteLine( "Finished remote Object* call" ); - Console::WriteLine(); - - //Extract the returned data from the call context - LogicalCallContextData ^ returnedData = static_cast(CallContext::GetData( "test data" )); - Console::WriteLine( data->numOfAccesses ); - Console::WriteLine( returnedData->numOfAccesses ); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CallContext/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/CallContext/CPP/makefile deleted file mode 100644 index 6eb42d41f53f5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CallContext/CPP/makefile +++ /dev/null @@ -1,8 +0,0 @@ -all : Client.exe - - -Client.exe : Client.cpp Service.dll - cl /clr:pure Client.cpp - -Service.dll : Service.cpp - cl /clr:pure /LD Service.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CallContext/CPP/service.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CallContext/CPP/service.cpp deleted file mode 100644 index 62c2799b868c2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CallContext/CPP/service.cpp +++ /dev/null @@ -1,94 +0,0 @@ - -using namespace System; -using namespace System::Text; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Security::Principal; - -// -[Serializable] -public ref class LogicalCallContextData: public ILogicalThreadAffinative -{ -private: - int _nAccesses; - IPrincipal^ _principal; - -public: - - property String^ numOfAccesses - { - String^ get() - { - return String::Format( "The identity of {0} has been accessed {1} times.", _principal->Identity->Name, _nAccesses ); - } - } - - property IPrincipal^ Principal - { - IPrincipal^ get() - { - _nAccesses++; - return _principal; - } - } - - LogicalCallContextData( IPrincipal^ p ) - { - _nAccesses = 0; - _principal = p; - } - -}; -// - -// -using namespace System; -using namespace System::Text; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Security::Principal; -using namespace System::Security::Permissions; - -ref class LogicalCallContextData; - -public ref class HelloServiceClass: public MarshalByRefObject -{ -private: - static int n_instances; - int instanceNum; - -public: - HelloServiceClass() - { - n_instances++; - instanceNum = n_instances; - Console::WriteLine( "{0} has been created. Instance # = {1}", this->GetType()->Name, instanceNum ); - } - - ~HelloServiceClass() - { - Console::WriteLine( "Destroyed instance {0} of HelloServiceClass.", instanceNum ); - } - - [SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::Infrastructure)] - String^ HelloMethod( String^ name ) - { - //Extract the call context data - LogicalCallContextData^ data = dynamic_cast(CallContext::GetData( "test data" )); - IPrincipal^ myPrincipal = data->Principal; - - //Check the user identity - if ( myPrincipal->Identity->Name == "Bob" ) - { - Console::WriteLine( "\nHello {0}, you are identified!", myPrincipal->Identity->Name ); - Console::WriteLine( data->numOfAccesses ); - } - else - { - Console::WriteLine( "Go away! You are not identified!" ); - return String::Empty; - } - - // calculate and return result to client - return String::Format( "Hi there {0}.", name ); - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CallContext_GetHeaders/CPP/CallContext_Server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CallContext_GetHeaders/CPP/CallContext_Server.cpp deleted file mode 100644 index 259f7d0d74ffd..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CallContext_GetHeaders/CPP/CallContext_Server.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -namespace RemotingSamples -{ - ref class HelloServer - { - public: - static void Main() - { - TcpChannel^ myChannel = gcnew TcpChannel( 8082 ); - ChannelServices::RegisterChannel( myChannel ); - RemotingConfiguration::RegisterActivatedServiceType( HelloService::typeid ); - Console::WriteLine( "Server started." ); - Console::WriteLine( "Hit enter to terminate..." ); - Console::Read(); - } - }; -} - -int main() -{ - RemotingSamples::HelloServer::Main(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CallContext_GetHeaders/CPP/callcontext_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CallContext_GetHeaders/CPP/callcontext_client.cpp deleted file mode 100644 index f5539f7655bcf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CallContext_GetHeaders/CPP/callcontext_client.cpp +++ /dev/null @@ -1,110 +0,0 @@ -// System::Runtime::Remoting::CallContext.FreeNamedDataSlot(String*) -// System::Runtime::Remoting::CallContext.GetHeaders() -// System::Runtime::Remoting::CallContext.SetHeaders(Header->Item[]) - -/* The following example demonstrates 'FreeNamedDataSlot', 'GetHeaders', -and 'SetHeaders' methods of 'CallContext' class. - -In the example 'SetData' method is used to set dataSlot. The 'DataSlot' is freed using -'FreeNamedDataSlot' method by passing the Name parameter. -For Setting header an array of type 'Messaging::Header' is passed with method call. -Headers are set in 'HeaderMethod' of remote Object* using 'SetHeaders' method. -Finally the 'GetHeaders' method is used to get all headers. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Remoting::Contexts; -using namespace System::Security; -using namespace System::Security::Principal; -using namespace System::Collections; - -int main() -{ -// - // Register the channel. - TcpChannel^ myChannel = gcnew TcpChannel; - ChannelServices::RegisterChannel( myChannel ); - RemotingConfiguration::RegisterActivatedClientType( HelloService::typeid, "Tcp://localhost:8082" ); - - GenericIdentity^ myIdentity = gcnew GenericIdentity( "Bob" ); - array^ idStr = gcnew array(1); - idStr[ 0 ] = "Level1"; - GenericPrincipal^ myPrincipal = gcnew GenericPrincipal( myIdentity, idStr ); - MyLogicalCallContextData ^ myData = gcnew MyLogicalCallContextData( myPrincipal ); - - // Set DataSlot with name parameter. - CallContext::SetData( "test data", myData ); - - // Create a remote Object*. - HelloService ^ myService = gcnew HelloService; - if ( myService == nullptr ) - { - Console::WriteLine( "Cannot locate server." ); - return -1; - } - - // Call the Remote methods. - Console::WriteLine( "Remote method output is {0}", myService->HelloMethod( "Microsoft" ) ); - - MyLogicalCallContextData ^ myReturnData = - (MyLogicalCallContextData^)( CallContext::GetData( "test data" ) ); - if ( myReturnData == nullptr ) - { - Console::WriteLine( "Data is 0." ); - } - else - { - Console::WriteLine( "Data is ' {0}'", myReturnData->numOfAccesses ); - } - - // DataSlot with same Name Parameter which was Set is Freed. - CallContext::FreeNamedDataSlot( "test data" ); - MyLogicalCallContextData ^ myReturnData1 = - (MyLogicalCallContextData^)( CallContext::GetData( "test data" ) ); - if ( myReturnData1 == nullptr ) - { - Console::WriteLine( "FreeNamedDataSlot Successful for test data" ); - } - else - { - Console::WriteLine( "FreeNamedDataSlot Failed for test data" ); - } -// - -// - // Array of Headers with name and values initialized. - array^ myArrSetHeader = { gcnew Header( "Header0","CallContextHeader0" ), - gcnew Header( "Header1","CallContextHeader1" ) }; - - // Pass the Header Array with method call. - // Header will be set in the method by'CallContext::SetHeaders' method in remote Object*. - Console::WriteLine( "Remote HeaderMethod output is {0}", - myService->HeaderMethod( "CallContextHeader", myArrSetHeader ) ); - - array^ myArrGetHeader; - // Get Header Array. - myArrGetHeader = CallContext::GetHeaders(); - if ( nullptr == myArrGetHeader ) - { - Console::WriteLine( "CallContext::GetHeaders Failed" ); - } - else - { - Console::WriteLine( "Headers:" ); - } - - for each ( Header^ myHeader in myArrGetHeader ) - { - Console::WriteLine( "Value in Header '{0}' is '{1}'.", - myHeader->Name, myHeader->Value ); - } -// -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CallContext_GetHeaders/CPP/callcontext_share.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CallContext_GetHeaders/CPP/callcontext_share.cpp deleted file mode 100644 index 0881c0e9ab0d1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CallContext_GetHeaders/CPP/callcontext_share.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// System::Runtime::Remoting::CallContext.SetHeaders(Header->Item[]) - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Remoting::Contexts; -using namespace System::Security; -using namespace System::Security::Principal; -using namespace System::Security::Permissions; - -// -public ref class HelloService: public MarshalByRefObject -{ -public: - String^ HelloMethod( String^ name ) - { - Console::WriteLine( "Hello {0}", name ); - return "Hello {0}",name; - } - - - [SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::Infrastructure)] - String^ HeaderMethod( String^ name, array^arrHeader ) - { - Console::WriteLine( "HeaderMethod {0}", name ); - - //Header Set with the header array passed - CallContext::SetHeaders( arrHeader ); - return "HeaderMethod {0}",name; - } -}; -// - -// 'CallContext' and 'ILogicalThreadAffinative*' is needed to pass information between threads -// on either end of a call across an application domain boundary or context boundary. - -[Serializable] -public ref class MyLogicalCallContextData: public ILogicalThreadAffinative -{ -private: - int noOfAccesses; - IPrincipal^ myIprincipal; - -public: - property String^ numOfAccesses - { - String^ get() - { - return String::Format( "The identity of {0} has been accessed {1} times.", - myIprincipal->Identity->Name, noOfAccesses ); - } - } - - property IPrincipal^ Principal - { - IPrincipal^ get() - { - noOfAccesses++; - return myIprincipal; - } - } - - MyLogicalCallContextData( IPrincipal^ p ) - { - noOfAccesses = 0; - myIprincipal = p; - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CallContext_GetHeaders/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/CallContext_GetHeaders/CPP/makefile deleted file mode 100644 index 8ec88e5d193ec..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CallContext_GetHeaders/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: callcontext_Server.exe callcontext_Client.exe - -callcontext_Server.exe: callcontext_Server.cpp callcontext_Share.dll - cl /clr:pure callcontext_Server.cpp - -callcontext_Client.exe: callcontext_Client.cpp callcontext_Share.dll - cl /clr:pure callcontext_Client.cpp - -callcontext_Share.dll: callcontext_Share.cpp - cl /LD /clr:pure callcontext_Share.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_GetChannel/CPP/ChannelServices_GetChannel_Share.cs b/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_GetChannel/CPP/ChannelServices_GetChannel_Share.cs deleted file mode 100644 index c589c19b77da7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_GetChannel/CPP/ChannelServices_GetChannel_Share.cs +++ /dev/null @@ -1,20 +0,0 @@ -/* - This program implments the remote method which will be called by the - client. -*/ -using System; -namespace RemotingSamples -{ - public class HelloServer : MarshalByRefObject - { - public HelloServer() - { - Console.WriteLine("HelloServer activated"); - } - public String HelloMethod(String name) - { - Console.WriteLine("Hello.HelloMethod : {0}", name); - return "Hi there " + name; - } - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_GetChannel/CPP/channelservices_getchannel_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_GetChannel/CPP/channelservices_getchannel_client.cpp deleted file mode 100644 index 9bd8438fc367a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_GetChannel/CPP/channelservices_getchannel_client.cpp +++ /dev/null @@ -1,56 +0,0 @@ - - -// System.Runtime.Remoting.Channels.ChannelServices.GetChannel -// System.Runtime.Remoting.Channels.ChannelServices.GetChannelSinkProperties -/* -This example demonstrates the usage of the properties 'GetChannel' and -'GetChannelSinkProperties' of the 'ChannelServices' class. It displays -the registered channel name, priority and channelsinkproperties -for a given proxy and executes a remote method 'HelloMethod'. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Collections; -using namespace System::Collections::Specialized; -int main() -{ - ListDictionary^ myProperties = gcnew ListDictionary; - myProperties->Add( "port", 8085 ); - myProperties->Add( "name", "MyHttpChannel" ); - - // - HttpChannel^ myClientChannel = gcnew HttpChannel( myProperties,gcnew SoapClientFormatterSinkProvider,gcnew SoapServerFormatterSinkProvider ); - ChannelServices::RegisterChannel( myClientChannel, false ); - - // Get the registered channel. - Console::WriteLine( "Channel Name : {0}", ChannelServices::GetChannel( myClientChannel->ChannelName )->ChannelName ); - Console::WriteLine( "Channel Priorty : {0}", ChannelServices::GetChannel( myClientChannel->ChannelName )->ChannelPriority ); - - // - RemotingSamples::HelloServer^ myProxy = dynamic_cast(Activator::GetObject( RemotingSamples::HelloServer::typeid, "http://localhost:8086/SayHello" )); - - // - // Get an IDictionary of properties for a given proxy. - IDictionary^ myDictionary = ChannelServices::GetChannelSinkProperties( myProxy ); - ICollection^ myKeysCollection = myDictionary->Keys; - array^myKeysArray = gcnew array(myKeysCollection->Count); - ICollection^ myValuesCollection = myDictionary->Values; - array^myValuesArray = gcnew array(myValuesCollection->Count); - myKeysCollection->CopyTo( myKeysArray, 0 ); - myValuesCollection->CopyTo( myValuesArray, 0 ); - for ( int iIndex = 0; iIndex < myKeysArray->Length; iIndex++ ) - { - Console::WriteLine( "Property Name : {0} value : {1}", myKeysArray[ iIndex ], myValuesArray[ iIndex ] ); - - } - // - if ( myProxy == nullptr ) - System::Console::WriteLine( "Could not locate server" ); - else - Console::WriteLine( myProxy->HelloMethod( "Caveman" ) ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_GetChannel/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_GetChannel/CPP/makefile deleted file mode 100644 index 75029c096ecd6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_GetChannel/CPP/makefile +++ /dev/null @@ -1,7 +0,0 @@ -all: ChannelServices_GetChannel_Share.dll channelservices_getchannel_client.exe - -ChannelServices_GetChannel_Share.dll: ChannelServices_GetChannel_Share.cs - csc /t:library ChannelServices_GetChannel_Share.cs - -channelservices_getchannel_client.exe : channelservices_getchannel_client.cpp ChannelServices_GetChannel_Share.dll - cl /clr channelservices_getchannel_client.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_RegisteredChannels/CPP/ChannelServices_RegisteredChannels_Share.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_RegisteredChannels/CPP/ChannelServices_RegisteredChannels_Share.cpp deleted file mode 100644 index 26a3250564c2f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_RegisteredChannels/CPP/ChannelServices_RegisteredChannels_Share.cpp +++ /dev/null @@ -1,26 +0,0 @@ -/* - The class 'HelloServer' is derived from 'MarshalByRefObject' to - make it remotable. -*/ -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; - -namespace RemotingSamples -{ - public ref class HelloServer : public MarshalByRefObject - { -public: - HelloServer() - { - Console::WriteLine("HelloServer activated"); - } - -public: - String^ HelloMethod(String^ myName) - { - Console::WriteLine("Hello.HelloMethod : {0}", myName); - return "Hi there " + myName; - } - }; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_RegisteredChannels/CPP/channelservices_registeredchannels_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_RegisteredChannels/CPP/channelservices_registeredchannels_client.cpp deleted file mode 100644 index 21547e27699b8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_RegisteredChannels/CPP/channelservices_registeredchannels_client.cpp +++ /dev/null @@ -1,50 +0,0 @@ - - -// System.Runtime.Remoting.Channels.ChannelServices.GetUrlsForObject(MarshalByRefObject) -/* -The following example demonstrates the method 'GetUrlsForObject' -of the class 'ChannelServices'. The example is just a client, it -locates and connects to the server, retrieves a proxy for the remote -object, and calls the 'HelloMethod' on the remote object, passing the -string 'Caveman' as a parameter. The server returns the string -'Hi there Caveman'. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels::Http; - -int main() -{ - try - { - TcpChannel^ myTcpChannel = gcnew TcpChannel( 8084 ); - ChannelServices::RegisterChannel( myTcpChannel ); - RemotingSamples::HelloServer ^ myHelloServer = dynamic_cast(Activator::GetObject( RemotingSamples::HelloServer::typeid, "tcp://localhost:8080/SayHello" )); - if ( myHelloServer == nullptr ) - System::Console::WriteLine( "Could not locate server" ); - else - { - - // - array^myURLArray = ChannelServices::GetUrlsForObject( myHelloServer ); - Console::WriteLine( "Number of URLs for the specified Object: {0}", myURLArray->Length ); - for ( int iIndex = 0; iIndex < myURLArray->Length; iIndex++ ) - Console::WriteLine( "URL: {0}", myURLArray[ iIndex ] ); - // - - Console::WriteLine( myHelloServer->HelloMethod( "Caveman" ) ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "The source of exception: {0}", e->Source ); - Console::WriteLine( "The Message of exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_RegisteredChannels/CPP/channelservices_registeredchannels_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_RegisteredChannels/CPP/channelservices_registeredchannels_server.cpp deleted file mode 100644 index 66308d4472337..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_RegisteredChannels/CPP/channelservices_registeredchannels_server.cpp +++ /dev/null @@ -1,69 +0,0 @@ - - -// System.Runtime.Remoting.Channels.ChannelServices -// System.Runtime.Remoting.Channels.ChannelServices.RegisteredChannels -// System.Runtime.Remoting.Channels.ChannelServices.UnregisterChannel(IChannel[]) -/* -The following example demonstrates the property 'RegisteredChannels' -of the class 'ChannelServices', its method 'UnregisterChannel', -and usage of the class 'ChannelServices'. The example demonstrates -the remoting version of a server. When a client calls the -'HelloMethod' on the 'HelloServer' class, the server object appends the -string passed from the client to the string "Hi There" and returns the -resulting string back to the client. -*/ -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels::Http; - -int main() -{ - try - { - // - // Create and register 'HttpChannel'. - HttpChannel^ myHttpChannel = gcnew HttpChannel( 8085 ); - ChannelServices::RegisterChannel( myHttpChannel ); - - // Create and register 'TcpChannel'. - TcpChannel^ myTcpChannel = gcnew TcpChannel( 8080 ); - ChannelServices::RegisterChannel( myTcpChannel ); - - // - // Retrieve and print information about the registered channels. - array^myIChannelArray = ChannelServices::RegisteredChannels; - for ( int i = 0; i < myIChannelArray->Length; i++ ) - { - Console::WriteLine( "Name of Channel: {0}", myIChannelArray[ i ]->ChannelName ); - Console::WriteLine( "Priority of Channel: {0}", myIChannelArray[ i ]->ChannelPriority ); - - } - // - RemotingConfiguration::RegisterWellKnownServiceType( Type::GetType( "RemotingSamples.HelloServer,ChannelServices_RegisteredChannels_Share" ), "SayHello", WellKnownObjectMode::SingleCall ); - - // - System::Console::WriteLine( "Hit to unregister the channels..." ); - System::Console::ReadLine(); - - // Unregister the 'HttpChannel' and 'TcpChannel' channels. - ChannelServices::UnregisterChannel( myTcpChannel ); - ChannelServices::UnregisterChannel( myHttpChannel ); - Console::WriteLine( "Unregistered the channels." ); - - // - System::Console::WriteLine( "Hit to exit..." ); - System::Console::ReadLine(); - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "The source of exception: {0}", e->Source ); - Console::WriteLine( "The Message of exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_RegisteredChannels/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_RegisteredChannels/CPP/makefile deleted file mode 100644 index 94358d96538c3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_RegisteredChannels/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: server.exe client.exe - -server.exe: ChannelServices_registeredchannels_Server.cpp ChannelServices_registeredchannels_Share.dll - cl /clr:pure ChannelServices_registeredchannels_Server.cpp - -client.exe: channelservices_registeredchannels_client.cpp ChannelServices_registeredchannels_Share.dll - cl /clr:pure ChannelServices_registeredchannels_client.cpp - -ChannelServices_RegisteredChannels_Share.dll: ChannelServices_RegisteredChannels_Share.cpp - cl /clr:pure /LD ChannelServices_RegisteredChannels_Share.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_SyncDispatchMessage/CPP/ChannelServices_SyncDispatchMessage_share.cs b/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_SyncDispatchMessage/CPP/ChannelServices_SyncDispatchMessage_share.cs deleted file mode 100644 index 997024604bf93..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_SyncDispatchMessage/CPP/ChannelServices_SyncDispatchMessage_share.cs +++ /dev/null @@ -1,15 +0,0 @@ -/* - The class 'PrintServer' is derived from 'MarshalByRefObject' to - make it remotable. -*/ -using System; -using System.Runtime.Remoting; -public class PrintServer : MarshalByRefObject -{ - public int MyPrintMethod(String myString, double fValue, int iValue) - { - Console.WriteLine("PrintServer.MyPrintMethod {0} {1} {2}", - myString, fValue, iValue); - return iValue; - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_SyncDispatchMessage/CPP/channelservices_syncdispatchmessage_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_SyncDispatchMessage/CPP/channelservices_syncdispatchmessage_client.cpp deleted file mode 100644 index 9c540f3858aca..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_SyncDispatchMessage/CPP/channelservices_syncdispatchmessage_client.cpp +++ /dev/null @@ -1,132 +0,0 @@ - - -// System.Runtime.Remoting.Channels.ChannelServices.SyncDispatchMessage(IMessage) -/* - The following example demonstrates 'SyncDispatchMessage' method of - 'ChannelServices' class. In the example, 'MyProxy' extends 'RealProxy' - class and overrides its constructor and 'Invoke' messages. In the 'Main' - method, the 'MyProxy' class is instantiated and 'MyPrintMethod' method - is called on it. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Proxies; -using namespace System::Runtime::Remoting::Messaging; - -// -// Create a custom 'RealProxy'. -public ref class MyProxy: public RealProxy -{ -private: - String^ myURIString; - MarshalByRefObject^ myMarshalByRefObject; - -public: - MyProxy( Type^ myType ) - : RealProxy( myType ) - { - - // RealProxy uses the Type to generate a transparent proxy. - myMarshalByRefObject = dynamic_cast(Activator::CreateInstance(myType)); - - // Get 'ObjRef', for transmission serialization between application domains. - ObjRef^ myObjRef = RemotingServices::Marshal( myMarshalByRefObject ); - - // Get the 'URI' property of 'ObjRef' and store it. - myURIString = myObjRef->URI; - Console::WriteLine( "URI :{0}", myObjRef->URI ); - } - - virtual IMessage^ Invoke ( IMessage^ myIMessage ) override - { - Console::WriteLine( "MyProxy.Invoke Start" ); - Console::WriteLine( "" ); - if ( dynamic_cast(myIMessage) ) - Console::WriteLine( "IMethodCallMessage" ); - - if ( dynamic_cast(myIMessage) ) - Console::WriteLine( "IMethodReturnMessage" ); - - Type^ msgType = myIMessage->GetType(); - Console::WriteLine( "Message Type: {0}", msgType ); - Console::WriteLine( "Message Properties" ); - IDictionary^ myIDictionary = myIMessage->Properties; - - // Set the '__Uri' property of 'IMessage' to 'URI' property of 'ObjRef'. - myIDictionary->default[ "__Uri" ] = myURIString; - IDictionaryEnumerator^ myIDictionaryEnumerator = dynamic_cast(myIDictionary->GetEnumerator()); - while ( myIDictionaryEnumerator->MoveNext() ) - { - Object^ myKey = myIDictionaryEnumerator->Key; - String^ myKeyName = myKey->ToString(); - Object^ myValue = myIDictionaryEnumerator->Value; - Console::WriteLine( "\t{0} : {1}", myKeyName, myIDictionaryEnumerator->Value ); - if ( myKeyName->Equals( "__Args" ) ) - { - array^myObjectArray = (array^)myValue; - for ( int aIndex = 0; aIndex < myObjectArray->Length; aIndex++ ) - Console::WriteLine( "\t\targ: {0} myValue: {1}", aIndex, myObjectArray[ aIndex ] ); - } - - if ( (myKeyName->Equals( "__MethodSignature" )) && (nullptr != myValue) ) - { - array^myObjectArray = (array^)myValue; - for ( int aIndex = 0; aIndex < myObjectArray->Length; aIndex++ ) - Console::WriteLine( "\t\targ: {0} myValue: {1}", aIndex, myObjectArray[ aIndex ] ); - } - } - - IMessage^ myReturnMessage; - myIDictionary->default[ "__Uri" ] = myURIString; - Console::WriteLine( "__Uri {0}", myIDictionary->default[ "__Uri" ] ); - Console::WriteLine( "ChannelServices.SyncDispatchMessage" ); - myReturnMessage = ChannelServices::SyncDispatchMessage( myIMessage ); - - // Push return value and OUT parameters back onto stack. - IMethodReturnMessage^ myMethodReturnMessage = dynamic_cast(myReturnMessage); - Console::WriteLine( "IMethodReturnMessage.ReturnValue: {0}", myMethodReturnMessage->ReturnValue ); - Console::WriteLine( "MyProxy.Invoke - Finish" ); - return myReturnMessage; - } -}; -// - -int main() -{ - try - { - TcpChannel^ myTcpChannel = gcnew TcpChannel( 8086 ); - ChannelServices::RegisterChannel( myTcpChannel, false ); - MyProxy^ myProxyObject = gcnew MyProxy( PrintServer::typeid); - PrintServer^ myPrintServer = dynamic_cast(myProxyObject->GetTransparentProxy()); - if ( myPrintServer == nullptr ) - Console::WriteLine( "Could not locate server" ); - else - Console::WriteLine( myPrintServer->MyPrintMethod( "String1", 1.2, 6 ) ); - Console::WriteLine( "Calling the Proxy" ); - int kValue = myPrintServer->MyPrintMethod( "String1", 1.2, 6 ); - Console::WriteLine( "Checking result" ); - if ( kValue == 6 ) - { - Console::WriteLine( "PrintServer.MyPrintMethod PASSED : returned {0}", kValue ); - } - else - { - Console::WriteLine( "PrintServer.MyPrintMethod FAILED : returned {0}", kValue ); - } - Console::WriteLine( "Sample Done" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "The source of exception: {0}", e->Source ); - Console::WriteLine( "The Message of exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_SyncDispatchMessage/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_SyncDispatchMessage/CPP/makefile deleted file mode 100644 index 177cf1738ee9f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ChannelServices_SyncDispatchMessage/CPP/makefile +++ /dev/null @@ -1,7 +0,0 @@ -all: ChannelServices_syncdispatchmessage_Share.dll channelservices_syncdispatchMessage_client.exe - -ChannelServices_syncdispatchmessage_Share.dll: ChannelServices_syncdispatchmessage_Share.cs - csc /t:library ChannelServices_syncdispatchmessage_Share.cs - -channelservices_syncdispatchMessage_client.exe: channelservices_syncdispatchmessage_client.cpp ChannelServices_syncdispatchmessage_Share.dll - cl /clr channelservices_syncdispatchmessage_client.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic CredentialCache.Add Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic CredentialCache.Add Example/CPP/source.cpp deleted file mode 100644 index eb8a5c280ac8c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic CredentialCache.Add Example/CPP/source.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; -public ref class Class -{ -private: - void Method1() - { - String^ UserName = Console::ReadLine(); - String^ SecurelyStoredPassword = Console::ReadLine(); - String^ Domain = Console::ReadLine(); - - WebRequest^ wReq = WebRequest::Create( "http://www.contoso.com" ); - - // - CredentialCache^ myCache = gcnew CredentialCache; - - myCache->Add( gcnew Uri( "http://www.contoso.com/" ), "Basic", gcnew NetworkCredential( UserName,SecurelyStoredPassword ) ); - myCache->Add( gcnew Uri( "http://www.contoso.com/" ), "Digest", gcnew NetworkCredential( UserName,SecurelyStoredPassword,Domain ) ); - - wReq->Credentials = myCache; - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Dns Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Dns Example/CPP/source.cpp deleted file mode 100644 index 1902e81255b95..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Dns Example/CPP/source.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Net; -using namespace System::Windows::Forms; -public ref class Form1: public Form - -{ -protected: - void Method() - { - // - IPHostEntry^ hostInfo = Dns::GetHostEntry( "www.contoso.com" ); - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic DnsPermissionAttributeExample/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic DnsPermissionAttributeExample/CPP/source.cpp deleted file mode 100644 index 56d68e22b91c2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic DnsPermissionAttributeExample/CPP/source.cpp +++ /dev/null @@ -1,42 +0,0 @@ - - -#using - -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Net; -using namespace System; - -// -//Uses the DnsPermissionAttribute to restrict access only to those who have permission. - -[DnsPermission(SecurityAction::Demand,Unrestricted=true)] -public ref class MyClass -{ -public: - static IPAddress^ GetIPAddress() - { - IPAddress^ ipAddress = Dns::Resolve( "localhost" )->AddressList[ 0 ]; - return ipAddress; - } - -}; - -int main() -{ - try - { - - //Grants Access. - Console::WriteLine( " Access granted\n The local host IP Address is :{0}", MyClass::GetIPAddress() ); - } - // Denies Access. - catch ( SecurityException^ securityException ) - { - Console::WriteLine( "Access denied" ); - Console::WriteLine( securityException->ToString() ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic GlobalProxySelection Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic GlobalProxySelection Example/CPP/source.cpp deleted file mode 100644 index e4aa5aedcd2f6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic GlobalProxySelection Example/CPP/source.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#using -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Windows::Forms; - -public ref class Form1: public Form -{ -public: - void Method() - { - // - Uri^ proxyURI = gcnew Uri( "http://webproxy:80" ); - GlobalProxySelection::Select = gcnew WebProxy( proxyURI ); - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpGetClientProtocol Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpGetClientProtocol Example/CPP/source.cpp deleted file mode 100644 index 4d4eebf4ef862..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpGetClientProtocol Example/CPP/source.cpp +++ /dev/null @@ -1,47 +0,0 @@ - - -// -#using -#using -#using - -using namespace System::Diagnostics; -using namespace System::Xml::Serialization; -using namespace System; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -public ref class MyMath: public System::Web::Services::Protocols::HttpGetClientProtocol -{ -public: - - [System::Diagnostics::DebuggerStepThroughAttribute] - MyMath() - { - this->Url = "http://www.contoso.com/math.asmx"; - } - - [System::Diagnostics::DebuggerStepThroughAttribute] - [System::Web::Services::Protocols::HttpMethodAttribute(System::Web::Services::Protocols::XmlReturnReader::typeid, - System::Web::Services::Protocols::UrlParameterWriter::typeid)] - [returnvalue:System::Xml::Serialization::XmlRootAttribute("snippet1>",Namespace="http://www.contoso.com/",IsNullable=false)] - int Add( String^ num1, String^ num2 ) - { - array^temp0 = {num1,num2}; - return *dynamic_cast(this->Invoke( "Add", (String::Concat( this->Url, "/Add" )), temp0 )); - } - - [System::Diagnostics::DebuggerStepThroughAttribute] - System::IAsyncResult^ BeginAdd( String^ num1, String^ num2, System::AsyncCallback^ callback, Object^ asyncState ) - { - array^temp1 = {num1,num2}; - return this->BeginInvoke( "Add", (String::Concat( this->Url, "/Add" )), temp1, callback, asyncState ); - } - - [System::Diagnostics::DebuggerStepThroughAttribute] - int EndAdd( System::IAsyncResult^ asyncResult ) - { - return *dynamic_cast(this->EndInvoke( asyncResult )); - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpMethodAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpMethodAttribute Example/CPP/source.cpp deleted file mode 100644 index 984c156653d0d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpMethodAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,45 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Web; -using namespace System::Web::UI; - -// -[System::Xml::Serialization::XmlRootAttribute(Namespace="http://tempuri.org/",IsNullable=true)] -public ref class UserName -{ -public: - String^ Name; - String^ Domain; -}; - -public ref class MyUser: public System::Web::Services::Protocols::HttpPostClientProtocol -{ -public: - MyUser() - { - this->Url = "http://www.contoso.com/username.asmx"; - } - - [System::Web::Services::Protocols::HttpMethodAttribute(System::Web::Services::Protocols::XmlReturnReader::typeid,System::Web::Services::Protocols::HtmlFormParameterWriter::typeid)] - UserName^ GetUserName() - { - return (dynamic_cast(this->Invoke( "GetUserName", (String::Concat( this->Url, "/GetUserName" )), gcnew array(0) ))); - } - - System::IAsyncResult^ BeginGetUserName( System::AsyncCallback^ callback, Object^ asyncState ) - { - return this->BeginInvoke( "GetUserName", (String::Concat( this->Url, "/GetUserName" )), gcnew array(0), callback, asyncState ); - } - - UserName^ EndGetUserName( System::IAsyncResult^ asyncResult ) - { - return (dynamic_cast(this->EndInvoke( asyncResult ))); - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpMethodAttribute.ReturnFormatter Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpMethodAttribute.ReturnFormatter Example/CPP/source.cpp deleted file mode 100644 index 3d8283f1fa73b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpMethodAttribute.ReturnFormatter Example/CPP/source.cpp +++ /dev/null @@ -1,45 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Web; -using namespace System::Web::UI; - -// -[System::Xml::Serialization::XmlRootAttribute(Namespace="http://tempuri.org/",IsNullable=true)] -public ref class UserName -{ -public: - String^ Name; - String^ Domain; -}; - -public ref class MyUser: public System::Web::Services::Protocols::HttpGetClientProtocol -{ -public: - MyUser() - { - this->Url = "http://www.contoso.com/username.asmx"; - } - - [System::Web::Services::Protocols::HttpMethodAttribute(System::Web::Services::Protocols::XmlReturnReader::typeid,System::Web::Services::Protocols::UrlParameterWriter::typeid)] - UserName^ GetUserName() - { - return (dynamic_cast(this->Invoke( "GetUserName", (String::Concat( this->Url, "/GetUserName" )), gcnew array(0) ))); - } - - System::IAsyncResult^ BeginGetUserName( System::AsyncCallback^ callback, Object^ asyncState ) - { - return this->BeginInvoke( "GetUserName", (String::Concat( this->Url, "/GetUserName" )), gcnew array(0), callback, asyncState ); - } - - UserName^ EndGetUserName( System::IAsyncResult^ asyncResult ) - { - return (dynamic_cast(this->EndInvoke( asyncResult ))); - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpPostClientProtocol Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpPostClientProtocol Example/CPP/source.cpp deleted file mode 100644 index 57e073dd49c0a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpPostClientProtocol Example/CPP/source.cpp +++ /dev/null @@ -1,47 +0,0 @@ - - -// -#using -#using -#using - -using namespace System::Diagnostics; -using namespace System::Xml::Serialization; -using namespace System; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -public ref class MyMath: public System::Web::Services::Protocols::HttpPostClientProtocol -{ -public: - - [System::Diagnostics::DebuggerStepThroughAttribute] - MyMath() - { - this->Url = "http://www.contoso.com/math.asmx"; - } - - [System::Diagnostics::DebuggerStepThroughAttribute] - [System::Web::Services::Protocols::HttpMethodAttribute(System::Web::Services::Protocols::XmlReturnReader::typeid, - System::Web::Services::Protocols::HtmlFormParameterWriter::typeid)] - [returnvalue:System::Xml::Serialization::XmlRootAttribute("snippet1>",Namespace="http://www.contoso.com/",IsNullable=false)] - int Add( String^ num1, String^ num2 ) - { - array^temp2 = {num1,num2}; - return *dynamic_cast(this->Invoke( "Add", (String::Concat( this->Url, "/Add" )), temp2 )); - } - - [System::Diagnostics::DebuggerStepThroughAttribute] - System::IAsyncResult^ BeginAdd( String^ num1, String^ num2, System::AsyncCallback^ callback, Object^ asyncState ) - { - array^temp3 = {num1,num2}; - return this->BeginInvoke( "Add", (this->Url + "/Add" ), temp3, callback, asyncState ); - } - - [System::Diagnostics::DebuggerStepThroughAttribute] - int EndAdd( System::IAsyncResult^ asyncResult ) - { - return *dynamic_cast(this->EndInvoke( asyncResult )); - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpSimpleClientProtocol Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpSimpleClientProtocol Example/CPP/source.cpp deleted file mode 100644 index 4c25623d8ecb4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpSimpleClientProtocol Example/CPP/source.cpp +++ /dev/null @@ -1,21 +0,0 @@ - - -// -#using -#using - -using namespace System::Web::Services; -using namespace System; -public ref class Math -{ -public: - - [WebMethod] - int Add( int num1, int num2 ) - { - return num1 + num2; - } - -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpSimpleClientProtocol.EndInvoke Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpSimpleClientProtocol.EndInvoke Example/CPP/source.cpp deleted file mode 100644 index 87d6b7f28b35b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpSimpleClientProtocol.EndInvoke Example/CPP/source.cpp +++ /dev/null @@ -1,43 +0,0 @@ - - -#using -#using -#using - -using namespace System; -using namespace System::Xml::Serialization; -using namespace System::Web::Services::Protocols; - -// -namespace MyMath -{ - [XmlRootAttribute("snippet1>",Namespace="http://MyMath/",IsNullable=false)] - public ref class Math: public HttpGetClientProtocol - { - public: - Math() - { - this->Url = "http://www.contoso.com/math.asmx"; - } - - [HttpMethodAttribute(System::Web::Services::Protocols::XmlReturnReader::typeid, - System::Web::Services::Protocols::UrlParameterWriter::typeid)] - int Add( String^ num1, String^ num2 ) - { - array^temp0 = {num1,num2}; - return *dynamic_cast(this->Invoke( "Add", String::Concat( this->Url, "/Add" ), temp0 )); - } - - IAsyncResult^ BeginAdd( String^ num1, String^ num2, AsyncCallback^ callback, Object^ asyncState ) - { - array^temp1 = {num1,num2}; - return this->BeginInvoke( "Add", String::Concat( this->Url, "/Add" ), temp1, callback, asyncState ); - } - - int EndAdd( IAsyncResult^ asyncResult ) - { - return *dynamic_cast(this->EndInvoke( asyncResult )); - } - }; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpStatusCode Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpStatusCode Example/CPP/source.cpp deleted file mode 100644 index 99fcc00b893b6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpStatusCode Example/CPP/source.cpp +++ /dev/null @@ -1,30 +0,0 @@ - - -#using -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::Web; -using namespace System::Web::UI; - -public ref class Page1: public Page -{ -private: - void Page_Load( Object^ /*sender*/, EventArgs^ /*e*/ ) - { - // - HttpWebRequest^ httpReq = dynamic_cast(WebRequest::Create( "http://www.contoso.com" )); - httpReq->AllowAutoRedirect = false; - HttpWebResponse^ httpRes = dynamic_cast(httpReq->GetResponse()); - if ( httpRes->StatusCode == HttpStatusCode::Moved ) - { - // Code for moved resources goes here. - } - - // Close the response. - httpRes->Close(); - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebClientProtocol.Proxy Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebClientProtocol.Proxy Example/CPP/source.cpp deleted file mode 100644 index b705fba6e3b3a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebClientProtocol.Proxy Example/CPP/source.cpp +++ /dev/null @@ -1,48 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Web; -using namespace System::Web::UI; -using namespace System::Net; - -namespace MyMath -{ -using namespace System::Xml::Serialization; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - public ref class Math: public SoapHttpClientProtocol - { - public: - int Add( int num1, int num2 ) - { - return num1 + num2; - } - }; -} - -public ref class Page1: public Page -{ -private: - void Page_Load( Object^ /*sender*/, EventArgs^ /*e*/ ) - { - // - MyMath::Math^ math = gcnew MyMath::Math; - - // Set the proxy server to proxyserver, set the port to 80, and specify to bypass the proxy server - // for local addresses. - IWebProxy^ proxyObject = gcnew WebProxy( "http://proxyserver:80",true ); - math->Proxy = proxyObject; - - // Call the Add XML Web service method. - int total = math->Add( 8, 5 ); - - // - } -}; - -int main(){} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebRequest Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebRequest Example/CPP/source.cpp deleted file mode 100644 index 16cbdf361c8ec..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebRequest Example/CPP/source.cpp +++ /dev/null @@ -1,16 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Net; -public ref class Sample -{ -public: - void Method() - { - // - HttpWebRequest^ myReq = dynamic_cast(WebRequest::Create( "http://www.contoso.com/" )); - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebRequest.ConnectionGroupName Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebRequest.ConnectionGroupName Example/CPP/source.cpp deleted file mode 100644 index 47df278d8ec99..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebRequest.ConnectionGroupName Example/CPP/source.cpp +++ /dev/null @@ -1,34 +0,0 @@ - - -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::Web; -using namespace System::Web::UI; -using namespace System::Security::Cryptography; -using namespace System::Text; -int main() -{ - // - // Create a secure group name. - SHA1Managed^ Sha1 = gcnew SHA1Managed; - array^updHash = Sha1->ComputeHash( Encoding::UTF8->GetBytes( "usernamepassworddomain" ) ); - String^ secureGroupName = Encoding::Default->GetString( updHash ); - - // Create a request for a specific URL. - WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com" ); - - // Set the authentication credentials for the request. - myWebRequest->Credentials = gcnew NetworkCredential( "username","password","domain" ); - myWebRequest->ConnectionGroupName = secureGroupName; - - // Get the response. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - - // Insert the code that uses myWebResponse here. - // Close the response. - myWebResponse->Close(); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebRequest.RequestUri Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebRequest.RequestUri Example/CPP/source.cpp deleted file mode 100644 index 352469e1bea12..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebRequest.RequestUri Example/CPP/source.cpp +++ /dev/null @@ -1,23 +0,0 @@ - - -#using -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::Web; -using namespace System::Web::UI; - -public ref class Page1: public Page -{ -private: - void Page_Load( Object^, EventArgs^ ) - { - HttpWebRequest^ req = dynamic_cast(WebRequest::Create( "http://www.contoso.com/" )); - - // - bool hasChanged = req->RequestUri->Equals( req->Address ); - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebResponse Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebResponse Example/CPP/source.cpp deleted file mode 100644 index 945bd743eee48..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic HttpWebResponse Example/CPP/source.cpp +++ /dev/null @@ -1,25 +0,0 @@ - - -#using -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::Web; -using namespace System::Web::UI; - -public ref class Page1: public Page -{ -private: - void Page_Load( Object^, EventArgs^ ) - { - // - HttpWebRequest^ HttpWReq = dynamic_cast(WebRequest::Create( "http://www.contoso.com" )); - HttpWebResponse^ HttpWResp = dynamic_cast(HttpWReq->GetResponse()); - - // Insert code that uses the response object. - HttpWResp->Close(); - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic ICertificatePolicy Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic ICertificatePolicy Example/CPP/source.cpp deleted file mode 100644 index 8d014c2ed724f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic ICertificatePolicy Example/CPP/source.cpp +++ /dev/null @@ -1,60 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security::Cryptography::X509Certificates; - -// -public enum class CertificateProblem : UInt32 -{ - CertEXPIRED = 0x800B0101, - CertVALIDITYPERIODNESTING = 0x800B0102, - CertROLE = 0x800B0103, - CertPATHLENCONST = 0x800B0104, - CertCRITICAL = 0x800B0105, - CertPURPOSE = 0x800B0106, - CertISSUERCHAINING = 0x800B0107, - CertMALFORMED = 0x800B0108, - CertUNTRUSTEDROOT = 0x800B0109, - CertCHAINING = 0x800B010A, - CertREVOKED = 0x800B010C, - CertUNTRUSTEDTESTROOT = 0x800B010D, - CertREVOCATION_FAILURE = 0x800B010E, - CertCN_NO_MATCH = 0x800B010F, - CertWRONG_USAGE = 0x800B0110, - CertUNTRUSTEDCA = 0x800B0112 -}; - -public ref class MyCertificateValidation: public ICertificatePolicy -{ -public: - - // Default policy for certificate validation. - static bool DefaultValidate = false; - virtual bool CheckValidationResult( ServicePoint^ /*sp*/, X509Certificate^ /*cert*/, WebRequest^ request, int problem ) - { - bool ValidationResult = false; - Console::WriteLine( "Certificate Problem with accessing {0}", request->RequestUri ); - Console::Write( "Problem code 0x{0:X8},", (int)problem ); - Console::WriteLine( GetProblemMessage( (CertificateProblem)problem ) ); - ValidationResult = DefaultValidate; - return ValidationResult; - } - -private: - String^ GetProblemMessage( CertificateProblem Problem ) - { - String^ ProblemMessage = ""; - CertificateProblem problemList = CertificateProblem( ); - String^ ProblemCodeName = Enum::GetName( problemList.GetType(), Problem ); - if ( ProblemCodeName != nullptr ) - ProblemMessage = String::Concat( ProblemMessage, "-Certificateproblem:", ProblemCodeName ); - else - ProblemMessage = "Unknown Certificate Problem"; - - return ProblemMessage; - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic LingerOption Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic LingerOption Example/CPP/source.cpp deleted file mode 100644 index ef840b46dcf6f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic LingerOption Example/CPP/source.cpp +++ /dev/null @@ -1,20 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; - -public ref class Sample -{ -protected: - void Method( Socket^ mySocket ) - { - // - LingerOption^ myOpts = gcnew LingerOption( true,1 ); - mySocket->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, myOpts ); - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic NetworkCredential Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic NetworkCredential Example/CPP/source.cpp deleted file mode 100644 index 925df3ee81f1a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic NetworkCredential Example/CPP/source.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#using -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Windows::Forms; - -public ref class Form1: public Form -{ -public: - void Method() - { - String^ SecurelyStoredUserName = ""; - String^ SecurelyStoredPassword = ""; - String^ SecurelyStoredDomain = ""; - - // - NetworkCredential^ myCred = gcnew NetworkCredential( - SecurelyStoredUserName,SecurelyStoredPassword,SecurelyStoredDomain ); - - CredentialCache^ myCache = gcnew CredentialCache; - - myCache->Add( gcnew Uri( "www.contoso.com" ), "Basic", myCred ); - myCache->Add( gcnew Uri( "app.contoso.com" ), "Basic", myCred ); - - WebRequest^ wr = WebRequest::Create( "www.contoso.com" ); - wr->Credentials = myCache; - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SerializationInfo.GetValue Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SerializationInfo.GetValue Example/CPP/source.cpp deleted file mode 100644 index 4613eef823668..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SerializationInfo.GetValue Example/CPP/source.cpp +++ /dev/null @@ -1,41 +0,0 @@ -using namespace System; -using namespace System::Runtime::Serialization; - -// Class added so sample will compile -ref class Node -{ -public: - Node( int /*i*/ ){} -}; - -// -// A serializable LinkedList example. For the full LinkedList implementation -// see the Serialization sample. -[Serializable] -ref class LinkedList: public ISerializable -{ -private: - Node^ m_head; - Node^ m_tail; - - // Serializes the object. -public: - virtual void GetObjectData( SerializationInfo^ info, StreamingContext /*context*/ ) - { - // Stores the m_head and m_tail references in the SerializationInfo info. - info->AddValue( "head", m_head, m_head->GetType() ); - info->AddValue( "tail", m_tail, m_tail->GetType() ); - } - - // Constructor that is called automatically during deserialization. -private: - // Reconstructs the object from the information in SerializationInfo info - LinkedList( SerializationInfo^ info, StreamingContext /*context*/ ) - { - Node^ temp = gcnew Node( 0 ); - // Retrieves the values of Type temp.GetType() from SerializationInfo info - m_head = dynamic_cast(info->GetValue( "head", temp->GetType() )); - m_tail = dynamic_cast(info->GetValue( "tail", temp->GetType() )); - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic ServicePoint Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic ServicePoint Example/CPP/source.cpp deleted file mode 100644 index 1a04a196a241d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic ServicePoint Example/CPP/source.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#using -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Windows::Forms; - -public ref class Form1: public Form -{ -public: - void Method() - { - // - Uri^ myUri = gcnew Uri( "http://www.contoso.com/" ); - ServicePoint^ mySP = ServicePointManager::FindServicePoint( myUri ); - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic ServicePointManager.CertificatePolicy Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic ServicePointManager.CertificatePolicy Example/CPP/source.cpp deleted file mode 100644 index 7a9fdb446393e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic ServicePointManager.CertificatePolicy Example/CPP/source.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#using -#using -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Windows::Forms; -using namespace System::Web; -using namespace System::Web::Services; - -// Class added so sample will compile -public ref class MyCertificatePolicy: public ICertificatePolicy -{ -public: - virtual bool CheckValidationResult( System::Net::ServicePoint^, System::Security::Cryptography::X509Certificates::X509Certificate^, System::Net::WebRequest^, int ) - { - return true; - } -}; - -public ref class Form1: public Form -{ -public: - void Method( Uri^ myUri ) - { - // - ServicePointManager::CertificatePolicy = gcnew MyCertificatePolicy; - - // Create the request and receive the response - try - { - WebRequest^ myRequest = WebRequest::Create( myUri ); - WebResponse^ myResponse = myRequest->GetResponse(); - ProcessResponse( myResponse ); - myResponse->Close(); - } - // Catch any exceptions - catch ( WebException^ e ) - { - if ( e->Status == WebExceptionStatus::TrustFailure ) - { - // Code for handling security certificate problems goes here. - } - // Other exception handling goes here - } - // - } - - // Method added so sample will compile - void ProcessResponse( WebResponse^ ){} -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension Example/CPP/source.cpp deleted file mode 100644 index 40bea86464b32..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension Example/CPP/source.cpp +++ /dev/null @@ -1,166 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Protocols; -using namespace System::IO; -using namespace System::Net; - -ref class TraceExtension; - -// Create a SoapExtensionAttribute for the SOAP Extension that can be -// applied to an XML Web service method. -[AttributeUsage(AttributeTargets::Method)] -public ref class TraceExtensionAttribute: public SoapExtensionAttribute -{ -private: - String^ filename; - int priority; - -public: - TraceExtensionAttribute() - : filename( "c:\\log.txt" ) - {} - - property Type^ ExtensionType - { - virtual Type^ get() override - { - return TraceExtension::typeid; - } - } - - property int Priority - { - virtual int get() override - { - return priority; - } - virtual void set( int value ) override - { - priority = value; - } - } - - property String^ Filename - { - String^ get() - { - return filename; - } - void set( String^ value ) - { - filename = value; - } - } -}; - -// Define a SOAP Extension that traces the SOAP request and SOAP -// response for the XML Web service method the SOAP extension is -// applied to. -public ref class TraceExtension: public SoapExtension -{ -private: - Stream^ oldStream; - Stream^ newStream; - String^ filename; - -public: - // Save the Stream representing the SOAP request or SOAP response into - // a local memory buffer. - virtual Stream^ ChainStream( Stream^ stream ) override - { - oldStream = stream; - newStream = gcnew MemoryStream; - return newStream; - } - - // When the SOAP extension is accessed for the first time, the XML Web - // service method it is applied to is accessed to store the file - // name passed in, using the corresponding SoapExtensionAttribute. - virtual Object^ GetInitializer( LogicalMethodInfo^ /*methodInfo*/, SoapExtensionAttribute^ attribute ) override - { - return (dynamic_cast(attribute))->Filename; - } - - // The SOAP extension was configured to run using a configuration file - // instead of an attribute applied to a specific XML Web service - // method. - virtual Object^ GetInitializer( Type^ WebServiceType ) override - { - // Return a file name to log the trace information to, based on the - // type. - return String::Format( "C:\\{0}.log", WebServiceType->FullName ); - } - - // Receive the file name stored by GetInitializer and store it in a - // member variable for this specific instance. - virtual void Initialize( Object^ initializer ) override - { - filename = dynamic_cast(initializer); - } - - // If the SoapMessageStage is such that the SoapRequest or - // SoapResponse is still in the SOAP format to be sent or received, - // save it out to a file. - virtual void ProcessMessage( SoapMessage^ message ) override - { - switch ( message->Stage ) - { - case SoapMessageStage::BeforeSerialize: - break; - case SoapMessageStage::AfterSerialize: - WriteOutput( message ); - break; - case SoapMessageStage::BeforeDeserialize: - WriteInput( message ); - break; - case SoapMessageStage::AfterDeserialize: - break; - } - } - - void WriteOutput( SoapMessage^ message ) - { - newStream->Position = 0; - FileStream^ fs = gcnew FileStream( filename, FileMode::Append, - FileAccess::Write ); - StreamWriter^ w = gcnew StreamWriter( fs ); - - String^ soapString = ( (SoapServerMessage^)( message ) ) ? - (String^)"SoapResponse" : "SoapRequest"; - w->WriteLine( "-----{0} at {1}", soapString, DateTime::Now ); - w->Flush(); - Copy( newStream, fs ); - w->Close(); - newStream->Position = 0; - Copy( newStream, oldStream ); - } - - void WriteInput( SoapMessage^ message ) - { - Copy( oldStream, newStream ); - FileStream^ fs = gcnew FileStream( filename,FileMode::Append,FileAccess::Write ); - StreamWriter^ w = gcnew StreamWriter( fs ); - String^ soapString = (dynamic_cast(message)) ? (String^)"SoapRequest" : "SoapResponse"; - w->WriteLine( "-----{0} at {1}", soapString, DateTime::Now ); - w->Flush(); - newStream->Position = 0; - Copy( newStream, fs ); - w->Close(); - newStream->Position = 0; - } - - void Copy( Stream^ from, Stream^ to ) - { - TextReader^ reader = gcnew StreamReader( from ); - TextWriter^ writer = gcnew StreamWriter( to ); - writer->WriteLine( reader->ReadToEnd() ); - writer->Flush(); - } -}; -// - -int main(){} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension.ChainStream Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension.ChainStream Example/CPP/source.cpp deleted file mode 100644 index dfe63fe65f339..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension.ChainStream Example/CPP/source.cpp +++ /dev/null @@ -1,157 +0,0 @@ -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Protocols; -using namespace System::IO; - -ref class TraceExtension; - -// Create a SoapExtensionAttribute for our SOAP Extension that can be -// applied to an XML Web service method. -[AttributeUsage(AttributeTargets::Method)] -public ref class TraceExtensionAttribute: public SoapExtensionAttribute -{ -private: - String^ filename; - int priority; - -public: - TraceExtensionAttribute() - : filename( "c:\\log.txt" ) - {} - - property Type^ ExtensionType - { - virtual Type^ get() override - { - return TraceExtension::typeid; - } - } - - property int Priority - { - virtual int get() override - { - return priority; - } - virtual void set( int value ) override - { - priority = value; - } - } - - property String^ Filename - { - String^ get() - { - return filename; - } - void set( String^ value ) - { - filename = value; - } - } -}; - - -// Define a SOAP Extension that traces the SOAP request and SOAP response -// for the XML Web service method, the SOAP extension is applied to. -public ref class TraceExtension: public SoapExtension -{ -private: - Stream^ oldStream; - Stream^ newStream; - String^ filename; - -public: - // When the SOAP extension is accessed for the first time the XML Web service method it is applied - // is accessed store the filename passed in using the corresponding SoapExtensionAttribute. - virtual Object^ GetInitializer( LogicalMethodInfo^ /*methodInfo*/, SoapExtensionAttribute^ attribute ) override - { - return (dynamic_cast(attribute))->Filename; - } - - // The extension was configured to run using a configuration file instead of an attribute applied to a - // specific XML Web service method. Return a file name based on the class implementing the XML Web service's type. - virtual Object^ GetInitializer( Type^ WebServiceType ) override - { - // Return a file name to log the trace information to based on the passed in type. - return String::Format( "C:\\{0}.log", WebServiceType->FullName ); - } - - // Receive the filename stored by GetInitializer and store it in a member variable - // for this specific instance. - virtual void Initialize( Object^ initializer ) override - { - filename = dynamic_cast(initializer); - } - - // If the SoapMessageStage is such that the SoapRequest or SoapResponse is still in the SOAP - // format to be sent or received over the wire, save it out to filename passed in using the SoapExtensionAttribute - virtual void ProcessMessage( SoapMessage^ message ) override - { - switch ( message->Stage ) - { - case SoapMessageStage::BeforeSerialize: - break; - case SoapMessageStage::AfterSerialize: - WriteOutput( message ); - break; - case SoapMessageStage::BeforeDeserialize: - WriteInput( message ); - break; - case SoapMessageStage::AfterDeserialize: - break; - default: - throw gcnew Exception( "invalid stage" ); - } - } - - // Save the Stream representing the SOAP request or SOAP response into a local memory buffer - // -public: - virtual Stream^ ChainStream( Stream^ stream ) override - { - oldStream = stream; - newStream = gcnew MemoryStream; - return newStream; - } - // - - void WriteOutput( SoapMessage^ /*message*/ ) - { - newStream->Position = 0; - FileStream^ fs = gcnew FileStream( filename,FileMode::Append,FileAccess::Write ); - StreamWriter^ w = gcnew StreamWriter( fs ); - w->WriteLine( "---------------------------------- Response at {0}", DateTime::Now ); - w->Flush(); - Copy( newStream, fs ); - fs->Close(); - newStream->Position = 0; - Copy( newStream, oldStream ); - } - - void WriteInput( SoapMessage^ /*message*/ ) - { - Copy( oldStream, newStream ); - FileStream^ fs = gcnew FileStream( filename,FileMode::Append,FileAccess::Write ); - StreamWriter^ w = gcnew StreamWriter( fs ); - w->WriteLine( "================================== Request at {0}", DateTime::Now ); - w->Flush(); - newStream->Position = 0; - Copy( newStream, fs ); - fs->Close(); - newStream->Position = 0; - } - - void Copy( Stream^ from, Stream^ to ) - { - TextReader^ reader = gcnew StreamReader( from ); - TextWriter^ writer = gcnew StreamWriter( to ); - writer->WriteLine( reader->ReadToEnd() ); - writer->Flush(); - } -}; - -int main(){} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension.GetInitializer Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension.GetInitializer Example/CPP/source.cpp deleted file mode 100644 index 98113ace5c674..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension.GetInitializer Example/CPP/source.cpp +++ /dev/null @@ -1,156 +0,0 @@ -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Protocols; -using namespace System::IO; - -ref class TraceExtension; - -// Create a SoapExtensionAttribute for our SOAP Extension that can be -// applied to an XML Web service method. - -[AttributeUsage(AttributeTargets::Method)] -public ref class TraceExtensionAttribute: public SoapExtensionAttribute -{ -private: - String^ filename; - int priority; - -public: - TraceExtensionAttribute() - : filename( "c:\\log.txt" ) - {} - - property Type^ ExtensionType - { - virtual Type^ get() override - { - return TraceExtension::typeid; - } - } - - property int Priority - { - virtual int get() override - { - return priority; - } - virtual void set( int value ) override - { - priority = value; - } - } - - property String^ Filename - { - String^ get() - { - return filename; - } - void set( String^ value ) - { - filename = value; - } - } -}; - -// Define a SOAP Extension that traces the SOAP request and SOAP response -// for the XML Web service method, the SOAP extension is applied to. -public ref class TraceExtension: public SoapExtension -{ -private: - Stream^ oldStream; - Stream^ newStream; - String^ filename; - - // -public: - // When the SOAP extension is accessed for the first time, cache the - // file name passed in by the SoapExtensionAttribute. - virtual Object^ GetInitializer( LogicalMethodInfo^ /*methodInfo*/, SoapExtensionAttribute^ attribute ) override - { - return (dynamic_cast(attribute))->Filename; - } - // - - // The extension was configured to run using a configuration file instead of an attribute applied to a - // specific XML Web service method. Return a file name based on the class implementing the XML Web service's type. - virtual Object^ GetInitializer( Type^ WebServiceType ) override - { - // Return a file name to log the trace information to based on the passed in type. - return String::Format( "C:\\{0}.log", WebServiceType->FullName ); - } - - // Receive the filename stored by GetInitializer and store it in a member variable - // for this specific instance. - virtual void Initialize( Object^ initializer ) override - { - filename = dynamic_cast(initializer); - } - - // If the SoapMessageStage is such that the SoapRequest or SoapResponse is still in the SOAP - // format to be sent or received over the wire, save it out to filename passed in using the SoapExtensionAttribute - virtual void ProcessMessage( SoapMessage^ message ) override - { - switch ( message->Stage ) - { - case SoapMessageStage::BeforeSerialize: - break; - case SoapMessageStage::AfterSerialize: - WriteOutput( message ); - break; - case SoapMessageStage::BeforeDeserialize: - WriteInput( message ); - break; - case SoapMessageStage::AfterDeserialize: - break; - default: - throw gcnew Exception( "invalid stage" ); - } - } - - // Save the Stream representing the SOAP request or SOAP response into a local memory buffer - virtual Stream^ ChainStream( Stream^ stream ) override - { - oldStream = stream; - newStream = gcnew MemoryStream; - return newStream; - } - - void WriteOutput( SoapMessage^ /*message*/ ) - { - newStream->Position = 0; - FileStream^ fs = gcnew FileStream( filename,FileMode::Append,FileAccess::Write ); - StreamWriter^ w = gcnew StreamWriter( fs ); - w->WriteLine( "---------------------------------- Response at {0}", DateTime::Now ); - w->Flush(); - Copy( newStream, fs ); - fs->Close(); - newStream->Position = 0; - Copy( newStream, oldStream ); - } - - void WriteInput( SoapMessage^ /*message*/ ) - { - Copy( oldStream, newStream ); - FileStream^ fs = gcnew FileStream( filename,FileMode::Append,FileAccess::Write ); - StreamWriter^ w = gcnew StreamWriter( fs ); - w->WriteLine( "================================== Request at {0}", DateTime::Now ); - w->Flush(); - newStream->Position = 0; - Copy( newStream, fs ); - fs->Close(); - newStream->Position = 0; - } - - void Copy( Stream^ from, Stream^ to ) - { - TextReader^ reader = gcnew StreamReader( from ); - TextWriter^ writer = gcnew StreamWriter( to ); - writer->WriteLine( reader->ReadToEnd() ); - writer->Flush(); - } -}; - -int main(){} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension.Initialize Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension.Initialize Example/CPP/source.cpp deleted file mode 100644 index 8fdb714ad46d0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension.Initialize Example/CPP/source.cpp +++ /dev/null @@ -1,154 +0,0 @@ -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Protocols; -using namespace System::IO; - -ref class TraceExtension; - -// Create a SoapExtensionAttribute for our SOAP Extension that can be -// applied to an XML Web service method. - -[AttributeUsage(AttributeTargets::Method)] -public ref class TraceExtensionAttribute: public SoapExtensionAttribute -{ -private: - String^ filename; - int priority; - -public: - TraceExtensionAttribute() - : filename( "c:\\log.txt" ) - {} - - property Type^ ExtensionType - { - virtual Type^ get() override - { - return TraceExtension::typeid; - } - } - - property int Priority - { - virtual int get() override - { - return priority; - } - virtual void set( int value ) override - { - priority = value; - } - } - - property String^ Filename - { - String^ get() - { - return filename; - } - void set( String^ value ) - { - filename = value; - } - } -}; - -// Define a SOAP Extension that traces the SOAP request and SOAP response -// for the XML Web service method, the SOAP extension is applied to. -public ref class TraceExtension: public SoapExtension -{ -private: - Stream^ oldStream; - Stream^ newStream; - String^ filename; - -public: - // When the SOAP extension is accessed for the first time the XML Web service method it is applied - // is accessed store the filename passed in using the corresponding SoapExtensionAttribute. - virtual Object^ GetInitializer( LogicalMethodInfo^ /*methodInfo*/, SoapExtensionAttribute^ attribute ) override - { - return (dynamic_cast(attribute))->Filename; - } - - virtual Object^ GetInitializer( Type^ filename ) override - { - return dynamic_cast(filename); - } - - // - // Receive the file name stored by GetInitializer and store it in - // a member variable for this specific instance. -public: - virtual void Initialize( Object^ initializer ) override - { - filename = dynamic_cast(initializer); - } - // - - // If the SoapMessageStage is such that the SoapRequest or SoapResponse is still in the SOAP - // format to be sent or received over the wire, save it out to filename passed in using the SoapExtensionAttribute - virtual void ProcessMessage( SoapMessage^ message ) override - { - switch ( message->Stage ) - { - case SoapMessageStage::BeforeSerialize: - break; - case SoapMessageStage::AfterSerialize: - WriteOutput( message ); - break; - case SoapMessageStage::BeforeDeserialize: - WriteInput( message ); - break; - case SoapMessageStage::AfterDeserialize: - break; - default: - throw gcnew Exception( "invalid stage" ); - } - } - - // Save the Stream representing the SOAP request or SOAP response into a local memory buffer - virtual Stream^ ChainStream( Stream^ stream ) override - { - oldStream = stream; - newStream = gcnew MemoryStream; - return newStream; - } - - void WriteOutput( SoapMessage^ /*message*/ ) - { - newStream->Position = 0; - FileStream^ fs = gcnew FileStream( filename,FileMode::Append,FileAccess::Write ); - StreamWriter^ w = gcnew StreamWriter( fs ); - w->WriteLine( "---------------------------------- Response at {0}", DateTime::Now ); - w->Flush(); - Copy( newStream, fs ); - fs->Close(); - newStream->Position = 0; - Copy( newStream, oldStream ); - } - - void WriteInput( SoapMessage^ /*message*/ ) - { - Copy( oldStream, newStream ); - FileStream^ fs = gcnew FileStream( filename,FileMode::Append,FileAccess::Write ); - StreamWriter^ w = gcnew StreamWriter( fs ); - w->WriteLine( "================================== Request at {0}", DateTime::Now ); - w->Flush(); - newStream->Position = 0; - Copy( newStream, fs ); - fs->Close(); - newStream->Position = 0; - } - - void Copy( Stream^ from, Stream^ to ) - { - TextReader^ reader = gcnew StreamReader( from ); - TextWriter^ writer = gcnew StreamWriter( to ); - writer->WriteLine( reader->ReadToEnd() ); - writer->Flush(); - } -}; - -int main(){} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension.ProcessMessage Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension.ProcessMessage Example/CPP/source.cpp deleted file mode 100644 index b15566f7beabc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtension.ProcessMessage Example/CPP/source.cpp +++ /dev/null @@ -1,68 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::Web; -using namespace System::Web::Services; -using namespace System::Web::Services::Protocols; - -public ref class Sample: public SoapExtension -{ - // -public: - virtual void ProcessMessage( SoapMessage^ message ) override - { - switch ( message->Stage ) - { - case SoapMessageStage::BeforeSerialize: - break; - - case SoapMessageStage::AfterSerialize: - WriteOutput( message ); - break; - - case SoapMessageStage::BeforeDeserialize: - WriteInput( message ); - break; - - case SoapMessageStage::AfterDeserialize: - break; - - - } - } - // - - virtual Object^ GetInitializer( LogicalMethodInfo^ /*lmi*/, SoapExtensionAttribute^ /*sea*/ ) override - { - // method added so sample will compile - Object^ myobject = gcnew Object; - return myobject; - } - - virtual void Initialize( Object^ /*o*/ ) override - { - - // method added so sample will compile - } - - void WriteOutput( SoapMessage^ /*message*/ ) - { - - // method added so sample will compile - } - - void WriteInput( SoapMessage^ /*message*/ ) - { - - // method added so sample will compile - } - - virtual Object^ GetInitializer( Type^ filename ) override - { - return dynamic_cast(filename); - } - -}; - -int main(){} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtensionAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtensionAttribute Example/CPP/source.cpp deleted file mode 100644 index f1845cb9d2db5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapExtensionAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,69 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Protocols; -using namespace System::IO; - -// Class added so sample will compile -public ref class TraceExtension{}; - -// -// Create a SoapExtensionAttribute for a SOAP extension that can be -// applied to an XML Web service method. - -[AttributeUsage(AttributeTargets::Method)] -public ref class TraceExtensionAttribute: public SoapExtensionAttribute -{ -private: - String^ myFilename; - int myPriority; - -public: - - // Set the name of the log file were SOAP messages will be stored. - TraceExtensionAttribute() - : SoapExtensionAttribute() - { - myFilename = "C:\\logClient.txt"; - } - - property Type^ ExtensionType - { - // Return the type of 'TraceExtension' class. - virtual Type^ get() override - { - return TraceExtension::typeid; - } - } - - property int Priority - { - // User can set priority of the 'SoapExtension'. - virtual int get() override - { - return myPriority; - } - - virtual void set( int value ) override - { - myPriority = value; - } - } - - property String^ Filename - { - String^ get() - { - return myFilename; - } - - void set( String^ value ) - { - myFilename = value; - } - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHeader.Actor Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHeader.Actor Example/CPP/source.cpp deleted file mode 100644 index 789a774b3b2af..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHeader.Actor Example/CPP/source.cpp +++ /dev/null @@ -1,47 +0,0 @@ - - -#using -#using - -using namespace System; -using namespace System::Web::Services::Protocols; - -// Following was added to make the sample compile. -public ref class MyHeader: public SoapHeader -{ -public: - String^ MyValue; -}; - -public ref class MyWebService -{ -public: - MyHeader^ myHeader; - int MyWebMethod( int num1, int num2 ) - { - return num1 + num2; - } - -}; - - -// -int main() -{ - MyWebService^ ws = gcnew MyWebService; - try - { - MyHeader^ customHeader = gcnew MyHeader; - customHeader->MyValue = "Header Value for MyValue"; - customHeader->Actor = "http://www.contoso.com/MySoapHeaderHandler"; - ws->myHeader = customHeader; - int results = ws->MyWebMethod( 3, 5 ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHeader.MustUnderstand Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHeader.MustUnderstand Example/CPP/source.cpp deleted file mode 100644 index 20b8623788405..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHeader.MustUnderstand Example/CPP/source.cpp +++ /dev/null @@ -1,47 +0,0 @@ - - -#using -#using - -using namespace System::Web::Services::Protocols; -using namespace System; - -// Following was added to make the sample compile. -public ref class MyHeader: public SoapHeader -{ -public: - String^ MyValue; -}; - -public ref class MyWebService -{ -public: - MyHeader^ myHeader; - int MyWebMethod( int num1, int num2 ) - { - return num1 + num2; - } - -}; - - -// -int main() -{ - MyWebService^ ws = gcnew MyWebService; - try - { - MyHeader^ customHeader = gcnew MyHeader; - customHeader->MyValue = "Header Value for MyValue"; - customHeader->MustUnderstand = true; - ws->myHeader = customHeader; - int results = ws->MyWebMethod( 3, 5 ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHeaderAttribute.MemberName Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHeaderAttribute.MemberName Example/CPP/source.cpp deleted file mode 100644 index eb179a86c8866..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHeaderAttribute.MemberName Example/CPP/source.cpp +++ /dev/null @@ -1,32 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Protocols; - -// Define a SOAP header by deriving from the SoapHeader base class. -// The header contains just one string value. -public ref class MyHeader: public SoapHeader -{ -public: - String^ MyValue; -}; - -public ref class MyWebService -{ -public: - - // Member variable to receive the contents of the MyHeader SOAP header. - MyHeader^ myHeader; - - [WebMethod] - [SoapHeader("myHeader",Direction=SoapHeaderDirection::InOut)] - void Hello(){} - -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHeaderDirection Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHeaderDirection Example/CPP/source.cpp deleted file mode 100644 index 2c181c54c3b33..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHeaderDirection Example/CPP/source.cpp +++ /dev/null @@ -1,35 +0,0 @@ - - -#using -#using -#using - -using namespace System; -using namespace System::Web; -using namespace System::Web::Services; -using namespace System::Web::Services::Protocols; - -// -public ref class MyHeader: public SoapHeader -{ -public: - String^ MyValue; -}; - -public ref class MyWebService -{ -public: - MyHeader^ myHeader; - - [WebMethod] - [SoapHeader("myHeader", - Direction=SoapHeaderDirection::InOut|SoapHeaderDirection::Fault)] - void MySoapHeaderReceivingMethod() - { - - // Set myHeader->MyValue to some value. - } - -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHttpClientProtocol Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHttpClientProtocol Example/CPP/source.cpp deleted file mode 100644 index b46a3f5ba8681..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHttpClientProtocol Example/CPP/source.cpp +++ /dev/null @@ -1,61 +0,0 @@ - - -// -#using -#using -#using - -using namespace System::Diagnostics; -using namespace System::Xml::Serialization; -using namespace System; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -namespace MyMath -{ - - [System::Web::Services::WebServiceBindingAttribute(Name="MyMathSoap",Namespace="http://www.contoso.com/")] - public ref class MyMath: public System::Web::Services::Protocols::SoapHttpClientProtocol - { - public: - - [System::Diagnostics::DebuggerStepThroughAttribute] - MyMath() - { - this->Url = "http://www.contoso.com/math.asmx"; - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - [System::Web::Services::Protocols::SoapDocumentMethodAttribute("http://www.contoso.com/Add", - RequestNamespace="http://www.contoso.com/",ResponseNamespace="http://www.contoso.com/", - Use=System::Web::Services::Description::SoapBindingUse::Literal, - ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - int Add( int num1, int num2 ) - { - array^temp0 = {num1,num2}; - array^results = this->Invoke( "Add", temp0 ); - return *dynamic_cast(results[ 0 ]); - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - System::IAsyncResult^ BeginAdd( int num1, int num2, System::AsyncCallback^ callback, Object^ asyncState ) - { - array^temp1 = {num1,num2}; - return this->BeginInvoke( "Add", temp1, callback, asyncState ); - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - int EndAdd( System::IAsyncResult^ asyncResult ) - { - array^results = this->EndInvoke( asyncResult ); - return *dynamic_cast(results[ 0 ]); - } - - }; - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHttpClientProtocol.BeginInvoke Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHttpClientProtocol.BeginInvoke Example/CPP/source.cpp deleted file mode 100644 index 1a106c1b0b7db..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHttpClientProtocol.BeginInvoke Example/CPP/source.cpp +++ /dev/null @@ -1,61 +0,0 @@ - - -// -#using -#using -#using - -using namespace System::Diagnostics; -using namespace System::Xml::Serialization; -using namespace System; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -namespace MyMath -{ - - [System::Web::Services::WebServiceBindingAttribute(Name="MyMathSoap",Namespace="http://www.contoso.com/")] - public ref class MyMath: public System::Web::Services::Protocols::SoapHttpClientProtocol - { - public: - - [System::Diagnostics::DebuggerStepThroughAttribute] - MyMath() - { - this->Url = "http://www.contoso.com/math.asmx"; - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - [System::Web::Services::Protocols::SoapDocumentMethodAttribute("http://www.contoso.com/Add", - RequestNamespace="http://www.contoso.com/",ResponseNamespace="http://www.contoso.com/", - Use=System::Web::Services::Description::SoapBindingUse::Literal, - ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - int Add( int num1, int num2 ) - { - array^temp1 = {num1,num2}; - array^results = this->Invoke( "Add", temp1 ); - return *dynamic_cast(results[ 0 ]); - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - System::IAsyncResult^ BeginAdd( int num1, int num2, System::AsyncCallback^ callback, Object^ asyncState ) - { - array^temp2 = {num1,num2}; - return this->BeginInvoke( "Add", temp2, callback, asyncState ); - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - int EndAdd( System::IAsyncResult^ asyncResult ) - { - array^results = this->EndInvoke( asyncResult ); - return *dynamic_cast(results[ 0 ]); - } - - }; - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHttpClientProtocol.EndInvoke Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHttpClientProtocol.EndInvoke Example/CPP/source.cpp deleted file mode 100644 index 9cdfc4f439da0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHttpClientProtocol.EndInvoke Example/CPP/source.cpp +++ /dev/null @@ -1,58 +0,0 @@ - - -// -#using -#using -#using - -using namespace System::Diagnostics; -using namespace System::Xml::Serialization; -using namespace System; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -namespace MyMath -{ - - [System::Web::Services::WebServiceBindingAttribute(Name="MyMathSoap",Namespace="http://www.contoso.com/")] - public ref class MyMath: public System::Web::Services::Protocols::SoapHttpClientProtocol - { - public: - - [System::Diagnostics::DebuggerStepThroughAttribute] - MyMath() - { - this->Url = "http://www.contoso.com/math.asmx"; - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - [System::Web::Services::Protocols::SoapDocumentMethodAttribute("http://www.contoso.com/Add",RequestNamespace="http://www.contoso.com/",ResponseNamespace="http://www.contoso.com/",Use=System::Web::Services::Description::SoapBindingUse::Literal,ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - int Add( int num1, int num2 ) - { - array^temp0 = {num1,num2}; - array^results = this->Invoke( "Add", temp0 ); - return *dynamic_cast(results[ 0 ]); - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - System::IAsyncResult^ BeginAdd( int num1, int num2, System::AsyncCallback^ callback, Object^ asyncState ) - { - array^temp1 = {num1,num2}; - return this->BeginInvoke( "Add", temp1, callback, asyncState ); - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - int EndAdd( System::IAsyncResult^ asyncResult ) - { - array^results = this->EndInvoke( asyncResult ); - return *dynamic_cast(results[ 0 ]); - } - - }; - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHttpClientProtocol.Invoke Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHttpClientProtocol.Invoke Example/CPP/source.cpp deleted file mode 100644 index b46a3f5ba8681..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapHttpClientProtocol.Invoke Example/CPP/source.cpp +++ /dev/null @@ -1,61 +0,0 @@ - - -// -#using -#using -#using - -using namespace System::Diagnostics; -using namespace System::Xml::Serialization; -using namespace System; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -namespace MyMath -{ - - [System::Web::Services::WebServiceBindingAttribute(Name="MyMathSoap",Namespace="http://www.contoso.com/")] - public ref class MyMath: public System::Web::Services::Protocols::SoapHttpClientProtocol - { - public: - - [System::Diagnostics::DebuggerStepThroughAttribute] - MyMath() - { - this->Url = "http://www.contoso.com/math.asmx"; - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - [System::Web::Services::Protocols::SoapDocumentMethodAttribute("http://www.contoso.com/Add", - RequestNamespace="http://www.contoso.com/",ResponseNamespace="http://www.contoso.com/", - Use=System::Web::Services::Description::SoapBindingUse::Literal, - ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - int Add( int num1, int num2 ) - { - array^temp0 = {num1,num2}; - array^results = this->Invoke( "Add", temp0 ); - return *dynamic_cast(results[ 0 ]); - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - System::IAsyncResult^ BeginAdd( int num1, int num2, System::AsyncCallback^ callback, Object^ asyncState ) - { - array^temp1 = {num1,num2}; - return this->BeginInvoke( "Add", temp1, callback, asyncState ); - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - int EndAdd( System::IAsyncResult^ asyncResult ) - { - array^results = this->EndInvoke( asyncResult ); - return *dynamic_cast(results[ 0 ]); - } - - }; - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapMessage.EnsureStage Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapMessage.EnsureStage Example/CPP/source.cpp deleted file mode 100644 index 12e7ead33321a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SoapMessage.EnsureStage Example/CPP/source.cpp +++ /dev/null @@ -1,24 +0,0 @@ -namespace EnsureStageExample -{ - public enum class SoapMessageStage - { - BeforeSerialize = 1, - BeforeDeserialize = 2 - }; - - ref class Class1 - { - public: - static void main() - { - // - EnsureStage( (SoapMessageStage)( SoapMessageStage::BeforeSerialize | - SoapMessageStage::BeforeDeserialize ) ); - // - } - - private: - //This method is a standin for the real method so that the example will compile - static void EnsureStage( SoapMessageStage /*sms*/ ){} - }; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Accept Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Accept Example/CPP/source.cpp deleted file mode 100644 index e1e657e660b0b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Accept Example/CPP/source.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; - -public ref class Sample -{ - // -protected: - void AcceptMethod( Socket^ listeningSocket ) - { - Socket^ mySocket = listeningSocket->Accept(); - } - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Bind Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Bind Example/CPP/source.cpp deleted file mode 100644 index 6c46b3b92d775..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Bind Example/CPP/source.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; - -public ref class Sample -{ -protected: - void Method( Socket^ aSocket, EndPoint^ anEndPoint ) - { - // - try - { - aSocket->Bind( anEndPoint ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Winsock error: {0}", e ); - } - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Close Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Close Example/CPP/source.cpp deleted file mode 100644 index 2e51128de6396..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Close Example/CPP/source.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Security::Permissions; - -public ref class Sample -{ -protected: - [SecurityPermission(SecurityAction::Demand, Flags=SecurityPermissionFlag::UnmanagedCode)] - void Method( Socket^ aSocket ) - { - // - try - { - aSocket->Shutdown(SocketShutdown::Both); - aSocket->Close(); - } - catch (...) - { - aSocket->Close(); - throw; - } - - if ( aSocket->Connected ) - { - Console::WriteLine( "Winsock error: {0}", Convert::ToString( - System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) ); - } - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Connect Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Connect Example/CPP/source.cpp deleted file mode 100644 index 6693a8bdfcc7f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Connect Example/CPP/source.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; - -static void ConnectAndCheck( Socket^ client, EndPoint^ anEndPoint ) -{ - // - client->Connect( anEndPoint ); - if ( !client->Connected ) - { - Console::WriteLine( "Winsock error: {0}", Convert::ToString( - System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) ); - } - - // This is how you can determine whether a socket is still connected. - bool blockingState = client->Blocking; - try - { - array^tmp = gcnew array(1); - client->Blocking = false; - client->Send( tmp, 0, static_cast(0) ); - Console::WriteLine( L"Connected!" ); - } - catch ( SocketException^ e ) - { - // 10035 == WSAEWOULDBLOCK - if ( e->NativeErrorCode.Equals( 10035 ) ) - { - Console::WriteLine( "Connected from an exception!" ); - } - else - { - Console::WriteLine( "Disconnected: {0}!", e->NativeErrorCode ); - } - } - finally - { - client->Blocking = blockingState; - } - - Console::WriteLine( "Connected: {0}", client->Connected ); - // -} - -[STAThread] -int main() -{ - Socket^ s = gcnew Socket( AddressFamily::InterNetwork, - SocketType::Stream, - ProtocolType::Tcp ); - - String^ host = "localhost"; - int port = 80; - - IPHostEntry^ hostEntry = Dns::Resolve( host ); - IPEndPoint^ EPHost = gcnew IPEndPoint( hostEntry->AddressList[ 0 ],port ); - - ConnectAndCheck( s, EPHost ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Listen Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Listen Example/CPP/source.cpp deleted file mode 100644 index 66f68944d8625..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Socket.Listen Example/CPP/source.cpp +++ /dev/null @@ -1,32 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; - -void CreateAndListen( int port, int backlog ) -{ - // - // create the socket - Socket^ listenSocket = gcnew Socket( AddressFamily::InterNetwork, - SocketType::Stream, - ProtocolType::Tcp ); - - // bind the listening socket to the port - IPAddress^ hostIP = ( Dns::Resolve( IPAddress::Any->ToString() ) )->AddressList[ 0 ]; - IPEndPoint^ ep = gcnew IPEndPoint( hostIP,port ); - listenSocket->Bind( ep ); - - // start listening - listenSocket->Listen( backlog ); - // -} - -[STAThread] -int main() -{ - CreateAndListen( 10042, 10 ); - Console::WriteLine( "enter to exit" ); - Console::Read(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SocketAddressExample/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic SocketAddressExample/CPP/source.cpp deleted file mode 100644 index 27d0003bd8bde..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic SocketAddressExample/CPP/source.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#using - -using namespace System; -using namespace System::Text; -using namespace System::Net; -using namespace System::Net::Sockets; - -void MySerializeIPEndPointClassMethod() -{ - // - //Creates an IpEndPoint. - IPAddress^ ipAddress = Dns::Resolve( "www.contoso.com" )->AddressList[ 0 ]; - IPEndPoint^ ipLocalEndPoint = gcnew IPEndPoint( ipAddress,11000 ); - - //Serializes the IPEndPoint. - SocketAddress^ socketAddress = ipLocalEndPoint->Serialize(); - - //Verifies that ipLocalEndPoint is now serialized by printing its contents. - Console::WriteLine( "Contents of the socketAddress are: {0}", socketAddress ); - //Checks the Family property. - Console::WriteLine( "The address family of the socketAddress is: {0}", socketAddress->Family ); - //Checks the underlying buffer size. - Console::WriteLine( "The size of the underlying buffer is: {0}", socketAddress->Size ); - // -} - -int main() -{ - MySerializeIPEndPointClassMethod(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic TcpListener.PublicMethodsAndPropertiesExample/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic TcpListener.PublicMethodsAndPropertiesExample/CPP/source.cpp deleted file mode 100644 index 719fbbc6521ae..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic TcpListener.PublicMethodsAndPropertiesExample/CPP/source.cpp +++ /dev/null @@ -1,106 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::Threading; - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length == 1 ) - { - Console::WriteLine( "Enter a selection" ); - return 0; - } - - if ( args[ 1 ] == "endpointExample" ) - { - // - //Creates an instance of the TcpListener class by providing a local endpoint. - - IPAddress^ ipAddress = Dns::Resolve( Dns::GetHostName() )->AddressList[ 0 ]; - IPEndPoint^ ipLocalEndPoint = gcnew IPEndPoint( ipAddress,11000 ); - - try - { - TcpListener^ tcpListener = gcnew TcpListener( ipLocalEndPoint ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - } - else - if ( args[ 1 ] == "ipAddressExample" ) - { - // - //Creates an instance of the TcpListener class by providing a local IP address and port number. - - IPAddress^ ipAddress = Dns::Resolve( "localhost" )->AddressList[ 0 ]; - - try - { - TcpListener^ tcpListener = gcnew TcpListener( ipAddress,13 ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - } - else - if ( args[ 1 ] == "portNumberExample" ) - { - // - //Creates an instance of the TcpListener class by providing a local port number. - - IPAddress^ ipAddress = Dns::Resolve( "localhost" )->AddressList[ 0 ]; - - try - { - TcpListener^ tcpListener = gcnew TcpListener( ipAddress,13 ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - } - else - { - IPAddress^ ipAddress = Dns::Resolve( "localhost" )->AddressList[ 0 ]; - TcpListener^ tcpListener = gcnew TcpListener( ipAddress,13 ); - tcpListener->Start(); - Console::WriteLine( "Waiting for a connection...." ); - - try - { - // - // Accepts the pending client connection and returns a socket for communciation. - Socket^ socket = tcpListener->AcceptSocket(); - Console::WriteLine( "Connection accepted." ); - - String^ responseString = "You have successfully connected to me"; - - //Forms and sends a response string to the connected client. - array^sendBytes = Encoding::ASCII->GetBytes( responseString ); - int i = socket->Send( sendBytes ); - Console::WriteLine( "Message Sent /> : {0}", responseString ); - // - - //Any communication with the remote client using the socket can go here. - - //Closes the tcpListener and the socket. - socket->Shutdown( SocketShutdown::Both ); - socket->Close(); - tcpListener->Stop(); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic TcpListenerExample/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic TcpListenerExample/CPP/source.cpp deleted file mode 100644 index c216c7fe3f72e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic TcpListenerExample/CPP/source.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// -/** -* This program shows how to use the TcpListener class. -* It creates a TcpListener that listens on the specified port (13000). -* To run this program at the command line you enter: -* cs_tcpserver -* Any TcpClient that wants to use this server -* has to explicitly connect to an address obtained by the combination of -* the server on which this TcpServer is running and the port 13000. -* This TcpServer simply echoes back the message sent by the TcpClient, after -* translating it into uppercase. -**/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; - -int main() -{ - try - { - - // Set the TcpListener on port 13000. - Int32 port = 13000; - TcpListener^ server = gcnew TcpListener(IPAddress::Any, port); - - // Start listening for client requests. - server->Start(); - - // Buffer for reading data - array^bytes = gcnew array(256); - String^ data = nullptr; - - // Enter the listening loop. - while ( true ) - { - Console::Write( "Waiting for a connection... " ); - - // Perform a blocking call to accept requests. - // You could also use server.AcceptSocket() here. - TcpClient^ client = server->AcceptTcpClient(); - Console::WriteLine( "Connected!" ); - data = nullptr; - - // Get a stream object for reading and writing - NetworkStream^ stream = client->GetStream(); - Int32 i; - - // Loop to receive all the data sent by the client. - while ( (i = stream->Read( bytes, 0, bytes->Length )) != 0 ) - { - - // Translate data bytes to a ASCII string. - data = System::Text::Encoding::ASCII->GetString( bytes, 0, i ); - Console::WriteLine( String::Format( "Received: {0}", data ) ); - - // Process the data sent by the client. - data = data->ToUpper(); - array^msg = System::Text::Encoding::ASCII->GetBytes( data ); - - // Send back a response. - stream->Write( msg, 0, msg->Length ); - Console::WriteLine( String::Format( "Sent: {0}", data ) ); - } - - // Shutdown and end connection - client->Close(); - } - } - catch ( SocketException^ e ) - { - Console::WriteLine( "SocketException: {0}", e ); - } - - Console::WriteLine( "\nHit enter to continue..." ); - Console::Read(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UdpClient.ProtectedMethodsAndPropertiesExample/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic UdpClient.ProtectedMethodsAndPropertiesExample/CPP/source.cpp deleted file mode 100644 index 8c3fe28953809..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UdpClient.ProtectedMethodsAndPropertiesExample/CPP/source.cpp +++ /dev/null @@ -1,38 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Text; -using namespace System::Net; -using namespace System::Net::Sockets; - -// -// This derived class demonstrate the use of three protected methods belonging to the UdpClient class. -public ref class MyUdpClientDerivedClass: public UdpClient -{ -public: - MyUdpClientDerivedClass() - : UdpClient() - {} - - void UsingProtectedMethods() - { - //Uses the protected Active property belonging to the UdpClient base class to determine if a connection is established. - if ( this->Active ) - { - //Calls the protected Client property belonging to the UdpClient base class. - Socket^ s = this->Client; - - //Uses the Socket returned by Client to set an option that is not available using UdpClient. - s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Broadcast, 1 ); - } - } -}; -// - -int main() -{ - MyUdpClientDerivedClass^ myUdpClientDerivedClass = gcnew MyUdpClientDerivedClass; - myUdpClientDerivedClass->UsingProtectedMethods(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UdpClient.PublicMethodsAndPropertiesExample/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic UdpClient.PublicMethodsAndPropertiesExample/CPP/source.cpp deleted file mode 100644 index b18e50746069f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UdpClient.PublicMethodsAndPropertiesExample/CPP/source.cpp +++ /dev/null @@ -1,280 +0,0 @@ -#using - -using namespace System; -using namespace System::Text; -using namespace System::Net; -using namespace System::Net::Sockets; - -public ref class MyUdpClientExample -{ -public: - // MyUdpClientConstructor is just used to illustrate the different constructors available in the UdpClient class. - static void MyUdpClientConstructor( String^ myConstructorType ) - { - if ( myConstructorType->Equals( "PortNumberExample" ) ) - { - // - //Creates an instance of the UdpClient class to listen on - // the default interface using a particular port. - try - { - UdpClient^ udpClient = gcnew UdpClient( 11000 ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - } - else if ( myConstructorType->Equals( "LocalEndPointExample" ) ) - { - // - //Creates an instance of the UdpClient class using a local endpoint. - IPAddress^ ipAddress = Dns::Resolve( Dns::GetHostName() )->AddressList[ 0 ]; - IPEndPoint^ ipLocalEndPoint = gcnew IPEndPoint( ipAddress,11000 ); - - try - { - UdpClient^ udpClient = gcnew UdpClient( ipLocalEndPoint ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - } - else if ( myConstructorType->Equals( "HostNameAndPortNumExample" ) ) - { - // - //Creates an instance of the UdpClient class with a remote host name and a port number. - try - { - UdpClient^ udpClient = gcnew UdpClient( "www.contoso.com",11000 ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - } - else if ( myConstructorType->Equals( "DefaultExample" ) ) - { - // - //Creates an instance of the UdpClient class using the default constructor. - UdpClient^ udpClient = gcnew UdpClient; - // - } - else - { - // Do nothing. - } - } - - // MyUdpClientConnection method is just used to illustrate the different connection methods of UdpClient class. - static void MyUdpClientConnection( String^ myConnectionType ) - { - if ( myConnectionType->Equals( "HostnameAndPortNumExample" ) ) - { - // - //Uses a host name and port number to establish a socket connection. - UdpClient^ udpClient = gcnew UdpClient; - try - { - udpClient->Connect( "www.contoso.com", 11002 ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - } - else if ( myConnectionType == "IPAddressAndPortNumExample" ) - { - // - //Uses the IP address and port number to establish a socket connection. - UdpClient^ udpClient = gcnew UdpClient; - IPAddress^ ipAddress = Dns::Resolve( "www.contoso.com" )->AddressList[ 0 ]; - try - { - udpClient->Connect( ipAddress, 11003 ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - } - else if ( myConnectionType == "RemoteEndPointExample" ) - { - // - //Uses a remote endpoint to establish a socket connection. - UdpClient^ udpClient = gcnew UdpClient; - IPAddress^ ipAddress = Dns::Resolve( "www.contoso.com" )->AddressList[ 0 ]; - IPEndPoint^ ipEndPoint = gcnew IPEndPoint( ipAddress,11004 ); - try - { - udpClient->Connect( ipEndPoint ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - } - else - { - // Do nothing. - } - } - - // This class demonstrates sending and receiving using a Udp socket. - static void MyUdpClientCommunicator( String^ mySendType ) - { - if ( mySendType == "EndPointExample" ) - { - // - UdpClient^ udpClient = gcnew UdpClient; - IPAddress^ ipAddress = Dns::Resolve( "www.contoso.com" )->AddressList[ 0 ]; - IPEndPoint^ ipEndPoint = gcnew IPEndPoint( ipAddress,11004 ); - - array^ sendBytes = Encoding::ASCII->GetBytes( "Is anybody there?" ); - try - { - udpClient->Send( sendBytes, sendBytes->Length, ipEndPoint ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - } - else if ( mySendType == "HostNameAndPortNumberExample" ) - { - // - UdpClient^ udpClient = gcnew UdpClient; - - array^ sendBytes = Encoding::ASCII->GetBytes( "Is anybody there" ); - try - { - udpClient->Send( sendBytes, sendBytes->Length, "www.contoso.com", 11000 ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - } - else if ( mySendType == "StraightSendExample" ) - { - // - UdpClient^ udpClient = gcnew UdpClient( "www.contoso.com",11000 ); - array^ sendBytes = Encoding::ASCII->GetBytes( "Is anybody there" ); - try - { - udpClient->Send( sendBytes, sendBytes->Length ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - } - else - { - // Do nothing. - } - - // - //Creates a UdpClient for reading incoming data. - UdpClient^ receivingUdpClient = gcnew UdpClient( 11000 ); - - //Creates an IPEndPoint to record the IP Address and port number of the sender. - // The IPEndPoint will allow you to read datagrams sent from any source. - IPEndPoint^ RemoteIpEndPoint = gcnew IPEndPoint( IPAddress::Any,0 ); - try - { - // Blocks until a message returns on this socket from a remote host. - array^receiveBytes = receivingUdpClient->Receive( RemoteIpEndPoint ); - - String^ returnData = Encoding::ASCII->GetString( receiveBytes ); - - Console::WriteLine( "This is the message you received {0}", returnData ); - Console::WriteLine( "This message was sent from {0} on their port number {1}", - RemoteIpEndPoint->Address, RemoteIpEndPoint->Port ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - } - - // This example class demonstrates methods used to join and drop multicast groups. - static void MyUdpClientMulticastConfiguration( String^ myAction ) - { - if ( myAction == "JoinMultiCastExample" ) - { - // - UdpClient^ udpClient = gcnew UdpClient; - IPAddress^ multicastIpAddress = Dns::Resolve( "MulticastGroupName" )->AddressList[ 0 ]; - try - { - udpClient->JoinMulticastGroup( multicastIpAddress ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - } - else if ( myAction == "JoinMultiCastWithTimeToLiveExample" ) - { - // - UdpClient^ udpClient = gcnew UdpClient; - // Creates an IPAddress to use to join and drop the multicast group. - IPAddress^ multicastIpAddress = IPAddress::Parse( "239.255.255.255" ); - - try - { - // The packet dies after 50 router hops. - udpClient->JoinMulticastGroup( multicastIpAddress, 50 ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - - // - // Informs the server that you want to remove yourself from the multicast client list. - try - { - udpClient->DropMulticastGroup( multicastIpAddress ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // - - // - // Closes the UDP client by calling the public method Close(). - udpClient->Close(); - // - } - else - { - // Do nothing. - } - } -}; -//end class - -int main() -{ - // For our example, we will use the default constructor. - MyUdpClientExample::MyUdpClientConstructor( "defaultExample" ); - MyUdpClientExample::MyUdpClientConnection( "HostNameAndPortNumExample" ); - MyUdpClientExample::MyUdpClientCommunicator( "EndPointExample" ); - MyUdpClientExample::MyUdpClientMulticastConfiguration( "JoinMultiCastExample" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UdpClientExample/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic UdpClientExample/CPP/source.cpp deleted file mode 100644 index 12a033e105eee..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UdpClientExample/CPP/source.cpp +++ /dev/null @@ -1,45 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Text; -using namespace System::Net; -using namespace System::Net::Sockets; - -int main() -{ - // - // With this constructor the local port number is arbitrarily assigned. - UdpClient^ udpClient = gcnew UdpClient; - try - { - udpClient->Connect( "host.contoso.com", 11000 ); - - // Send message to the host to which you have connected. - array^sendBytes = Encoding::ASCII->GetBytes( "Is anybody there?" ); - udpClient->Send( sendBytes, sendBytes->Length ); - - // Send message to a different host using optional hostname and port parameters. - UdpClient^ udpClientB = gcnew UdpClient; - udpClientB->Send( sendBytes, sendBytes->Length, "AlternateHostMachineName", 11000 ); - - //IPEndPoint object will allow us to read datagrams sent from any source. - IPEndPoint^ RemoteIpEndPoint = gcnew IPEndPoint( IPAddress::Any,0 ); - - // Block until a message returns on this socket from a remote host. - array^receiveBytes = udpClient->Receive( RemoteIpEndPoint ); - String^ returnData = Encoding::ASCII->GetString( receiveBytes ); - - // Use the IPEndPoint object to determine which of these two hosts responded. - Console::WriteLine( String::Concat( "This is the message you received ", returnData->ToString() ) ); - Console::WriteLine( String::Concat( "This message was sent from ", RemoteIpEndPoint->Address->ToString(), " on their port number ", RemoteIpEndPoint->Port.ToString() ) ); - udpClient->Close(); - udpClientB->Close(); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri Example/CPP/source.cpp deleted file mode 100644 index 50ec230906cf7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri Example/CPP/source.cpp +++ /dev/null @@ -1,28 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Net; -using namespace System::Windows::Forms; - -public ref class Form1: public Form -{ -protected: - void Method() - { - // - Uri^ siteUri = gcnew Uri( "http://www.contoso.com/" ); - WebRequest^ wr = WebRequest::Create( siteUri ); - // - } -}; - -void main() -{ - Form1^ f = gcnew Form1; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.AbsolutePath Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.AbsolutePath Example/CPP/source.cpp deleted file mode 100644 index 1d511f22f6b4b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.AbsolutePath Example/CPP/source.cpp +++ /dev/null @@ -1,30 +0,0 @@ - - -#using -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -public ref class Form1: public Form -{ -protected: - void Method() - { - // - Uri^ baseUri = gcnew Uri( "http://www.contoso.com/" ); - Uri^ myUri = gcnew Uri( baseUri,"catalog/shownew.htm?date=today" ); - Console::WriteLine( myUri->AbsolutePath ); - // - } -}; - -void main() -{ - Form1^ f = gcnew Form1; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.AbsoluteUri Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.AbsoluteUri Example/CPP/source.cpp deleted file mode 100644 index f5adb1e6dc0ce..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.AbsoluteUri Example/CPP/source.cpp +++ /dev/null @@ -1,20 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - Uri^ baseUri = gcnew Uri( "http://www.contoso.com" ); - Uri^ myUri = gcnew Uri( baseUri,"catalog/shownew.htm?date=today" ); - Console::WriteLine( myUri->AbsoluteUri ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Authority Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Authority Example/CPP/source.cpp deleted file mode 100644 index 2cb8990b9d084..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Authority Example/CPP/source.cpp +++ /dev/null @@ -1,20 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - Uri^ baseUri = gcnew Uri( "http://www.contoso.com:8080/" ); - Uri^ myUri = gcnew Uri( baseUri,"shownew.htm?date=today" ); - Console::WriteLine( myUri->Authority ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.CheckHostName Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.CheckHostName Example/CPP/source.cpp deleted file mode 100644 index 0d5b9b878972b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.CheckHostName Example/CPP/source.cpp +++ /dev/null @@ -1,18 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - Console::WriteLine( Uri::CheckHostName( "www.contoso.com" ) ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Host Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Host Example/CPP/source.cpp deleted file mode 100644 index db24745352e4f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Host Example/CPP/source.cpp +++ /dev/null @@ -1,20 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - Uri^ baseUri = gcnew Uri( "http://www.contoso.com:8080/" ); - Uri^ myUri = gcnew Uri( baseUri,"shownew.htm?date=today" ); - Console::WriteLine( myUri->Host ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.PathAndQuery Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.PathAndQuery Example/CPP/source.cpp deleted file mode 100644 index 77b48ab3d8296..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.PathAndQuery Example/CPP/source.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - Uri^ baseUri = gcnew Uri( "http://www.contoso.com/" ); - Uri^ myUri = gcnew Uri( baseUri, "catalog/shownew.htm?date=today" ); - - Console::WriteLine( myUri->PathAndQuery ); - // -} - -void Method2() -{ - // - Uri^ baseUri = gcnew Uri( "http://www.contoso.com/" ); - Uri^ myUri = gcnew Uri( baseUri, "catalog/shownew.htm?date=today" ); - - Console::WriteLine( myUri->Query ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Port Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Port Example/CPP/source.cpp deleted file mode 100644 index 2298149c10295..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Port Example/CPP/source.cpp +++ /dev/null @@ -1,20 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - Uri^ baseUri = gcnew Uri( "http://www.contoso.com/" ); - Uri^ myUri = gcnew Uri( baseUri,"catalog/shownew.htm?date=today" ); - Console::WriteLine( myUri->Port ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Scheme Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Scheme Example/CPP/source.cpp deleted file mode 100644 index 2a79562ae4cfc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Scheme Example/CPP/source.cpp +++ /dev/null @@ -1,20 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - Uri^ baseUri = gcnew Uri( "http://www.contoso.com/" ); - Uri^ myUri = gcnew Uri( baseUri,"catalog/shownew.htm?date=today" ); - Console::WriteLine( myUri->Scheme ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Uri Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Uri Example/CPP/source.cpp deleted file mode 100644 index 1977347df49ec..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Uri Example/CPP/source.cpp +++ /dev/null @@ -1,18 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - Uri^ baseUri = gcnew Uri( "http://www.contoso.com/" ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Uri1 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Uri1 Example/CPP/source.cpp deleted file mode 100644 index 74ea933f0d169..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Uri1 Example/CPP/source.cpp +++ /dev/null @@ -1,18 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - Uri^ myUri = gcnew Uri( "http://www.contoso.com/Hello%20World.htm",true ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Uri3 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Uri3 Example/CPP/source.cpp deleted file mode 100644 index aa310799d843c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Uri3 Example/CPP/source.cpp +++ /dev/null @@ -1,20 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - Uri^ baseUri = gcnew Uri( "http://www.contoso.com" ); - Uri^ myUri = gcnew Uri( baseUri, "catalog/shownew.htm" ); - Console::WriteLine( myUri->ToString() ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Uri4 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Uri4 Example/CPP/source.cpp deleted file mode 100644 index 1cd0cad631055..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic Uri.Uri4 Example/CPP/source.cpp +++ /dev/null @@ -1,12 +0,0 @@ - - -#using - -using namespace System; -void main() -{ - // - Uri^ baseUri = gcnew Uri( "http://www.contoso.com/" ); - Uri^ myUri = gcnew Uri( baseUri,"Hello%20World.htm",false ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.Fragment Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.Fragment Example/CPP/source.cpp deleted file mode 100644 index 7d57c1f31fb35..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.Fragment Example/CPP/source.cpp +++ /dev/null @@ -1,21 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - UriBuilder^ uBuild = gcnew UriBuilder( "http://www.contoso.com/" ); - uBuild->Path = "index.htm"; - uBuild->Fragment = "main"; - Uri^ myUri = uBuild->Uri; - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.UriBuilder3 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.UriBuilder3 Example/CPP/source.cpp deleted file mode 100644 index 8ed7f68ec92ca..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.UriBuilder3 Example/CPP/source.cpp +++ /dev/null @@ -1,18 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - UriBuilder^ myUri = gcnew UriBuilder( "http", "www.contoso.com" ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.UriBuilder4 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.UriBuilder4 Example/CPP/source.cpp deleted file mode 100644 index af69e8f961a84..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.UriBuilder4 Example/CPP/source.cpp +++ /dev/null @@ -1,18 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - UriBuilder^ myUri = gcnew UriBuilder( "http", "www.contoso.com",8080 ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.UriBuilder5 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.UriBuilder5 Example/CPP/source.cpp deleted file mode 100644 index 6c6a09487e188..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.UriBuilder5 Example/CPP/source.cpp +++ /dev/null @@ -1,18 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - UriBuilder^ myUri = gcnew UriBuilder( "http","www.contoso.com",8080,"index.htm" ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.UriBuilder6 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.UriBuilder6 Example/CPP/source.cpp deleted file mode 100644 index 3e0bf14858e68..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic UriBuilder.UriBuilder6 Example/CPP/source.cpp +++ /dev/null @@ -1,18 +0,0 @@ - - -#using -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Security::Principal; -using namespace System::Windows::Forms; - -void main() -{ - // - UriBuilder^ myUri = gcnew UriBuilder( "http","www.contoso.com",8080,"index.htm","#top" ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebClientProtocol.Timeout Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebClientProtocol.Timeout Example/CPP/source.cpp deleted file mode 100644 index cecb1ef607214..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebClientProtocol.Timeout Example/CPP/source.cpp +++ /dev/null @@ -1,21 +0,0 @@ -using namespace System; - -// Struct added so sample will compile -public value struct myMath -{ -public: - int Timeout; -}; - -public ref class Sample -{ -public: - void sampleFunction() - { - myMath math = myMath( ); - - // - math.Timeout = 15000; - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebClientProtocol.Url Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebClientProtocol.Url Example/CPP/source.cpp deleted file mode 100644 index 3e503131573d1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebClientProtocol.Url Example/CPP/source.cpp +++ /dev/null @@ -1,37 +0,0 @@ -using namespace System; - -// Class added so sample will compile -public ref class myMath -{ -public: - String^ Url; - int Add( int /*a*/, int /*b*/ ) - { - return 0; - } -}; - -// Structure added so sample will compile -public value struct myNum -{ -public: - String^ Text; -}; - -public ref class Sample -{ -public: - void sampleFunction() - { - myMath^ math = gcnew myMath; - myNum Num1 = myNum( ); - myNum Num2 = myNum( ); - - // - // Set the URL property to a different Web server than that described in the - // service description. - math->Url = "http://www.contoso.com/math.asmx"; - int total = math->Add( Convert::ToInt32( Num1.Text ), Convert::ToInt32( Num2.Text ) ); - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebProxy Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebProxy Example/CPP/source.cpp deleted file mode 100644 index 166f9d97f7f41..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebProxy Example/CPP/source.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; - -public ref class Sample -{ -private: - void sampleFunction() - { - // - WebProxy^ proxyObject = gcnew WebProxy( "http://proxyserver:80/",true ); - WebRequest^ req = WebRequest::Create( "http://www.contoso.com" ); - req->Proxy = proxyObject; - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebRequest Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebRequest Example/CPP/source.cpp deleted file mode 100644 index 2a706abc691ab..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebRequest Example/CPP/source.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; - -public ref class Sample -{ -private: - void sampleFunction() - { - // - // Initialize the WebRequest. - WebRequest^ myRequest = WebRequest::Create( "http://www.contoso.com" ); - - // Return the response. - WebResponse^ myResponse = myRequest->GetResponse(); - - // Code to use the WebResponse goes here. - - // Close the response to free resources. - myResponse->Close(); - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebRequest.WebRequest Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebRequest.WebRequest Example/CPP/source.cpp deleted file mode 100644 index ef3028f80a50f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic WebRequest.WebRequest Example/CPP/source.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; - -public ref class Sample -{ -private: - void sampleFunction() - { - // - WebRequest^ myRequest = WebRequest::Create( "http://www.contoso.com" ); - // - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAnyElementAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAnyElementAttribute Example/CPP/source.cpp deleted file mode 100644 index 557ea7d00c843..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAnyElementAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,52 +0,0 @@ - - -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -public ref class XClass -{ -public: - - /* Apply the XmlAnyElementAttribute to a field returning an array - of XmlElement objects. */ - - [XmlAnyElement] - array^AllElements; -}; - -public ref class Test -{ -public: - void DeserializeObject( String^ filename ) - { - // Create an XmlSerializer. - XmlSerializer^ mySerializer = gcnew XmlSerializer( XClass::typeid ); - - // To read a file, a FileStream is needed. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - - // Deserialize the class. - XClass^ x = dynamic_cast(mySerializer->Deserialize( fs )); - - // Read the element names and values. - System::Collections::IEnumerator^ myEnum = x->AllElements->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - XmlElement^ xel = safe_cast(myEnum->Current); - Console::WriteLine( "{0}: {1}", xel->LocalName, xel->Value ); - } - } -}; - -int main() -{ - Test^ t = gcnew Test; - t->DeserializeObject( "XFile.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute Example/CPP/source.cpp deleted file mode 100644 index 7824f3ba5cbe5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,132 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; -using namespace System::Xml; -public ref class Item -{ -public: - - [XmlElement(ElementName="OrderItem")] - String^ ItemName; - String^ ItemCode; - Decimal ItemPrice; - int ItemQuantity; -}; - -public ref class BookItem: public Item -{ -public: - String^ Title; - String^ Author; - String^ ISBN; -}; - -// This is the class that will be serialized. -public ref class MyRootClass -{ -private: - array^items; - -public: - - /* Here is a simple way to serialize the array as XML. Using the - XmlArrayAttribute, assign an element name and namespace. The - IsNullable property determines whether the element will be - generated if the field is set to a null value. If set to true, - the default, setting it to a null value will cause the XML - xsi:null attribute to be generated. */ - - [XmlArray(ElementName="MyStrings", - Namespace="http://www.cpandl.com",IsNullable=true)] - array^MyStringArray; - - /* Here is a more complex example of applying an - XmlArrayAttribute. The Items property can contain both Item - and BookItem objects. Use the XmlArrayItemAttribute to specify - that both types can be inserted into the array. */ - [XmlArrayItem(ElementName="Item", - IsNullable=true, - Type=Item::typeid, - Namespace="http://www.cpandl.com"), - XmlArrayItem(ElementName="BookItem", - IsNullable=true, - Type=BookItem::typeid, - Namespace="http://www.cohowinery.com")] - [XmlArray] - property array^ Items - { - array^ get() - { - return items; - } - - void set( array^value ) - { - items = value; - } - } -}; - -public ref class Run -{ -public: - void SerializeDocument( String^ filename ) - { - // Creates a new XmlSerializer. - XmlSerializer^ s = gcnew XmlSerializer( MyRootClass::typeid ); - - // Writing the file requires a StreamWriter. - TextWriter^ myWriter = gcnew StreamWriter( filename ); - - // Creates an instance of the class to serialize. - MyRootClass^ myRootClass = gcnew MyRootClass; - - /* Uses a basic method of creating an XML array: Create and - populate a string array, and assign it to the - MyStringArray property. */ - array^myString = {"Hello","world","!"}; - myRootClass->MyStringArray = myString; - - /* Uses a more advanced method of creating an array: - create instances of the Item and BookItem, where BookItem - is derived from Item. */ - Item^ item1 = gcnew Item; - BookItem^ item2 = gcnew BookItem; - - // Sets the objects' properties. - item1->ItemName = "Widget1"; - item1->ItemCode = "w1"; - item1->ItemPrice = 231; - item1->ItemQuantity = 3; - item2->ItemCode = "w2"; - item2->ItemPrice = 123; - item2->ItemQuantity = 7; - item2->ISBN = "34982333"; - item2->Title = "Book of Widgets"; - item2->Author = "John Smith"; - - // Fills the array with the items. - array^myItems = {item1,item2}; - - // Sets the class's Items property to the array. - myRootClass->Items = myItems; - - /* Serializes the class, writes it to disk, and closes - the TextWriter. */ - s->Serialize( myWriter, myRootClass ); - myWriter->Close(); - } -}; - -int main() -{ - Run^ test = gcnew Run; - test->SerializeDocument( "books.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.ElementName Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.ElementName Example/CPP/source.cpp deleted file mode 100644 index dc6cfc478abf9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.ElementName Example/CPP/source.cpp +++ /dev/null @@ -1,62 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -public ref class Book -{ -public: - String^ Title; - String^ Author; - String^ ISBN; -}; - -public ref class Library -{ -private: - array^books; - -public: - - [XmlArray(ElementName="My_Books")] - property array^ Books - { - array^ get() - { - return books; - } - - void set( array^value ) - { - books = value; - } - } -}; - -int main() -{ - String^ filename = "ArrayExample.xml"; - XmlSerializer^ mySerializer = gcnew XmlSerializer( Library::typeid ); - TextWriter^ t = gcnew StreamWriter( filename ); - XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces; - ns->Add( "bk", "http://wwww.contoso.com" ); - Book^ b1 = gcnew Book; - b1->Title = "MyBook Title"; - b1->Author = "An Author"; - b1->ISBN = "00000000"; - Book^ b2 = gcnew Book; - b2->Title = "Another Title"; - b2->Author = "Another Author"; - b2->ISBN = "0000000"; - Library^ myLibrary = gcnew Library; - array^myBooks = {b1,b2}; - myLibrary->Books = myBooks; - mySerializer->Serialize( t, myLibrary, ns ); - t->Close(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.Form Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.Form Example/CPP/source.cpp deleted file mode 100644 index 84965bcbf7ad7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.Form Example/CPP/source.cpp +++ /dev/null @@ -1,111 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Schema; -using namespace System::Xml::Serialization; -public ref class Winery -{ -public: - String^ Name; -}; - -public ref class VacationCompany -{ -public: - String^ Name; -}; - -public ref class Enterprises -{ -private: - array^wineries; - array^companies; - -public: - - // Sets the Form property to qualified, and specifies the namespace. - [XmlArray(Form=XmlSchemaForm::Qualified,ElementName="Company", - Namespace="http://www.cohowinery.com")] - property array^ Wineries - { - array^ get() - { - return wineries; - } - void set( array^value ) - { - wineries = value; - } - } - - [XmlArray(Form=XmlSchemaForm::Qualified,ElementName="Company", - Namespace="http://www.treyresearch.com")] - property array^ Companies - { - array^ get() - { - return companies; - } - void set( array^value ) - { - companies = value; - } - } -}; - -int main() -{ - String^ filename = "MyEnterprises.xml"; - - // Creates an instance of the XmlSerializer class. - XmlSerializer^ mySerializer = gcnew XmlSerializer( Enterprises::typeid ); - - // Writing file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Creates an instance of the XmlSerializerNamespaces class. - XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces; - - // Adds namespaces and prefixes for the XML document instance. - ns->Add( "winery", "http://www.cohowinery.com" ); - ns->Add( "vacationCompany", "http://www.treyresearch.com" ); - - // Creates an instance of the class that will be serialized. - Enterprises^ myEnterprises = gcnew Enterprises; - - // Creates objects and adds to the array. - Winery^ w1 = gcnew Winery; - w1->Name = "cohowinery"; - array^myWinery = {w1}; - myEnterprises->Wineries = myWinery; - VacationCompany^ com1 = gcnew VacationCompany; - com1->Name = "adventure-works"; - array^myCompany = {com1}; - myEnterprises->Companies = myCompany; - - // Serializes the class, and closes the TextWriter. - mySerializer->Serialize( writer, myEnterprises, ns ); - writer->Close(); -} - -void ReadEnterprises( String^ filename ) -{ - XmlSerializer^ mySerializer = gcnew XmlSerializer( Enterprises::typeid ); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Enterprises^ myEnterprises = dynamic_cast(mySerializer->Deserialize( fs )); - for ( int i = 0; i < myEnterprises->Wineries->Length; i++ ) - { - Console::WriteLine( myEnterprises->Wineries[ i ]->Name ); - } - for ( int i = 0; i < myEnterprises->Companies->Length; i++ ) - { - Console::WriteLine( myEnterprises->Companies[ i ]->Name ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.IsNullable Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.IsNullable Example/CPP/source.cpp deleted file mode 100644 index b04f9de845eef..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.IsNullable Example/CPP/source.cpp +++ /dev/null @@ -1,22 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -public ref class MyClass -{ -public: - - [XmlArray(IsNullable=true)] - array^IsNullableIsTrueArray; - - [XmlArray(IsNullable=false)] - array^IsNullableIsFalseArray; -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.Namespace Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.Namespace Example/CPP/source.cpp deleted file mode 100644 index ffc20656b48d2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.Namespace Example/CPP/source.cpp +++ /dev/null @@ -1,162 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -public ref class Book -{ -public: - String^ Title; - String^ Author; - String^ ISBN; - - [XmlAttributeAttribute] - String^ Publisher; -}; - -public ref class Periodical -{ -private: - String^ title; - -public: - - property String^ Title - { - String^ get() - { - return title; - } - void set( String^ value ) - { - title = value; - } - } -}; - -public ref class Library -{ -private: - array^books; - array^periodicals; - -public: - - /* This element will be qualified with the prefix - that is associated with the namespace http://wwww.cpandl.com. */ - [XmlArray(ElementName="Titles", - Namespace="http://wwww.cpandl.com")] - property array^ Books - { - array^ get() - { - return books; - } - void set( array^value ) - { - books = value; - } - } - - /* This element will be qualified with the prefix that is - associated with the namespace http://www.proseware.com. */ - [XmlArray(ElementName="Titles",Namespace= - "http://www.proseware.com")] - property array^ Periodicals - { - array^ get() - { - return periodicals; - } - void set( array^value ) - { - periodicals = value; - } - } -}; - -void WriteBook( String^ filename ) -{ - // Creates a new XmlSerializer. - XmlSerializer^ mySerializer = gcnew XmlSerializer( Library::typeid ); - - // Writing the file requires a StreamWriter. - TextWriter^ myStreamWriter = gcnew StreamWriter( filename ); - - /* Creates an XmlSerializerNamespaces and adds prefixes and - namespaces to be used. */ - XmlSerializerNamespaces^ myNamespaces = gcnew XmlSerializerNamespaces; - myNamespaces->Add( "books", "http://wwww.cpandl.com" ); - myNamespaces->Add( "magazines", "http://www.proseware.com" ); - - // Creates an instance of the class to be serialized. - Library^ myLibrary = gcnew Library; - - // Creates two book objects. - Book^ b1 = gcnew Book; - b1->Title = "My Book Title"; - b1->Author = "An Author"; - b1->ISBN = "000000000"; - b1->Publisher = "Microsoft Press"; - Book^ b2 = gcnew Book; - b2->Title = "Another Book Title"; - b2->Author = "Another Author"; - b2->ISBN = "00000001"; - b2->Publisher = "Another Press"; - - /* Creates an array using the objects, and sets the Books property - to the array. */ - array^myBooks = {b1,b2}; - myLibrary->Books = myBooks; - - // Creates two Periodical objects. - Periodical^ per1 = gcnew Periodical; - per1->Title = "My Magazine Title"; - Periodical^ per2 = gcnew Periodical; - per2->Title = "Another Magazine Title"; - - // Sets the Periodicals property to the array. - array^myPeridocials = {per1,per2}; - myLibrary->Periodicals = myPeridocials; - - // Serializes the myLibrary object. - mySerializer->Serialize( myStreamWriter, myLibrary, myNamespaces ); - myStreamWriter->Close(); -} - -void ReadBook( String^ filename ) -{ - /* Creates an instance of an XmlSerializer - with the class used to read the document. */ - XmlSerializer^ mySerializer = gcnew XmlSerializer( Library::typeid ); - - // A FileStream is needed to read the file. - FileStream^ myFileStream = gcnew FileStream( filename,FileMode::Open ); - Library^ myLibrary = dynamic_cast(mySerializer->Deserialize( myFileStream )); - - // Reads each book in the array returned by the Books property. - for ( int i = 0; i < myLibrary->Books->Length; i++ ) - { - Console::WriteLine( myLibrary->Books[ i ]->Title ); - Console::WriteLine( myLibrary->Books[ i ]->Author ); - Console::WriteLine( myLibrary->Books[ i ]->ISBN ); - Console::WriteLine( myLibrary->Books[ i ]->Publisher ); - Console::WriteLine(); - } - for ( int i = 0; i < myLibrary->Periodicals->Length; i++ ) - { - Console::WriteLine( myLibrary->Periodicals[ i ]->Title ); - } -} - -int main() -{ - WriteBook( "MyLibrary.xml" ); - ReadBook( "MyLibrary.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.XmlArrayAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.XmlArrayAttribute Example/CPP/source.cpp deleted file mode 100644 index 78a6040f3fa5d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.XmlArrayAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,22 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -public ref class MyClass -{ -public: - - [XmlArrayAttribute] - array^MyStringArray; - - [XmlArrayAttribute] - array^MyIntegerArray; -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.XmlArrayAttribute1 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.XmlArrayAttribute1 Example/CPP/source.cpp deleted file mode 100644 index 9b68919eff81a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayAttribute.XmlArrayAttribute1 Example/CPP/source.cpp +++ /dev/null @@ -1,48 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class MyClass -{ -public: - - [XmlArrayAttribute("MyStrings")] - array^MyStringArray; - - [XmlArrayAttribute(ElementName="MyIntegers")] - array^MyIntegerArray; -}; - -int main() -{ - String^ filename = "MyClass.xml"; - - // Creates a new instance of the XmlSerializer class. - XmlSerializer^ s = gcnew XmlSerializer( MyClass::typeid ); - - // Needs a StreamWriter to write the file. - TextWriter^ myWriter = gcnew StreamWriter( filename ); - MyClass^ myClass = gcnew MyClass; - - // Creates and populates a string array, then assigns - // it to the MyStringArray property. - array^myStrings = {"Hello","World","!"}; - myClass->MyStringArray = myStrings; - - /* Creates and populates an integer array, and assigns - it to the MyIntegerArray property. */ - array^myIntegers = {1,2,3}; - myClass->MyIntegerArray = myIntegers; - - // Serializes the class, and writes it to disk. - s->Serialize( myWriter, myClass ); - myWriter->Close(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute Example/CPP/source.cpp deleted file mode 100644 index 7504aad63a35a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,93 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -public ref class Employee -{ -public: - String^ Name; -}; - -public ref class Manager: public Employee -{ -public: - int Level; -}; - -public ref class Group -{ -public: - - /* The XmlArrayItemAttribute allows the XmlSerializer to insert - both the base type (Employee) and derived type (Manager) - into serialized arrays. */ - - [XmlArrayItem(Manager::typeid), - XmlArrayItem(Employee::typeid)] - array^Employees; - - /* Use the XmlArrayItemAttribute to specify types allowed - in an array of Object items. */ - - [XmlArray] - [XmlArrayItem(Int32::typeid, - ElementName="MyNumber"), - XmlArrayItem(String::typeid, - ElementName="MyString"), - XmlArrayItem(Manager::typeid)] - array^ExtraInfo; -}; - -void SerializeObject( String^ filename ) -{ - // Creates a new XmlSerializer. - XmlSerializer^ s = gcnew XmlSerializer( Group::typeid ); - - // Writing the XML file to disk requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - Group^ group = gcnew Group; - Manager^ manager = gcnew Manager; - Employee^ emp1 = gcnew Employee; - Employee^ emp2 = gcnew Employee; - manager->Name = "Consuela"; - manager->Level = 3; - emp1->Name = "Seiko"; - emp2->Name = "Martina"; - array^emps = {manager,emp1,emp2}; - group->Employees = emps; - - // Creates an int and a string and assigns to ExtraInfo. - array^temp = {43,"Extra",manager}; - group->ExtraInfo = temp; - - // Serializes the object, and closes the StreamWriter. - s->Serialize( writer, group ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - XmlSerializer^ x = gcnew XmlSerializer( Group::typeid ); - Group^ g = dynamic_cast(x->Deserialize( fs )); - Console::WriteLine( "Members:" ); - System::Collections::IEnumerator^ myEnum = g->Employees->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Employee^ e = safe_cast(myEnum->Current); - Console::WriteLine( "\t{0}", e->Name ); - } -} - -int main() -{ - SerializeObject( "TypeDoc.xml" ); - DeserializeObject( "TypeDoc.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.ElementName Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.ElementName Example/CPP/source.cpp deleted file mode 100644 index 1ad1f494f358b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.ElementName Example/CPP/source.cpp +++ /dev/null @@ -1,37 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -// By default, this class results in XML elements named "Vehicle". -public ref class Vehicle -{ -public: - String^ id; -}; - -// By default, this class results in XML elements named "Car". -public ref class Car: public Vehicle -{ -public: - String^ Maker; -}; - -public ref class Transportation -{ -public: - - /* Specifies acceptable types and the ElementName generated - for each object type. */ - - [XmlArray("Vehicles")] - [XmlArrayItem(Vehicle::typeid,ElementName="Transport"), - XmlArrayItem(Car::typeid,ElementName="Automobile")] - array^MyVehicles; -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.Form Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.Form Example/CPP/source.cpp deleted file mode 100644 index 6f0101ea001e2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.Form Example/CPP/source.cpp +++ /dev/null @@ -1,37 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Schema; -using namespace System::Xml::Serialization; - -// -public ref class Vehicle -{ -public: - String^ id; -}; - -public ref class Car: public Vehicle -{ -public: - String^ Maker; -}; - -public ref class Transportation -{ -public: - - // Specifies the Form property value. - - [XmlArray("Vehicles")] - [XmlArrayItem(Vehicle::typeid, - Form=XmlSchemaForm::Unqualified), - XmlArrayItem(Car::typeid, - Form=XmlSchemaForm::Qualified)] - array^MyVehicles; -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.IsNullable Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.IsNullable Example/CPP/source.cpp deleted file mode 100644 index 10b3c35b2f145..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.IsNullable Example/CPP/source.cpp +++ /dev/null @@ -1,60 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -public ref class Employee -{ -public: - String^ Name; -}; - -public ref class Manager: public Employee -{ -public: - int Level; -}; - -public ref class Group -{ -public: - - [XmlArray(IsNullable=true)] - [XmlArrayItem(Manager::typeid,IsNullable=false), - XmlArrayItem(Employee::typeid,IsNullable=false)] - array^Employees; -}; - -void SerializeObject( String^ filename ) -{ - XmlSerializer^ s = gcnew XmlSerializer( Group::typeid ); - - // To write the file, a TextWriter is required. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Creates the object to serialize. - Group^ group = gcnew Group; - - // Creates a null Manager object. - Manager^ mgr = nullptr; - - // Creates a null Employee object. - Employee^ y = nullptr; - array^temp = {mgr,y}; - group->Employees = temp; - - // Serializes the object and closes the TextWriter. - s->Serialize( writer, group ); - writer->Close(); -} - -int main() -{ - SerializeObject( "TypeDoc.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.Namespace Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.Namespace Example/CPP/source.cpp deleted file mode 100644 index 41cc05bd3444c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.Namespace Example/CPP/source.cpp +++ /dev/null @@ -1,23 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -public ref class Vehicle{}; - -public ref class Car: public Vehicle{}; - -// -public ref class Transportation -{ -public: - - // Sets the Namespace property. - - [XmlArrayItem(Car::typeid,Namespace="http://www.cpandl.com")] - array^MyVehicles; -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.Type Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.Type Example/CPP/source.cpp deleted file mode 100644 index b249fa9707cba..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.Type Example/CPP/source.cpp +++ /dev/null @@ -1,59 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -public ref class Person -{ -public: - String^ Name; -}; - -public ref class Manager: public Person -{ -public: - int Rank; -}; - -public ref class Group -{ -public: - - /* The Type property instructs the XmlSerializer to accept both - the Person and Manager types in the array. */ - - [XmlArrayItem(Type=Manager::typeid), - XmlArrayItem(Type=Person::typeid)] - array^Staff; -}; - -void SerializeOrder( String^ filename ) -{ - // Creates an XmlSerializer. - XmlSerializer^ xSer = gcnew XmlSerializer( Group::typeid ); - - // Creates the Group object, and two array items. - Group^ myGroup = gcnew Group; - Person^ p1 = gcnew Person; - p1->Name = "Jacki"; - Manager^ p2 = gcnew Manager; - p2->Name = "Megan"; - p2->Rank = 2; - array^myStaff = {p1,p2}; - myGroup->Staff = myStaff; - - // Serializes the object, and closes the StreamWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - xSer->Serialize( writer, myGroup ); -} - -int main() -{ - SerializeOrder( "TypeEx.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.XmlArrayItemAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.XmlArrayItemAttribute Example/CPP/source.cpp deleted file mode 100644 index 153e7b6e3d2c2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.XmlArrayItemAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,75 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Vehicle -{ -public: - String^ id; -}; - -public ref class Car: public Vehicle -{ -public: - String^ Maker; -}; - -public ref class Transportation -{ -public: - - [XmlArrayItem, - XmlArrayItem(Car::typeid,ElementName="Automobile")] - array^MyVehicles; -}; - -void SerializeObject( String^ filename ) -{ - // Creates an XmlSerializer for the Transportation class. - XmlSerializer^ MySerializer = gcnew XmlSerializer( Transportation::typeid ); - - // Writing the XML file to disk requires a TextWriter. - TextWriter^ myTextWriter = gcnew StreamWriter( filename ); - - // Creates the object to serialize. - Transportation^ myTransportation = gcnew Transportation; - - // Creates objects to add to the array. - Vehicle^ myVehicle = gcnew Vehicle; - myVehicle->id = "A12345"; - Car^ myCar = gcnew Car; - myCar->id = "Car 34"; - myCar->Maker = "FamousCarMaker"; - array^temp = {myVehicle,myCar}; - myTransportation->MyVehicles = temp; - - // Serializes the object, and closes the StreamWriter. - MySerializer->Serialize( myTextWriter, myTransportation ); - myTextWriter->Close(); -} - -void DeserializeObject( String^ filename ) -{ - // Creates an XmlSerializer instance. - XmlSerializer^ mySerializer = gcnew XmlSerializer( Transportation::typeid ); - FileStream^ myFileStream = gcnew FileStream( filename,FileMode::Open ); - Transportation^ myTransportation = dynamic_cast(mySerializer->Deserialize( myFileStream )); - for ( int i = 0; i < myTransportation->MyVehicles->Length; i++ ) - { - Console::WriteLine( myTransportation->MyVehicles[ i ]->id ); - } -} - -int main() -{ - SerializeObject( "XmlArrayItem1.xml" ); - DeserializeObject( "XmlArrayItem1.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.XmlArrayItemAttribute1 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.XmlArrayItemAttribute1 Example/CPP/source.cpp deleted file mode 100644 index 27560a1275850..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.XmlArrayItemAttribute1 Example/CPP/source.cpp +++ /dev/null @@ -1,71 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Vehicle -{ -public: - String^ id; -}; - -public ref class Car: public Vehicle -{ -public: - String^ Maker; -}; - -public ref class Transportation -{ -public: - - [XmlArrayItem(ElementName="Transportation"), - XmlArrayItem(Car::typeid,ElementName="Automobile")] - array^MyVehicles; -}; - -void SerializeObject( String^ filename ) -{ - // Creates an XmlSerializer for the Transportation class. - XmlSerializer^ MySerializer = gcnew XmlSerializer( Transportation::typeid ); - - // Writing the XML file to disk requires a TextWriter. - TextWriter^ myTextWriter = gcnew StreamWriter( filename ); - Transportation^ myTransportation = gcnew Transportation; - Vehicle^ myVehicle = gcnew Vehicle; - myVehicle->id = "A12345"; - Car^ myCar = gcnew Car; - myCar->id = "Car 34"; - myCar->Maker = "FamousCarMaker"; - array^myVehicles = {myVehicle,myCar}; - myTransportation->MyVehicles = myVehicles; - - // Serializes the object, and closes the StreamWriter. - MySerializer->Serialize( myTextWriter, myTransportation ); - myTextWriter->Close(); -} - -void DeserializeObject( String^ filename ) -{ - // Creates the serializer with the type to deserialize. - XmlSerializer^ mySerializer = gcnew XmlSerializer( Transportation::typeid ); - FileStream^ myFileStream = gcnew FileStream( filename,FileMode::Open ); - Transportation^ myTransportation = dynamic_cast(mySerializer->Deserialize( myFileStream )); - for ( int i = 0; i < myTransportation->MyVehicles->Length; i++ ) - { - Console::WriteLine( myTransportation->MyVehicles[ i ]->id ); - } -} - -int main() -{ - SerializeObject( "XmlArrayItem2.xml" ); - DeserializeObject( "XmlArrayItem2.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.XmlArrayItemAttribute2 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.XmlArrayItemAttribute2 Example/CPP/source.cpp deleted file mode 100644 index 8809b40c0afc1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.XmlArrayItemAttribute2 Example/CPP/source.cpp +++ /dev/null @@ -1,71 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Vehicle -{ -public: - String^ id; -}; - -public ref class Car: public Vehicle -{ -public: - String^ Maker; -}; - -public ref class Transportation -{ -public: - - [XmlArrayItem(Vehicle::typeid), - XmlArrayItem(Car::typeid)] - array^MyVehicles; -}; - -void SerializeObject( String^ filename ) -{ - // Creates an XmlSerializer. - XmlSerializer^ MySerializer = gcnew XmlSerializer( Transportation::typeid ); - - // Writing the XML file to disk requires a TextWriter. - TextWriter^ myTextWriter = gcnew StreamWriter( filename ); - Transportation^ myTransportation = gcnew Transportation; - Vehicle^ myVehicle = gcnew Vehicle; - myVehicle->id = "A12345"; - Car^ myCar = gcnew Car; - myCar->id = "Car 34"; - myCar->Maker = "FamousCarMaker"; - array^myVehicles = {myVehicle,myCar}; - myTransportation->MyVehicles = myVehicles; - - // Serializes the object, and closes the StreamWriter. - MySerializer->Serialize( myTextWriter, myTransportation ); - myTextWriter->Close(); -} - -void DeserializeObject( String^ filename ) -{ - // Creates the serializer with the type to deserialize. - XmlSerializer^ mySerializer = gcnew XmlSerializer( Transportation::typeid ); - FileStream^ myFileStream = gcnew FileStream( filename,FileMode::Open ); - Transportation^ myTransportation = dynamic_cast(mySerializer->Deserialize( myFileStream )); - for ( int i = 0; i < myTransportation->MyVehicles->Length; i++ ) - { - Console::WriteLine( myTransportation->MyVehicles[ i ]->id ); - } -} - -int main() -{ - SerializeObject( "XmlArrayItem3.xml" ); - DeserializeObject( "XmlArrayItem3.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.XmlArrayItemAttribute3 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.XmlArrayItemAttribute3 Example/CPP/source.cpp deleted file mode 100644 index 6886a80fe910d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlArrayItemAttribute.XmlArrayItemAttribute3 Example/CPP/source.cpp +++ /dev/null @@ -1,72 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Vehicle -{ -public: - String^ id; -}; - -public ref class Car: public Vehicle -{ -public: - String^ Maker; -}; - -public ref class Transportation -{ -public: - - [XmlArray] - [XmlArrayItem("Transport",Vehicle::typeid), - XmlArrayItem("Automobile",Car::typeid)] - array^MyVehicles; -}; - -void SerializeObject( String^ filename ) -{ - // Creates an XmlSerializer for the Transportation class. - XmlSerializer^ MySerializer = gcnew XmlSerializer( Transportation::typeid ); - - // Writing the XML file to disk requires a TextWriter. - TextWriter^ myTextWriter = gcnew StreamWriter( filename ); - Transportation^ myTransportation = gcnew Transportation; - Vehicle^ myVehicle = gcnew Vehicle; - myVehicle->id = "A12345"; - Car^ myCar = gcnew Car; - myCar->id = "Car 34"; - myCar->Maker = "FamousCarMaker"; - array^myVehicles = {myVehicle,myCar}; - myTransportation->MyVehicles = myVehicles; - - // Serializes the object, and closes the StreamWriter. - MySerializer->Serialize( myTextWriter, myTransportation ); - myTextWriter->Close(); -} - -void DeserializeObject( String^ filename ) -{ - // Creates an XmlSerializer. - XmlSerializer^ mySerializer = gcnew XmlSerializer( Transportation::typeid ); - FileStream^ myFileStream = gcnew FileStream( filename,FileMode::Open ); - Transportation^ myTransportation = dynamic_cast(mySerializer->Deserialize( myFileStream )); - for ( int i = 0; i < myTransportation->MyVehicles->Length; i++ ) - { - Console::WriteLine( myTransportation->MyVehicles[ i ]->id ); - } -} - -int main() -{ - SerializeObject( "XmlArrayItem4.xml" ); - DeserializeObject( "XmlArrayItem4.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute Example/CPP/source.cpp deleted file mode 100644 index ded3d3f240a14..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,54 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -using namespace System::Xml::Schema; - -public ref class Group -{ -public: - - [XmlAttributeAttribute(Namespace="http://www.cpandl.com")] - String^ GroupName; - - [XmlAttributeAttribute(DataType="base64Binary")] - array^GroupNumber; - - [XmlAttributeAttribute(DataType="date",AttributeName="CreationDate")] - DateTime Today; -}; - -void SerializeObject( String^ filename ) -{ - // Create an instance of the XmlSerializer class. - XmlSerializer^ mySerializer = gcnew XmlSerializer( Group::typeid ); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - // Set the object properties. - myGroup->GroupName = ".NET"; - array^hexByte = {Convert::ToByte( 100 ),Convert::ToByte( 50 )}; - myGroup->GroupNumber = hexByte; - DateTime myDate = DateTime(2001,1,10); - myGroup->Today = myDate; - - // Serialize the class, and close the TextWriter. - mySerializer->Serialize( writer, myGroup ); - writer->Close(); -} - -int main() -{ - SerializeObject( "Attributes.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute.AttributeName Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute.AttributeName Example/CPP/source.cpp deleted file mode 100644 index bf8889f67722d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute.AttributeName Example/CPP/source.cpp +++ /dev/null @@ -1,65 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Group -{ -public: - - // Change the XML attribute name. - - [XmlAttributeAttribute(AttributeName="MgrName")] - String^ Name; - /* Use the AttributeName to collect all the XML attributes - in the XML-document instance. */ -}; - -void SerializeObject( String^ filename ) -{ - Console::WriteLine( "Serializing" ); - - // Create an instance of the XmlSerializer class. - XmlSerializer^ mySerializer = gcnew XmlSerializer( Group::typeid ); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - /* Set the Name property, which will be generated - as an XML attribute. */ - myGroup->Name = "Wallace"; - - // Serialize the class, and close the TextWriter. - mySerializer->Serialize( writer, myGroup ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - Console::WriteLine( "Deserializing" ); - XmlSerializer^ mySerializer = gcnew XmlSerializer( Group::typeid ); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Group^ myGroup = dynamic_cast(mySerializer->Deserialize( fs )); - Console::WriteLine( myGroup->Name ); -} - -int main() -{ - /* To use the AttributeName to collect all the - XML attributes. Call SerializeObject to generate - an XML document and alter the document by adding - new XML attributes to it. Then comment out the SerializeObject - method, and call DeserializeObject. */ - SerializeObject( "MyAtts.xml" ); - DeserializeObject( "MyAtts.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute.DataType Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute.DataType Example/CPP/source.cpp deleted file mode 100644 index dbc9a73c48ff8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute.DataType Example/CPP/source.cpp +++ /dev/null @@ -1,22 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -public ref class Group -{ -public: - - [XmlAttributeAttribute(DataType="string")] - String^ Name; - - [XmlAttributeAttribute(DataType="base64Binary")] - array^Hex64Code; -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute.Form Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute.Form Example/CPP/source.cpp deleted file mode 100644 index 37de504e9b71c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute.Form Example/CPP/source.cpp +++ /dev/null @@ -1,23 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Schema; -using namespace System::Xml::Serialization; - -// -public ref class Vehicle -{ -public: - - [XmlAttributeAttribute(Form=XmlSchemaForm::Qualified)] - String^ Maker; - - [XmlAttributeAttribute(Form=XmlSchemaForm::Unqualified)] - String^ ModelID; -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute.Namespace Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute.Namespace Example/CPP/source.cpp deleted file mode 100644 index 8cd4fd710f3c1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeAttribute.Namespace Example/CPP/source.cpp +++ /dev/null @@ -1,22 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -public ref class Car -{ -public: - - [XmlAttributeAttribute(Namespace="Make")] - String^ MakerName; - - [XmlAttributeAttribute(Namespace="Model")] - String^ ModelName; -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeEventArgs.ObjectBeingDeserialized Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeEventArgs.ObjectBeingDeserialized Example/CPP/source.cpp deleted file mode 100644 index 4dc40d33dd299..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeEventArgs.ObjectBeingDeserialized Example/CPP/source.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Sample -{ - // -private: - void serializer_UnknownAttribute( Object^ /*sender*/, XmlAttributeEventArgs^ e ) - { - System::Xml::XmlAttribute^ attr = e->Attr; - Console::WriteLine( "Unknown Attribute Name and Value: {0} = '{1}'", - attr->Name, attr->Value ); - Object^ x = e->ObjectBeingDeserialized; - Console::WriteLine( "ObjectBeingDeserialized: {0}", x ); - } - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides Example/CPP/source.cpp deleted file mode 100644 index 5d23724e8ea4f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides Example/CPP/source.cpp +++ /dev/null @@ -1,113 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -public ref class Instrument -{ -public: - String^ Name; -}; - -public ref class Brass: public Instrument -{ -public: - bool IsValved; -}; - -public ref class Orchestra -{ -public: - array^Instruments; -}; - -void SerializeObject( String^ filename ) -{ - /* Each overridden field, property, or type requires - an XmlAttributes object. */ - XmlAttributes^ attrs = gcnew XmlAttributes; - - /* Create an XmlElementAttribute to override the - field that returns Instrument objects. The overridden field - returns Brass objects instead. */ - XmlElementAttribute^ attr = gcnew XmlElementAttribute; - attr->ElementName = "Brass"; - attr->Type = Brass::typeid; - - // Add the element to the collection of elements. - attrs->XmlElements->Add( attr ); - - // Create the XmlAttributeOverrides object. - XmlAttributeOverrides^ attrOverrides = gcnew XmlAttributeOverrides; - - /* Add the type of the class that contains the overridden - member and the XmlAttributes to override it with to the - XmlAttributeOverrides object. */ - attrOverrides->Add( Orchestra::typeid, "Instruments", attrs ); - - // Create the XmlSerializer using the XmlAttributeOverrides. - XmlSerializer^ s = gcnew XmlSerializer( Orchestra::typeid,attrOverrides ); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create the object that will be serialized. - Orchestra^ band = gcnew Orchestra; - - // Create an object of the derived type. - Brass^ i = gcnew Brass; - i->Name = "Trumpet"; - i->IsValved = true; - array^myInstruments = {i}; - band->Instruments = myInstruments; - - // Serialize the object. - s->Serialize( writer, band ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlAttributeOverrides^ attrOverrides = gcnew XmlAttributeOverrides; - XmlAttributes^ attrs = gcnew XmlAttributes; - - // Create an XmlElementAttribute to override the Instrument. - XmlElementAttribute^ attr = gcnew XmlElementAttribute; - attr->ElementName = "Brass"; - attr->Type = Brass::typeid; - - // Add the XmlElementAttribute to the collection of objects. - attrs->XmlElements->Add( attr ); - attrOverrides->Add( Orchestra::typeid, "Instruments", attrs ); - - // Create the XmlSerializer using the XmlAttributeOverrides. - XmlSerializer^ s = gcnew XmlSerializer( Orchestra::typeid,attrOverrides ); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Orchestra^ band = dynamic_cast(s->Deserialize( fs )); - Console::WriteLine( "Brass:" ); - - /* The difference between deserializing the overridden - XML document and serializing it is this: To read the derived - object values, you must declare an object of the derived type - (Brass), and cast the Instrument instance to it. */ - Brass^ b; - System::Collections::IEnumerator^ myEnum = band->Instruments->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Instrument^ i = safe_cast(myEnum->Current); - b = dynamic_cast(i); - Console::WriteLine( "{0}\n{1}", b->Name, b->IsValved ); - } -} - -int main() -{ - SerializeObject( "Override.xml" ); - DeserializeObject( "Override.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides.Add Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides.Add Example/CPP/source.cpp deleted file mode 100644 index e474a5694c3ba..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides.Add Example/CPP/source.cpp +++ /dev/null @@ -1,102 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -ref class Band; -ref class Instrument; - -/* This is the class that will be overridden. The XmlIncludeAttribute -tells the XmlSerializer that the overriding type exists. */ - -[XmlInclude(Band::typeid)] -public ref class Orchestra -{ -public: - array^Instruments; -}; - -// This is the overriding class. -public ref class Band: public Orchestra -{ -public: - String^ BandName; -}; - -public ref class Instrument -{ -public: - String^ Name; -}; - -void SerializeObject( String^ filename ) -{ - /* Each object that is being overridden requires - an XmlAttributes object. */ - XmlAttributes^ attrs = gcnew XmlAttributes; - - // An XmlRootAttribute allows overriding the Orchestra class. - XmlRootAttribute^ xmlRoot = gcnew XmlRootAttribute; - - // Set the object to the XmlAttribute.XmlRoot property. - attrs->XmlRoot = xmlRoot; - - // Create an XmlAttributeOverrides object. - XmlAttributeOverrides^ attrOverrides = gcnew XmlAttributeOverrides; - - // Add the XmlAttributes to the XmlAttributeOverrrides. - attrOverrides->Add( Orchestra::typeid, attrs ); - - // Create the XmlSerializer using the XmlAttributeOverrides. - XmlSerializer^ s = gcnew XmlSerializer( Orchestra::typeid,attrOverrides ); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create the object using the derived class. - Band^ band = gcnew Band; - band->BandName = "NewBand"; - - // Create an Instrument. - Instrument^ i = gcnew Instrument; - i->Name = "Trumpet"; - array^myInstruments = {i}; - band->Instruments = myInstruments; - - // Serialize the object. - s->Serialize( writer, band ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlAttributes^ attrs = gcnew XmlAttributes; - XmlRootAttribute^ attr = gcnew XmlRootAttribute; - attrs->XmlRoot = attr; - XmlAttributeOverrides^ attrOverrides = gcnew XmlAttributeOverrides; - attrOverrides->Add( Orchestra::typeid, "Instruments", attrs ); - XmlSerializer^ s = gcnew XmlSerializer( Orchestra::typeid,attrOverrides ); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - - // Deserialize the Band object. - Band^ band = dynamic_cast(s->Deserialize( fs )); - Console::WriteLine( "Brass:" ); - System::Collections::IEnumerator^ myEnum = band->Instruments->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Instrument^ i = safe_cast(myEnum->Current); - Console::WriteLine( i->Name ); - } -} - -int main() -{ - SerializeObject( "Override.xml" ); - DeserializeObject( "Override.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides.Add1 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides.Add1 Example/CPP/source.cpp deleted file mode 100644 index ae9b594d0f2f8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides.Add1 Example/CPP/source.cpp +++ /dev/null @@ -1,48 +0,0 @@ - - -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -// This is the class that will be serialized. -public ref class Group -{ -public: - String^ GroupName; - - [XmlAttributeAttribute] - int GroupCode; -}; - -public ref class Sample -{ -public: - XmlSerializer^ CreateOverrider() - { - // Create an XmlAttributeOverrides object. - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - - /* Create an XmlAttributeAttribute to override the base class - object's XmlAttributeAttribute object. Give the overriding object - a new attribute name ("Code"). */ - XmlAttributeAttribute^ xAtt = gcnew XmlAttributeAttribute; - xAtt->AttributeName = "Code"; - - /* Create an instance of the XmlAttributes class and set the - XmlAttribute property to the XmlAttributeAttribute object. */ - XmlAttributes^ attrs = gcnew XmlAttributes; - attrs->XmlAttribute = xAtt; - - /* Add the XmlAttributes object to the XmlAttributeOverrides - and specify the type and member name to override. */ - xOver->Add( Group::typeid, "GroupCode", attrs ); - XmlSerializer^ xSer = gcnew XmlSerializer( Group::typeid,xOver ); - return xSer; - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides.this Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides.this Example/CPP/source.cpp deleted file mode 100644 index d9d43cdf6b353..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides.this Example/CPP/source.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -// This is the class that will be serialized. -public ref class Group -{ -public: - String^ GroupName; - - [XmlAttributeAttribute] - int GroupCode; -}; - -public ref class Sample -{ -public: - XmlSerializer^ CreateOverrider() - { - // Create an XmlSerializer with overriding attributes. - XmlAttributes^ attrs = gcnew XmlAttributes; - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - XmlRootAttribute^ xRoot = gcnew XmlRootAttribute; - - // Set a new Namespace and ElementName for the root element. - xRoot->Namespace = "http://www.cpandl.com"; - xRoot->ElementName = "NewGroup"; - attrs->XmlRoot = xRoot; - xOver->Add( Group::typeid, attrs ); - - // Get the XmlAttributes object, based on the type. - XmlAttributes^ tempAttrs; - tempAttrs = xOver[ Group::typeid ]; - - // Print the Namespace and ElementName of the root. - Console::WriteLine( tempAttrs->XmlRoot->Namespace ); - Console::WriteLine( tempAttrs->XmlRoot->ElementName ); - XmlSerializer^ xSer = gcnew XmlSerializer( Group::typeid,xOver ); - return xSer; - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides.this1 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides.this1 Example/CPP/source.cpp deleted file mode 100644 index 099c81b666442..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributeOverrides.this1 Example/CPP/source.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -// This is the class that will be serialized. -public ref class Group -{ -public: - String^ GroupName; - - [XmlAttributeAttribute] - int GroupCode; -}; - -public ref class Sample -{ -public: - XmlSerializer^ CreateOverrider() - { - // Create an XmlSerializer with overriding attributes. - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - - /* Create an XmlAttributeAttribute object and set the - AttributeName property. */ - XmlAttributeAttribute^ xAtt = gcnew XmlAttributeAttribute; - xAtt->AttributeName = "Code"; - - /* Create a new XmlAttributes object and set the - XmlAttributeAttribute object to the XmlAttribute property. */ - XmlAttributes^ attrs = gcnew XmlAttributes; - attrs->XmlAttribute = xAtt; - - /* Add the XmlAttributes to the XmlAttributeOverrides object. The - name of the overridden attribute must be specified. */ - xOver->Add( Group::typeid, "GroupCode", attrs ); - - // Get the XmlAttributes object for the type and member. - XmlAttributes^ tempAttrs; - tempAttrs = xOver[Group::typeid, "GroupCode"]; - Console::WriteLine( tempAttrs->XmlAttribute->AttributeName ); - - // Create the XmlSerializer instance and return it. - XmlSerializer^ xSer = gcnew XmlSerializer( Group::typeid,xOver ); - return xSer; - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlArray Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlArray Example/CPP/source.cpp deleted file mode 100644 index c0960e934fc9f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlArray Example/CPP/source.cpp +++ /dev/null @@ -1,85 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -public ref class Member -{ -public: - String^ MemberName; -}; - - -// This is the class that will be serialized. -public ref class Group -{ -public: - - // This field will be overridden. - array^Members; -}; - - -// Return an XmlSerializer used for overriding. -XmlSerializer^ CreateOverrider() -{ - // Creating XmlAttributeOverrides and XmlAttributes objects. - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - XmlAttributes^ xAttrs = gcnew XmlAttributes; - - // Add an override for the XmlArray. - XmlArrayAttribute^ xArray = gcnew XmlArrayAttribute( "Staff" ); - xArray->Namespace = "http://www.cpandl.com"; - xAttrs->XmlArray = xArray; - xOver->Add( Group::typeid, "Members", xAttrs ); - - // Create the XmlSerializer and return it. - return gcnew XmlSerializer( Group::typeid,xOver ); -} - -void SerializeObject( String^ filename ) -{ - // Create an instance of the XmlSerializer class. - XmlSerializer^ mySerializer = CreateOverrider(); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - // Set the object properties. - Member^ m = gcnew Member; - m->MemberName = "Paul"; - array^temp = {m}; - myGroup->Members = temp; - - // Serialize the class, and close the TextWriter. - mySerializer->Serialize( writer, myGroup ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlSerializer^ mySerializer = CreateOverrider(); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Group^ myGroup = dynamic_cast(mySerializer->Deserialize( fs )); - System::Collections::IEnumerator^ myEnum = myGroup->Members->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Member^ m = safe_cast(myEnum->Current); - Console::WriteLine( m->MemberName ); - } -} - -int main() -{ - SerializeObject( "OverrideArray.xml" ); - DeserializeObject( "OverrideArray.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlArrayItems Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlArrayItems Example/CPP/source.cpp deleted file mode 100644 index d2aff93a0cec3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlArrayItems Example/CPP/source.cpp +++ /dev/null @@ -1,107 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -public ref class Member -{ -public: - String^ MemberName; -}; - -// This is the class that will be serialized. -public ref class Group -{ -public: - array^Members; -}; - -public ref class NewMember: public Member -{ -public: - int MemberID; -}; - -public ref class RetiredMember: public NewMember -{ -public: - DateTime RetireDate; -}; - -// Return an XmlSerializer used for overriding. -XmlSerializer^ CreateOverrider() -{ - // Create XmlAttributeOverrides and XmlAttributes objects. - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - XmlAttributes^ xAttrs = gcnew XmlAttributes; - - // Add an override for the XmlArrayItem. - XmlArrayItemAttribute^ xArrayItem = gcnew XmlArrayItemAttribute( NewMember::typeid ); - xArrayItem->Namespace = "http://www.cpandl.com"; - xAttrs->XmlArrayItems->Add( xArrayItem ); - - // Add a second override. - XmlArrayItemAttribute^ xArrayItem2 = gcnew XmlArrayItemAttribute( RetiredMember::typeid ); - xArrayItem2->Namespace = "http://www.cpandl.com"; - xAttrs->XmlArrayItems->Add( xArrayItem2 ); - - // Add all overrides to XmlAttribueOverrides object. - xOver->Add( Group::typeid, "Members", xAttrs ); - - // Create the XmlSerializer and return it. - return gcnew XmlSerializer( Group::typeid,xOver ); -} - -void SerializeObject( String^ filename ) -{ - // Create an instance of the XmlSerializer class. - XmlSerializer^ mySerializer = CreateOverrider(); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - // Set the object properties. - NewMember^ m = gcnew NewMember; - m->MemberName = "Paul"; - m->MemberID = 2; - - // Create a second member. - RetiredMember^ m2 = gcnew RetiredMember; - m2->MemberName = "Renaldo"; - m2->MemberID = 23; - m2->RetireDate = DateTime(2000,10,10); - array^temp = {m,m2}; - myGroup->Members = temp; - - // Serialize the class, and close the TextWriter. - mySerializer->Serialize( writer, myGroup ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlSerializer^ mySerializer = CreateOverrider(); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Group^ myGroup = dynamic_cast(mySerializer->Deserialize( fs )); - System::Collections::IEnumerator^ myEnum = myGroup->Members->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Member^ m = safe_cast(myEnum->Current); - Console::WriteLine( m->MemberName ); - } -} - -int main() -{ - SerializeObject( "OverrideArrayItem.xml" ); - DeserializeObject( "OverrideArrayItem.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlAttribute Example/CPP/source.cpp deleted file mode 100644 index 080d02f704e2e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,78 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// This is the class that will be serialized. -public ref class Group -{ -public: - - // This is the attribute that will be overridden. - - [XmlAttributeAttribute] - String^ GroupName; - int GroupNumber; -}; - -// Return an XmlSerializer used for overriding. -XmlSerializer^ CreateOverrider() -{ - // Create the XmlAttributeOverrides and XmlAttributes objects. - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - XmlAttributes^ xAttrs = gcnew XmlAttributes; - - /* Create an overriding XmlAttributeAttribute set it to - the XmlAttribute property of the XmlAttributes object.*/ - XmlAttributeAttribute^ xAttribute = gcnew XmlAttributeAttribute( "SplinterName" ); - xAttrs->XmlAttribute = xAttribute; - - // Add to the XmlAttributeOverrides. Specify the member name. - xOver->Add( Group::typeid, "GroupName", xAttrs ); - - // Create the XmlSerializer and return it. - return gcnew XmlSerializer( Group::typeid,xOver ); -} - -void SerializeObject( String^ filename ) -{ - // Create an instance of the XmlSerializer class. - XmlSerializer^ mySerializer = CreateOverrider(); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - /* Set the Name property, which will be generated - as an XML attribute. */ - myGroup->GroupName = ".NET"; - myGroup->GroupNumber = 1; - - // Serialize the class, and close the TextWriter. - mySerializer->Serialize( writer, myGroup ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlSerializer^ mySerializer = CreateOverrider(); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Group^ myGroup = dynamic_cast(mySerializer->Deserialize( fs )); - Console::WriteLine( myGroup->GroupName ); - Console::WriteLine( myGroup->GroupNumber ); -} - -int main() -{ - SerializeObject( "OverrideAttribute.xml" ); - DeserializeObject( "OverrideAttribute.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlAttributes Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlAttributes Example/CPP/source.cpp deleted file mode 100644 index 79e6e3011778d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlAttributes Example/CPP/source.cpp +++ /dev/null @@ -1,112 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; -public ref class Instrument -{ -public: - String^ Name; -}; - -public ref class Brass: public Instrument -{ -public: - bool IsValved; -}; - -public ref class Orchestra -{ -public: - array^Instruments; -}; - -void SerializeObject( String^ filename ) -{ - /* Each overridden field, property, or type requires - an XmlAttributes object. */ - XmlAttributes^ attrs = gcnew XmlAttributes; - - /* Create an XmlElementAttribute to override the - field that returns Instrument objects. The overridden field - returns Brass objects instead. */ - XmlElementAttribute^ attr = gcnew XmlElementAttribute; - attr->ElementName = "Brass"; - attr->Type = Brass::typeid; - - // Add the element to the collection of elements. - attrs->XmlElements->Add( attr ); - - // Create the XmlAttributeOverrides object. - XmlAttributeOverrides^ attrOverrides = gcnew XmlAttributeOverrides; - - /* Add the type of the class that contains the overridden - member and the XmlAttributes to override it with to the - XmlAttributeOverrides object. */ - attrOverrides->Add( Orchestra::typeid, "Instruments", attrs ); - - // Create the XmlSerializer using the XmlAttributeOverrides. - XmlSerializer^ s = gcnew XmlSerializer( Orchestra::typeid,attrOverrides ); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create the object that will be serialized. - Orchestra^ band = gcnew Orchestra; - - // Create an object of the derived type. - Brass^ i = gcnew Brass; - i->Name = "Trumpet"; - i->IsValved = true; - array^myInstruments = {i}; - band->Instruments = myInstruments; - - // Serialize the object. - s->Serialize( writer, band ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlAttributeOverrides^ attrOverrides = gcnew XmlAttributeOverrides; - XmlAttributes^ attrs = gcnew XmlAttributes; - - // Create an XmlElementAttribute to override the Instrument. - XmlElementAttribute^ attr = gcnew XmlElementAttribute; - attr->ElementName = "Brass"; - attr->Type = Brass::typeid; - - // Add the element to the collection of elements. - attrs->XmlElements->Add( attr ); - attrOverrides->Add( Orchestra::typeid, "Instruments", attrs ); - - // Create the XmlSerializer using the XmlAttributeOverrides. - XmlSerializer^ s = gcnew XmlSerializer( Orchestra::typeid,attrOverrides ); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Orchestra^ band = dynamic_cast(s->Deserialize( fs )); - Console::WriteLine( "Brass:" ); - - /* The difference between deserializing the overridden - XML document and serializing it is this: To read the derived - object values, you must declare an object of the derived type - (Brass), and cast the Instrument instance to it. */ - Brass^ b; - System::Collections::IEnumerator^ myEnum = band->Instruments->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Instrument^ i = safe_cast(myEnum->Current); - b = dynamic_cast(i); - Console::WriteLine( "{0}\n{1}", b->Name, b->IsValved ); - } -} - -int main() -{ - SerializeObject( "Override.xml" ); - DeserializeObject( "Override.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlDefaultValue Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlDefaultValue Example/CPP/source.cpp deleted file mode 100644 index 40f6a96deb728..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlDefaultValue Example/CPP/source.cpp +++ /dev/null @@ -1,88 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -using namespace System::ComponentModel; - -// This is the class that will be serialized. -public ref class Pet -{ -public: - - // The default value for the Animal field is "Dog". - - [DefaultValueAttribute("Dog")] - String^ Animal; -}; - -// Return an XmlSerializer used for overriding. -XmlSerializer^ CreateOverrider() -{ - // Create the XmlAttributeOverrides and XmlAttributes objects. - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - XmlAttributes^ xAttrs = gcnew XmlAttributes; - - // Add an override for the default value of the GroupName. - Object^ defaultAnimal = "Cat"; - xAttrs->XmlDefaultValue = defaultAnimal; - - // Add all the XmlAttributes to the XmlAttributeOverrides object. - xOver->Add( Pet::typeid, "Animal", xAttrs ); - - // Create the XmlSerializer and return it. - return gcnew XmlSerializer( Pet::typeid,xOver ); -} - -void SerializeObject( String^ filename ) -{ - // Create an instance of the XmlSerializer class. - XmlSerializer^ mySerializer = CreateOverrider(); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the class that will be serialized. - Pet^ myPet = gcnew Pet; - - /* Set the Animal property. If you set it to the default value, - which is "Cat" (the value assigned to the XmlDefaultValue - of the XmlAttributes object), no value will be serialized. - If you change the value to any other value (including "Dog"), - the value will be serialized. - */ - // The default value "Cat" will be assigned (nothing serialized). - myPet->Animal = ""; - - // Uncommenting the next line also results in the default - // value because Cat is the default value (not serialized). - // myPet.Animal = "Cat"; - // Uncomment the next line to see the value serialized: - // myPet.Animal = "fish"; - // This will also be serialized because Dog is not the - // default anymore. - // myPet.Animal = "Dog"; - // Serialize the class, and close the TextWriter. - mySerializer->Serialize( writer, myPet ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlSerializer^ mySerializer = CreateOverrider(); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Pet^ myPet = dynamic_cast(mySerializer->Deserialize( fs )); - Console::WriteLine( myPet->Animal ); -} - -int main() -{ - SerializeObject( "OverrideDefaultValue.xml" ); - DeserializeObject( "OverrideDefaultValue.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlElements Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlElements Example/CPP/source.cpp deleted file mode 100644 index dc3a90e6177b0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlElements Example/CPP/source.cpp +++ /dev/null @@ -1,101 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; -using namespace System::Collections; -using namespace System::Xml; - -public ref class Car -{ -public: - String^ Name; -}; - -public ref class Plane -{ -public: - String^ Name; -}; - -public ref class Truck -{ -public: - String^ Name; -}; - -public ref class Train -{ -public: - String^ Name; -}; - -public ref class Transportation -{ -public: - - // Subsequent code overrides these two XmlElementAttributes. - - [XmlElement(Car::typeid), - XmlElement(Plane::typeid)] - ArrayList^ Vehicles; -}; - -// Return an XmlSerializer used for overriding. -XmlSerializer^ CreateOverrider() -{ - // Create the XmlAttributes and XmlAttributeOverrides objects. - XmlAttributes^ attrs = gcnew XmlAttributes; - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - - /* Create an XmlElementAttribute to override - the Vehicles property. */ - XmlElementAttribute^ xElement1 = gcnew XmlElementAttribute( Truck::typeid ); - - // Add the XmlElementAttribute to the collection. - attrs->XmlElements->Add( xElement1 ); - - /* Create a second XmlElementAttribute, and - add it to the collection. */ - XmlElementAttribute^ xElement2 = gcnew XmlElementAttribute( Train::typeid ); - attrs->XmlElements->Add( xElement2 ); - - /* Add the XmlAttributes to the XmlAttributeOverrides, - specifying the member to override. */ - xOver->Add( Transportation::typeid, "Vehicles", attrs ); - - // Create the XmlSerializer, and return it. - XmlSerializer^ xSer = gcnew XmlSerializer( Transportation::typeid,xOver ); - return xSer; -} - -void SerializeObject( String^ filename ) -{ - // Create an XmlSerializer instance. - XmlSerializer^ xSer = CreateOverrider(); - - // Create the object and serialize it. - Transportation^ myTransportation = gcnew Transportation; - - /* Create two new override objects that can be - inserted into the array. */ - myTransportation->Vehicles = gcnew ArrayList; - Truck^ myTruck = gcnew Truck; - myTruck->Name = "MyTruck"; - Train^ myTrain = gcnew Train; - myTrain->Name = "MyTrain"; - myTransportation->Vehicles->Add( myTruck ); - myTransportation->Vehicles->Add( myTrain ); - TextWriter^ writer = gcnew StreamWriter( filename ); - xSer->Serialize( writer, myTransportation ); -} - -int main() -{ - SerializeObject( "OverrideElement.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlEnum Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlEnum Example/CPP/source.cpp deleted file mode 100644 index 9b65599120b76..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlEnum Example/CPP/source.cpp +++ /dev/null @@ -1,80 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -public enum class FoodType -{ - // Subsequent code overrides these enumerations. - Low, High -}; - -// This is the class that will be serialized. -public ref class Food -{ -public: - FoodType Type; -}; - -// Return an XmlSerializer used for overriding. -XmlSerializer^ CreateOverrider() -{ - // Create the XmlAttributeOverrides and XmlAttributes objects. - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - XmlAttributes^ xAttrs = gcnew XmlAttributes; - - // Add an XmlEnumAttribute for the FoodType.Low enumeration. - XmlEnumAttribute^ xEnum = gcnew XmlEnumAttribute; - xEnum->Name = "Cold"; - xAttrs->XmlEnum = xEnum; - xOver->Add( FoodType::typeid, "Low", xAttrs ); - - // Add an XmlEnumAttribute for the FoodType.High enumeration. - xAttrs = gcnew XmlAttributes; - xEnum = gcnew XmlEnumAttribute; - xEnum->Name = "Hot"; - xAttrs->XmlEnum = xEnum; - xOver->Add( FoodType::typeid, "High", xAttrs ); - - // Create the XmlSerializer, and return it. - return gcnew XmlSerializer( Food::typeid,xOver ); -} - -void SerializeObject( String^ filename ) -{ - // Create an instance of the XmlSerializer class. - XmlSerializer^ mySerializer = CreateOverrider(); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the class that will be serialized. - Food^ myFood = gcnew Food; - - // Set the object properties. - myFood->Type = FoodType::High; - - // Serialize the class, and close the TextWriter. - mySerializer->Serialize( writer, myFood ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlSerializer^ mySerializer = CreateOverrider(); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Food^ myFood = dynamic_cast(mySerializer->Deserialize( fs )); - Console::WriteLine( myFood->Type ); -} - -int main() -{ - SerializeObject( "OverrideEnum.xml" ); - DeserializeObject( "OverrideEnum.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlIgnore Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlIgnore Example/CPP/source.cpp deleted file mode 100644 index 1f586f8054745..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlIgnore Example/CPP/source.cpp +++ /dev/null @@ -1,70 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -// This is the class that will be serialized. -public ref class Group -{ -public: - - // The GroupName value will be serialized--unless it's overridden. - String^ GroupName; - - /* This field will be ignored when serialized-- - unless it's overridden. */ - - [XmlIgnoreAttribute] - String^ Comment; -}; - - -// Return an XmlSerializer used for overriding. -XmlSerializer^ CreateOverrider() -{ - // Create the XmlAttributeOverrides and XmlAttributes objects. - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - XmlAttributes^ attrs = gcnew XmlAttributes; - - /* Setting XmlIgnore to false overrides the XmlIgnoreAttribute - applied to the Comment field. Thus it will be serialized.*/ - attrs->XmlIgnore = false; - xOver->Add( Group::typeid, "Comment", attrs ); - - /* Use the XmlIgnore to instruct the XmlSerializer to ignore - the GroupName instead. */ - attrs = gcnew XmlAttributes; - attrs->XmlIgnore = true; - xOver->Add( Group::typeid, "GroupName", attrs ); - XmlSerializer^ xSer = gcnew XmlSerializer( Group::typeid,xOver ); - return xSer; -} - -void SerializeObject( String^ filename ) -{ - // Create an XmlSerializer instance. - XmlSerializer^ xSer = CreateOverrider(); - - // Create the object to serialize and set its properties. - Group^ myGroup = gcnew Group; - myGroup->GroupName = ".NET"; - myGroup->Comment = "My Comment..."; - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Serialize the object and close the TextWriter. - xSer->Serialize( writer, myGroup ); - writer->Close(); -} - -int main() -{ - SerializeObject( "IgnoreXml.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlRoot Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlRoot Example/CPP/source.cpp deleted file mode 100644 index 42c1f3a350371..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlRoot Example/CPP/source.cpp +++ /dev/null @@ -1,70 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -// This is the class that will be serialized. -public ref class Group -{ -public: - String^ GroupName; - - [XmlAttributeAttribute] - int GroupCode; -}; - -// Return an XmlSerializer for overriding attributes. -XmlSerializer^ CreateOverrider() -{ - // Create the XmlAttributes and XmlAttributeOverrides objects. - XmlAttributes^ attrs = gcnew XmlAttributes; - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - XmlRootAttribute^ xRoot = gcnew XmlRootAttribute; - - // Set a new Namespace and ElementName for the root element. - xRoot->Namespace = "http://www.cpandl.com"; - xRoot->ElementName = "NewGroup"; - attrs->XmlRoot = xRoot; - - /* Add the XmlAttributes object to the XmlAttributeOverrides. - No member name is needed because the whole class is - overridden. */ - xOver->Add( Group::typeid, attrs ); - - // Get the XmlAttributes object, based on the type. - XmlAttributes^ tempAttrs; - tempAttrs = xOver[ Group::typeid ]; - - // Print the Namespace and ElementName of the root. - Console::WriteLine( tempAttrs->XmlRoot->Namespace ); - Console::WriteLine( tempAttrs->XmlRoot->ElementName ); - XmlSerializer^ xSer = gcnew XmlSerializer( Group::typeid,xOver ); - return xSer; -} - -void SerializeObject( String^ filename ) -{ - // Create the XmlSerializer using the CreateOverrider method. - XmlSerializer^ xSer = CreateOverrider(); - - // Create the object to serialize. - Group^ myGroup = gcnew Group; - myGroup->GroupName = ".NET"; - myGroup->GroupCode = 123; - - // To write the file, a TextWriter is required. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Serialize the object and close the TextWriter. - xSer->Serialize( writer, myGroup ); - writer->Close(); -} - -int main() -{ - SerializeObject( "OverrideRoot.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlText Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlText Example/CPP/source.cpp deleted file mode 100644 index e2732ed2c5711..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlText Example/CPP/source.cpp +++ /dev/null @@ -1,74 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// This is the class that will be serialized. -public ref class Group -{ -public: - String^ GroupName; - - // This field will be serialized as XML text. - String^ Comment; -}; - -// Return an XmlSerializer to be used for overriding. -XmlSerializer^ CreateOverrider() -{ - // Create the XmlAttributeOverrides and XmlAttributes objects. - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - XmlAttributes^ xAttrs = gcnew XmlAttributes; - - /* Create an XmlTextAttribute and assign it to the XmlText - property. This instructs the XmlSerializer to treat the - Comment field as XML text. */ - XmlTextAttribute^ xText = gcnew XmlTextAttribute; - xAttrs->XmlText = xText; - xOver->Add( Group::typeid, "Comment", xAttrs ); - - // Create the XmlSerializer, and return it. - return gcnew XmlSerializer( Group::typeid,xOver ); -} - -void SerializeObject( String^ filename ) -{ - // Create an instance of the XmlSerializer class. - XmlSerializer^ mySerializer = CreateOverrider(); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - // Set the object properties. - myGroup->GroupName = ".NET"; - myGroup->Comment = "Great Stuff!"; - - // Serialize the class, and close the TextWriter. - mySerializer->Serialize( writer, myGroup ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlSerializer^ mySerializer = CreateOverrider(); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Group^ myGroup = dynamic_cast(mySerializer->Deserialize( fs )); - Console::WriteLine( myGroup->GroupName ); - Console::WriteLine( myGroup->Comment ); -} - -int main() -{ - SerializeObject( "OverrideText.xml" ); - DeserializeObject( "OverrideText.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlType Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlType Example/CPP/source.cpp deleted file mode 100644 index d2cccc13596c1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlAttributes.XmlType Example/CPP/source.cpp +++ /dev/null @@ -1,69 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; -public ref class Car -{ -public: - int ID; -}; - -public ref class Transportation -{ -public: - array^Cars; -}; - -// Return an XmlSerializer used for overriding. -XmlSerializer^ CreateOverrider() -{ - // Create the XmlAttributes and XmlAttributeOverrides objects. - XmlAttributes^ attrs = gcnew XmlAttributes; - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - - /* Create an XmlTypeAttribute and change the name of the - XML type. */ - XmlTypeAttribute^ xType = gcnew XmlTypeAttribute; - xType->TypeName = "Autos"; - - // Set the XmlTypeAttribute to the XmlType property. - attrs->XmlType = xType; - - /* Add the XmlAttributes to the XmlAttributeOverrides, - specifying the member to override. */ - xOver->Add( Car::typeid, attrs ); - - // Create the XmlSerializer, and return it. - XmlSerializer^ xSer = gcnew XmlSerializer( Transportation::typeid,xOver ); - return xSer; -} - -void SerializeObject( String^ filename ) -{ - // Create an XmlSerializer instance. - XmlSerializer^ xSer = CreateOverrider(); - - // Create object and serialize it. - Transportation^ myTransportation = gcnew Transportation; - Car^ c1 = gcnew Car; - c1->ID = 12; - Car^ c2 = gcnew Car; - c2->ID = 44; - array^temp0 = {c1,c2}; - myTransportation->Cars = temp0; - - // To write the file, a TextWriter is required. - TextWriter^ writer = gcnew StreamWriter( filename ); - xSer->Serialize( writer, myTransportation ); -} - -int main() -{ - SerializeObject( "XmlType.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute Example/CPP/source.cpp deleted file mode 100644 index eea4fa29c6d53..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,115 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::IO; -using namespace System::Xml::Serialization; -public ref class Employee -{ -public: - String^ Name; -}; - -public ref class Manager: public Employee -{ -public: - int Level; -}; - -public ref class Group -{ -public: - - /* Set the element name and namespace of the XML element. - By applying an XmlElementAttribute to an array, you instruct - the XmlSerializer to serialize the array as a series of XML - elements, instead of a nested set of elements. */ - - [XmlElement( - ElementName="Members", - Namespace="http://www.cpandl.com")] - array^Employees; - - [XmlElement(DataType="snippet1>", - ElementName="Building")] - double GroupID; - - [XmlElement(DataType="hexBinary")] - array^HexBytes; - - [XmlElement(DataType="boolean")] - bool IsActive; - - [XmlElement(Type=::Manager::typeid)] - Employee^ Manager; - - [XmlElement(Int32::typeid, - ElementName="ObjectNumber"), - XmlElement(String::typeid, - ElementName="ObjectString")] - ArrayList^ ExtraInfo; -}; - -void SerializeObject( String^ filename ) -{ - // Create the XmlSerializer. - XmlSerializer^ s = gcnew XmlSerializer( Group::typeid ); - - // To write the file, a TextWriter is required. - TextWriter^ writer = gcnew StreamWriter( filename ); - - /* Create an instance of the group to serialize, and set - its properties. */ - Group^ group = gcnew Group; - group->GroupID = 10.089f; - group->IsActive = false; - array^temp0 = {Convert::ToByte( 100 )}; - group->HexBytes = temp0; - Employee^ x = gcnew Employee; - Employee^ y = gcnew Employee; - x->Name = "Jack"; - y->Name = "Jill"; - array^temp1 = {x,y}; - group->Employees = temp1; - Manager^ mgr = gcnew Manager; - mgr->Name = "Sara"; - mgr->Level = 4; - group->Manager = mgr; - - /* Add a number and a string to the - ArrayList returned by the ExtraInfo property. */ - group->ExtraInfo = gcnew ArrayList; - group->ExtraInfo->Add( 42 ); - group->ExtraInfo->Add( "Answer" ); - - // Serialize the object, and close the TextWriter. - s->Serialize( writer, group ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - XmlSerializer^ x = gcnew XmlSerializer( Group::typeid ); - Group^ g = dynamic_cast(x->Deserialize( fs )); - Console::WriteLine( g->Manager->Name ); - Console::WriteLine( g->GroupID ); - Console::WriteLine( g->HexBytes[ 0 ] ); - IEnumerator^ myEnum = g->Employees->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Employee^ e = safe_cast(myEnum->Current); - Console::WriteLine( e->Name ); - } -} - -int main() -{ - SerializeObject( "FirstDoc.xml" ); - DeserializeObject( "FirstDoc.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.DataType Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.DataType Example/CPP/source.cpp deleted file mode 100644 index dac3339b9d7a7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.DataType Example/CPP/source.cpp +++ /dev/null @@ -1,55 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::IO; -using namespace System::Xml::Serialization; -public ref class Group -{ -public: - - /* Apply two XmlElementAttributes to the field. Set the DataType - to string an int to allow the ArrayList to accept - both types. The Namespace is also set to different values - for each type. */ - - [XmlElement(DataType="string", - Type=String::typeid, - Namespace="http://www.cpandl.com"), - XmlElement(DataType="snippet1>", - Namespace="http://www.cohowinery.com", - Type=Int32::typeid)] - ArrayList^ ExtraInfo; -}; - -void SerializeObject( String^ filename ) -{ - // A TextWriter is needed to write the file. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create the XmlSerializer using the XmlAttributeOverrides. - XmlSerializer^ s = gcnew XmlSerializer( Group::typeid ); - - // Create the object to serialize. - Group^ myGroup = gcnew Group; - - /* Add a string and an integer to the ArrayList returned - by the ExtraInfo field. */ - myGroup->ExtraInfo = gcnew ArrayList; - myGroup->ExtraInfo->Add( "hello" ); - myGroup->ExtraInfo->Add( 100 ); - - // Serialize the object and close the TextWriter. - s->Serialize( writer, myGroup ); - writer->Close(); -} - -int main() -{ - SerializeObject( "ElementTypes.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.ElementName Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.ElementName Example/CPP/source.cpp deleted file mode 100644 index c73eab60f3bab..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.ElementName Example/CPP/source.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#using - -using namespace System; -using namespace System::Xml; -using namespace System::IO; -using namespace System::Xml::Serialization; - -// -// This is the class that will be serialized. -public ref class XClass -{ -public: - /* The XML element name will be XName - instead of the default ClassName. */ - [XmlElement(ElementName="XName")] - String^ ClassName; -}; -// - -int main(){} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.Form Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.Form Example/CPP/source.cpp deleted file mode 100644 index 323a5e3febfc6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.Form Example/CPP/source.cpp +++ /dev/null @@ -1,20 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Schema; -using namespace System::Xml::Serialization; - -// -public ref class MyClass -{ -public: - - [XmlElement(Form=XmlSchemaForm::Unqualified)] - String^ ClassName; -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.IsNullable Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.IsNullable Example/CPP/source.cpp deleted file mode 100644 index 496244672dfe9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.IsNullable Example/CPP/source.cpp +++ /dev/null @@ -1,19 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -public ref class MyClass -{ -public: - - [XmlElement(IsNullable=false)] - String^ Group; -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.Type Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.Type Example/CPP/source.cpp deleted file mode 100644 index 217959b7fad28..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.Type Example/CPP/source.cpp +++ /dev/null @@ -1,64 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -public ref class Employee -{ -public: - String^ Name; -}; - -public ref class Manager: public Employee -{ -public: - int Level; -}; - -public ref class Group -{ -public: - - [XmlElement(Manager::typeid)] - array^Staff; - - [XmlElement(Int32::typeid), - XmlElement(String::typeid), - XmlElement(DateTime::typeid)] - ArrayList^ ExtraInfo; -}; - -void SerializeObject( String^ filename ) -{ - // Create an XmlSerializer instance. - XmlSerializer^ xSer = gcnew XmlSerializer( Group::typeid ); - - // Create object and serialize it. - Group^ myGroup = gcnew Group; - Manager^ e1 = gcnew Manager; - e1->Name = "Manager1"; - Manager^ m1 = gcnew Manager; - m1->Name = "Manager2"; - m1->Level = 4; - array^emps = {e1,m1}; - myGroup->Staff = emps; - myGroup->ExtraInfo = gcnew ArrayList; - myGroup->ExtraInfo->Add( ".NET" ); - myGroup->ExtraInfo->Add( 42 ); - myGroup->ExtraInfo->Add( DateTime(2001,1,1) ); - TextWriter^ writer = gcnew StreamWriter( filename ); - xSer->Serialize( writer, myGroup ); - writer->Close(); -} - -int main() -{ - SerializeObject( "TypeEx.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.XmlElementAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.XmlElementAttribute Example/CPP/source.cpp deleted file mode 100644 index f06647e1954f3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.XmlElementAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,19 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -public ref class MyClass -{ -public: - - [XmlElement] - String^ TeacherName; -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.XmlElementAttribute1 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.XmlElementAttribute1 Example/CPP/source.cpp deleted file mode 100644 index a92464e29dcf9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.XmlElementAttribute1 Example/CPP/source.cpp +++ /dev/null @@ -1,19 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -public ref class Transportation -{ -public: - - [XmlElement("Cars")] - String^ Vehicles; -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.XmlElementAttribute2 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.XmlElementAttribute2 Example/CPP/source.cpp deleted file mode 100644 index 701b642c4906d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttribute.XmlElementAttribute2 Example/CPP/source.cpp +++ /dev/null @@ -1,96 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; -public ref class Instrument -{ -public: - String^ Name; -}; - -public ref class Brass: public Instrument -{ -public: - bool IsValved; -}; - -public ref class Orchestra -{ -public: - array^Instruments; -}; - -void SerializeObject( String^ filename ) -{ - // To write the file, a TextWriter is required. - TextWriter^ writer = gcnew StreamWriter( filename ); - XmlAttributeOverrides^ attrOverrides = gcnew XmlAttributeOverrides; - XmlAttributes^ attrs = gcnew XmlAttributes; - - // Creates an XmlElementAttribute that overrides the Instrument type. - XmlElementAttribute^ attr = gcnew XmlElementAttribute( Brass::typeid ); - attr->ElementName = "Brass"; - - // Adds the element to the collection of elements. - attrs->XmlElements->Add( attr ); - attrOverrides->Add( Orchestra::typeid, "Instruments", attrs ); - - // Creates the XmlSerializer using the XmlAttributeOverrides. - XmlSerializer^ s = gcnew XmlSerializer( Orchestra::typeid,attrOverrides ); - - // Creates the object to serialize. - Orchestra^ band = gcnew Orchestra; - - // Creates an object of the derived type. - Brass^ i = gcnew Brass; - i->Name = "Trumpet"; - i->IsValved = true; - array^myInstruments = {i}; - band->Instruments = myInstruments; - s->Serialize( writer, band ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlAttributeOverrides^ attrOverrides = gcnew XmlAttributeOverrides; - XmlAttributes^ attrs = gcnew XmlAttributes; - - // Creates an XmlElementAttribute that override the Instrument type. - XmlElementAttribute^ attr = gcnew XmlElementAttribute( Brass::typeid ); - attr->ElementName = "Brass"; - - // Adds the element to the collection of elements. - attrs->XmlElements->Add( attr ); - attrOverrides->Add( Orchestra::typeid, "Instruments", attrs ); - - // Creates the XmlSerializer using the XmlAttributeOverrides. - XmlSerializer^ s = gcnew XmlSerializer( Orchestra::typeid,attrOverrides ); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Orchestra^ band = dynamic_cast(s->Deserialize( fs )); - Console::WriteLine( "Brass:" ); - - /* Deserializing differs from serializing. To read the - derived-object values, declare an object of the derived - type (Brass) and cast the Instrument instance to it. */ - Brass^ b; - System::Collections::IEnumerator^ myEnum = band->Instruments->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Instrument^ i = safe_cast(myEnum->Current); - b = dynamic_cast(i); - Console::WriteLine( "{0}\n{1}", b->Name, b->IsValved ); - } -} - -int main() -{ - SerializeObject( "Override.xml" ); - DeserializeObject( "Override.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttributes Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttributes Example/CPP/source.cpp deleted file mode 100644 index 000e548b46f07..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttributes Example/CPP/source.cpp +++ /dev/null @@ -1,100 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; -using namespace System::Collections; -using namespace System::Xml; - -public ref class Car -{ -public: - String^ Name; -}; - -public ref class Plane -{ -public: - String^ Name; -}; - -public ref class Truck -{ -public: - String^ Name; -}; - -public ref class Train -{ -public: - String^ Name; -}; - -public ref class Transportation -{ -public: - - // Override these two XmlElementAttributes. - - [XmlElement(Car::typeid), - XmlElement(Plane::typeid)] - ArrayList^ Vehicles; -}; - -XmlSerializer^ CreateOverrider() -{ - // Create XmlAtrributes and XmlAttributeOverrides instances. - XmlAttributes^ attrs = gcnew XmlAttributes; - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - - /* Create an XmlElementAttributes object to override - one of the attributes applied to the Vehicles property. */ - XmlElementAttribute^ xElement1 = gcnew XmlElementAttribute( Truck::typeid ); - - // Add the XmlElementAttribute to the collection. - attrs->XmlElements->Add( xElement1 ); - - /* Create a second XmlElementAttribute and - add it to the collection. */ - XmlElementAttribute^ xElement2 = gcnew XmlElementAttribute( Train::typeid ); - attrs->XmlElements->Add( xElement2 ); - - /* Add the XmlAttributes to the XmlAttributeOverrides, - specifying the member to override. */ - xOver->Add( Transportation::typeid, "Vehicles", attrs ); - - // Create the XmlSerializer, and return it. - XmlSerializer^ xSer = gcnew XmlSerializer( Transportation::typeid,xOver ); - return xSer; -} - -void SerializeObject( String^ filename ) -{ - // Create an XmlSerializer instance. - XmlSerializer^ xSer = CreateOverrider(); - - // Create the object. - Transportation^ myTransportation = gcnew Transportation; - - /* Create two new, overriding objects that can be - inserted into the Vehicles array. */ - myTransportation->Vehicles = gcnew ArrayList; - Truck^ myTruck = gcnew Truck; - myTruck->Name = "MyTruck"; - Train^ myTrain = gcnew Train; - myTrain->Name = "MyTrain"; - myTransportation->Vehicles->Add( myTruck ); - myTransportation->Vehicles->Add( myTrain ); - TextWriter^ writer = gcnew StreamWriter( filename ); - xSer->Serialize( writer, myTransportation ); -} - -int main() -{ - SerializeObject( "OverrideElement.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttributes.Add Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttributes.Add Example/CPP/source.cpp deleted file mode 100644 index 3933ca7d495f6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlElementAttributes.Add Example/CPP/source.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Truck{ - // Class added so sample will compile -}; - -public ref class Train{ - // Class added so sample will compile -}; - -public ref class Transportation{ - // Class added so sample will compile -}; - -public ref class Sample -{ - // -public: - XmlSerializer^ CreateOverrider() - { - // Create XmlAttributes and XmlAttributeOverrides instances. - - XmlAttributes^ attrs = gcnew XmlAttributes; - XmlAttributeOverrides^ xOver = - gcnew XmlAttributeOverrides; - - /* Create an XmlElementAttributes to override - the Vehicles property. */ - XmlElementAttribute^ xElement1 = - gcnew XmlElementAttribute( Truck::typeid ); - // Add the XmlElementAttribute to the collection. - attrs->XmlElements->Add( xElement1 ); - - /* Create a second XmlElementAttribute, and - add to the collection. */ - XmlElementAttribute^ xElement2 = - gcnew XmlElementAttribute( Train::typeid ); - attrs->XmlElements->Add( xElement2 ); - - /* Add the XmlAttributes to the XmlAttributeOverrides, - specifying the member to override. */ - xOver->Add( Transportation::typeid, "Vehicles", attrs ); - - // Create the XmlSerializer, and return it. - XmlSerializer^ xSer = gcnew XmlSerializer( - Transportation::typeid,xOver ); - return xSer; - } - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlEnumAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlEnumAttribute Example/CPP/source.cpp deleted file mode 100644 index b82f373dbe0aa..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlEnumAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,21 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -public enum class EmployeeStatus -{ - [XmlEnum(Name = "Single")] - One, - [XmlEnum(Name = "Double")] - Two, - [XmlEnum(Name = "Triple")] - Three -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlEnumAttribute.Name Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlEnumAttribute.Name Example/CPP/source.cpp deleted file mode 100644 index d494e993e3e74..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlEnumAttribute.Name Example/CPP/source.cpp +++ /dev/null @@ -1,21 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -public enum class EmployeeStatus -{ - [XmlEnum("Single")] - One, - [XmlEnum("Double")] - Two, - [XmlEnum("Triple")] - Three -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlEnumAttribute.XmlEnumAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlEnumAttribute.XmlEnumAttribute Example/CPP/source.cpp deleted file mode 100644 index d7f0debeaeca4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlEnumAttribute.XmlEnumAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,80 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -public enum class FoodType -{ - // Subsequent code overrides these enumerations. - Low, High -}; - -// This is the class that will be serialized. -public ref class Food -{ -public: - FoodType Type; -}; - -// Return an XmlSerializer used for overriding. -XmlSerializer^ CreateOverrider() -{ - // Create the XmlOverrides and XmlAttributes objects. - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - XmlAttributes^ xAttrs = gcnew XmlAttributes; - - // Add an XmlEnumAttribute for the FoodType.Low enumeration. - XmlEnumAttribute^ xEnum = gcnew XmlEnumAttribute; - xEnum->Name = "Cold"; - xAttrs->XmlEnum = xEnum; - xOver->Add( FoodType::typeid, "Low", xAttrs ); - - // Add an XmlEnumAttribute for the FoodType.High enumeration. - xAttrs = gcnew XmlAttributes; - xEnum = gcnew XmlEnumAttribute; - xEnum->Name = "Hot"; - xAttrs->XmlEnum = xEnum; - xOver->Add( FoodType::typeid, "High", xAttrs ); - - // Create the XmlSerializer, and return it. - return gcnew XmlSerializer( Food::typeid,xOver ); -} - -void SerializeObject( String^ filename ) -{ - // Create an instance of the XmlSerializer class. - XmlSerializer^ mySerializer = CreateOverrider(); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the class that will be serialized. - Food^ myFood = gcnew Food; - - // Set the object properties. - myFood->Type = FoodType::High; - - // Serialize the class, and close the TextWriter. - mySerializer->Serialize( writer, myFood ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlSerializer^ mySerializer = CreateOverrider(); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Food^ myFood = dynamic_cast(mySerializer->Deserialize( fs )); - Console::WriteLine( myFood->Type ); -} - -int main() -{ - SerializeObject( "OverrideEnum.xml" ); - DeserializeObject( "OverrideEnum.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlIgnoreAttribute.XmlIgnoreAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlIgnoreAttribute.XmlIgnoreAttribute Example/CPP/source.cpp deleted file mode 100644 index 7298f812c7a4d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlIgnoreAttribute.XmlIgnoreAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,24 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -public ref class Group -{ -public: - - // The XmlSerializer ignores this field. - - [XmlIgnore] - String^ Comment; - - // The XmlSerializer serializes this field. - String^ GroupName; -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlIncludeAttribute.Type Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlIncludeAttribute.Type Example/CPP/source.cpp deleted file mode 100644 index cbfdda004f2c5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlIncludeAttribute.Type Example/CPP/source.cpp +++ /dev/null @@ -1,72 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -ref class Employee; - -ref class Manager; - -ref class Group -{ -public: - array^Employees; -}; - -// Instruct the XmlSerializer to accept Manager types as well. -[XmlInclude(Manager::typeid)] -public ref class Employee -{ -public: - String^ Name; -}; - -public ref class Manager: public Employee -{ -public: - int Level; -}; - -void SerializeObject( String^ filename ) -{ - XmlSerializer^ s = gcnew XmlSerializer( Group::typeid ); - TextWriter^ writer = gcnew StreamWriter( filename ); - Group^ group = gcnew Group; - Manager^ manager = gcnew Manager; - Employee^ emp1 = gcnew Employee; - Employee^ emp2 = gcnew Employee; - manager->Name = "Zeus"; - manager->Level = 2; - emp1->Name = "Ares"; - emp2->Name = "Artemis"; - array^emps = {manager,emp1,emp2}; - group->Employees = emps; - s->Serialize( writer, group ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - XmlSerializer^ x = gcnew XmlSerializer( Group::typeid ); - Group^ g = dynamic_cast(x->Deserialize( fs )); - Console::Write( "Members:" ); - System::Collections::IEnumerator^ myEnum = g->Employees->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Employee^ e = safe_cast(myEnum->Current); - Console::WriteLine( "\t{0}", e->Name ); - } -} - -int main() -{ - SerializeObject( "IncludeExample.xml" ); - DeserializeObject( "IncludeExample.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlIncludeAttribute.XmlIncludeAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlIncludeAttribute.XmlIncludeAttribute Example/CPP/source.cpp deleted file mode 100644 index 8ba6ec67f1524..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlIncludeAttribute.XmlIncludeAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,34 +0,0 @@ - - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -public ref class Vehicle{}; - -public ref class Car: public Vehicle{}; - -public ref class Truck: public Vehicle{}; - -public ref class Sample -{ -public: - - [WebMethodAttribute] - [XmlInclude(Car::typeid)] - [XmlInclude(Truck::typeid)] - Vehicle^ ReturnVehicle( int i ) - { - if ( i == 0 ) - return gcnew Car; - else - return gcnew Truck; - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlMessageFormatter Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlMessageFormatter Example/CPP/source.cpp deleted file mode 100644 index 1945e706e46b1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlMessageFormatter Example/CPP/source.cpp +++ /dev/null @@ -1,43 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -// placeholder; see complete definition elsewhere in this section -public ref class Order -{ -public: - void ShipItems(){} - -}; - - -// Creates the queue if it does not already exist. -void EnsureQueueExists( String^ path ) -{ - if ( !MessageQueue::Exists( path ) ) - { - MessageQueue::Create( path ); - } -} - -int main() -{ - Console::WriteLine( "Processing Orders" ); - String^ queuePath = ".\\orders"; - EnsureQueueExists( queuePath ); - MessageQueue^ queue = gcnew MessageQueue( queuePath ); - array^temp0 = {"Order"}; - (dynamic_cast(queue->Formatter))->TargetTypeNames = temp0; - while ( true ) - { - Order^ newOrder = dynamic_cast(queue->Receive()->Body); - newOrder->ShipItems(); - } -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlMessageFormatter Example/CPP/source2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlMessageFormatter Example/CPP/source2.cpp deleted file mode 100644 index 057b230d28d69..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlMessageFormatter Example/CPP/source2.cpp +++ /dev/null @@ -1,23 +0,0 @@ - -// -using namespace System; -public ref class Order -{ -public: - int itemId; - int quantity; - String^ address; - void ShipItems() - { - Console::WriteLine( "Order Placed:" ); - Console::WriteLine( "\tItem ID : {0}", itemId ); - Console::WriteLine( "\tQuantity : {0}", quantity ); - Console::WriteLine( "\tShip To : {0}", address ); - - // Add order to the database. - /* Insert code here. */ - } - -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlMessageFormatter Example/CPP/source3.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlMessageFormatter Example/CPP/source3.cpp deleted file mode 100644 index 44d1d0daa090e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlMessageFormatter Example/CPP/source3.cpp +++ /dev/null @@ -1,46 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -// placeholder; see complete definition elsewhere in this section -public ref class Order -{ -public: - int itemId; - int quantity; - String^ address; - void ShipItems(){} - -}; - - -// Creates the queue if it does not already exist. -void EnsureQueueExists( String^ path ) -{ - if ( !MessageQueue::Exists( path ) ) - { - MessageQueue::Create( path ); - } -} - -int main() -{ - String^ queuePath = ".\\orders"; - EnsureQueueExists( queuePath ); - MessageQueue^ queue = gcnew MessageQueue( queuePath ); - Order^ orderRequest = gcnew Order; - orderRequest->itemId = 1025; - orderRequest->quantity = 5; - orderRequest->address = "One Microsoft Way"; - queue->Send( orderRequest ); - - // This line uses a new method you define on the Order class: - // orderRequest.PrintReceipt(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.LocalName Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.LocalName Example/CPP/source.cpp deleted file mode 100644 index 78b7ac99698a5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.LocalName Example/CPP/source.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Sample -{ - // -private: - void serializer_UnknownNode( Object^ /*sender*/, XmlNodeEventArgs^ e ) - { - Console::WriteLine( "UnknownNode LocalName: {0}", e->LocalName ); - } - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.Name Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.Name Example/CPP/source.cpp deleted file mode 100644 index de9d0304ae411..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.Name Example/CPP/source.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Sample -{ -private: - // - void serializer_UnknownNode( Object^ /*sender*/, XmlNodeEventArgs^ e ) - { - Console::WriteLine( "UnknownNode Name: {0}", e->Name ); - } - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.NamespaceURI Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.NamespaceURI Example/CPP/source.cpp deleted file mode 100644 index 6898547406979..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.NamespaceURI Example/CPP/source.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Sample -{ - // -private: - void serializer_UnknownNode( Object^ /*sender*/, XmlNodeEventArgs^ e ) - { - Console::WriteLine( "UnknownNode Namespace URI: {0}", e->NamespaceURI ); - } - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.NodeType Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.NodeType Example/CPP/source.cpp deleted file mode 100644 index bd6a1e29d7207..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.NodeType Example/CPP/source.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Sample -{ - // -private: - void serializer_UnknownNode( Object^ /*sender*/, XmlNodeEventArgs^ e ) - { - XmlNodeType myNodeType = e->NodeType; - Console::WriteLine( myNodeType ); - } - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.ObjectBeingDeserialized Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.ObjectBeingDeserialized Example/CPP/source.cpp deleted file mode 100644 index 88a67fdab41aa..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.ObjectBeingDeserialized Example/CPP/source.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Sample -{ - // -private: - void serializer_UnknownNode( Object^ /*sender*/, XmlNodeEventArgs^ e ) - { - Object^ o = e->ObjectBeingDeserialized; - Console::WriteLine( "Object being deserialized: {0}", o ); - } - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.Text Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.Text Example/CPP/source.cpp deleted file mode 100644 index a4734b7e0126a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventArgs.Text Example/CPP/source.cpp +++ /dev/null @@ -1,17 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Sample -{ - // -private: - void serializer_UnknownNode( Object^ /*sender*/, XmlNodeEventArgs^ e ) - { - Console::WriteLine( "UnknownNode Text: {0}", e->Text ); - } - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventHandler Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventHandler Example/CPP/source.cpp deleted file mode 100644 index b4318feda2a00..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlNodeEventHandler Example/CPP/source.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Class1 -{ - // -private: - void DeserializeItem( String^ filename ) - { - XmlSerializer^ mySerializer = gcnew XmlSerializer( ObjectToDeserialize::typeid ); - - // Add an instance of the delegate to the event. - mySerializer->UnknownNode += gcnew XmlNodeEventHandler( this, &Class1::Serializer_UnknownNode ); - - // A FileStream is needed to read the file to deserialize. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - ObjectToDeserialize^ o = dynamic_cast(mySerializer->Deserialize( fs )); - } - - void Serializer_UnknownNode( Object^ sender, XmlNodeEventArgs^ e ) - { - Console::WriteLine( "UnknownNode Name: {0}", e->Name ); - Console::WriteLine( "UnknownNode LocalName: {0}", e->LocalName ); - Console::WriteLine( "UnknownNode Namespace URI: {0}", e->NamespaceURI ); - Console::WriteLine( "UnknownNode Text: {0}", e->Text ); - Object^ o = e->ObjectBeingDeserialized; - Console::WriteLine( "Object being deserialized {0}", o ); - XmlNodeType myNodeType = e->NodeType; - Console::WriteLine( myNodeType ); - } - // - -public: - - ref class ObjectToDeserialize{}; -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlRootAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlRootAttribute Example/CPP/source.cpp deleted file mode 100644 index 705ea6b12448f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlRootAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,67 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Schema; -using namespace System::Xml::Serialization; - -[XmlRoot(Namespace="www.contoso.com", -ElementName="MyGroupName", -DataType="string", -IsNullable=true)] -public ref class Group -{ -private: - String^ groupNameValue; - -public: - - // Insert code for the Group class. - Group(){} - - Group( String^ groupNameVal ) - { - groupNameValue = groupNameVal; - } - - property String^ GroupName - { - String^ get() - { - return groupNameValue; - } - void set( String^ value ) - { - groupNameValue = value; - } - - } - -}; - -void SerializeGroup() -{ - // Create an instance of the Group class, and an - // instance of the XmlSerializer to serialize it. - Group^ myGroup = gcnew Group( "Redmond" ); - XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid ); - - // A FileStream is used to write the file. - FileStream^ fs = gcnew FileStream( "group.xml",FileMode::Create ); - ser->Serialize( fs, myGroup ); - fs->Close(); - Console::WriteLine( myGroup->GroupName ); - Console::WriteLine( "Done" ); - Console::ReadLine(); -} - -int main() -{ - SerializeGroup(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlRootAttribute.IsNullable Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlRootAttribute.IsNullable Example/CPP/source.cpp deleted file mode 100644 index 9780f3bb00398..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlRootAttribute.IsNullable Example/CPP/source.cpp +++ /dev/null @@ -1,41 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; -using namespace System::Xml; - -// Apply the XmlRootAttribute and set the IsNullable property to false. - -[XmlRoot(IsNullable=false)] -public ref class Group -{ -public: - String^ Name; -}; - -void SerializeObject( String^ filename ) -{ - XmlSerializer^ s = gcnew XmlSerializer( Group::typeid ); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create the object to serialize. - Group^ mygroup = nullptr; - - // Serialize the object, and close the TextWriter. - s->Serialize( writer, mygroup ); - writer->Close(); -} - -int main() -{ - Console::WriteLine( "Running" ); - SerializeObject( "NullDoc.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlRootAttribute.Namespace Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlRootAttribute.Namespace Example/CPP/source.cpp deleted file mode 100644 index 4d0cd2a4a6156..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlRootAttribute.Namespace Example/CPP/source.cpp +++ /dev/null @@ -1,15 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// - -[XmlRoot(Namespace="http://www.cpandl.com")] -public ref class Group{}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlRootAttribute.XmlRootAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlRootAttribute.XmlRootAttribute Example/CPP/source.cpp deleted file mode 100644 index ee176b3d4b413..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlRootAttribute.XmlRootAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,62 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -// This is the class that is the default root element. -public ref class MyClass -{ -public: - String^ Name; -}; - -XmlSerializer^ CreateOverrider(); -void SerializeOrder( String^ filename ) -{ - // Create an XmlSerializer instance using the method below. - XmlSerializer^ xSer = CreateOverrider(); - - // Create the object, and set its Name property. - MyClass^ myClass = gcnew MyClass; - myClass->Name = "New Class Name"; - - // Serialize the class, and close the TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - xSer->Serialize( writer, myClass ); - writer->Close(); -} - -// Return an XmlSerializer to override the root serialization. -XmlSerializer^ CreateOverrider() -{ - // Create an XmlAttributes to override the default root element. - XmlAttributes^ attrs = gcnew XmlAttributes; - - // Create an XmlRootAttribute and set its element name and namespace. - XmlRootAttribute^ xRoot = gcnew XmlRootAttribute; - xRoot->ElementName = "OverriddenRootElementName"; - xRoot->Namespace = "http://www.microsoft.com"; - - // Set the XmlRoot property to the XmlRoot object. - attrs->XmlRoot = xRoot; - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - - /* Add the XmlAttributes object to the - XmlAttributeOverrides object. */ - xOver->Add( MyClass::typeid, attrs ); - - // Create the Serializer, and return it. - XmlSerializer^ xSer = gcnew XmlSerializer( MyClass::typeid,xOver ); - return xSer; -} - -int main() -{ - SerializeOrder( "OverrideAttribute.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer Example/CPP/source.cpp deleted file mode 100644 index 0bfeccd401c6e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer Example/CPP/source.cpp +++ /dev/null @@ -1,216 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Xml::Serialization; -using namespace System::IO; -ref class Address; -ref class OrderedItem; - -/* The XmlRootAttribute allows you to set an alternate name - (PurchaseOrder) of the XML element, the element namespace; by - default, the XmlSerializer uses the class name. The attribute - also allows you to set the XML namespace for the element. Lastly, - the attribute sets the IsNullable property, which specifies whether - the xsi:null attribute appears if the class instance is set to - a null reference. */ - -[XmlRootAttribute("PurchaseOrder",Namespace="http://www.cpandl.com", -IsNullable=false)] -public ref class PurchaseOrder -{ -public: - Address^ ShipTo; - String^ OrderDate; - - /* The XmlArrayAttribute changes the XML element name - from the default of "OrderedItems" to "Items". */ - - [XmlArrayAttribute("Items")] - array^OrderedItems; - Decimal SubTotal; - Decimal ShipCost; - Decimal TotalCost; -}; - -public ref class Address -{ -public: - - /* The XmlAttribute instructs the XmlSerializer to serialize the Name - field as an XML attribute instead of an XML element (the default - behavior). */ - - [XmlAttributeAttribute] - String^ Name; - String^ Line1; - - /* Setting the IsNullable property to false instructs the - XmlSerializer that the XML attribute will not appear if - the City field is set to a null reference. */ - - [XmlElementAttribute(IsNullable=false)] - String^ City; - String^ State; - String^ Zip; -}; - -public ref class OrderedItem -{ -public: - String^ ItemName; - String^ Description; - Decimal UnitPrice; - int Quantity; - Decimal LineTotal; - - /* Calculate is a custom method that calculates the price per item, - and stores the value in a field. */ - void Calculate() - { - LineTotal = UnitPrice * Quantity; - } - -}; - -public ref class Test -{ -public: - static void main() - { - // Read and write purchase orders. - Test^ t = gcnew Test; - t->CreatePO( "po.xml" ); - t->ReadPO( "po.xml" ); - } - -private: - void CreatePO( String^ filename ) - { - // Create an instance of the XmlSerializer class; - // specify the type of object to serialize. - XmlSerializer^ serializer = gcnew XmlSerializer( PurchaseOrder::typeid ); - TextWriter^ writer = gcnew StreamWriter( filename ); - PurchaseOrder^ po = gcnew PurchaseOrder; - - // Create an address to ship and bill to. - Address^ billAddress = gcnew Address; - billAddress->Name = "Teresa Atkinson"; - billAddress->Line1 = "1 Main St."; - billAddress->City = "AnyTown"; - billAddress->State = "WA"; - billAddress->Zip = "00000"; - - // Set ShipTo and BillTo to the same addressee. - po->ShipTo = billAddress; - po->OrderDate = System::DateTime::Now.ToLongDateString(); - - // Create an OrderedItem object. - OrderedItem^ i1 = gcnew OrderedItem; - i1->ItemName = "Widget S"; - i1->Description = "Small widget"; - i1->UnitPrice = (Decimal)5.23; - i1->Quantity = 3; - i1->Calculate(); - - // Insert the item into the array. - array^items = {i1}; - po->OrderedItems = items; - - // Calculate the total cost. - Decimal subTotal = Decimal(0); - System::Collections::IEnumerator^ myEnum = items->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - OrderedItem^ oi = safe_cast(myEnum->Current); - subTotal = subTotal + oi->LineTotal; - } - - po->SubTotal = subTotal; - po->ShipCost = (Decimal)12.51; - po->TotalCost = po->SubTotal + po->ShipCost; - - // Serialize the purchase order, and close the TextWriter. - serializer->Serialize( writer, po ); - writer->Close(); - } - -protected: - void ReadPO( String^ filename ) - { - // Create an instance of the XmlSerializer class; - // specify the type of object to be deserialized. - XmlSerializer^ serializer = gcnew XmlSerializer( PurchaseOrder::typeid ); - - /* If the XML document has been altered with unknown - nodes or attributes, handle them with the - UnknownNode and UnknownAttribute events.*/ - serializer->UnknownNode += gcnew XmlNodeEventHandler( this, &Test::serializer_UnknownNode ); - serializer->UnknownAttribute += gcnew XmlAttributeEventHandler( this, &Test::serializer_UnknownAttribute ); - - // A FileStream is needed to read the XML document. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - - // Declare an object variable of the type to be deserialized. - PurchaseOrder^ po; - - /* Use the Deserialize method to restore the object's state with - data from the XML document. */ - po = dynamic_cast(serializer->Deserialize( fs )); - - // Read the order date. - Console::WriteLine( "OrderDate: {0}", po->OrderDate ); - - // Read the shipping address. - Address^ shipTo = po->ShipTo; - ReadAddress( shipTo, "Ship To:" ); - - // Read the list of ordered items. - array^items = po->OrderedItems; - Console::WriteLine( "Items to be shipped:" ); - System::Collections::IEnumerator^ myEnum1 = items->GetEnumerator(); - while ( myEnum1->MoveNext() ) - { - OrderedItem^ oi = safe_cast(myEnum1->Current); - Console::WriteLine( "\t{0}\t{1}\t{2}\t{3}\t{4}", oi->ItemName, oi->Description, oi->UnitPrice, oi->Quantity, oi->LineTotal ); - } - - Console::WriteLine( "\t\t\t\t\t Subtotal\t{0}", po->SubTotal ); - Console::WriteLine( "\t\t\t\t\t Shipping\t{0}", po->ShipCost ); - Console::WriteLine( "\t\t\t\t\t Total\t\t{0}", po->TotalCost ); - } - - void ReadAddress( Address^ a, String^ label ) - { - // Read the fields of the Address object. - Console::WriteLine( label ); - Console::WriteLine( "\t{0}", a->Name ); - Console::WriteLine( "\t{0}", a->Line1 ); - Console::WriteLine( "\t{0}", a->City ); - Console::WriteLine( "\t{0}", a->State ); - Console::WriteLine( "\t{0}", a->Zip ); - Console::WriteLine(); - } - -private: - void serializer_UnknownNode( Object^ /*sender*/, XmlNodeEventArgs^ e ) - { - Console::WriteLine( "Unknown Node:{0}\t{1}", e->Name, e->Text ); - } - - void serializer_UnknownAttribute( Object^ /*sender*/, XmlAttributeEventArgs^ e ) - { - System::Xml::XmlAttribute^ attr = e->Attr; - Console::WriteLine( "Unknown attribute {0}='{1}'", attr->Name, attr->Value ); - } -}; - -int main() -{ - Test::main(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.CanDeserialize Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.CanDeserialize Example/CPP/source.cpp deleted file mode 100644 index b488c27b932ef..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.CanDeserialize Example/CPP/source.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Sample -{ - // -private: - void TestDocument( String^ filename, Type^ objType ) - { - // Using a FileStream, create an XmlTextReader. - Stream^ fs = gcnew FileStream( filename,FileMode::Open ); - XmlReader^ reader = gcnew XmlTextReader( fs ); - XmlSerializer^ serializer = gcnew XmlSerializer( objType ); - if ( serializer->CanDeserialize( reader ) ) - { - Object^ o = serializer->Deserialize( reader ); - } - fs->Close(); - } - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Deserialize Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Deserialize Example/CPP/source.cpp deleted file mode 100644 index 542444fb61ae5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Deserialize Example/CPP/source.cpp +++ /dev/null @@ -1,70 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -// This is the class that will be deserialized. -public ref class OrderedItem -{ -public: - - [XmlElement(Namespace="http://www.cpandl.com")] - String^ ItemName; - - [XmlElement(Namespace="http://www.cpandl.com")] - String^ Description; - - [XmlElement(Namespace="http://www.cohowinery.com")] - Decimal UnitPrice; - - [XmlElement(Namespace="http://www.cpandl.com")] - int Quantity; - - [XmlElement(Namespace="http://www.cohowinery.com")] - Decimal LineTotal; - - // A custom method used to calculate price per item. - void Calculate() - { - LineTotal = UnitPrice * Quantity; - } -}; - -void DeserializeObject(String^ filename) -{ - Console::WriteLine("Reading with Stream"); - - // Create an instance of the XmlSerializer. - XmlSerializer^ serializer = gcnew XmlSerializer(OrderedItem::typeid); - - // Declare an object variable of the type to be deserialized. - OrderedItem^ i; - - // Reading the XML document requires a FileStream. - Stream^ reader = gcnew FileStream(filename, FileMode::Open); - - try - { - // Call the Deserialize method to restore the object's state. - i = dynamic_cast(serializer->Deserialize(reader)); - } - finally - { - delete reader; - } - - // Write out the properties of the object. - Console::Write("{0}\t{1}\t{2}\t{3}\t{4}", i->ItemName, i->Description, i->UnitPrice, i->Quantity, i->LineTotal); -} - -int main() -{ - // Read a purchase order. - DeserializeObject( "simple.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Deserialize1 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Deserialize1 Example/CPP/source.cpp deleted file mode 100644 index b803c3b61af20..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Deserialize1 Example/CPP/source.cpp +++ /dev/null @@ -1,55 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Text; -using namespace System::Xml::Serialization; - -// This is the class that will be deserialized. -public ref class OrderedItem -{ -public: - String^ ItemName; - String^ Description; - Decimal UnitPrice; - int Quantity; - Decimal LineTotal; - - // A custom method used to calculate price per item. - void Calculate() - { - LineTotal = UnitPrice * Quantity; - } -}; - -void DeserializeObject( String^ filename ) -{ - Console::WriteLine( "Reading with TextReader" ); - - // Create an instance of the XmlSerializer specifying type. - XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid ); - - /* Create a TextReader to read the file. Specify an - Encoding to use. */ - TextReader^ reader = gcnew StreamReader( filename,Encoding::Unicode ); - - // Declare an object variable of the type to be deserialized. - OrderedItem^ i; - - // Use the Deserialize method to restore the object's state. - i = dynamic_cast(serializer->Deserialize( reader )); - - // Write out the properties of the object. - Console::Write( "{0}\t{1}\t{2}\t{3}\t{4}", i->ItemName, i->Description, i->UnitPrice, i->Quantity, i->LineTotal ); -} - -int main() -{ - // Read a purchase order. - DeserializeObject( "simple.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Deserialize2 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Deserialize2 Example/CPP/source.cpp deleted file mode 100644 index 3b2738346ee16..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Deserialize2 Example/CPP/source.cpp +++ /dev/null @@ -1,56 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Text; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// This is the class that will be deserialized. -public ref class OrderedItem -{ -public: - String^ ItemName; - String^ Description; - Decimal UnitPrice; - int Quantity; - Decimal LineTotal; - - // A custom method used to calculate price per item. - void Calculate() - { - LineTotal = UnitPrice * Quantity; - } -}; - -void DeserializeObject( String^ filename ) -{ - Console::WriteLine( "Reading with XmlReader" ); - - // Create an instance of the XmlSerializer specifying type and namespace. - XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid ); - - // A FileStream is needed to read the XML document. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - XmlReader^ reader = gcnew XmlTextReader( fs ); - - // Declare an object variable of the type to be deserialized. - OrderedItem^ i; - - // Use the Deserialize method to restore the object's state. - i = dynamic_cast(serializer->Deserialize( reader )); - - // Write out the properties of the object. - Console::Write( "{0}\t{1}\t{2}\t{3}\t{4}", i->ItemName, i->Description, i->UnitPrice, i->Quantity, i->LineTotal ); -} - -int main() -{ - // Read a purchase order. - DeserializeObject( "simple.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.FromTypes Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.FromTypes Example/CPP/source.cpp deleted file mode 100644 index a9b0d0bf54ed3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.FromTypes Example/CPP/source.cpp +++ /dev/null @@ -1,57 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -/* Three classes are included here. Each one will -be used to create three XmlSerializer objects. */ -public ref class Instrument -{ -public: - String^ InstrumentName; -}; - -public ref class Player -{ -public: - String^ PlayerName; -}; - -public ref class Piece -{ -public: - String^ PieceName; -}; - -void GetSerializers() -{ - // Create an array of types. - array^types = gcnew array(3); - types[ 0 ] = Instrument::typeid; - types[ 1 ] = Player::typeid; - types[ 2 ] = Piece::typeid; - - // Create an array for XmlSerializer objects. - array^serializers = gcnew array(3); - serializers = XmlSerializer::FromTypes( types ); - - // Create one Instrument and serialize it. - Instrument^ i = gcnew Instrument; - i->InstrumentName = "Piano"; - - // Create a TextWriter to write with. - TextWriter^ writer = gcnew StreamWriter( "Inst.xml" ); - serializers[ 0 ]->Serialize( writer, i ); - writer->Close(); -} - -int main() -{ - GetSerializers(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize Example/CPP/source.cpp deleted file mode 100644 index deb65e2782ed4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize Example/CPP/source.cpp +++ /dev/null @@ -1,55 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Text; -using namespace System::Xml::Serialization; - -// This is the class that will be serialized. -public ref class OrderedItem -{ -public: - String^ ItemName; - String^ Description; - Decimal UnitPrice; - int Quantity; - Decimal LineTotal; - - // A custom method used to calculate price per item. - void Calculate() - { - LineTotal = UnitPrice * Quantity; - } -}; - -void SerializeObject( String^ filename ) -{ - Console::WriteLine( "Writing With TextWriter" ); - XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid ); - OrderedItem^ i = gcnew OrderedItem; - i->ItemName = "Widget"; - i->Description = "Regular Widget"; - i->Quantity = 10; - i->UnitPrice = (Decimal)2.30; - i->Calculate(); - - /* Create a StreamWriter to write with. First create a FileStream - object, and create the StreamWriter specifying an Encoding to use. */ - FileStream^ fs = gcnew FileStream( filename,FileMode::Create ); - TextWriter^ writer = gcnew StreamWriter( fs,gcnew UTF8Encoding ); - - // Serialize using the XmlTextWriter. - serializer->Serialize( writer, i ); - writer->Close(); -} - -int main() -{ - // Write a purchase order. - SerializeObject( "simple.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize1 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize1 Example/CPP/source.cpp deleted file mode 100644 index c635e5664684b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize1 Example/CPP/source.cpp +++ /dev/null @@ -1,72 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -// This is the class that will be serialized. -public ref class OrderedItem -{ -public: - - [XmlElement(Namespace="http://www.cpandl.com")] - String^ ItemName; - - [XmlElement(Namespace="http://www.cpandl.com")] - String^ Description; - - [XmlElement(Namespace="http://www.cohowinery.com")] - Decimal UnitPrice; - - [XmlElement(Namespace="http://www.cpandl.com")] - int Quantity; - - [XmlElement(Namespace="http://www.cohowinery.com")] - Decimal LineTotal; - - // A custom method used to calculate price per item. - void Calculate() - { - LineTotal = UnitPrice * Quantity; - } -}; - -void SerializeObject( String^ filename ) -{ - Console::WriteLine( "Writing With TextWriter" ); - - // Create an XmlSerializer instance using the type. - XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid ); - OrderedItem^ i = gcnew OrderedItem; - i->ItemName = "Widget"; - i->Description = "Regular Widget"; - i->Quantity = 10; - i->UnitPrice = (Decimal)2.30; - i->Calculate(); - - // Create an XmlSerializerNamespaces object. - XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces; - - // Add two namespaces with prefixes. - ns->Add( "inventory", "http://www.cpandl.com" ); - ns->Add( "money", "http://www.cohowinery.com" ); - - // Create a StreamWriter to write with. - TextWriter^ writer = gcnew StreamWriter( filename ); - - /* Serialize using the object using the TextWriter - and namespaces. */ - serializer->Serialize( writer, i, ns ); - writer->Close(); -} - -int main() -{ - // Write a purchase order. - SerializeObject( "simple.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize2 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize2 Example/CPP/source.cpp deleted file mode 100644 index 053d871e78a07..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize2 Example/CPP/source.cpp +++ /dev/null @@ -1,52 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -// This is the class that will be serialized. -public ref class OrderedItem -{ -public: - String^ ItemName; - String^ Description; - Decimal UnitPrice; - int Quantity; - Decimal LineTotal; - - // A custom method used to calculate price per item. - void Calculate() - { - LineTotal = UnitPrice * Quantity; - } -}; - -void SerializeObject( String^ filename ) -{ - Console::WriteLine( "Writing With Stream" ); - XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid ); - OrderedItem^ i = gcnew OrderedItem; - i->ItemName = "Widget"; - i->Description = "Regular Widget"; - i->Quantity = 10; - i->UnitPrice = (Decimal)2.30; - i->Calculate(); - - // Create a FileStream to write with. - Stream^ writer = gcnew FileStream( filename,FileMode::Create ); - - // Serialize the object, and close the TextWriter - serializer->Serialize( writer, i ); - writer->Close(); -} - -int main() -{ - // Write a purchase order. - SerializeObject( "simple.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize3 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize3 Example/CPP/source.cpp deleted file mode 100644 index baf2cd1b7c894..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize3 Example/CPP/source.cpp +++ /dev/null @@ -1,91 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -// This is the class that will be serialized. -public ref class OrderedItem -{ -public: - - [XmlElement(Namespace="http://www.cpandl.com")] - String^ ItemName; - - [XmlElement(Namespace="http://www.cpandl.com")] - String^ Description; - - [XmlElement(Namespace="http://www.cohowinery.com")] - Decimal UnitPrice; - - [XmlElement(Namespace="http://www.cpandl.com")] - int Quantity; - - [XmlElement(Namespace="http://www.cohowinery.com")] - Decimal LineTotal; - - // A custom method used to calculate price per item. - void Calculate() - { - LineTotal = UnitPrice * Quantity; - } -}; - -void SerializeObject( String^ filename ) -{ - Console::WriteLine( "Writing With Stream" ); - XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid ); - OrderedItem^ i = gcnew OrderedItem; - i->ItemName = "Widget"; - i->Description = "Regular Widget"; - i->Quantity = 10; - i->UnitPrice = (Decimal)2.30; - i->Calculate(); - - // Create an XmlSerializerNamespaces object. - XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces; - - // Add two prefix-namespace pairs. - ns->Add( "inventory", "http://www.cpandl.com" ); - ns->Add( "money", "http://www.cohowinery.com" ); - - // Create a FileStream to write with. - Stream^ writer = gcnew FileStream( filename,FileMode::Create ); - - // Serialize the object, and close the TextWriter - serializer->Serialize( writer, i, ns ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - Console::WriteLine( "Reading with Stream" ); - - // Create an instance of the XmlSerializer. - XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid ); - - // Writing the file requires a Stream. - Stream^ reader = gcnew FileStream( filename,FileMode::Open ); - - // Declare an object variable of the type to be deserialized. - OrderedItem^ i; - - /* Use the Deserialize method to restore the object's state - using data from the XML document. */ - i = dynamic_cast(serializer->Deserialize( reader )); - - // Write out the properties of the object. - Console::Write( "{0}\t{1}\t{2}\t{3}\t{4}", i->ItemName, i->Description, i->UnitPrice, i->Quantity, i->LineTotal ); -} - -int main() -{ - // Write a purchase order. - SerializeObject( "simple.xml" ); - DeserializeObject( "simple.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize4 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize4 Example/CPP/source.cpp deleted file mode 100644 index 1774c451ee458..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize4 Example/CPP/source.cpp +++ /dev/null @@ -1,55 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Text; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// This is the class that will be serialized. -public ref class OrderedItem -{ -public: - String^ ItemName; - String^ Description; - Decimal UnitPrice; - int Quantity; - Decimal LineTotal; - - // A custom method used to calculate price per item. - void Calculate() - { - LineTotal = UnitPrice * Quantity; - } -}; - -void SerializeObject( String^ filename ) -{ - Console::WriteLine( "Writing With XmlTextWriter" ); - XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid ); - OrderedItem^ i = gcnew OrderedItem; - i->ItemName = "Widget"; - i->Description = "Regular Widget"; - i->Quantity = 10; - i->UnitPrice = (Decimal)2.30; - i->Calculate(); - - // Create an XmlTextWriter using a FileStream. - Stream^ fs = gcnew FileStream( filename,FileMode::Create ); - XmlWriter^ writer = gcnew XmlTextWriter( fs,Encoding::Unicode ); - - // Serialize using the XmlTextWriter. - serializer->Serialize( writer, i ); - writer->Close(); -} - -int main() -{ - // Write a purchase order. - SerializeObject( "simple.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize5 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize5 Example/CPP/source.cpp deleted file mode 100644 index 8a82ba5a382ee..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.Serialize5 Example/CPP/source.cpp +++ /dev/null @@ -1,72 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Text; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// This is the class that will be serialized. -public ref class OrderedItem -{ -public: - - [XmlElement(Namespace="http://www.cpandl.com")] - String^ ItemName; - - [XmlElement(Namespace="http://www.cpandl.com")] - String^ Description; - - [XmlElement(Namespace="http://www.cohowinery.com")] - Decimal UnitPrice; - - [XmlElement(Namespace="http://www.cpandl.com")] - int Quantity; - - [XmlElement(Namespace="http://www.cohowinery.com")] - Decimal LineTotal; - - // A custom method used to calculate price per item. - void Calculate() - { - LineTotal = UnitPrice * Quantity; - } -}; - -void SerializeObject( String^ filename ) -{ - Console::WriteLine( "Writing With XmlTextWriter" ); - XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid ); - OrderedItem^ i = gcnew OrderedItem; - i->ItemName = "Widget"; - i->Description = "Regular Widget"; - i->Quantity = 10; - i->UnitPrice = (Decimal)2.30; - i->Calculate(); - - // Create an XmlSerializerNamespaces object. - XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces; - - // Add two namespaces with prefixes. - ns->Add( "inventory", "http://www.cpandl.com" ); - ns->Add( "money", "http://www.cohowinery.com" ); - - // Create an XmlTextWriter using a FileStream. - Stream^ fs = gcnew FileStream( filename,FileMode::Create ); - XmlWriter^ writer = gcnew XmlTextWriter( fs,gcnew UTF8Encoding ); - - // Serialize using the XmlTextWriter. - serializer->Serialize( writer, i, ns ); - writer->Close(); -} - -int main() -{ - // Write a purchase order. - SerializeObject( "simple.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.UnknownAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.UnknownAttribute Example/CPP/source.cpp deleted file mode 100644 index cef506f6c438c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.UnknownAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,60 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; -using namespace System::Xml; -using namespace System::Xml::Schema; - -public ref class Group -{ -public: - String^ GroupName; -}; - -public ref class Test -{ -public: - static void main() - { - Test^ t = gcnew Test; - - // Deserialize the file containing unknown elements. - t->DeserializeObject( "UnknownAttributes.xml" ); - } - -private: - void Serializer_UnknownAttribute( Object^ sender, XmlAttributeEventArgs^ e ) - { - Console::WriteLine( "Unknown Attribute" ); - Console::WriteLine( "\t{0} {1}", e->Attr->Name, e->Attr->InnerXml ); - Console::WriteLine( "\t LineNumber: {0}", e->LineNumber ); - Console::WriteLine( "\t LinePosition: {0}", e->LinePosition ); - Group^ x = dynamic_cast(e->ObjectBeingDeserialized); - Console::WriteLine( x->GroupName ); - Console::WriteLine( sender ); - } - - void DeserializeObject( String^ filename ) - { - XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid ); - - // Add a delegate to handle unknown element events. - ser->UnknownAttribute += gcnew XmlAttributeEventHandler( this, &Test::Serializer_UnknownAttribute ); - - // A FileStream is needed to read the XML document. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Group^ g = dynamic_cast(ser->Deserialize( fs )); - fs->Close(); - } -}; - -int main() -{ - Test::main(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.UnknownNode Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.UnknownNode Example/CPP/source.cpp deleted file mode 100644 index 57d80144134cb..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.UnknownNode Example/CPP/source.cpp +++ /dev/null @@ -1,79 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Group -{ -public: - - // Only the GroupName field will be known. - String^ GroupName; -}; - -public ref class Test -{ -public: - static void main() - { - Test^ t = gcnew Test; - t->DeserializeObject( "UnknownNodes.xml" ); - } - -private: - void DeserializeObject( String^ filename ) - { - XmlSerializer^ mySerializer = gcnew XmlSerializer( Group::typeid ); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - mySerializer->UnknownNode += gcnew XmlNodeEventHandler( this, &Test::serializer_UnknownNode ); - Group^ myGroup = dynamic_cast(mySerializer->Deserialize( fs )); - fs->Close(); - } - -private: - void serializer_UnknownNode( Object^ /*sender*/, XmlNodeEventArgs^ e ) - { - Console::WriteLine( "UnknownNode Name: {0}", e->Name ); - Console::WriteLine( "UnknownNode LocalName: {0}", e->LocalName ); - Console::WriteLine( "UnknownNode Namespace URI: {0}", e->NamespaceURI ); - Console::WriteLine( "UnknownNode Text: {0}", e->Text ); - XmlNodeType myNodeType = e->NodeType; - Console::WriteLine( "NodeType: {0}", myNodeType ); - Group^ myGroup = dynamic_cast(e->ObjectBeingDeserialized); - Console::WriteLine( "GroupName: {0}", myGroup->GroupName ); - Console::WriteLine(); - } -}; - -int main() -{ - Test::main(); -} - -/* Paste this XML into a file named UnknownNodes: - - - MyGroup - Large - 444 - West - - 1 - Thing1 - - element - - - -*/ -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer Example/CPP/source.cpp deleted file mode 100644 index 1df7c03435e65..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer Example/CPP/source.cpp +++ /dev/null @@ -1,181 +0,0 @@ - - -// -// Beginning of the HighSchool.dll -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -namespace HighSchool -{ - public ref class Student - { - public: - String^ Name; - int ID; - }; - - public ref class MyClass - { - public: - array^Students; - }; -} - -namespace College -{ - -using namespace HighSchool; - public ref class Graduate: public HighSchool::Student - { - public: - Graduate(){} - - // Add a new field named University. - String^ University; - - // Use extra types to use this field. - array^Info; - }; - - public ref class Address - { - public: - String^ City; - }; - - public ref class Phone - { - public: - String^ Number; - }; - - public ref class Run - { - public: - static void main() - { - Run^ test = gcnew Run; - test->WriteOverriddenAttributes( "College.xml" ); - test->ReadOverriddenAttributes( "College.xml" ); - } - - private: - void WriteOverriddenAttributes( String^ filename ) - { - // Writing the file requires a TextWriter. - TextWriter^ myStreamWriter = gcnew StreamWriter( filename ); - - // Create an XMLAttributeOverrides class. - XmlAttributeOverrides^ attrOverrides = gcnew XmlAttributeOverrides; - - // Create the XmlAttributes class. - XmlAttributes^ attrs = gcnew XmlAttributes; - - /* Override the Student class. "Alumni" is the name - of the overriding element in the XML output. */ - XmlElementAttribute^ attr = gcnew XmlElementAttribute( "Alumni",Graduate::typeid ); - - /* Add the XmlElementAttribute to the collection of - elements in the XmlAttributes object. */ - attrs->XmlElements->Add( attr ); - - /* Add the XmlAttributes to the XmlAttributeOverrides. - "Students" is the name being overridden. */ - attrOverrides->Add( HighSchool::MyClass::typeid, "Students", attrs ); - - // Create array of extra types. - array^extraTypes = gcnew array(2); - extraTypes[ 0 ] = Address::typeid; - extraTypes[ 1 ] = Phone::typeid; - - // Create an XmlRootAttribute. - XmlRootAttribute^ root = gcnew XmlRootAttribute( "Graduates" ); - - /* Create the XmlSerializer with the - XmlAttributeOverrides object. */ - XmlSerializer^ mySerializer = gcnew XmlSerializer( HighSchool::MyClass::typeid,attrOverrides,extraTypes,root,"http://www.microsoft.com" ); - MyClass ^ myClass = gcnew MyClass; - Graduate^ g1 = gcnew Graduate; - g1->Name = "Jacki"; - g1->ID = 1; - g1->University = "Alma"; - Graduate^ g2 = gcnew Graduate; - g2->Name = "Megan"; - g2->ID = 2; - g2->University = "CM"; - array^myArray = {g1,g2}; - myClass->Students = myArray; - - // Create extra information. - Address^ a1 = gcnew Address; - a1->City = "Ionia"; - Address^ a2 = gcnew Address; - a2->City = "Stamford"; - Phone^ p1 = gcnew Phone; - p1->Number = "555-0101"; - Phone^ p2 = gcnew Phone; - p2->Number = "555-0100"; - array^o1 = {a1,p1}; - array^o2 = {a2,p2}; - g1->Info = o1; - g2->Info = o2; - mySerializer->Serialize( myStreamWriter, myClass ); - myStreamWriter->Close(); - } - - void ReadOverriddenAttributes( String^ filename ) - { - /* The majority of the code here is the same as that in the - WriteOverriddenAttributes method. Because the XML being read - doesn't conform to the schema defined by the DLL, the - XMLAttributesOverrides must be used to create an - XmlSerializer instance to read the XML document.*/ - XmlAttributeOverrides^ attrOverrides = gcnew XmlAttributeOverrides; - XmlAttributes^ attrs = gcnew XmlAttributes; - XmlElementAttribute^ attr = gcnew XmlElementAttribute( "Alumni",Graduate::typeid ); - attrs->XmlElements->Add( attr ); - attrOverrides->Add( HighSchool::MyClass::typeid, "Students", attrs ); - array^extraTypes = gcnew array(2); - extraTypes[ 0 ] = Address::typeid; - extraTypes[ 1 ] = Phone::typeid; - XmlRootAttribute^ root = gcnew XmlRootAttribute( "Graduates" ); - XmlSerializer^ readSerializer = gcnew XmlSerializer( HighSchool::MyClass::typeid,attrOverrides,extraTypes,root,"http://www.microsoft.com" ); - - // A FileStream object is required to read the file. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - MyClass ^ myClass; - myClass = dynamic_cast(readSerializer->Deserialize( fs )); - - /* Here is the difference between reading and writing an - XML document: You must declare an object of the derived - type (Graduate) and cast the Student instance to it.*/ - Graduate^ g; - Address^ a; - Phone^ p; - System::Collections::IEnumerator^ myEnum = myClass->Students->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Graduate^ grad = safe_cast(myEnum->Current); - g = dynamic_cast(grad); - Console::Write( "{0}\t", g->Name ); - Console::Write( "{0}\t", g->ID ); - Console::Write( "{0}\n", g->University ); - a = dynamic_cast(g->Info[ 0 ]); - Console::WriteLine( a->City ); - p = dynamic_cast(g->Info[ 1 ]); - Console::WriteLine( p->Number ); - } - } - }; -} - -int main() -{ - College::Run::main(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer1 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer1 Example/CPP/source.cpp deleted file mode 100644 index 173d91e6ff341..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer1 Example/CPP/source.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Class1 -{ - // -private: - void SerializeObject( String^ filename ) - { - XmlSerializer^ serializer = gcnew XmlSerializer( - OrderedItem::typeid,"http://www.cpandl.com" ); - - // Create an instance of the class to be serialized. - OrderedItem^ i = gcnew OrderedItem; - - // Insert code to set property values. - - // Writing the document requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - // Serialize the object, and close the TextWriter - serializer->Serialize( writer, i ); - writer->Close(); - } - - void DeserializeObject( String^ filename ) - { - XmlSerializer^ serializer = gcnew XmlSerializer( - OrderedItem::typeid,"http://www.cpandl.com" ); - // A FileStream is needed to read the XML document. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - - // Declare an object variable of the type to be deserialized. - OrderedItem^ i; - - // Deserialize the object. - i = dynamic_cast(serializer->Deserialize( fs )); - - // Insert code to use the properties and methods of the object. - } - // - -public: - ref class OrderedItem{ - // Members of OrderedItem go here - }; -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer2 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer2 Example/CPP/source.cpp deleted file mode 100644 index 2ce08d9f7a102..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer2 Example/CPP/source.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Class1 -{ - // -private: - void SerializeObject( String^ filename ) - { - // Create an XmlRootAttribute, and set its properties. - XmlRootAttribute^ xRoot = gcnew XmlRootAttribute; - xRoot->ElementName = "CustomRoot"; - xRoot->Namespace = "http://www.cpandl.com"; - xRoot->IsNullable = true; - - // Construct the XmlSerializer with the XmlRootAttribute. - XmlSerializer^ serializer = gcnew XmlSerializer( - OrderedItem::typeid,xRoot ); - - // Create an instance of the object to serialize. - OrderedItem^ i = gcnew OrderedItem; - // Insert code to set properties of the ordered item. - - // Writing the document requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - serializer->Serialize( writer, i ); - writer->Close(); - } - - void DeserializeObject( String^ filename ) - { - // Create an XmlRootAttribute, and set its properties. - XmlRootAttribute^ xRoot = gcnew XmlRootAttribute; - xRoot->ElementName = "CustomRoot"; - xRoot->Namespace = "http://www.cpandl.com"; - xRoot->IsNullable = true; - - XmlSerializer^ serializer = gcnew XmlSerializer( - OrderedItem::typeid,xRoot ); - - // A FileStream is needed to read the XML document. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - // Deserialize the object. - OrderedItem^ i = dynamic_cast(serializer->Deserialize( fs )); - // Insert code to use the object's properties and methods. - } - // - -public: - ref class OrderedItem{ - // Members of OrderedItem go here - }; -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer3 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer3 Example/CPP/source.cpp deleted file mode 100644 index 669af6e0644df..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer3 Example/CPP/source.cpp +++ /dev/null @@ -1,137 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -ref class Address; -ref class Phone; - -// This defines the object that will be serialized. -public ref class Teacher -{ -public: - String^ Name; - Teacher(){} - - /* Note that the Info field returns an array of objects. - Any object can be added to the array by adding the - object type to the array passed to the extraTypes argument. */ - - [XmlArray(ElementName="ExtraInfo",IsNullable=true)] - array^Info; - Phone^ PhoneInfo; -}; - - -// This defines one of the extra types to be included. -public ref class Address -{ -public: - String^ City; - Address(){} - - Address( String^ city ) - { - City = city; - } -}; - -// Another extra type to include. -public ref class Phone -{ -public: - String^ PhoneNumber; - Phone(){} - - Phone( String^ phoneNumber ) - { - PhoneNumber = phoneNumber; - } -}; - -// Another type, derived from Phone -public ref class InternationalPhone: public Phone -{ -public: - String^ CountryCode; - InternationalPhone(){} - - InternationalPhone( String^ countryCode ) - { - CountryCode = countryCode; - } -}; - -public ref class Run -{ -public: - static void main() - { - Run^ test = gcnew Run; - test->SerializeObject( "Teacher.xml" ); - test->DeserializeObject( "Teacher.xml" ); - } - -private: - void SerializeObject( String^ filename ) - { - // Writing the file requires a TextWriter. - TextWriter^ myStreamWriter = gcnew StreamWriter( filename ); - - // Create a Type array. - array^extraTypes = gcnew array(3); - extraTypes[ 0 ] = Address::typeid; - extraTypes[ 1 ] = Phone::typeid; - extraTypes[ 2 ] = InternationalPhone::typeid; - - // Create the XmlSerializer instance. - XmlSerializer^ mySerializer = gcnew XmlSerializer( Teacher::typeid,extraTypes ); - Teacher^ teacher = gcnew Teacher; - teacher->Name = "Mike"; - - // Add extra types to the Teacher object - array^info = gcnew array(2); - info[ 0 ] = gcnew Address( "Springville" ); - info[ 1 ] = gcnew Phone( "555-0100" ); - teacher->Info = info; - teacher->PhoneInfo = gcnew InternationalPhone( "000" ); - mySerializer->Serialize( myStreamWriter, teacher ); - myStreamWriter->Close(); - } - - void DeserializeObject( String^ filename ) - { - // Create a Type array. - array^extraTypes = gcnew array(3); - extraTypes[ 0 ] = Address::typeid; - extraTypes[ 1 ] = Phone::typeid; - extraTypes[ 2 ] = InternationalPhone::typeid; - - // Create the XmlSerializer instance. - XmlSerializer^ mySerializer = gcnew XmlSerializer( Teacher::typeid,extraTypes ); - - // Reading a file requires a FileStream. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Teacher^ teacher = dynamic_cast(mySerializer->Deserialize( fs )); - - // Read the extra information. - Address^ a = dynamic_cast(teacher->Info[ 0 ]); - Phone^ p = dynamic_cast(teacher->Info[ 1 ]); - InternationalPhone^ Ip = dynamic_cast(teacher->PhoneInfo); - Console::WriteLine( teacher->Name ); - Console::WriteLine( a->City ); - Console::WriteLine( p->PhoneNumber ); - Console::WriteLine( Ip->CountryCode ); - } -}; - -int main() -{ - Run::main(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer4 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer4 Example/CPP/source.cpp deleted file mode 100644 index 0050ba6a3cec2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer4 Example/CPP/source.cpp +++ /dev/null @@ -1,133 +0,0 @@ - - -// -// Beginning of HighSchool.dll -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -namespace HighSchool -{ - public ref class Student - { - public: - String^ Name; - int ID; - }; - - public ref class MyClass - { - public: - array^Students; - }; -} - -namespace College -{ - -using namespace HighSchool; - public ref class Graduate: public HighSchool::Student - { - public: - Graduate(){} - - // Add a new field named University. - String^ University; - }; - - public ref class Run - { - public: - static void main() - { - Run^ test = gcnew Run; - test->WriteOverriddenAttributes( "College.xml" ); - test->ReadOverriddenAttributes( "College.xml" ); - } - - private: - void WriteOverriddenAttributes( String^ filename ) - { - // Writing the file requires a TextWriter. - TextWriter^ myStreamWriter = gcnew StreamWriter( filename ); - - // Create an XMLAttributeOverrides class. - XmlAttributeOverrides^ attrOverrides = gcnew XmlAttributeOverrides; - - // Create the XmlAttributes class. - XmlAttributes^ attrs = gcnew XmlAttributes; - - /* Override the Student class. "Alumni" is the name - of the overriding element in the XML output. */ - XmlElementAttribute^ attr = gcnew XmlElementAttribute( "Alumni",Graduate::typeid ); - - /* Add the XmlElementAttribute to the collection of - elements in the XmlAttributes object. */ - attrs->XmlElements->Add( attr ); - - /* Add the XmlAttributes to the XmlAttributeOverrides. - "Students" is the name being overridden. */ - attrOverrides->Add( HighSchool::MyClass::typeid, "Students", attrs ); - - // Create the XmlSerializer. - XmlSerializer^ mySerializer = gcnew XmlSerializer( HighSchool::MyClass::typeid,attrOverrides ); - MyClass ^ myClass = gcnew MyClass; - Graduate^ g1 = gcnew Graduate; - g1->Name = "Jackie"; - g1->ID = 1; - g1->University = "Alma Mater"; - Graduate^ g2 = gcnew Graduate; - g2->Name = "Megan"; - g2->ID = 2; - g2->University = "CM"; - array^myArray = {g1,g2}; - myClass->Students = myArray; - mySerializer->Serialize( myStreamWriter, myClass ); - myStreamWriter->Close(); - } - - void ReadOverriddenAttributes( String^ filename ) - { - /* The majority of the code here is the same as that in the - WriteOverriddenAttributes method. Because the XML being read - doesn't conform to the schema defined by the DLL, the - XMLAttributesOverrides must be used to create an - XmlSerializer instance to read the XML document.*/ - XmlAttributeOverrides^ attrOverrides = gcnew XmlAttributeOverrides; - XmlAttributes^ attrs = gcnew XmlAttributes; - XmlElementAttribute^ attr = gcnew XmlElementAttribute( "Alumni",Graduate::typeid ); - attrs->XmlElements->Add( attr ); - attrOverrides->Add( HighSchool::MyClass::typeid, "Students", attrs ); - XmlSerializer^ readSerializer = gcnew XmlSerializer( HighSchool::MyClass::typeid,attrOverrides ); - - // To read the file, a FileStream object is required. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - MyClass ^ myClass; - myClass = dynamic_cast(readSerializer->Deserialize( fs )); - - /* Here is the difference between reading and writing an - XML document: You must declare an object of the derived - type (Graduate) and cast the Student instance to it.*/ - Graduate^ g; - System::Collections::IEnumerator^ myEnum = myClass->Students->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Graduate^ grad = safe_cast(myEnum->Current); - g = dynamic_cast(grad); - Console::Write( "{0}\t", g->Name ); - Console::Write( "{0}\t", g->ID ); - Console::Write( "{0}\n", g->University ); - } - } - }; -} - -int main() -{ - College::Run::main(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer6 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer6 Example/CPP/source.cpp deleted file mode 100644 index 6dabc064fb44a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializer.XmlSerializer6 Example/CPP/source.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Sample -{ - // -private: - void SerializeObject( String^ filename ) - { - XmlSerializer^ serializer = - gcnew XmlSerializer( OrderedItem::typeid ); - - // Create an instance of the class to be serialized. - OrderedItem^ i = gcnew OrderedItem; - - // Set the public property values. - i->ItemName = "Widget"; - i->Description = "Regular Widget"; - i->Quantity = 10; - i->UnitPrice = (Decimal)2.30; - - // Writing the document requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Serialize the object, and close the TextWriter. - serializer->Serialize( writer, i ); - writer->Close(); - } - -public: - // This is the class that will be serialized. - ref class OrderedItem - { - public: - String^ ItemName; - String^ Description; - Decimal UnitPrice; - int Quantity; - }; - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializerNamespaces Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializerNamespaces Example/CPP/source.cpp deleted file mode 100644 index 01f91598da81f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializerNamespaces Example/CPP/source.cpp +++ /dev/null @@ -1,82 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -public ref class Price -{ -public: - - [XmlAttributeAttribute(Namespace="http://www.cpandl.com")] - String^ currency; - - [XmlElement(Namespace="http://www.cohowinery.com")] - Decimal price; -}; - -[XmlType(Namespace="http://www.cpandl.com")] -public ref class Book -{ -public: - - [XmlElement(Namespace="http://www.cpandl.com")] - String^ TITLE; - - [XmlElement(Namespace="http://www.cohowinery.com")] - Price^ PRICE; -}; - -public ref class Books -{ -public: - - [XmlElement(Namespace="http://www.cohowinery.com")] - Book^ Book; -}; - -public ref class Run -{ -public: - static void main() - { - Run^ test = gcnew Run; - test->SerializeObject( "XmlNamespaces.xml" ); - } - - void SerializeObject( String^ filename ) - { - XmlSerializer^ s = gcnew XmlSerializer( Books::typeid ); - - // Writing a file requires a TextWriter. - TextWriter^ t = gcnew StreamWriter( filename ); - - /* Create an XmlSerializerNamespaces object and add two - prefix-namespace pairs. */ - XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces; - ns->Add( "books", "http://www.cpandl.com" ); - ns->Add( "money", "http://www.cohowinery.com" ); - - // Create a Book instance. - Book^ b = gcnew Book; - b->TITLE = "A Book Title"; - Price^ p = gcnew Price; - p->price = (Decimal)9.95; - p->currency = "US Dollar"; - b->PRICE = p; - Books^ bks = gcnew Books; - bks->Book = b; - s->Serialize( t, bks, ns ); - t->Close(); - } -}; - -int main() -{ - Run::main(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializerNamespaces.Add Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializerNamespaces.Add Example/CPP/source.cpp deleted file mode 100644 index 825b960ef4a57..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializerNamespaces.Add Example/CPP/source.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Sample -{ - // -private: - XmlSerializerNamespaces^ AddNamespaces() - { - XmlSerializerNamespaces^ xmlNamespaces = - gcnew XmlSerializerNamespaces; - - // Add three prefix-namespace pairs. - xmlNamespaces->Add( "money", "http://www.cpandl.com" ); - xmlNamespaces->Add( "books", "http://www.cohowinery.com" ); - xmlNamespaces->Add( "software", "http://www.microsoft.com" ); - - return xmlNamespaces; - } - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializerNamespaces.ToArray Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializerNamespaces.ToArray Example/CPP/source.cpp deleted file mode 100644 index 89a101a18a2e1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializerNamespaces.ToArray Example/CPP/source.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Sample -{ - // -private: - void PrintNamespacePairs( XmlSerializerNamespaces^ namespaces ) - { - array^ qualifiedNames = namespaces->ToArray(); - for ( int i = 0; i < qualifiedNames->Length; i++ ) - { - Console::WriteLine( "{0}\t{1}", - qualifiedNames[ i ]->Name, qualifiedNames[ i ]->Namespace ); - } - } - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializerNamespaces.XmlSerializerNamespaces1 Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializerNamespaces.XmlSerializerNamespaces1 Example/CPP/source.cpp deleted file mode 100644 index 58d5dd5564948..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlSerializerNamespaces.XmlSerializerNamespaces1 Example/CPP/source.cpp +++ /dev/null @@ -1,25 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Sample -{ - // -private: - XmlSerializerNamespaces^ CreateFromQNames() - { - XmlQualifiedName^ q1 = - gcnew XmlQualifiedName( "money","http://www.cohowinery.com" ); - - XmlQualifiedName^ q2 = - gcnew XmlQualifiedName( "books","http://www.cpandl.com" ); - - array^ names = { q1, q2 }; - - return gcnew XmlSerializerNamespaces( names ); - } - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTextAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTextAttribute Example/CPP/source.cpp deleted file mode 100644 index fadecdb274e7b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTextAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,99 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Xml::Serialization; -using namespace System::IO; - -public ref class Group1 -{ -public: - - // The XmlTextAttribute with type set to string informs the - // XmlSerializer that strings should be serialized as XML text. - - [XmlText(String::typeid)] - [XmlElement(Int32::typeid)] - [XmlElement(Double::typeid)] - array^All; - Group1() - { - array^temp = {321,"One",2,3.0,"Two"}; - All = temp; - } -}; - -public enum class GroupType -{ - Small, Medium, Large -}; - -public ref class Group2 -{ -public: - - [XmlText(Type=GroupType::typeid)] - GroupType Type; -}; - -public ref class Group3 -{ -public: - - [XmlText(Type=DateTime::typeid)] - DateTime CreationTime; - Group3() - { - CreationTime = DateTime::Now; - } -}; - -public ref class Test -{ -public: - static void main() - { - Test^ t = gcnew Test; - t->SerializeArray( "XmlText1.xml" ); - t->SerializeEnum( "XmlText2.xml" ); - t->SerializeDateTime( "XmlText3.xml" ); - } - -private: - void SerializeArray( String^ filename ) - { - XmlSerializer^ ser = gcnew XmlSerializer( Group1::typeid ); - Group1^ myGroup1 = gcnew Group1; - TextWriter^ writer = gcnew StreamWriter( filename ); - ser->Serialize( writer, myGroup1 ); - writer->Close(); - } - - void SerializeEnum( String^ filename ) - { - XmlSerializer^ ser = gcnew XmlSerializer( Group2::typeid ); - Group2^ myGroup = gcnew Group2; - myGroup->Type = GroupType::Medium; - TextWriter^ writer = gcnew StreamWriter( filename ); - ser->Serialize( writer, myGroup ); - writer->Close(); - } - - void SerializeDateTime( String^ filename ) - { - XmlSerializer^ ser = gcnew XmlSerializer( Group3::typeid ); - Group3^ myGroup = gcnew Group3; - TextWriter^ writer = gcnew StreamWriter( filename ); - ser->Serialize( writer, myGroup ); - writer->Close(); - } -}; - -int main() -{ - Test::main(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTextAttribute.XmlTextAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTextAttribute.XmlTextAttribute Example/CPP/source.cpp deleted file mode 100644 index d6719698f718e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTextAttribute.XmlTextAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,68 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -using namespace System::Xml::Schema; - -public ref class Group -{ -public: - String^ GroupName; - String^ Comment; -}; - -public ref class Test -{ -public: - static void main() - { - Test^ t = gcnew Test; - t->SerializerOrder( "TextOverride.xml" ); - } - - /* Create an instance of the XmlSerializer class that overrides - the default way it serializes an object. */ - XmlSerializer^ CreateOverrider() - { - /* Create instances of the XmlAttributes and - XmlAttributeOverrides classes. */ - XmlAttributes^ attrs = gcnew XmlAttributes; - XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides; - - /* Create an XmlTextAttribute to override the default - serialization process. */ - XmlTextAttribute^ xText = gcnew XmlTextAttribute; - attrs->XmlText = xText; - - // Add the XmlAttributes to the XmlAttributeOverrides. - xOver->Add( Group::typeid, "Comment", attrs ); - - // Create the XmlSerializer, and return it. - XmlSerializer^ xSer = gcnew XmlSerializer( Group::typeid,xOver ); - return xSer; - } - - void SerializerOrder( String^ filename ) - { - // Create an XmlSerializer instance. - XmlSerializer^ xSer = CreateOverrider(); - - // Create the object and serialize it. - Group^ myGroup = gcnew Group; - myGroup->Comment = "This is a great product."; - TextWriter^ writer = gcnew StreamWriter( filename ); - xSer->Serialize( writer, myGroup ); - } -}; - -int main() -{ - Test::main(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTypeAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTypeAttribute Example/CPP/source.cpp deleted file mode 100644 index 0b402e1de8730..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTypeAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,41 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// - -[XmlType(Namespace="http://www.cpandl.com", -TypeName="GroupMember")] -public ref class Person -{ -public: - String^ Name; -}; - - -[XmlType(Namespace="http://www.cohowinery.com", -TypeName="GroupAddress")] -public ref class Address -{ -public: - String^ Line1; - String^ Line2; - String^ City; - String^ State; - String^ Zip; -}; - -public ref class Group -{ -public: - array^Staff; - Person^ Manager; - Address^ Location; -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTypeAttribute.IncludeInSchema Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTypeAttribute.IncludeInSchema Example/CPP/source.cpp deleted file mode 100644 index 592b8ccb05353..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTypeAttribute.IncludeInSchema Example/CPP/source.cpp +++ /dev/null @@ -1,15 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// - -[XmlType(IncludeInSchema=false)] -public ref class ExtraneousInfo{}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTypeAttribute.Namespace Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTypeAttribute.Namespace Example/CPP/source.cpp deleted file mode 100644 index 04919033ae5a2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTypeAttribute.Namespace Example/CPP/source.cpp +++ /dev/null @@ -1,15 +0,0 @@ - - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// - -[XmlType(Namespace="http://www.cpandl.com")] -public ref class Book{}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTypeAttribute.TypeName Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTypeAttribute.TypeName Example/CPP/source.cpp deleted file mode 100644 index 87847fcbb3ee3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Classic XmlTypeAttribute.TypeName Example/CPP/source.cpp +++ /dev/null @@ -1,37 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// -ref class Person; -ref class Job; -ref class Group -{ -public: - array^Staff; -}; - - -[XmlType(TypeName="Employee", -Namespace="http://www.cpandl.com")] -public ref class Person -{ -public: - String^ PersonName; - Job^ Position; -}; - - -[XmlType(TypeName="Occupation", -Namespace="http://www.cohowinery.com")] -public ref class Job -{ -public: - String^ JobName; -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ClassicTcpClient.PublicMethodsAndPropertiesExample/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ClassicTcpClient.PublicMethodsAndPropertiesExample/CPP/source.cpp deleted file mode 100644 index 3c56e569110c3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ClassicTcpClient.PublicMethodsAndPropertiesExample/CPP/source.cpp +++ /dev/null @@ -1,248 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Text; -using namespace System::Net; -using namespace System::Net::Sockets; -public ref class MyTcpClientExample -{ -public: - - // - // MyTcpClientConstructor is just used to illustrate the different constructors available in the TcpClient class - static void MyTcpClientConstructor( String^ myConstructorType ) - { - if ( myConstructorType == "IPAddressExample" ) - { - - // - //Creates a TCPClient using a local end point. - IPAddress^ ipAddress = Dns::Resolve( Dns::GetHostName() )->AddressList[ 0 ]; - IPEndPoint^ ipLocalEndPoint = gcnew IPEndPoint( ipAddress,11000 ); - TcpClient^ tcpClientA = gcnew TcpClient( ipLocalEndPoint ); - - // - } - else - if ( myConstructorType == "HostNameExample" ) - { - - // - // Creates a TCPClient using hostname and port. - TcpClient^ tcpClientB = gcnew TcpClient( "www.contoso.com",11000 ); - - // - } - else - if ( myConstructorType == "DefaultExample" ) - { - - // - //Creates a TCPClient using the default constructor. - TcpClient^ tcpClientC = gcnew TcpClient; - - // - } - else - { - - // - TcpClient^ tcpClientD = gcnew TcpClient( AddressFamily::InterNetwork ); - - // - } - } - - - // MyTcpClientConnection class is just used to illustrate the different connection methods of the TcpClient class. - static void MyTcpClientConnection( String^ myConnectionType ) - { - if ( myConnectionType == "HostnameExample" ) - { - - // - //Uses a host name and port number to establish a socket connection. - TcpClient^ tcpClient = gcnew TcpClient; - tcpClient->Connect( "www.contoso.com", 11002 ); - - // - tcpClient->Close(); - } - else - if ( myConnectionType == "IPAddressExample" ) - { - - // - //Uses the IP address and port number to establish a socket connection. - TcpClient^ tcpClient = gcnew TcpClient; - IPAddress^ ipAddress = Dns::Resolve( "www.contoso.com" )->AddressList[ 0 ]; - tcpClient->Connect( ipAddress, 11003 ); - - // - tcpClient->Close(); - } - else - if ( myConnectionType == "RemoteEndPointExample" ) - { - - // - //Uses a remote end point to establish a socket connection. - TcpClient^ tcpClient = gcnew TcpClient; - IPAddress^ ipAddress = Dns::Resolve( "www.contoso.com" )->AddressList[ 0 ]; - IPEndPoint^ ipEndPoint = gcnew IPEndPoint( ipAddress,11004 ); - tcpClient->Connect( ipEndPoint ); - - // - tcpClient->Close(); - } - else - { - - // Do nothing. - } - } - - - // MyTcpClientPropertySetter is just used to illustrate setting and getting various properties of the TcpClient class. - static void MyTcpClientPropertySetter() - { - TcpClient^ tcpClient = gcnew TcpClient; - - // - // sets the receive buffer size using the ReceiveBufferSize public property. - tcpClient->ReceiveBufferSize = 1024; - - // gets the receive buffer size using the ReceiveBufferSize public property. - if ( tcpClient->ReceiveBufferSize == 1024 ) - Console::WriteLine( "The receive buffer was successfully set to {0}", tcpClient->ReceiveBufferSize ); - - - // - // - //sets the send buffer size using the SendBufferSize public property. - tcpClient->SendBufferSize = 1024; - - // gets the send buffer size using the SendBufferSize public property. - if ( tcpClient->SendBufferSize == 1024 ) - Console::WriteLine( "The send buffer was successfully set to {0}", tcpClient->SendBufferSize ); - - - // - // - // Sets the receive time out using the ReceiveTimeout public property. - tcpClient->ReceiveTimeout = 5; - - // Gets the receive time out using the ReceiveTimeout public property. - if ( tcpClient->ReceiveTimeout == 5 ) - Console::WriteLine( "The receive time out limit was successfully set {0}", tcpClient->ReceiveTimeout ); - - - // - // - // sets the send time out using the SendTimeout public property. - tcpClient->SendTimeout = 5; - - // gets the send time out using the SendTimeout public property. - if ( tcpClient->SendTimeout == 5 ) - Console::WriteLine( "The send time out limit was successfully set {0}", tcpClient->SendTimeout ); - - - // - // - // sets the amount of time to linger after closing, using the LingerOption public property. - LingerOption^ lingerOption = gcnew LingerOption( true,10 ); - tcpClient->LingerState = lingerOption; - - // gets the amount of linger time set, using the LingerOption public property. - if ( tcpClient->LingerState->LingerTime == 10 ) - Console::WriteLine( "The linger state setting was successfully set to {0}", tcpClient->LingerState->LingerTime ); - - - // - // - // Sends data immediately upon calling NetworkStream.Write. - tcpClient->NoDelay = true; - - // Determines if the delay is enabled by using the NoDelay property. - if ( tcpClient->NoDelay == true ) - Console::WriteLine( "The delay was set successfully to {0}", tcpClient->NoDelay ); - - - // - tcpClient->Close(); - } - - static void MyTcpClientCommunicator() - { - - // - TcpClient^ tcpClient = gcnew TcpClient; - - // Uses the GetStream public method to return the NetworkStream. - NetworkStream^ netStream = tcpClient->GetStream(); - if ( netStream->CanWrite ) - { - array^sendBytes = Encoding::UTF8->GetBytes( "Is anybody there?" ); - netStream->Write( sendBytes, 0, sendBytes->Length ); - } - else - { - Console::WriteLine( "You cannot write data to this stream." ); - tcpClient->Close(); - - // Closing the tcpClient instance does not close the network stream. - netStream->Close(); - return; - } - - if ( netStream->CanRead ) - { - - // Reads NetworkStream into a byte buffer. - array^bytes = gcnew array(tcpClient->ReceiveBufferSize); - - // Read can return anything from 0 to numBytesToRead. - // This method blocks until at least one byte is read. - netStream->Read( bytes, 0, (int)tcpClient->ReceiveBufferSize ); - - // Returns the data received from the host to the console. - String^ returndata = Encoding::UTF8->GetString( bytes ); - Console::WriteLine( "This is what the host returned to you: {0}", returndata ); - } - else - { - Console::WriteLine( "You cannot read data from this stream." ); - tcpClient->Close(); - - // Closing the tcpClient instance does not close the network stream. - netStream->Close(); - return; - } - - - // - } - -}; - - -//end class -int main() -{ - - // Using the default constructor. - MyTcpClientExample::MyTcpClientConstructor( "DefaultExample" ); - - // Establish a connection by using the hostname and port number. - MyTcpClientExample::MyTcpClientConnection( "HostnameExample" ); - - // Set and verify all communication parameters before attempting communication. - MyTcpClientExample::MyTcpClientPropertySetter(); - - // Send and receive data using tcpClient class. - MyTcpClientExample::MyTcpClientCommunicator(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ClientSponsor_Register/CPP/clientsponsor_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ClientSponsor_Register/CPP/clientsponsor_client.cpp deleted file mode 100644 index 9338142454cc6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ClientSponsor_Register/CPP/clientsponsor_client.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// System::Runtime::Remoting::Lifetime.ClientSponsor::Register(MarshalByRefObject) -// System::Runtime::Remoting::Lifetime.ClientSponsor::Unregister(MarshalByRefObject) -// System::Runtime::Remoting::Lifetime.ClientSponsor::RenewalTime -// System::Runtime::Remoting::Lifetime.ClientSponsor::InitializeLifetimeService() -// System::Runtime::Remoting::Lifetime.ClientSponsor::Renewal(ILease*) -// System::Runtime::Remoting::Lifetime.ClientSponsor::Close() -// System::Runtime::Remoting::Lifetime.ClientSponsor - -/* The following example demonstrates 'RenewalTime', 'Register', 'UnRegister' and -'Close' methods of 'ClientSponsor' class. -A remote Object* is created and registered with 'ClientSponsor' class. The renewal -time is set. Then the leased time is renewed and the method of remote Object* is invoked. -Finally the remote Object* is unregistered. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Lifetime; - -// -int main() -{ - // Register a channel. - TcpChannel^ myChannel = gcnew TcpChannel; - ChannelServices::RegisterChannel( myChannel ); - RemotingConfiguration::RegisterActivatedClientType( - RemotingSamples::HelloService::typeid, "tcp://localhost:8085/" ); - - // Get the remote Object*. - RemotingSamples::HelloService ^ myService = gcnew RemotingSamples::HelloService; - - // Get a sponsor for renewal of time. - ClientSponsor^ mySponsor = gcnew ClientSponsor; - - // Register the service with sponsor. - mySponsor->Register( myService ); - - // Set renewaltime. - mySponsor->RenewalTime = TimeSpan::FromMinutes( 2 ); - - // Renew the lease. - ILease^ myLease = dynamic_cast(mySponsor->InitializeLifetimeService()); - TimeSpan myTime = mySponsor->Renewal( myLease ); - Console::WriteLine( "Renewed time in minutes is {0}", myTime.Minutes ); - - // Call the remote method. - Console::WriteLine( myService->HelloMethod( "World" ) ); - - // Unregister the channel. - mySponsor->Unregister( myService ); - mySponsor->Close(); -} -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ClientSponsor_Register/CPP/clientsponsor_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ClientSponsor_Register/CPP/clientsponsor_server.cpp deleted file mode 100644 index c3f3966269b9c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ClientSponsor_Register/CPP/clientsponsor_server.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Lifetime; - -int main() -{ - RemotingConfiguration::Configure( "Server.config" ); - Console::WriteLine( "Server started." ); - Console::WriteLine( "Hit enter to terminate..." ); - Console::Read(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ClientSponsor_Register/CPP/clientsponsor_share.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ClientSponsor_Register/CPP/clientsponsor_share.cpp deleted file mode 100644 index 97289d67531db..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ClientSponsor_Register/CPP/clientsponsor_share.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Lifetime; - -namespace RemotingSamples -{ - public ref class HelloService: public MarshalByRefObject - { - public: - String^ HelloMethod( String^ name ) - { - Console::WriteLine( "Hello {0}", name ); - return String::Format( "Hello {0}", name ); - } - }; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ClientSponsor_Register/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/ClientSponsor_Register/CPP/makefile deleted file mode 100644 index 1ff152d3ad74e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ClientSponsor_Register/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: ClientSponsor_Server.exe ClientSponsor_Client.exe - -ClientSponsor_Server.exe: ClientSponsor_Server.cpp ClientSponsor_Share.dll - cl /clr:pure ClientSponsor_Server.cpp - -ClientSponsor_Client.exe: ClientSponsor_Client.cpp ClientSponsor_Share.dll - cl /clr:pure ClientSponsor_Client.cpp - -ClientSponsor_Share.dll: ClientSponsor_Share.cpp - cl /LD /clr:pure ClientSponsor_Share.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CommonTransportKeys/CPP/commontransportkeys.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CommonTransportKeys/CPP/commontransportkeys.cpp deleted file mode 100644 index 92548f77799d9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CommonTransportKeys/CPP/commontransportkeys.cpp +++ /dev/null @@ -1,228 +0,0 @@ -// System.Runtime.Remoting.Channels.CommonTransportKeys -// System.Runtime.Remoting.Channels.CommonTransportKeys.IPAddress -// System.Runtime.Remoting.Channels.CommonTransportKeys.ConnectionId -// System.Runtime.Remoting.Channels.CommonTransportKeys.RequestUri -/* -This program demonstrates 'CommonTransportKeys' class and the static members 'IPAddress', 'ConnectionId', -'RequestUri'. 'LoggingClientChannelSinkProvider' and 'LoggingServerChannelSinkProvider' classes are -created which inherits'IClientChannelSinkProvider' and 'IServerChannelSinkProvider' respectively. -'ProcessMessage' method is having 'ITransportHeaders' parameter which gives the required header values. - -Note: This snippet assumes CommonTransportKeys_Server.cs, CommonTransportKeys_Client.cs, -CommonTransportKeys_Share.cs files along with channels.config, server.exe.config, client.exe. -config config files. -*/ -#using - -using namespace System::Runtime::InteropServices; -using namespace System; -using namespace System::Collections; -using namespace System::IO; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Security::Permissions; - -namespace Logging -{ - [PermissionSet(SecurityAction::Demand, Name="FullTrust")] - private ref class LoggingClientChannelSink: public BaseChannelObjectWithProperties, public IClientChannelSink - { - private: - IClientChannelSink^ nextSink1; - - public: - LoggingClientChannelSink() - : nextSink1( nullptr ) - {} - - LoggingClientChannelSink( IClientChannelSink^ localNextSink ) - : BaseChannelObjectWithProperties() - { - nextSink1 = localNextSink; - } - - - virtual void ProcessMessage( IMessage^ msg, ITransportHeaders^ requestHeaders, Stream^ requestStream, [Out]ITransportHeaders^% responseHeaders, [Out]Stream^% responseStream ) = IClientChannelSink::ProcessMessage - { - nextSink1->ProcessMessage( msg, requestHeaders, requestStream, responseHeaders, responseStream ); - } - - virtual void AsyncProcessRequest( IClientChannelSinkStack^ sinkStack, IMessage^ msg, ITransportHeaders^ headers, Stream^ stream1 ) - { - sinkStack->Push( this, nullptr ); - nextSink1->AsyncProcessRequest( sinkStack, msg, headers, stream1 ); - } - - virtual void AsyncProcessResponse( IClientResponseChannelSinkStack^ sinkStack, Object^ /*state*/, ITransportHeaders^ headers, Stream^ stream1 ) - { - sinkStack->AsyncProcessResponse( headers, stream1 ); - } - - virtual Stream^ GetRequestStream( IMessage^ /*msg*/, ITransportHeaders^ /*headers*/ ) - { - return nullptr; - } - - property IClientChannelSink^ NextChannelSink - { - virtual IClientChannelSink^ get() - { - return nextSink1; - } - } - }; - - [PermissionSet(SecurityAction::Demand, Name="FullTrust")] - public ref class LoggingClientChannelSinkProvider: public IClientChannelSinkProvider - { - private: - IClientChannelSinkProvider^ next1; - - public: - LoggingClientChannelSinkProvider() - : next1( nullptr ) - {} - - virtual IClientChannelSink^ CreateSink( IChannelSender^ channel1, String^ url1, Object^ remoteChannelData ) - { - IClientChannelSink^ localNextSink = nullptr; - if ( next1 != nullptr ) - { - localNextSink = next1->CreateSink( channel1, url1, remoteChannelData ); - if ( localNextSink == nullptr ) - return nullptr; - } - - return gcnew LoggingClientChannelSink( localNextSink ); - } - - property IClientChannelSinkProvider^ Next - { - virtual IClientChannelSinkProvider^ get() - { - return next1; - } - - virtual void set( IClientChannelSinkProvider^ value ) - { - next1 = value; - } - } - }; - - // - [PermissionSet(SecurityAction::Demand, Name="FullTrust")] - private ref class LoggingServerChannelSink: public BaseChannelObjectWithProperties, public IServerChannelSink - { - private: - IServerChannelSink^ nextSink2; - bool bEnabled2; - - public: - LoggingServerChannelSink() - : nextSink2( nullptr ), bEnabled2( true ) - {} - - LoggingServerChannelSink( IServerChannelSink^ localNextSink ) - : BaseChannelObjectWithProperties() - { - nextSink2 = localNextSink; - } - - virtual ServerProcessing ProcessMessage( IServerChannelSinkStack^ sinkStack, IMessage^ requestMsg, ITransportHeaders^ requestHeaders, Stream^ requestStream, [Out]IMessage^% responseMsg, [Out]ITransportHeaders^% responseHeaders, [Out]Stream^% responseStream ) = IServerChannelSink::ProcessMessage - { - if ( bEnabled2 ) - { - Console::WriteLine( "----------Request Headers-----------" ); - - // - Console::WriteLine( "{0}:{1}", CommonTransportKeys::IPAddress, - requestHeaders[ CommonTransportKeys::IPAddress ] ); - // - // - Console::WriteLine( "{0}:{1}", CommonTransportKeys::ConnectionId, - requestHeaders[ CommonTransportKeys::ConnectionId ] ); - // - // - Console::WriteLine( "{0}:{1}", CommonTransportKeys::RequestUri, - requestHeaders[ CommonTransportKeys::RequestUri ] ); - // - } - - sinkStack->Push( this, nullptr ); - ServerProcessing processing = nextSink2->ProcessMessage( sinkStack, requestMsg, requestHeaders, requestStream, responseMsg, responseHeaders, responseStream ); - switch ( processing ) - { - case ServerProcessing::Complete: - sinkStack->Pop( this ); - break; - - case ServerProcessing::OneWay: - sinkStack->Pop( this ); - break; - - case ServerProcessing::Async: - sinkStack->Store( this, nullptr ); - break; - } - return processing; - } - - virtual void AsyncProcessResponse( IServerResponseChannelSinkStack^ sinkStack, Object^ /*state*/, IMessage^ msg, ITransportHeaders^ headers, Stream^ stream1 ) - { - sinkStack->AsyncProcessResponse( msg, headers, stream1 ); - } - - virtual Stream^ GetResponseStream( IServerResponseChannelSinkStack^ /*sinkStack*/, Object^ /*state*/, IMessage^ /*msg*/, ITransportHeaders^ /*headers*/ ) - { - return nullptr; - } - - property IServerChannelSink^ NextChannelSink - { - virtual IServerChannelSink^ get() - { - return nextSink2; - } - } - }; - - [PermissionSet(SecurityAction::Demand, Name="FullTrust")] - public ref class LoggingServerChannelSinkProvider: public IServerChannelSinkProvider - { - private: - IServerChannelSinkProvider^ next2; - - public: - LoggingServerChannelSinkProvider() - : next2( nullptr ) - {} - - LoggingServerChannelSinkProvider( IDictionary^ /*properties*/, ICollection^ /*providerData*/ ){} - - virtual void GetChannelData( IChannelDataStore^ /*channelData*/ ){} - - virtual IServerChannelSink^ CreateSink( IChannelReceiver^ channel1 ) - { - IServerChannelSink^ localNextSink = nullptr; - if ( next2 != nullptr ) - localNextSink = next2->CreateSink( channel1 ); - - return gcnew LoggingServerChannelSink( localNextSink ); - } - - property IServerChannelSinkProvider^ Next - { - virtual IServerChannelSinkProvider^ get() - { - return next2; - } - - virtual void set( IServerChannelSinkProvider^ value ) - { - next2 = value; - } - } - }; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference/CPP/contractreference.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference/CPP/contractreference.cpp deleted file mode 100644 index 393044fb2605a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference/CPP/contractreference.cpp +++ /dev/null @@ -1,63 +0,0 @@ - - -// System::Web::Services::Discovery.ContractReference -/* -The following example demonstrates the 'ContractReference' class . -A new instance of 'ContractReference' class is obtained. The -Contract reference Object* is added to the list of references -contained within the discovery document and a '.disco' file is -generated for the Webservice where the reference tags of -ContractReference are reflected. -*/ -// -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::IO; -using namespace System::Web::Services::Discovery; -int main() -{ - try - { - - // Get a DiscoveryDocument. - DiscoveryDocument^ myDiscoveryDocument = gcnew DiscoveryDocument; - - // Get a ContractReference. - ContractReference^ myContractReference = gcnew ContractReference; - - // Set the URL to the referenced service description. - myContractReference->Ref = "http://localhost/service1.asmx?wsdl"; - - // Set the URL for an XML Web service implementing the service - // description. - myContractReference->DocRef = "http://localhost/service1.asmx"; - SoapBinding^ myBinding = gcnew SoapBinding; - myBinding->Binding = gcnew XmlQualifiedName( "q1:Service1Soap" ); - myBinding->Address = "http://localhost/service1.asmx"; - - // Add myContractReference to the list of references contained - // in the discovery document. - myDiscoveryDocument->References->Add( myContractReference ); - - // Add Binding to the references collection. - myDiscoveryDocument->References->Add( myBinding ); - - // Open or create a file for writing. - FileStream^ myFileStream = gcnew FileStream( "Service1.disco",FileMode::OpenOrCreate,FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - - // Write myDiscoveryDocument into the passed stream. - myDiscoveryDocument->Write( myStreamWriter ); - Console::WriteLine( "The Service1.disco is generated." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Error is {0}", e->Message ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_Contract/CPP/contractreference_contract.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_Contract/CPP/contractreference_contract.cpp deleted file mode 100644 index e4861522f0f37..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_Contract/CPP/contractreference_contract.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// System.Web.Services.Discovery.ContractReference.Contract -/* -The following example demonstrates the 'Contract' property of the 'ContractReference' -class. -It creates an instance of 'DiscoveryDocument' class by reading from a disco file -and gets the first reference to a service description in a 'ContractReference' instance. -Using the 'Contract' property of the 'ContractReference' instance it creates a wsdl -file which works as a service description file. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Protocols; -using namespace System::Net; -using namespace System::IO; -using namespace System::Web::Services::Discovery; -using namespace System::Web::Services::Description; - -// -int main() -{ - try - { - // Create the file stream. - FileStream^ discoStream = gcnew FileStream( "Service1_CS.disco",FileMode::Open ); - - // Create the discovery document. - DiscoveryDocument^ myDiscoveryDocument = DiscoveryDocument::Read( discoStream ); - - // Get the first ContractReference in the collection. - ContractReference^ myContractReference = dynamic_cast(myDiscoveryDocument->References[ 0 ]); - - // Set the client protocol. - myContractReference->ClientProtocol = gcnew DiscoveryClientProtocol; - myContractReference->ClientProtocol->Credentials = CredentialCache::DefaultCredentials; - - // Get the service description. - ServiceDescription^ myContract = myContractReference->Contract; - - // Create the service description file. - myContract->Write( "MyService1.wsdl" ); - Console::WriteLine( "The WSDL file created is MyService1.wsdl" ); - discoStream->Close(); - } - catch ( Exception^ ex ) - { - Console::WriteLine( "Exception: {0}", ex->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_DefaultFileName/CPP/contractreference_defaultfilename.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_DefaultFileName/CPP/contractreference_defaultfilename.cpp deleted file mode 100644 index e61ce94cb751d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_DefaultFileName/CPP/contractreference_defaultfilename.cpp +++ /dev/null @@ -1,41 +0,0 @@ -// System.Web.Services.Discovery.ContractReference.DefaultFileName -// System.Web.Services.Discovery.ContractReference.Url -/* -The following example demonstrates the 'DefaultFilename' and 'Url' properties of -'ContractReference' class. It gets the 'DiscoveryDocument' object using the -'Discover' method of 'DiscoveryClientProtocol' class. It gets the 'ContractReference' -object by using the 'References' property of 'DiscoveryDocument' object.Then it displays the -'DefaultFileName' and 'Url' properties of 'ContractReference'. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Discovery; -using namespace System::Xml::Schema; -using namespace System::Collections; - -int main() -{ - // - // - DiscoveryClientProtocol^ myProtocol = gcnew DiscoveryClientProtocol; - - // Get the DiscoveryDocument. - DiscoveryDocument^ myDiscoveryDocument = myProtocol->Discover( "http://localhost/ContractReference/test_cs.disco" ); - ArrayList^ myArrayList = dynamic_cast(myDiscoveryDocument->References); - - // Get the ContractReference. - ContractReference^ myContractRefrence = dynamic_cast(myArrayList[ 0 ]); - - // Get the DefaultFileName associated with the .disco file. - String^ myFileName = myContractRefrence->DefaultFilename; - - // Get the URL associated with the .disco file. - String^ myUrl = myContractRefrence->Url; - Console::WriteLine( "The DefaulFilename is: {0}", myUrl ); - Console::WriteLine( "The URL is: {0}", myUrl ); - // - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_ReadDocument/CPP/MyService1_cpp.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_ReadDocument/CPP/MyService1_cpp.wsdl deleted file mode 100644 index 8bc5dacacfc57..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_ReadDocument/CPP/MyService1_cpp.wsdl +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_ReadDocument/CPP/contractreference_readdocument.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_ReadDocument/CPP/contractreference_readdocument.cpp deleted file mode 100644 index b1f994d465480..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_ReadDocument/CPP/contractreference_readdocument.cpp +++ /dev/null @@ -1,37 +0,0 @@ -// System::Web::Services::Discovery.ContractReference::ReadDocument -/* -* The following example demonstrates the 'ReadDocument' method of the -* 'ContractReference' class. -* It creates an instance of 'ContractReference' class and calls the -* 'ReadDocument' method passing a service description stream and get a -* 'ServiceDescription' instance. -*/ -#using -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Web::Services::Discovery; -using namespace System::Web::Services::Description; - -// -int main() -{ - try - { - // Create the file stream. - FileStream^ wsdlStream = gcnew FileStream( "MyService1_cpp.wsdl",FileMode::Open ); - ContractReference^ myContractReference = gcnew ContractReference; - - // Read the service description from the passed stream. - ServiceDescription^ myServiceDescription = dynamic_cast(myContractReference->ReadDocument( wsdlStream )); - Console::Write( "Target Namespace for the service description is: {0}", myServiceDescription->TargetNamespace ); - wsdlStream->Close(); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_Reference/CPP/contractreference_ref.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_Reference/CPP/contractreference_ref.cpp deleted file mode 100644 index a906da5b7585a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_Reference/CPP/contractreference_ref.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/* -System::Web::Services::Discovery.ContractReference::ctor -System::Web::Services::Discovery.ContractReference::Ref -System::Web::Services::Discovery.ContractReference::DocRef -System::Web::Services::Discovery.ContractReference::Namespace - -The following example demonstrates the constructor, the -properties 'Ref', 'DocRef' and 'Namespace'. A sample discovery -document is read and 'Ref', 'DocRef' and 'Namespace' properties -are displayed. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Data; -using namespace System::Xml; -using namespace System::Web::Services::Discovery; - -int main() -{ - - // - // - // - // - // Call the Constructor of ContractReference. - ContractReference^ myContractReference = gcnew ContractReference; - // - XmlDocument^ myXmlDocument = gcnew XmlDocument; - - // Read the discovery document for the 'contractRef' tag. - myXmlDocument->Load( "http://localhost/Discoverydoc.disco" ); - XmlNode^ myXmlRoot = myXmlDocument->FirstChild; - XmlNode^ myXmlNode = myXmlRoot[ "scl:contractRef" ]; - XmlAttributeCollection^ myAttributeCollection = myXmlNode->Attributes; - myContractReference->Ref = myAttributeCollection[ 0 ]->Value; - Console::WriteLine( "The URL to the referenced service description is : {0}", myContractReference->Ref ); - // - myContractReference->DocRef = myAttributeCollection[ 1 ]->Value; - Console::WriteLine( "The URL implementing the referenced service description is : {0}", myContractReference->DocRef ); - // - Console::WriteLine( "Namespace for the referenced service description is : {0}", ContractReference::Namespace ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_WriteDocument/CPP/TestInput_cpp.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_WriteDocument/CPP/TestInput_cpp.wsdl deleted file mode 100644 index e0c5e90b8c55a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_WriteDocument/CPP/TestInput_cpp.wsdl +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_WriteDocument/CPP/TestOutput_cpp.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_WriteDocument/CPP/TestOutput_cpp.wsdl deleted file mode 100644 index e0c5e90b8c55a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_WriteDocument/CPP/TestOutput_cpp.wsdl +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_WriteDocument/CPP/contractreference_writedocument.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_WriteDocument/CPP/contractreference_writedocument.cpp deleted file mode 100644 index e2220cc74c037..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_WriteDocument/CPP/contractreference_writedocument.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/* -The following example demonstrates the 'WriteDocument' method of -'ContractReference' class. It creates a 'ContactReference' and a 'FileStream' Object*. -Then it gets the 'ServiceDescription' Object* corresponding to the 'test.wsdl' file. -Using the 'WriteDocument' method, the 'ServiceDescription' Object* is written into the -file stream. -Note: The 'TestInput_cpp::wsdl' file should exist in the same folder. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Discovery; -using namespace System::IO; -using namespace System::Web::Services::Description; - -int main() -{ - try - { -// - ContractReference^ myContractReference = gcnew ContractReference; - FileStream^ myFileStream = gcnew FileStream( "TestOutput_cpp.wsdl", - FileMode::OpenOrCreate,FileAccess::Write ); - - // Get the ServiceDescription for the test .wsdl file. - ServiceDescription^ myServiceDescription = - ServiceDescription::Read( "TestInput_cpp.wsdl" ); - - // Write the ServiceDescription into the file stream. - myContractReference->WriteDocument( myServiceDescription, myFileStream ); - Console::WriteLine( "ServiceDescription is written " - + "into the file stream successfully." ); - Console::WriteLine( "The number of bytes written into the file stream: {0}", - myFileStream->Length ); - myFileStream->Close(); -// - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_ctor1/CPP/contractreference_ctor1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_ctor1/CPP/contractreference_ctor1.cpp deleted file mode 100644 index a188fe4e240cd..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_ctor1/CPP/contractreference_ctor1.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// System::Web::Services::Discovery.ContractReference::ContractReference(String*) - -/* -The following example demonstrates the constructor 'ContractReference(String*)' -of 'ContractReference' class. A 'DiscoveryDocument' Object* is created .The -constructor initializes a new instance of 'ContractReference' using the supplied -reference to a Service Description::The Contract reference Object* is added to the list -of references contained within the discovery document. A '.disco' file is generated -for the webservice, where the reference tags of ContractReference are reflected. -*/ - -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::IO; -using namespace System::Web::Services::Discovery; - -int main() -{ - try - { - // Create a DiscoveryDocument. - DiscoveryDocument^ myDiscoveryDocument = gcnew DiscoveryDocument; - -// - // Create a ContractReference using a reference to a service description. - ContractReference^ myContractReference = gcnew ContractReference( - "http://localhost/Service1::asmx?wsdl" ); -// - - // Set the URL for an XML Web service implementing the service description. - myContractReference->DocRef = "http://localhost/service1.asmx"; - SoapBinding^ myBinding = gcnew SoapBinding; - myBinding->Binding = gcnew XmlQualifiedName( "q1:Service1Soap" ); - myBinding->Address = "http://localhost/service1.asmx"; - - // Add myContractReference to the list of references contained - // in the discovery document. - myDiscoveryDocument->References->Add( myContractReference ); - myDiscoveryDocument->References->Add( myBinding ); - - // Open or create a file for writing. - FileStream^ myFileStream = gcnew FileStream( "Service1.disco",FileMode::OpenOrCreate,FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - - // Write myDiscoveryDocument into the passed stream. - myDiscoveryDocument->Write( myStreamWriter ); - Console::WriteLine( "The Service1.disco is generated." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Error is {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_ctor2/CPP/contractreference_ctor2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_ctor2/CPP/contractreference_ctor2.cpp deleted file mode 100644 index ce3f7b776af1d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ContractReference_ctor2/CPP/contractreference_ctor2.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// System::Web::Services::Discovery.ContractReference::ContractReference(String*, String*) - -/* -The following example demonstrates the constructor 'ContractReference(String*, String*)' -of 'ContractReference' class. In this example the 'ContractReference' class constructor -initializes a new instance of the 'ContractReference' class using the supplied references -to a service description and a XML Web service implementing the service description.The -Contract reference Object* is added to the list of references contained within the -discovery document and a '.disco' file is generated for the webservice where the -reference tags of ContractReference are reflected. -*/ - -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::IO; -using namespace System::Web::Services::Discovery; - -int main() -{ - try - { - // Get a DiscoveryDocument. - DiscoveryDocument^ myDiscoveryDocument = gcnew DiscoveryDocument; - -// - // Create a ContractReference using a service description and - // an XML Web service. - ContractReference^ myContractReference = gcnew ContractReference( - "http://localhost/Service1::asmx?wsdl","http://localhost/Service1::asmx" ); -// - - SoapBinding^ myBinding = gcnew SoapBinding; - myBinding->Binding = gcnew XmlQualifiedName( "q1:Service1Soap" ); - myBinding->Address = "http://localhost/service1.asmx"; - - // Add myContractReference to the list of references contained - // in the discovery document. - myDiscoveryDocument->References->Add( myContractReference ); - myDiscoveryDocument->References->Add( myBinding ); - - // Open or create a file for writing. - FileStream^ myFileStream = gcnew FileStream( "Service1.disco", - FileMode::OpenOrCreate,FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - - // Write myDiscoveryDocument into the passed stream. - myDiscoveryDocument->Write( myStreamWriter ); - Console::WriteLine( "The Service1.disco is generated." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Error is {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CookieCollection_Item_1/CPP/CookieCollection_Item_1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CookieCollection_Item_1/CPP/CookieCollection_Item_1.cpp deleted file mode 100644 index 14edae829803b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CookieCollection_Item_1/CPP/CookieCollection_Item_1.cpp +++ /dev/null @@ -1,147 +0,0 @@ - - -/* -This program demonstrates 'Item(string)' and 'Count' properties of 'CookieCollection' class. - -This program uses an internal site called "CookiesServer.aspx". The program creates a 'HttpWebRequest' -object with the 'URL' taken from command line argument. When no cookies are initially sent to -the server, it responds with a specific page querying the client for information. The client queries -this information from the user and sends it to the server in the second request. This information is -used by the server to not only structure the page sent subsequently but also construct some cookies to be -set by the client, for future requests. The response and the cookies that are sent from the server are -displayed to the console. - -Note: This program requires the "CookiesServer.aspx" server to be running before the execution of this -program.Please refer the "ReadmeCookiesServer.txt" file for setting up the server. -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; -using namespace System::Text::RegularExpressions; -void DisplayCookies( CookieCollection^ cookies ) -{ - // - // - // Get the cookies in the 'CookieCollection' object using the 'Item' property. - // The 'Item' property in C++ is implemented through Indexers. - // The class that implements indexers is usually a collection of other objects. - // This class provides access to those objects with the '[i]' syntax. - try - { - if ( cookies->Count == 0 ) - { - Console::WriteLine( "No cookies to display" ); - return; - } - - Console::WriteLine( "{0}", cookies[ "UserName" ] ); - Console::WriteLine( "{0}", cookies[ "DateOfBirth" ] ); - Console::WriteLine( "{0}", cookies[ "PlaceOfBirth" ] ); - Console::WriteLine( "" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised.\nError : {0}", e->Message ); - } - // - // -} - -void printUsage() -{ - Console::WriteLine( "Usage : " ); - Console::WriteLine( "CookieCollection_Item_1 " ); - Console::WriteLine( " is the name of the CookiesServer.aspx site installed locally" ); - Console::WriteLine( "\nExample : CookieCollection_Item_1 http://www.MyServer.com/CookiesServer.aspx" ); -} - -void GetPage( Uri^ requestUri ) -{ - try - { - array^output = gcnew array(120); - Stream^ myStream; - Encoding^ asciiEncoding = gcnew ASCIIEncoding; - - // Create the request. - HttpWebRequest^ myHttpWebRequest = dynamic_cast(WebRequest::Create( requestUri )); - - // Get the response without any cookies sent to the server. - HttpWebResponse^ myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - String^ usrName; - String^ dateBirth; - String^ placeBirth; - - // Get the information from the user as requested by the server and send it over to the server. - myHttpWebRequest = dynamic_cast(WebRequest::Create( requestUri )); - myHttpWebRequest->Method = "POST"; - myHttpWebRequest->ContentType = "application/x-www-form-urlencoded"; - Console::WriteLine( "\nEnter the values to be sent to the server :\n" ); - Console::Write( "UserName : " ); - usrName = Console::ReadLine(); - Console::Write( "\nDateOfBirth [dd/mm/yyyy]: " ); - dateBirth = Console::ReadLine(); - Regex^ regex = gcnew Regex( "/" ); - String^ convertDate = regex->Replace( dateBirth, "%2F" ); - Console::Write( "\nPlaceOfBirth : " ); - placeBirth = Console::ReadLine(); - Console::WriteLine( "" ); - output = asciiEncoding->GetBytes( String::Format( "UserName={0}&DateOfBirth={1}&PlaceOfBirth={2}&__EVENTTARGET=PlaceOfBirth&__EVENTARGUMENT=", usrName, convertDate, placeBirth ) ); - myHttpWebRequest->ContentLength = output->Length; - myStream = myHttpWebRequest->GetRequestStream(); - myStream->Write( output, 0, output->Length ); - myStream->Close(); - myHttpWebResponse->Close(); - - // Get the response. - myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - - // Output the response to the console. - myStream = myHttpWebResponse->GetResponseStream(); - Console::WriteLine( "Displaying the contents of the page of '{0}' site:", requestUri ); - Console::WriteLine( "" ); - int bytesRead = 0; - while ( (bytesRead = myStream->Read( output, 0, output->Length )) != 0 ) - Console::Write( asciiEncoding->GetString( output, 0, bytesRead ) ); - Console::WriteLine( "" ); - Console::WriteLine( "\nDisplaying the cookies in the response : " ); - Console::WriteLine( "" ); - DisplayCookies( myHttpWebResponse->Cookies ); - myHttpWebResponse->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "WebException raised.\nError : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised.\nError : {0}", e->Message ); - } - -} - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - try - { - if ( args->Length < 2 ) - { - printUsage(); - return 0; - } - GetPage( gcnew Uri( args[ 1 ] ) ); - } - catch ( UriFormatException^ e ) - { - Console::WriteLine( "UriFormatException raised.\nError : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised.\nError : {0}", e->Message ); - } - -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CookieCollection_Item_2/CPP/CookieCollection_Item_2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CookieCollection_Item_2/CPP/CookieCollection_Item_2.cpp deleted file mode 100644 index 5f84293fef803..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CookieCollection_Item_2/CPP/CookieCollection_Item_2.cpp +++ /dev/null @@ -1,143 +0,0 @@ - - -/* -This program demonstrates 'Item(int)' properties of 'CookieCollection' class. - -This program uses an internal site called "CookiesServer.aspx". The program creates a 'HttpWebRequest' -object with the 'URL' taken from command line argument. When no cookies are initially sent to -the server, it responds with a specific page querying the client for information. The client queries -this information from the user and sends it to the server in the second request. This information is -used by the server to not only structure the page sent subsequently but also construct some cookies to be -set by the client, for future requests. The response and the cookies that are sent from the server are -displayed to the console. - -Note: This program requires the "CookiesServer.aspx" server to be running before the execution of this -program.Please refer the "ReadmeCookiesServer.txt" file for setting up the server. -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; -using namespace System::Text::RegularExpressions; -void DisplayCookies( CookieCollection^ cookies ) -{ - // - // Get the cookies in the 'CookieCollection' object using the 'Item' property. - // The 'Item' property in C++ is implemented through Indexers. - // The class that implements indexers is usually a collection of other objects. - // This class provides access to those objects with the '[i]' syntax. - try - { - if ( cookies->Count == 0 ) - { - Console::WriteLine( "No cookies to display" ); - return; - } - - for ( int j = 0; j < cookies->Count; j++ ) - Console::WriteLine( "{0}", cookies[ j ] ); - Console::WriteLine( "" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised.\nError : {0}", e->Message ); - } - // -} - -void GetPage( Uri^ requestUri ) -{ - try - { - array^output = gcnew array(120); - Stream^ myStream; - Encoding^ asciiEncoding = gcnew ASCIIEncoding; - - // Create the request. - HttpWebRequest^ myHttpWebRequest = dynamic_cast(WebRequest::Create( requestUri )); - - // Get the response without any cookies sent to the server. - HttpWebResponse^ myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - String^ usrName; - String^ dateBirth; - String^ placeBirth; - - // Get the information from the user as requested by the server and send it over to the server. - myHttpWebRequest = dynamic_cast(WebRequest::Create( requestUri )); - myHttpWebRequest->Method = "POST"; - myHttpWebRequest->ContentType = "application/x-www-form-urlencoded"; - Console::WriteLine( "\nEnter the values to be sent to the server :\n" ); - Console::Write( "UserName : " ); - usrName = Console::ReadLine(); - Console::Write( "\nDateOfBirth [dd/mm/yyyy]: " ); - dateBirth = Console::ReadLine(); - Regex^ regex = gcnew Regex( "/" ); - String^ convertDate = regex->Replace( dateBirth, "%2F" ); - Console::Write( "\nPlaceOfBirth : " ); - placeBirth = Console::ReadLine(); - Console::WriteLine( "" ); - output = asciiEncoding->GetBytes( String::Format( "UserName={0}&DateOfBirth={1}&PlaceOfBirth={2}&__EVENTTARGET=PlaceOfBirth&__EVENTARGUMENT=", usrName, convertDate, placeBirth ) ); - myHttpWebRequest->ContentLength = output->Length; - myStream = myHttpWebRequest->GetRequestStream(); - myStream->Write( output, 0, output->Length ); - myStream->Close(); - myHttpWebResponse->Close(); - - // Get the response. - myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - - // Output the response to the console. - myStream = myHttpWebResponse->GetResponseStream(); - Console::WriteLine( "Displaying the contents of the page of '{0}' site:", requestUri ); - Console::WriteLine( "" ); - int bytesRead = 0; - while ( (bytesRead = myStream->Read( output, 0, output->Length )) != 0 ) - Console::Write( asciiEncoding->GetString( output, 0, bytesRead ) ); - Console::WriteLine( "" ); - Console::WriteLine( "\nDisplaying the cookies in the response : " ); - Console::WriteLine( "" ); - DisplayCookies( myHttpWebResponse->Cookies ); - myHttpWebResponse->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "WebException raised.\nError : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised.\nError : {0}", e->Message ); - } - -} - -void printUsage() -{ - Console::WriteLine( "Usage : " ); - Console::WriteLine( "CookieCollection_Item_2 " ); - Console::WriteLine( " is the name of the CookiesServer.aspx site installed locally" ); - Console::WriteLine( "\nExample : CookieCollection_Item_2 http://www.MyServer.com/CookiesServer.aspx" ); -} - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - try - { - if ( args->Length < 2 ) - { - printUsage(); - return 0; - } - GetPage( gcnew Uri( args[ 1 ] ) ); - } - catch ( UriFormatException^ e ) - { - Console::WriteLine( "UriFormatException raised.\nError : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised.\nError : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CreateObjRef/CPP/example.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CreateObjRef/CPP/example.cpp deleted file mode 100644 index 2426daf471f1f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CreateObjRef/CPP/example.cpp +++ /dev/null @@ -1,141 +0,0 @@ - -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Serialization; - -// -// a custom ObjRef class that outputs its status -[System::Security::Permissions::SecurityPermissionAttribute( - System::Security::Permissions::SecurityAction::Demand, - Flags=System::Security::Permissions::SecurityPermissionFlag::SerializationFormatter)] -[System::Security::Permissions::SecurityPermissionAttribute -(System::Security::Permissions::SecurityAction::Demand, -Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] -[System::Security::Permissions::SecurityPermissionAttribute -(System::Security::Permissions::SecurityAction::InheritanceDemand, -Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - -public ref class MyObjRef: public ObjRef -{ -private: - - // only instantiate via marshaling or deserialization - MyObjRef(){} - -public: - MyObjRef( MarshalByRefObject^ o, Type^ t ) - : ObjRef( o, t ) - { - Console::WriteLine( "Created MyObjRef." ); - ORDump(); - } - - MyObjRef( SerializationInfo^ i, StreamingContext c ) - : ObjRef( i, c ) - { - Console::WriteLine( "Deserialized MyObjRef." ); - } - - virtual void GetObjectData( SerializationInfo^ s, StreamingContext c ) override - { - - // After calling the base method, change the type from ObjRef to MyObjRef - ObjRef::GetObjectData( s, c ); - s->SetType( GetType() ); - Console::WriteLine( "Serialized MyObjRef." ); - } - - virtual Object^ GetRealObject( StreamingContext context ) override - { - if ( IsFromThisAppDomain() || IsFromThisProcess() ) - { - Console::WriteLine( "Returning actual Object* referenced by MyObjRef." ); - return ObjRef::GetRealObject( context ); - } - else - { - Console::WriteLine( "Returning proxy to remote Object*." ); - return RemotingServices::Unmarshal( this ); - } - } - - void ORDump() - { - Console::WriteLine( " --- Reporting MyObjRef Info --- " ); - Console::WriteLine( "Reference to {0}.", TypeInfo->TypeName ); - Console::WriteLine( "URI is {0}.", URI ); - Console::WriteLine( "\nWriting EnvoyInfo: " ); - if ( EnvoyInfo != nullptr ) - { - IMessageSink^ EISinks = EnvoyInfo->EnvoySinks; - while ( EISinks != nullptr ) - { - Console::WriteLine( "\tSink: {0}", EISinks ); - EISinks = EISinks->NextSink; - } - } - else - Console::WriteLine( "\t {no sinks}" ); - - Console::WriteLine( "\nWriting ChannelInfo: " ); - for ( int i = 0; i < ChannelInfo->ChannelData->Length; i++ ) - Console::WriteLine( "\tChannel: {0}", ChannelInfo->ChannelData[ i ] ); - Console::WriteLine( " ----------------------------- " ); - } -}; - -// a class that uses MyObjRef -public ref class LocalObject: public MarshalByRefObject -{ -public: - - // overriding CreateObjRef will allow us to return a custom ObjRef - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual ObjRef^ CreateObjRef( Type^ t ) override - { - return gcnew MyObjRef( this,t ); - } -}; -// - -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Serialization; - -public ref class RemoteObject: public MarshalByRefObject -{ -public: - void Method1( LocalObject^ param ) - { - Console::WriteLine( "Invoked: Method1( {0})", param ); - } - -}; - -int main() -{ - ChannelServices::RegisterChannel( gcnew HttpChannel( 8090 ) ); - RemotingConfiguration::RegisterWellKnownServiceType( RemoteObject::typeid, "RemoteObject", WellKnownObjectMode::Singleton ); - RemoteObject^ RObj = dynamic_cast(Activator::GetObject( RemoteObject::typeid, "http://localhost:8090/RemoteObject" )); - LocalObject^ LObj = gcnew LocalObject; - RObj->Method1( LObj ); - Console::WriteLine( "Press Return to exit..." ); - Console::ReadLine(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CreateObjRef2/CPP/example.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CreateObjRef2/CPP/example.cpp deleted file mode 100644 index 3f4dc5fd57157..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CreateObjRef2/CPP/example.cpp +++ /dev/null @@ -1,139 +0,0 @@ - -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Serialization; - -// -// a custom ObjRef class that outputs its status -[System::Security::Permissions::SecurityPermissionAttribute( - System::Security::Permissions::SecurityAction::Demand, - Flags=System::Security::Permissions::SecurityPermissionFlag::SerializationFormatter)] -[System::Security::Permissions::SecurityPermissionAttribute -(System::Security::Permissions::SecurityAction::Demand, -Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] -[System::Security::Permissions::SecurityPermissionAttribute -(System::Security::Permissions::SecurityAction::InheritanceDemand, -Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] -public ref class MyObjRef: public ObjRef -{ -private: - - // only instantiate using marshaling or deserialization - MyObjRef(){} - -public: - MyObjRef( MarshalByRefObject^ o, Type^ t ) - : ObjRef( o, t ) - { - Console::WriteLine( "Created MyObjRef." ); - ORDump(); - } - - MyObjRef( SerializationInfo^ i, StreamingContext c ) - : ObjRef( i, c ) - { - Console::WriteLine( "Deserialized MyObjRef." ); - } - - virtual void GetObjectData( SerializationInfo^ s, StreamingContext c ) override - { - // After calling the base method, change the type from ObjRef to MyObjRef - ObjRef::GetObjectData( s, c ); - s->SetType( GetType() ); - Console::WriteLine( "Serialized MyObjRef." ); - } - - virtual Object^ GetRealObject( StreamingContext context ) override - { - if ( IsFromThisAppDomain() || IsFromThisProcess() ) - { - Console::WriteLine( "Returning actual Object^ referenced by MyObjRef." ); - return ObjRef::GetRealObject( context ); - } - else - { - Console::WriteLine( "Returning proxy to remote Object^." ); - return RemotingServices::Unmarshal( this ); - } - } - - void ORDump() - { - Console::WriteLine( " --- Reporting MyObjRef Info --- " ); - Console::WriteLine( "Reference to {0}.", TypeInfo->TypeName ); - Console::WriteLine( "URI is {0}.", URI ); - Console::WriteLine( "\nWriting EnvoyInfo: " ); - if ( EnvoyInfo != nullptr ) - { - IMessageSink^ EISinks = EnvoyInfo->EnvoySinks; - while ( EISinks != nullptr ) - { - Console::WriteLine( "\tSink: {0}", EISinks ); - EISinks = EISinks->NextSink; - } - } - else - Console::WriteLine( "\t {no sinks}" ); - - Console::WriteLine( "\nWriting ChannelInfo: " ); - for ( int i = 0; i < ChannelInfo->ChannelData->Length; i++ ) - Console::WriteLine( "\tChannel: {0}", ChannelInfo->ChannelData[ i ] ); - Console::WriteLine( " ----------------------------- " ); - } - -}; - -// a class that uses MyObjRef -public ref class LocalObject: public MarshalByRefObject -{ -public: - - // overriding CreateObjRef will allow us to return a custom ObjRef - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual ObjRef^ CreateObjRef( Type^ t ) override - { - return gcnew MyObjRef( this,t ); - } -}; -// - -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Serialization; - -public ref class RemoteObject: public MarshalByRefObject -{ -public: - void Method1( LocalObject^ param ) - { - Console::WriteLine( "Invoked: Method1( {0})", param ); - } -}; - -int main() -{ - ChannelServices::RegisterChannel( gcnew HttpChannel( 8090 ) ); - WellKnownServiceTypeEntry^ wkste = gcnew WellKnownServiceTypeEntry( RemoteObject::typeid,"RemoteObject",WellKnownObjectMode::Singleton ); - RemotingConfiguration::RegisterWellKnownServiceType( wkste ); - RemoteObject^ RObj = dynamic_cast(Activator::GetObject( RemoteObject::typeid, "http://localhost:8090/RemoteObject" )); - LocalObject^ LObj = gcnew LocalObject; - RObj->Method1( LObj ); - Console::WriteLine( "Press Return to exit..." ); - Console::ReadLine(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CredentialCache_Add_Remove/CPP/credentialcache_add_remove.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CredentialCache_Add_Remove/CPP/credentialcache_add_remove.cpp deleted file mode 100644 index 292bea040314d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CredentialCache_Add_Remove/CPP/credentialcache_add_remove.cpp +++ /dev/null @@ -1,84 +0,0 @@ -// System::Net::CredentialCache->Add;System::Net::CredentialCache::CredentialCache(); -// System::Net::CredentialCache::Remove;System::Net::CredentialCache. - -/*This program demontrates the 'Remove' method, 'Add' method and 'CredentialCache' -constructor of the 'CredentialCache' class.It takes an URL creates a 'WebRequest' Object* for the Url. -The program stores a known set of credentials in a credential cache and removes a credential when it -is no longer needed. -*/ - -#using - -using namespace System; -using namespace System::Net; - -void GetPage( String^ url, String^ userName, String^ password, String^ domainName ) -{ - try - { -// -// - CredentialCache^ myCredentialCache = gcnew CredentialCache; - // Used Dummy names as credentials. They are to be replaced by credentials applicable locally. - myCredentialCache->Add( gcnew Uri( "http://www.microsoft.com/" ), "Basic", gcnew NetworkCredential( "user1","passwd1","domain1" ) ); - myCredentialCache->Add( gcnew Uri( "http://www.msdn.com/" ), "Basic", gcnew NetworkCredential( "user2","passwd2","domain2" ) ); - myCredentialCache->Add( gcnew Uri( url ), "Basic", gcnew NetworkCredential( userName,password,domainName ) ); - Console::WriteLine( "\nAdded your credentials to the program's CredentialCache" ); -// -// - // Create a webrequest with the specified url. - WebRequest^ myWebRequest = WebRequest::Create( url ); - myWebRequest->Credentials = myCredentialCache; - Console::WriteLine( "\nLinked CredentialCache to your request." ); - // Send the request and wait for response. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); -// - - // Process response here. - - Console::Write( "Response received successfully." ); - - // Call 'Remove' method to dispose credentials for current Uri as not required further. - myCredentialCache->Remove( myWebRequest->RequestUri, "Basic" ); - Console::WriteLine( "\nYour credentials have now been removed from the program's CredentialCache" ); - myWebResponse->Close(); -// - } - catch ( WebException^ e ) - { - if ( e->Response != nullptr ) - { - Console::WriteLine( "\r\nFailed to obtain a response. The following error occurred : {0}", (dynamic_cast(e->Response))->StatusDescription ); - } - else - { - Console::WriteLine( "\r\nFailed to obtain a response. The following error occurred : {0}", e->Status ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following exception was raised : {0}", e->Message ); - } - -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 4 ) - { - Console::WriteLine( "\n Usage:" ); - Console::WriteLine( "\n CredentialCache_Add_Remove " ); - Console::WriteLine( "\n Example: CredentialCache_Add_Remove http://www.microsoft.com Catherine cath$ microsoft" ); - } - else if ( args->Length == 4 ) - GetPage( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ] ); - else - { - Console::WriteLine( "\nInvalid arguments." ); - return 0; - } - - Console::WriteLine( " Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CredentialCache_DefaultCredentials/CPP/credentialcache_defaultcredentials.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CredentialCache_DefaultCredentials/CPP/credentialcache_defaultcredentials.cpp deleted file mode 100644 index 778e10ae046a1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CredentialCache_DefaultCredentials/CPP/credentialcache_defaultcredentials.cpp +++ /dev/null @@ -1,82 +0,0 @@ - - -// System::Net::CredentialCache::DefaultCredentials. -/* This program demonstrates the 'DefaultCredentials' property of the 'CredentialCache' -class. -Creates an 'HttpWebRequest' Object* to access the local Uri S"http://localhost"(IIS documentation start page) -Assigns the static property 'DefaultCredentials' of 'CredentialCache' as 'Credentials' for the 'HttpWebRequest' -Object*. DefaultCredentials returns the system credentials for the current security context in which -the application is running. For a client-side application, these are usually the Windows credentials -(user name, password, and domain) of the user running the application. -These credentials are used internally to authenticate the request. -The html contents of the start page are displayed to the console. - -Note: Make sure that S"Windows Authentication" has been set as Directory Security settings -for default web site in IIS -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; - -int main() -{ - try - { - // - // Ensure Directory Security settings for default web site in IIS is "Windows Authentication". - String^ url = "http://localhost"; - - // Create a 'HttpWebRequest' object with the specified url. - HttpWebRequest^ myHttpWebRequest = dynamic_cast(WebRequest::Create( url )); - - // Assign the credentials of the logged in user or the user being impersonated. - myHttpWebRequest->Credentials = CredentialCache::DefaultCredentials; - - // Send the 'HttpWebRequest' and wait for response. - HttpWebResponse^ myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - Console::WriteLine( "Authentication successful" ); - Console::WriteLine( "Response received successfully" ); - - // - Console::WriteLine( "\nPress enter to continue" ); - Console::ReadLine(); - - // Get the stream associated with the response object. - Stream^ receiveStream = myHttpWebResponse->GetResponseStream(); - Encoding^ encode = System::Text::Encoding::GetEncoding( "utf-8" ); - - // Pipe the stream to a higher level stream reader with the required encoding format. - StreamReader^ readStream = gcnew StreamReader( receiveStream,encode ); - Console::WriteLine( "\r\nResponse stream received" ); - array^read = gcnew array(256); - - // Read 256 characters at a time. - int count = readStream->Read( read, 0, 256 ); - Console::WriteLine( "HTML...\r\n" ); - while ( count > 0 ) - { - // Dump the 256 characters on a string and display the string onto the console. - String^ output = gcnew String( read,0,count ); - Console::Write( output ); - count = readStream->Read( read, 0, 256 ); - } - Console::WriteLine( "" ); - - // Release the resources of response Object*. - myHttpWebResponse->Close(); - - // Release the resources of stream Object*. - readStream->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nException Raised. The following error occurred : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following exception was raised : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CredentialCache_GetCredential/CPP/credentialcache_getcredential.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CredentialCache_GetCredential/CPP/credentialcache_getcredential.cpp deleted file mode 100644 index 050903cb32e34..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CredentialCache_GetCredential/CPP/credentialcache_getcredential.cpp +++ /dev/null @@ -1,86 +0,0 @@ - - -// System::Net::CredentialCache::GetCredential -/*This program demontrates the 'GetCredential' method of the CredentialCache class.It takes an URL -creates a 'WebRequest' Object* for the Url. The program stores a known set of credentials in a credential cache. -'GetCredential' will then retrieve the credentials for the requested Uri. -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Collections; - -// -void Display( NetworkCredential^ credential ) -{ - Console::WriteLine( "\nThe credentials are:" ); - Console::WriteLine( "\nUsername : {0} , Password : {1} , Domain : {2}", credential->UserName, credential->Password, credential->Domain ); -} - -void GetPage( String^ url, String^ userName, String^ password, String^ domainName ) -{ - try - { - CredentialCache^ myCredentialCache = gcnew CredentialCache; - - // Dummy names used as credentials. - myCredentialCache->Add( gcnew Uri( "http://microsoft.com/" ), "Basic", gcnew NetworkCredential( "user1","passwd1","domain1" ) ); - myCredentialCache->Add( gcnew Uri( "http://msdn.com/" ), "Basic", gcnew NetworkCredential( "user2","passwd2","domain2" ) ); - myCredentialCache->Add( gcnew Uri( url ), "Basic", gcnew NetworkCredential( userName,password,domainName ) ); - - // Create a webrequest with the specified url. - WebRequest^ myWebRequest = WebRequest::Create( url ); - - // Call 'GetCredential' to obtain the credentials specific to our Uri. - NetworkCredential^ myCredential = myCredentialCache->GetCredential( gcnew Uri( url ), "Basic" ); - Display( myCredential ); - - // Associating only our credentials. - myWebRequest->Credentials = myCredential; - - // Sends the request and waits for response. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - - // Process response here. - Console::WriteLine( "\nResponse Received." ); - myWebResponse->Close(); - } - catch ( WebException^ e ) - { - if ( e->Response != nullptr ) - Console::WriteLine( "\r\nFailed to obtain a response. The following error occurred : {0}", (dynamic_cast(e->Response))->StatusDescription ); - else - Console::WriteLine( "\r\nFailed to obtain a response. The following error occurred : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following exception was raised : {0}", e->Message ); - } -} -// - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length < 4 ) - { - Console::WriteLine( "\n Usage:" ); - Console::WriteLine( "\n CredentialCache_GetCredential " ); - Console::WriteLine( "\n Example: CredentialCache_GetCredential http://www.microsoft.com Catherine cath$ microsoft" ); - } - else - if ( (args->Length == 4) ) - { - GetPage( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ] ); - } - else - { - Console::WriteLine( "\nInvalid arguments." ); - return 0; - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CredentialCache_GetEnumerator/CPP/credentialcache_getenumerator.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CredentialCache_GetEnumerator/CPP/credentialcache_getenumerator.cpp deleted file mode 100644 index 86beeaa5a722e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CredentialCache_GetEnumerator/CPP/credentialcache_getenumerator.cpp +++ /dev/null @@ -1,92 +0,0 @@ - - -// System::Net::CredentialCache::GetEnumerator -/*This program demontrates the 'GetEnumerator' method of the CredentialCache class. -It takes an URL, creates a 'WebRequest' Object* for the Url. The program stores a known set of credentials -in a credential cache which is then bound to the request. If the url requested has it's credentials in the cache -the response will be OK . 'GetEnumerator' method is used to enlist all the credentials stored in the -'CredentialCache' Object*. -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Collections; - -// -void Display( NetworkCredential^ credential ) -{ - Console::WriteLine( "\n\tUsername : {0} , Password : {1} , Domain : {2}", credential->UserName, credential->Password, credential->Domain ); -} - -void GetPage( String^ url, String^ userName, String^ password, String^ domainName ) -{ - try - { - CredentialCache^ myCredentialCache = gcnew CredentialCache; - - // Dummy Credentials used here. - myCredentialCache->Add( gcnew Uri( "http://microsoft.com/" ), "Basic", gcnew NetworkCredential( "user1","passwd1","domain1" ) ); - myCredentialCache->Add( gcnew Uri( "http://msdn.com/" ), "Basic", gcnew NetworkCredential( "user2","passwd2","domain2" ) ); - myCredentialCache->Add( gcnew Uri( url ), "Basic", gcnew NetworkCredential( userName,password,domainName ) ); - - // Creates a webrequest with the specified url. - WebRequest^ myWebRequest = WebRequest::Create( url ); - myWebRequest->Credentials = myCredentialCache; - IEnumerator^ listCredentials = myCredentialCache->GetEnumerator(); - Console::WriteLine( "\nDisplaying credentials stored in CredentialCache: " ); - while ( listCredentials->MoveNext() ) - Display( dynamic_cast(listCredentials->Current) ); - Console::WriteLine( "\nNow Displaying the same using 'foreach' : " ); - - // Can use foreach with CredentialCache(Since GetEnumerator function of IEnumerable* has been implemented by 'CredentialCache' class. - IEnumerator^ myEnum = myCredentialCache->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - NetworkCredential^ credential = safe_cast(myEnum->Current); - Display( credential ); - } - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - - // Process response here. - Console::WriteLine( "\nResponse Received." ); - myWebResponse->Close(); - } - catch ( WebException^ e ) - { - if ( e->Response != nullptr ) - Console::WriteLine( "\r\nFailed to obtain a response. The following error occurred : {0}", (dynamic_cast(e->Response))->StatusDescription ); - else - Console::WriteLine( "\r\nFailed to obtain a response. The following error occurred : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following exception was raised : {0}", e->Message ); - } -} -// - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length < 4 ) - { - Console::WriteLine( "\n Usage:" ); - Console::WriteLine( "\n CredentialCache_GetEnumerator " ); - Console::WriteLine( "\n Example: CredentialCache_GetEnumerator http://www.microsoft.com Catherine cath$ microsoft" ); - } - else - if ( args->Length == 4 ) - { - GetPage( args[ 0 ], args[ 1 ], args[ 2 ], args[ 3 ] ); - } - else - { - Console::WriteLine( "\n Invalid arguments." ); - return 0; - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/CustomProxy_Attribute_RealProxy/CPP/customproxy_sample.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/CustomProxy_Attribute_RealProxy/CPP/customproxy_sample.cpp deleted file mode 100644 index f2179104c27a3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/CustomProxy_Attribute_RealProxy/CPP/customproxy_sample.cpp +++ /dev/null @@ -1,250 +0,0 @@ - - -// System::Runtime::Remoting::Proxies.ProxyAttribute::CreateInstance; -// System::Runtime::Remoting::Proxies.ProxyAttribute::CreateProxy; -// System::Runtime::Remoting::Proxies.RealProxy::SetStubData; -// System::Runtime::Remoting::Proxies.RealProxy::Invoke; -// System::Runtime::Remoting::Proxies.RealProxy::InitializeServerObject; -// System::Runtime::Remoting::Proxies.RealProxy::CreateObjRef; -// System::Runtime::Remoting::Proxies.RealProxy::GetObjectData; -// System::Runtime::Remoting::Proxies.RealProxy::GetTransparentProxy; -// System::Runtime::Remoting::Proxies.RealProxy::GetStubData; -// System::Runtime::Remoting::Proxies.RealProxy::GetProxiedType; -// System::Runtime::Remoting::Proxies.ProxyAttribute; -// System::Runtime::Remoting::Proxies.RealProxy; - -/* The following example demonstrates implementation of methods -'CreateInstance' and 'CreateProxy' of System::Runtime::Remoting::Proxies.ProxyAttribute and methods -'SetStubData', 'Invoke', 'InitializeServerObject', 'CreateObjRef', 'GetStubData', 'GetObjectData', -'GetTransparentProxy', 'GetProxiedType' of System::Runtime::Remoting::Proxies.RealProxy. - -The following program has derived from'ProxyAttribute', 'RealProxy' classes. CustomProxy is implemented by deriving -from 'RealProxy' and overriding 'Invoke' method. The new statement for 'CustomServer' class is intercepted to -derived 'CustomProxyAttribute' by setting 'ProxyAttribute' on the CustomServer class. Implementation of -'RealProxy' and 'ProxyAttribute' methods are shown. -*/ - -// -using namespace System; -using namespace System::Collections; -using namespace System::Runtime::Serialization; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Activation; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Proxies; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Remoting::Contexts; -using namespace System::Security::Permissions; - -ref class CustomServer; - -[SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::Infrastructure)] -public ref class MyProxy: public RealProxy -{ -private: - String^ myUri; - MarshalByRefObject^ myMarshalByRefObject; - -public: - MyProxy() - : RealProxy() - { - Console::WriteLine( "MyProxy Constructor Called..." ); - myMarshalByRefObject = dynamic_cast(Activator::CreateInstance( CustomServer::typeid )); - ObjRef^ myObjRef = RemotingServices::Marshal( myMarshalByRefObject ); - myUri = myObjRef->URI; - } - - MyProxy( Type^ type1 ) - : RealProxy( type1 ) - { - Console::WriteLine( "MyProxy Constructor Called..." ); - myMarshalByRefObject = dynamic_cast(Activator::CreateInstance( type1 )); - ObjRef^ myObjRef = RemotingServices::Marshal( myMarshalByRefObject ); - myUri = myObjRef->URI; - } - - MyProxy( Type^ type1, MarshalByRefObject^ targetObject ) - : RealProxy( type1 ) - { - Console::WriteLine( "MyProxy Constructor Called..." ); - myMarshalByRefObject = targetObject; - ObjRef^ myObjRef = RemotingServices::Marshal( myMarshalByRefObject ); - myUri = myObjRef->URI; - } - - // - // - virtual IMessage^ Invoke( IMessage^ myMessage ) override - { - Console::WriteLine( "MyProxy 'Invoke method' Called..." ); - if ( dynamic_cast(myMessage) ) - { - Console::WriteLine( "IMethodCallMessage*" ); - } - - if ( dynamic_cast(myMessage) ) - { - Console::WriteLine( "IMethodReturnMessage*" ); - } - - if ( dynamic_cast(myMessage) ) - { - // Initialize a new instance of remote object - IConstructionReturnMessage^ myIConstructionReturnMessage = this->InitializeServerObject( static_cast(myMessage) ); - ConstructionResponse^ constructionResponse = gcnew ConstructionResponse( nullptr,static_cast(myMessage) ); - return constructionResponse; - } - - IDictionary^ myIDictionary = myMessage->Properties; - IMessage^ returnMessage; - myIDictionary[ "__Uri" ] = myUri; - - // Synchronously dispatch messages to server. - returnMessage = ChannelServices::SyncDispatchMessage( myMessage ); - - // Pushing return value and OUT parameters back onto stack. - IMethodReturnMessage^ myMethodReturnMessage = dynamic_cast(returnMessage); - return returnMessage; - } - // - // - - // - virtual ObjRef^ CreateObjRef( Type^ ServerType ) override - { - Console::WriteLine( "CreateObjRef Method Called ..." ); - CustomObjRef ^ myObjRef = gcnew CustomObjRef( myMarshalByRefObject,ServerType ); - myObjRef->URI = myUri; - return myObjRef; - } - // - - // - [System::Security::Permissions::SecurityPermissionAttribute( - System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual void GetObjectData( SerializationInfo^ info, StreamingContext context ) override - { - // Add your custom data if any here. - RealProxy::GetObjectData( info, context ); - } - // - - [System::Security::Permissions::SecurityPermissionAttribute( - System::Security::Permissions::SecurityAction::Demand, - Flags=System::Security::Permissions::SecurityPermissionFlag::SerializationFormatter)] - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::InheritanceDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - ref class CustomObjRef: public ObjRef - { - public: - CustomObjRef( MarshalByRefObject^ myMarshalByRefObject, Type^ serverType ) - : ObjRef( myMarshalByRefObject, serverType ) - { - Console::WriteLine( "ObjRef 'Constructor' called" ); - } - - // Override this method to store custom data. - virtual void GetObjectData( SerializationInfo^ info, StreamingContext context ) override - { - ObjRef::GetObjectData( info, context ); - } - }; -}; - -// -[AttributeUsageAttribute(AttributeTargets::Class)] -[System::Security::Permissions::SecurityPermissionAttribute -(System::Security::Permissions::SecurityAction::LinkDemand, -Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] -[System::Security::Permissions::SecurityPermissionAttribute -(System::Security::Permissions::SecurityAction::InheritanceDemand, -Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] -public ref class MyProxyAttribute: public ProxyAttribute -{ -public: - MyProxyAttribute(){} - - // - // Create an instance of ServicedComponentProxy - virtual MarshalByRefObject^ CreateInstance( Type^ serverType ) override - { - return ProxyAttribute::CreateInstance( serverType ); - } - // - - // - // - virtual RealProxy^ CreateProxy( ObjRef^ objRef1, Type^ serverType, Object^ serverObject, Context^ serverContext ) override - { - MyProxy^ myCustomProxy = gcnew MyProxy( serverType ); - if ( serverContext != nullptr ) - { - RealProxy::SetStubData( myCustomProxy, serverContext ); - } - - if ( ( !serverType->IsMarshalByRef) && (serverContext == nullptr) ) - { - throw gcnew RemotingException( "Bad Type for CreateProxy" ); - } - - return myCustomProxy; - } - // - // -}; - -[MyProxyAttribute] -ref class CustomServer: public ContextBoundObject -{ -public: - CustomServer() - { - Console::WriteLine( "CustomServer Base Class constructor called" ); - } - - void HelloMethod( String^ str ) - { - Console::WriteLine( "HelloMethod of Server is invoked with message : {0}", str ); - } -}; -// - -// Acts as a custom proxy user. -int main() -{ - Console::WriteLine( "" ); - Console::WriteLine( "CustomProxy Sample" ); - Console::WriteLine( "================" ); - Console::WriteLine( "" ); - - // - // - // - // Create an instance of MyProxy. - MyProxy^ myProxyInstance = gcnew MyProxy( CustomServer::typeid ); - - // Get a CustomServer proxy. - CustomServer^ myHelloServer = static_cast(myProxyInstance->GetTransparentProxy()); - // - - // Get stubdata. - Console::WriteLine( "GetStubData = {0}", RealProxy::GetStubData( myProxyInstance ) ); - // - - // Get ProxyType. - Console::WriteLine( "Type of object represented by RealProxy is : {0}", myProxyInstance->GetProxiedType() ); - // - - myHelloServer->HelloMethod( "RealProxy Sample" ); - Console::WriteLine( "" ); - - // Get a reference object from server. - Console::WriteLine( "Create an objRef object to be marshalled across Application Domains..." ); - ObjRef^ CustomObjRef = myProxyInstance->CreateObjRef( CustomServer::typeid ); - Console::WriteLine( "URI of 'ObjRef' object = {0}", CustomObjRef->URI ); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DateClient_SocketPermission_Constructor/CPP/dateclient_socketpermission_constructor.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DateClient_SocketPermission_Constructor/CPP/dateclient_socketpermission_constructor.cpp deleted file mode 100644 index 1b5f86b7e5cb6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DateClient_SocketPermission_Constructor/CPP/dateclient_socketpermission_constructor.cpp +++ /dev/null @@ -1,168 +0,0 @@ -/* -This program demonstrates the 'SocketPermission(PermissionState)', -'SocketPermission(NetworkAccess, TransportType, String*, int) constructors, -'FromXml', 'Intersect', 'AddPermission' methods and 'AllPorts' field -of 'SocketPermission' class. - -This program provides a class called 'DateClient' that functions as a client -for a 'DateServer'. A 'DateServer' is a server that provides the current date on -the server in response to a request from a client. The 'DateClient' class -provides a method called 'GetDate' which returns the current date on the server. -The 'GetDate' is the method that shows the use of 'SocketPermission' class. An -instance of 'SocketPermission' is obtained using the 'FromXml' method. Another -instance of 'SocketPermission' is created with the 'SocketPermission(NetworkAccess, -TransportType, String*, int)' constructor. A third 'SocketPermission' Object* is -formed from the intersection of the above two 'SocketPermission' objects with the -use of the 'Intersect' method of 'SocketPermission' class. This 'SocketPermission' -Object* is used by the 'GetDate' method to verify the permissions of the calling -method. If the calling method has the requisite permissions the 'GetDate' method -connects to the 'DateServer' and returns the current date that the 'DateServer' -sends. If any exception occurs the 'GetDate' method returns an empty String*. - -Note: This program requires 'DateServer_SocketPermission' program executing. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::Collections; -using namespace System::Security; -using namespace System::Security::Permissions; - -void PrintUsage() -{ - Console::WriteLine( "Usage : DateClient_SocketPermission_Constructor" ); - Console::WriteLine( "\tDateClient_SocketPermission_Constructor " ); - Console::WriteLine( "\tThe ipaddress argument is the ip address of the Date server." ); - Console::WriteLine( "\tThe port argument is the port of the Date server." ); -} - -public ref class DateClient -{ -private: - Socket^ serverSocket; - Encoding^ asciiEncoding; - IPAddress^ serverAddress; - - int serverPort; - -public: - // The constructor takes the address and port of the remote server. - DateClient( IPAddress^ ipAddress, int port ) - { - serverAddress = ipAddress; - serverPort = port; - serverSocket = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - asciiEncoding = Encoding::ASCII; - } - - String^ GetDate() - { -// -// -// -// -// -// - SocketPermission^ socketPermission1 = gcnew SocketPermission( PermissionState::Unrestricted ); - - // Create a 'SocketPermission' Object* for two ip addresses. - SocketPermission^ socketPermission2 = gcnew SocketPermission( PermissionState::None ); - SecurityElement^ securityElement1 = socketPermission2->ToXml(); - // 'SocketPermission' Object* for 'Connect' permission - SecurityElement^ securityElement2 = gcnew SecurityElement( "ConnectAccess" ); - // Format to specify ip address are ## - // First 'SocketPermission' ip-address is '192.168.144.238' for 'All' transport types and - // for 'All'ports for the ip-address. - SecurityElement^ securityElement3 = gcnew SecurityElement( "URI","192.168.144.238#-1#3" ); - // Second 'SocketPermission' ip-address is '192.168.144.240' for 'All' transport types and - // for 'All' ports for the ip-address. - SecurityElement^ securityElement4 = gcnew SecurityElement( "URI","192.168.144.240#-1#3" ); - securityElement2->AddChild( securityElement3 ); - securityElement2->AddChild( securityElement4 ); - securityElement1->AddChild( securityElement2 ); - - // Obtain a 'SocketPermission' Object* using 'FromXml' method. - socketPermission2->FromXml( securityElement1 ); - - Console::WriteLine( "\nDisplays the result of FromXml method : \n" ); - Console::WriteLine( socketPermission2 ); - - // Create another 'SocketPermission' Object* with two ip addresses. - // First 'SocketPermission' ip-address is '192.168.144.238' for 'All' transport types and for 'All' ports for the ip-address. - SocketPermission^ socketPermission3 = - gcnew SocketPermission( NetworkAccess::Connect, - TransportType::All, - "192.168.144.238", - SocketPermission::AllPorts ); - - // Second 'SocketPermission' ip-address is '192.168.144.239' for 'All' transport types and for 'All' ports for the ip-address. - socketPermission3->AddPermission( NetworkAccess::Connect, - TransportType::All, - "192.168.144.239", - SocketPermission::AllPorts ); - - Console::WriteLine( "Displays the result of AddPermission method : \n" ); - Console::WriteLine( socketPermission3 ); - - // Find the intersection between two 'SocketPermission' objects. - socketPermission1 = dynamic_cast(socketPermission2->Intersect( socketPermission3 )); - - Console::WriteLine( "Displays the result of Intersect method :\n " ); - Console::WriteLine( socketPermission1 ); - - // Demand that the calling method have the requsite socket permission. - socketPermission1->Demand(); -// -// -// -// -// -// - // Get the current date from the remote date server. - try - { - int bytesReceived; - array^getByte = gcnew array(100); - serverSocket->Connect( gcnew IPEndPoint( serverAddress,serverPort ) ); - bytesReceived = serverSocket->Receive( getByte, getByte->Length, SocketFlags::None ); - return asciiEncoding->GetString( getByte, 0, bytesReceived ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException raised : {0}", e->Message ); - return ""; - } - } -}; - -// demonstrates the caller of the 'GetDate' method for the 'DateClient' object. -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length != 2 ) - { - PrintUsage(); - return 0; - } - - try - { - DateClient^ myDateClient = gcnew DateClient( IPAddress::Parse( args[ 0 ] ),Int32::Parse( args[ 1 ] ) ); - String^ currentDate = myDateClient->GetDate(); - Console::WriteLine( "The current date and time is : " ); - Console::WriteLine( " {0}", currentDate ); - } - // This exception is thrown by the called method in the context of improper permissions. - catch ( SecurityException^ e ) - { - Console::WriteLine( "\nSecurityException raised : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException raised : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DateClient_SocketPermission_Constructor/CPP/dateserver_socketpermission.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DateClient_SocketPermission_Constructor/CPP/dateserver_socketpermission.cpp deleted file mode 100644 index 1570a8acb54b0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DateClient_SocketPermission_Constructor/CPP/dateserver_socketpermission.cpp +++ /dev/null @@ -1,120 +0,0 @@ -/* -This program demonstrates the 'AcceptList' property of 'SocketPermission' class. - -This program provides a class called 'DateServer' that functions as a server -for a 'DateClient'. A 'DateServer' is a server that provides the current date on -the server in response to a request from a client. The 'DateServer' class -provides a method called 'Create' which waits for client connections and sends -the current date on that socket connection. Within the 'Create' method of -'DateServer' class an instance of 'SocketPermission' is created with the -'SocketPermission(NetworkAccess, TransportType, String*, int)' constructor. -If the calling method has the requisite permissions the 'Create' method waits -for client connections and sends the current date on the socket connection. -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::Security; -using namespace System::Collections; - -void PrintUsage() -{ - Console::WriteLine( "Usage : DateServer_SocketPermission" ); - Console::WriteLine( "\tDateServer_SocketPermission " ); - Console::WriteLine( "\tport is the port on which the DateServer is listening" ); -} - -public ref class DateServer -{ -private: - - // Client connecting to the date server. - Socket^ clientSocket; - Socket^ serverSocket; - Encoding^ asciiEncoding; - -public: - const int serverBacklog; - DateServer() - : serverBacklog( 10 ) - { - asciiEncoding = Encoding::ASCII; - serverSocket = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - } - - - // Return the current date on the client connection. - bool Create( String^ portString ) - { - - // Create another 'SocketPermission' Object* with two ip addresses. - // First 'SocketPermission' ip-address is '192.168.144.238' for 'All' transport types and - // for 'All' ports for the ip-address. - SocketPermission^ socketPermission = gcnew SocketPermission( NetworkAccess::Accept,TransportType::All,"192.168.144.238",SocketPermission::AllPorts ); - - // Second 'SocketPermission' ip-address is '192.168.144.239' for 'All' transport types and - // for 'All' ports for the ip-address. - socketPermission->AddPermission( NetworkAccess::Accept, TransportType::All, "192.168.144.239", SocketPermission::AllPorts ); - Console::WriteLine( "Display result of AcceptList property : " ); - IEnumerator^ enumerator = socketPermission->AcceptList; - while ( enumerator->MoveNext() ) - { - Console::WriteLine( "The hostname is : {0}", dynamic_cast(enumerator->Current)->Hostname ); - Console::WriteLine( "The port is : {0}", dynamic_cast(enumerator->Current)->Port ); - Console::WriteLine( "The Transport type is : {0}", dynamic_cast(enumerator->Current)->Transport ); - } - - - // Demand for the calling method for requisite socket permissions. - socketPermission->Demand(); - serverSocket->Bind( gcnew IPEndPoint( (Dns::Resolve( Dns::GetHostName() )->AddressList)[ 0 ],Int16::Parse( portString ) ) ); - serverSocket->Listen( serverBacklog ); - while ( true ) - { - try - { - clientSocket = serverSocket->Accept(); - array^sendByte = asciiEncoding->GetBytes( DateTime::Now.ToString() ); - clientSocket->Send( sendByte, sendByte->Length, SocketFlags::None ); - clientSocket->Close(); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException raised : {0}", e->Message ); - return false; - } - - } - } - -}; - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length != 1 ) - { - PrintUsage(); - return 0; - } - - DateServer^ server = gcnew DateServer; - try - { - server->Create( args[ 0 ] ); - } - catch ( SecurityException^ securityException ) - { - Console::WriteLine( "SecurityException caught !!!" ); - Console::WriteLine( "Message : {0}", securityException->Message ); - } - catch ( Exception^ exception ) - { - Console::WriteLine( "Exception caught !!!" ); - Console::WriteLine( "Message {0}", exception->Message ); - } - -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DateClient_SocketPermission_ToXml/CPP/dateclient_socketpermission_toxml.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DateClient_SocketPermission_ToXml/CPP/dateclient_socketpermission_toxml.cpp deleted file mode 100644 index 028625e0176e5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DateClient_SocketPermission_ToXml/CPP/dateclient_socketpermission_toxml.cpp +++ /dev/null @@ -1,193 +0,0 @@ -/* -This program demonstrates the 'ToXml' and 'IsUnrestricted' method and 'ConnectList' property of -'SocketPermission' class. - -This program provides a class called 'DateClient' that functions as a client -for a 'DateServer'. A 'DateServer' is a server that provides the current date on -the server in response to a request from a client. The 'DateClient' class -provides a method called 'GetDate' which returns the current date on the server. -The 'GetDate' is the method that shows the use of 'SocketPermission' class. An -instance of 'SocketPermission' is obtained using the 'FromXml' method. Another -instance of 'SocketPermission' is created with the 'SocketPermission(NetworkAccess, -TransportType, String*, int)' constructor. A third 'SocketPermission' Object* is -formed from the union of the above two 'SocketPermission' objects with the use of the -'Union' method of 'SocketPermission' class . This 'SocketPermission' Object* is used by -the 'GetDate' method to verify the permissions of the calling method. If the calling -method has the requisite permissions the 'GetDate' method connects to the 'DateServer' -and returns the current date that the 'DateServer' sends. If any exception occurs -the 'GetDate' method returns an empty String*. - -Note: This program requires 'DateServer_SocketPermission' program executing. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::Collections; -using namespace System::Security; -using namespace System::Security::Permissions; - -void PrintUsage() -{ - Console::WriteLine( "Usage : DateClient_SocketPermission_ToXml" ); - Console::WriteLine( "\tDateClient_SocketPermission_ToXml " ); - Console::WriteLine( "\tThe ipaddress argument is the ip address of the Date server." ); - Console::WriteLine( "\tThe port argument is the port of the Date server." ); -} - -public ref class DateClient -{ -private: - Socket^ serverSocket; - Encoding^ asciiEncoding; - IPAddress^ serverAddress; - int serverPort; - - // The constructor takes the address and port of the remote server. -public: - DateClient( IPAddress^ serverIpAddress, int port ) - { - serverAddress = serverIpAddress; - serverPort = port; - serverSocket = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - asciiEncoding = Encoding::ASCII; - } - -private: - - // Print a security element and all its children, in a depth-first manner. - void PrintSecurityElement( SecurityElement^ securityElementObj, int depth ) - { - Console::WriteLine( "Depth : {0}", depth ); - Console::WriteLine( "Tag : {0}", securityElementObj->Tag ); - Console::WriteLine( "Text : {0}", securityElementObj->Text ); - if ( securityElementObj->Children != nullptr ) - Console::WriteLine( "Children : {0}", securityElementObj->Children->Count ); - - if ( securityElementObj->Attributes != nullptr ) - { - IEnumerator^ attributeEnumerator = securityElementObj->Attributes->GetEnumerator(); - while ( attributeEnumerator->MoveNext() ) - Console::WriteLine( "Attribute - \" {0}\" , Value - \" {1}\"", (dynamic_cast(attributeEnumerator))->Key, (dynamic_cast(attributeEnumerator))->Value ); - } - - Console::WriteLine( "" ); - if ( securityElementObj->Children != nullptr ) - { - depth += 1; - for ( int i = 0; i < securityElementObj->Children->Count; i++ ) - PrintSecurityElement( dynamic_cast(securityElementObj->Children[ i ]), depth ); - } - } - - -public: - String^ GetDate() - { - // - // - // - SocketPermission^ socketPermission1 = gcnew SocketPermission( PermissionState::Unrestricted ); - - // Create a 'SocketPermission' Object* for two ip addresses. - SocketPermission^ socketPermission2 = gcnew SocketPermission( PermissionState::None ); - SecurityElement^ securityElement4 = socketPermission2->ToXml(); - - // 'SocketPermission' Object* for 'Connect' permission - SecurityElement^ securityElement1 = gcnew SecurityElement( "ConnectAccess" ); - - // Format to specify ip address are ## - // First 'SocketPermission' ip-address is '192.168.144.238' for 'All' transport types and for 'All' ports for the ip-address. - SecurityElement^ securityElement2 = gcnew SecurityElement( "URI","192.168.144.238#-1#3" ); - - // Second 'SocketPermission' ip-address is '192.168.144.240' for 'All' transport types and for 'All' ports for the ip-address. - SecurityElement^ securityElement3 = gcnew SecurityElement( "URI","192.168.144.240#-1#3" ); - securityElement1->AddChild( securityElement2 ); - securityElement1->AddChild( securityElement3 ); - securityElement4->AddChild( securityElement1 ); - - // Obtain a 'SocketPermission' Object* using 'FromXml' method. - socketPermission2->FromXml( securityElement4 ); - - // Create another 'SocketPermission' Object* with two ip addresses. - // First 'SocketPermission' ip-address is '192.168.144.238' for 'All' transport types and for 'All' ports for the ip-address. - SocketPermission^ socketPermission3 = gcnew SocketPermission( NetworkAccess::Connect,TransportType::All,"192.168.144.238",SocketPermission::AllPorts ); - - // Second 'SocketPermission' ip-address is '192.168.144.239' for 'All' transport types and for 'All' ports for the ip-address. - socketPermission3->AddPermission( NetworkAccess::Connect, TransportType::All, "192.168.144.239", SocketPermission::AllPorts ); - Console::WriteLine( "\nChecks the Socket permissions using IsUnrestricted method : " ); - if ( socketPermission1->IsUnrestricted() ) - Console::WriteLine( "Socket permission is unrestricted" ); - else - Console::WriteLine( "Socket permission is restricted" ); - - Console::WriteLine(); - Console::WriteLine( "Display result of ConnectList property : \n" ); - IEnumerator^ enumerator = socketPermission3->ConnectList; - while ( enumerator->MoveNext() ) - { - Console::WriteLine( "The hostname is : {0}", dynamic_cast(enumerator->Current)->Hostname ); - Console::WriteLine( "The port is : {0}", dynamic_cast(enumerator->Current)->Port ); - Console::WriteLine( "The Transport type is : {0}", dynamic_cast(enumerator->Current)->Transport ); - } - - Console::WriteLine( "" ); - Console::WriteLine( "Display Security Elements :\n " ); - PrintSecurityElement( socketPermission2->ToXml(), 0 ); - - // Get a 'SocketPermission' Object* which is a union of two other 'SocketPermission' objects. - socketPermission1 = dynamic_cast(socketPermission3->Union( socketPermission2 )); - - // Demand that the calling method have the socket permission. - socketPermission1->Demand(); - // - // - // - - // Get the current date from the remote date server. - try - { - int bytesReceived; - array^getByte = gcnew array(100); - serverSocket->Connect( gcnew IPEndPoint( serverAddress,serverPort ) ); - bytesReceived = serverSocket->Receive( getByte, getByte->Length, static_cast(0) ); - return asciiEncoding->GetString( getByte, 0, bytesReceived ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException raised : {0}", e->Message ); - return ""; - } - } -}; - -// This class is used to demonstrate the caller of the 'GetDate' method for the 'DateClient' Object*. -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length != 2 ) - { - PrintUsage(); - return 0; - } - - try - { - DateClient^ myDateClient = gcnew DateClient( IPAddress::Parse( args[ 0 ] ),Int32::Parse( args[ 1 ] ) ); - String^ currentDate = myDateClient->GetDate(); - Console::WriteLine( "The current date and time is : " ); - Console::WriteLine( " {0}", currentDate ); - } - // This exception is thrown by the called method in the context of improper permissions. - catch ( SecurityException^ e ) - { - Console::WriteLine( "\nSecurityException raised : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException raised : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DateClient_SocketPermission_ToXml/CPP/dateserver_socketpermission.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DateClient_SocketPermission_ToXml/CPP/dateserver_socketpermission.cpp deleted file mode 100644 index fd182f2936116..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DateClient_SocketPermission_ToXml/CPP/dateserver_socketpermission.cpp +++ /dev/null @@ -1,117 +0,0 @@ -/* -This program demonstrates the 'AcceptList' property of 'SocketPermission' class. - -This program provides a class called 'DateServer' that functions as a server -for a 'DateClient'. A 'DateServer' is a server that provides the current date on -the server in response to a request from a client. The 'DateServer' class -provides a method called 'Create' which waits for client connections and sends -the current date on that socket connection. Within the 'Create' method of -'DateServer' class an instance of 'SocketPermission' is created with the -'SocketPermission(NetworkAccess, TransportType, String*, int)' constructor. -If the calling method has the requisite permissions the 'Create' method waits -for client connections and sends the current date on the socket connection. -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::Security; -using namespace System::Collections; - -void PrintUsage() -{ - Console::WriteLine( "Usage : DateServer_SocketPermission" ); - Console::WriteLine( "\tDateServer_SocketPermission " ); - Console::WriteLine( "\tport is the port on which the DateServer is listening" ); -} - -public ref class DateServer -{ -private: - - // Client connecting to the date server. - Socket^ clientSocket; - Socket^ serverSocket; - Encoding^ asciiEncoding; - -public: - int serverBacklog; - DateServer() - { - asciiEncoding = Encoding::ASCII; - serverSocket = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - serverBacklog = 10; - } - - - // Return the current date on the client connection. - bool Create( String^ portString ) - { - - // Create another 'SocketPermission' Object* with two ip addresses. - // First 'SocketPermission' ip-address is '192.168.144.238' for 'All' transport types and - // for 'All' ports for the ip-address. - SocketPermission^ socketPermission = gcnew SocketPermission( NetworkAccess::Accept,TransportType::All,"192.168.144.238",SocketPermission::AllPorts ); - - // Second 'SocketPermission' ip-address is '192.168.144.239' for 'All' transport types and - // for 'All' ports for the ip-address. - socketPermission->AddPermission( NetworkAccess::Accept, TransportType::All, "192.168.144.239", SocketPermission::AllPorts ); - Console::WriteLine( "Display result of AcceptList property : " ); - IEnumerator^ enumerator = socketPermission->AcceptList; - while ( enumerator->MoveNext() ) - { - Console::WriteLine( "The hostname is : {0}", dynamic_cast(enumerator->Current)->Hostname ); - Console::WriteLine( "The port is : {0}", dynamic_cast(enumerator->Current)->Port ); - Console::WriteLine( "The Transport type is : {0}", dynamic_cast(enumerator->Current)->Transport ); - } - - // Demand for the calling method for requisite socket permissions. - socketPermission->Demand(); - serverSocket->Bind( gcnew IPEndPoint( (Dns::Resolve( Dns::GetHostName() )->AddressList)[ 0 ],Int16::Parse( portString ) ) ); - serverSocket->Listen( serverBacklog ); - while ( true ) - { - try - { - clientSocket = serverSocket->Accept(); - array^sendByte = asciiEncoding->GetBytes( DateTime::Now.ToString() ); - clientSocket->Send( sendByte, sendByte->Length, SocketFlags::None ); - clientSocket->Close(); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException raised : {0}", e->Message ); - return false; - } - - } - } -}; - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length != 1 ) - { - PrintUsage(); - return 0; - } - - DateServer^ server = gcnew DateServer; - try - { - server->Create( args[ 0 ] ); - } - catch ( SecurityException^ securityException ) - { - Console::WriteLine( "SecurityException caught !!!" ); - Console::WriteLine( "Message : {0}", securityException->Message ); - } - catch ( Exception^ exception ) - { - Console::WriteLine( "Exception caught !!!" ); - Console::WriteLine( "Message {0}", exception->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DescriptionNamespaceSample1/CPP/MathService_input_cpp.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/DescriptionNamespaceSample1/CPP/MathService_input_cpp.wsdl deleted file mode 100644 index 556e7526dd45d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DescriptionNamespaceSample1/CPP/MathService_input_cpp.wsdl +++ /dev/null @@ -1,491 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DescriptionNamespaceSample1/CPP/descriptionnamespacesample1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DescriptionNamespaceSample1/CPP/descriptionnamespacesample1.cpp deleted file mode 100644 index 3dbecd0e92aec..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DescriptionNamespaceSample1/CPP/descriptionnamespacesample1.cpp +++ /dev/null @@ -1,213 +0,0 @@ -// System.Web.Services.Description.InputBinding.InputBinding(); -// System.Web.Services.Description.InputBinding.Extensions -// System.Web.Services.Description.InputBinding -// System.Web.Services.Description.Message.Message(); -// System.Web.Services.Description.Message.Name; -// System.Web.Services.Description.Message.Parts; -// System.Web.Services.Description.MessageCollection.Add; -// System.Web.Services.Description.MessageCollection.Insert; -// System.Web.Services.Description.MessageCollection; -// System.Web.Services.Description.MessagePart.MessagePart(); -// System.Web.Services.Description.MessagePart.Element; -// System.Web.Services.Description.MessagePart.Name; -// System.Web.Services.Description.MessagePart; -// System.Web.Services.Description.MessagePartCollection.Add; -// System.Web.Services.Description.MessagePartCollection.Insert; - -/* - The following program takes input a WSDL file 'MathService_input.wsdl' with all information related to SOAP protocol - removed from it.In a way it tries to simulate a scenario wherein a service initially did not support a protocol, however later - on happen to support it. - In this example the WSDL file is modified to insert a new Binding for SOAP. The binding is populated based on - WSDL document structure defined in WSDL specification. The ServiceDescription instance is loaded with values - for 'Messages', 'PortTypes','Bindings' and 'Port'.The instance is then written to an external file 'MathService_new.wsdl'. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -ref class MyClass1 -{ - // - // Creates a Message with name = messageName having one MessagePart - // with name = partName. -public: - static Message^ CreateMessage( String^ messageName, String^ partName, String^ element, String^ targetNamespace ) - { - // - // - Message^ myMessage = gcnew Message; - myMessage->Name = messageName; - // - // - // - // - // - MessagePart^ myMessagePart = gcnew MessagePart; - myMessagePart->Name = partName; - myMessagePart->Element = gcnew XmlQualifiedName( element,targetNamespace ); - myMessage->Parts->Add( myMessagePart ); - // - // - // - // - // - return myMessage; - } - // - - // - // Used to create OperationBinding instances within 'Binding'. - static OperationBinding^ CreateOperationBinding( String^ operation, String^ targetNamespace ) - { - // Create OperationBinding for operation. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = operation; - - // - // - // Create InputBinding for operation. - InputBinding^ myInputBinding = gcnew InputBinding; - SoapBodyBinding^ mySoapBodyBinding = gcnew SoapBodyBinding; - mySoapBodyBinding->Use = SoapBindingUse::Literal; - myInputBinding->Extensions->Add( mySoapBodyBinding ); - - // - // - // Create OutputBinding for operation. - OutputBinding^ myOutputBinding = gcnew OutputBinding; - myOutputBinding->Extensions->Add( mySoapBodyBinding ); - - // Add InputBinding and OutputBinding to OperationBinding. - myOperationBinding->Input = myInputBinding; - myOperationBinding->Output = myOutputBinding; - - // Create an extensibility element for SoapOperationBinding. - SoapOperationBinding^ mySoapOperationBinding = gcnew SoapOperationBinding; - mySoapOperationBinding->Style = SoapBindingStyle::Document; - mySoapOperationBinding->SoapAction = String::Concat( targetNamespace, operation ); - - // Add the extensibility element SoapOperationBinding to OperationBinding. - myOperationBinding->Extensions->Add( mySoapOperationBinding ); - return myOperationBinding; - } - // - - // Used to create Operations under PortType. - static Operation^ CreateOperation( String^ operationName, String^ inputMessage, String^ outputMessage, String^ targetNamespace ) - { - Operation^ myOperation = gcnew Operation; - myOperation->Name = operationName; - OperationMessage^ input = dynamic_cast(gcnew OperationInput); - input->Message = gcnew XmlQualifiedName( inputMessage,targetNamespace ); - OperationMessage^ output = dynamic_cast(gcnew OperationOutput); - output->Message = gcnew XmlQualifiedName( outputMessage,targetNamespace ); - myOperation->Messages->Add( input ); - myOperation->Messages->Add( output ); - return myOperation; - } - - static void main() - { - // - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_input_cpp.wsdl" ); - // Create SOAP messages. - // - Message^ myMessage = gcnew Message; - myMessage->Name = "AddSoapOut"; - // - MessagePart^ myMessagePart = gcnew MessagePart; - myMessagePart->Name = "parameters"; - myMessagePart->Element = gcnew XmlQualifiedName( "AddResponse",myServiceDescription->TargetNamespace ); - myMessage->Parts->Add( myMessagePart ); - // - myServiceDescription->Messages->Add( myMessage ); - // - // - // - Message^ myMessage1 = gcnew Message; - myMessage1->Name = "AddSoapIn"; - // - MessagePart^ myMessagePart1 = gcnew MessagePart; - myMessagePart1->Name = "parameters"; - myMessagePart1->Element = gcnew XmlQualifiedName( "Add",myServiceDescription->TargetNamespace ); - myMessage1->Parts->Insert( 0, myMessagePart1 ); - // - myServiceDescription->Messages->Insert( 16, myMessage1 ); - // - myServiceDescription->Messages->Add( CreateMessage( "SubtractSoapIn", "parameters", "Subtract", myServiceDescription->TargetNamespace ) ); - myServiceDescription->Messages->Add( CreateMessage( "SubtractSoapOut", "parameters", "SubtractResponse", myServiceDescription->TargetNamespace ) ); - myServiceDescription->Messages->Add( CreateMessage( "MultiplySoapIn", "parameters", "Multiply", myServiceDescription->TargetNamespace ) ); - myServiceDescription->Messages->Add( CreateMessage( "MultiplySoapOut", "parameters", "MultiplyResponse", myServiceDescription->TargetNamespace ) ); - myServiceDescription->Messages->Add( CreateMessage( "DivideSoapIn", "parameters", "Divide", myServiceDescription->TargetNamespace ) ); - myServiceDescription->Messages->Add( CreateMessage( "DivideSoapOut", "parameters", "DivideResponse", myServiceDescription->TargetNamespace ) ); - - // Create a new PortType. - PortType^ soapPortType = gcnew PortType; - soapPortType->Name = "MathServiceSoap"; - soapPortType->Operations->Add( CreateOperation( "Add", "AddSoapIn", "AddSoapOut", myServiceDescription->TargetNamespace ) ); - soapPortType->Operations->Add( CreateOperation( "Subtract", "SubtractSoapIn", "SubtractSoapOut", myServiceDescription->TargetNamespace ) ); - soapPortType->Operations->Add( CreateOperation( "Multiply", "MultiplySoapIn", "MultiplySoapOut", myServiceDescription->TargetNamespace ) ); - soapPortType->Operations->Add( CreateOperation( "Divide", "DivideSoapIn", "DivideSoapOut", myServiceDescription->TargetNamespace ) ); - myServiceDescription->PortTypes->Add( soapPortType ); - - // Create a new Binding for the SOAP protocol. - Binding^ myBinding = gcnew Binding; - myBinding->Name = String::Concat( myServiceDescription->Services[ 0 ]->Name, "Soap" ); - - // Pass the name of the existing PortType MathServiceSoap and the - // Xml TargetNamespace attribute of the Descriptions tag. - myBinding->Type = gcnew XmlQualifiedName( "MathServiceSoap",myServiceDescription->TargetNamespace ); - - // Create a SOAP extensibility element. - SoapBinding^ mySoapBinding = gcnew SoapBinding; - mySoapBinding->Transport = "http://schemas.xmlsoap.org/soap/http"; - mySoapBinding->Style = SoapBindingStyle::Document; - - // Add tag soap:binding as an extensibility element. - myBinding->Extensions->Add( mySoapBinding ); - - // Create OperationBindings for each of the operations defined - // in the .asmx file. - OperationBinding^ addOperationBinding = CreateOperationBinding( "Add", myServiceDescription->TargetNamespace ); - myBinding->Operations->Add( addOperationBinding ); - OperationBinding^ subtractOperationBinding = CreateOperationBinding( "Subtract", myServiceDescription->TargetNamespace ); - myBinding->Operations->Add( subtractOperationBinding ); - OperationBinding^ multiplyOperationBinding = CreateOperationBinding( "Multiply", myServiceDescription->TargetNamespace ); - myBinding->Operations->Add( multiplyOperationBinding ); - OperationBinding^ divideOperationBinding = CreateOperationBinding( "Divide", myServiceDescription->TargetNamespace ); - myBinding->Operations->Add( divideOperationBinding ); - myServiceDescription->Bindings->Insert( 0, myBinding ); - Console::WriteLine( "\nTarget namespace of the service description to which the binding was added is: {0}", myServiceDescription->Bindings[ 0 ]->ServiceDescription->TargetNamespace ); - - // Create a Port. - Port^ soapPort = gcnew Port; - soapPort->Name = "MathServiceSoap"; - soapPort->Binding = gcnew XmlQualifiedName( myBinding->Name,myServiceDescription->TargetNamespace ); - - // Create a SoapAddress extensibility element to add to the port. - SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding; - mySoapAddressBinding->Location = "http://localhost/MathService.cs.asmx"; - soapPort->Extensions->Add( mySoapAddressBinding ); - - // Add the port to the MathService, which is the first service in - // the service collection. - myServiceDescription->Services[ 0 ]->Ports->Add( soapPort ); - - // Save the ServiceDescription to an external file. - myServiceDescription->Write( "MathService_new.wsdl" ); - Console::WriteLine( "\nSuccessfully added bindings for SOAP protocol and saved results in the file MathService_new.wsdl" ); - Console::WriteLine( "\n This file should be passed to the WSDL tool as input to generate the proxy" ); - } -}; - -int main() -{ - MyClass1::main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientDocumentCollection2/CPP/discoveryclientdocumentcollection.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientDocumentCollection2/CPP/discoveryclientdocumentcollection.cpp deleted file mode 100644 index d293d82792a48..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientDocumentCollection2/CPP/discoveryclientdocumentcollection.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* -System::Web::Services::Discovery.DiscoveryClientDocumentCollection - -The following example demonstrates the class 'DiscoveryClientDocumentCollection'. -A sample discovery document is read and the 'Keys' and 'Values' properties -are displayed. -*/ - -// -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Collections; -using namespace System::Web::Services::Discovery; - -int main() -{ - DiscoveryClientProtocol^ myDiscoveryClientProtocol = gcnew DiscoveryClientProtocol; - myDiscoveryClientProtocol->Credentials = CredentialCache::DefaultCredentials; - - // 'dataservice.disco' is a sample discovery document. - String^ myStringUrl = "http://localhost/dataservice.disco"; - - // 'Discover' method is called to populate the 'Documents' property. - DiscoveryDocument^ myDiscoveryDocument = - myDiscoveryClientProtocol->Discover( myStringUrl ); - - // An instance of the 'DiscoveryClientDocumentCollection' class is created. - DiscoveryClientDocumentCollection^ myDiscoveryClientDocumentCollection = - myDiscoveryClientProtocol->Documents; - - // 'Keys' in the collection are retrieved. - ICollection^ myCollection = myDiscoveryClientDocumentCollection->Keys; - array^myObjectCollection = - gcnew array(myDiscoveryClientDocumentCollection->Count); - myCollection->CopyTo( myObjectCollection, 0 ); - Console::WriteLine( "The discovery documents in the collection are :" ); - for ( int iIndex = 0; iIndex < myObjectCollection->Length; iIndex++ ) - { - Console::WriteLine( myObjectCollection[ iIndex ] ); - - } - Console::WriteLine( "" ); - - // 'Values' in the collection are retrieved. - ICollection^ myCollection1 = myDiscoveryClientDocumentCollection->Values; - array^myObjectCollection1 = - gcnew array(myDiscoveryClientDocumentCollection->Count); - myCollection1->CopyTo( myObjectCollection1, 0 ); - Console::WriteLine( "The objects in the collection are :" ); - for ( int iIndex = 0; iIndex < myObjectCollection1->Length; iIndex++ ) - { - Console::WriteLine( myObjectCollection1[ iIndex ] ); - - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientDocumentCollection_Keys/CPP/discoveryclientdocumentcollection_keys.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientDocumentCollection_Keys/CPP/discoveryclientdocumentcollection_keys.cpp deleted file mode 100644 index f41808e363c92..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientDocumentCollection_Keys/CPP/discoveryclientdocumentcollection_keys.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* -System::Web::Services::Discovery.DiscoveryClientDocumentCollection::Keys -System::Web::Services::Discovery.DiscoveryClientDocumentCollection::Values -System::Web::Services::Discovery.DiscoveryClientDocumentCollection::Contains(String) - -The following example demonstrates the 'Keys', 'Values' properties -and the 'Contains' method. The 'Keys' property returns the names -the discoverydocuments in the 'DiscoveryClientDocumentCollection' and -the 'Values' property returns the type of objects in the -'DiscoveryClientDocumentCollection'. A sample discovery document is read -and the properties 'Keys' and 'Values' and the method 'Contains' are -displayed. -*/ - -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Collections; -using namespace System::Web::Services::Discovery; - -int main() -{ - DiscoveryClientProtocol^ myDiscoveryClientProtocol = gcnew DiscoveryClientProtocol; - myDiscoveryClientProtocol->Credentials = CredentialCache::DefaultCredentials; - - // 'dataservice.disco' is a sample discovery document. - String^ myStringUrl = "http://localhost/dataservice.disco"; - - // 'Discover' method is called to populate the 'Documents' property. - myDiscoveryClientProtocol->Discover( myStringUrl ); - DiscoveryClientDocumentCollection^ myDiscoveryClientDocumentCollection = - myDiscoveryClientProtocol->Documents; - - // 'Keys' in the collection are retrieved. - // - ICollection^ myCollection = myDiscoveryClientDocumentCollection->Keys; - array^myObjectCollection = - gcnew array(myDiscoveryClientDocumentCollection->Count); - myCollection->CopyTo( myObjectCollection, 0 ); - Console::WriteLine( "The discovery documents in the collection are :" ); - for ( int iIndex = 0; iIndex < myObjectCollection->Length; iIndex++ ) - Console::WriteLine( myObjectCollection[ iIndex ] ); - // - - Console::WriteLine( "" ); - - // - // 'Values' in the collection are retrieved. - ICollection^ myCollection1 = myDiscoveryClientDocumentCollection->Values; - array^myObjectCollection1 = - gcnew array(myDiscoveryClientDocumentCollection->Count); - myCollection1->CopyTo( myObjectCollection1, 0 ); - Console::WriteLine( "The objects in the collection are :" ); - for ( int iIndex = 0; iIndex < myObjectCollection1->Length; iIndex++ ) - Console::WriteLine( myObjectCollection1[ iIndex ] ); - // - - Console::WriteLine( "" ); - - // - bool myContains = myDiscoveryClientDocumentCollection->Contains( myStringUrl ); - if ( myContains ) - Console::WriteLine( "The discovery document {0} is present in the Collection", myStringUrl ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientDocumentCollection_ctor/CPP/discoveryclientdocumentcollection_ctor.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientDocumentCollection_ctor/CPP/discoveryclientdocumentcollection_ctor.cpp deleted file mode 100644 index e5595a2be7ad7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientDocumentCollection_ctor/CPP/discoveryclientdocumentcollection_ctor.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/* -System::Web::Services::Discovery.DiscoveryClientDocumentCollection::DiscoveryClientDocumentCollection -System::Web::Services::Discovery.DiscoveryClientDocumentCollection->Add -System::Web::Services::Discovery.DiscoveryClientDocumentCollection::Remove -System::Web::Services::Discovery.DiscoveryClientDocumentCollection::Item - -The following example demonstrates the constructor, the 'Add' and -'Remove' methods and the 'Item' property. The method 'Add', adds a -discovery document Object* to the DiscoveryClientDocumentCollection. -The method 'Remove', removes a discovery document Object* from the -DiscoveryClientDocumentCollection. The Item property is used to -retrieve an Object* in the DiscoveryClientDocumentCollection. A sample -discovery document is read and the methods 'Add', 'Remove' and the -property 'Item' are applied on the sample. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Collections; -using namespace System::Web::Services::Discovery; - -int main() -{ - // - // - // - DiscoveryClientDocumentCollection^ myDiscoveryClientDocumentCollection = gcnew DiscoveryClientDocumentCollection; - // - - DiscoveryDocument^ myDiscoveryDocument = gcnew DiscoveryDocument; - String^ myStringUrl = "http://www.contoso.com/service.disco"; - String^ myStringUrl1 = "http://www.contoso.com/service1.disco"; - myDiscoveryClientDocumentCollection->Add( myStringUrl, myDiscoveryDocument ); - myDiscoveryClientDocumentCollection->Add( myStringUrl1, myDiscoveryDocument ); - // - - myDiscoveryClientDocumentCollection->Remove( myStringUrl1 ); - // - - // - Object^ myObject = myDiscoveryClientDocumentCollection[ myStringUrl ]; - Console::WriteLine( "Object representing the Url : {0}", myObject ); - // - - Console::WriteLine( "" ); - - // 'Keys' in the collection are retrieved. - ICollection^ myCollection = myDiscoveryClientDocumentCollection->Keys; - array^myObjectCollection = gcnew array(myDiscoveryClientDocumentCollection->Count); - myCollection->CopyTo( myObjectCollection, 0 ); - Console::WriteLine( "The discovery documents in the collection are :" ); - for ( int iIndex = 0; iIndex < myObjectCollection->Length; iIndex++ ) - { - Console::WriteLine( myObjectCollection[ iIndex ] ); - } - Console::WriteLine( "" ); - - // 'Values' in the collection are retrieved. - ICollection^ myCollection1 = myDiscoveryClientDocumentCollection->Values; - array^myObjectCollection1 = gcnew array(myDiscoveryClientDocumentCollection->Count); - myCollection1->CopyTo( myObjectCollection1, 0 ); - Console::WriteLine( "The objects in the collection are :" ); - for ( int iIndex = 0; iIndex < myObjectCollection1->Length; iIndex++ ) - Console::WriteLine( myObjectCollection1[ iIndex ] ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientProtocol_AdditionalInformation/CPP/discoveryclientprotocol_additionalinformation.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientProtocol_AdditionalInformation/CPP/discoveryclientprotocol_additionalinformation.cpp deleted file mode 100644 index 4f8e4cdbea9fe..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientProtocol_AdditionalInformation/CPP/discoveryclientprotocol_additionalinformation.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// System::Web::Services::Discovery.DiscoveryClientProtocol->AdditionalInformation - -/* The following example demonstrates 'AdditionalInformation' of DiscoveryClientProtocol -class. -In the example 'SoapBinding' informations is added to a 'DiscoveryClientProtocol' using -'AdditionalInformation' collection. The soap binding added is retrived back and SoapBinding -address is displayed. The resultant document is written back. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::Xml; -using namespace System::Web::Services::Discovery; - -int main() -{ - try - { - // dataservice.disco is a sample discovery document. - String^ myStringUrl = "http://localhost/dataservice.disco"; - - // Call the Discover method to populate the Documents property. - DiscoveryClientProtocol^ myDiscoveryClientProtocol = gcnew DiscoveryClientProtocol; - myDiscoveryClientProtocol->Credentials = CredentialCache::DefaultCredentials; - myDiscoveryClientProtocol->Discover( myStringUrl ); - SoapBinding^ mySoapBinding = gcnew SoapBinding; - mySoapBinding->Address = "http://schemas.xmlsoap.org/disco/scl/"; - mySoapBinding->Binding = gcnew XmlQualifiedName( "String*","http://www.w3.org/2001/XMLSchema" ); - myDiscoveryClientProtocol->AdditionalInformation->Add( mySoapBinding ); - - // Write the information back. - myDiscoveryClientProtocol->WriteAll( "MyDirectory", "results.discomap" ); - System::Collections::IList^ myIList = myDiscoveryClientProtocol->AdditionalInformation; - mySoapBinding = nullptr; - mySoapBinding = dynamic_cast(myIList[ 0 ]); - Console::WriteLine( "The address of the SoapBinding associated with " - "AdditionalInformation is: {0}", mySoapBinding->Address ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientProtocol_Download/CPP/discoveryclientprotocol_download.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientProtocol_Download/CPP/discoveryclientprotocol_download.cpp deleted file mode 100644 index 13d35e01f3089..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientProtocol_Download/CPP/discoveryclientprotocol_download.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/* -System::Web::Services::Discovery.DiscoveryClientProtocol::DiscoveryClientProtocol -System::Web::Services::Discovery.DiscoveryClientProtocol::Download(String)* - -The following example demonstrates the 'constructor' and the -method 'Download' of the 'DiscoveryClientProtocol' class. The -'Download' method downloads a discovery document into a stream. -A sample discovery document is read and the method 'download' -is applied on it. -*/ - -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Web::Services::Discovery; - -int main() -{ -// -// - // Call the constructor of the DiscoveryClientProtocol class. - DiscoveryClientProtocol^ myDiscoveryClientProtocol = - gcnew DiscoveryClientProtocol; - myDiscoveryClientProtocol->Credentials = CredentialCache::DefaultCredentials; - // 'dataservice.disco' is a sample discovery document. - String^ myStringUrl = "http://localhost:80/dataservice.disco"; - - Stream^ myStream = myDiscoveryClientProtocol->Download( myStringUrl ); - - Console::WriteLine( "Size of the discovery document downloaded" ); - Console::WriteLine( "is : {0} bytes", myStream->Length ); - myStream->Close(); -// -// -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientProtocol_Download2/CPP/discoveryclientprotocol_download.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientProtocol_Download2/CPP/discoveryclientprotocol_download.cpp deleted file mode 100644 index 03531eb4e6d3d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientProtocol_Download2/CPP/discoveryclientprotocol_download.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// System.web.Services.Discovery.DiscoveryClientProtocol.Download(string,string) - -/* -The following example demonstrates the usage of the 'Download' method -of the class 'DiscoveryClientProtocol'. The input to the program is -a discovery file 'MathService_cs.vsdisco'. It generates a 'Stream' -instance of the discovery file 'MathService_cs.vsdisco' from the -'Download' method of 'DiscoveryClientPrototocol' and prints out -the 'contentType' and length in bytes of the discoverydocument. -*/ - -#using -#using - -using namespace System; -using namespace System::Web::Services::Discovery; -using namespace System::Collections; -using namespace System::IO; - -int main() -{ -// - String^ myDiscoFile = "http://localhost/MathService_cs.vsdisco"; - String^ myEncoding = ""; - DiscoveryClientProtocol^ myDiscoveryClientProtocol = - gcnew DiscoveryClientProtocol; - - Stream^ myStream = myDiscoveryClientProtocol->Download( - myDiscoFile, myEncoding ); - Console::WriteLine( "The length of the stream in bytes: {0}", - myStream->Length ); - Console::WriteLine( "The MIME encoding of the downloaded " + - "discovery document: {0}", myEncoding ); - myStream->Close(); -// -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientProtocol_Errors/CPP/discoveryclientprotocol_errors.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientProtocol_Errors/CPP/discoveryclientprotocol_errors.cpp deleted file mode 100644 index 8f7d7442435ec..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientProtocol_Errors/CPP/discoveryclientprotocol_errors.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// System.web.Services.Discovery.DiscoveryClientProtocol.Errors - -/* -The following example demonstrates the usage of the 'Errors' property -of the class 'DiscoveryClientProtocol'. The input to the program is -a discovery file 'MathService_cs.vsdisco', which holds reference -related to 'MathService_cs.asmx' web service. The program is -excecuted first time with existence of the file -'MathService_cs.asmx' in the location as specified in the discovery -file. The file 'MathService_cs.asmx' is removed from the referred -location in a way to simulate a scenario wherein the file related -to web service is missing, and the program is excecuted the second time -to show the exception occuring. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Discovery; -using namespace System::Collections; - -int main() -{ - -// - String^ myDiscoFile = "http://localhost/MathService_cs.vsdisco"; - String^ myUrlKey = "http://localhost/MathService_cs.asmx?wsdl"; - DiscoveryClientProtocol^ myDiscoveryClientProtocol = gcnew DiscoveryClientProtocol; - - // Get the discovery document. - DiscoveryDocument^ myDiscoveryDocument = myDiscoveryClientProtocol->Discover( myDiscoFile ); - IEnumerator^ myEnumerator = myDiscoveryDocument->References->GetEnumerator(); - while ( myEnumerator->MoveNext() ) - { - ContractReference^ myContractReference = dynamic_cast(myEnumerator->Current); - - // Get the DiscoveryClientProtocol from the ContractReference. - myDiscoveryClientProtocol = myContractReference->ClientProtocol; - myDiscoveryClientProtocol->ResolveAll(); - DiscoveryExceptionDictionary^ myExceptionDictionary = myDiscoveryClientProtocol->Errors; - if ( myExceptionDictionary->Contains( myUrlKey ) ) - { - Console::WriteLine( "System generated exceptions." ); - - // Get the exception from the DiscoveryExceptionDictionary. - Exception^ myException = myExceptionDictionary[ myUrlKey ]; - Console::WriteLine( " Source : {0}", myException->Source ); - Console::WriteLine( " Exception : {0}", myException->Message ); - } - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientReferenceCollection/CPP/discoveryclientreferencecollection.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientReferenceCollection/CPP/discoveryclientreferencecollection.cpp deleted file mode 100644 index 256a95000a9d0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientReferenceCollection/CPP/discoveryclientreferencecollection.cpp +++ /dev/null @@ -1,63 +0,0 @@ -// System::Web::Services::Discovery.DiscoveryClientReferenceCollection - -/* -The following example demonstrates the class -'DiscoveryClientReferenceCollection'. A sample discovery document -is read and the 'Keys' and 'Values' properties are displayed. A -String* containing the URL of a discovery document is passed as -an argument to 'Contains' method of the instance of the class. -*/ - -// -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::Collections; -using namespace System::Web::Services::Discovery; - -int main() -{ - DiscoveryClientProtocol^ myDiscoveryClientProtocol = gcnew DiscoveryClientProtocol; - myDiscoveryClientProtocol->Credentials = CredentialCache::DefaultCredentials; - - // 'dataservice.vsdisco' is a sample discovery document. - String^ myStringUrl = "http://localhost/dataservice.vsdisco"; - - // Call the Discover method to populate the References property. - DiscoveryDocument^ myDiscoveryDocument = myDiscoveryClientProtocol->Discover( myStringUrl ); - - // Resolve all references found in the discovery document. - myDiscoveryClientProtocol->ResolveAll(); - DiscoveryClientReferenceCollection^ myDiscoveryClientReferenceCollection = myDiscoveryClientProtocol->References; - - // Retrieve the keys from the collection. - ICollection^ myCollection = myDiscoveryClientReferenceCollection->Keys; - array^myObjectCollection = gcnew array(myDiscoveryClientReferenceCollection->Count); - myCollection->CopyTo( myObjectCollection, 0 ); - Console::WriteLine( "The discovery documents, service descriptions, and XML schema" ); - Console::WriteLine( " definitions in the collection are: " ); - for ( int i = 0; i < myObjectCollection->Length; i++ ) - { - Console::WriteLine( myObjectCollection[ i ] ); - } - Console::WriteLine( "" ); - - // Retrieve the values from the collection. - ICollection^ myCollection1 = myDiscoveryClientReferenceCollection->Values; - array^myObjectCollection1 = gcnew array(myDiscoveryClientReferenceCollection->Count); - myCollection1->CopyTo( myObjectCollection1, 0 ); - Console::WriteLine( "The objects in the collection are: " ); - for ( int i = 0; i < myObjectCollection1->Length; i++ ) - { - Console::WriteLine( myObjectCollection1[ i ] ); - } - Console::WriteLine( "" ); - String^ myStringUrl1 = "http://localhost/dataservice.vsdisco"; - if ( myDiscoveryClientReferenceCollection->Contains( myStringUrl1 ) ) - { - Console::WriteLine( "The document reference {0} is part of the collection.", myStringUrl1 ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientReferenceCollection_Items/CPP/discoveryclientreferencecollection_items.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientReferenceCollection_Items/CPP/discoveryclientreferencecollection_items.cpp deleted file mode 100644 index 97d6c8335c879..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientReferenceCollection_Items/CPP/discoveryclientreferencecollection_items.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/* -System::Web::Services::Discovery.DiscoveryClientReferenceCollection::DiscoveryClientReferenceCollection -System::Web::Services::Discovery.DiscoveryClientReferenceCollection->Add(DiscoveryReference) -System::Web::Services::Discovery.DiscoveryClientReferenceCollection->Add(DiscoveryReference, url) -System::Web::Services::Discovery.DiscoveryClientReferenceCollection::Remove -System::Web::Services::Discovery.DiscoveryClientReferenceCollection::Item - -The following example demonstrates the 'constructor' and various members of -the class 'DiscoveryClientReferenceCollection'. The 'Add(DiscoveryReference)' -method adds a DocumentReference Object* to the DiscoveryClientDocumentCollection -collection. The Add(url, DiscoveryReference) method adds a DiscoveryReference -with the specified Url. The 'Remove' method removes a DiscoveryReference with -the specified Url from the 'DiscoveryClientReferenceCollection' collection. -The 'Item' property gets or sets a DiscoveryReference Object* from the -'DiscoveryClientReferenceCollection' with the specified Url. -*/ - -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Web::Services::Discovery; - -int main() -{ - // - // - // - DiscoveryClientReferenceCollection^ myDiscoveryClientReferenceCollection = gcnew DiscoveryClientReferenceCollection; - ContractReference^ myContractReference = gcnew ContractReference; - String^ myStringUrl1 = "http://www.contoso.com/service1.disco"; - myContractReference->Ref = myStringUrl1; - myDiscoveryClientReferenceCollection->Add( myContractReference ); - // - // - - // myDiscoveryClientReferenceCollection is an instance collection. - Object^ myObject = myDiscoveryClientReferenceCollection[ myStringUrl1 ]; - Console::WriteLine( "Object representing the URL: {0}", myObject ); - // - - Console::WriteLine( "" ); - - // - // - DiscoveryDocumentReference^ myDiscoveryDocumentReference = gcnew DiscoveryDocumentReference; - String^ myStringUrl = "http://www.contoso.com/service.disco"; - myDiscoveryClientReferenceCollection->Add( myStringUrl, myDiscoveryDocumentReference ); - // - - myDiscoveryClientReferenceCollection->Remove( myStringUrl ); - // - - // Retrieve the keys in the collection. - ICollection^ myCollection = myDiscoveryClientReferenceCollection->Keys; - array^myObjectCollection = gcnew array(myDiscoveryClientReferenceCollection->Count); - myCollection->CopyTo( myObjectCollection, 0 ); - Console::WriteLine( "The discovery documents, service descriptions, and" ); - Console::WriteLine( "XML schema definitions in the collection are:" ); - for ( int iIndex = 0; iIndex < myObjectCollection->Length; iIndex++ ) - { - Console::WriteLine( myObjectCollection[ iIndex ] ); - } - Console::WriteLine( "" ); - - // Retrieve the values in the collection. - ICollection^ myCollection1 = myDiscoveryClientReferenceCollection->Values; - array^myObjectCollection1 = gcnew array(myDiscoveryClientReferenceCollection->Count); - myCollection1->CopyTo( myObjectCollection1, 0 ); - Console::WriteLine( "The objects in the collection are:" ); - for ( int iIndex = 0; iIndex < myObjectCollection1->Length; iIndex++ ) - { - Console::WriteLine( myObjectCollection1[ iIndex ] ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientReferenceCollection_Keys/CPP/discoveryclientreferencecollection_keys.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientReferenceCollection_Keys/CPP/discoveryclientreferencecollection_keys.cpp deleted file mode 100644 index 58015aa26dfab..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientReferenceCollection_Keys/CPP/discoveryclientreferencecollection_keys.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* -System::Web::Services::Discovery.DiscoveryClientReferenceCollection::Keys -System::Web::Services::Discovery.DiscoveryClientReferenceCollection::Values -System::Web::Services::Discovery.DiscoveryClientReferenceCollection::Contains - -The following example demonstrates the 'Keys', 'Values' properties and -the method 'Contains' of the class 'DiscoveryClientReferenceCollection'. A sample -discovery document is read and the 'Keys', 'Values' and 'Contains' properties -are displayed. -*/ - -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::Collections; -using namespace System::Web::Services::Discovery; - -int main() -{ -// - DiscoveryClientProtocol^ myDiscoveryClientProtocol = gcnew DiscoveryClientProtocol; - myDiscoveryClientProtocol->Credentials = CredentialCache::DefaultCredentials; - - // 'dataservice.disco' is a sample discovery document. - String^ myStringUrl = "http://localhost/dataservice.disco"; - - // Call the Discover method to populate the References property. - DiscoveryDocument^ myDiscoveryDocument = myDiscoveryClientProtocol->Discover( myStringUrl ); - - // Resolve all references found in the discovery document. - myDiscoveryClientProtocol->ResolveAll(); - DiscoveryClientReferenceCollection^ myDiscoveryClientReferenceCollection = myDiscoveryClientProtocol->References; - - // Retrieve the keys in the collection. - ICollection^ myCollection = myDiscoveryClientReferenceCollection->Keys; - array^myObjectCollection = gcnew array(myDiscoveryClientReferenceCollection->Count); - myCollection->CopyTo( myObjectCollection, 0 ); - Console::WriteLine( "The discovery documents, service descriptions, and XML schema" ); - Console::WriteLine( " definitions in the collection are:" ); - for ( int iIndex = 0; iIndex < myObjectCollection->Length; iIndex++ ) - { - Console::WriteLine( myObjectCollection[ iIndex ] ); - } -// - Console::WriteLine( "" ); -// - // Retrieve the values in the collection. - ICollection^ myCollection1 = myDiscoveryClientReferenceCollection->Values; - array^myObjectCollection1 = gcnew array(myDiscoveryClientReferenceCollection->Count); - myCollection1->CopyTo( myObjectCollection1, 0 ); - Console::WriteLine( "The objects in the collection are:" ); - for ( int iIndex = 0; iIndex < myObjectCollection1->Length; iIndex++ ) - { - Console::WriteLine( myObjectCollection1[ iIndex ] ); - } -// - Console::WriteLine( "" ); -// - String^ myStringUrl1 = "http://localhost/dataservice.disco"; - if ( myDiscoveryClientReferenceCollection->Contains( myStringUrl1 ) ) - { - Console::WriteLine( "The document reference {0} is part of the collection.", myStringUrl1 ); - } -// -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResult/CPP/discoveryclientresult.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResult/CPP/discoveryclientresult.cpp deleted file mode 100644 index 8dc400a665b8a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResult/CPP/discoveryclientresult.cpp +++ /dev/null @@ -1,46 +0,0 @@ - - -// System.Web.Services.DiscoveryClientResult -/* -The following example demonstrates 'DiscoveryClientResult' class. -A 'DiscoveryClientResultCollection' object is obtained by reading a -'.discomap' file which contains the 'DiscoveryClientResult' objects, -representing the details of discovery references. The contents of this -collection are displayed.. -*/ -// -#using -#using - -using namespace System; -using namespace System::Web::Services::Discovery; -int main() -{ - try - { - DiscoveryClientProtocol^ myDiscoveryClientProtocol = gcnew DiscoveryClientProtocol; - - // Get the collection holding DiscoveryClientResult objects. - DiscoveryClientResultCollection^ myDiscoveryClientResultCollection = myDiscoveryClientProtocol->ReadAll( "results.discomap" ); - Console::WriteLine( "The number of DiscoveryClientResult objects: {0}", myDiscoveryClientResultCollection->Count ); - Console::WriteLine( "Displaying the items in the collection:" ); - - // Iterate through the collection and display the properties - // of each DiscoveryClientResult in it. - System::Collections::IEnumerator^ myEnum = myDiscoveryClientResultCollection->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - DiscoveryClientResult^ myDiscoveryClientResult = safe_cast(myEnum->Current); - Console::WriteLine( "Type of reference in the discovery document: {0}", myDiscoveryClientResult->ReferenceTypeName ); - Console::WriteLine( "Url for the reference: {0}", myDiscoveryClientResult->Url ); - Console::WriteLine( "File for saving the reference: {0}", myDiscoveryClientResult->Filename ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "Error is {0}", e->Message ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResultCollection/CPP/discoveryclientresultcollection.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResultCollection/CPP/discoveryclientresultcollection.cpp deleted file mode 100644 index 0a3223d17da07..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResultCollection/CPP/discoveryclientresultcollection.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// System.Web.Services.Discovery.DiscoveryClientResultCollection - -/* -The following example demonstrates 'DiscoveryClientResultCollection' class. -A 'DiscoveryClientResultCollection' object is obtained by reading a '.discomap' file -which contains the 'DiscoveryClientResult' objects, representing the details of -discovery references. An element from the collection is removed and programmatically -added to 'DiscoveryClientResultCollection' class. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Reflection; -using namespace System::IO; -using namespace System::Web::Services::Discovery; -using namespace System::Xml::Schema; -using namespace System::Collections; - -int main() -{ - try - { - DiscoveryClientProtocol^ myDiscoveryClientProtocol = gcnew DiscoveryClientProtocol; - - // Get the collection of DiscoveryClientResult objects. - DiscoveryClientResultCollection^ myDiscoveryClientResultCollection = - myDiscoveryClientProtocol->ReadAll( "results.discomap" ); - Console::WriteLine( "Removing a DiscoveryClientResult from the collection..." ); - - // Remove the first DiscoveryClientResult from the collection. - myDiscoveryClientResultCollection->Remove( myDiscoveryClientResultCollection[ 0 ] ); - Console::WriteLine( "Adding a DiscoveryClientResult to the collection..." ); - DiscoveryClientResult^ myDiscoveryClientResult = gcnew DiscoveryClientResult; - - // Set the DiscoveryDocumentReference class as the type of - // reference in the discovery document. - myDiscoveryClientResult->ReferenceTypeName = - "System.Web.Services.Discovery.DiscoveryDocumentReference"; - - // Set the URL for the reference. - myDiscoveryClientResult->Url = "http://localhost/Discovery/Service1_cs.asmx?disco"; - - // Set the name of the file in which the reference is saved. - myDiscoveryClientResult->Filename = "Service1_cs.disco"; - - // Add myDiscoveryClientResult to the collection. - myDiscoveryClientResultCollection->Add( myDiscoveryClientResult ); - if ( myDiscoveryClientResultCollection->Contains( myDiscoveryClientResult ) ) - { - Console::WriteLine( "Instance of DiscoveryClientResult found in the Collection" ); - } - } - catch ( Exception^ ex ) - { - Console::WriteLine( "Error is {0}", ex->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResult_Filename/CPP/discoveryclientresult_filename.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResult_Filename/CPP/discoveryclientresult_filename.cpp deleted file mode 100644 index e186c3aeca331..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResult_Filename/CPP/discoveryclientresult_filename.cpp +++ /dev/null @@ -1,96 +0,0 @@ -// System.Web.Services.Discovery.DiscoveryClientResultCollection.Remove -// System.Web.Services.Discovery.DiscoveryClientResult() -// System.Web.Services.Discovery.DiscoveryClientResult.ReferenceTypeName -// System.Web.Services.Discovery.DiscoveryClientResult.Url -// System.Web.Services.Discovery.DiscoveryClientResult.Filename -// System.Web.Services.Discovery.DiscoveryClientResultCollection.Add -// System.Web.Services.Discovery.DiscoveryClientResultCollection.Contains -// System.Web.Services.Discovery.DiscoveryClientResultCollection.Item - -/* -The following example demonstrates 'ReferenceTypeName' ,'Url','Filename' properties and the -constructor of 'DiscoveryClientResult' class and 'Remove', 'Add' 'Contains' methods and -'Item' property of 'DiscoveryClientResultCollection' class. -A 'DiscoveryClientResultCollection' object is obtained by reading a '.discomap' file -which contains the 'DiscoveryClientResult' objects, representing the details of -discovery references. An element from the collection is removed and programmatically -added to it to show the usage of methods of 'DiscoveryClientResultCollection' class . -The contents of this collection are displayed.. -*/ - -#using -#using - -using namespace System; -using namespace System::Web::Services::Discovery; - -int main() -{ - try - { - DiscoveryClientProtocol^ myDiscoveryClientProtocol = gcnew DiscoveryClientProtocol; - - // Get the collection of DiscoveryClientResult objects. - DiscoveryClientResultCollection^ myDiscoveryClientResultCollection = myDiscoveryClientProtocol->ReadAll( "results.discomap" ); - Console::WriteLine( "The number of DiscoveryClientResult objects: {0}", myDiscoveryClientResultCollection->Count ); - Console::WriteLine( "Removing a DiscoveryClientResult from the collection..." ); - - // - // Remove the first DiscoveryClientResult from the collection. - myDiscoveryClientResultCollection->Remove( myDiscoveryClientResultCollection[ 0 ] ); - // - - Console::WriteLine( "Adding a DiscoveryClientResult to the collection..." ); - - // - // - // - // - // - // Initialize new instance of the DiscoveryClientResult class. - DiscoveryClientResult^ myDiscoveryClientResult = gcnew DiscoveryClientResult; - - // Set the type of reference in the discovery document as - // DiscoveryDocumentReference. - myDiscoveryClientResult->ReferenceTypeName = "System.Web.Services.Discovery.DiscoveryDocumentReference"; - - // Set the URL for the reference. - myDiscoveryClientResult->Url = "http://localhost/Discovery/Service1_cs.asmx?disco"; - - // Set the name of the file in which the reference is saved. - myDiscoveryClientResult->Filename = "Service1_cs.disco"; - - // Add the DiscoveryClientResult to the collection. - myDiscoveryClientResultCollection->Add( myDiscoveryClientResult ); - // - // - // - // - // - - // - if ( myDiscoveryClientResultCollection->Contains( myDiscoveryClientResult ) ) - { - Console::WriteLine( "The collection contains the specified " - "DiscoveryClientResult instance." ); - } - // - - Console::WriteLine( "Displaying the items in collection" ); - - // - for ( int i = 0; i < myDiscoveryClientResultCollection->Count; i++ ) - { - DiscoveryClientResult^ myClientResult = myDiscoveryClientResultCollection[ i ]; - Console::WriteLine( "DiscoveryClientResult {0}", (i + 1) ); - Console::WriteLine( "Type of reference in the discovery document: {0}", myClientResult->ReferenceTypeName ); - Console::WriteLine( "Url for reference:{0}", myClientResult->Url ); - Console::WriteLine( "File for saving the reference: {0}", myClientResult->Filename ); - } - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Error is {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResult_ctor/CPP/discoveryclientresult_ctor.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResult_ctor/CPP/discoveryclientresult_ctor.cpp deleted file mode 100644 index 40ff11fefc455..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResult_ctor/CPP/discoveryclientresult_ctor.cpp +++ /dev/null @@ -1,64 +0,0 @@ -// System.Web.Services.Discovery.DiscoveryClientResult(Type,String,String) - -/* -The following example demonstrates the DiscoveryClientResult(Type,String,String) -constructor of 'DiscoveryClientResult' class. -A 'DiscoveryClientResultCollection' object is obtained by reading a '.discomap' file -which contains the 'DiscoveryClientResult' objects, representing the details of -discovery references. A 'DiscoveryClientProtocol' object from the collection is -removed. Then a 'DiscoveryClientProtocol' is created suppling the type of reference -in the discovery document, URL for the reference and name of the file in which the -reference is saved.and programmatically added to it. The contents of this collection -are displayed. -*/ - -#using -#using - -using namespace System; -using namespace System::Reflection; -using namespace System::Web::Services::Discovery; - -int main() -{ - try - { - DiscoveryClientProtocol^ myDiscoveryClientProtocol = gcnew DiscoveryClientProtocol; - - // Get the collection of DiscoveryClientResult objects. - DiscoveryClientResultCollection^ myDiscoveryClientResultCollection = - myDiscoveryClientProtocol->ReadAll( "results.discomap" ); - Console::WriteLine( "The number of DiscoveryClientResult objects: {0}", myDiscoveryClientResultCollection->Count ); - Console::WriteLine( "Removing a DiscoveryClientResult " - "from the collection..." ); - - // Remove first DiscoveryClientResult from the collection. - myDiscoveryClientResultCollection->Remove( myDiscoveryClientResultCollection[ 0 ] ); - Console::WriteLine( "Adding a DiscoveryClientResult " - "to the collection..." ); - - // - // Initialize a new instance of the DiscoveryClientResult class. - DiscoveryClientResult^ myDiscoveryClientResult = - gcnew DiscoveryClientResult( System::Web::Services::Discovery::DiscoveryDocumentReference::typeid, - "http://localhost/Discovery/Service1_cs.asmx?disco","Service1_cs.disco" ); - - // Add the DiscoveryClientResult to the collection. - myDiscoveryClientResultCollection->Add( myDiscoveryClientResult ); - // - - Console::WriteLine( "Displaying the items in the collection" ); - for ( int i = 0; i < myDiscoveryClientResultCollection->Count; i++ ) - { - DiscoveryClientResult^ myClientResult = myDiscoveryClientResultCollection[ i ]; - Console::WriteLine( "DiscoveryClientResult Object {0}", (i + 1) ); - Console::WriteLine( "Type of reference in the discovery document: {0}", myClientResult->ReferenceTypeName ); - Console::WriteLine( "URL for reference: {0}", myClientResult->Url ); - Console::WriteLine( "File for saving the reference: {0}", myClientResult->Filename ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "Error is {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResultsFile_Results/CPP/discoveryclientresultsfile_results.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResultsFile_Results/CPP/discoveryclientresultsfile_results.cpp deleted file mode 100644 index 331ee9af57712..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryClientResultsFile_Results/CPP/discoveryclientresultsfile_results.cpp +++ /dev/null @@ -1,66 +0,0 @@ - - -// System.Web.Services.Discovery.DiscoveryClientProtocol.DiscoveryClientResultsFile -// System.Web.Services.Discovery.DiscoveryClientProtocol.DiscoveryClientResultsFile.ctor -// System.Web.Services.Discovery.DiscoveryClientProtocol.DiscoveryClientResultsFile.Results -/* -The following example demonstrates the usage of 'DiscoveryClientProtocol. -DiscoveryClientResultsFile' class, constructor 'DiscoveryClientProtocol. -DiscoveryClientResultsFile()' and the property 'Results' of the class. -The input to the program is a VSDisco file 'MathService.vsdisco', which -holds reference to 'MathService' web service. The 'Results' property returns -all valid references of the discovery document 'MathService.vsdisco'. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Discovery; -using namespace System::Net; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -int main() -{ - String^ outputDirectory = "c:\\InetPub\\wwwroot"; - DiscoveryClientProtocol^ myClient = gcnew DiscoveryClientProtocol; - - // Use default credentials to access the URL being discovered. - myClient->Credentials = CredentialCache::DefaultCredentials; - try - { - DiscoveryDocument^ myDocument; - - // Discover the supplied URL to determine if it is a discovery document. - myDocument = myClient->Discover( "http://localhost/MathService_cs.vsdisco" ); - myClient->ResolveAll(); - DiscoveryClientResultCollection^ myCollection = myClient->WriteAll( outputDirectory, "MyDiscoMap.discomap" ); - - // - // - // Get the DiscoveryClientProtocol.DiscoveryClientResultsFile. - DiscoveryClientProtocol::DiscoveryClientResultsFile ^ myResultFile = gcnew DiscoveryClientProtocol::DiscoveryClientResultsFile; - XmlSerializer^ mySerializer = gcnew XmlSerializer( myResultFile->GetType() ); - XmlReader^ reader = gcnew XmlTextReader( "http://localhost/MyDiscoMap.discomap" ); - myResultFile = dynamic_cast(mySerializer->Deserialize( reader )); - - // Get a collection of DiscoveryClientResult objects. - DiscoveryClientResultCollection^ myResultcollection = myResultFile->Results; - Console::WriteLine( "Referred file(s): " ); - System::Collections::IEnumerator^ myEnum = myResultcollection->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - DiscoveryClientResult^ myResult = safe_cast(myEnum->Current); - Console::WriteLine( myResult->Filename ); - } - // - // - } - catch ( Exception^ e ) - { - Console::WriteLine( e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocument/CPP/discoverydocument.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocument/CPP/discoverydocument.cpp deleted file mode 100644 index 8106396f6fa55..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocument/CPP/discoverydocument.cpp +++ /dev/null @@ -1,64 +0,0 @@ - - -// System::Web::Services::Discovery.DiscoveryDocument -// System::Web::Services::Discovery.DiscoveryDocument::Write(TextWriter) -/* The following example deomonstrates DiscoveryDocument class and the 'Write(Stream)' method -of the 'DiscoveryDocument' class. -A XmlTextReader Object* is created with a sample discovery file and this -is passed to the Read method to create a DiscoveryDocument. The contents -of this document is displayed onto the console using the Write(TextWriter) -method. -*/ -// -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::IO; -using namespace System::Web::Services::Discovery; -using namespace System::Collections; -int main() -{ - try - { - - // Create an Object* of the 'DiscoveryDocument'. - DiscoveryDocument^ myDiscoveryDocument = gcnew DiscoveryDocument; - - // Create an XmlTextReader with the sample file. - XmlTextReader^ myXmlTextReader = gcnew XmlTextReader( "http://localhost/example_cs.disco" ); - - // Read the given XmlTextReader. - myDiscoveryDocument = DiscoveryDocument::Read( myXmlTextReader ); - - // - // Write the DiscoveryDocument into the 'TextWriter'. - FileStream^ myFileStream = gcnew FileStream( "log.txt",FileMode::OpenOrCreate,FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myDiscoveryDocument->Write( myStreamWriter ); - myStreamWriter->Flush(); - myStreamWriter->Close(); - - // - // Display the contents of the DiscoveryDocument onto the console. - FileStream^ myFileStream1 = gcnew FileStream( "log.txt",FileMode::OpenOrCreate,FileAccess::Read ); - StreamReader^ myStreamReader = gcnew StreamReader( myFileStream1 ); - - // Set the file pointer to the begin. - myStreamReader->BaseStream->Seek( 0, SeekOrigin::Begin ); - Console::WriteLine( "The contents of the DiscoveryDocument are-" ); - while ( myStreamReader->Peek() > -1 ) - { - Console::WriteLine( myStreamReader->ReadLine() ); - } - myStreamReader->Close(); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised : {0}", e->Message ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_Document_ResolveAll/CPP/ddreference_document_resolveall.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_Document_ResolveAll/CPP/ddreference_document_resolveall.cpp deleted file mode 100644 index 2c15fc11a0911..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_Document_ResolveAll/CPP/ddreference_document_resolveall.cpp +++ /dev/null @@ -1,60 +0,0 @@ - - -// System::Web::Services::Discovery.DiscoveryDocumentReference::Document -// System::Web::Services::Discovery.DiscoveryDocumentReference::ResolveAll() -/* -This program demonstrates the 'Document' property and 'ResolveAll()' method of -'DiscoveryDocumentReference' class. Set the 'ClientProtocol' of -'DiscoveryDocumentReference' class. The validity of the documents within the discovery -document is verified using the 'ResolveAll' method and the valid references to the -discovery documents are displayed on the console using the 'Document' property. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Discovery; -using namespace System::Collections; -int main() -{ - try - { - // - String^ myUrl = "http://localhost/Sample_cs.vsdisco"; - DiscoveryClientProtocol^ myProtocol = gcnew DiscoveryClientProtocol; - - // Get the discovery document myDiscoveryDocument. - DiscoveryDocument^ myDiscoveryDocument = myProtocol->Discover( myUrl ); - - // Get the references of myDiscoveryDocument. - IEnumerator^ myEnumerator = myDiscoveryDocument->References->GetEnumerator(); - while ( myEnumerator->MoveNext() ) - { - DiscoveryDocumentReference^ myNewReference = dynamic_cast(myEnumerator->Current); - - // Set the ClientProtocol of myNewReference. - DiscoveryClientProtocol^ myNewProtocol = myNewReference->ClientProtocol; - - // Verify for all the valid references. - myNewReference->ResolveAll(); - - // Get the document of myNewReference. - DiscoveryDocument^ myNewDiscoveryDocument = myNewReference->Document; - IEnumerator^ myNewEnumerator = myNewDiscoveryDocument->References->GetEnumerator(); - Console::WriteLine( "The valid discovery document is : \n" ); - while ( myNewEnumerator->MoveNext() ) - { - // Display the references of myNewDiscoveryDocument on the console. - Console::WriteLine( (dynamic_cast(myNewEnumerator->Current))->Ref ); - } - } - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception : {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_ReadDocument/CPP/discoverydocumentreference_readdocument.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_ReadDocument/CPP/discoverydocumentreference_readdocument.cpp deleted file mode 100644 index 8643d9666913e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_ReadDocument/CPP/discoverydocumentreference_readdocument.cpp +++ /dev/null @@ -1,44 +0,0 @@ - - -// System::Web::Services::Discovery.DiscoveryDocumentReference::ReadDocument(stream) -/* -This program demonstrates the 'ReadDocument(stream)' of 'DiscoveryDocumentReference' -class. Read the contents of the discovery document from the stream and returns -discovery document reference. The references of the 'DiscoveryDocumentReference' -are printed. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Discovery; -using namespace System::IO; -using namespace System::Collections; -int main() -{ - try - { - // - String^ myUrl = "http://localhost/Sample_cs.vsdisco"; - DiscoveryClientProtocol^ myProtocol = gcnew DiscoveryClientProtocol; - DiscoveryDocumentReference^ myReference = gcnew DiscoveryDocumentReference( myUrl ); - Stream^ myFileStream = myProtocol->Download( myUrl ); - DiscoveryDocument^ myDiscoveryDocument = dynamic_cast(myReference->ReadDocument( myFileStream )); - // - - IEnumerator^ myEnumerator = myDiscoveryDocument->References->GetEnumerator(); - Console::WriteLine( "\nThe references to the discovery document are : \n" ); - while ( myEnumerator->MoveNext() ) - { - DiscoveryDocumentReference^ myNewReference = dynamic_cast(myEnumerator->Current); - - // Print the discovery document references on the console. - Console::WriteLine( myNewReference->Url ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_ctor_Properties/CPP/discoverydocumentreference_ctor_properties.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_ctor_Properties/CPP/discoverydocumentreference_ctor_properties.cpp deleted file mode 100644 index 25a62274838f6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_ctor_Properties/CPP/discoverydocumentreference_ctor_properties.cpp +++ /dev/null @@ -1,59 +0,0 @@ - - -// System::Web::Services::Discovery.DiscoveryDocumentReference::DiscoveryDocumentReference(String*) -// System::Web::Services::Discovery.DiscoveryDocumentReference::Ref -// System::Web::Services::Discovery.DiscoveryDocumentReference::Url -// System::Web::Services::Discovery.DiscoveryDocumentReference::DefaultFileName -/* -This program demonstrates the 'DiscoveryDocumentReference(String*)' Constructor, 'Ref', -'Url', and 'DefaultFileName' properties of the 'DiscoveryDocumentReference' class. -It creates an instance of 'DiscoveryDocumentReference' and displays the 'Ref', 'Url' and -'DefaultFilename' properties. -*/ -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Web::Services::Discovery; - -int main() -{ - try - { - -// - DiscoveryDocumentReference^ myDiscoveryDocumentReference = - gcnew DiscoveryDocumentReference( - "http://localhost/Sample_cpp.disco" ); -// - - Console::WriteLine( "The reference to the discovery document is:" ); - -// - // Display the discovery document reference. - Console::WriteLine( myDiscoveryDocumentReference->Ref ); -// - Console::WriteLine(); - Console::WriteLine( - "The URL of the referenced discovery document is:" ); - -// - // Display the URL of the referenced discovery document. - Console::WriteLine( myDiscoveryDocumentReference->Url ); -// - Console::WriteLine(); - Console::WriteLine( "The name of the default disco file is:" ); - -// - // Display the name of the default file used for reference. - Console::WriteLine( - myDiscoveryDocumentReference->DefaultFilename ); -// - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_ctor_Properties/CPP/sample_cpp.disco b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_ctor_Properties/CPP/sample_cpp.disco deleted file mode 100644 index fabe8ce6a2245..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_ctor_Properties/CPP/sample_cpp.disco +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_ctor_WriteDocument/CPP/discoverydocumentreference_ctor_writedocument.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_ctor_WriteDocument/CPP/discoverydocumentreference_ctor_writedocument.cpp deleted file mode 100644 index 36a4b5400c36a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocumentReference_ctor_WriteDocument/CPP/discoverydocumentreference_ctor_writedocument.cpp +++ /dev/null @@ -1,61 +0,0 @@ - - -// System::Web::Services::Discovery.DiscoveryDocumentReference -// System::Web::Services::Discovery.DiscoveryDocumentReference::DiscoveryDocumentReference() -// System::Web::Services::Discovery.DiscoveryDocumentReference::WriteDocument(Object*, Stream) -/* -This program demonstrates the 'DiscoveryDocumentReference' class, default constructor and -'WriteDocument(Object*, Stream)' method of the 'DiscoveryDocumentReference' class. -Discovery file is read by using 'DiscoveryDocument' instance. Write this discovery -document into a file stream and print its contents on the console. -*/ -// -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Web::Services::Discovery; -using namespace System::IO; -using namespace System::Collections; -int main() -{ - try - { - DiscoveryDocument^ myDiscoveryDocument; - XmlTextReader^ myXmlTextReader = gcnew XmlTextReader( "http://localhost/Sample_cs::vsdisco" ); - myDiscoveryDocument = DiscoveryDocument::Read( myXmlTextReader ); - - // - // Create a new instance of DiscoveryDocumentReference. - DiscoveryDocumentReference^ myDiscoveryDocumentReference = gcnew DiscoveryDocumentReference; - - // - // - FileStream^ myFileStream = gcnew FileStream( "Temp::vsdisco",FileMode::OpenOrCreate,FileAccess::Write ); - myDiscoveryDocumentReference->WriteDocument( myDiscoveryDocument, myFileStream ); - myFileStream->Close(); - - // - FileStream^ myFileStream1 = gcnew FileStream( "Temp::vsdisco",FileMode::OpenOrCreate,FileAccess::Read ); - StreamReader^ myStreamReader = gcnew StreamReader( myFileStream1 ); - - // Initialize the file pointer. - myStreamReader->BaseStream->Seek( 0, SeekOrigin::Begin ); - Console::WriteLine( "The contents of the discovery document are: \n" ); - while ( myStreamReader->Peek() > -1 ) - { - - // Display the contents of the discovery document. - Console::WriteLine( myStreamReader->ReadLine() ); - } - myStreamReader->Close(); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocument_DiscoveryDocument/CPP/discoverydocument_discoverydocument.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocument_DiscoveryDocument/CPP/discoverydocument_discoverydocument.cpp deleted file mode 100644 index c9c3ac9fdb286..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocument_DiscoveryDocument/CPP/discoverydocument_discoverydocument.cpp +++ /dev/null @@ -1,70 +0,0 @@ - - -// System::Web::Services::Discovery.DiscoveryDocument::DiscoveryDocument -// System::Web::Services::Discovery.DiscoveryDocument::Namespace -// System::Web::Services::Discovery.DiscoveryDocument::CanRead -// System::Web::Services::Discovery.DiscoveryDocument::Read(XmlReader) -// System::Web::Services::Discovery.DiscoveryDocument::References -/* The following example deomonstrates the 'DiscoveryDocument' constructor, -'Namespace' field, 'References' property and the 'CanRead' and 'Read(XmlReader)' -methods of the 'DiscoveryDocument' class. -The namespace field is displayed onto the console. A XmlTextReader Object* is -created with a sample discovery file and this is passed to the CanRead method -to check whether it is readable. Then we read this file to create a Discovery -document and display the references in the created document. -*/ -// -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::IO; -using namespace System::Web::Services::Discovery; -using namespace System::Collections; -int main() -{ - try - { - - // Create an Object* of the 'DiscoveryDocument'. - DiscoveryDocument^ myDiscoveryDocument = gcnew DiscoveryDocument; - - // - // Display the 'Namespace' field. - Console::WriteLine( "The namespace is : {0}", DiscoveryDocument::Namespace ); - - // - // Create an XmlTextReader with the sample file. - XmlTextReader^ myXmlTextReader = gcnew XmlTextReader( "http://localhost/example.vsdisco" ); - - // - // - // Check whether the given XmlTextReader is readable. - if ( DiscoveryDocument::CanRead( myXmlTextReader ) == true ) - - // Read the given XmlTextReader. - myDiscoveryDocument = DiscoveryDocument::Read( myXmlTextReader ); - else - Console::WriteLine( "The supplied file is not readable" ); - - // - // - // - // Enumerate the 'References' in the DiscoveryDocument. - IEnumerator^ myEnumerator = myDiscoveryDocument->References->GetEnumerator(); - Console::WriteLine( "The 'References' in the discovery document are-" ); - while ( myEnumerator->MoveNext() ) - Console::Write( (dynamic_cast(myEnumerator->Current)->Url) ); - - // - Console::WriteLine(); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised : {0}", e->Message ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocument_Write1/CPP/discoverydocument_write1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocument_Write1/CPP/discoverydocument_write1.cpp deleted file mode 100644 index 4354c6bd9c143..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocument_Write1/CPP/discoverydocument_write1.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// System::Web::Services::Discovery.DiscoveryDocument::Write(Stream) - -/* The following example deomonstrates the 'Write(Stream)' method -of the 'DiscoveryDocument' class. -A XmlTextReader Object* is created with a sample discovery file and this is -passed to the Read method to create a DiscoveryDocument. The contents of this -document are displayed onto the console using the Write(Stream) method. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::IO; -using namespace System::Web::Services::Discovery; -using namespace System::Collections; - -int main() -{ - try - { - // - // Create an object of the 'DiscoveryDocument'. - DiscoveryDocument^ myDiscoveryDocument = gcnew DiscoveryDocument; - - // Create an XmlTextReader with the sample file. - XmlTextReader^ myXmlTextReader = gcnew XmlTextReader( - "http://localhost/example_Write1_cs.disco" ); - - // Read the given XmlTextReader. - myDiscoveryDocument = DiscoveryDocument::Read( myXmlTextReader ); - - // Write the DiscoveryDocument into the stream. - FileStream^ myFileStream = gcnew FileStream( - "log.txt",FileMode::OpenOrCreate,FileAccess::Write ); - myDiscoveryDocument->Write( myFileStream ); - - myFileStream->Flush(); - myFileStream->Close(); - - // Display the contents of the DiscoveryDocument onto the console. - FileStream^ myFileStream1 = gcnew FileStream( - "log.txt",FileMode::OpenOrCreate,FileAccess::Read ); - StreamReader^ myStreamReader = gcnew StreamReader( myFileStream1 ); - - // Set the file pointer to the begin. - myStreamReader->BaseStream->Seek( 0, SeekOrigin::Begin ); - Console::WriteLine( "The contents of the DiscoveryDocument are-" ); - while ( myStreamReader->Peek() > -1 ) - { - Console::WriteLine( myStreamReader->ReadLine() ); - } - myStreamReader->Close(); - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocument_Write2/CPP/discoverydocument_write2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocument_Write2/CPP/discoverydocument_write2.cpp deleted file mode 100644 index 7eb75ffdfb53c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryDocument_Write2/CPP/discoverydocument_write2.cpp +++ /dev/null @@ -1,64 +0,0 @@ -// System::Web::Services::Discovery.DiscoveryDocument::Write(XmlTextWriter) - -/* The following example deomonstrates the 'Write(XmlTextWriter)' method -of the 'DiscoveryDocument' class. -A XmlTextReader Object* is created with a sample discovery file and this is -passed to the Read method to create a DiscoveryDocument. The contents of this -document are displayed onto the console using the Write(XmlTextWriter) method. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::IO; -using namespace System::Web::Services::Discovery; -using namespace System::Collections; - -int main() -{ - try - { -// - // Create a DiscoveryDocument. - DiscoveryDocument^ myDiscoveryDocument = gcnew DiscoveryDocument; - - // Create an XmlTextReader with the sample file. - XmlTextReader^ myXmlTextReader = gcnew XmlTextReader( - "http://localhost/example_Write2_cs.disco" ); - - // Read the given XmlTextReader. - myDiscoveryDocument = DiscoveryDocument::Read( myXmlTextReader ); - - FileStream^ myFileStream = gcnew FileStream( - "log.txt",FileMode::OpenOrCreate,FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - - XmlTextWriter^ myXmlTextWriter = gcnew XmlTextWriter( myStreamWriter ); - myDiscoveryDocument->Write( myXmlTextWriter ); - - myXmlTextWriter->Flush(); - myXmlTextWriter->Close(); - - // Display the contents of the DiscoveryDocument on the console. - FileStream^ myFileStream1 = gcnew FileStream( - "log.txt",FileMode::OpenOrCreate,FileAccess::Read ); - StreamReader^ myStreamReader = gcnew StreamReader( myFileStream1 ); - - // Set the file pointer to the beginning. - myStreamReader->BaseStream->Seek( 0, SeekOrigin::Begin ); - Console::WriteLine( "The contents of the DiscoveryDocument are: " ); - while ( myStreamReader->Peek() > -1 ) - { - Console::WriteLine( myStreamReader->ReadLine() ); - } - myStreamReader->Close(); -// - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryExceptionDictionary_Property_Method/CPP/discoveryexceptiondictionary_property_method.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryExceptionDictionary_Property_Method/CPP/discoveryexceptiondictionary_property_method.cpp deleted file mode 100644 index 0fd88a3bd0ecc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryExceptionDictionary_Property_Method/CPP/discoveryexceptiondictionary_property_method.cpp +++ /dev/null @@ -1,115 +0,0 @@ -// System.Web.Services.Discovery.DiscoveryExceptionDictionary -// System.Web.Services.Discovery.DiscoveryExceptionDictionary.Contains -// System.Web.Services.Discovery.DiscoveryExceptionDictionary.Item -// System.Web.Services.Discovery.DiscoveryExceptionDictionary.Remove -// System.Web.Services.Discovery.DiscoveryExceptionDictionary.DiscoveryExceptionDictionary -// System.Web.Services.Discovery.DiscoveryExceptionDictionary.Add -// System.Web.Services.Discovery.DiscoveryExceptionDictionary.Keys -// System.Web.Services.Discovery.DiscoveryExceptionDictionary.Values - -/* -The following example demonstrates the usage of the -'DiscoveryExceptionDictionary' class, the constructor -'DiscoveryExceptionDictionary()', the properties 'Item', 'Keys', -'Values' and the methods 'Contains', 'Add' and 'Remove' of the class. -The input to the program is a discovery file 'MathService_cs.disco' -which holds reference related to 'MathService_cs.asmx' web service. -The program is executed first with the file 'MathService_cs.asmx' in -the location as specified in the discovery file. The file -'MathService_cs.asmx' is removed from the referred location in a way to -simulate a scenario wherein the file related to web service is missing, -and the program is excecuted second time to show the exception occuring. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Discovery; -using namespace System::Xml; -using namespace System::Collections; -using namespace System::Runtime::Remoting; -using namespace System::Net; - -int main() -{ - String^ myDiscoFile = "http://localhost/MathService_cs.disco"; - String^ myUrlKey = "http://localhost/MathService_cs.asmx?wsdl"; - DiscoveryClientProtocol^ myDiscoveryClientProtocol1 = gcnew DiscoveryClientProtocol; - DiscoveryDocument^ myDiscoveryDocument = myDiscoveryClientProtocol1->Discover( myDiscoFile ); - IEnumerator^ myEnumerator = myDiscoveryDocument->References->GetEnumerator(); - while ( myEnumerator->MoveNext() ) - { - ContractReference^ myContractReference = dynamic_cast(myEnumerator->Current); - DiscoveryClientProtocol^ myDiscoveryClientProtocol2 = myContractReference->ClientProtocol; - myDiscoveryClientProtocol2->ResolveAll(); - - // - DiscoveryExceptionDictionary^ myExceptionDictionary = myDiscoveryClientProtocol2->Errors; - if ( myExceptionDictionary->Contains( myUrlKey ) == true ) - { - Console::WriteLine( "'myExceptionDictionary' contains a discovery exception for the key '{0}'", myUrlKey ); - } - else - { - Console::WriteLine( "'myExceptionDictionary' does not contain a discovery exception for the key '{0}'", myUrlKey ); - } - // - if ( myExceptionDictionary->Contains( myUrlKey ) == true ) - { - Console::WriteLine( "System generated exceptions." ); - - // - Exception^ myException = myExceptionDictionary[ myUrlKey ]; - Console::WriteLine( " Source : {0}", myException->Source ); - Console::WriteLine( " Exception : {0}", myException->Message ); - // - - Console::WriteLine(); - - // - // Remove the discovery exception.for the key 'myUrlKey'. - myExceptionDictionary->Remove( myUrlKey ); - // - - // - // - DiscoveryExceptionDictionary^ myNewExceptionDictionary = gcnew DiscoveryExceptionDictionary; - - // Add an exception with the custom error message. - Exception^ myNewException = gcnew Exception( "The requested service is not available." ); - myNewExceptionDictionary->Add( myUrlKey, myNewException ); - myExceptionDictionary = myNewExceptionDictionary; - // - // - - Console::WriteLine( "Added exceptions." ); - - // - array^myArray = gcnew array(myExceptionDictionary->Count); - myExceptionDictionary->Keys->CopyTo( (Array^)myArray, 0 ); - Console::WriteLine( " Keys are :" ); - - for each(Object^ myObj in myArray) - { - Console::WriteLine(" " + myObj->ToString()); - } - // - - Console::WriteLine(); - - // - array^myCollectionArray = gcnew array(myExceptionDictionary->Count); - myExceptionDictionary->Values->CopyTo( (Array^)myCollectionArray, 0 ); - Console::WriteLine( " Values are :" ); - for each(Object^ myObj in myCollectionArray) - { - Console::WriteLine(" " + myObj->ToString()); - } - // - } - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryReference/CPP/discoveryreference.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryReference/CPP/discoveryreference.cpp deleted file mode 100644 index f9a87f28eac1a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryReference/CPP/discoveryreference.cpp +++ /dev/null @@ -1,119 +0,0 @@ -// System::Web::Services::Discovery.DiscoveryReference::ClientProtocol -// System::Web::Services::Discovery.DiscoveryReference::DefaultFilename -// System::Web::Services::Discovery.DiscoveryReference::WriteDocument(Object*, Stream) -// System::Web::Services::Discovery.DiscoveryReference::ReadDocument(Stream) -// System::Web::Services::Discovery.DiscoveryReference::Url -// System::Web::Services::Discovery.DiscoveryReference::Resolve() -// This program demonstrates 'ClientProtocol', 'WriteDocumant', 'Url' properties -// and 'DefaultFilename', 'readDocument', 'Resolve' methods of 'DiscoveryReference' -// class. DiscoveryReference class is derived in 'MyDiscoveryReferenceClass'. A -// variable of type 'MyDiscoveryReferenceClass' class is taken to demonstrate these -// members. -// Note : The dataservice.disco file should be copied to Inetpub\wwwroot -// - -// -#using -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Web::Services::Discovery; -using namespace System::Net; - -// Class derived from DiscoveryReference class and overriding its members. -ref class MyDiscoveryReferenceClass: public DiscoveryReference -{ -private: - String^ myDocumentUrl; - -public: - property String^ DefaultFilename - { - virtual String^ get() override - { - return "dataservice.disco"; - } - } - - virtual Object^ ReadDocument( Stream^ stream ) override - { - return stream; - } - - void Resolve() - { - try - { - DiscoveryDocument^ myDiscoveryRefDocument; - myDiscoveryRefDocument = __super::ClientProtocol->Discover( Url ); - } - catch ( Exception^ e ) - { - throw e; - } - } - -protected: - virtual void Resolve( String^ contentType, Stream^ stream ) override {} - -public: - - property String^ Url - { - virtual String^ get() override - { - return myDocumentUrl; - } - - virtual void set( String^ value ) override - { - myDocumentUrl = value; - } - } - virtual void WriteDocument( Object^ document, System::IO::Stream^ stream ) override - { - DiscoveryDocument^ myDiscoveryDocument = dynamic_cast(document); - myDiscoveryDocument->Write( stream ); - } -}; - -int main() -{ - DiscoveryDocument^ myDiscoveryDocument; - StreamReader^ myStreamReader = gcnew StreamReader( "c:\\Inetpub\\wwwroot\\dataservice.disco" ); - FileStream^ myStream = gcnew FileStream( "C:\\MyDiscovery.disco",FileMode::OpenOrCreate ); - Console::WriteLine( "Demonstrating Discovery Reference class." ); - - // Read discovery file. - myDiscoveryDocument = DiscoveryDocument::Read( myStreamReader ); - - // Variable of type DiscoveryReference class defined. - MyDiscoveryReferenceClass^ myDiscoveryReference; - myDiscoveryReference = gcnew MyDiscoveryReferenceClass; - DiscoveryClientProtocol^ myDiscoveryClientProtocol = gcnew DiscoveryClientProtocol; - myDiscoveryClientProtocol->Credentials = CredentialCache::DefaultCredentials; - - // Set client protocol. - myDiscoveryReference->ClientProtocol = myDiscoveryClientProtocol; - - // Read the default file name. - Console::WriteLine( "Default file name is: {0}", myDiscoveryReference->DefaultFilename ); - - // Write the document. - myDiscoveryReference->WriteDocument( myDiscoveryDocument, myStream ); - - // Read the document. - myDiscoveryReference->ReadDocument( myStream ); - - // Set the URL. - myDiscoveryReference->Url = "http://localhost/dataservice.disco"; - Console::WriteLine( "Url is: {0}", myDiscoveryReference->Url ); - - // Resolve the URL. - myDiscoveryReference->Resolve(); - myStreamReader->Close(); - myStream->Close(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryReference1/CPP/discoveryreference.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryReference1/CPP/discoveryreference.cpp deleted file mode 100644 index 2476f726e9659..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryReference1/CPP/discoveryreference.cpp +++ /dev/null @@ -1,122 +0,0 @@ -// System.Web.Services.Discovery.DiscoveryReference - -/* -This program demonstrates 'DiscoveryReference' class. -DiscoveryReference class is derived in 'MyDiscoveryReferenceClass'. A -variable of type 'MyDiscoveryReferenceClass' class is taken to demonstrate -members of 'MyDiscoveryReferenceClass'. -Note : The dataservice.disco file should be copied to c:\Inetpub\wwwroot -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Web::Services::Discovery; -using namespace System::Net; - -// Class derived from DiscoveryReference class and overriding it members. -ref class MyDiscoveryReferenceClass: public DiscoveryReference -{ -private: - String^ myDocumentUrl; - -public: - property String^ DefaultFilename - { - virtual String^ get() override - { - return "dataservice.disco"; - } - } - - virtual Object^ ReadDocument( Stream^ stream ) override - { - return stream; - } - - void Resolve() - { - try - { - DiscoveryDocument^ myDiscoveryRefDocument; - myDiscoveryRefDocument = DiscoveryReference::ClientProtocol->Discover( Url ); - } - catch ( Exception^ e ) - { - throw e; - } - } - -protected: - virtual void Resolve( String^ /*contentType*/, Stream^ /*stream*/ ) override {} - -public: - property String^ Url - { - virtual String^ get() override - { - return myDocumentUrl; - } - - virtual void set( String^ value ) override - { - myDocumentUrl = value; - } - } - - virtual void WriteDocument( Object^ document, System::IO::Stream^ stream ) override - { - DiscoveryDocument^ myDiscoveryDocument = dynamic_cast(document); - myDiscoveryDocument->Write( stream ); - } -}; - -int main() -{ - try - { - DiscoveryDocument^ myDiscoveryDocument; - StreamReader^ myStreamReader = gcnew StreamReader( "c:\\Inetpub\\wwwroot\\dataservice.disco" ); - FileStream^ myStream = gcnew FileStream( "c:\\MyDiscovery.disco",FileMode::OpenOrCreate ); - Console::WriteLine( "Demonstrating DiscoveryReference class." ); - - // Read discovery file. - myDiscoveryDocument = DiscoveryDocument::Read( myStreamReader ); - - // Create a new instance of the DiscoveryReference class. - MyDiscoveryReferenceClass^ myDiscoveryReference; - myDiscoveryReference = gcnew MyDiscoveryReferenceClass; - DiscoveryClientProtocol^ myDiscoveryClientProtocol = gcnew DiscoveryClientProtocol; - myDiscoveryClientProtocol->Credentials = CredentialCache::DefaultCredentials; - - // Set the client protocol. - myDiscoveryReference->ClientProtocol = myDiscoveryClientProtocol; - - // Read the default file name. - Console::WriteLine( "Default file name is: {0}", myDiscoveryReference->DefaultFilename ); - - // Write the document. - myDiscoveryReference->WriteDocument( myDiscoveryDocument, myStream ); - - // Read the document. - myDiscoveryReference->ReadDocument( myStream ); - - // Set the URL. - myDiscoveryReference->Url = "http://localhost/dataservice.disco"; - Console::WriteLine( "Url is: {0}", myDiscoveryReference->Url ); - - // Resolve the URL. - myDiscoveryReference->Resolve(); - myStreamReader->Close(); - myStream->Close(); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught! - {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryReferenceCollection/CPP/discoveryreferencecollection.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryReferenceCollection/CPP/discoveryreferencecollection.cpp deleted file mode 100644 index d41b200102372..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DiscoveryReferenceCollection/CPP/discoveryreferencecollection.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// System::Web::Services::Discovery.DiscoveryReferenceCollection::DiscoveryReferenceCollection -// System::Web::Services::Discovery.DiscoveryReferenceCollection->Add(DiscoveryReference) -// System::Web::Services::Discovery.DiscoveryReferenceCollection::Contains(DiscoveryReference) -// System::Web::Services::Discovery.DiscoveryReferenceCollection::Item(int) -// System::Web::Services::Discovery.DiscoveryReferenceCollection::Remove(DiscoveryReference) -// System::Web::Services::Discovery.DiscoveryReferenceCollection - -/* The following example demonstrates the usage of 'DiscoveryReferenceCollection' class, 'Add', 'Contains', -* 'Item'and 'Remove' methods and its constructor. A variable of 'DiscoveryReferenceCollection' -* class is taken. Two 'DiscoveryReference' type member is added to the collection. Using this -* various methods of 'DiscoveryReferenceCollection' class are demonstrated. -*/ - -// -#using - -using namespace System; -using namespace System::IO; -using namespace System::Web::Services::Discovery; - -// -int main() -{ - DiscoveryDocumentReference^ myDiscoveryDocReference1 = gcnew DiscoveryDocumentReference; - DiscoveryDocumentReference^ myDiscoveryDocReference2 = gcnew DiscoveryDocumentReference; - DiscoveryReference^ myDiscoveryReference; - Console::WriteLine( "Demonstrating DiscoveryReferenceCollection class." ); - - // Create new DiscoveryReferenceCollection. - DiscoveryReferenceCollection^ myDiscoveryReferenceCollection = gcnew DiscoveryReferenceCollection; - - // Access the Count method. - Console::WriteLine( "The number of elements in the collection is: {0}", myDiscoveryReferenceCollection->Count ); - - // Add elements to the collection. - myDiscoveryReferenceCollection->Add( myDiscoveryDocReference1 ); - myDiscoveryReferenceCollection->Add( myDiscoveryDocReference2 ); - Console::WriteLine( "The number of elements in the collection after adding two elements to the collection: {0}", myDiscoveryReferenceCollection->Count ); - - // Call the Contains method. - if ( myDiscoveryReferenceCollection->Contains( myDiscoveryDocReference1 ) != true ) - { - throw gcnew Exception( "Element not found in collection." ); - } - - // Access the indexed member. - myDiscoveryReference = dynamic_cast(myDiscoveryReferenceCollection[ 0 ]); - if ( myDiscoveryReference == nullptr ) - { - throw gcnew Exception( "Element not found in collection." ); - } - - // Remove one element from collection. - myDiscoveryReferenceCollection->Remove( myDiscoveryDocReference1 ); - Console::WriteLine( "The number of elements in the collection after removing one element is: {0}", myDiscoveryReferenceCollection->Count ); -} -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Discovery_SoapBinding1/CPP/discovery_soapbinding.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Discovery_SoapBinding1/CPP/discovery_soapbinding.cpp deleted file mode 100644 index 36bc202ae4d62..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Discovery_SoapBinding1/CPP/discovery_soapbinding.cpp +++ /dev/null @@ -1,64 +0,0 @@ - - -// System::Web::Services::Discovery.SoapBinding::SoapBinding -// System::Web::Services::Discovery.SoapBinding->Address -// System::Web::Services::Discovery.SoapBinding::Binding -// System::Web::Services::Discovery.SoapBinding::Namespace -// System::Web::Services::Discovery.SoapBinding -/* The following example demonstrates 'Discovery::SoapBinding' class, its -* constructor, 'Address', 'Binding' and 'Namespace' members. A variable -* of type 'SoapBinding' is created. The properties are set. -* Finally the created 'SoapBinding' is added to 'DiscoveryClientProtocol'. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::Xml; -using namespace System::Web::Services::Discovery; -int main() -{ - try - { - - // - // 'dataservice.disco' is a sample discovery document. - String^ myStringUrl = "http://localhost/dataservice.disco"; - - // Call the Discover method to populate the Documents property. - DiscoveryClientProtocol^ myDiscoveryClientProtocol = gcnew DiscoveryClientProtocol; - myDiscoveryClientProtocol->Credentials = CredentialCache::DefaultCredentials; - DiscoveryDocument^ myDiscoveryDocument = myDiscoveryClientProtocol->Discover( myStringUrl ); - Console::WriteLine( "Demonstrating the Discovery::SoapBinding class." ); - - // Create a SOAP binding. - SoapBinding^ mySoapBinding = gcnew SoapBinding; - - // Assign an address to the created SOAP binding. - mySoapBinding->Address = "http://schemas.xmlsoap.org/disco/scl/"; - - // Bind the created SOAP binding with a new XmlQualifiedName. - mySoapBinding->Binding = gcnew XmlQualifiedName( "String*","http://www.w3.org/2001/XMLSchema" ); - - // Add the created SOAP binding to the DiscoveryClientProtocol. - myDiscoveryClientProtocol->AdditionalInformation->Add( mySoapBinding ); - - // Display the namespace associated with SOAP binding. - Console::WriteLine( "Namespace associated with the SOAP binding is: {0}", SoapBinding::Namespace ); - - // Write all the information of the DiscoveryClientProtocol. - myDiscoveryClientProtocol->WriteAll( ".", "results.discomap" ); - - // - } - catch ( Exception^ e ) - { - Console::WriteLine( e ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_Constructor/CPP/dnspermission_constructor.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_Constructor/CPP/dnspermission_constructor.cpp deleted file mode 100644 index cfe2812f5b9df..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_Constructor/CPP/dnspermission_constructor.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* -This program demonstrates the 'Constructor' of 'DnsPermission' class. -It creates an instance of 'DnsPermission' class and checks for permission.Then it -creates a 'SecurityElement' Object* and prints it's attributes which hold the XML -encoding of 'DnsPermission' instance . -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Collections; - -public ref class DnsPermissionExample -{ - // -public: - void useDns() - { - // Create a DnsPermission instance. - DnsPermission^ permission = gcnew DnsPermission( PermissionState::Unrestricted ); - - // Check for permission. - permission->Demand(); - // Create a SecurityElement Object* to hold XML encoding of the DnsPermission instance. - SecurityElement^ securityElementObj = permission->ToXml(); - Console::WriteLine( "Tag, Attributes and Values of 'DnsPermission' instance :" ); - Console::WriteLine( "\n\tTag : {0}", securityElementObj->Tag ); - // Print the attributes and values. - PrintKeysAndValues( securityElementObj->Attributes ); - } - -private: - void PrintKeysAndValues( Hashtable^ myList ) - { - // Get the enumerator that can iterate through the hash table. - IDictionaryEnumerator^ myEnumerator = myList->GetEnumerator(); - Console::WriteLine( "\n\t-KEY-\t-VALUE-" ); - while ( myEnumerator->MoveNext() ) - { - Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value ); - } - Console::WriteLine(); - } - // -}; - -int main() -{ - try - { - DnsPermissionExample^ dnsPermissionExampleObj = gcnew DnsPermissionExample; - dnsPermissionExampleObj->useDns(); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "SecurityException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_Copy/CPP/dnspermission_copy.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_Copy/CPP/dnspermission_copy.cpp deleted file mode 100644 index 0e9c78efb3901..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_Copy/CPP/dnspermission_copy.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* -This program demonstrates the 'Copy' method of 'DnsPermission' class. -It creates an identical copy of 'DnsPermission' instance. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Collections; - -class DnsPermissionExample -{ - // -public: - void UseDns() - { - // Create a DnsPermission instance. - DnsPermission^ myPermission = gcnew DnsPermission( PermissionState::Unrestricted ); - // Check for permission. - myPermission->Demand(); - // Create an identical copy of the above 'DnsPermission' Object*. - DnsPermission^ myPermissionCopy = dynamic_cast(myPermission->Copy()); - Console::WriteLine( "Attributes and Values of 'DnsPermission' instance :" ); - // Print the attributes and values. - PrintKeysAndValues( myPermission->ToXml()->Attributes ); - Console::WriteLine( "Attribute and values of copied instance :" ); - PrintKeysAndValues( myPermissionCopy->ToXml()->Attributes ); - } - -private: - void PrintKeysAndValues( Hashtable^ myHashtable ) - { - // Get the enumerator that can iterate through the hash table. - IDictionaryEnumerator^ myEnumerator = myHashtable->GetEnumerator(); - Console::WriteLine( "\t-KEY-\t-VALUE-" ); - while ( myEnumerator->MoveNext() ) - { - Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value ); - } - Console::WriteLine(); - } - // -}; - -int main() -{ - try - { - DnsPermissionExample * dnsPermissionExampleObj = new DnsPermissionExample; - dnsPermissionExampleObj->UseDns(); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "SecurityException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_FromXml/CPP/dnspermission_fromxml.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_FromXml/CPP/dnspermission_fromxml.cpp deleted file mode 100644 index 3674b00df6c9f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_FromXml/CPP/dnspermission_fromxml.cpp +++ /dev/null @@ -1,95 +0,0 @@ -/* -This program demonstrates the 'FromXml' method of 'DnsPermission' class. -It creates an instance of 'DnsPermission' class and prints the XML encoding of that instance.Then it -creates a 'SecurityElement' Object* and adds the attributes corresponding to the above 'DnsPermission' -Object*. A new 'DnsPermission' instance is reconstructed from the 'SecurityElement' instance by calling -'FromXml' method and it's XML encoding is printed. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Collections; - -public ref class DnsPermissionExample -{ - // -public: - void ConstructDnsPermission() - { - try - { - // Create a DnsPermission instance. - DnsPermission^ permission = gcnew DnsPermission( PermissionState::None ); - // Create a SecurityElement instance by calling the ToXml method on the - // DnsPermission instance. - // Print its attributes, which hold the XML encoding of the DnsPermission - // instance. - Console::WriteLine( "Attributes and Values of 'DnsPermission' instance :" ); - PrintKeysAndValues( permission->ToXml()->Attributes ); - - // Create a SecurityElement instance. - SecurityElement^ securityElementObj = gcnew SecurityElement( "IPermission" ); - // Add attributes and values of the SecurityElement instance corresponding to - // the permission instance. - securityElementObj->AddAttribute( "version", "1" ); - securityElementObj->AddAttribute( "Unrestricted", "true" ); - securityElementObj->AddAttribute( "class", "System.Net.DnsPermission" ); - - // Reconstruct a DnsPermission instance from an XML encoding. - DnsPermission^ permission1 = gcnew DnsPermission( PermissionState::None ); - permission1->FromXml( securityElementObj ); - - // Print the attributes and values of the constructed DnsPermission Object*. - Console::WriteLine( "After reconstruction Attributes and Values of new DnsPermission instance :" ); - PrintKeysAndValues( permission1->ToXml()->Attributes ); - } - catch ( NullReferenceException^ e ) - { - Console::WriteLine( "NullReferenceException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "SecurityException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( ArgumentNullException^ e ) - { - Console::WriteLine( "ArgumentNullException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - } - -private: - void PrintKeysAndValues( Hashtable^ myList ) - { - // Get the enumerator that can iterate through the hash table. - IDictionaryEnumerator^ myEnumerator = myList->GetEnumerator(); - Console::WriteLine( "\t-KEY-\t-VALUE-" ); - while ( myEnumerator->MoveNext() ) - { - Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value ); - } - Console::WriteLine(); - } - // -}; - -int main() -{ - DnsPermissionExample^ dnsPermissionExampleObj = gcnew DnsPermissionExample; - dnsPermissionExampleObj->ConstructDnsPermission(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_IsSubsetOf/CPP/dnspermission_issubsetof.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_IsSubsetOf/CPP/dnspermission_issubsetof.cpp deleted file mode 100644 index 929717f0e2e0a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_IsSubsetOf/CPP/dnspermission_issubsetof.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/* -This program demonstrates the 'IsSubsetOf' method of 'DnsPermission' class. -'IsSubsetOf' method returns true, if the current DnsPermission instance allows no -more access to DNS servers than does the specified 'DnsPermission' instance. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Collections; - -public ref class DnsPermissionExample -{ -private: - DnsPermission^ permission; - - // -public: - void useDns() - { - // Create a DnsPermission instance. - permission = gcnew DnsPermission( PermissionState::Unrestricted ); - DnsPermission^ dnsPermission1 = gcnew DnsPermission( PermissionState::None ); - // Check for permission. - permission->Demand(); - dnsPermission1->Demand(); - // Print the attributes and values. - Console::WriteLine( "Attributes and Values of 'DnsPermission' instance :" ); - PrintKeysAndValues( permission->ToXml()->Attributes ); - Console::WriteLine( "Attributes and Values of specified 'DnsPermission' instance :" ); - PrintKeysAndValues( dnsPermission1->ToXml()->Attributes ); - Subset( dnsPermission1 ); - } - -private: - void Subset( DnsPermission^ Permission1 ) - { - if ( permission->IsSubsetOf( Permission1 ) ) - { - Console::WriteLine( "Current 'DnsPermission' instance is a subset of specified 'DnsPermission' instance." ); - } - else - { - Console::WriteLine( "Current 'DnsPermission' instance is not a subset of specified 'DnsPermission' instance." ); - } - } - - void PrintKeysAndValues( Hashtable^ myList ) - { - // Get the enumerator that can iterate through the hash table. - IDictionaryEnumerator^ myEnumerator = myList->GetEnumerator(); - Console::WriteLine( "\t-KEY-\t-VALUE-" ); - while ( myEnumerator->MoveNext() ) - { - Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value ); - } - Console::WriteLine(); - } - // -}; - -int main() -{ - try - { - DnsPermissionExample^ dnsPermissionExampleObj = gcnew DnsPermissionExample; - dnsPermissionExampleObj->useDns(); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "SecurityException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_IsUnrestricted/CPP/dnspermission_isunrestricted.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_IsUnrestricted/CPP/dnspermission_isunrestricted.cpp deleted file mode 100644 index 0c760523b0295..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DnsPermission_IsUnrestricted/CPP/dnspermission_isunrestricted.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* -This program demonstrates the 'IsUnrestricted' method of 'DnsPermission' class. -It checks the overall permission state of the Object* and it will return true if the -'DnsPermission' instance was created with unrestricted permission state otherwise false. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Collections; - -public ref class DnsPermissionExample -{ - // -public: - void useDns() - { - // Create a DnsPermission instance. - DnsPermission^ permission = gcnew DnsPermission( PermissionState::Unrestricted ); - // Check for permission. - permission->Demand(); - Console::WriteLine( "Attributes and Values of DnsPermission instance :" ); - // Print the attributes and values. - PrintKeysAndValues( permission->ToXml()->Attributes ); - // Check the permission state. - if ( permission->IsUnrestricted() ) - { - Console::WriteLine( "Overall permissions : Unrestricted" ); - } - else - { - Console::WriteLine( "Overall permissions : Restricted" ); - } - } - -private: - void PrintKeysAndValues( Hashtable^ myList ) - { - // Get the enumerator that can iterate through the hash table. - IDictionaryEnumerator^ myEnumerator = myList->GetEnumerator(); - Console::WriteLine( "\t-KEY-\t-VALUE-" ); - while ( myEnumerator->MoveNext() ) - { - Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value ); - } - Console::WriteLine(); - } - // -}; - -int main() -{ - try - { - DnsPermissionExample^ dnsPermissionExampleObj = gcnew DnsPermissionExample; - dnsPermissionExampleObj->useDns(); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "SecurityException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Dns_Begin_EndResolve/CPP/dns_begin_endresolve.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Dns_Begin_EndResolve/CPP/dns_begin_endresolve.cpp deleted file mode 100644 index d3f14c02e8925..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Dns_Begin_EndResolve/CPP/dns_begin_endresolve.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* -This program demonstrates 'BeginResolve' and 'EndResolve' methods of Dns class. -It obtains the 'IPHostEntry' Object* by calling 'BeginResolve' and 'EndResolve' method -of 'Dns' class by passing a URL, a callback function and an instance of 'RequestState' -class.Then prints host name, IP address list and aliases. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Threading; - -// -// -public ref class DnsBeginGetHostByName -{ -public: - static System::Threading::ManualResetEvent^ allDone = nullptr; - ref class RequestState - { - public: - IPHostEntry^ host; - RequestState() - { - host = nullptr; - } - }; - - static void RespCallback( IAsyncResult^ ar ) - { - try - { - // Convert the IAsyncResult* Object* to a RequestState Object*. - RequestState^ tempRequestState = dynamic_cast(ar->AsyncState); - - // End the asynchronous request. - tempRequestState->host = Dns::EndResolve( ar ); - allDone->Set(); - } - catch ( ArgumentNullException^ e ) - { - Console::WriteLine( "ArgumentNullException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - } -}; - -int main() -{ - DnsBeginGetHostByName::allDone = gcnew ManualResetEvent( false ); - - // Create an instance of the RequestState class. - DnsBeginGetHostByName::RequestState^ myRequestState = - gcnew DnsBeginGetHostByName::RequestState; - - // Begin an asynchronous request for information like host name, IP addresses, or - // aliases for specified the specified URI. - IAsyncResult^ asyncResult = Dns::BeginResolve( "www.contoso.com", - gcnew AsyncCallback( DnsBeginGetHostByName::RespCallback ), myRequestState ); - - // Wait until asynchronous call completes. - DnsBeginGetHostByName::allDone->WaitOne(); - Console::WriteLine( "Host name : {0}", myRequestState->host->HostName ); - Console::WriteLine( "\nIP address list : " ); - for ( int index = 0; index < myRequestState->host->AddressList->Length; index++ ) - Console::WriteLine( myRequestState->host->AddressList[ index ] ); - Console::WriteLine( "\nAliases : " ); - for ( int index = 0; index < myRequestState->host->Aliases->Length; index++ ) - Console::WriteLine( myRequestState->host->Aliases[ index ] ); -} -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Dns_GetHostByAddress_IPAddress/CPP/dns_gethostbyaddress_ipaddress.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Dns_GetHostByAddress_IPAddress/CPP/dns_gethostbyaddress_ipaddress.cpp deleted file mode 100644 index 500d528483db1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Dns_GetHostByAddress_IPAddress/CPP/dns_gethostbyaddress_ipaddress.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* -This program demonstrates 'GetHostByAddress(IPAddress)' method of 'Dns' class. -It takes an IP address String* from commandline or uses default value and creates -an instance of IPAddress for the specified IP address String*. Obtains the IPHostEntry -Object* by calling 'GetHostByAddress' method of 'Dns' class and prints host name, -IP address list and aliases. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; - -class DnsHostByAddress -{ -public: - void DisplayHostAddress( String^ IpAddressString ) - { - // Call 'GetHostByAddress(IPAddress)' method giving an 'IPAddress' Object* as argument. - // Obtain an 'IPHostEntry' instance, containing address information of the specified host. - // - try - { - IPAddress^ hostIPAddress = IPAddress::Parse( IpAddressString ); - IPHostEntry^ hostInfo = Dns::GetHostByAddress( hostIPAddress ); - - // Get the IP address list that resolves to the host names contained in - // the Alias property. - array^address = hostInfo->AddressList; - - // Get the alias names of the addresses in the IP address list. - array^alias = hostInfo->Aliases; - Console::WriteLine( "Host name : {0}", hostInfo->HostName ); - Console::WriteLine( "\nAliases :" ); - for ( int index = 0; index < alias->Length; index++ ) - Console::WriteLine( alias[ index ] ); - Console::WriteLine( "\nIP address list : " ); - for ( int index = 0; index < address->Length; index++ ) - Console::WriteLine( address[ index ] ); - } - catch ( SocketException^ e ) - { - Console::WriteLine( "SocketException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( FormatException^ e ) - { - Console::WriteLine( "FormatException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( ArgumentNullException^ e ) - { - Console::WriteLine( "ArgumentNullException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - // - } -}; - -int main() -{ - String^ IpAddressString = ""; - DnsHostByAddress * myDnsHostByAddress = new DnsHostByAddress; - Console::Write( "Type an IP address (press Enter for default, default is '207.46.131.199'): " ); - IpAddressString = Console::ReadLine(); - if ( IpAddressString->Length > 0 ) - myDnsHostByAddress->DisplayHostAddress( IpAddressString ); - else - myDnsHostByAddress->DisplayHostAddress( "207.46.131.199" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Dns_GetHostByName/CPP/dns_gethostbyname.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Dns_GetHostByName/CPP/dns_gethostbyname.cpp deleted file mode 100644 index a65db62149f60..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Dns_GetHostByName/CPP/dns_gethostbyname.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/* -This program demonstrates 'GetHostByName' method of 'Dns' class. -It takes a URL String* from commandline or uses default value, and obtains -the 'IPHostEntry' Object* by calling 'GetHostByName' method of 'Dns' class.Then -prints host name, IP address list and aliases. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; - -public ref class DnsHostByName -{ -public: - void DisplayHostName( String^ hostName ) - { - // Call the GetHostByName method passing a DNS style host name(for example, - // S"www.contoso.com") as an argument. - // Obtain the IPHostEntry instance, that contains information of the specified host. - // - try - { - IPHostEntry^ hostInfo = Dns::GetHostByName( hostName ); - - // Get the IP address list that resolves to the host names contained in the - // Alias property. - array^address = hostInfo->AddressList; - - // Get the alias names of the addresses in the IP address list. - array^alias = hostInfo->Aliases; - Console::WriteLine( "Host name : {0}", hostInfo->HostName ); - Console::WriteLine( "\nAliases : " ); - for ( int index = 0; index < alias->Length; index++ ) - Console::WriteLine( alias[ index ] ); - Console::WriteLine( "\nIP address list : " ); - for ( int index = 0; index < address->Length; index++ ) - Console::WriteLine( address[ index ] ); - } - catch ( SocketException^ e ) - { - Console::WriteLine( "SocketException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( ArgumentNullException^ e ) - { - Console::WriteLine( "ArgumentNullException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - // - } -}; - -int main() -{ - String^ hostName = ""; - DnsHostByName^ myDnsHostByName = gcnew DnsHostByName; - Console::Write( "Type a URL (press Enter for default, default is 'www.microsoft.net') : " ); - hostName = Console::ReadLine(); - if ( hostName->Length > 0 ) - myDnsHostByName->DisplayHostName( hostName ); - else - myDnsHostByName->DisplayHostName( "www.microsoft.net" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Dns_GetHostName/CPP/dns_gethostname.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Dns_GetHostName/CPP/dns_gethostname.cpp deleted file mode 100644 index 975e9204362f4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Dns_GetHostName/CPP/dns_gethostname.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/* -This program demonstrates the 'GetHostName' method of 'Dns' class. -It creates a 'DnsHostName' instance and calls 'GetHostName' method to get the local host -computer name. Then prints the computer name on the console. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; - -public ref class DnsHostName -{ - // -public: - void DisplayLocalHostName() - { - try - { - // Get the local computer host name. - String^ hostName = Dns::GetHostName(); - Console::WriteLine( "Computer name : {0}", hostName ); - } - catch ( SocketException^ e ) - { - Console::WriteLine( "SocketException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - } - // -}; - -int main() -{ - DnsHostName^ dnsHostNameObj = gcnew DnsHostName; - dnsHostNameObj->DisplayLocalHostName(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Dns_Resolve/CPP/dns_resolve.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Dns_Resolve/CPP/dns_resolve.cpp deleted file mode 100644 index f280df4899907..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Dns_Resolve/CPP/dns_resolve.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/* -This program demonstrates 'Resolve' method of 'Dns' class. -It takes a URL or IP address String* from commandline or uses default value and obtains the 'IPHostEntry' -Object* by calling 'Resolve' method of 'Dns' class. Then prints host name, IP address list and aliases. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; - -class DnsResolve -{ -public: - void DisplayHostAddress( String^ hostString ) - { - // Call the Resolve method passing a DNS style host name or an IP address in dotted-quad notation - // (for example, S"www.contoso.com" or S"207.46.131.199") to obtain an IPHostEntry instance that contains - // address information for the specified host. - // - try - { - IPHostEntry^ hostInfo = Dns::Resolve( hostString ); - - // Get the IP address list that resolves to the host names contained in the - // Alias property. - array^address = hostInfo->AddressList; - - // Get the alias names of the addresses in the IP address list. - array^alias = hostInfo->Aliases; - Console::WriteLine( "Host name : {0}", hostInfo->HostName ); - Console::WriteLine( "\nAliases : " ); - for ( int index = 0; index < alias->Length; index++ ) - { - Console::WriteLine( alias[ index ] ); - - } - Console::WriteLine( "\nIP Address list :" ); - for ( int index = 0; index < address->Length; index++ ) - { - Console::WriteLine( address[ index ] ); - - } - } - catch ( SocketException^ e ) - { - Console::WriteLine( "SocketException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( ArgumentNullException^ e ) - { - Console::WriteLine( "ArgumentNullException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( NullReferenceException^ e ) - { - Console::WriteLine( "NullReferenceException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - // - } -}; - -int main() -{ - String^ hostString = ""; - DnsResolve * myDnsResolve = new DnsResolve; - Console::Write( "Type a URL or IP address (press Enter for default, default is '207.46.131.199') : " ); - hostString = Console::ReadLine(); - if ( hostString->Length > 0 ) - myDnsResolve->DisplayHostAddress( hostString ); - else - myDnsResolve->DisplayHostAddress( "207.46.131.199" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DocumentableItemsample/CPP/MathService_cpp.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/DocumentableItemsample/CPP/MathService_cpp.wsdl deleted file mode 100644 index 9aa220c7ed2ec..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DocumentableItemsample/CPP/MathService_cpp.wsdl +++ /dev/null @@ -1,352 +0,0 @@ - - - - - All types have been defined here - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Port Type "MathServiceHttpGet" is defined here - - - - - - - - - - - - - - - - - - - - - Port Type "MathServiceHttpPost" is defined here - - - - - - - - - - - - - - - - - - - - - Port Type "MathServiceSoap" is defined here - - - - - - - - - - - - - - - - - - - - - Binding "MathServiceSoap" is defined here - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Binding "MathServiceHttpGet" is defined here - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Binding "MathServiceHttpPost" is defined here - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/DocumentableItemsample/CPP/documentableitemsample.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/DocumentableItemsample/CPP/documentableitemsample.cpp deleted file mode 100644 index 16ae3564724d1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/DocumentableItemsample/CPP/documentableitemsample.cpp +++ /dev/null @@ -1,48 +0,0 @@ - - -// System::Web::Services::Description.DocumentableItem::Documentation; -/* -The following program demonstrates the property 'Documentation' of abstract class 'DocumentableItem' -The program reads a wsdl document S"MathService::wsdl" and instantiates a ServiceDescription instance -from the WSDL document. -This program demonstrates a generic utility function which can accept any of Types, PortType and Binding -classes as parameters. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Web::Services::Description; -using namespace System::Collections; - -// Prints documentation associated with a wsdl element. -void PrintDocumentation( DocumentableItem^ myItem ) -{ - Console::WriteLine( "\t {0}", myItem->Documentation ); -} - -int main() -{ - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_cpp.wsdl" ); - Console::WriteLine( "Documentation Element for type is " ); - PrintDocumentation( myServiceDescription->Types ); - IEnumerator^ myEnum = myServiceDescription->PortTypes->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - PortType^ myPortType = safe_cast(myEnum->Current); - Console::WriteLine( "Documentation Element for Port Type {0} is ", myPortType->Name ); - PrintDocumentation( myPortType ); - } - - myEnum = myServiceDescription->Bindings->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Binding^ myBinding = safe_cast(myEnum->Current); - Console::WriteLine( "Documentation Element for Port Type {0} is ", myBinding->Name ); - PrintDocumentation( myBinding ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices Registration/CPP/deployservicedcomponent.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices Registration/CPP/deployservicedcomponent.cpp deleted file mode 100644 index dce62908316f9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices Registration/CPP/deployservicedcomponent.cpp +++ /dev/null @@ -1,69 +0,0 @@ -#using - -using namespace System; -using namespace System::EnterpriseServices; - -[STAThread] -int main() -{ - // - try - { - // - String^ applicationName = "Queued Component"; - String^ typeLibraryName = nullptr; - RegistrationHelper^ helper = gcnew RegistrationHelper; - // Call the InstallAssembly method passing it the name of the assembly to - // install as a COM+ application, the COM+ application name, and - // the name of the type library file. - // Setting the application name and the type library to NULL (nothing in Visual Basic .NET - // allows you to use the COM+ application name that is given in the assembly and - // the default type library name. The application name in the assembly metadata - // takes precedence over the application name you provide to InstallAssembly. - helper->InstallAssembly( "C:..\\..\\QueuedComponent.dll", applicationName, typeLibraryName, InstallationFlags::CreateTargetApplication ); - Console::WriteLine( "Registration succeeded: Type library {0} created.", typeLibraryName ); - Console::Read(); - // - - // - // Create a RegistrationConfig object and set its attributes - // Create a RegistrationHelper object, and call the InstallAssemblyFromConfig - // method by passing the RegistrationConfiguration object to it as a - // reference object - RegistrationConfig^ registrationConfiguration = gcnew RegistrationConfig; - registrationConfiguration->AssemblyFile = "C:..\\..\\QueuedComponent.dll"; - registrationConfiguration->Application = "MyApp"; - registrationConfiguration->InstallationFlags = InstallationFlags::CreateTargetApplication; - RegistrationHelper^ helperFromConfig = gcnew RegistrationHelper; - helperFromConfig->InstallAssemblyFromConfig( registrationConfiguration ); - // - } - // - catch ( RegistrationException^ e ) - { - Console::WriteLine( e->Message ); - // - - // - // Check whether the ErrorInfo property of the RegistrationException object is null. - // If there is no extended error information about - // methods related to multiple COM+ objects ErrorInfo will be null. - if ( e->ErrorInfo != nullptr ) - { - // Gets an array of RegistrationErrorInfo objects describing registration errors - array^ registrationErrorInfos = e->ErrorInfo; - - // Iterate through the array of RegistrationErrorInfo objects and disply the - // ErrorString for each object. - System::Collections::IEnumerator^ myEnum = registrationErrorInfos->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - RegistrationErrorInfo^ registrationErrorInfo = (RegistrationErrorInfo^)( myEnum->Current ); - Console::WriteLine( registrationErrorInfo->ErrorString ); - } - } - // - Console::Read(); - } - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesContextUtil/CPP/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesContextUtil/CPP/class1.cpp deleted file mode 100644 index 45c9a032b730d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesContextUtil/CPP/class1.cpp +++ /dev/null @@ -1,108 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::EnterpriseServices; -using namespace System::Reflection; - -// -[Synchronization(SynchronizationOption::Required)] -public ref class ContextUtil_ActivityId: public ServicedComponent -{ -public: - void Example() - { - // Display the ActivityID associated with the current COM+ context. - Console::WriteLine( "Activity ID: {0}", ContextUtil::ActivityId ); - } -}; -// - -// -[Synchronization(SynchronizationOption::Required)] -public ref class ContextUtil_ApplicationInstanceId: public ServicedComponent -{ -public: - void Example() - { - // Display the ApplicationInstanceId associated with the current COM+ - // context. - Console::WriteLine( "Application Instance ID: {0}", - ContextUtil::ApplicationInstanceId ); - } -}; -// - -// -[Transaction(TransactionOption::Required)] -public ref class ContextUtil_DisableCommit: public ServicedComponent -{ -public: - void Example() - { - // Set both the consistent bit and the done bit to false for the - // current COM+ context. - ContextUtil::DisableCommit(); - } -}; -// - -// -[Transaction(TransactionOption::Required)] -public ref class ContextUtil_EnableCommit: public ServicedComponent -{ -public: - void Example() - { - // Set the consistent bit to true and the done bit to false for the - // current COM+ context. - ContextUtil::EnableCommit(); - } -}; -// - -// -[Transaction(TransactionOption::Required)] -public ref class ContextUtil_IsInTransaction: public ServicedComponent -{ -public: - void Example() - { - // Display whether the current COM+ context is enlisted in a - // transaction. - Console::WriteLine( "Current context enlisted in transaction: {0}", - ContextUtil::IsInTransaction ); - } -}; -// - -// -[SecurityRole("Role1")] -public ref class ContextUtil_IsSecurityEnabled: public ServicedComponent -{ -public: - void Example() - { - // Display whether role-based security is active for the current COM+ - // context. - Console::WriteLine( "Role-based security active in current context: {0}", - ContextUtil::IsSecurityEnabled ); - } -}; -// - -// -[Transaction(TransactionOption::Required)] -public ref class ContextUtil_TransactionId: public ServicedComponent -{ -public: - void Example() - { - // Display the ID of the transaction in which the current COM+ context - // is enlisted. - Console::WriteLine( "Transaction ID: {0}", ContextUtil::TransactionId ); - } -}; -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesInterfaceQueuingAttribute/CPP/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesInterfaceQueuingAttribute/CPP/class1.cpp deleted file mode 100644 index 2924b763b8b35..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesInterfaceQueuingAttribute/CPP/class1.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// -#using - -using namespace System; -using namespace System::EnterpriseServices; -using namespace System::Reflection; - -// References: -// System.EnterpriseServices -// -[InterfaceQueuing] -interface class IInterfaceQueuingAttribute_Ctor{}; -// - -// -[InterfaceQueuing(true)] -interface class IInterfaceQueuingAttribute_Ctor_Bool{}; -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesObjectPoolingAttribute/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesObjectPoolingAttribute/cpp/class1.cpp deleted file mode 100644 index 3fbda4b806ec1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesObjectPoolingAttribute/cpp/class1.cpp +++ /dev/null @@ -1,72 +0,0 @@ -// -#using -using namespace System; -using namespace System::EnterpriseServices; - -// References: -// System.EnterpriseServices - -// -[ObjectPooling(true)] -public ref class ObjectPoolingAttributeCtorBool : public ServicedComponent -{ -}; -// - -// -[ObjectPooling(true, 1, 10)] -public ref class ObjectPoolingAttributeCtorBoolIntInt : - public ServicedComponent -{ -}; -// - -// -[ObjectPooling(1, 10)] -public ref class ObjectPoolingAttributeCtorIntInt : public ServicedComponent -{ -}; -// - -// -[ObjectPooling(false)] -public ref class ObjectPoolingAttributeEnabled : public ServicedComponent -{ -public: - void EnabledExample() - { - // Get the ObjectPoolingAttribute applied to the class. - ObjectPoolingAttribute^ attribute = - (ObjectPoolingAttribute^)Attribute::GetCustomAttribute( - this->GetType(), - ObjectPoolingAttribute::typeid, - false); - - // Display the current value of the attribute's Enabled property. - Console::WriteLine("ObjectPoolingAttribute.Enabled: {0}", - attribute->Enabled); - - // Set the Enabled property value of the attribute. - attribute->Enabled = true; - - // Display the new value of the attribute's Enabled property. - Console::WriteLine("ObjectPoolingAttribute.Enabled: {0}", - attribute->Enabled); - } -}; -// - -// - - -// Test client. -int main() -{ - // Create a new instance of each example class. - ObjectPoolingAttributeEnabled^ enabledExample = - gcnew ObjectPoolingAttributeEnabled(); - - // Demonstrate the ObjectPoolingAttribute properties. - enabledExample->EnabledExample(); -}; - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesObjectPoolingAttribute/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesObjectPoolingAttribute/cpp/makefile deleted file mode 100644 index f576735c8c9a2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesObjectPoolingAttribute/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -EnterpriseServicesObjectPoolingAttribute.exe : class1.cpp - cl /W4 /clr:pure /FeEnterpriseServicesObjectPoolingAttribute.exe class1.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesPrivateComponentAttribute/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesPrivateComponentAttribute/cpp/class1.cpp deleted file mode 100644 index 288dac0fdf8d3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesPrivateComponentAttribute/cpp/class1.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// -#using - -using namespace System; -using namespace System::EnterpriseServices; - -// References: -// System.EnterpriseServices - -// - -// Note: Access checks must be performed at the component level to allow access -// to private components. -[assembly: ApplicationAccessControl(false, -AccessChecksLevel=AccessChecksLevelOption::ApplicationComponent)]; - -[PrivateComponent] -public ref class PrivateComponentAttributeExample : public ServicedComponent -{ -public: - void DisplayMessage() - { - // Display some output. - Console::WriteLine("Private component called successfully."); - } -}; -// - -public ref class PrivateComponentAttributeTest : public ServicedComponent -{ -public: - static void Test() - { - // Create a new instance of the example class. - PrivateComponentAttributeExample^ example = - gcnew PrivateComponentAttributeExample(); - - // Call a method on the class. - example->DisplayMessage(); - } -}; - - -// - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesPrivateComponentAttribute/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesPrivateComponentAttribute/cpp/makefile deleted file mode 100644 index eae4d7f4ddc43..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesPrivateComponentAttribute/cpp/makefile +++ /dev/null @@ -1,4 +0,0 @@ -EnterpriseServicesPrivateComponentAttribute.dll: class1.cpp - cl /LD /FeEnterpriseServicesPrivateComponentAttribute.dll /clr:pure class1.cpp - - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesSynchronizationOption/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesSynchronizationOption/cpp/class1.cpp deleted file mode 100644 index de1dd4ae5ab30..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesSynchronizationOption/cpp/class1.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// -#using - -using namespace System; -using namespace System::EnterpriseServices; - -// References: -// System.EnterpriseServices - -// An instance of this class will not join an activity, but can share its -// caller's context even if its caller is configured as NotSupported, -// Supported, Required, or RequiresNew. -[Synchronization(SynchronizationOption::Disabled)] -public ref class SynchronizationAttribute_SynchronizationDisabled : - public ServicedComponent -{ -}; - -// An instance of this class will not join an activity, and will share its -// caller's context only if its caller is also configured as NotSupported. -[Synchronization(SynchronizationOption::NotSupported)] -public ref class SynchronizationAttribute_SynchronizationNotSupported : - public ServicedComponent -{ -}; - -// An instance of this class will join its caller's activity if one exists. -[Synchronization(SynchronizationOption::Supported)] -public ref class SynchronizationAttribute_SynchronizationSupported : - public ServicedComponent -{ -}; - -// An instance of this class will join its caller's activity if one exists. -// If not, a new activity will be created for it. -[Synchronization(SynchronizationOption::Required)] -public ref class SynchronizationAttribute_SynchronizationRequired : - public ServicedComponent -{ -}; - -// A new activity will always be created for an instance of this class. -[Synchronization(SynchronizationOption::RequiresNew)] -public ref class SynchronizationAttribute_SynchronizationRequiresNew : - public ServicedComponent -{ -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesSynchronizationOption/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesSynchronizationOption/cpp/makefile deleted file mode 100644 index d1a0f4b635a51..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesSynchronizationOption/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -EnterpriseServicesSynchronizationOption.dll : class1.cpp - cl /clr:pure /LD /FeEnterpriseServicesSynchronizationOption.dll class1.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesTransactionIsolationLevel/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesTransactionIsolationLevel/cpp/class1.cpp deleted file mode 100644 index 95137a20bbc90..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesTransactionIsolationLevel/cpp/class1.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// -#using - -using namespace System; -using namespace System::EnterpriseServices; -using namespace System::Reflection; - -// References: -// System.EnterpriseServices - -// An instance of this class will inherit its caller's transaction isolation -// level if available. If not, it will use isolation level Serializable. -[Transaction(Isolation=TransactionIsolationLevel::Any)] -public ref class IsolationAny : public ServicedComponent -{ -}; - -// An instance of this class will read only committed data, but non-repeatable -// reads and phantom rows are still possible. -[Transaction(Isolation=TransactionIsolationLevel::ReadCommitted)] -public ref class IsolationReadCommitted : public ServicedComponent -{ -}; - -// An instance of this class will read committed and uncommitted data, so dirty -// reads, non-repeatable reads, and phantom rows are possible. -[Transaction(Isolation=TransactionIsolationLevel::ReadUncommitted)] -public ref class IsolationReadUncommitted : public ServicedComponent -{ -}; - -// An instance of this class will read only committed data and place shared -// locks on the data, preventing other users from modifying it, but other users -// can still insert rows into the data set, so phantom rows are still possible. -[Transaction(Isolation=TransactionIsolationLevel::RepeatableRead)] -public ref class IsolationRepeatableRead : public ServicedComponent -{ -}; - -// An instance of this class will read only committed data and place a range -// lock on the data set, preventing other users from updating or inserting rows -// into the data set until its transaction is complete. -[Transaction(Isolation=TransactionIsolationLevel::Serializable)] -public ref class IsolationSerializable : public ServicedComponent -{ -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesTransactionIsolationLevel/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesTransactionIsolationLevel/cpp/makefile deleted file mode 100644 index bb7da43195575..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesTransactionIsolationLevel/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -EnterpriseServicesTransactionIsolationLevel.dll: class1.cpp - cl /FeEnterpriseServicesTransactionIsolationLevel.dll /clr:pure class1.cpp /LD diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesTransactionOption/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesTransactionOption/cpp/class1.cpp deleted file mode 100644 index f146dfea0784b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesTransactionOption/cpp/class1.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// -#using - -using namespace System; -using namespace System::EnterpriseServices; -using namespace System::Reflection; - -// References: -// System.EnterpriseServices - -// An instance of this class will not participate in transactions, but can -// share its caller's context even if its caller is configured as -// NotSupported, Supported, Required, or RequiresNew. -[Transaction(TransactionOption::Disabled)] -public ref class TransactionDisabled : public ServicedComponent -{ -}; - -// An instance of this class will not participate in transactions, and will -// share its caller's context only if its caller is also configured as -// NotSupported. -[Transaction(TransactionOption::NotSupported)] -public ref class TransactionNotSupported : public ServicedComponent -{ -}; - -// An instance of this class will participate in its caller's transaction -// if one exists. -[Transaction(TransactionOption::Supported)] -public ref class TransactionSupported : public ServicedComponent -{ -}; - -// An instance of this class will participate in its caller's transaction -// if one exists. If not, a new transaction will be created for it. -[Transaction(TransactionOption::Required)] -public ref class TransactionRequired : public ServicedComponent -{ -}; - -// A new transaction will always be created for an instance of this class. -[Transaction(TransactionOption::RequiresNew)] -public ref class TransactionRequiresNew : public ServicedComponent -{ -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesTransactionOption/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesTransactionOption/cpp/makefile deleted file mode 100644 index 0c1c3eb6b2192..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServicesTransactionOption/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -EnterpriseServicesTransactionOption.dll : class1.cpp - cl /W4 /clr:pure /LD /FeEnterpriseServicesTransactionOption.dll class1.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Basic/CPP/calculator.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Basic/CPP/calculator.cpp deleted file mode 100644 index 17cf341fc64d2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Basic/CPP/calculator.cpp +++ /dev/null @@ -1,23 +0,0 @@ - - -#using - -using namespace System; -using namespace System::EnterpriseServices; - -// - -[assembly:ApplicationName("Calculator")]; -[assembly:ApplicationActivation(ActivationOption::Library)]; -[assembly:System::Reflection::AssemblyKeyFile("Calculator.snk")]; -public ref class Calculator: public ServicedComponent -{ -public: - int Add( int x, int y ) - { - return (x + y); - } - -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Crm/cpp/crmclient.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Crm/cpp/crmclient.cpp deleted file mode 100644 index c4aa994f1db8e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Crm/cpp/crmclient.cpp +++ /dev/null @@ -1,27 +0,0 @@ -// -#using "System.EnterpriseServices.dll" - -using namespace System; - -[assembly: System::Reflection::AssemblyKeyFile("CrmServer.key")]; - -int main () -{ - - // Create a new account object. The object is created in a COM+ server application. - Account^ account = gcnew Account(); - - // Transactionally debit the account. - try - { - account->Filename = System::IO::Path::GetFullPath("JohnDoe"); - account->AllowCommit = true; - account->DebitAccount(3); - } - finally - { - delete account; - } - -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Crm/cpp/crmserver.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Crm/cpp/crmserver.cpp deleted file mode 100644 index 19de5456c6e7c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Crm/cpp/crmserver.cpp +++ /dev/null @@ -1,289 +0,0 @@ -// -#using -#using -#using - -using namespace System; -using namespace System::EnterpriseServices; -using namespace System::EnterpriseServices::CompensatingResourceManager; -using namespace System::IO; -using namespace System::Diagnostics; - -// -[assembly: ApplicationActivation(ActivationOption::Server)]; -// -// -[assembly: ApplicationAccessControl(false)]; -// -// -[assembly: ApplicationCrmEnabled]; -// -// -[assembly: Description("A system for ensuring that the correct account " - "balance is stored after a transaction.")]; -// - -// Subroutines to read and write account files. -void WriteAccountBalance(String^ filename, int balance) -{ - StreamWriter^ streamWriter = gcnew StreamWriter(filename); - try - { - streamWriter->WriteLine(balance); - } - finally - { - delete streamWriter; - } -} - -int ReadAccountBalance(String^ filename) -{ - int balance = 0; - if (File::Exists(filename)) - { - StreamReader^ streamReader = gcnew StreamReader(filename); - try - { - String^ line = streamReader->ReadLine(); - balance = Int32::Parse(line); - } - finally - { - delete streamReader; - } - } - return balance; -} - -ref class AccountCompensator; - -// -// A CRM Worker -[Transaction] -public ref class Account : public ServicedComponent -{ - - // A data member for the account file name. -private: - String^ filenameValue; - -public: - property String^ Filename - { - String^ get() - { - return filenameValue; - } - void set( String^ value ) - { - filenameValue = value; - } - } - - // A boolean data member that determines whether to commit or abort the - // transaction. -private: - bool allowCommitValue; - -public: - property bool AllowCommit - { - bool get() - { - return allowCommitValue; - } - void set( bool value ) - { - allowCommitValue = value; - } - } - - // Debit the account, -public: - void DebitAccount(int amount) - { - - // - // Create a new clerk using the AccountCompensator class. - Clerk^ clerk = gcnew Clerk(AccountCompensator::typeid, - "An account transaction compensator", CompensatorOptions::AllPhases); - // - - // - // Create a record of previous account status, and deliver it to the - // clerk. - int balance = ReadAccountBalance(Filename); - - array^ record = gcnew array(2); - record[0] = Filename; - record[1] = balance; - - clerk->WriteLogRecord(record); - clerk->ForceLog(); - // - - // Perform the transaction - balance -= amount; - - Console::WriteLine("{0}: {1}", Filename, balance); - - WriteAccountBalance(Filename, balance); - - // - // Commit or abort the transaction - if (AllowCommit) - { - ContextUtil::SetComplete(); - } - else - { - ContextUtil::SetAbort(); - } - // - - } - -}; -// - -// -// A CRM Compensator -public ref class AccountCompensator : public Compensator -{ -private: - bool receivedPrepareRecord; - -public: - AccountCompensator() - { - receivedPrepareRecord = false; - } - - // -public: - virtual void BeginPrepare() override - { - // nothing to do - } - // - - // -public: - virtual bool PrepareRecord(LogRecord^ log) override - { - - // Check the validity of the record. - if (log == nullptr) - { - return false; - } - array^ record = dynamic_cast^>(log->Record); - if (record == nullptr) - { - return false; - } - if (record->Length != 2) - { - return false; - } - - // The record is valid. - receivedPrepareRecord = true; - return true; - } - // - - // -public: - virtual bool EndPrepare() override - { - // Allow the transaction to proceed onlyif we have received a prepare - // record. - if (receivedPrepareRecord) - { - return true; - } - else - { - return false; - } - } - // - - // -public: - virtual void BeginCommit(bool commit) override - { - // nothing to do - } - // - - // -public: - virtual bool CommitRecord(LogRecord^ log) override - { - // nothing to do - return(false); - } - // - - // -public: - virtual void EndCommit() override - { - // nothing to do - } - // - - // -public: - virtual void BeginAbort(bool abort) override - { - // nothing to do - } - // - - // -public: - virtual bool AbortRecord(LogRecord^ log) override - { - - // Check the validity of the record. - if (log == nullptr) - { - return true; - } - array^ record = dynamic_cast^>(log->Record); - if (record == nullptr) - { - return true; - } - if (record->Length != 2) - { - return true; - } - - // Extract old account data from the record. - String^ filename = (String^) record[0]; - int balance = (int) record[1]; - - // Restore the old state of the account. - WriteAccountBalance(filename, balance); - - return false; - } - // - - // -public: - virtual void EndAbort() override - { - // nothing to do - } - // - -}; -// - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Crm/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Crm/cpp/makefile deleted file mode 100644 index 58a304675f4f2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Crm/cpp/makefile +++ /dev/null @@ -1,22 +0,0 @@ -all: CrmServer.dll CrmClient.exe - -CrmServer.dll: CrmServer.cpp CrmServer.key -# - cl /c /FoCrmServer.obj /clr:pure CrmServer.cpp - link /DLL /KEYFILE:"CrmServer.key" CrmServer.obj -# - -CrmServer.key: -# - sn -k CrmServer.key -# - -CrmClient.exe: CrmClient.cpp CrmServer.dll -# - cl /FeCrmClient.exe /clr:pure CrmClient.cpp /FUCrmServer.dll -# - -install: -# - regsvcs CrmServer.dll -# diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Pooling/CPP/inspector.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Pooling/CPP/inspector.cpp deleted file mode 100644 index 50d9d6fefafed..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Pooling/CPP/inspector.cpp +++ /dev/null @@ -1,60 +0,0 @@ - - -// -#using -#using -#using - -using namespace System; -using namespace System::EnterpriseServices; -using namespace System::Windows::Forms; - -// - -[assembly:ApplicationName("ObjectInspector")]; -[assembly:ApplicationActivation(ActivationOption::Server)]; -[assembly:System::Reflection::AssemblyKeyFile("Inspector.snk")]; -[JustInTimeActivation] -[ObjectPooling(MinPoolSize=2,MaxPoolSize=100,CreationTimeout=1000)] -public ref class ObjectInspector: public ServicedComponent -{ - // -public: - String^ IdentifyObject( Object^ obj ) - { - // Return this object to the pool after use. - ContextUtil::DeactivateOnReturn = true; - - // Get the supplied object's type. - Type^ objType = obj->GetType(); - - // Return its name. - return (objType->FullName); - } - // - - // -protected: - virtual void Activate() override - { - MessageBox::Show( String::Format( "Now entering...\nApplication: {0}\nInstance: {1}\nContext: {2}\n", ContextUtil::ApplicationId.ToString(), ContextUtil::ApplicationInstanceId.ToString(), ContextUtil::ContextId.ToString() ) ); - } - // - - // - virtual void Deactivate() override - { - MessageBox::Show( "Bye Bye!" ); - } - // - - // - // This object can be pooled. - virtual bool CanBePooled() override - { - return (true); - } - // -}; -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Security/CPP/employeeinformation.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Security/CPP/employeeinformation.cpp deleted file mode 100644 index 8aff4f6dc9632..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Security/CPP/employeeinformation.cpp +++ /dev/null @@ -1,91 +0,0 @@ - - -// -#using - -using namespace System; -using namespace System::EnterpriseServices; - -// -// Set component name and strong name key. -[assembly:ApplicationName("EmployeeInformation")]; -[assembly:System::Reflection::AssemblyKeyFile("EmployeeInformation.snk")]; -// - -// -// Set component access controls. -[assembly:ApplicationAccessControl(Authentication=AuthenticationOption::Privacy, -ImpersonationLevel=ImpersonationLevelOption::Identify, -AccessChecksLevel=AccessChecksLevelOption::ApplicationComponent)]; -// - -// -// Create a security role for the component. -[assembly:SecurityRole("Manager")]; -// - -// -// Accept a constructor string. - -[ConstructionEnabled] -public ref class EmployeeInformation: public ServicedComponent -{ -private: - - // The employee's user name and salary. - String^ accountName; - double salary; - -public: - - // - // Get the employee's name. All users can call this method. - String^ GetName() - { - return (accountName); - } - // - - // - // Set the employee's salary. Only managers can do this. - void SetSalary( double ammount ) - { - if ( SecurityCallContext::CurrentCall->IsCallerInRole( "Manager" ) ) - { - salary = ammount; - } - else - { - throw gcnew UnauthorizedAccessException; - } - } - // - - // - // Get the employee's salary. Only the employee and managers can do this. - double GetSalary() - { - if ( SecurityCallContext::CurrentCall->DirectCaller->AccountName == accountName || SecurityCallContext::CurrentCall->IsCallerInRole( "Manager" ) ) - { - return (salary); - } - else - { - throw gcnew UnauthorizedAccessException; - } - } - // - - // -protected: - // Use the constructor string. - // This method is called when the object is instantiated. - virtual void Construct( String^ constructorString ) override - { - accountName = constructorString; - } - // -}; - -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_SharedProperties/CPP/receiptcounterclass.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_SharedProperties/CPP/receiptcounterclass.cpp deleted file mode 100644 index 17d849b6a90d3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_SharedProperties/CPP/receiptcounterclass.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// -#using - -using namespace System; -using namespace System::EnterpriseServices; -using namespace System::Reflection; - -[assembly:AssemblyKeyFile("..\\common\\key.snk")]; -[assembly:ApplicationName("ReceiptNumberGenerator")]; -[assembly:ApplicationActivation(ActivationOption::Library)]; - -public ref class ReceiptNumberGeneratorClass -{ -public: - - // Generates a new receipt number based on the receipt number - // stored by the Shared Property Manager (SPM) - int GetNextReceiptNumber() - { - bool groupExists; - bool propertyExists; - int nextReceiptNumber = 0; - PropertyLockMode lockMode = PropertyLockMode::SetGet; - PropertyReleaseMode releaseMode = PropertyReleaseMode::Standard; - - // - // Create a shared property group manager. - SharedPropertyGroupManager^ groupManager = gcnew SharedPropertyGroupManager; - // - - // - // - // Create a shared property group. - SharedPropertyGroup^ group = - groupManager->CreatePropertyGroup( "Receipts", lockMode, releaseMode, groupExists ); - // - - // Create a shared property. - SharedProperty^ ReceiptNumber; - ReceiptNumber = group->CreateProperty( "ReceiptNumber", propertyExists ); - // - - // - // Retrieve the value from shared property, and increment the shared - // property value. - nextReceiptNumber = safe_cast(ReceiptNumber->Value); - ReceiptNumber->Value = nextReceiptNumber + 1; - // - - // Return nextReceiptNumber - return nextReceiptNumber; - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Transaction/CPP/transaction.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Transaction/CPP/transaction.cpp deleted file mode 100644 index 720671e07a367..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/EnterpriseServices_Transaction/CPP/transaction.cpp +++ /dev/null @@ -1,27 +0,0 @@ - - -#using -#using - -using namespace System; -using namespace System::EnterpriseServices; - -// - -[assembly:System::Reflection::AssemblyKeyFile("Transaction.snk")]; -[Transaction] -public ref class TransactionalComponent: public ServicedComponent -{ -public: - void TransactionalMethod( String^ data ) - { - ContextUtil::DeactivateOnReturn = true; - ContextUtil::MyTransactionVote = TransactionVote::Abort; - - // do work with data - ContextUtil::MyTransactionVote = TransactionVote::Commit; - } - -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/FaultBindingCollection_Add/CPP/faultbindingcollection_add.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/FaultBindingCollection_Add/CPP/faultbindingcollection_add.cpp deleted file mode 100644 index fbcca70719e5e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/FaultBindingCollection_Add/CPP/faultbindingcollection_add.cpp +++ /dev/null @@ -1,217 +0,0 @@ -/* The following example demonstrates the 'Add' method of the 'FaultBindingCollection' class -* and constructor and 'Extensions' property of 'FaultBinding'class and 'Documentation' -* property of 'DocumentableItem' class. -* -* This program generates a WSDL file for a service called StockQuote. The StockQuote service -* provides one method called 'GetTradePrice'. The 'GetTradePrice' method takes two arguments, -* a 'tickerSymbol' and 'time' strings. The 'tickerSymbol' is a unique representation of a -* stock and 'time' is the time for which the trading price is to be returned for the stock -* specified. The WSDL file generated for the service supports the SOAP protocol only. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Xml; -using namespace System::Xml::Schema; -using namespace System::Xml::Serialization; - -XmlSchemaElement^ CreateComplexTypeXmlElement( String^ minoccurs, String^ maxoccurs, String^ name, bool isNillable, XmlQualifiedName^ schemaTypeName ) -{ - XmlSchemaElement^ myXmlSchemaElement = gcnew XmlSchemaElement; - myXmlSchemaElement->MinOccursString = minoccurs; - myXmlSchemaElement->MaxOccursString = maxoccurs; - myXmlSchemaElement->Name = name; - myXmlSchemaElement->IsNillable = true; - myXmlSchemaElement->SchemaTypeName = schemaTypeName; - return myXmlSchemaElement; -} - -XmlSchemaElement^ CreateOtherXmlElement( String^ name, XmlQualifiedName^ SchemaTypeName ) -{ - XmlSchemaElement^ myXmlSchemaElement = gcnew XmlSchemaElement; - myXmlSchemaElement->Name = name; - myXmlSchemaElement->SchemaTypeName = SchemaTypeName; - return myXmlSchemaElement; -} - -// Creates a Message with name =S"messageName" having one MessagePart with name = S"partName". -Message^ CreateMessage( String^ messageName, String^ partName, String^ element, String^ targetNamespace ) -{ - Message^ myMessage = gcnew Message; - myMessage->Name = messageName; - MessagePart^ myMessagePart = gcnew MessagePart; - myMessagePart->Name = partName; - myMessagePart->Element = gcnew XmlQualifiedName( element,targetNamespace ); - myMessage->Parts->Add( myMessagePart ); - return myMessage; -} - -int main() -{ - ServiceDescription^ myServiceDescription = gcnew ServiceDescription; - myServiceDescription->Name = "StockQuote"; - myServiceDescription->TargetNamespace = "http://www.contoso.com/stockquote.wsdl"; - - // Generate the 'Types' element. - XmlSchema^ myXmlSchema = gcnew XmlSchema; - myXmlSchema->AttributeFormDefault = XmlSchemaForm::Qualified; - myXmlSchema->ElementFormDefault = XmlSchemaForm::Qualified; - myXmlSchema->TargetNamespace = "http://www.contoso.com/stockquote.wsdl"; - - //XmlSchemaElement myXmlSchemaElement; - XmlSchemaComplexType^ myXmlSchemaComplexType = gcnew XmlSchemaComplexType; - myXmlSchemaComplexType->Name = "GetTradePriceInputType"; - XmlSchemaSequence^ myXmlSchemaSequence = gcnew XmlSchemaSequence; - myXmlSchemaSequence->Items->Add( CreateComplexTypeXmlElement( "1", "1", "tickerSymbol", true, gcnew XmlQualifiedName( "s:string" ) ) ); - myXmlSchemaSequence->Items->Add( CreateComplexTypeXmlElement( "1", "1", "time", true, gcnew XmlQualifiedName( "s:string" ) ) ); - myXmlSchemaComplexType->Particle = myXmlSchemaSequence; - myXmlSchema->Items->Add( myXmlSchemaComplexType ); - - myXmlSchemaComplexType = gcnew XmlSchemaComplexType; - myXmlSchemaComplexType->Name = "GetTradePriceOutputType"; - myXmlSchemaSequence = gcnew XmlSchemaSequence; - myXmlSchemaSequence->Items->Add( CreateComplexTypeXmlElement( "1", "1", "result", true, gcnew XmlQualifiedName( "s:string" ) ) ); - myXmlSchemaComplexType->Particle = myXmlSchemaSequence; - myXmlSchema->Items->Add( myXmlSchemaComplexType ); - - myXmlSchemaComplexType = gcnew XmlSchemaComplexType; - myXmlSchemaComplexType->Name = "GetTradePriceStringFaultType"; - myXmlSchemaSequence = gcnew XmlSchemaSequence; - myXmlSchemaSequence->Items->Add( CreateComplexTypeXmlElement( "1", "1", "error", true, gcnew XmlQualifiedName( "s:string" ) ) ); - myXmlSchemaComplexType->Particle = myXmlSchemaSequence; - myXmlSchema->Items->Add( myXmlSchemaComplexType ); - - myXmlSchemaComplexType = gcnew XmlSchemaComplexType; - myXmlSchemaComplexType->Name = "GetTradePriceStringIntType"; - myXmlSchemaSequence = gcnew XmlSchemaSequence; - myXmlSchemaSequence->Items->Add( CreateComplexTypeXmlElement( "1", "1", "error", true, gcnew XmlQualifiedName( "s:int" ) ) ); - myXmlSchemaComplexType->Particle = myXmlSchemaSequence; - myXmlSchema->Items->Add( myXmlSchemaComplexType ); - - myXmlSchema->Items->Add( CreateOtherXmlElement( "GetTradePriceSoapIn", gcnew XmlQualifiedName( "s0:GetTradePriceInputType" ) ) ); - myXmlSchema->Items->Add( CreateOtherXmlElement( "GetTradePriceSoapOut", gcnew XmlQualifiedName( "s0:GetTradePriceOutputType" ) ) ); - myXmlSchema->Items->Add( CreateOtherXmlElement( "GetTradePriceSoapStringFault", gcnew XmlQualifiedName( "s0:GetTradePriceStringFaultType" ) ) ); - myXmlSchema->Items->Add( CreateOtherXmlElement( "GetTradePriceSoapIntFault", gcnew XmlQualifiedName( "s0:GetTradePriceIntFaultType" ) ) ); - - myServiceDescription->Types->Schemas->Add( myXmlSchema ); - - // Generate the 'Message' element. - MessageCollection^ myMessageCollection = myServiceDescription->Messages; - myMessageCollection->Add( CreateMessage( "GetTradePriceInput", "parameters", "GetTradePriceSoapIn", myServiceDescription->TargetNamespace ) ); - myMessageCollection->Add( CreateMessage( "GetTradePriceOutput", "parameters", "GetTradePriceSoapOut", myServiceDescription->TargetNamespace ) ); - myMessageCollection->Add( CreateMessage( "GetTradePriceStringFault", "parameters", "GetTradePriceStringSoapFault", myServiceDescription->TargetNamespace ) ); - myMessageCollection->Add( CreateMessage( "GetTradePriceIntFault", "parameters", "GetTradePriceIntSoapFault", myServiceDescription->TargetNamespace ) ); - - // Generate the 'Port Type' element. - PortTypeCollection^ myPortTypeCollection = myServiceDescription->PortTypes; - PortType^ myPortType = gcnew PortType; - myPortType->Name = "StockQuotePortType"; - OperationCollection^ myOperationCollection = myPortType->Operations; - Operation^ myOperation = gcnew Operation; - myOperation->Name = "GetTradePrice"; - OperationMessage^ myOperationMessage; - OperationMessageCollection^ myOperationMessageCollection = myOperation->Messages; - myOperationMessage = dynamic_cast(gcnew OperationInput); - myOperationMessage->Message = gcnew XmlQualifiedName( "s0:GetTradePriceInput" ); - myOperationMessageCollection->Add( myOperationMessage ); - myOperationMessage = dynamic_cast(gcnew OperationOutput); - myOperationMessage->Message = gcnew XmlQualifiedName( "s0:GetTradePriceOutput" ); - myOperationMessageCollection->Add( myOperationMessage ); - OperationFault^ myOperationFault = gcnew OperationFault; - myOperationFault->Name = "ErrorString"; - myOperationFault->Message = gcnew XmlQualifiedName( "s0:GetTradePriceStringFault" ); - myOperation->Faults->Add( myOperationFault ); - myOperationFault = gcnew OperationFault; - myOperationFault->Name = "ErrorInt"; - myOperationFault->Message = gcnew XmlQualifiedName( "s0:GetTradePriceIntFault" ); - myOperation->Faults->Add( myOperationFault ); - myOperationCollection->Add( myOperation ); - myPortTypeCollection->Add( myPortType ); - - // Generate the 'Binding' element. - ServiceDescriptionFormatExtensionCollection^ myExtensions; - BindingCollection^ myBindingCollection = myServiceDescription->Bindings; - Binding^ myBinding = gcnew Binding; - myBinding->Name = "StockQuoteSoapBinding"; - myBinding->Type = gcnew XmlQualifiedName( "s0:StockQuotePortType" ); - myExtensions = myBinding->Extensions; - SoapBinding^ mySoapBinding = gcnew SoapBinding; - mySoapBinding->Style = SoapBindingStyle::Document; - mySoapBinding->Transport = "http://schemas.xmlsoap.org/soap/http"; - myExtensions->Add( mySoapBinding ); - OperationBindingCollection^ myOperationBindingCollection = myBinding->Operations; - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myExtensions = myOperationBinding->Extensions; - SoapOperationBinding^ mySoapBindingOperation = gcnew SoapOperationBinding; - mySoapBindingOperation->SoapAction = "http://www.contoso.com/GetTradePrice"; - myExtensions->Add( mySoapBindingOperation ); - myOperationBinding->Name = "GetTradePrice"; - myOperationBinding->Input = gcnew InputBinding; - myExtensions = myOperationBinding->Input->Extensions; - SoapBodyBinding^ mySoapBodyBinding = gcnew SoapBodyBinding; - mySoapBodyBinding->Use = SoapBindingUse::Literal; - mySoapBodyBinding->Namespace = "http://www.contoso.com/stockquote"; - myExtensions->Add( mySoapBodyBinding ); - myOperationBinding->Output = gcnew OutputBinding; - myExtensions = myOperationBinding->Output->Extensions; - mySoapBodyBinding = gcnew SoapBodyBinding; - mySoapBodyBinding->Use = SoapBindingUse::Literal; - mySoapBodyBinding->Namespace = "http://www.contoso.com/stockquote"; - myExtensions->Add( mySoapBodyBinding ); - -// -// -// - FaultBindingCollection^ myFaultBindingCollection = myOperationBinding->Faults; - FaultBinding^ myFaultBinding = gcnew FaultBinding; - myFaultBinding->Name = "ErrorString"; - // Associate SOAP fault binding to the fault binding of the operation. - myExtensions = myFaultBinding->Extensions; - SoapFaultBinding^ mySoapFaultBinding = gcnew SoapFaultBinding; - mySoapFaultBinding->Use = SoapBindingUse::Literal; - mySoapFaultBinding->Namespace = "http://www.contoso.com/stockquote"; - myExtensions->Add( mySoapFaultBinding ); - myFaultBindingCollection->Add( myFaultBinding ); -// -// -// - - myFaultBinding = gcnew FaultBinding; - myFaultBinding->Name = "ErrorInt"; - // Associate SOAP fault binding to the fault binding of the operation. - myExtensions = myFaultBinding->Extensions; - mySoapFaultBinding = gcnew SoapFaultBinding; - mySoapFaultBinding->Use = SoapBindingUse::Literal; - mySoapFaultBinding->Namespace = "http://www.contoso.com/stockquote"; - myExtensions->Add( mySoapFaultBinding ); - myFaultBindingCollection->Add( myFaultBinding ); - myOperationBindingCollection->Add( myOperationBinding ); - myBindingCollection->Add( myBinding ); - - // Generate the 'Service' element. - ServiceCollection^ myServiceCollection = myServiceDescription->Services; - -// - Service^ myService = gcnew Service; - // Add a simple documentation for the service to ease the readability of the generated WSDL file. - myService->Documentation = "A Simple Stock Quote Service"; - myService->Name = "StockQuoteService"; - PortCollection^ myPortCollection = myService->Ports; - Port^ myPort = gcnew Port; - myPort->Name = "StockQuotePort"; - myPort->Binding = gcnew XmlQualifiedName( "s0:StockQuoteSoapBinding" ); - myExtensions = myPort->Extensions; - SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding; - mySoapAddressBinding->Location = "http://www.contoso.com/stockquote"; - myExtensions->Add( mySoapAddressBinding ); - myPortCollection->Add( myPort ); - // - myServiceCollection->Add( myService ); - - // Display the WSDL generated to the console. - myServiceDescription->Write( Console::Out ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/FaultBindingCollection_Item/CPP/faultbindingcollection_item.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/FaultBindingCollection_Item/CPP/faultbindingcollection_item.cpp deleted file mode 100644 index 5084e6fa1697e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/FaultBindingCollection_Item/CPP/faultbindingcollection_item.cpp +++ /dev/null @@ -1,47 +0,0 @@ -/* -* The following example demonstrates the 'Item[String*]' property of -FaultBindingCollection class -* The program removes a fault binding with the name 'ErrorString' -from the WSDL file. It also removes a operation fault with the name -'ErrorString' and displays the resultant WSDL file to the console. -* -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Web::Services::Description; - -int main() -{ - - // Read the 'StockQuote::wsdl' file as input. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "StockQuote.wsdl" ); - - // Get the operation fault collection and remove the operation fault with the name 'ErrorString'. - PortTypeCollection^ myPortTypeCollection = myServiceDescription->PortTypes; - PortType^ myPortType = myPortTypeCollection[ 0 ]; - OperationCollection^ myOperationCollection = myPortType->Operations; - Operation^ myOperation = myOperationCollection[ 0 ]; - OperationFaultCollection^ myOperationFaultCollection = myOperation->Faults; - if ( myOperationFaultCollection->Contains( myOperationFaultCollection[ "ErrorString" ] ) ) - myOperationFaultCollection->Remove( myOperationFaultCollection[ "ErrorString" ] ); - - - // Get the fault binding collection and remove the fault binding with the name 'ErrorString'. - // - BindingCollection^ myBindingCollection = myServiceDescription->Bindings; - Binding^ myBinding = myBindingCollection[ 0 ]; - OperationBindingCollection^ myOperationBindingCollection = myBinding->Operations; - OperationBinding^ myOperationBinding = myOperationBindingCollection[ 0 ]; - FaultBindingCollection^ myFaultBindingCollection = myOperationBinding->Faults; - if ( myFaultBindingCollection->Contains( myFaultBindingCollection[ "ErrorString" ] ) ) - myFaultBindingCollection->Remove( myFaultBindingCollection[ "ErrorString" ] ); - - - // - myServiceDescription->Write( Console::Out ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/FaultBindingCollection_Remove/CPP/faultbindingcollection_remove.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/FaultBindingCollection_Remove/CPP/faultbindingcollection_remove.cpp deleted file mode 100644 index 5d0f962f0778f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/FaultBindingCollection_Remove/CPP/faultbindingcollection_remove.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/* -* The following example demonstrates the 'Remove', 'CopyTo', 'Insert', -'Contains', 'IndexOf' method and 'Item[int]' property of FaultBindingCollection -class -The program reverses the fault bindings that appear in the WSDL file. -It also reverses the operation faults and displays the resultant WSDL file -to the console. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Web::Services::Description; - -int main() -{ - - // Read the 'StockQuote::wsdl' file as input. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "StockQuote.wsdl" ); - PortTypeCollection^ myPortTypeCollection = myServiceDescription->PortTypes; - PortType^ myPortType = myPortTypeCollection[ 0 ]; - OperationCollection^ myOperationCollection = myPortType->Operations; - Operation^ myOperation = myOperationCollection[ 0 ]; - OperationFaultCollection^ myOperationFaultCollection = myOperation->Faults; - - // Reverse the operation fault order. - if ( myOperationFaultCollection->Count > 1 ) - { - array^myOperationFaultArray = gcnew array(myOperationFaultCollection->Count); - - // Copy the operation fault to a temporary array. - myOperationFaultCollection->CopyTo( myOperationFaultArray, 0 ); - - // Remove all the operation fault instances in the fault binding collection. - for ( int i = 0; i < myOperationFaultArray->Length; i++ ) - myOperationFaultCollection->Remove( myOperationFaultArray[ i ] ); - - // Insert the operation fault instance in the reverse order. - for ( int i = 0,j = (myOperationFaultArray->Length - 1); i < myOperationFaultArray->Length; i++,j-- ) - myOperationFaultCollection->Insert( i, myOperationFaultArray[ j ] ); - } - - // - // - // - // - // - // - BindingCollection^ myBindingCollection = myServiceDescription->Bindings; - Binding^ myBinding = myBindingCollection[ 0 ]; - OperationBindingCollection^ myOperationBindingCollection = myBinding->Operations; - OperationBinding^ myOperationBinding = myOperationBindingCollection[ 0 ]; - FaultBindingCollection^ myFaultBindingCollection = myOperationBinding->Faults; - - // Reverse the fault bindings order. - if ( myFaultBindingCollection->Count > 1 ) - { - FaultBinding^ myFaultBinding = myFaultBindingCollection[ 0 ]; - array^myFaultBindingArray = gcnew array(myFaultBindingCollection->Count); - - // Copy the fault bindings to a temporary array. - myFaultBindingCollection->CopyTo( myFaultBindingArray, 0 ); - - // Remove all the fault binding instances in the fault binding collection. - for ( int i = 0; i < myFaultBindingArray->Length; i++ ) - myFaultBindingCollection->Remove( myFaultBindingArray[ i ] ); - - // Insert the fault binding instance in the reverse order. - for ( int i = 0,j = (myFaultBindingArray->Length - 1); i < myFaultBindingArray->Length; i++,j-- ) - myFaultBindingCollection->Insert( i, myFaultBindingArray[ j ] ); - - // Check if the first element in the collection before the reversal is now the last element. - if ( myFaultBindingCollection->Contains( myFaultBinding ) && myFaultBindingCollection->IndexOf( myFaultBinding ) == (myFaultBindingCollection->Count - 1) ) - - // Display the WSDL generated to the console. - myServiceDescription->Write( Console::Out ); - else - Console::WriteLine( "Error while reversing" ); - } - // - // - // - // - // - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebRequest_ContentLength/CPP/filewebrequest_contentlength.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/FileWebRequest_ContentLength/CPP/filewebrequest_contentlength.cpp deleted file mode 100644 index ff1a5cacc7dcb..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebRequest_ContentLength/CPP/filewebrequest_contentlength.cpp +++ /dev/null @@ -1,72 +0,0 @@ -// System::Net::FileWebRequest::ContentLength;System::Net::FileWebRequest::RequestUri; - -/* -This program demonstrates 'ContentLength'and 'RequestUri' property of 'FileWebRequest' class. -The path of a file where user would like to write something is obtained from command line argument. -Then a 'WebRequest' Object* is created. The 'ContentLength' property of 'FileWebRequest' is used to -set the length of the file content that was written. -*/ - -#using - -using namespace System::Net; -using namespace System; -using namespace System::IO; -using namespace System::Text; - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the file name as command line parameter where you want to write:" ); - Console::WriteLine( "Usage:FileWebRequest_ContentLen //\nExample:FileWebRequest_ContentLen shafeeque/shaf/hello.txt" ); - } - else - { - try - { - // Create an 'Uri' Object*. - Uri^ myUrl = gcnew Uri( String::Concat( "file://", args[ 1 ] ) ); - FileWebRequest^ myFileWebRequest = nullptr; - -// - myFileWebRequest = (FileWebRequest^)( WebRequest::Create( myUrl ) ); - - Console::WriteLine( "Enter the string you want to write into the file:" ); - String^ userInput = Console::ReadLine(); - ASCIIEncoding^ encoder = gcnew ASCIIEncoding; - array^ byteArray = encoder->GetBytes( userInput ); - - // Set the 'Method' property of 'FileWebRequest' Object* to 'POST' method. - myFileWebRequest->Method = "POST"; - - // The 'ContentLength' property is used to set the content length of the file. - myFileWebRequest->ContentLength = byteArray->Length; -// - -// - // Compare the file name and 'RequestUri' is same or not. - if ( myFileWebRequest->RequestUri->Equals( myUrl ) ) - { - // 'GetRequestStream' method returns the stream handler for writing into the file. - Stream^ readStream = myFileWebRequest->GetRequestStream(); - // Write to the stream - readStream->Write( byteArray, 0, userInput->Length ); - readStream->Close(); - } - - Console::WriteLine( "\nThe String you entered was successfully written into the file." ); - Console::WriteLine( "The content length sent to the server is {0}.", myFileWebRequest->ContentLength ); -// - } - catch ( ArgumentException^ e ) - { - Console::WriteLine( "The ArgumentException is : {0}", e->Message ); - } - catch ( UriFormatException^ e ) - { - Console::WriteLine( "The UriFormatException is : {0}", e->Message ); - } - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebRequest_ReqBeginEnd/CPP/filewebrequest_reqbeginend.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/FileWebRequest_ReqBeginEnd/CPP/filewebrequest_reqbeginend.cpp deleted file mode 100644 index 7203551b78700..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebRequest_ReqBeginEnd/CPP/filewebrequest_reqbeginend.cpp +++ /dev/null @@ -1,118 +0,0 @@ - - -// System::Net::FileWebRequest::BeginGetRequestStream;System::Net::FileWebRequest::EndGetRequestStream; -// Snippet1 and Snippet2 go together -/* -This program demonstrates 'BeginGetRequestStream' and 'EndGetRequestStream' method of 'FileWebRequest' class -The path of the file from where content is to be read is obtained as a command line argument and a 'webRequest' -Object* is created.Using the 'BeginGetRequestStream' method and 'EndGetRequestStream' of 'FileWebRequest' class -a stream Object* is obtained which is used to write into the file. -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; -using namespace System::Threading; - -// -// -public ref class RequestDeclare -{ -public: - FileWebRequest^ myFileWebRequest; - String^ userinput; - RequestDeclare() - { - myFileWebRequest = nullptr; - } - -}; - -ref class FileWebRequest_reqbeginend -{ -public: - static ManualResetEvent^ allDone = gcnew ManualResetEvent( false ); - static void ReadCallback( IAsyncResult^ ar ) - { - try - { - - // State of the request is asynchronous. - RequestDeclare^ requestDeclare = dynamic_cast(ar->AsyncState); - FileWebRequest^ myFileWebRequest = requestDeclare->myFileWebRequest; - String^ sendToFile = requestDeclare->userinput; - - // End the Asynchronus request by calling the 'EndGetRequestStream()' method. - Stream^ readStream = myFileWebRequest->EndGetRequestStream( ar ); - - // Convert the String* into Byte array. - ASCIIEncoding^ encoder = gcnew ASCIIEncoding; - array^byteArray = encoder->GetBytes( sendToFile ); - - // Write to the stream. - readStream->Write( byteArray, 0, sendToFile->Length ); - readStream->Close(); - allDone->Set(); - Console::WriteLine( "\nThe String you entered was successfully written into the file." ); - Console::WriteLine( "\nPress Enter to continue." ); - } - catch ( ApplicationException^ e ) - { - Console::WriteLine( "ApplicationException is : {0}", e->Message ); - } - - } - -}; - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the file name as command line parameter:" ); - Console::WriteLine( "Usage:FileWebRequest_reqbeginend //\n" ); - Console::WriteLine( "Example:FileWebRequest_reqbeginend shafeeque/shaf/hello.txt" ); - } - else - { - try - { - - // Place a webrequest. - WebRequest^ myWebRequest = WebRequest::Create( String::Concat( "file://", args[ 1 ] ) ); - - // Create an instance of the 'RequestDeclare' and associate the 'myWebRequest' to it. - RequestDeclare^ requestDeclare = gcnew RequestDeclare; - requestDeclare->myFileWebRequest = dynamic_cast(myWebRequest); - - // Set the 'Method' property of 'FileWebRequest' Object* to 'POST' method. - requestDeclare->myFileWebRequest->Method = "POST"; - Console::WriteLine( "Enter the String* you want to write into the file:" ); - requestDeclare->userinput = Console::ReadLine(); - - // Begin the Asynchronous request for getting file content using 'BeginGetRequestStream()' method . - IAsyncResult^ r = dynamic_cast(requestDeclare->myFileWebRequest->BeginGetRequestStream( gcnew AsyncCallback( &FileWebRequest_reqbeginend::ReadCallback ), requestDeclare )); - FileWebRequest_reqbeginend::allDone->WaitOne(); - Console::Read(); - } - catch ( ProtocolViolationException^ e ) - { - Console::WriteLine( "ProtocolViolationException is : {0}", e->Message ); - } - catch ( InvalidOperationException^ e ) - { - Console::WriteLine( "InvalidOperationException is : {0}", e->Message ); - } - catch ( UriFormatException^ e ) - { - Console::WriteLine( "UriFormatExceptionException is : {0}", e->Message ); - } - - } -} - -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebRequest_ResBeginEnd/CPP/filewebrequest_resbeginend.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/FileWebRequest_ResBeginEnd/CPP/filewebrequest_resbeginend.cpp deleted file mode 100644 index 0a0ee8a55ebda..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebRequest_ResBeginEnd/CPP/filewebrequest_resbeginend.cpp +++ /dev/null @@ -1,105 +0,0 @@ - - -// System::Net::FileWebRequest::BeginGetResponse;System::Net::FileWebRequest::EndGetResponse; -// Snippet1 and Snippet2 go together -/* -This program demonstrates 'BeginGetResponse' and 'EndGetResponse' methods of 'FileWebRequest' class. -The path of the file from where content is to be read is obtained as a command line argument and a -'WebRequest' Object* is created. Using the 'BeginGetResponse' method and 'EndGetResponse' of 'FileWebRequest' -class a 'FileWebResponse' Object* is obtained which is used to print the content on the file. -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Threading; - -// -// -public ref class RequestDeclare -{ -public: - FileWebRequest^ myFileWebRequest; - RequestDeclare() - { - myFileWebRequest = nullptr; - } - -}; - -ref class FileWebRequest_resbeginend -{ -public: - static ManualResetEvent^ allDone = gcnew ManualResetEvent( false ); - static void RespCallback( IAsyncResult^ ar ) - { - - // State of request is asynchronous. - RequestDeclare^ requestDeclare = dynamic_cast(ar->AsyncState); - FileWebRequest^ myFileWebRequest = requestDeclare->myFileWebRequest; - - // End the Asynchronus request by calling the 'EndGetResponse()' method. - FileWebResponse^ myFileWebResponse = dynamic_cast(myFileWebRequest->EndGetResponse( ar )); - - // Reade the response into Stream. - StreamReader^ streamReader = gcnew StreamReader( myFileWebResponse->GetResponseStream() ); - array^readBuffer = gcnew array(256); - int count = streamReader->Read( readBuffer, 0, 256 ); - Console::WriteLine( "The contents of the file are :\n" ); - while ( count > 0 ) - { - String^ str = gcnew String( readBuffer,0,count ); - Console::WriteLine( str ); - count = streamReader->Read( readBuffer, 0, 256 ); - } - - streamReader->Close(); - - // Release the response Object* resources. - myFileWebResponse->Close(); - allDone->Set(); - Console::WriteLine( "File reading is over." ); - } - -}; - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the file name as command line parameter:" ); - Console::WriteLine( "Usage:FileWebRequest_resbeginend //\n" ); - Console::WriteLine( "Example:FileWebRequest_resbeginend shafeeque/shaf/hello.txt" ); - } - else - { - try - { - - // Place a 'Webrequest'. - WebRequest^ myWebRequest = WebRequest::Create( String::Concat( "file://", args[ 1 ] ) ); - - // Create an instance of the 'RequestDeclare' and associating the 'myWebRequest' to it. - RequestDeclare^ myRequestDeclare = gcnew RequestDeclare; - myRequestDeclare->myFileWebRequest = dynamic_cast(myWebRequest); - - // Begin the Asynchronous request for getting file content using 'BeginGetResponse()' method. - IAsyncResult^ asyncResult = dynamic_cast(myRequestDeclare->myFileWebRequest->BeginGetResponse( gcnew AsyncCallback( &FileWebRequest_resbeginend::RespCallback ), myRequestDeclare )); - FileWebRequest_resbeginend::allDone->WaitOne(); - } - catch ( ArgumentNullException^ e ) - { - Console::WriteLine( "ArgumentNullException is : {0}", e->Message ); - } - catch ( UriFormatException^ e ) - { - Console::WriteLine( "UriFormatException is : {0}", e->Message ); - } - - } -} - -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_Close/CPP/filewebresponse_close.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_Close/CPP/filewebresponse_close.cpp deleted file mode 100644 index 429fd7433ea49..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_Close/CPP/filewebresponse_close.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// System::Net::FileWebResponse::Close -/*This program demontrates the 'Close' method of 'FileWebResponse' Class. -It takes an Uri from console and creates a 'FileWebRequest' Object* for the Uri::It then gets back -the response Object* from the Uri. The response Object* can be processed as desired.The program then -closes the response Object* and releases resources associated with it. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; - -// -void GetPage( String^ url ) -{ - try - { - Uri^ fileUrl = gcnew Uri( String::Concat( "file://", url ) ); - // Create a FileWebrequest with the specified Uri. - FileWebRequest^ myFileWebRequest = dynamic_cast(WebRequest::Create( fileUrl )); - // Send the 'fileWebRequest' and wait for response. - FileWebResponse^ myFileWebResponse = dynamic_cast(myFileWebRequest->GetResponse()); - // Process the response here. - Console::WriteLine( "\nResponse Received::Trying to Close the response stream.." ); - // Release resources of response Object*. - myFileWebResponse->Close(); - Console::WriteLine( "\nResponse Stream successfully closed." ); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nWebException thrown.The Reason for failure is : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised : {0}", e->Message ); - } -} -// - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the file name as command line parameter:" ); - Console::WriteLine( "Usage:FileWebResponse_Close // \nExample:FileWebResponse_Close microsoft/shared/hello.txt" ); - } - else - { - GetPage( args[ 1 ] ); - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_ContentLength_ContentType/CPP/filewebresponse_contentlength_contenttype.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_ContentLength_ContentType/CPP/filewebresponse_contentlength_contenttype.cpp deleted file mode 100644 index 76317e5d2a499..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_ContentLength_ContentType/CPP/filewebresponse_contentlength_contenttype.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// System::Net::FileWebResponse::ContentLength;System::Net::FileWebResponse::ContentType. - -/* This program demonstrates the 'ContentLength' and 'ContentType' property of 'FileWebResponse' class. -It creates a web request and queries for a response.It then prints the content length -and content type of the entity body in the response onto the console */ - -#using - -using namespace System; -using namespace System::Net; - -// -// -void GetPage( String^ url ) -{ - try - { - Uri^ fileUrl = gcnew Uri( String::Concat( "file://", url ) ); - // Create a 'FileWebrequest' Object* with the specified Uri. - FileWebRequest^ myFileWebRequest = (FileWebRequest^)( WebRequest::Create( fileUrl ) ); - // Send the 'fileWebRequest' and wait for response. - FileWebResponse^ myFileWebResponse = (FileWebResponse^)( myFileWebRequest->GetResponse() ); - // Print the ContentLength and ContentType properties received as headers in the response Object*. - Console::WriteLine( "\nContent length : {0}, Content Type : {1}", myFileWebResponse->ContentLength, myFileWebResponse->ContentType ); - // Release resources of response Object*. - myFileWebResponse->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nWebException thrown.The Reason for failure is : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised : {0}", e->Message ); - } -} -// -// - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the file name as command line parameter:" ); - Console::WriteLine( "Usage:FileWebResponse_ContentLength_ContentType // \nExample:FileWebResponse_ContentLength_ContentType microsoft/shared/hello.txt" ); - } - else - { - GetPage( args[ 1 ] ); - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_GetResponseStream/CPP/filewebresponse_getresponsestream.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_GetResponseStream/CPP/filewebresponse_getresponsestream.cpp deleted file mode 100644 index 0221b756f8987..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_GetResponseStream/CPP/filewebresponse_getresponsestream.cpp +++ /dev/null @@ -1,77 +0,0 @@ -// System::Net::FileWebResponse::GetResponseStream. - -/* This program demonstrates the 'GetResponseStream' method of the 'FileWebResponse' class. -It creates a 'FileWebRequest' Object* and queries for a response. -The response stream obtained is piped to a higher level stream reader. The reader reads -256 characters at a time , writes them into a String* and then displays the String* onto the console*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; - -void GetPage( String^ url ) -{ - try - { -// - Uri^ fileUrl = gcnew Uri( String::Concat( "file://", url ) ); - // Create a 'FileWebrequest' Object* with the specified Uri. - FileWebRequest^ myFileWebRequest = (FileWebRequest^)( WebRequest::Create( fileUrl ) ); - // Send the 'FileWebRequest' Object* and wait for response. - FileWebResponse^ myFileWebResponse = (FileWebResponse^)( myFileWebRequest->GetResponse() ); - - // Get the stream Object* associated with the response Object*. - Stream^ receiveStream = myFileWebResponse->GetResponseStream(); - - Encoding^ encode = System::Text::Encoding::GetEncoding( "utf-8" ); - // Pipe the stream to a higher level stream reader with the required encoding format. - StreamReader^ readStream = gcnew StreamReader( receiveStream,encode ); - Console::WriteLine( "\r\nResponse stream received" ); - - array^ read = gcnew array(256); - // Read 256 characters at a time. - int count = readStream->Read( read, 0, 256 ); - Console::WriteLine( "File Data...\r\n" ); - while ( count > 0 ) - { - // Dump the 256 characters on a String* and display the String* onto the console. - String^ str = gcnew String( read,0,count ); - Console::Write( str ); - count = readStream->Read( read, 0, 256 ); - } - Console::WriteLine( "" ); - // Release resources of stream Object*. - readStream->Close(); - // Release resources of response Object*. - myFileWebResponse->Close(); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nWebException thrown.The Reason for failure is : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised : {0}", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the file name as command line parameter:" ); - Console::WriteLine( "Usage:FileWebResponse_GetResponseStream // \nExample:FileWebResponse_GetResponseStream microsoft/shared/hello.txt" ); - } - else - { - GetPage( args[ 1 ] ); - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_Headers/CPP/filewebresponse_headers.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_Headers/CPP/filewebresponse_headers.cpp deleted file mode 100644 index 94a12053a56e9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_Headers/CPP/filewebresponse_headers.cpp +++ /dev/null @@ -1,57 +0,0 @@ -// System::Net::FileWebResponse::Headers - -/* This program demonstrates the 'Headers' property of the 'FileWebResponse' class. -It creates a web request and queries for a response.It then prints [Out] all* the response -headers (name -value pairs) onto the console. */ - -#using - -using namespace System; -using namespace System::Net; - -// -void GetPage( String^ url ) -{ - try - { - Uri^ fileUrl = gcnew Uri( String::Concat( "file://", url ) ); - // Create a 'FileWebrequest' Object^ with the specified Uri . - FileWebRequest^ myFileWebRequest = (FileWebRequest^)(WebRequest::Create( fileUrl )); - // Send the 'FileWebRequest' and wait for response. - FileWebResponse^ myFileWebResponse = (FileWebResponse^)(myFileWebRequest->GetResponse()); - // Display all Headers present in the response received from the Uri. - Console::WriteLine( "\r\nThe following headers were received in the response:" ); - // Display each header and the key of the response Object^. - for ( int i = 0; i < myFileWebResponse->Headers->Count; ++i ) - Console::WriteLine( "\nHeader Name: {0}, Header value : {1}", - myFileWebResponse->Headers->Keys[ i ], myFileWebResponse->Headers[ (HttpRequestHeader)i ] ); - myFileWebResponse->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nWebException thrown. The Reason for failure is: {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised: {0}", e->Message ); - } - -} -// - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease type the file name as command line parameter as:" ); - Console::WriteLine( "Usage:FileWebResponse_Headers // \nExample:FileWebResponse_Headers microsoft/shared/hello.txt" ); - } - else - { - GetPage( args[ 1 ] ); - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_ResponseUri/CPP/filewebresponse_responseuri.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_ResponseUri/CPP/filewebresponse_responseuri.cpp deleted file mode 100644 index 2e7e834b615f5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/FileWebResponse_ResponseUri/CPP/filewebresponse_responseuri.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// System::Net::FileWebResponse::ResponseUri - -/* This program demonstrates the 'ResponseUri' property of the 'FileWebResponse' class. -It creates a 'FileWebRequest' Object* and queries for a response.It then displays the Uri of the file -system resource that provided the response. -*/ - -#using - -using namespace System; -using namespace System::Net; - -// -void GetPage( String^ url ) -{ - try - { - Uri^ fileUrl = gcnew Uri( String::Concat( "file://", url ) ); - - // Create a 'FileWebrequest' object with the specified Uri . - FileWebRequest^ myFileWebRequest = (FileWebRequest^)( WebRequest::Create( fileUrl ) ); - - // Send the 'fileWebRequest' and wait for response. - FileWebResponse^ myFileWebResponse = (FileWebResponse^)( myFileWebRequest->GetResponse() ); - Console::WriteLine( "\nThe Uri of the file system resource that provided the response is :\n {0}\n\n", myFileWebResponse->ResponseUri ); - - // Release resources of response object. - myFileWebResponse->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nWebException thrown.The Reason for failure is : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised : {0}", e->Message ); - } -} -// - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease type the file name as command line parameter as:" ); - Console::WriteLine( "Usage:FileWebResponse_ResponseUri // \nExample:FileWebResponse_ResponseUri microsoft/shared/hello.txt" ); - } - else - { - GetPage( args[ 1 ] ); - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/FormatterServices/cpp/FormatterServices.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/FormatterServices/cpp/FormatterServices.cpp deleted file mode 100644 index b9bb5895a5120..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/FormatterServices/cpp/FormatterServices.cpp +++ /dev/null @@ -1,178 +0,0 @@ -//Types:System.Runtime.Serialization.FormatterServices -//Types:System.Runtime.Serialization.SerializationInfoEnumerator -// -using namespace System; -using namespace System::IO; -using namespace System::Runtime::Serialization; -using namespace System::Runtime::Serialization::Formatters; -using namespace System::Runtime::Serialization::Formatters::Binary; -using namespace System::Reflection; -using namespace System::Security::Permissions; - -// Person is a serializable base class. -[Serializable] -public ref class Person -{ -private: - String^ title; - -public: - Person(String^ title) - { - this->title = title; - } - -public: - virtual String^ ToString() override - { - return String::Format("{0}", title); - } -}; - -// Employee is a serializable class derived from Person. -[Serializable] -public ref class Employee : public Person -{ -private: - String^ title; - -public: - Employee(String^ title) : Person("Person") - { - this->title = title; - } - -public: - virtual String^ ToString() override - { - return String::Format("{0} -> {1}", title, Person::ToString()); - } -}; - -// Manager is a serializable and ISerializable class derived from Employee. -[Serializable] -ref class Manager : public Employee, public ISerializable -{ -private: - String^ title; - -public: - Manager() : Employee("Employee") - { - this->title = "Manager"; - } - - // -public: - [SecurityPermission(SecurityAction::Demand, SerializationFormatter = true)] - virtual void GetObjectData(SerializationInfo^ info, StreamingContext context) - { - // Serialize the desired values for this class. - info->AddValue("title", title); - - // Get the set of serializable members for the class and base classes. - Type^ thisType = this->GetType(); - array^ serializableMembers = - FormatterServices::GetSerializableMembers(thisType, context); - - // Serialize the base class's fields to the info object. - for each (MemberInfo^ serializableMember in serializableMembers) - { - // Do not serialize fields for this class. - if (serializableMember->DeclaringType != thisType) - { - // Skip this field if it is marked NonSerialized. - if (!(Attribute::IsDefined(serializableMember, - NonSerializedAttribute::typeid))) - { - // Get the value of this field and add it to the - // SerializationInfo object. - info->AddValue(serializableMember->Name, - ((FieldInfo^)serializableMember)->GetValue(this)); - } - } - } - - // Call the method below to see the contents of the - // SerializationInfo object. - DisplaySerializationInfo(info); - } - // - - // -private: - static void DisplaySerializationInfo(SerializationInfo^ info) - { - Console::WriteLine("Values in the SerializationInfo:"); - for each (SerializationEntry^ infoEntry in info) - { - Console::WriteLine("Name={0}, ObjectType={1}, Value={2}", - infoEntry->Name, infoEntry->ObjectType, infoEntry->Value); - } - } - // - -protected: - Manager(SerializationInfo^ info, - StreamingContext context) : Employee(nullptr) - { - // Get the set of serializable members for the class and base classes. - Type^ thisType = this->GetType(); - array^ serializableMembers = - FormatterServices::GetSerializableMembers(thisType, context); - - // Deserialize the base class's fields from the info object. - for each (MemberInfo^ serializableMember in serializableMembers) - { - // Do not deserialize fields for this class. - if (serializableMember->DeclaringType != thisType) - { - // For easier coding, treat the member as a FieldInfo object - FieldInfo^ fieldInformation = (FieldInfo^)serializableMember; - - // Skip this field if it is marked NonSerialized. - if (!(Attribute::IsDefined(serializableMember, - NonSerializedAttribute::typeid))) - { - // Get the value of this field from the - // SerializationInfo object. - fieldInformation->SetValue(this, - info->GetValue(fieldInformation->Name, - fieldInformation->FieldType)); - } - } - } - - // Deserialize the values that were serialized for this class. - title = info->GetString("title"); - } - -public: - virtual String^ ToString() override - { - return String::Format("{0} -> {1}", title, Employee::ToString()); - } -}; - -int main() -{ - Stream^ stream = gcnew MemoryStream(); - IFormatter^ formatter = gcnew BinaryFormatter(); - Manager^ m = gcnew Manager(); - Console::WriteLine(m->ToString()); - formatter->Serialize(stream, m); - - stream->Position = 0; - m = (Manager^) formatter->Deserialize(stream); - Console::WriteLine(m->ToString()); -} - -// This code produces the following output. -// -// Manager -> Employee -> Person -// Values in the SerializaitonInfo: -// Name=title, ObjectType=System.String, Value=Manager -// Name=Employee+title, ObjectType=System.String, Value=Employee -// Name=Person+title, ObjectType=System.String, Value=Person -// Manager -> Employee -> Person -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/FormatterServices/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/FormatterServices/cpp/makefile deleted file mode 100644 index ac459f1f7cd67..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/FormatterServices/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -FormatterServices.exe: FormatterServices.cpp - cl /clr:pure /FeFormatterServices.exe FormatterServices.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpBinding_HttpBinding/CPP/HttpBinding_ctor_Input_CPP.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/HttpBinding_HttpBinding/CPP/HttpBinding_ctor_Input_CPP.wsdl deleted file mode 100644 index 5adc74e56098d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpBinding_HttpBinding/CPP/HttpBinding_ctor_Input_CPP.wsdl +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpBinding_HttpBinding/CPP/httpbinding_ctor.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpBinding_HttpBinding/CPP/httpbinding_ctor.cpp deleted file mode 100644 index 6e09ece812682..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpBinding_HttpBinding/CPP/httpbinding_ctor.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// System.Web.Services.Description.HttpBinding.HttpBinding() -// System.Web.Services.Description.HttpBinding.Namespace -// System.Web.Services.Description.HttpAddressBinding.HttpAddressBinding() - -/* The following program demonstrates the constructor, field 'Namespace' of - class 'HttpBinding' and constructor of class 'HttpAddressBinding'. This program writes all 'HttpPost' binding related information to the input wsdl file and genrates an output file which is later on compiled using wsdl tool. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - ServiceDescription^ myDescription = ServiceDescription::Read( "HttpBinding_ctor_Input_CPP.wsdl" ); - - // - // - // Create 'Binding' object. - Binding^ myBinding = gcnew Binding; - myBinding->Name = "MyHttpBindingServiceHttpPost"; - XmlQualifiedName^ qualifiedName = gcnew XmlQualifiedName( "s0:MyHttpBindingServiceHttpPost" ); - myBinding->Type = qualifiedName; - - // Create 'HttpBinding' object. - HttpBinding^ myHttpBinding = gcnew HttpBinding; - myHttpBinding->Verb = "POST"; - Console::WriteLine( "HttpBinding Namespace : {0}", HttpBinding::Namespace ); - // - - // Add 'HttpBinding' to 'Binding'. - myBinding->Extensions->Add( myHttpBinding ); - // - - // Create 'OperationBinding' object. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "AddNumbers"; - HttpOperationBinding^ myOperation = gcnew HttpOperationBinding; - myOperation->Location = "/AddNumbers"; - - // Add 'HttpOperationBinding' to 'OperationBinding'. - myOperationBinding->Extensions->Add( myOperation ); - - // Create 'InputBinding' object. - InputBinding^ myInput = gcnew InputBinding; - MimeContentBinding^ postMimeContentbinding = gcnew MimeContentBinding; - postMimeContentbinding->Type = "application/x-www-form-urlencoded"; - myInput->Extensions->Add( postMimeContentbinding ); - - // Add 'InputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInput; - - // Create 'OutputBinding' object. - OutputBinding^ myOutput = gcnew OutputBinding; - MimeXmlBinding^ postMimeXmlbinding = gcnew MimeXmlBinding; - postMimeXmlbinding->Part = "Body"; - myOutput->Extensions->Add( postMimeXmlbinding ); - - // Add 'OutPutBinding' to 'OperationBinding'. - myOperationBinding->Output = myOutput; - - // Add 'OperationBinding' to 'Binding'. - myBinding->Operations->Add( myOperationBinding ); - - // Add 'Binding' to 'BindingCollection' of 'ServiceDescription'. - myDescription->Bindings->Add( myBinding ); - - // - // Create a 'Port' object. - Port^ postPort = gcnew Port; - postPort->Name = "MyHttpBindingServiceHttpPost"; - postPort->Binding = gcnew XmlQualifiedName( "s0:MyHttpBindingServiceHttpPost" ); - - // Create 'HttpAddressBinding' object. - HttpAddressBinding^ postAddressBinding = gcnew HttpAddressBinding; - postAddressBinding->Location = "http://localhost/HttpBinding_ctor/HttpBinding_ctor_Service.cs.asmx"; - - // Add 'HttpAddressBinding' to 'Port'. - postPort->Extensions->Add( postAddressBinding ); - // - - // Add 'Port' to 'PortCollection' of 'ServiceDescription'. - myDescription->Services[ 0 ]->Ports->Add( postPort ); - - // Write 'ServiceDescription' as a WSDL file. - myDescription->Write( "HttpBinding_ctor_Output_CPP.wsdl" ); - Console::WriteLine( "WSDL file with name 'HttpBinding_ctor_Output_CPP.wsdl' file created Successfully" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel.AddHookChannelUri/CPP/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel.AddHookChannelUri/CPP/class1.cpp deleted file mode 100644 index a5bf4b16d1aef..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel.AddHookChannelUri/CPP/class1.cpp +++ /dev/null @@ -1,219 +0,0 @@ - - -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::IO; -using namespace System::Runtime::Remoting::Messaging; - -// This snippet demonstrates HttpChannel->AddHookChannelUri. -// client code should NOT call this call directly. So, I'm -// writing a class using an implementation that mimics the behavior -// of HttpChannel -// -ref class CustomChannel: public BaseChannelWithProperties, public IChannelReceiverHook, public IChannelReceiver, public IChannel, public IChannelSender -{ -public: - virtual void AddHookChannelUri( String^ channelUri ) - { - if ( channelUri != nullptr ) - { - array^uris = dataStore->ChannelUris; - - // This implementation only allows one URI to be hooked in. - if ( uris == nullptr ) - { - array^newUris = gcnew array(1); - newUris[ 0 ] = channelUri; - dataStore->ChannelUris = newUris; - wantsToListen = false; - } - else - { - String^ msg = "This channel is already listening for data, and can't be hooked into at this stage."; - throw gcnew System::Runtime::Remoting::RemotingException( msg ); - } - } - } - - // The rest of CustomChannel's implementation. - // - ref class TransportSink: public IServerChannelSink - { - public: - - property IServerChannelSink^ NextChannelSink - { - virtual IServerChannelSink^ get() - { - return next; - } - - } - TransportSink( IServerChannelSink^ nextSink ) - { - next = nextSink; - } - - // I am not implementing these because they are - // not needed for my snippet but they must be here. - virtual void AsyncProcessResponse( IServerResponseChannelSinkStack^ sinkStack, Object^ state, IMessage^ msg, ITransportHeaders^ headers, Stream^ stream ){} - - virtual Stream^ GetResponseStream( IServerResponseChannelSinkStack^ sinkStack, Object^ state, IMessage^ msg, ITransportHeaders^ headers ) - { - return nullptr; - } - - virtual ServerProcessing ProcessMessage( IServerChannelSinkStack^ sinkStack, IMessage^ requestMsg, ITransportHeaders^ requestHeaders, Stream^ requestStream, IMessage^% msg, ITransportHeaders^% responseHeaders, Stream^% responseStream ) - { - msg = nullptr; - responseHeaders = nullptr; - responseStream = nullptr; - return ServerProcessing::Complete; - } - - - property IDictionary^ Properties - { - virtual IDictionary^ get() - { - return nullptr; - } - } - - private: - IServerChannelSink^ next; - }; - - -private: - TransportSink^ transportSink; - -public: - property IServerChannelSink^ ChannelSinkChain - { - virtual IServerChannelSink^ get() - { - return transportSink->NextChannelSink; - } - } - -public: - CustomChannel() - { - BinaryServerFormatterSink^ formatterSink = gcnew BinaryServerFormatterSink( BinaryServerFormatterSink::Protocol::Http,nullptr,this ); - transportSink = gcnew TransportSink( formatterSink ); - priority = 0; - dataStore = gcnew ChannelDataStore( nullptr ); - wantsToListen = true; - socket = ""; - } - - CustomChannel( int portNum ) - { - BinaryServerFormatterSink^ formatterSink = gcnew BinaryServerFormatterSink( BinaryServerFormatterSink::Protocol::Http,nullptr,this ); - transportSink = gcnew TransportSink( formatterSink ); - priority = 0; - dataStore = gcnew ChannelDataStore( nullptr ); - wantsToListen = false; - socket = String::Format( "http://localhost: {0}", portNum ); - } - - CustomChannel( IDictionary^ properties, IClientChannelSinkProvider^ clientSinkProvider, IServerChannelSinkProvider^ serverSinkProvider ){} - - - property String^ ChannelName - { - virtual String^ get() - { - return "custom"; - } - } - - property Object^ ChannelData - { - virtual Object^ get() - { - return dataStore; - } - } - - property bool WantsToListen - { - virtual bool get() - { - return wantsToListen; - } - } - - property int ChannelPriority - { - virtual int get() - { - return priority; - } - } - - property String^ ChannelScheme - { - virtual String^ get() - { - return "http"; - } - - } - virtual array^ GetUrlsForUri( String^ uri ) - { - array^urls = gcnew array(dataStore->ChannelUris->Length); - int i = 0; - IEnumerator^ myEnum = dataStore->ChannelUris->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - String^ currUri = safe_cast(myEnum->Current); - urls[ i ] = String::Format( "{0} / {1}", socket, currUri ); - i++; - } - - return urls; - } - - virtual void StartListening( Object^ data ){} - - virtual void StopListening( Object^ data ){} - - virtual String^ Parse( String^ url, String^% objectURI ) - { - int lastSlash = url->LastIndexOf( "/" ); - objectURI = ""; - objectURI = url->Substring( lastSlash ); - return socket; - } - - virtual IMessageSink^ CreateMessageSink( String^ url, Object^ remoteChannelData, String^% objectURI ) - { - Parse( url, objectURI ); - return nullptr; - } - -private: - ChannelDataStore^ dataStore; - bool wantsToListen; - int priority; - String^ socket; -}; - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - CustomChannel^ channel = gcnew CustomChannel( 8085 ); - channel->AddHookChannelUri( "TempConverter" ); - - //System::Runtime::Remoting::Channels.Http::HttpChannel* channel = new System::Runtime::Remoting::Channels.Http::HttpChannel(8085); - //System::Runtime::Remoting::Channels.Tcp::TcpChannel* channel = new System::Runtime::Remoting::Channels.Tcp::TcpChannel(8085); - System::Console::WriteLine( channel->GetUrlsForUri( "TempConverter" )[ 0 ] ); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel.ChannelSinkChain/CPP/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel.ChannelSinkChain/CPP/class1.cpp deleted file mode 100644 index 1520773148216..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel.ChannelSinkChain/CPP/class1.cpp +++ /dev/null @@ -1,215 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::IO; -using namespace System::Runtime::Remoting::Messaging; - -// This snippet demonstrates HttpChannel::ChannelSinkChain. -// client code should NOT call this call directly. So, I'm -// writing a class that implements the member as HttpChannel -// does. That is, it returns the first sink after the transport -// sink. ie... if the sink chain is transport=>encryption=>formatter -// then this member should return encryption. - -// -ref class CustomChannel: public BaseChannelWithProperties, public IChannelReceiverHook, public IChannelReceiver, public IChannel, public IChannelSender -{ -public: - - property IServerChannelSink^ ChannelSinkChain - { - // TransportSink is a private class defined within CustomChannel. - virtual IServerChannelSink^ get() - { - return transportSink->NextChannelSink; - } - } - - // Rest of CustomChannel's implementation... - // - CustomChannel() - { - BinaryServerFormatterSink^ formatterSink = gcnew BinaryServerFormatterSink( BinaryServerFormatterSink::Protocol::Http,nullptr,this ); - transportSink = gcnew TransportSink( formatterSink ); - priority = 0; - dataStore = gcnew ChannelDataStore( nullptr ); - wantsToListen = true; - socket = ""; - } - - CustomChannel( int portNum ) - { - BinaryServerFormatterSink^ formatterSink = gcnew BinaryServerFormatterSink( BinaryServerFormatterSink::Protocol::Http,nullptr,this ); - transportSink = gcnew TransportSink( formatterSink ); - priority = 0; - dataStore = gcnew ChannelDataStore( nullptr ); - wantsToListen = false; - socket = "http://localhost: {0}",portNum; - } - - CustomChannel( IDictionary^ properties, IClientChannelSinkProvider^ clientSinkProvider, IServerChannelSinkProvider^ serverSinkProvider ){} - - property String^ ChannelName - { - virtual String^ get() - { - return "custom"; - } - - } - - property Object^ ChannelData - { - virtual Object^ get() - { - return dataStore; - } - - } - virtual void AddHookChannelUri( String^ channelUri ) - { - if ( channelUri != nullptr ) - { - array^uris = dataStore->ChannelUris; - if ( uris == nullptr ) - { - array^newUris = gcnew array(1); - newUris[ 0 ] = channelUri; - dataStore->ChannelUris = newUris; - } - else - { - String^ msg = "This channel is already listening for data, and can't be hooked into at this stage."; - throw gcnew System::Runtime::Remoting::RemotingException( msg ); - } - } - } - - property bool WantsToListen - { - virtual bool get() - { - return wantsToListen; - } - - } - - property int ChannelPriority - { - virtual int get() - { - return priority; - } - - } - - property String^ ChannelScheme - { - virtual String^ get() - { - return "http"; - } - - } - virtual array^ GetUrlsForUri( String^ uri ) - { - array^urls = gcnew array(dataStore->ChannelUris->Length); - int i = 0; - IEnumerator^ myEnum = dataStore->ChannelUris->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - String^ currUri = safe_cast(myEnum->Current); - urls[ i ] = String::Format( "{0}/{1}", socket, currUri ); - i++; - } - - return urls; - } - - virtual void StartListening( Object^ data ){} - - virtual void StopListening( Object^ data ){} - - virtual String^ Parse( String^ url, String^% objectURI ) - { - int lastSlash = url->LastIndexOf( "/" ); - objectURI = ""; - objectURI = url->Substring( lastSlash ); - return socket; - } - - virtual IMessageSink^ CreateMessageSink( String^ url, Object^ remoteChannelData, String^% objectURI ) - { - Parse( url, objectURI ); - return nullptr; - } - - ref class TransportSink: public IServerChannelSink - { - public: - - property IServerChannelSink^ NextChannelSink - { - virtual IServerChannelSink^ get() - { - return next; - } - - } - TransportSink( IServerChannelSink^ nextSink ) - { - next = nextSink; - } - - // I am not implementing these because they are - // not needed for my snippet but they must be here. - virtual void AsyncProcessResponse( IServerResponseChannelSinkStack^ sinkStack, Object^ state, IMessage^ msg, ITransportHeaders^ headers, Stream^ stream ){} - - virtual Stream^ GetResponseStream( IServerResponseChannelSinkStack^ sinkStack, Object^ state, IMessage^ msg, ITransportHeaders^ headers ) - { - return nullptr; - } - - virtual ServerProcessing ProcessMessage( IServerChannelSinkStack^ sinkStack, IMessage^ requestMsg, ITransportHeaders^ requestHeaders, Stream^ requestStream, IMessage^% msg, ITransportHeaders^% responseHeaders, Stream^% responseStream ) - { - msg = nullptr; - responseHeaders = nullptr; - responseStream = nullptr; - return ServerProcessing::Complete; - } - - property IDictionary^ Properties - { - virtual IDictionary^ get() - { - return nullptr; - } - } - - private: - IServerChannelSink^ next; - }; - -private: - ChannelDataStore^ dataStore; - bool wantsToListen; - int priority; - String^ socket; - TransportSink^ transportSink; -}; - -int main() -{ - CustomChannel^ channel = gcnew CustomChannel( 8085 ); - channel->AddHookChannelUri( "TempConverter" ); - - //System::Runtime::Remoting::Channels.Http::HttpChannel* channel = new System::Runtime::Remoting::Channels.Http::HttpChannel(8085); - //System::Runtime::Remoting::Channels.Tcp::TcpChannel* channel = new System::Runtime::Remoting::Channels.Tcp::TcpChannel(8085); - System::Console::WriteLine( channel->ChannelSinkChain ); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel.GetUrlsFromUri/CPP/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel.GetUrlsFromUri/CPP/class1.cpp deleted file mode 100644 index 76d14d8aed808..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel.GetUrlsFromUri/CPP/class1.cpp +++ /dev/null @@ -1,33 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Collections; - -public ref class HelloService: public MarshalByRefObject{}; - -int main() -{ - // Create a remotable object. - HttpChannel^ httpChannel = gcnew HttpChannel( 8085 ); - WellKnownServiceTypeEntry^ WKSTE = gcnew WellKnownServiceTypeEntry( HelloService::typeid,"Service",WellKnownObjectMode::Singleton ); - RemotingConfiguration::RegisterWellKnownServiceType( WKSTE ); - RemotingConfiguration::ApplicationName = "HelloServer"; - - // Print out the urls for HelloServer. - array^urls = httpChannel->GetUrlsForUri( "HelloServer" ); - IEnumerator^ myEnum = urls->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - String^ url = safe_cast(myEnum->Current); - System::Console::WriteLine( "{0}", url ); - } - - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/client.cpp deleted file mode 100644 index b30b48567bc26..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/client.cpp +++ /dev/null @@ -1,50 +0,0 @@ -#using -#using -#using - -using namespace System; -using namespace System::Net::Sockets; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Remoting::Lifetime; -using namespace System::Security::Permissions; -using namespace SampleNamespace; - -// The following sample uses an HttpChannel constructor -// to create a new HttpChannel, allowing this client to -// hook up to an event on a server Object*. -// System::Runtime::Remoting::Channels.Http::HttpChannel.HttpChannel(int) -// -public ref class SampleClient: public MarshalByRefObject -{ -public: - [PermissionSet(SecurityAction::LinkDemand)] - SampleClient() - { - ChannelServices::RegisterChannel( gcnew HttpChannel( 0 ), false ); - SampleService ^ service = dynamic_cast(Activator::GetObject(SampleNamespace::SampleService::typeid, "http://localhost:9000/MySampleService/SampleService::soap" )); - - // Subscribe to event so that the client can receive notification from ther server. - SomethingHappenedEventHandler ^ eventHandler = gcnew SomethingHappenedEventHandler(this, &SampleClient::OnSomethingHappened ); - service->SomethingHappened += eventHandler; - - // The server will fire the SomethingHappened event in SampleMethod() - service->SampleMethod(); - service->SomethingHappened -= eventHandler; - } - - void OnSomethingHappened( Object^ source, SampleServiceEventArgs^ e ) - { - Console::WriteLine( "SomethingHappened event fired: {0}", e->Message ); - } - -}; - -int main() -{ - SampleClient^ client = gcnew SampleClient; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/client2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/client2.cpp deleted file mode 100644 index 3fa80f648699f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/client2.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#using -#using -#using - -using namespace System; -using namespace System::Net::Sockets; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Remoting::Lifetime; -using namespace SampleNamespace; - -// The following sample uses an HttpChannel constructor -// to create a new HttpChannel. -// NOTE: manually instantiating HttpChannel() and registering it does not seem -// necessary. This sample will work if the line of code is commented out. -// System::Runtime::Remoting::Channels.Http::HttpChannel.HttpChannel() -// -public ref class SampleClient: public MarshalByRefObject -{ -public: - void main() - { - ChannelServices::RegisterChannel( gcnew HttpChannel, false ); - RemotingConfiguration::RegisterWellKnownClientType( SampleService::typeid, "http://localhost:9000/MySampleService/SampleService::soap" ); - SampleService ^ service = gcnew SampleService; - service->SampleMethod(); - } - -}; - - -// actual entry point -int main() -{ - SampleClient^ p = gcnew SampleClient; - p->main(); - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/makefile deleted file mode 100644 index d4e70c2e1d14a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/makefile +++ /dev/null @@ -1,19 +0,0 @@ -all : client.exe client2.exe server.exe server2.exe - - -client.exe : client.cpp service.dll - cl /clr:pure client.cpp - -client2.exe : client2.cpp service.dll - cl /clr:pure client.cpp - -server.exe : server.cpp service.dll - cl /clr:pure server.cpp - -server2.exe : server2.cpp service.dll - cl /clr:pure server2.cpp - -service.dll : service.cpp - cl /LD /clr:pure service.cpp - - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/server.cpp deleted file mode 100644 index 6e1b41e8078e2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/server.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Lifetime; -using namespace SampleNamespace; - -// This assembly contains a remote service and its server host wrapped together. -int main() -{ - - // The following sample uses an HttpChannel constructor - // to create a new HttpChannel that will listen on port 9000. - // System::Runtime::Remoting::Channels.Http::HttpChannel.HttpChannel(int) - // System::Runtime::Remoting::Channels.Http::HttpChannel - // - HttpChannel^ channel = gcnew HttpChannel( 9000 ); - ChannelServices::RegisterChannel( channel, false ); - RemotingConfiguration::RegisterWellKnownServiceType( SampleNamespace::SampleService::typeid, "MySampleService/SampleService::soap", WellKnownObjectMode::Singleton ); - Console::WriteLine( "** Press enter to end the server process. **" ); - Console::ReadLine(); - // - - return 0; -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/server2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/server2.cpp deleted file mode 100644 index 596d3b490b1de..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/server2.cpp +++ /dev/null @@ -1,31 +0,0 @@ - -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Lifetime; -using namespace System::Collections::Specialized; -using namespace SampleNamespace; - -// This assembly contains a remote service and its server host wrapped together. -int main() -{ - - // The following sample uses an HttpChannel constructor - // to create a new HttpChannel that will listen on port 9000. - // System::Runtime::Remoting::Channels.Http::HttpChannel.HttpChannel(IDictionary*, IClientChannelSinkProvider*, IServerChannelSinkProvider*); - // - ListDictionary^ channelProperties = gcnew ListDictionary; - channelProperties->Add( "port", 9000 ); - HttpChannel^ channel = gcnew HttpChannel( channelProperties,gcnew SoapClientFormatterSinkProvider,gcnew SoapServerFormatterSinkProvider ); - ChannelServices::RegisterChannel( channel, false ); - RemotingConfiguration::RegisterWellKnownServiceType(SampleNamespace::SampleService::typeid, "MySampleService/SampleService::soap", WellKnownObjectMode::Singleton ); - Console::WriteLine( "** Press enter to end the server process. **" ); - Console::ReadLine(); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/service.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/service.cpp deleted file mode 100644 index 7625518a511b7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpChannel/CPP/service.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Lifetime; - -namespace SampleNamespace -{ - // Define the event arguments - [Serializable] - public ref class SampleServiceEventArgs: public EventArgs - { - private: - String^ m_Message; - - public: - SampleServiceEventArgs( String^ message ) - { - m_Message = message; - } - - property String^ Message - { - String^ get() - { - return m_Message; - } - } - }; - - // Define the delegate for the event - public delegate void SomethingHappenedEventHandler(Object^ sender, SampleServiceEventArgs^ e ); - - // Define the remote service class - public ref class SampleService: public MarshalByRefObject - { - // The client will subscribe and unsubscribe to this event - public: - event SomethingHappenedEventHandler^ SomethingHappened; - - bool SampleMethod() - { - Console::WriteLine( "Hello, you have called SampleMethod()." ); - - // Fire Event - // Package String in TimerServiceEventArgs - SampleServiceEventArgs^ sampleEventArgs = gcnew SampleServiceEventArgs( "Something happened" ); - Console::WriteLine( "Firing SomethingHappened Event" ); - SomethingHappened( this, sampleEventArgs ); - - return true; - } - }; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpGetClientProtocol_Constructor/CPP/httpgetclientprotocol_constructor.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpGetClientProtocol_Constructor/CPP/httpgetclientprotocol_constructor.cpp deleted file mode 100644 index 4b14e0f5e34a2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpGetClientProtocol_Constructor/CPP/httpgetclientprotocol_constructor.cpp +++ /dev/null @@ -1,77 +0,0 @@ - - -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -// System.Web.Services.Protocols.HttpGetClientProtocol.HttpGetClientProtocol -/* The following example demonstrates 'Constructor' of 'HttpGetClientProtocol' class -A variable of type 'HttpGetClientProtocol' is used to set proxy information , -client credentials and Url on the proxy class. -*/ -/* -// The following example is a proxy class generated by the Wsdl.exe -// utility for the Math Web service. The proxy class derives from -// HttpGetClientProtocol, which derives from the abstract -// HttpSimpleClientProtocol class. - -public class MyMath : System.Web.Services.Protocols.HttpGetClientProtocol -{ -[System.Diagnostics.DebuggerStepThroughAttribute()] -public MyMath() -{ -this.Url = "http://localhost/MyMath.Cs.asmx"; -} - -[System.Diagnostics.DebuggerStepThroughAttribute()] -[System.Web.Services.Protocols.HttpMethodAttribute( -typeof(System.Web.Services.Protocols.XmlReturnReader), -typeof(System.Web.Services.Protocols.UrlParameterWriter))] -[return: System.Xml.Serialization.XmlRootAttribute("int", -Namespace="http://tempuri.org/", IsNullable=false)] -public int Add(string num1, string num2) -{ -return ((int)(this.Invoke("Add", (this.Url + "/Add"), new object[] { -num1, -num2}))); -} - -[System.Diagnostics.DebuggerStepThroughAttribute()] -public System.IAsyncResult BeginAdd(string num1, string num2, -System.AsyncCallback callback, object asyncState) -{ -return this.BeginInvoke("Add", (this.Url + "/Add"), new object[] { -num1, -num2}, callback, asyncState); -} - -[System.Diagnostics.DebuggerStepThroughAttribute()] -public int EndAdd(System.IAsyncResult asyncResult) -{ -return ((int)(this.EndInvoke(asyncResult))); -} -} -*/ -public ref class Math: public HttpGetClientProtocol{}; - -int main() -{ - - // - // Math is a proxy class derived from HttpGetClientProtocol. - HttpGetClientProtocol^ myHttpGetClientProtocol = gcnew ::Math; - - // Obtain password from a secure store. - String^ SecurelyStoredPassword = String::Empty; - - // Set the client-side credentials using the Credentials property. - ICredentials^ credentials = gcnew NetworkCredential( "Joe","mydomain",SecurelyStoredPassword ); - myHttpGetClientProtocol->Credentials = credentials; - Console::WriteLine( "Auto redirect is: {0}", myHttpGetClientProtocol->AllowAutoRedirect ); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpPostClientProtocol_Constructor/CPP/httppostclientprotocol_constructor.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpPostClientProtocol_Constructor/CPP/httppostclientprotocol_constructor.cpp deleted file mode 100644 index b09c48ea156f0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpPostClientProtocol_Constructor/CPP/httppostclientprotocol_constructor.cpp +++ /dev/null @@ -1,75 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -// System.Web.Services.Protocols.HttpPostClientProtocol.HttpPostClientProtocol -/* The following example demonstrates 'Constructor' of 'HttpPostClientProtocol' class -A variable of type 'HttpPostClientProtocol' is used to set proxy information , -client credentials and Url on the proxy class. -*/ -/* -// The following example is a proxy class generated by the Wsdl.exe utility -// for the Math Web service. The proxy class derives from -// HttpPostClientProtocol, which derives from the abstract -// HttpSimpleClientProtocol class. - -public class MyMath : System.Web.Services.Protocols.HttpPostClientProtocol -{ -[System.Diagnostics.DebuggerStepThroughAttribute()] -public MyMath() -{ -this.Url = "http://localhost/Mymath.Cs.asmx"; -} - -[System.Diagnostics.DebuggerStepThroughAttribute()] -[System.Web.Services.Protocols.HttpMethodAttribute( -typeof(System.Web.Services.Protocols.XmlReturnReader), -typeof(System.Web.Services.Protocols.HtmlFormParameterWriter))] -[return: System.Xml.Serialization.XmlRootAttribute("int", -Namespace="http://tempuri.org/", IsNullable=false)] -public int Add(string num1, string num2) -{ -return ((int)(this.Invoke("Add", (this.Url + "/Add"), -new object[] {num1, num2}))); -} - -[System.Diagnostics.DebuggerStepThroughAttribute()] -public System.IAsyncResult BeginAdd(string num1, string num2, -System.AsyncCallback callback, object asyncState) -{ -return this.BeginInvoke("Add", (this.Url + "/Add"), -new object[] {num1, num2}, callback, asyncState); -} - -[System.Diagnostics.DebuggerStepThroughAttribute()] -public int EndAdd(System.IAsyncResult asyncResult) -{ -return ((int)(this.EndInvoke(asyncResult))); -} -} -*/ -public ref class Math: public HttpPostClientProtocol{}; - -int main() -{ - - // - // Math is a proxy class derived from HttpPostClientProtocol. - HttpPostClientProtocol^ myHttpPostClientProtocol = gcnew ::Math; - - // Obtain password from a secure store. - String^ SecurelyStoredPassword = String::Empty; - - // Set the client-side credentials using the Credentials property. - myHttpPostClientProtocol->Credentials = System::Net::CredentialCache::DefaultCredentials; - - // Allow the server to redirect the request. - myHttpPostClientProtocol->AllowAutoRedirect = true; - Console::WriteLine( "Auto redirect is: {0}", myHttpPostClientProtocol->AllowAutoRedirect ); - - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpServerChannel_Server_Client/CPP/HttpServerChannel_Clientl_14_Share.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpServerChannel_Server_Client/CPP/HttpServerChannel_Clientl_14_Share.cpp deleted file mode 100644 index 16b3761c1b635..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpServerChannel_Server_Client/CPP/HttpServerChannel_Clientl_14_Share.cpp +++ /dev/null @@ -1,21 +0,0 @@ -/* This program will define the methods to execute from the client. - */ -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; - -public ref class MyHelloServer : public MarshalByRefObject -{ -public: - MyHelloServer() - { - Console::WriteLine("HelloServer activated"); - } - -public: - String^ myHelloMethod(String^ name) - { - Console::WriteLine("Hello.HelloMethod : {0}", name); - return "Hi there " + name; - } -}; \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpServerChannel_Server_Client/CPP/httpclientchannel_6_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpServerChannel_Server_Client/CPP/httpclientchannel_6_client.cpp deleted file mode 100644 index b891e831c59cf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpServerChannel_Server_Client/CPP/httpclientchannel_6_client.cpp +++ /dev/null @@ -1,71 +0,0 @@ - - -// System.Runtime.Remoting.Channels.Http.HttpClientChannel -// System.Runtime.Remoting.Channels.Http.HttpClientChannel.ChannelName; System.Runtime.Remoting.Channels.Http.HttpClientChannel.ChannelPriority; System.Runtime.Remoting.Channels.Http.HttpClientChannel.Parse(); System.Runtime.Remoting.Channels.Http.HttpClientChannel.Keys; System.Runtime.Remoting.Channels.Http.HttpClientChannel.CreateMessageSink() -/* -The following program demonstrates the 'HttpClientChannel' class and -'ChannelName','ChannelPriority' , 'Keys', properties, and 'Parse', -CreateMessageSink methods of 'HttpClientChannel' class. This program -create and registers 'HttpClientChannel'. This will change the priority -of the 'HttpClientChannel' channel and it displays the property values -of 'HttpClientChannel'. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Collections; -using namespace System::Runtime::Remoting::Messaging; - -int main() -{ - try - { - // - // Creating the 'IDictionary' to set the server object properties. - IDictionary^ myDictionary = gcnew Hashtable; - myDictionary[ "name" ] = "HttpClientChannel"; - myDictionary[ "priority" ] = 2; - - // Set the properties along with the constructor. - HttpClientChannel^ myHttpClientChannel = gcnew HttpClientChannel( myDictionary,gcnew BinaryClientFormatterSinkProvider ); - - // Register the server channel. - ChannelServices::RegisterChannel( myHttpClientChannel ); - MyHelloServer ^ myHelloServer1 = dynamic_cast(Activator::GetObject( MyHelloServer::typeid, "http://localhost:8085/SayHello" )); - if ( myHelloServer1 == nullptr ) - System::Console::WriteLine( "Could not locate server" ); - else - { - Console::WriteLine( myHelloServer1->myHelloMethod( "Client" ) ); - - // Get the name of the channel. - Console::WriteLine( "Channel Name :{0}", myHttpClientChannel->ChannelName ); - - // Get the channel priority. - Console::WriteLine( "ChannelPriority :{0}", myHttpClientChannel->ChannelPriority ); - String^ myString; - String^ myObjectURI1; - Console::WriteLine( "Parse :{0}{1}", myHttpClientChannel->Parse( "http://localhost:8085/SayHello", myString ), myString ); - - // Get the key count. - System::Console::WriteLine( "Keys->Count : {0}", myHttpClientChannel->Keys->Count ); - - // Get the channel message sink that delivers message to the specified url. - IMessageSink^ myIMessageSink = myHttpClientChannel->CreateMessageSink( "http://localhost:8085/NewEndPoint", nullptr, myObjectURI1 ); - Console::WriteLine( "The channel message sink that delivers the messages to the URL is : {0}", myIMessageSink ); - Console::WriteLine( "URI of the new channel message sink is: {0}", myObjectURI1 ); - } - // - } - catch ( Exception^ ex ) - { - Console::WriteLine( "The following exception is raised on client side :{0}", ex->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpServerChannel_Server_Client/CPP/httpserverchannel_9_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpServerChannel_Server_Client/CPP/httpserverchannel_9_server.cpp deleted file mode 100644 index e7549bfa2db6c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpServerChannel_Server_Client/CPP/httpserverchannel_9_server.cpp +++ /dev/null @@ -1,84 +0,0 @@ - - -// System.Runtime.Remoting.Channels.Http.HttpServerChannel -// System.Runtime.Remoting.Channels.Http.HttpServerChannel.StartListening(); System.Runtime.Remoting.Channels.Http.HttpServerChannel.ChannelName; System.Runtime.Remoting.Channels.Http.HttpServerChannel.ChannelPriority; System.Runtime.Remoting.Channels.Http.HttpServerChannel.ChannelScheme; System.Runtime.Remoting.Channels.Http.HttpServerChannel.GetChannelUri(); System.Runtime.Remoting.Channels.Http.HttpServerChannel.WantsToListen -// System.Runtime.Remoting.Channels.Http.HttpServerChannel.Parse(); System.Runtime.Remoting.Channels.Http.HttpServerChannel.StopListening() -/* The following program demonstrates the 'HttpServerChannel' class, 'ChannelName', -'ChannelPriority', 'ChannelScheme', 'WantsToListen' properties, 'GetChannelUri', -'StartListening', 'StopListening' and 'Parse' methods of 'HttpServerChannel' class. -This program creates and registers 'HttpServerChannel'. This will change the priority -of the 'HttpServerChannel' channel and displays the property values of this class. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -int main() -{ - try - { - String^ myString; - - // - int myPort = 8085; - - // Creating the 'IDictionary' to set the server object properties. - IDictionary^ myDictionary = gcnew Hashtable; - myDictionary[ "name" ] = "MyServerChannel1"; - myDictionary[ "priority" ] = 2; - myDictionary[ "port" ] = 8085; - - // Set the properties along with the constructor. - HttpServerChannel^ myHttpServerChannel = gcnew HttpServerChannel( myDictionary,gcnew BinaryServerFormatterSinkProvider ); - - // Register the server channel. - ChannelServices::RegisterChannel( myHttpServerChannel ); - RemotingConfiguration::RegisterWellKnownServiceType( MyHelloServer::typeid, "SayHello", WellKnownObjectMode::SingleCall ); - myHttpServerChannel->WantsToListen = true; - - // Start listening on a specific port. - myHttpServerChannel->StartListening( myPort ); - - // Get the name of the channel. - Console::WriteLine( "ChannelName : {0}", myHttpServerChannel->ChannelName ); - - // Get the channel priority. - Console::WriteLine( "ChannelPriority : {0}", myHttpServerChannel->ChannelPriority ); - - // Get the schema of the channel. - Console::WriteLine( "ChannelScheme : {0}", myHttpServerChannel->ChannelScheme ); - - // Get the channel URI. - Console::WriteLine( "GetChannelUri : {0}", myHttpServerChannel->GetChannelUri() ); - - // Indicates whether 'IChannelReceiverHook' wants to be hooked into the outside listener service. - Console::WriteLine( "WantsToListen : {0}", myHttpServerChannel->WantsToListen ); - // - - // - // Extract the channel URI and the remote well known object URI from the specified URL. - Console::WriteLine( "Parsed : {0}", myHttpServerChannel->Parse( String::Concat( myHttpServerChannel->GetChannelUri(), "/SayHello" ), myString ) ); - Console::WriteLine( "Remote WellKnownObject : {0}", myString ); - Console::WriteLine( "Hit to stop listening..." ); - Console::ReadLine(); - - // Stop listening to channel. - myHttpServerChannel->StopListening( myPort ); - // - - Console::WriteLine( "Hit to exit..." ); - Console::ReadLine(); - } - catch ( Exception^ ex ) - { - Console::WriteLine( "The following exception is raised on server side : {0}", ex->Message ); - } - -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpServerChannel_Server_Client/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/HttpServerChannel_Server_Client/CPP/makefile deleted file mode 100644 index 54468753cc4ba..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpServerChannel_Server_Client/CPP/makefile +++ /dev/null @@ -1,11 +0,0 @@ - -all: HttpServerChannel_Client.exe HttpServerChannel_Server.exe - -HttpServerChannel_Client.exe: HttpClientChannel_6_Client.cpp HttpServerChannel_Share.dll - cl /clr:pure HttpClientChannel_6_Client.cpp - -HttpServerChannel_Server.exe: HttpServerChannel_9_Server.cpp HttpServerChannel_Share.dll - cl /clr:pure HttpServerChannel_9_Server.cpp - -HttpServerChannel_Share.dll: HttpServerChannel_Clientl_14_Share.cpp - cl /clr:pure /LD HttpServerChannel_Clientl_14_Share.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpSimpleClientProtocol.Invoke Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpSimpleClientProtocol.Invoke Example/CPP/source.cpp deleted file mode 100644 index 6553b346e86e4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpSimpleClientProtocol.Invoke Example/CPP/source.cpp +++ /dev/null @@ -1,60 +0,0 @@ - - -// -#using -#using -#using - -using namespace System::Diagnostics; -using namespace System::Xml::Serialization; -using namespace System; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -namespace MyMath -{ - - [System::Web::Services::WebServiceBindingAttribute(Name="MathSoap",Namespace="http://tempuri.org/")] - public ref class Math: public System::Web::Services::Protocols::SoapHttpClientProtocol - { - public: - - [System::Diagnostics::DebuggerStepThroughAttribute] - Math() - { - this->Url = "http://www.contoso.com/math.asmx"; - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - [System::Web::Services::Protocols::SoapDocumentMethodAttribute("http://tempuri.org/Add", - Use=System::Web::Services::Description::SoapBindingUse::Literal, - ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - int Add( int num1, int num2 ) - { - array^temp0 = {num1,num2}; - array^results = this->Invoke( "Add", temp0 ); - return *dynamic_cast(results[ 0 ]); - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - System::IAsyncResult^ BeginAdd( int num1, int num2, System::AsyncCallback^ callback, Object^ asyncState ) - { - array^temp1 = {num1,num2}; - return this->BeginInvoke( "Add", temp1, callback, asyncState ); - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - int EndAdd( System::IAsyncResult^ asyncResult ) - { - array^results = this->EndInvoke( asyncResult ); - return *dynamic_cast(results[ 0 ]); - } - - }; - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpVersion_Version10/CPP/httpversion_version10.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpVersion_Version10/CPP/httpversion_version10.cpp deleted file mode 100644 index 234d931c473f4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpVersion_Version10/CPP/httpversion_version10.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/*System::Net::HttpVersion::Version10 -This program demonstrates the 'Version10' field of the 'HttpVersion' Class. -The 'ProtocolVersion' property of 'HttpWebrequest' class identifies the Version of the Protocol being used. -A new 'HttpWebRequest' Object* is created. -Then the default value of 'ProtocolVersion' property is displayed to the console. -The 'Version10' field of the 'HttpVersion' class is assigned to the 'ProtocolVersion' property of the 'HttpWebRequest' Class. -The changed Version and the 'ProtocolVersion' of the response Object* are displayed. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; - -int main() -{ - try - { -// - // Create a 'HttpWebRequest' object. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( "http://www.microsoft.com" ) ); - Console::WriteLine( "\nThe 'ProtocolVersion' of the protocol before assignment is : {0}", myHttpWebRequest->ProtocolVersion ); - // Assign Version10 to ProtocolVersion. - myHttpWebRequest->ProtocolVersion = HttpVersion::Version10; - // Assign the response Object* of 'HttpWebRequest' to a 'HttpWebResponse' variable. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - Console::WriteLine( "\nThe 'ProtocolVersion' of the protocol after assignment is : {0}", myHttpWebRequest->ProtocolVersion ); - Console::WriteLine( "\nThe 'ProtocolVersion' of the response Object* is : {0}", myHttpWebResponse->ProtocolVersion ); -// - Console::WriteLine( "\nPress 'Enter' Key to Continue.............." ); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Message : {0} ", e->Message ); - Console::WriteLine( "Source : {0} ", e->Source ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebClientProtocol_UserAgent/CPP/httpwebclientprotocol_useragent.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebClientProtocol_UserAgent/CPP/httpwebclientprotocol_useragent.cpp deleted file mode 100644 index 2b454542d5a13..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebClientProtocol_UserAgent/CPP/httpwebclientprotocol_useragent.cpp +++ /dev/null @@ -1,78 +0,0 @@ -#using -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::Web::Services; -using namespace System::Web::Services::Protocols; -using namespace System::Xml; - -// System.Web.Services.Protocols.HttpWebClientProtocol.UserAgent -/* The following example demonstrates 'UserAgent' member of 'HttpWebClientProtocol' -class. First the default user agent is displayed. Then the user agent is modified -and displayed. -*/ -/* -The following example is a proxy class generated by the Wsdl.exe utility -for the Math Web service. The proxy class derives from SoapHttpClientProtocol, -which derives from the abstract HttpWebClientProtocol class. - -[System.Web.Services.WebServiceBindingAttribute(Name="MyMathSoap", -Namespace="http://tempuri.org/")] -public class MyMath : System.Web.Services.Protocols.SoapHttpClientProtocol -{ -[System.Diagnostics.DebuggerStepThroughAttribute()] -public MyMath() -{ -this.Url = "http://localhost/Mymath.Cs.asmx"; -} - -[System.Diagnostics.DebuggerStepThroughAttribute()] -[System.Web.Services.Protocols.SoapDocumentMethodAttribute( -"http://tempuri.org/Add", -Use=System.Web.Services.Description.SoapBindingUse.Literal, -ParameterStyle= -System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] -public int Add(int num1, int num2) -{ -object[] results = this.Invoke("Add", -new object[] {num1, num2}); -return ((int)(results[0])); -} - -[System.Diagnostics.DebuggerStepThroughAttribute()] -public System.IAsyncResult BeginAdd(int num1, int num2, -System.AsyncCallback callback, object asyncState) -{ -return this.BeginInvoke("Add", new object[] {num1, num2}, -callback, asyncState); -} - -[System.Diagnostics.DebuggerStepThroughAttribute()] -public int EndAdd(System.IAsyncResult asyncResult) -{ -object[] results = this.EndInvoke(asyncResult); -return ((int)(results[0])); -} -} -*/ -namespace test -{ - public ref class MyMath: public SoapHttpClientProtocol{}; - -} - -int main() -{ - - // - // MyMath is a proxy class. - test::MyMath^ objMyMath = gcnew test::MyMath; - - // Get the default user agent. - Console::WriteLine( "Default user agent is: {0}", objMyMath->UserAgent ); - objMyMath->UserAgent = "My Agent"; - Console::WriteLine( "Modified user agent is: {0}", objMyMath->UserAgent ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Accept/CPP/httpwebrequest_accept.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Accept/CPP/httpwebrequest_accept.cpp deleted file mode 100644 index a478dd3224104..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Accept/CPP/httpwebrequest_accept.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/* System::Net::HttpWebRequest::Accept -This program demonstrates 'Accept' property of the 'HttpWebRequest' class. -A new 'HttpWebRequest' Object* is created.The 'Accept' property of 'HttpWebRequest' -class is set to 'image/*' that in turn sets the 'Accept' field of HTTP Request Headers to -S"image/*". HTTP Request and Response headers are displayed to the console. -The contents of the page of the requested URI are displayed to the console. -'Accept' property is set with an aim to receive the response in a specific format. - -Note:This program requires http://localhost/CodeSnippetTest::html as Command line parameter. -If the requested page contains any content other than 'image/*' an error of 'status (406) Not Acceptable' -is returned.The functionality of 'Accept' property is supported only by servers that use HTTP 1.1 -protocol.Please refer to RFC 2616 for further information on HTTP Headers. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; - -void GetPage( String^ myUri ) -{ - try - { -// - // Create a 'HttpWebRequest' object. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( myUri ) ); - // Set the 'Accept' property to accept an image of any type. - myHttpWebRequest->Accept = "image/*"; - // The response object of 'HttpWebRequest' is assigned to a 'HttpWebResponse' variable. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); -// - Console::WriteLine( "\nHTTP Request Headers :\n\n {0}", myHttpWebRequest->Headers ); - Console::WriteLine( "\nHTTP Response Headers :\n\n {0}", myHttpWebResponse->Headers ); - Console::WriteLine( "Press 'Enter' Key to Continue......." ); - Console::Read(); - // Displaying the contents of the page to the console - Stream^ streamResponse = myHttpWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuffer = gcnew array(256); - int count = streamRead->Read( readBuffer, 0, 256 ); - Console::WriteLine( "\nThe contents of HTML page are......." ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuffer,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuffer, 0, 256 ); - } - Console::WriteLine( "\nPress 'Enter' Key to Continue......" ); - Console::Read(); - streamRead->Close(); - streamResponse->Close(); - myHttpWebResponse->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Message : {0} ", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - try - { - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the Uri address as a command line parameter" ); - Console::WriteLine( "Usage:HttpWebRequest_Accept http://www.microsoft.com/library/homepage/images/ms-banner.gif" ); - } - else - { - GetPage( args[ 1 ] ); - } - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_AllowAutoRedirect/CPP/httpwebrequest_allowautoredirect.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_AllowAutoRedirect/CPP/httpwebrequest_allowautoredirect.cpp deleted file mode 100644 index f2c721bf97992..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_AllowAutoRedirect/CPP/httpwebrequest_allowautoredirect.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* System::Net::HttpWebRequest::AllowAutoRedirect System::Net::HttpWebRequest->Address -This program demonstrates 'AllowAutoRedirect' and 'Address' properties of 'HttpWebRequest' Class. -A new 'HttpWebRequest' Object* is created. The 'AllowAutoredirect' property which redirects a page automatically -to the new Uri is set to true.Using the 'Address' property, the address of the 'Responding Uri' is printed to -console.The contents of the redirected page are displayed to the console. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// -// - // Create a new HttpWebRequest Object to the mentioned URL. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( "http://www.contoso.com" ) ); - myHttpWebRequest->MaximumAutomaticRedirections = 1; - myHttpWebRequest->AllowAutoRedirect = true; - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); -// - Stream^ streamResponse = myHttpWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "\nThe contents of Html Page are : " ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - streamResponse->Close(); - streamRead->Close(); - // Release the HttpWebResponse Resource. - myHttpWebResponse->Close(); - Console::WriteLine( "\nThe Requested Uri is {0}", myHttpWebRequest->RequestUri ); - Console::WriteLine( "\nThe Actual Uri responding to the request is \n {0}", myHttpWebRequest->Address ); -// - Console::WriteLine( "\nPress any Key to Continue.........." ); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "WebException raised!" ); - Console::WriteLine( "\nMessage: {0}", e->Message ); - Console::WriteLine( "\nStatus: {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised!" ); - Console::WriteLine( "\nSource : {0}", e->Source ); - Console::WriteLine( "\nMessage : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_AllowWriteStreamBuffering/CPP/httpwebrequest_allowwritestreambuffering.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_AllowWriteStreamBuffering/CPP/httpwebrequest_allowwritestreambuffering.cpp deleted file mode 100644 index da5e28f5284a1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_AllowWriteStreamBuffering/CPP/httpwebrequest_allowwritestreambuffering.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/*System::Net::HttpWebRequest::AllowWriteStreamBuffering -This program demonstrates 'AllowWriteStreamBuffering' property of 'HttpWebRequestClass'. -A new 'HttpWebRequest' Object* is created. -The 'AllowWriteStreamBuffering' property value is set to false. -If the 'AllowWriteStreamBuffering' is set to false, -then 'ContentLength' property should be set to the length of data to be posted before posting the data -else the Http Status(411) Length required is returned. -Data to be posted to the Uri is requested from the user. -The 'Method' property is set to POST to be able to post data to the Uri. -The 'GetRequestStream' method of the 'HttpWebRequest' class returns a stream Object*. -This stream Object* is used to write data to the Uri. -The HTML contents of the page are displayed to the console after the posted data is accepted by the URL - -Note:This program posts data to the Uri : http://www20.brinkster.com/codesnippets/next.asp. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// - // Create a new 'HttpWebRequest' object to the mentioned Uri. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( "http://www.contoso.com/codesnippets/next.asp" ) ); - // Set AllowWriteStreamBuffering to 'false'. - myHttpWebRequest->AllowWriteStreamBuffering = false; - Console::WriteLine( "\nPlease Enter the data to be posted to the (http://www.contoso.com/codesnippets/next.asp) uri:" ); - String^ inputData = Console::ReadLine(); - String^ postData = String::Concat( "firstone= ", inputData ); - // Set 'Method' property of 'HttpWebRequest' class to POST. - myHttpWebRequest->Method = "POST"; - ASCIIEncoding^ encodedData = gcnew ASCIIEncoding; - array^ byteArray = encodedData->GetBytes( postData ); - // Set 'ContentType' property of the 'HttpWebRequest' class to S"application/x-www-form-urlencoded". - myHttpWebRequest->ContentType = "application/x-www-form-urlencoded"; - // If the AllowWriteStreamBuffering property of HttpWebRequest is set to false, the contentlength has to be set to length of data to be posted else Exception(411) is raised. - myHttpWebRequest->ContentLength = byteArray->Length; - Stream^ newStream = myHttpWebRequest->GetRequestStream(); - newStream->Write( byteArray, 0, byteArray->Length ); - newStream->Close(); - Console::WriteLine( "\nData has been posted to the Uri\n\nPlease wait for the response.........." ); - // Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); -// - Stream^ streamResponse = myHttpWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "\nThe contents of the Html page are : " ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::WriteLine( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - streamResponse->Close(); - streamRead->Close(); - // Release the HttpWebResponse Resource. - myHttpWebResponse->Close(); - Console::WriteLine( "\nPress 'Enter' Key to Continue................." ); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Message : {0}", e->Message ); - Console::WriteLine( "\n(The 'ContentLength' property of 'HttpWebRequest' is not set after 'AllowWriteStreamBuffering' is set to 'false'.)" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_BeginGetRequestStream/CPP/httpwebrequest_begingetrequeststream.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_BeginGetRequestStream/CPP/httpwebrequest_begingetrequeststream.cpp deleted file mode 100644 index 36c811102e472..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_BeginGetRequestStream/CPP/httpwebrequest_begingetrequeststream.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/* System::Net::HttpWebRequest::BeginGetRequestStream, System::Net::HttpWebRequest::EndGetRequestStream - -This program demonstrates 'BeginGetRequestStream' and 'EndGetRequestStream' methods of 'HttpWebRequest' class. -A new 'HttpWebRequest' Object is created .The 'Method' property of the 'HttpWebRequest' Object* is set to -'POST'.The 'ContentType' property is set to S"application/x-www-form-urlencoded".Then 'BeginGetRequestStream' -method of 'HttpWebRequest' class starts the Asynchronous writing to the 'HttpWebRequest' Object*. The -'EndGetRequestStream' method of 'HttpWebRequest' class ends the Asynchronous writing of data and returns a -stream Object*.The 'Stream' Object* is used to write data to the 'HttpWebRequest' Object*. - -Note: This program POSTs data to the Uri: http://www20.Brinkster::com/codesnippets/next.asp -*/ -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; -using namespace System::Threading; -ref class HttpWebRequestBeginGetRequest -{ -public: - static ManualResetEvent^ allDone = gcnew ManualResetEvent( false ); - static void Main() - { - - // - // Create a new HttpWebRequest object. - HttpWebRequest^ request = dynamic_cast(WebRequest::Create( "http://www.contoso.com/example.aspx" )); - - // Set the ContentType property. - request->ContentType = "application/x-www-form-urlencoded"; - - // Set the Method property to 'POST' to post data to the Uri. - request->Method = "POST"; - - // Start the asynchronous operation. - AsyncCallback^ del = gcnew AsyncCallback(GetRequestStreamCallback); - request->BeginGetRequestStream( del, request ); - - // Keep the main thread from continuing while the asynchronous - // operation completes. A real world application - // could do something useful such as updating its user interface. - allDone->WaitOne(); - } - - -private: - static void GetRequestStreamCallback(IAsyncResult^ asynchronousResult) - { - HttpWebRequest^ request = dynamic_cast(asynchronousResult->AsyncState); - - // End the operation - Stream^ postStream = request->EndGetRequestStream(asynchronousResult); - - Console::WriteLine("Please enter the input data to be posted:"); - String^ postData = Console::ReadLine(); - - // Convert the string into a byte array. - array^ByteArray = Encoding::UTF8->GetBytes(postData); - - // Write to the request stream. - postStream->Write(ByteArray, 0, postData->Length); - postStream->Close(); - - // Start the asynchronous operation to get the response - AsyncCallback^ del = gcnew AsyncCallback(GetResponseCallback); - request->BeginGetResponse(del, request); - } - - static void GetResponseCallback(IAsyncResult^ asynchronousResult) - { - HttpWebRequest^ request = dynamic_cast(asynchronousResult->AsyncState); - - // End the operation - HttpWebResponse^ response = dynamic_cast(request->EndGetResponse(asynchronousResult)); - Stream^ streamResponse = response->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader(streamResponse); - String^ responseString = streamRead->ReadToEnd(); - Console::WriteLine(responseString); - // Close the stream object - streamResponse->Close(); - streamRead->Close(); - - // Release the HttpWebResponse - response->Close(); - allDone->Set(); - } - // -}; - -void main() -{ - HttpWebRequestBeginGetRequest::Main(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_BeginGetResponse/CPP/httpwebrequest_begingetresponse.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_BeginGetResponse/CPP/httpwebrequest_begingetresponse.cpp deleted file mode 100644 index fb120510b57de..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_BeginGetResponse/CPP/httpwebrequest_begingetresponse.cpp +++ /dev/null @@ -1,158 +0,0 @@ - - -// System::Net::HttpWebRequest::BeginGetResponse System::Net::HttpWebRequest::EndGetResponse -/** -* Snippet1, Snippet2, Snippet3 go together. -* This program shows how to use BeginGetResponse and EndGetResponse methods of the -* HttpWebRequest class. -* It uses an asynchronous approach to get the response for the HTTP Web Request. -* The RequestState class is defined to chekc the state of the request. -* After a HttpWebRequest Object* is created, its BeginGetResponse method is used to start -* the asynchronous response phase. -* Finally, the EndGetResponse method is used to end the asynchronous response phase . -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; -using namespace System::Threading; -public ref class RequestState -{ -private: - - // This class stores the State of the request. - const int BUFFER_SIZE; - -public: - StringBuilder^ requestData; - array^BufferRead; - HttpWebRequest^ request; - HttpWebResponse^ response; - Stream^ streamResponse; - RequestState() - : BUFFER_SIZE( 1024 ) - { - BufferRead = gcnew array(BUFFER_SIZE); - requestData = gcnew StringBuilder( "" ); - request = nullptr; - streamResponse = nullptr; - } - -}; - -ref class HttpWebRequest_BeginGetResponse -{ -public: - static ManualResetEvent^ allDone = gcnew ManualResetEvent( false ); - static int BUFFER_SIZE = 1024; - - // - // - static void RespCallback( IAsyncResult^ asynchronousResult ) - { - try - { - - // State of request is asynchronous. - RequestState^ myRequestState = dynamic_cast(asynchronousResult->AsyncState); - HttpWebRequest^ myHttpWebRequest2 = myRequestState->request; - myRequestState->response = dynamic_cast(myHttpWebRequest2->EndGetResponse( asynchronousResult )); - - // Read the response into a Stream object. - Stream^ responseStream = myRequestState->response->GetResponseStream(); - myRequestState->streamResponse = responseStream; - - // Begin the Reading of the contents of the HTML page and print it to the console. - IAsyncResult^ asynchronousInputRead = responseStream->BeginRead( myRequestState->BufferRead, 0, BUFFER_SIZE, gcnew AsyncCallback( ReadCallBack ), myRequestState ); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nException raised!" ); - Console::WriteLine( "\nMessage: {0}", e->Message ); - Console::WriteLine( "\nStatus: {0}", e->Status ); - } - - } - - static void ReadCallBack( IAsyncResult^ asyncResult ) - { - try - { - RequestState^ myRequestState = dynamic_cast(asyncResult->AsyncState); - Stream^ responseStream = myRequestState->streamResponse; - int read = responseStream->EndRead( asyncResult ); - - // Read the HTML page and then print it to the console. - if ( read > 0 ) - { - myRequestState->requestData->Append( Encoding::ASCII->GetString( myRequestState->BufferRead, 0, read ) ); - IAsyncResult^ asynchronousResult = responseStream->BeginRead( myRequestState->BufferRead, 0, BUFFER_SIZE, gcnew AsyncCallback( ReadCallBack ), myRequestState ); - } - else - { - Console::WriteLine( "\nThe contents of the Html page are : " ); - if ( myRequestState->requestData->Length > 1 ) - { - String^ stringContent; - stringContent = myRequestState->requestData->ToString(); - Console::WriteLine( stringContent ); - } - Console::WriteLine( "Press any key to continue.........." ); - Console::ReadLine(); - responseStream->Close(); - allDone->Set(); - } - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nException raised!" ); - Console::WriteLine( "\nMessage: {0}", e->Message ); - Console::WriteLine( "\nStatus: {0}", e->Status ); - } - - } - -}; - -int main() -{ - try - { - - // Create a HttpWebrequest object to the desired URL. - HttpWebRequest^ myHttpWebRequest1 = dynamic_cast(WebRequest::Create( "http://www.contoso.com" )); - - // Create an instance of the RequestState and assign the previous myHttpWebRequest1 - // object to its request field. - RequestState^ myRequestState = gcnew RequestState; - myRequestState->request = myHttpWebRequest1; - - // Start the asynchronous request. - IAsyncResult^ result = dynamic_cast(myHttpWebRequest1->BeginGetResponse( gcnew AsyncCallback( HttpWebRequest_BeginGetResponse::RespCallback ), myRequestState )); - HttpWebRequest_BeginGetResponse::allDone->WaitOne(); - - // Release the HttpWebResponse resource. - myRequestState->response->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nException raised!" ); - Console::WriteLine( "\nMessage: {0}", e->Message ); - Console::WriteLine( "\nStatus: {0}", e->Status ); - Console::WriteLine( "Press any key to continue.........." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException raised!" ); - Console::WriteLine( "Source : {0} ", e->Source ); - Console::WriteLine( "Message : {0} ", e->Message ); - Console::WriteLine( "Press any key to continue.........." ); - Console::Read(); - } - -} - -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Connection/CPP/httpwebrequest_connection.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Connection/CPP/httpwebrequest_connection.cpp deleted file mode 100644 index 9db4b0b725965..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Connection/CPP/httpwebrequest_connection.cpp +++ /dev/null @@ -1,94 +0,0 @@ - - -// System::Net::HttpWebRequest::KeepAlive System::Net::HttpWebRequest::Connection -/** -* This program demonstrates Connection and KeepAlive properties of the -* HttpWebRequest Class. -* Two new HttpWebRequest objects are created . The KeepAlive property of one of -* the objects is set to false that in turn sets the value of Connection field of -* the HTTP request Headers to Close. -* The Connection property of the other HttpWebRequest Object* is assigned the -* value Close. This throws an ArgumentException which is caught.The HTTP request -* Headers are displayed to the console. -* The contents of the HTML page of the requested URI are displayed. -**/ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -// -int main() -{ - try - { - - // Create a new HttpWebRequest object. Make sure that - // a default proxy is set if you are behind a firewall. - HttpWebRequest^ myHttpWebRequest1 = dynamic_cast(WebRequest::Create( "http://www.contoso.com" )); - myHttpWebRequest1->KeepAlive = false; - - // Assign the response object of HttpWebRequest to a HttpWebResponse variable. - HttpWebResponse^ myHttpWebResponse1 = dynamic_cast(myHttpWebRequest1->GetResponse()); - Console::WriteLine( "\nThe HTTP request Headers for the first request are: \n {0}", myHttpWebRequest1->Headers ); - Console::WriteLine( "Press Enter Key to Continue.........." ); - Console::Read(); - Stream^ streamResponse = myHttpWebResponse1->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "The contents of the Html page are.......\n" ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - Console::WriteLine(); - - // Close the Stream object. - streamResponse->Close(); - streamRead->Close(); - - // Release the resources held by response object. - myHttpWebResponse1->Close(); - - // - // Create a new HttpWebRequest object for the specified Uri. - HttpWebRequest^ myHttpWebRequest2 = dynamic_cast(WebRequest::Create( "http://www.contoso.com" )); - myHttpWebRequest2->Connection = "Close"; - - // Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable. - HttpWebResponse^ myHttpWebResponse2 = dynamic_cast(myHttpWebRequest2->GetResponse()); - - // Release the resources held by response object. - myHttpWebResponse2->Close(); - Console::WriteLine( "\nThe Http RequestHeaders are \n {0}", myHttpWebRequest2->Headers ); - - // - Console::WriteLine( "\nPress 'Enter' Key to Continue........." ); - Console::Read(); - } - catch ( ArgumentException^ e ) - { - Console::WriteLine( "\nThe second HttpWebRequest Object* has raised an Argument Exception as 'Connection' Property is set to 'Close'" ); - Console::WriteLine( "\n {0}", e->Message ); - } - catch ( WebException^ e ) - { - Console::WriteLine( "WebException raised!" ); - Console::WriteLine( "\n {0}", e->Message ); - Console::WriteLine( "\n {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised!" ); - Console::WriteLine( "Source : {0} ", e->Source ); - Console::WriteLine( "Message : {0} ", e->Message ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_ContentLength/CPP/httpwebrequest_contentlength.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_ContentLength/CPP/httpwebrequest_contentlength.cpp deleted file mode 100644 index 6aeaaef1467a3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_ContentLength/CPP/httpwebrequest_contentlength.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/* -System::Net::HttpWebRequest::Method, System::Net::HttpWebRequest::ContentLength, System::Net::HttpWebRequest::ContentType -System::Net::HttpWebRequest::GetRequestStream -This program demonstrates 'Method', 'ContentLength' and 'ContentType' properties and 'GetRequestStream' -method of HttpWebRequest Class. -It creates a 'HttpWebRequest' Object*.The 'Method' property of 'HttpWebRequestClass' is set to 'POST'. -The 'ContentType' property is set to 'application/x-www-form-urlencoded'.The 'ContentLength' property -is set to the length of the Byte stream to be posted.A new 'Stream' Object* is obtained from the -'GetRequestStream' method of the 'HttpWebRequest' class. Data to be posted is requested from the user. -Data is posted using the stream Object*.The HTML contents of the page are then displayed to the console -after the Posted data is accepted by the URL. -Note: This program POSTs data to the Uri: http://www20.Brinkster::com/codesnippets/next.asp -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { - // Create a new WebRequest Object to the mentione Uri. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( "http://www.contoso.com/codesnippets/next.asp" ) ); - - Console::WriteLine( "\nThe value of 'ContentLength' property before sending the data is {0}", myHttpWebRequest->ContentLength ); - -// -// - // Set the 'Method' property of the 'Webrequest' to 'POST'. - myHttpWebRequest->Method = "POST"; - Console::WriteLine( "\nPlease enter the data to be posted to the (http://www.contoso.com/codesnippets/next.asp) Uri :" ); - - // Create a new String* Object* to POST data to the Url. - String^ inputData = Console::ReadLine(); - -// -// - String^ postData = String::Concat( "firstone= ", inputData ); - ASCIIEncoding^ encoding = gcnew ASCIIEncoding; - array^ byte1 = encoding->GetBytes( postData ); - - // Set the content type of the data being posted. - myHttpWebRequest->ContentType = "application/x-www-form-urlencoded"; - - // Set the content length of the String* being posted. - myHttpWebRequest->ContentLength = byte1->Length; - - Stream^ newStream = myHttpWebRequest->GetRequestStream(); - - newStream->Write( byte1, 0, byte1->Length ); - Console::WriteLine( "The value of 'ContentLength' property after sending the data is {0}", myHttpWebRequest->ContentLength ); - - // Close the Stream Object*. - newStream->Close(); -// -// -// -// - Console::WriteLine( "\nThe String* entered is successfully posted to the Uri " ); - Console::WriteLine( "Please wait for the response......." ); - - // Assign the response Object* of 'HttpWebRequest' to a 'HttpWebResponse' variable. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - Stream^ streamResponse = myHttpWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - - Console::WriteLine( "\nThe contents of the HTML page are : " ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::WriteLine( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - - // Close the Stream object. - streamResponse->Close(); - streamRead->Close(); - - // Release the resources held by response Object*. - myHttpWebResponse->Close(); - Console::WriteLine( "\nPress 'Enter' Key to Continue............." ); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "WebException raised!" ); - Console::WriteLine( "\n {0}", e->Message ); - Console::WriteLine( "\n {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Headers/CPP/httpwebrequest_headers.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Headers/CPP/httpwebrequest_headers.cpp deleted file mode 100644 index dbc0defcc7fbf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Headers/CPP/httpwebrequest_headers.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/*System::Net::HttpWebRequest::Headers -This program demonstrates the 'Headers' property of 'HttpWebRequest' Class. -A new 'HttpWebRequest' Object* is created. -The (name, value) collection of the Http Headers are displayed to the console. -The contents of the HTML page of the requested URI are displayed to the console. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// - // Create a new 'HttpWebRequest' Object to the mentioned URL. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( "http://www.contoso.com" ) ); - // Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - Console::WriteLine( "\nThe HttpHeaders are \n\n\tName\t\tValue\n {0}", myHttpWebRequest->Headers ); - // Print the HTML contents of the page to the console. - Stream^ streamResponse = myHttpWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "\nThe HTML contents of page the are : \n\n " ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - streamResponse->Close(); - streamRead->Close(); - // Release the HttpWebResponse Resource. - myHttpWebResponse->Close(); -// - Console::WriteLine( "\nPress 'Enter' Key to Continue........." ); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Message : {0}", e->Message ); - Console::WriteLine( "Status : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_IfModifiedSince/CPP/httpwebrequest_ifmodifiedsince.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_IfModifiedSince/CPP/httpwebrequest_ifmodifiedsince.cpp deleted file mode 100644 index 2ffbd73948e29..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_IfModifiedSince/CPP/httpwebrequest_ifmodifiedsince.cpp +++ /dev/null @@ -1,90 +0,0 @@ - - -/* -System::Net::HttpWebRequest::IfModifiedSince -This program demonstrates the 'IfModifiedSince' property of the 'HttpWebRequest' class . -A new 'HttpWebrequest' Object* is created. -A new 'DateTime' Object* is created with the value intialized to the present DateTime. -The 'IfModifiedSince' property of 'HttpWebRequest' Object* is compared with the 'DateTime' Object*. -If the requested page has been modified since the time of the DateTime Object* -then the output displays the page has been modified -else the response headers and the contents of the page of the requested Uri are printed to the Console. -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; -int main() -{ - try - { - - // - // Create a new 'Uri' object with the mentioned string. - Uri^ myUri = gcnew Uri( "http://www.contoso.com" ); - - // Create a new 'HttpWebRequest' object with the above 'Uri' object. - HttpWebRequest^ myHttpWebRequest = dynamic_cast(WebRequest::Create( myUri )); - - // Create a new 'DateTime' object. - DateTime targetDate = DateTime::Now; - // Set a target date of a week ago - targetDate.AddDays(-7.0); - myHttpWebRequest->IfModifiedSince = targetDate; - - try - { - - // Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable. - HttpWebResponse^ myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - Console::WriteLine( "Response headers \n {0}\n", myHttpWebResponse->Headers ); - Stream^ streamResponse = myHttpWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "\nThe contents of Html Page are : \n" ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - streamResponse->Close(); - streamRead->Close(); - - // Release the HttpWebResponse Resource. - myHttpWebResponse->Close(); - Console::WriteLine( "\nPress 'Enter' key to continue................." ); - Console::Read(); - } - catch ( WebException^ e ) - { - if (e->Response) - { - if ( ((HttpWebResponse ^)e->Response)->StatusCode == HttpStatusCode::NotModified) - Console::WriteLine("\nThe page has not been modified since {0}", targetDate); - else - Console::WriteLine("\nUnexpected status code = {0}", ((HttpWebResponse ^)e->Response)->StatusCode); - } - else - Console::WriteLine("\nUnexpected Web Exception {0}" + e->Message); - } -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException raised!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_PipeLined/CPP/httpwebrequest_pipelined.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_PipeLined/CPP/httpwebrequest_pipelined.cpp deleted file mode 100644 index 86bf537bd95f5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_PipeLined/CPP/httpwebrequest_pipelined.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/*Sytem::Net.HttpWebRequest::PipeLined -This program demonstrates 'Pipelined' property of the 'HttpWebRequest' class. -A new 'HttpWebRequest' Object* is created.The 'Pipelined' property is displayed to the console. -HTTP Request and Response Headers are displayed to the console.The contents of the page of the -requested URI are displayed to the console. - -Note:The 'Pipelined' property is supported only by servers that allow Pipelining of requests. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -void GetPage( String^ myUri ) -{ - try - { -// - // Create a 'HttpWebRequest' object. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( myUri ) ); - // Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - // Display the contents of the page to the console. - Stream^ streamResponse = myHttpWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuffer = gcnew array(256); - int count = streamRead->Read( readBuffer, 0, 256 ); - Console::WriteLine( "\nThe contents of HTML page are......." ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuffer,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuffer, 0, 256 ); - } - Console::WriteLine( "\nHTTP Request Headers :\n\n {0}", myHttpWebRequest->Headers ); - Console::WriteLine( "\nHTTP Response Headers :\n\n {0}", myHttpWebResponse->Headers ); - streamRead->Close(); - streamResponse->Close(); - // Release the response object resources. - myHttpWebResponse->Close(); - Console::WriteLine( "\n'Pipelined' property is: {0}", myHttpWebRequest->Pipelined ); - Console::WriteLine( "\nPress 'Enter' Key to Continue......" ); - Console::Read(); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Message : {0} ", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - try - { - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the Uri address as a command line parameter:" ); - Console::WriteLine( "->Item[ Usage:HttpWebRequest_Pipelined http://www.microsoft.com ]" ); - } - else - { - GetPage( args[ 1 ] ); - } - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_ProtocolVersion/CPP/httpwebrequest_protocolversion.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_ProtocolVersion/CPP/httpwebrequest_protocolversion.cpp deleted file mode 100644 index 94eeccc8582d1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_ProtocolVersion/CPP/httpwebrequest_protocolversion.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* System::Net::HttpWebRequest::ProtocolVersion -This Program demonstrates the 'ProtocolVersion' property of the 'HttpWebRequest' Class. -The 'ProtocolVersion' is a property that identifies the Version of the Protocol being used. -A new 'HttpWebRequest' Object* is created.Then the default version, being used is displayed onto -the console.It is then set to another version and displayed to the Console::The HTML contents -of the page of the requested Uri are printed to the console. -Note:Here the 'ProtocolVersion' property displays the ProtocolVersion being used. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// - // Create a new 'HttpWebRequest' Object to the mentioned URL. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( "http://www.microsoft.com" ) ); - // Use the existing 'ProtocolVersion' , and display it onto the console. - Console::WriteLine( "\nThe 'ProtocolVersion' of the protocol used is {0}", myHttpWebRequest->ProtocolVersion ); - // Set the 'ProtocolVersion' property of the 'HttpWebRequest' to 'Version1::0' . - myHttpWebRequest->ProtocolVersion = HttpVersion::Version10; - // Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - Console::WriteLine( "\nThe 'ProtocolVersion' of the protocol changed to {0}", myHttpWebRequest->ProtocolVersion ); - Console::WriteLine( "\nThe protocol version of the response Object* is {0}", myHttpWebResponse->ProtocolVersion ); -// - Console::WriteLine( "\nPress any Key to Continue.............." ); - Console::Read(); - Console::Read(); - Stream^ streamResponse = myHttpWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "\nThe contents of the HTML Page are :" ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - streamResponse->Close(); - streamRead->Close(); - // Release the HttpWebResponse Resource. - myHttpWebResponse->Close(); - Console::WriteLine( "\nPress any Key to Continue.............." ); - Console::Read(); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException raised!" ); - Console::WriteLine( "\nMessage: {0} ", e->Message ); - Console::WriteLine( "\nStatus: {0} ", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException raised!" ); - Console::WriteLine( "\nSource : {0}", e->Source ); - Console::WriteLine( "\nMessage : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Referer/CPP/httpwebrequest_referer.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Referer/CPP/httpwebrequest_referer.cpp deleted file mode 100644 index c3349680bc95c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Referer/CPP/httpwebrequest_referer.cpp +++ /dev/null @@ -1,89 +0,0 @@ -/*System::Net::HttpWebRequest::Referer -This program demonstrates 'Referer' property of the 'HttpWebRequest' class. -A new 'HttpWebRequest' Object* is created.The 'Referer' property is displayed to the console. -HTTP Request and Response Headers are displayed to the console.The contents of the page of the -requested URI are displayed to the console. - -Note:The 'Referer' property is used by the server to store the address of the Uri that has referred -the request to that server.Please refer to RFC 2616 for more information on HTTP Headers. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -void GetPage( String^ myUri ) -{ - try - { -// - // Create a 'HttpWebRequest' object. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( myUri ) ); - // Set referer property to http://www.microsoft.com . - myHttpWebRequest->Referer = "http://www.microsoft.com"; - // Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - // Display the contents of the page to the console. - Stream^ streamResponse = myHttpWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuffer = gcnew array(256); - int count = streamRead->Read( readBuffer, 0, 256 ); - Console::WriteLine( "\nThe contents of HTML page are......." ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuffer,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuffer, 0, 256 ); - } - Console::WriteLine( "\nHTTP Request Headers :\n\n {0}", myHttpWebRequest->Headers ); - Console::WriteLine( "\nHTTP Response Headers :\n\n {0}", myHttpWebResponse->Headers ); - streamRead->Close(); - streamResponse->Close(); - // Release the response object resources. - myHttpWebResponse->Close(); - Console::WriteLine( "Referer to the site is: {0}", myHttpWebRequest->Referer ); -// - Console::WriteLine( "\nPress 'Enter' Key to Continue......" ); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Message : {0} ", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - try - { - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the Uri address as a command line parameter" ); - Console::WriteLine( "->Item[ Usage:HttpWebRequest_Referer http://www.microsoft.com ]" ); - } - else - { - GetPage( args[ 1 ] ); - } - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_SendChunked/CPP/httpwebrequest_sendchunked.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_SendChunked/CPP/httpwebrequest_sendchunked.cpp deleted file mode 100644 index 9b34c1dbaf531..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_SendChunked/CPP/httpwebrequest_sendchunked.cpp +++ /dev/null @@ -1,112 +0,0 @@ -/* -System::Net::HttpWebRequest::SendChunked -System::Net::HttpWebRequest::TransferEncoding -This program demonstrates 'TransferEncoding' and 'SendChunked' properties of 'HttpWebRequestClass'. -A new 'HttpWebRequest' Object* is created.The 'SendChunked' property value is set to 'true' and -'TransferEncoding' property is set to S"gzip".If 'TransferEncoding' property is set with 'SendChunked' -property set to 'false' then 'InvalidOperationException' is raised. Data to be posted to the Uri is -requested from the user.The HTML contents of the page are displayed to the console after the posted -data is accepted by the URL - -Note:This program requires http://localhost/CodeSnippetTest::asp as Command line parameter. -If the 'TransferEncoding' of type 'gzip' is not implemented by the server an error of status -'(501) Not implemented' is returned. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -void GetPage( String^ myUri ) -{ - try - { -// -// - // A new 'HttpWebRequest' object is created. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( myUri ) ); - myHttpWebRequest->SendChunked = true; - // 'TransferEncoding' property is set to 'gzip'. - myHttpWebRequest->TransferEncoding = "gzip"; - Console::WriteLine( "\nPlease Enter the data to be posted to the (http:///CodeSnippetTest::asp) uri:" ); - String^ inputData = Console::ReadLine(); - String^ postData = String::Concat( "testdata= ", inputData ); - // 'Method' property of 'HttpWebRequest' class is set to POST. - myHttpWebRequest->Method = "POST"; - ASCIIEncoding^ encodedData = gcnew ASCIIEncoding; - array^ byteArray = encodedData->GetBytes( postData ); - // 'ContentType' property of the 'HttpWebRequest' class is set to S"application/x-www-form-urlencoded". - myHttpWebRequest->ContentType = "application/x-www-form-urlencoded"; - // 'ContentLength' property is set to Length of the data to be posted. - myHttpWebRequest->ContentLength = byteArray->Length; - Stream^ newStream = myHttpWebRequest->GetRequestStream(); - newStream->Write( byteArray, 0, byteArray->Length ); - newStream->Close(); - Console::WriteLine( "\nData has been posted to the Uri\n\nPlease wait for the response.........." ); - // The response object of 'HttpWebRequest' is assigned to a 'HttpWebResponse' variable. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - // Displaying the contents of the page to the console - Stream^ streamResponse = myHttpWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "\nThe contents of the HTML page are : " ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::WriteLine( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - streamRead->Close(); - streamResponse->Close(); - myHttpWebResponse->Close(); -// -// - Console::WriteLine( "\nPress 'Enter' Key to Continue................." ); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - try - { - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the Uri address as a command line parameter:" ); - Console::WriteLine( "[ Usage:HttpWebRequest_Sendchunked http:///CodeSnippetTest.asp ]" ); - } - else - { - GetPage( args[ 1 ] ); - } - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Timeout/CPP/httpwebrequest_timeout.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Timeout/CPP/httpwebrequest_timeout.cpp deleted file mode 100644 index b7c3ae94b7142..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_Timeout/CPP/httpwebrequest_timeout.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/*System::Net::HttpWebRequest::Time->Item[Out] This* program demonstrates 'Timeout' property of the HttpWebRequest Class. -A new HttpWebRequest Object is created .The default value of the 'Timeout' property is printed to the console. -It is then set to some value and displayed to the console. If the 'Timeout' property is set to a value less -than the time required to get the response an 'Exception' is raised. 'Timeout' property measures the time in -Milliseconds. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// - // Create a new 'HttpWebRequest' Object to the mentioned URL. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( "http://www.contoso.com" ) ); - Console::WriteLine( "\nThe timeout time of the request before setting the property is {0} milliseconds.", myHttpWebRequest->Timeout ); - // Set the 'Timeout' property of the HttpWebRequest to 10 milliseconds. - myHttpWebRequest->Timeout = 10; - // Display the 'Timeout' property of the 'HttpWebRequest' on the console. - Console::WriteLine( "\nThe timeout time of the request after setting the timeout is {0} milliseconds.", myHttpWebRequest->Timeout ); - // A HttpWebResponse object is created and is GetResponse Property of the HttpWebRequest associated with it - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); -// - Stream^ streamResponse = myHttpWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "\nThe contents of the HTML page are, " ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - streamResponse->Close(); - streamRead->Close(); - // Release the HttpWebResponse Resource. - myHttpWebResponse->Close(); - Console::WriteLine( "\nPress any Key to Continue............." ); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException raised!" ); - Console::WriteLine( "\nMessage: {0} ", e->Message ); - Console::WriteLine( "\nStatus: {0} ", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised!" ); - Console::WriteLine( "\nSource : {0}", e->Source ); - Console::WriteLine( "\nMessage : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_UserAgent/CPP/httpwebrequest_useragent.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_UserAgent/CPP/httpwebrequest_useragent.cpp deleted file mode 100644 index 802ed95274d7d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebRequest_UserAgent/CPP/httpwebrequest_useragent.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/*System::Net::HttpWebRequest::UserAgent -This program demonstrates 'UserAgent' property of 'HttpWebRequest' Class. -A new 'HttpWebRequest' Object* is created.The 'UserAgent' property is set to -"Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0; COM+ 1.0.2702)". -This inturn sets the 'User-Agent' field of HTTP Request headers. -The response is obtained and displayed to the console. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; - -int main() -{ - try - { -// - // Create a new 'HttpWebRequest' object to the mentioned URL. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( "http://www.contoso.com" ) ); - myHttpWebRequest->UserAgent = ".NET Framework Test Client"; - // Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - // Display the contents of the page to the console. - Stream^ streamResponse = myHttpWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "\nThe contents of HTML Page are :\n" ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - streamRead->Close(); - streamResponse->Close(); - myHttpWebResponse->Close(); -// - Console::WriteLine( "\nHTTP Request Headers :\n {0}", myHttpWebRequest->Headers ); - Console::WriteLine( "\nUserAgent is: {0}", myHttpWebRequest->UserAgent ); - Console::WriteLine( "\nPress 'Enter' Key to Continue..........." ); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Message : {0} ", e->Message ); - Console::WriteLine( "Status : {0} ", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_Close/CPP/httpwebresponse_close.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_Close/CPP/httpwebresponse_close.cpp deleted file mode 100644 index 4a3da3be11dfa..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_Close/CPP/httpwebresponse_close.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// System::Net::HttpWebResponse::Close -/* This program demonstrates the 'Close' method of the 'HttpWebResponse' class. -It creates a web request and queries for a response.The response Object* can be processed as desired. -The program then closes the response Object* and releases resources associated with it. -*/ - -#using - -using namespace System; -using namespace System::Net; - -void GetPage( String^ url ) -{ - try - { -// - // Creates an HttpWebRequest for the specified URL. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( url ) ); - // Sends the HttpWebRequest and waits for a response. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - Console::WriteLine( "\nResponse Received::Trying to Close the response stream.." ); - // Releases the resources of the response. - myHttpWebResponse->Close(); - Console::WriteLine( "\nResponse Stream successfully closed" ); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Raised. The following error occurred : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised : {0}", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the url as command line parameter:" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "HttpWebResponse_Close http://dotnet.microsoft.com/" ); - } - else - { - GetPage( args[ 1 ] ); - } - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_ContentEncoding_CharacterSet/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_ContentEncoding_CharacterSet/CPP/source.cpp deleted file mode 100644 index 38763c56e4167..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_ContentEncoding_CharacterSet/CPP/source.cpp +++ /dev/null @@ -1,82 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; - -void GetPage( String^ url ) -{ -// - try - { - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( url ) ); - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - - Console::WriteLine( "The encoding method used is: {0}", myHttpWebResponse->ContentEncoding ); - Console::WriteLine( "The character set used is : {0}", myHttpWebResponse->CharacterSet ); - - char separator = '/'; - String^ contenttype = myHttpWebResponse->ContentType; - // Retrieve 'text' if the content type is of 'text/html. - String^ maintype = contenttype->Substring( 0, contenttype->IndexOf( separator ) ); - // Display only 'text' type. - if ( String::Compare( maintype, "text" ) == 0 ) - { - Console::WriteLine( "\n Content type is 'text'." ); -// - -// - Stream^ receiveStream = myHttpWebResponse->GetResponseStream(); - Encoding^ encode = System::Text::Encoding::GetEncoding( "utf-8" ); - StreamReader^ readStream = gcnew StreamReader( receiveStream,encode ); - - Console::WriteLine( "\r\nResponse stream received." ); - array^ read = gcnew array(256); - - int count = readStream->Read( read, 0, 256 ); - Console::WriteLine( "\nText retrieved from the URL follows:\r\n" ); - - int index = 0; - while ( index < myHttpWebResponse->ContentLength ) - { - // Dump the 256 characters on a string and display the string onto the console. - String^ str = gcnew String( read,0,count ); - Console::WriteLine( str ); - index += count; - count = readStream->Read( read, 0, 256 ); - } - receiveStream->Close(); - Console::WriteLine( "" ); - } - // Release the resources of response object. - myHttpWebResponse->Close(); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nWebException Raised. The following error occurred : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised : {0}", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the url as command line parameter:" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "HttpWebResponse_ContentLength_ContentType http://dotnet.microsoft.com/" ); - } - else - { - GetPage( args[ 1 ] ); - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_GetResponseHeader/CPP/httpwebresponse_getresponseheader.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_GetResponseHeader/CPP/httpwebresponse_getresponseheader.cpp deleted file mode 100644 index da0eb5ef001c4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_GetResponseHeader/CPP/httpwebresponse_getresponseheader.cpp +++ /dev/null @@ -1,70 +0,0 @@ -// System::Net::HttpWebResponse::GetResponseHeader -/* This program demonstrates the 'GetResponseHeader' method of the 'HttpWebResponse' class -It creates a web request and queries for a response.If the site requires authentication it -will respond with a challenge String* which is extracted using 'GetResponse()' method. -*/ - -#using - -using namespace System; -using namespace System::Net; - -// -void GetPage( String^ url ) -{ - try - { - Uri^ ourUri = gcnew Uri( url ); - // Creates an HttpWebRequest for the specified URL. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( ourUri ) ); - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - Console::WriteLine( "\nThe server did not issue any challenge. Please try again with a protected resource URL." ); - // Releases the resources of the response. - myHttpWebResponse->Close(); - } - catch ( WebException^ e ) - { - HttpWebResponse^ response = (HttpWebResponse^)( e->Response ); - if ( response != nullptr ) - { - if ( response->StatusCode == HttpStatusCode::Unauthorized ) - { - String^ challenge = nullptr; - challenge = response->GetResponseHeader( "WWW-Authenticate" ); - if ( challenge != nullptr ) - Console::WriteLine( "\nThe following challenge was raised by the server: {0}", challenge ); - } - else - { - Console::WriteLine( "\nThe following WebException was raised : {0}", e->Message ); - } - } - else - { - Console::WriteLine( "\nResponse Received from server was 0" ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised : {0}", e->Message ); - } -} -// - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter a protected resource url as command line parameter:" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "HttpWebResponse_GetResponseHeader http://dotnet.microsoft.com/" ); - } - else - { - GetPage( args[ 1 ] ); - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_GetResponseStream/CPP/httpwebresponse_getresponsestream.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_GetResponseStream/CPP/httpwebresponse_getresponsestream.cpp deleted file mode 100644 index c489c6d0ddcc0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_GetResponseStream/CPP/httpwebresponse_getresponsestream.cpp +++ /dev/null @@ -1,73 +0,0 @@ -// System::Net::HttpWebResponse::GetResponseStream -/* This program demonstrates the 'GetResponseStream' method of the 'HttpWebResponse' class. -It creates a web request and queries for a response.It then gets the response stream . -This response stream is piped to a higher level stream reader. The reader reads 256 characters at a time , -writes them into a String* and then displays the String* in the console*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; - -void GetPage( String^ url ) -{ - try - { -// - // Creates an HttpWebRequest with the specified URL. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( url ) ); - // Sends the HttpWebRequest and waits for the response. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - // Gets the stream associated with the response. - Stream^ receiveStream = myHttpWebResponse->GetResponseStream(); - Encoding^ encode = System::Text::Encoding::GetEncoding( "utf-8" ); - // Pipes the stream to a higher level stream reader with the required encoding format. - StreamReader^ readStream = gcnew StreamReader( receiveStream,encode ); - Console::WriteLine( "\r\nResponse stream received." ); - array^ read = gcnew array(256); - // Reads 256 characters at a time. - int count = readStream->Read( read, 0, 256 ); - Console::WriteLine( "HTML...\r\n" ); - while ( count > 0 ) - { - // Dumps the 256 characters on a String* and displays the String* to the console. - String^ str = gcnew String( read,0,count ); - Console::Write( str ); - count = readStream->Read( read, 0, 256 ); - } - Console::WriteLine( "" ); - // Releases the resources of the response. - myHttpWebResponse->Close(); - // Releases the resources of the Stream. - readStream->Close(); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nWebException Raised. The following error occurred : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised : {0}", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the url as command line parameter:" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "HttpWebResponse_GetResponseStream http://dotnet.microsoft.com/" ); - } - else - { - GetPage( args[ 1 ] ); - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_Headers/CPP/httpwebresponse_headers.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_Headers/CPP/httpwebresponse_headers.cpp deleted file mode 100644 index 7432bdb865bb0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_Headers/CPP/httpwebresponse_headers.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// System::Net::HttpWebResponse::Headers - -/* This program demonstrates the 'Headers' property of the 'HttpWebResponse' class -It creates a web request and queries for a response.It then displays all the response headers -onto the console. */ -#using - -using namespace System; -using namespace System::Net; - -void GetPage( String^ url ) -{ - try - { - // - // Creates an HttpWebRequest for the specified URL. - HttpWebRequest^ myHttpWebRequest = dynamic_cast(WebRequest::Create( url )); - - // Sends the HttpWebRequest and waits for response. - HttpWebResponse^ myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - - // Displays all the headers present in the response received from the URI. - Console::WriteLine( "\r\nThe following headers were received in the response:" ); - - // Displays each header and its key associated with the response. - for ( int i = 0; i < myHttpWebResponse->Headers->Count; ++i ) - Console::WriteLine( "\nHeader Name: {0}, Value : {1}", - myHttpWebResponse->Headers->Keys[ i ], - myHttpWebResponse->Headers[ (System::Net::HttpRequestHeader)i ] ); - - // Releases the resources of the response. - myHttpWebResponse->Close(); - // - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nWebException Raised. The following error occurred : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised : {0}", e->Message ); - } -} - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the url as command line parameter:" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "HttpWebResponse_Headers http://dotnet.microsoft.com/" ); - } - else - { - GetPage( args[ 1 ] ); - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_LastModified/CPP/httpwebresponse_lastmodified.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_LastModified/CPP/httpwebresponse_lastmodified.cpp deleted file mode 100644 index 333f61bc9f20a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_LastModified/CPP/httpwebresponse_lastmodified.cpp +++ /dev/null @@ -1,67 +0,0 @@ -// System::Net::HttpWebResponse::LastModified -/* This program demonstrates the 'LastModified' property of the 'HttpWebResponse' class -It creates a web request and queries for a response.The program checks -if the entity requested was modified any time today. -*/ - -#using - -using namespace System; -using namespace System::Net; - -void GetPage( String^ url ) -{ - try - { -// - Uri^ myUri = gcnew Uri( url ); - // Creates an HttpWebRequest for the specified URL. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( myUri ) ); - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - if ( myHttpWebResponse->StatusCode == HttpStatusCode::OK ) - { - Console::WriteLine( "\r\nRequest succeeded and the requested information is in the response , Description : {0}", - myHttpWebResponse->StatusDescription ); - } - DateTime today = DateTime::Now; - // Uses the LastModified property to compare with today's date. - if ( DateTime::Compare( today, myHttpWebResponse->LastModified ) == 0 ) - { - Console::WriteLine( "\nThe requested URI entity was modified today" ); - } - else if ( DateTime::Compare( today, myHttpWebResponse->LastModified ) == 1 ) - { - Console::WriteLine( "\nThe requested URI was last modified on: {0}", - myHttpWebResponse->LastModified ); - } - // Releases the resources of the response. - myHttpWebResponse->Close(); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nWebException Raised. The following error occurred : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised : {0}", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease type the url as command line parameter:" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "HttpWebResponse_LastModified http://dotnet.microsoft.com/" ); - } - else - { - GetPage( args[ 1 ] ); - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_Method_Server/CPP/httpwebresponse_method_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_Method_Server/CPP/httpwebresponse_method_server.cpp deleted file mode 100644 index 17ef6d6a0ce97..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_Method_Server/CPP/httpwebresponse_method_server.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// System::Net::HttpWebResponse::Method;System::Net::HttpWebResponse::Server -/* This program demonstrates the 'Method' and 'Server' properties of the 'HttpWebResponse' class. -It creates a Web request and queries for a response.It evaluates the response method used and the prints -the Web server name to the console*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; - -void GetPage( String^ url ) -{ -// -// - try - { - // Creates an HttpWebRequest for the specified URL. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( url ) ); - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - String^ method; - method = myHttpWebResponse->Method; - if ( String::Compare( method, "GET" ) == 0 ) - { - Console::WriteLine( "\nThe 'GET' method was successfully invoked on the following Web Server : {0}", - myHttpWebResponse->Server ); - } - // Releases the resources of the response. - myHttpWebResponse->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException raised. The following error occurred : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised : {0}", e->Message ); - } -// -// -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the url as command line parameter:" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "HttpWebResponse_Method_Server http://dotnet.microsoft.com/" ); - } - else - { - GetPage( args[ 1 ] ); - } - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_ProtocolVersion/CPP/httpwebresponse_protocolversion.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_ProtocolVersion/CPP/httpwebresponse_protocolversion.cpp deleted file mode 100644 index 0ab44b6775d57..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_ProtocolVersion/CPP/httpwebresponse_protocolversion.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// System::Net::HttpWebResponse::ProtocolVersion -/* This program demonstrates the 'ProtocolVersion' property of the 'HttpWebResponse' class. -It creates a web request and queries for a response.The server should respond using the same version */ - -#using - -using namespace System; -using namespace System::Net; - -void GetPage( String^ url ) -{ - try - { -// - Uri^ ourUri = gcnew Uri( url ); - // Creates an HttpWebRequest for the specified URL. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( ourUri ) ); - myHttpWebRequest->ProtocolVersion = HttpVersion::Version10; - // Sends the HttpWebRequest and waits for the response. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - // Ensures that only Http/1.0 responses are accepted. - if ( myHttpWebResponse->ProtocolVersion != HttpVersion::Version10 ) - { - Console::WriteLine( "\nThe server responded with a version other than Http/1.0" ); - } - else if ( myHttpWebResponse->StatusCode == HttpStatusCode::OK ) - { - Console::WriteLine( "\nRequest sent using version Http/1.0. Successfully received response with version HTTP/1.0 " ); - } - // Releases the resources of the response. - myHttpWebResponse->Close(); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Raised. The following error occurred : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised : {0}", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the url as command line parameter" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "HttpWebResponse_ProtocolVersion http://dotnet.microsoft.com/" ); - } - else - { - GetPage( args[ 1 ] ); - } - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_ResponseUri/CPP/httpwebresponse_responseuri.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_ResponseUri/CPP/httpwebresponse_responseuri.cpp deleted file mode 100644 index 94feadb963d6f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_ResponseUri/CPP/httpwebresponse_responseuri.cpp +++ /dev/null @@ -1,63 +0,0 @@ -// System::Net::HttpWebResponse::ResponseUri -/*This program demonstrates the 'ResponseUri' property of the 'HttpWebResponse' class -It creates a web request and queries for a response.It checks if the original Uri -was redirected by the server. */ - -#using - -using namespace System; -using namespace System::Net; - -void GetPage( String^ url ) -{ - try - { -// - Uri^ myUri = gcnew Uri( url ); - // Create a 'HttpWebRequest' object for the specified url. - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)( WebRequest::Create( myUri ) ); - // Send the request and wait for response. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)( myHttpWebRequest->GetResponse() ); - if ( myHttpWebResponse->StatusCode == HttpStatusCode::OK ) - { - Console::WriteLine( "\nRequest succeeded and the requested information is in the response , Description : {0}", - myHttpWebResponse->StatusDescription ); - } - if ( myUri->Equals( myHttpWebResponse->ResponseUri ) ) - { - Console::WriteLine( "\nThe Request Uri was not redirected by the server" ); - } - else - { - Console::WriteLine( "\nThe Request Uri was redirected to : {0}", myHttpWebResponse->ResponseUri ); - } - // Release resources of response Object*. - myHttpWebResponse->Close(); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Raised. The following error occurred : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised : {0}", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the url as command line parameter:" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "HttpWebResponse_ResponseUri http://dotnet.microsoft.com/" ); - } - else - { - GetPage( args[ 1 ] ); - } - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_StatusCode_StatusDescription/CPP/httpwebresponse_statuscode_statusdescription.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_StatusCode_StatusDescription/CPP/httpwebresponse_statuscode_statusdescription.cpp deleted file mode 100644 index a698f39492a0e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/HttpWebResponse_StatusCode_StatusDescription/CPP/httpwebresponse_statuscode_statusdescription.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// System::Net::HttpWebResponse::StatusCode; System::Net::HttpWebResponse::StatusDescription - -/* This program demonstrates the 'StatusCode' and 'StatusDescription' property of the 'HttpWebResponse' class. -It creates a web request and queries for a response. */ - -#using - -using namespace System; -using namespace System::Net; - -// -// -void GetPage( String^ url ) -{ - try - { - // Creates an HttpWebRequest for the specified URL. - HttpWebRequest^ myHttpWebRequest = dynamic_cast(WebRequest::Create( url )); - // Sends the HttpWebRequest and waits for a response. - HttpWebResponse^ myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - if ( myHttpWebResponse->StatusCode == HttpStatusCode::OK ) - { - Console::WriteLine( "\r\nResponse Status Code is OK and StatusDescription is: {0}", - myHttpWebResponse->StatusDescription ); - } - // Releases the resources of the response. - myHttpWebResponse->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nWebException Raised. The following error occurred : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised : {0}", e->Message ); - } -} -// -// - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the url as command line parameter" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "HttpWebResponse_StatusCode_StatusDescription http://dotnet.microsoft.com/" ); - } - else - { - GetPage( args[ 1 ] ); - } - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Httpwebrequest_HaveResponse/CPP/httpwebrequest_haveresponse.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Httpwebrequest_HaveResponse/CPP/httpwebrequest_haveresponse.cpp deleted file mode 100644 index ebd4e3a01785d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Httpwebrequest_HaveResponse/CPP/httpwebrequest_haveresponse.cpp +++ /dev/null @@ -1,78 +0,0 @@ - - -/*System::Net::HttpWebRequest::HaveResponse - -This program demonstrates 'HaveResponse' property of 'HttpWebRequest' Class. -A new 'HttpWebRequest' is created. -The 'HaveResponse' property is a ReadOnly, boolean property that indicates -whether the Request Object* has received any response or not. -The default value of 'HaveResponse' property of the 'HttpWebRequest' is displayed to the console. -The HttpWebResponse variable is assigned the response Object* of 'HttpWebRequest'. -The HaveReponse property is tested for its value. -If there is a response then the HTML contents of the page of the requested Uri are displayed to the console -else a message 'The response is not received' is displayed to the console. - -*/ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; -int main() -{ - try - { - - // - // Create a new 'HttpWebRequest' Object. - HttpWebRequest^ myHttpWebRequest = dynamic_cast(WebRequest::Create( "http://www.contoso.com" )); - HttpWebResponse^ myHttpWebResponse; - - // Display the 'HaveResponse' property of the 'HttpWebRequest' object to the console. - Console::WriteLine( "\nThe value of 'HaveResponse' property before a response object is obtained : {0}", myHttpWebRequest->HaveResponse ); - - // Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable. - myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - if ( myHttpWebRequest->HaveResponse ) - { - Stream^ streamResponse = myHttpWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "\nThe contents of Html Page are : \n" ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - streamResponse->Close(); - streamRead->Close(); - - // Release the HttpWebResponse Resource. - myHttpWebResponse->Close(); - Console::WriteLine( "\nPress 'Enter' key to continue.........." ); - Console::Read(); - } - else - { - Console::WriteLine( "\nThe response is not received " ); - } - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught" ); - Console::WriteLine( "\nSource : {0}", e->Source ); - Console::WriteLine( "\nMessage : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception Caught" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Httpwebrequest_proxy/CPP/httpwebrequest_proxy.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Httpwebrequest_proxy/CPP/httpwebrequest_proxy.cpp deleted file mode 100644 index 2f56e5129b95e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Httpwebrequest_proxy/CPP/httpwebrequest_proxy.cpp +++ /dev/null @@ -1,110 +0,0 @@ -/*System::Net::HttpWebRequest::Proxy -This program demonstrates the 'Proxy' property of the 'HttpWebRequest' class. -A 'HttpWebRequest' Object* and a 'Proxy' Object* is created.The Proxy Object is then assigned to -the 'Proxy' Property of the 'HttpWebRequest' Object* and printed onto the console(this is the default -Proxy setting).New Proxy address and the credentials are requested from the User::A new Proxy Object* is -then constructed from the supplied inputs.Then the 'Proxy' property of the request is associated with the new -Proxy Object*. -Note:No credentials are required if the Proxy does not require any authentication. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// - // Create a new request to the mentioned URL. - HttpWebRequest ^ myWebRequest = - (HttpWebRequest ^) (WebRequest::Create("http://www.microsoft.com")); - - // Obtain the 'Proxy' of the Default browser. - IWebProxy ^ proxy = myWebRequest->Proxy; - // Print the Proxy Url to the console. - if (proxy) - { - Console::WriteLine("Proxy: {0}", - proxy->GetProxy(myWebRequest->RequestUri)); - } - else - { - Console::WriteLine("Proxy is null; no proxy will be used"); - } - - WebProxy ^ myProxy = gcnew WebProxy; - - Console::WriteLine("\nPlease enter the new Proxy Address that is to be set:"); - Console::WriteLine("(Example:http://myproxy.example.com:port)"); - String ^ proxyAddress; - - try - { - proxyAddress = Console::ReadLine(); - if (proxyAddress->Length > 0) { - Console::WriteLine("\nPlease enter the Credentials "); - Console::WriteLine("Username:"); - String ^ username; - username = Console::ReadLine(); - Console::WriteLine("\nPassword:"); - String ^ password; - password = Console::ReadLine(); - // Create a new Uri object. - Uri ^ newUri = gcnew Uri(proxyAddress); - // Associate the newUri object to 'myProxy' object so that new myProxy settings can be set. - myProxy->Address = newUri; - // Create a NetworkCredential object and associate it with the Proxy property of request object. - myProxy->Credentials = - gcnew NetworkCredential(username, password); - myWebRequest->Proxy = myProxy; - } - Console::WriteLine("\nThe Address of the new Proxy settings are {0}", - myProxy->Address); - HttpWebResponse ^ myWebResponse = - (HttpWebResponse ^) (myWebRequest->GetResponse()); -// - - // Print the HTML contents of the page to the console. - Stream ^ streamResponse = myWebResponse->GetResponseStream(); - StreamReader ^ streamRead = gcnew StreamReader(streamResponse); - array < Char > ^readBuff = gcnew array < Char > (256); - int count = streamRead->Read(readBuff, 0, 256); - Console::WriteLine("\nThe contents of the HTML pages are :"); - while (count > 0) { - String ^ outputData = gcnew String(readBuff, 0, count); - Console::Write(outputData); - count = streamRead->Read(readBuff, 0, 256); - } - streamResponse->Close(); - streamRead->Close(); - // Release the HttpWebResponse Resource. - myWebResponse->Close(); - Console::WriteLine("\nPress any key to continue........."); - Console::Read(); - } - catch(UriFormatException ^ e) - { - Console::WriteLine("\nUriFormatException is thrown. Message: {0}", - e->Message); - Console::WriteLine("\nThe format of the Proxy address you entered is invalid"); - Console::WriteLine("\nPress any key to continue........."); - Console::Read(); - } - } - catch(WebException ^ e) - { - Console::WriteLine("\nWebException raised!"); - Console::WriteLine("\nMessage: {0} ", e->Message); - Console::WriteLine("\nStatus: {0} ", e->Status); - } - catch(Exception ^ e) - { - Console::WriteLine("\nException is raised. "); - Console::WriteLine("\nMessage: {0} ", e->Message); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelDataStore_Item/CPP/ichanneldatastore.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IChannelDataStore_Item/CPP/ichanneldatastore.cpp deleted file mode 100644 index dc8a4fff2a665..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelDataStore_Item/CPP/ichanneldatastore.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// System.Runtime.Remoting.Channels.IChannelDataStore -// System.Runtime.Remoting.Channels.IChannelDataStore.ChannelUris -// System.Runtime.Remoting.Channels.IChannelDataStore.Item[object] - -/* The following example demonstrates 'ChannelUris', 'Item' and 'IChannelDataStore' -class. -In the example after registering the channel, the object is registered with remoting -infrastructure by calling 'RemotingServices.Marshal' method. After registering the -object the channel information is obtained. From the channel information the required -'IChannelInfo' is collected and displayed. -*/ - -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Services; - -// Marshal ByRef Object class. -public ref class MyServiceClass: public MarshalByRefObject -{ -public: - String^ HelloWorld() - { - return "Hello World"; - } -}; - -int main() -{ - // - // - TcpChannel^ myChannel = gcnew TcpChannel( 8085 ); - ChannelServices::RegisterChannel( myChannel ); - MyServiceClass^ myService = gcnew MyServiceClass; - - // After the channel is registered, register the object - // with remoting infrastructure by calling Marshal method. - ObjRef^ myObjRef = RemotingServices::Marshal( myService, "TcpService" ); - - // Get the information contributed by active channel. - IChannelInfo^ myChannelInfo = myObjRef->ChannelInfo; - IChannelDataStore^ myIChannelData; - System::Collections::IEnumerator^ myEnum = myChannelInfo->ChannelData->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Object^ myChannelData = safe_cast(myEnum->Current); - if ( dynamic_cast(myChannelData) ) - { - myIChannelData = dynamic_cast(myChannelData); - System::Collections::IEnumerator^ myEnum1 = myIChannelData->ChannelUris->GetEnumerator(); - while ( myEnum1->MoveNext() ) - { - String^ myUri = safe_cast(myEnum1->Current); - Console::WriteLine( "Channel Uris are -> {0}", myUri ); - } - String^ myKey = "Key1"; - myIChannelData[ myKey ] = "My Data"; - Console::WriteLine( myIChannelData[ myKey ] ); - } - } - // - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiverHook_ChannelScheme/CPP/ichannelreceiverhook_channelscheme.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiverHook_ChannelScheme/CPP/ichannelreceiverhook_channelscheme.cpp deleted file mode 100644 index d2e8a8d8aaade..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiverHook_ChannelScheme/CPP/ichannelreceiverhook_channelscheme.cpp +++ /dev/null @@ -1,141 +0,0 @@ - - - -// System.Runtime.Remoting.Channels.IChannelReceiverHook -// System.Runtime.Remoting.Channels.IChannelReceiverHook.WantsToListen -// System.Runtime.Remoting.Channels.IChannelReceiverHook.ChannelScheme - -/* -This example demonstrates the implementation of the 'ChannelScheme' and -'WantsToListen' properties of the 'IChannelReceiverHook' interface. -It creates a customized channel 'MyCustomChannel' by implementing -'IChannelReceiverHook' interface. -*/ - - - -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; - -// -// Implementation of 'IChannelReceiverHook' interface. -public ref class MyCustomChannel: public IChannelReceiverHook -{ -private: - bool portSet; - -public: - // Constructor for MyCustomChannel. - MyCustomChannel( int /*port*/ ) - { - MyChannelScheme = "http"; - portSet = true; - } - - // Constructor for MyCustomChannel. - MyCustomChannel() - { - MyChannelScheme = "http"; - portSet = false; - } - - property bool WantsToListen - { - // - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual bool get() - { - if ( portSet ) - { - return false; - } - else - { - return true; - } - } - } - // - - // -private: - String^ MyChannelScheme; - -public: - property String^ ChannelScheme - { - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual String^ get() - { - return MyChannelScheme; - } - } - // - - property IServerChannelSink^ ChannelSinkChain - { - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual IServerChannelSink^ get() - { - - // Null implementation. - return nullptr; - } - } - - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual void AddHookChannelUri( String^ /*channelUri*/ ) - { - // Null implementation. - } -}; -// - -int main() -{ - try - { - MyCustomChannel^ myCustomChannelWithPort = gcnew MyCustomChannel( 8085 ); - MyCustomChannel^ myCustomChannelNoPort = gcnew MyCustomChannel; - Console::WriteLine( "Channel Scheme of myCustomChannelWithPort : {0}", - myCustomChannelWithPort->ChannelScheme ); - Console::WriteLine( "Channel Scheme of myCustomChannelNoPort : {0}", - myCustomChannelNoPort->ChannelScheme ); - // 'WantsToListen' is false. It is already listening. - if ( myCustomChannelWithPort->WantsToListen ) - { - Console::WriteLine( "myCustomChannelWithPort wants to listen." ); - } - else - { - Console::WriteLine( "myCustomChannelWithPort doesn't want to listen." ); - } - if ( myCustomChannelNoPort->WantsToListen ) - { - Console::WriteLine( "myCustomChannelNoPort wants to listen." ); - } - else - { - Console::WriteLine( "myCustomChannelNoPort doesn't want to listen." ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiver_StartListening_ChannelData/CPP/IChannelReceiver_ChannelData_Client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiver_StartListening_ChannelData/CPP/IChannelReceiver_ChannelData_Client.cpp deleted file mode 100644 index db042ca4c2f1d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiver_StartListening_ChannelData/CPP/IChannelReceiver_ChannelData_Client.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// This program acts as a client and calls the remote method 'HelloMethod'. - -#using -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::Collections::Specialized; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Security::Permissions; - -public ref class MyIChannelReceiverChannelDataClientClass -{ -public: - [PermissionSet(SecurityAction::Demand)] - static void Main() - { - String^ myChannelURL = "tcp://" + Dns::Resolve(Dns::GetHostName()) - ->AddressList[0] + ":8085/SayHello"; - ListDictionary^ myListDictionary = gcnew ListDictionary(); - myListDictionary->Add("port",8086); - TcpChannel^ myCustomChannel = gcnew TcpChannel(myListDictionary, - gcnew SoapClientFormatterSinkProvider(), - gcnew SoapServerFormatterSinkProvider()); - ChannelServices::RegisterChannel(myCustomChannel); - try - { - HelloServer^ myHelloServer = (HelloServer^)Activator::GetObject - (HelloServer::typeid, myChannelURL); - if (myHelloServer == nullptr) - { - Console::WriteLine("Could not locate server."); - } - else - { - Console::WriteLine(myHelloServer->HelloMethod("Caveman")); - } - } - catch(Exception^ e) - { - Console::WriteLine("Message : " + e->Message); - } - } -}; - -int main() { - MyIChannelReceiverChannelDataClientClass::Main(); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiver_StartListening_ChannelData/CPP/IChannelReceiver_ChannelData_Share.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiver_StartListening_ChannelData/CPP/IChannelReceiver_ChannelData_Share.cpp deleted file mode 100644 index 4ea674b9651d5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiver_StartListening_ChannelData/CPP/IChannelReceiver_ChannelData_Share.cpp +++ /dev/null @@ -1,22 +0,0 @@ -/* The class 'HelloServer' is derived from 'MarshalByRefObject' to make - it remotable. Ihe method 'HelloMethod' can be called by the client - after creating instance of the 'HelloServer' class. -*/ -using namespace System; - -public ref class HelloServer : public MarshalByRefObject -{ - -public: - HelloServer() - { - Console::WriteLine("HelloServer activated"); - } - -public: - String^ HelloMethod(String^ name) - { - Console::WriteLine("Hello.HelloMethod : {0}", name); - return "Hi there " + name; - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiver_StartListening_ChannelData/CPP/ichannelreceiver_channeldata_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiver_StartListening_ChannelData/CPP/ichannelreceiver_channeldata_server.cpp deleted file mode 100644 index f89d4890e0ecf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiver_StartListening_ChannelData/CPP/ichannelreceiver_channeldata_server.cpp +++ /dev/null @@ -1,174 +0,0 @@ - - -// System.Runtime.Remoting.Channels.IChannelReceiver -// System.Runtime.Remoting.Channels.IChannelReceiver.ChannelData -// System.Runtime.Remoting.Channels.IChannelReceiver.GetUrlsForUri -// System.Runtime.Remoting.Channels.IChannelReceiver.StartListening -// System.Runtime.Remoting.Channels.IChannelReceiver.StopListening -/* -This example implements the 'ChannelData' property and 'GetUrlsForUri', -'StartListening' and 'StopListening' method of 'IChannelReceiver' interface. -It creates a server by implementing 'IChannelReceiver' interface to receive -request send by the client. -*/ -#using -#using - -using namespace System::Runtime::InteropServices; -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Threading; -using namespace System::Net::Sockets; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Text::RegularExpressions; - -// -ref class MyCustomChannel: public IChannelReceiver -{ -private: - ChannelDataStore^ myChannelData; - int myChannelPriority; - - // Set the 'ChannelName' to 'MyCustomChannel'. - String^ myChannelName; - - // Implement 'ChannelName' property. - TcpListener^ myTcpListener; - int myPortNo; - bool myListening; - Thread^ myThread; - -public: - MyCustomChannel() - : myChannelPriority( 25 ), myChannelName( "tcp" ), myListening( false ) - {} - - MyCustomChannel( int portNo ) - { - myPortNo = portNo; - array^myURI = gcnew array(1); - myURI[ 0 ] = String::Concat( Dns::Resolve( Dns::GetHostName() )->AddressList[ 0 ], ":", portNo ); - - // Store the 'URI' in 'myChannelDataStore'. - myChannelData = gcnew ChannelDataStore( myURI ); - - // Create 'myTcpListener' to listen at the 'myPortNo' port. - myTcpListener = gcnew TcpListener( myPortNo ); - - // Create the thread 'myThread'. - myThread = gcnew Thread( gcnew ThreadStart( myTcpListener, &TcpListener::Start ) ); - this->StartListening( nullptr ); - } - - property String^ ChannelName - { - virtual String^ get() - { - return myChannelName; - } - } - - property int ChannelPriority - { - virtual int get() - { - return myChannelPriority; - } - } - virtual String^ Parse( String^ myUrl, [Out]String^% objectURI ) - { - Regex^ myRegex = gcnew Regex( "/",RegexOptions::RightToLeft ); - - // Check for '/' in 'myUrl' from Right to left. - Match^ myMatch = myRegex->Match(myUrl); - - // Get the object URI. - objectURI = myUrl->Substring( myMatch->Index ); - - // Return the channel url. - return myUrl->Substring( 0, myMatch->Index ); - } - - // Implementation of 'IChannelReceiver' interface. - // - property Object^ ChannelData - { - virtual Object^ get() - { - return myChannelData; - } - } - // - - // - // Create and send the object URL. - virtual array^ GetUrlsForUri( String^ objectURI ) - { - array^myString = gcnew array(1); - myString[ 0 ] = String::Concat( Dns::Resolve( Dns::GetHostName() )->AddressList[ 0 ], "/", objectURI ); - return myString; - } - // - - // - // Start listening to the port. - virtual void StartListening( Object^ data ) - { - if ( myListening == false ) - { - myTcpListener->Start(); - myListening = true; - Console::WriteLine( "Server Started Listening !!!" ); - } - } - // - - // - // Stop listening to the port. - virtual void StopListening( Object^ data ) - { - if ( myListening == true ) - { - myTcpListener->Stop(); - myListening = false; - Console::WriteLine( "Server Stopped Listening !!!" ); - } - } - // -}; -// - -int main() -{ - MyCustomChannel^ myChannel = gcnew MyCustomChannel( 8085 ); - ChannelDataStore^ myChannelDataStore = (ChannelDataStore^)myChannel->ChannelData; - Console::WriteLine( "The channel URI is {0}", myChannelDataStore->ChannelUris[ 0 ] ); - array^myUrlArray = myChannel->GetUrlsForUri( "SayHello" ); - Console::WriteLine( "The URL for the objectURI is {0}", myUrlArray[ 0 ] ); - bool continueOption = true; - while ( continueOption ) - { - Console::WriteLine( "" ); - Console::WriteLine( "Select a option .." ); - Console::WriteLine( " 1 - StartListening" ); - Console::WriteLine( " 2 - StopListening" ); - Console::WriteLine( " 3 - Exit" ); - Console::Write( "Option : " ); - int myOption = Int32::Parse( Console::ReadLine() ); - switch ( myOption ) - { - case 1: - myChannel->StartListening( nullptr ); - break; - - case 2: - myChannel->StopListening( nullptr ); - break; - - case 3: - continueOption = false; - break; - } - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiver_StartListening_ChannelData/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiver_StartListening_ChannelData/CPP/makefile deleted file mode 100644 index f687312e51f84..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelReceiver_StartListening_ChannelData/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: Share.dll server.exe client.exe - -Share.dll: IChannelReceiver_ChannelData_Share.cpp - cl /clr:pure /LD IChannelReceiver_ChannelData_Share.cpp - -server.exe: IChannelReceiver_ChannelData_Server.cpp IChannelReceiver_ChannelData_Share.dll - cl /clr:pure IChannelReceiver_ChannelData_Server.cpp - -client.exe: IChannelReceiver_ChannelData_client.cpp IChannelReceiver_ChannelData_Share.dll - cl /clr:pure IChannelReceiver_ChannelData_client.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelSender/CPP/IChannelSender_Share.cs b/samples/snippets/cpp/VS_Snippets_Remoting/IChannelSender/CPP/IChannelSender_Share.cs deleted file mode 100644 index adb3c9e61daae..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelSender/CPP/IChannelSender_Share.cs +++ /dev/null @@ -1,19 +0,0 @@ -/* This file is a support file for demonstrating the members of - IChannelSender interface on the client side. The program will - define the methods to execute from the client. */ - -using System; - -public class MyHelloServer : MarshalByRefObject -{ - public MyHelloServer() - { - Console.WriteLine("HelloServer activated"); - } - - public String myHelloMethod(String myString) - { - Console.WriteLine("Hello.HelloMethod : {0}", myString); - return "Hi there " + myString; - } -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelSender/CPP/ichannelsender_2_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IChannelSender/CPP/ichannelsender_2_client.cpp deleted file mode 100644 index f75401a16a447..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelSender/CPP/ichannelsender_2_client.cpp +++ /dev/null @@ -1,71 +0,0 @@ - - -// System.Runtime.Remoting.Channels.IChannelSender -// System.Runtime.Remoting.Channels.IChannelSender.CreateMessageSink() -/* The following program demonstrates the usage of IChannelSender -interface and its 'CreateMessageSink' method in the namespace -'System.Runtime.Remoting.Channels'. This program creates and -registers an IChannelSender of type 'HttpClientChannel'. -It sets the priority of the channel and it displays the -property values of 'HttpClientChannel'. */ -// -#using -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Remoting::Channels::Http; -int main() -{ - try - { - - // Create the 'IDictionary' to set the server object properties. - IDictionary^ myDictionary = gcnew Hashtable; - myDictionary->default[ "name" ] = "HttpClientChannel"; - myDictionary->default[ "priority" ] = 2; - - // Set the properties along with the constructor. - IChannelSender^ myIChannelSender = gcnew HttpClientChannel( myDictionary,gcnew BinaryClientFormatterSinkProvider ); - - // Register the server channel. - ChannelServices::RegisterChannel( myIChannelSender, false ); - MyHelloServer ^ myHelloServer1 = dynamic_cast(Activator::GetObject( MyHelloServer::typeid, "http://localhost:8085/SayHello" )); - if ( myHelloServer1 == nullptr ) - { - Console::WriteLine( "Could not locate server" ); - } - else - { - Console::WriteLine( myHelloServer1->myHelloMethod( "Client" ) ); - - // Get the name of the channel. - Console::WriteLine( "Channel Name :{0}", myIChannelSender->ChannelName ); - - // Get the channel priority. - Console::WriteLine( "ChannelPriority :{0}", myIChannelSender->ChannelPriority ); - String^ myString; - String^ myObjectURI1; - Console::WriteLine( "Parse :{0}{1}", myIChannelSender->Parse( "http://localhost:8085/SayHello", myString ), myString ); - - // - // Get the channel message sink that delivers message to specified url. - IMessageSink^ myIMessageSink = myIChannelSender->CreateMessageSink( "http://localhost:8085/NewEndPoint", nullptr, myObjectURI1 ); - Console::WriteLine( "Channel message sink used :{0}", myIMessageSink ); - - // - Console::WriteLine( "URI of new channel message sink :{0}", myObjectURI1 ); - } - } - catch ( Exception^ ex ) - { - Console::WriteLine( "Following exception is raised on client side : {0}", ex->Message ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelSender/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/IChannelSender/CPP/makefile deleted file mode 100644 index 2d517fe56a83d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IChannelSender/CPP/makefile +++ /dev/null @@ -1,7 +0,0 @@ -all: IChannelSender_Share.dll ichannelsender_2_client.exe - -IChannelSender_Share.dll: IChannelSender_Share.cs - csc /t:library IChannelSender_Share.cs - -ichannelsender_2_client.exe: ichannelsender_2_client.cpp IChannelSender_Share.dll - cl /clr ichannelsender_2_client.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ICredential/CPP/icredential.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ICredential/CPP/icredential.cpp deleted file mode 100644 index c5e7cd86495f2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ICredential/CPP/icredential.cpp +++ /dev/null @@ -1,125 +0,0 @@ -/* -This program demonstrates 'GetCredential' method of 'ICredentials*' interface. -The 'CredentialList' class implements 'ICredentials*' interface which stores credentials for multiple -internet resources.The Program takes URL, Username, Password and Domain name from commandline and adds -it to an instance of 'CredentialList' class.An instance of 'WebRequest' class is obtained and 'Credentials' -property of 'WebRequest' class is set to an instance of 'NetworkCredential' class obtained by calling -'GetCredential' method of 'CredentialList' class. Then it sends the request and obtains a response. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Collections; - -// -ref class CredentialList: public ICredentials -{ -private: - ref class CredentialInfo - { - public: - Uri^ uriObj; - String^ authenticationType; - NetworkCredential^ networkCredentialObj; - CredentialInfo( Uri^ uriObj, String^ authenticationType, NetworkCredential^ networkCredentialObj ) - { - this->uriObj = uriObj; - this->authenticationType = authenticationType; - this->networkCredentialObj = networkCredentialObj; - } - }; - - ArrayList^ arrayListObj; - -public: - CredentialList() - { - arrayListObj = gcnew ArrayList; - } - - void Add( Uri^ uriObj, String^ authenticationType, NetworkCredential^ credential ) - { - - // Add a 'CredentialInfo' object into a list. - arrayListObj->Add( gcnew CredentialInfo( uriObj,authenticationType,credential ) ); - } - - // Remove the 'CredentialInfo' object from the list that matches to the given 'Uri' and 'AuthenticationType' - void Remove( Uri^ uriObj, String^ authenticationType ) - { - for ( int index = 0; index < arrayListObj->Count; index++ ) - { - CredentialInfo^ credentialInfo = dynamic_cast(arrayListObj[ index ]); - if ( uriObj->Equals( credentialInfo->uriObj ) && authenticationType->Equals( credentialInfo->authenticationType ) ) - arrayListObj->RemoveAt( index ); - } - } - - virtual NetworkCredential^ GetCredential( Uri^ uriObj, String^ authenticationType ) - { - for ( int index = 0; index < arrayListObj->Count; index++ ) - { - CredentialInfo^ credentialInfoObj = dynamic_cast(arrayListObj[ index ]); - if ( uriObj->Equals( credentialInfoObj->uriObj ) && authenticationType->Equals( credentialInfoObj->authenticationType ) ) - return credentialInfoObj->networkCredentialObj; - } - return nullptr; - } -}; -// - -void GetPage( String^ urlString, String^ UserName, String^ password, String^ DomainName ) -{ - try - { - CredentialList^ credentialListObj = gcnew CredentialList; - - // Dummy names used as credentials. - credentialListObj->Add( gcnew Uri( urlString ), - "Basic", gcnew NetworkCredential( UserName,password,DomainName ) ); - credentialListObj->Add( gcnew Uri( "http://www.msdn.microsoft.com" ), - "Basic", gcnew NetworkCredential( "User1","Passwd1","Domain1" ) ); - - // Create a 'WebRequest' for the specified url. - WebRequest^ myWebRequest = WebRequest::Create( urlString ); - - // Call 'GetCredential' to obtain the credentials specific to a Uri. - myWebRequest->Credentials = credentialListObj->GetCredential( gcnew Uri( urlString ), "Basic" ); - - // Send the request and get the response. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - - // ....Process the response here. - Console::WriteLine( "\n Response Received." ); - myWebResponse->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "WebException caught !!!" ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught !!!" ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} - -int main() -{ - String^ urlString; - String^ username; - String^ password; - String^ domainname; - Console::Write( "Enter a URL(for e.g. http://www.microsoft.com : " ); - urlString = Console::ReadLine(); - Console::Write( "Enter User name : " ); - username = Console::ReadLine(); - Console::Write( "Enter Password :" ); - password = Console::ReadLine(); - Console::Write( "Enter Domain name : " ); - domainname = Console::ReadLine(); - GetPage( urlString, username, password, domainname ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IDeserializationCallback Interface Example/CPP/ideserializationcallback.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IDeserializationCallback Interface Example/CPP/ideserializationcallback.cpp deleted file mode 100644 index dada2d6208ba8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IDeserializationCallback Interface Example/CPP/ideserializationcallback.cpp +++ /dev/null @@ -1,106 +0,0 @@ - -// -using namespace System; -using namespace System::IO; -using namespace System::Collections; -using namespace System::Runtime::Serialization::Formatters::Binary; -using namespace System::Runtime::Serialization; - -// This class is serializable and will have its OnDeserialization method -// called after each instance of this class is deserialized. - -[Serializable] -ref class Circle: public IDeserializationCallback -{ -private: - Double m_radius; - -public: - - // To reduce the size of the serialization stream, the field below is - // not serialized. This field is calculated when an object is constructed - // or after an instance of this class is deserialized. - - [NonSerialized] - Double m_area; - Circle( Double radius ) - { - m_radius = radius; - m_area = Math::PI * radius * radius; - } - - virtual void OnDeserialization( Object^ /*sender*/ ) - { - // After being deserialized, initialize the m_area field - // using the deserialized m_radius value. - m_area = Math::PI * m_radius * m_radius; - } - - virtual String^ ToString() override - { - return String::Format( "radius= {0}, area= {1}", m_radius, m_area ); - } -}; - -void Serialize() -{ - Circle^ c = gcnew Circle( 10 ); - Console::WriteLine( "Object being serialized: {0}", c ); - - // To serialize the Circle, you must first open a stream for - // writing. We will use a file stream here. - FileStream^ fs = gcnew FileStream( "DataFile.dat",FileMode::Create ); - - // Construct a BinaryFormatter and use it to serialize the data to the stream. - BinaryFormatter^ formatter = gcnew BinaryFormatter; - try - { - formatter->Serialize( fs, c ); - } - catch ( SerializationException^ e ) - { - Console::WriteLine( "Failed to serialize. Reason: {0}", e->Message ); - throw; - } - finally - { - fs->Close(); - } -} - -void Deserialize() -{ - // Declare the Circle reference. - Circle^ c = nullptr; - - // Open the file containing the data that we want to deserialize. - FileStream^ fs = gcnew FileStream( "DataFile.dat",FileMode::Open ); - try - { - BinaryFormatter^ formatter = gcnew BinaryFormatter; - - // Deserialize the Circle from the file and - // assign the reference to our local variable. - c = dynamic_cast(formatter->Deserialize( fs )); - } - catch ( SerializationException^ e ) - { - Console::WriteLine( "Failed to deserialize. Reason: {0}", e->Message ); - throw; - } - finally - { - fs->Close(); - } - - // To prove that the Circle deserialized correctly, display its area. - Console::WriteLine( "Object being deserialized: {0}", c ); -} - -[STAThread] -int main() -{ - Serialize(); - Deserialize(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ILease_ILease/CPP/ilease_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ILease_ILease/CPP/ilease_client.cpp deleted file mode 100644 index e1b40ce138adf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ILease_ILease/CPP/ilease_client.cpp +++ /dev/null @@ -1,91 +0,0 @@ - - -// System::Runtime::Remoting::Lifetime.ILease* -// System::Runtime::Remoting::Lifetime.ILease*.InitialLeaseTime -// System::Runtime::Remoting::Lifetime.ILease*.CurrentLeaseTime -// System::Runtime::Remoting::Lifetime.ILease*.RenewOnCallTime -// System::Runtime::Remoting::Lifetime.ILease*.SponsorshipTimeout -//System::Runtime::Remoting::Lifetime.ILease*.CurrentState -// System::Runtime::Remoting::Lifetime.ILease*.Register(ISponsor*) -// System::Runtime::Remoting::Lifetime.ILease*.Renew(TimeSpam) -// System::Runtime::Remoting::Lifetime.ILease*.Unregister(ISponsor*) -// System::Runtime::Remoting::Lifetime.ILease*.Register(ISponsor*, TimeSpam) -/* The following example demonstrates 'InitialLeaseTime', 'CurrentLeaseTime', -'RenewOnCallTime', 'SponsorshipTimeout', 'CurrentState', 'Register', 'Renew', -'Unregister' and 'Register' methods of 'ClientSponsor' class. - -In the example using 'RemotingServices::GetLifetimeService' the lease information -of the remote service is obtained. All the properties and methods 'ILease' are demonstrated -using this lease variable. The client registers itself with 'ClientSponsor' class. -After registeration the current lease time is displayed. The lease is expired -and renewed. Then the renewed lease time is displayed. Finally the client unregister itself. -The client again registers itself. This time with initial lease time mentioned at -the time of registeration. The lease time is displayed. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Lifetime; -using namespace RemotingSamples; - -// -int main() -{ - // - // Register the channel. - TcpChannel^ myChannel = gcnew TcpChannel; - ChannelServices::RegisterChannel( myChannel ); - RemotingConfiguration::RegisterActivatedClientType( HelloService::typeid, "Tcp://localhost:8085" ); - TimeSpan myTimeSpan = TimeSpan::FromMinutes( 10 ); - - // Create a remote object. - HelloService ^ myService = gcnew HelloService; - ILease^ myLease; - myLease = dynamic_cast(RemotingServices::GetLifetimeService( myService )); - if ( myLease == nullptr ) - { - Console::WriteLine( "Cannot lease." ); - return -1; - } - - Console::WriteLine( "Initial lease time is {0}", myLease->InitialLeaseTime ); - Console::WriteLine( "Current lease time is {0}", myLease->CurrentLeaseTime ); - Console::WriteLine( "Renew on call time is {0}", myLease->RenewOnCallTime ); - Console::WriteLine( "Sponsorship timeout is {0}", myLease->SponsorshipTimeout ); - Console::WriteLine( "Current lease state is {0}", myLease->CurrentState ); - // - - // Register with a sponser. - ClientSponsor^ mySponsor = gcnew ClientSponsor; - myLease->Register( mySponsor ); - Console::WriteLine( "Wait for lease to expire (approx. 15 seconds)..." ); - System::Threading::Thread::Sleep( myLease->CurrentLeaseTime ); - Console::WriteLine( "Current lease time before renewal is {0}", myLease->CurrentLeaseTime ); - - // Renew the lease time. - myLease->Renew( myTimeSpan ); - Console::WriteLine( "Current lease time after renewal is {0}", myLease->CurrentLeaseTime ); - - // Call the Remote method. - Console::WriteLine( "Remote method output is {0}", myService->HelloMethod( "Microsoft" ) ); - myLease->Unregister( mySponsor ); - GC::Collect(); - GC::WaitForPendingFinalizers(); - - // Register with lease time of 15 minutes. - myLease->Register( mySponsor, TimeSpan::FromMinutes( 15 ) ); - Console::WriteLine( "Registered client with lease time of 15 minutes." ); - Console::WriteLine( "Current lease time is {0}", myLease->CurrentLeaseTime ); - - // Call the Remote method. - Console::WriteLine( "Remote method output is {0}", myService->HelloMethod( "Microsoft" ) ); - myLease->Unregister( mySponsor ); -} -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ILease_ILease/CPP/ilease_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ILease_ILease/CPP/ilease_server.cpp deleted file mode 100644 index e25e7e5165e72..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ILease_ILease/CPP/ilease_server.cpp +++ /dev/null @@ -1,24 +0,0 @@ - - -// -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Lifetime; -using namespace RemotingSamples; - -int main() -{ - TcpChannel^ myChannel = gcnew TcpChannel( 8085 ); - ChannelServices::RegisterChannel( myChannel ); - RemotingConfiguration::RegisterActivatedServiceType( HelloService::typeid ); - Console::WriteLine( "Server started." ); - Console::WriteLine( "Hit enter to terminate..." ); - Console::Read(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ILease_ILease/CPP/ilease_share.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ILease_ILease/CPP/ilease_share.cpp deleted file mode 100644 index b7ca866a01ebe..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ILease_ILease/CPP/ilease_share.cpp +++ /dev/null @@ -1,46 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Lifetime; - -namespace RemotingSamples -{ - public ref class HelloService: public MarshalByRefObject - { - public: - String^ HelloMethod( String^ name ) - { - Console::WriteLine( "Hello {0}", name ); - return "Hello {0}",name; - } - - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual Object^ InitializeLifetimeService() override - { - ILease^ baseLease = dynamic_cast(MarshalByRefObject::InitializeLifetimeService()); - if ( baseLease->CurrentState == LeaseState::Initial ) - { - - // For demonstration the initial time is kept small. - // in actual scenarios it will be large. - baseLease->InitialLeaseTime = TimeSpan::FromSeconds( 15 ); - baseLease->RenewOnCallTime = TimeSpan::FromSeconds( 15 ); - baseLease->SponsorshipTimeout = TimeSpan::FromMinutes( 2 ); - } - - return baseLease; - } - - }; - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ILease_ILease/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/ILease_ILease/CPP/makefile deleted file mode 100644 index da35e5fd35ec1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ILease_ILease/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: ILease_Server.exe ILease_Client.exe - -ILease_Server.exe: ILease_Server.cpp ILease_Share.dll - cl /clr:pure ILease_Server.cpp - -ILease_Client.exe: ILease_Client.cpp ILease_Share.dll - cl /clr:pure ILease_Client.cpp - -ILease_Share.dll: ILease_Share.cpp - cl /clr:pure /LD ILease_Share.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IMessageSink_Client/CPP/IMessageSink_Share.cs b/samples/snippets/cpp/VS_Snippets_Remoting/IMessageSink_Client/CPP/IMessageSink_Share.cs deleted file mode 100644 index d77948550e14c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IMessageSink_Client/CPP/IMessageSink_Share.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -namespace Share -{ - public class MyHelloService : MarshalByRefObject -{ - public string myFunction(string myName) - { - string myMessage = "Hi there " + myName + ", you are using .NET Remoting"; - Console.WriteLine(myMessage ); - return myMessage ; - } -} -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IMessageSink_Client/CPP/imessagesink_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IMessageSink_Client/CPP/imessagesink_client.cpp deleted file mode 100644 index 22fe13cf2f055..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IMessageSink_Client/CPP/imessagesink_client.cpp +++ /dev/null @@ -1,149 +0,0 @@ - - -// System.Runtime.Remoting.Messaging.IMessage -// System.Runtime.Remoting.Messaging.IMessage.Properties -// System.Runtime.Remoting.Messaging.IMessageSink -// System.Runtime.Remoting.Messaging.IMessageSink.SyncProcessMessage(IMessage) -/* The following example demonstrates 'IMessage.Properties', 'IMessage' interface, -'IMessageSink.SyncProcessMessage' and 'IMessageSink' interface. -In the example the MyProxy is derived from 'RealProxy' class. In MyProxy -'MessageSink' is created using 'CreateMessageSink' method of 'IChannelSender' -interface. The 'IMessageSink' return by 'CreateMessageSink' is used to demonstrate -'IMessageSink.SyncProcessMessage' of 'IMessageSink' interface. The 'Invoke' method -is overridden in 'MyProxy' class.to demonstrate its properties. -*/ -// -// -#using -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Threading; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Proxies; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Security::Permissions; -using namespace Share; - -public ref class MyProxy: public RealProxy -{ -private: - String^ myUrl; - String^ myObjectURI; - IMessageSink^ myMessageSink; - -public: - [System::Security::Permissions::PermissionSetAttribute(System::Security::Permissions::SecurityAction::LinkDemand)] - - MyProxy( Type^ myType, String^ myUrl1 ) - : RealProxy( myType ) - { - myUrl = myUrl1; - array^myRegisteredChannels = ChannelServices::RegisteredChannels; - IEnumerator^ myEnum = myRegisteredChannels->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - IChannel^ channel = safe_cast(myEnum->Current); - if ( dynamic_cast(channel) ) - { - IChannelSender^ myChannelSender = dynamic_cast(channel); - myMessageSink = myChannelSender->CreateMessageSink( myUrl, nullptr, myObjectURI ); - if ( myMessageSink != nullptr ) - break; - } - } - - if ( myMessageSink == nullptr ) - { - throw gcnew Exception( String::Format( "A supported channel could not be found for myUrl1:{0}", myUrl ) ); - } - } - - virtual IMessage^ Invoke( IMessage^ myMesg ) override - { - Console::WriteLine( "MyProxy.Invoke Start" ); - if ( dynamic_cast(myMesg) ) - Console::WriteLine( "IMethodCallMessage" ); - - if ( dynamic_cast(myMesg) ) - Console::WriteLine( "IMethodReturnMessage" ); - - - // - Console::WriteLine( "Message Properties" ); - IDictionary^ myDictionary = myMesg->Properties; - IDictionaryEnumerator^ myEnum = dynamic_cast(myDictionary->GetEnumerator()); - while ( myEnum->MoveNext() ) - { - Object^ myKey = myEnum->Key; - String^ myKeyName = myKey->ToString(); - Object^ myValue = myEnum->Value; - Console::WriteLine( "{0} : {1}", myKeyName, myEnum->Value ); - if ( myKeyName->Equals( "__Args" ) ) - { - array^myArgs = (array^)myValue; - for ( int myInt = 0; myInt < myArgs->Length; myInt++ ) - Console::WriteLine( "arg: {0} myValue: {1}", myInt, myArgs[ myInt ] ); - } - - if ( (myKeyName->Equals( "__MethodSignature" )) && (nullptr != myValue) ) - { - array^myArgs = (array^)myValue; - for ( int myInt = 0; myInt < myArgs->Length; myInt++ ) - Console::WriteLine( "arg: {0} myValue: {1}", myInt, myArgs[ myInt ] ); - } - } - - Console::WriteLine( "myUrl1 {0} object URI{1}", myUrl, myObjectURI ); - myDictionary->default[ "__Uri" ] = myUrl; - Console::WriteLine( "URI {0}", myDictionary->default[ "__URI" ] ); - - // - // - IMessage^ myRetMsg = myMessageSink->SyncProcessMessage( myMesg ); - if ( dynamic_cast(myRetMsg) ) - { - IMethodReturnMessage^ myMethodReturnMessage = dynamic_cast(myRetMsg); - } - - - // - Console::WriteLine( "MyProxy.Invoke - Finish" ); - return myRetMsg; - } - -}; - - -// -// Main function that drives the whole sample -// -int main() -{ - ChannelServices::RegisterChannel( gcnew HttpChannel, false ); - Console::WriteLine( "Remoting Sample:" ); - Console::WriteLine( "Generate a new MyProxy using the Type" ); - Type^ myType = MyHelloService::typeid; - String^ myUrl1 = "http://localhost/myServiceAccess.soap"; - MyProxy^ myProxy = gcnew MyProxy( myType,myUrl1 ); - Console::WriteLine( "Obtain the transparent proxy from myProxy" ); - MyHelloService^ myService = dynamic_cast(myProxy->GetTransparentProxy()); - Console::WriteLine( "Calling the Proxy" ); - String^ myReturnString = myService->myFunction( "bill" ); - Console::WriteLine( "Checking result : {0}", myReturnString ); - if ( myReturnString->Equals( "Hi there bill, you are using .NET Remoting" ) ) - { - Console::WriteLine( "myService.HelloMethod PASSED : returned {0}", myReturnString ); - } - else - { - Console::WriteLine( "myService.HelloMethod FAILED : returned {0}", myReturnString ); - } -} - -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IMessageSink_Client/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/IMessageSink_Client/CPP/makefile deleted file mode 100644 index 2010000a79c3b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IMessageSink_Client/CPP/makefile +++ /dev/null @@ -1,7 +0,0 @@ -all: IMessageSink_Share.dll imessagesink_client.exe - -IMessageSink_Share.dll: IMessageSink_Share.cs - csc /t:library IMessageSink_Share.cs - -imessagesink_client.exe: imessagesink_client.cpp IMessageSink_Share.dll - cl /clr imessagesink_client.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IMethodCallMessage_GetInArg/CPP/imethodcallmessage.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IMethodCallMessage_GetInArg/CPP/imethodcallmessage.cpp deleted file mode 100644 index bf01660d3c3d5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IMethodCallMessage_GetInArg/CPP/imethodcallmessage.cpp +++ /dev/null @@ -1,108 +0,0 @@ - - -// System::Runtime::Remoting::IMethodCallMessage -// System::Runtime::Remoting::IMethodCallMessage.InArgCount -// System::Runtime::Remoting::IMethodCallMessage.InArgs -// System::Runtime::Remoting::IMethodCallMessage.GetArgName(int) -// System::Runtime::Remoting::IMethodCallMessage.GetInArg(int) -/* -The following example demonstrates 'GetInArg', 'GetArgName', 'InArgCount' and 'InArgs' -members of 'IMethodCallMessage*' interface. -In this example custom proxy is accessed by passing message to the Invoke method. -In invoke method check the type of message. If the type is IMethodCallMessage*, then -InArgCount, InArgs, GetArgName(int) and GetInArg(int) of the interface are displayed. -This example also shows how to create a custom proxy. -*/ -// -using namespace System; -using namespace System::Collections; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Proxies; -using namespace System::Runtime::Remoting::Messaging; - -// MyProxy extends the CLR Remoting RealProxy. -// In the same class, in the Invoke method, the methods and properties of the -// IMethodCallMessage are demonstrated. - -[System::Security::Permissions::SecurityPermissionAttribute -(System::Security::Permissions::SecurityAction::LinkDemand, -Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] -[System::Security::Permissions::SecurityPermissionAttribute -(System::Security::Permissions::SecurityAction::InheritanceDemand, -Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - -public ref class MyProxy: public RealProxy -{ -public: - MyProxy( Type^ myType ) - : RealProxy( myType ) - { - // This constructor forwards the call to base RealProxy. - // RealProxy uses the Type to generate a transparent proxy. - } - - // - virtual IMessage^ Invoke( IMessage^ myIMessage ) override - { - Console::WriteLine( "MyProxy::Invoke Start" ); - Console::WriteLine( "" ); - ReturnMessage^ myReturnMessage = nullptr; - if ( dynamic_cast(myIMessage) ) - { - Console::WriteLine( "Message is of type 'IMethodCallMessage*'." ); - Console::WriteLine( "" ); - IMethodCallMessage^ myIMethodCallMessage; - myIMethodCallMessage = dynamic_cast(myIMessage); - Console::WriteLine( "InArgCount is : {0}", myIMethodCallMessage->InArgCount ); - IEnumerator^ myEnum = myIMethodCallMessage->InArgs->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Object^ myObj = safe_cast(myEnum->Current); - Console::WriteLine( "InArgs is : {0}", myObj ); - } - - for ( int i = 0; i < myIMethodCallMessage->InArgCount; i++ ) - { - Console::WriteLine( "GetArgName({0}) is : {1}", i, myIMethodCallMessage->GetArgName( i ) ); - Console::WriteLine( "GetInArg({0}) is : {0}", i, myIMethodCallMessage->GetInArg( i ) ); - - } - Console::WriteLine( "" ); - } - else - if ( dynamic_cast(myIMessage) ) - Console::WriteLine( "Message is of type 'IMethodReturnMessage*'." ); - - // Build Return Message - myReturnMessage = gcnew ReturnMessage( 5,nullptr,0,nullptr,dynamic_cast(myIMessage) ); - Console::WriteLine( "MyProxy::Invoke - Finish" ); - return myReturnMessage; - } -}; - -// The class used to obtain Metadata. -public ref class MyMarshalByRefClass: public MarshalByRefObject -{ -public: - int MyMethod( String^ str, double dbl, int i ) - { - Console::WriteLine( "MyMarshalByRefClass::MyMethod {0} {1} {2}", str, dbl, i ); - return 0; - } - -}; -// - -// Main routine that drives the whole sample. -int main() -{ - Console::WriteLine( "Generate a new MyProxy." ); - MyProxy^ myProxy = gcnew MyProxy( MyMarshalByRefClass::typeid ); - Console::WriteLine( "Obtain the transparent proxy from myProxy." ); - MyMarshalByRefClass^ myMarshalByRefClassObj = dynamic_cast(myProxy->GetTransparentProxy()); - Console::WriteLine( "Calling the Proxy." ); - Object^ myReturnValue = myMarshalByRefClassObj->MyMethod( "Microsoft", 1.2, 6 ); - Console::WriteLine( "Sample Done." ); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IMethodMessage_LogicalCallContext/CPP/imethodmessage_logicalcallcontext.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IMethodMessage_LogicalCallContext/CPP/imethodmessage_logicalcallcontext.cpp deleted file mode 100644 index 2b4d9d392c794..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IMethodMessage_LogicalCallContext/CPP/imethodmessage_logicalcallcontext.cpp +++ /dev/null @@ -1,104 +0,0 @@ -// System::Runtime::Remoting::Messaging.IMethodMessage*.LogicalCallContext -// System::Runtime::Remoting::Messaging.IMethodMessage*.Uri - -/* -The program demonstrates the 'LogicalCallContext' and 'Uri' properties of -the IMethodMessage* interface. -In the program a remote Object* is created with a method by extending 'MarshalByRefObject'. -A custom proxy is created by extending 'RealProxy' and overriding 'Invoke' -method of 'RealProxy'. In this example custom proxy is accessed by passing message -to the Invoke method. Then the values of 'Uri' and 'LogicalCallContext' properties -are displayed to the console. -*/ - -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Proxies; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Security::Permissions; - -// MyProxy extends the CLR Remoting RealProxy. -// This demonstrate the RealProxy extensiblity. -// -//This sample requires full trust -[PermissionSetAttribute(SecurityAction::Demand, Name = "FullTrust")] -public ref class MyProxy: public RealProxy -{ -private: - String^ stringUri; - MarshalByRefObject^ targetObject; - -public: - MyProxy( Type^ type ) - : RealProxy( type ) - { - targetObject = dynamic_cast(Activator::CreateInstance( type )); - ObjRef^ myObject = RemotingServices::Marshal( targetObject ); - stringUri = myObject->URI; - } - - MyProxy( Type^ type, MarshalByRefObject^ targetObject ) - : RealProxy( type ) - { - this->targetObject = targetObject; - } - - // - virtual IMessage^ Invoke( IMessage^ message ) override - { - message->Properties[ "__Uri" ] = stringUri; - IMethodMessage^ myMethodMessage = dynamic_cast(ChannelServices::SyncDispatchMessage( message )); - Console::WriteLine( "---------IMethodMessage* example-------" ); - Console::WriteLine( "Method name : {0}", myMethodMessage->MethodName ); - Console::WriteLine( "LogicalCallContext has information : {0}", myMethodMessage->LogicalCallContext->HasInfo ); - Console::WriteLine( "Uri : {0}", myMethodMessage->Uri ); - return myMethodMessage; - } - // -}; -// - - -[AttributeUsage(AttributeTargets::Class)] -[PermissionSetAttribute(SecurityAction::Demand, Name = "FullTrust")] -public ref class MyProxyAttribute: public ProxyAttribute -{ -public: - MyProxyAttribute(){} - - virtual MarshalByRefObject^ CreateInstance( Type^ serverType ) override - { - if ( serverType->IsMarshalByRef ) - { - MarshalByRefObject^ targetObject = dynamic_cast(Activator::CreateInstance( serverType )); - MyProxy^ proxy = gcnew MyProxy( serverType,targetObject ); - return dynamic_cast(proxy->GetTransparentProxy()); - } - else - throw gcnew Exception( "Proxies only work on MarshalByRefObject objects and their children" ); - } -}; - -public ref class Zip: public MarshalByRefObject, public ILogicalThreadAffinative -{ -public: - Zip(){} - - int Method1( int i ) - { - return i; - } -}; - -int main() -{ - MyProxy^ proxy = gcnew MyProxy( Zip::typeid ); - Zip^ myZip = dynamic_cast(proxy->GetTransparentProxy()); - CallContext::SetData( "USER", gcnew Zip ); - myZip->Method1( 6 ); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IMethodMessage_MethodName/CPP/imethodmessage_methodname.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IMethodMessage_MethodName/CPP/imethodmessage_methodname.cpp deleted file mode 100644 index fc6f65fff23bd..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IMethodMessage_MethodName/CPP/imethodmessage_methodname.cpp +++ /dev/null @@ -1,111 +0,0 @@ -// System::Runtime::Remoting::Messaging.IMethodMessage* -// System::Runtime::Remoting::Messaging.IMethodMessage*.MethodName -// System::Runtime::Remoting::Messaging.IMethodMessage*.ArgCount -// System::Runtime::Remoting::Messaging.IMethodMessage*.GetArgName -// System::Runtime::Remoting::Messaging.IMethodMessage*.GetArg -// System::Runtime::Remoting::Messaging.IMethodMessage*.HasVarArgs -// System::Runtime::Remoting::Messaging.IMethodMessage*.Args - -/* -The following program demonstrates the 'MethodName', 'ArgCount', 'HasVarArgs', -'Args' properties, 'GetArgName', 'GetArg' methods of 'IMethodMessage*' interface and -'IMethodMessage*' interface. -In this example custom proxy is accessed by passing message to the Invoke method. -The Invoke method calls the methods and properties of 'IMethodMessage*' interface -and displays the result to the console. -*/ - -using namespace System; -using namespace System::Reflection; -using namespace System::Runtime::Remoting::Proxies; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Security::Permissions; - -public ref class Reverser: public MarshalByRefObject -{ -private: - String^ stringReversed; - -public: - String^ GetReversedString() - { - return stringReversed; - } - - void SetString( String^ temp ) - { - DoReverse( temp ); - } - -private: - - // Exposed reverse as a method to reverse a String*. - void DoReverse( String^ argString ) - { - stringReversed = ""; - for ( int i = argString->Length - 1; i >= 0; i-- ) - { - stringReversed += argString[i]; - } - } -}; - -// -// This class requires full trust -[PermissionSetAttribute(SecurityAction::Demand, Name = "FullTrust")] -public ref class MyProxyClass: public RealProxy -{ -private: - Object^ myObjectInstance; - Type^ myType; - -public: - MyProxyClass( Type^ argType ) - : RealProxy( argType ) - { - myType = argType; - myObjectInstance = Activator::CreateInstance( argType ); - } - - // - // Overriding the Invoke method of RealProxy. - virtual IMessage^ Invoke( IMessage^ message ) override - { - IMethodMessage^ myMethodMessage = dynamic_cast(message); - Console::WriteLine( "**** Begin Invoke ****" ); - Console::WriteLine( "\tType is : {0}", myType ); - Console::WriteLine( "\tMethod name : {0}", myMethodMessage->MethodName ); - for ( int i = 0; i < myMethodMessage->ArgCount; i++ ) - { - Console::WriteLine( "\tArgName is : {0}", myMethodMessage->GetArgName( i ) ); - Console::WriteLine( "\tArgValue is: {0}", myMethodMessage->GetArg( i ) ); - - } - if ( myMethodMessage->HasVarArgs ) - Console::WriteLine( "\t The method have variable arguments!!" ); - else - Console::WriteLine( "\t The method does not have variable arguments!!" ); - - - // Dispatch the method call to the real Object*. - Object^ returnValue = myType->InvokeMember( myMethodMessage->MethodName, BindingFlags::InvokeMethod, nullptr, myObjectInstance, myMethodMessage->Args ); - Console::WriteLine( "**** End Invoke ****" ); - - // Build the return message to pass back to the transparent proxy. - ReturnMessage^ myReturnMessage = gcnew ReturnMessage( returnValue,nullptr,0,nullptr,dynamic_cast(message) ); - return myReturnMessage; - } - // -}; -// - -int main() -{ - MyProxyClass^ myProxy = gcnew MyProxyClass( Reverser::typeid ); - - // The real proxy dynamically creates a transparent proxy. - Reverser^ myReverser = dynamic_cast(myProxy->GetTransparentProxy()); - myReverser->SetString( "Hello World!" ); - Console::WriteLine( "The [Out] result is : {0}", myReverser->GetReversedString() ); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IMethodReturnMessage_Exception/CPP/imethodreturnmessage_exception.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IMethodReturnMessage_Exception/CPP/imethodreturnmessage_exception.cpp deleted file mode 100644 index de64597d5f167..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IMethodReturnMessage_Exception/CPP/imethodreturnmessage_exception.cpp +++ /dev/null @@ -1,87 +0,0 @@ -// System::Runtime::Remoting::Messaging.IMethodReturnMessage*.Exception - -/* -The following example demonstrates 'Exception' property of 'IMethodReturnMessage*'interface. -A 'CustomServer' class is defined extending 'MarshalByRefObject'. A custom proxy -is created by extending 'RealProxy' and overriding 'Invoke' method of 'RealProxy'. -The Invoke method calls the methods and properties of 'IMethodMessage*' interface -and display the 'Exception' property value of 'IMethodReturnMessage*' interface to -the console. -*/ - -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Proxies; -using namespace System::Runtime::Remoting::Messaging; - -public ref class CustomServer: public MarshalByRefObject -{ -public: - void RaiseException() - { - throw gcnew Exception( "Raising an exception." ); - } -}; - -[System::Security::Permissions::SecurityPermissionAttribute -(System::Security::Permissions::SecurityAction::LinkDemand, -Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] -[System::Security::Permissions::SecurityPermissionAttribute -(System::Security::Permissions::SecurityAction::InheritanceDemand, -Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] -public ref class MyProxy: public RealProxy -{ -private: - String^ _URI; - MarshalByRefObject^ myMarshalByRefObject; - -public: - MyProxy( Type^ myType ) : RealProxy( myType ) - { - myMarshalByRefObject = dynamic_cast(Activator::CreateInstance( myType )); - ObjRef^ myObjRef = RemotingServices::Marshal( myMarshalByRefObject ); - _URI = myObjRef->URI; - } - - // - virtual IMessage^ Invoke( IMessage^ myMessage ) override - { - IMethodCallMessage^ myCallMessage = dynamic_cast(myMessage); - - IMethodReturnMessage^ myIMethodReturnMessage = - RemotingServices::ExecuteMessage( myMarshalByRefObject, myCallMessage ); - if ( myIMethodReturnMessage->Exception != nullptr ) - { - Console::WriteLine( "{0} raised an exception.", - myIMethodReturnMessage->MethodName ); - } - else - { - Console::WriteLine( "{0} does not raise an exception.", - myIMethodReturnMessage->MethodName ); - } - - return myIMethodReturnMessage; - } - // -}; - -int main() -{ - // Create an instance of MyProxy. - MyProxy^ myCustomProxy = gcnew MyProxy( CustomServer::typeid ); - // Get an instance of remote class. - CustomServer^ myHelloServer = dynamic_cast(myCustomProxy->GetTransparentProxy()); - try - { - // Invoke remote method. - myHelloServer->RaiseException(); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IMethodReturnMessage_ReturnValue/CPP/imethodreturnmessage_returnvalue.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IMethodReturnMessage_ReturnValue/CPP/imethodreturnmessage_returnvalue.cpp deleted file mode 100644 index b77b076d05bd4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IMethodReturnMessage_ReturnValue/CPP/imethodreturnmessage_returnvalue.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// System::Runtime::Remoting::Messaging.IMethodReturnMessage* -// System::Runtime::Remoting::Messaging.IMethodReturnMessage*.OutArgs -// System::Runtime::Remoting::Messaging.IMethodReturnMessage*.ReturnValue -// System::Runtime::Remoting::Messaging.IMethodReturnMessage*.OutArgCount -// System::Runtime::Remoting::Messaging.IMethodReturnMessage*.GetOutArg -// System::Runtime::Remoting::Messaging.IMethodReturnMessage*.GetOutArgName - -/* -The following example demonstrates 'ReturnValue', 'OutArgCount' properties, -'GetOutArg', 'GetOutArgName' methods of 'IMethodReturnMessage*' interface -and 'IMethodReturnMessage*' interface. -A custom proxy is created by extending 'RealProxy' and overriding 'Invoke' method of -'RealProxy'. The custom proxy is accessed by passing message to the Invoke method. -The Invoke method calls properties of 'IMethodReturnMessage*' interface and -prints the values to the console. -*/ - -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Runtime::Serialization; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Proxies; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::InteropServices; - -public ref class CustomServer: public MarshalByRefObject -{ -public: - String^ HelloMethod( String^ myString, interior_ptr myDoubleValue, - [Out]interior_ptr myIntValue ) - { - *myIntValue = 100; - return myString; - } -}; - -// -[System::Security::Permissions::SecurityPermissionAttribute -(System::Security::Permissions::SecurityAction::LinkDemand, -Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] -[System::Security::Permissions::SecurityPermissionAttribute -(System::Security::Permissions::SecurityAction::InheritanceDemand, -Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] -public ref class MyProxy: public RealProxy -{ -private: - String^ stringUri; - MarshalByRefObject^ myMarshalByRefObject; - -public: - MyProxy( Type^ myType ) : RealProxy( myType ) - { - myMarshalByRefObject = dynamic_cast(Activator::CreateInstance( myType )); - ObjRef^ myObject = RemotingServices::Marshal( myMarshalByRefObject ); - stringUri = myObject->URI; - } - - // - virtual IMessage^ Invoke( IMessage^ myMessage ) override - { - IMethodCallMessage^ myCallMessage = (IMethodCallMessage^)( myMessage ); - - IMethodReturnMessage^ myIMethodReturnMessage = - RemotingServices::ExecuteMessage( myMarshalByRefObject, myCallMessage ); - - Console::WriteLine( "Method name : {0}", myIMethodReturnMessage->MethodName ); - Console::WriteLine( "The return value is : {0}", myIMethodReturnMessage->ReturnValue ); - - // Get number of 'ref' and 'out' parameters. - int myArgOutCount = myIMethodReturnMessage->OutArgCount; - Console::WriteLine( "The number of 'ref', 'out' parameters are : {0}", - myIMethodReturnMessage->OutArgCount ); - // Gets name and values of 'ref' and 'out' parameters. - for ( int i = 0; i < myArgOutCount; i++ ) - { - Console::WriteLine( "Name of argument {0} is '{1}'.", - i, myIMethodReturnMessage->GetOutArgName( i ) ); - Console::WriteLine( "Value of argument {0} is '{1}'.", - i, myIMethodReturnMessage->GetOutArg( i ) ); - } - Console::WriteLine(); - array^myObjectArray = myIMethodReturnMessage->OutArgs; - for ( int i = 0; i < myObjectArray->Length; i++ ) - Console::WriteLine( "Value of argument {0} is '{1}' in OutArgs", - i, myObjectArray[ i ] ); - return myIMethodReturnMessage; - } - // -}; -// - -int main() -{ - // Create an instance of MyProxy. - MyProxy^ myCustomProxy = gcnew MyProxy( CustomServer::typeid ); - // Get an instance of remote class. - CustomServer^ myHelloServer = - (CustomServer^)( myCustomProxy->GetTransparentProxy() ); - double myDoubleValue = 10.5; - int myIntValue = 200; - // Invoke the remote method. - myHelloServer->HelloMethod( "Hello", &myDoubleValue, &myIntValue ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IObjectReference Interface Example/CPP/iobjectreference.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IObjectReference Interface Example/CPP/iobjectreference.cpp deleted file mode 100644 index e5d090d7dce0f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IObjectReference Interface Example/CPP/iobjectreference.cpp +++ /dev/null @@ -1,118 +0,0 @@ -// -using namespace System; -using namespace System::IO; -using namespace System::Collections; -using namespace System::Runtime::Serialization::Formatters::Binary; -using namespace System::Runtime::Serialization; - -ref class SingletonSerializationHelper; - -// There should be only one instance of this type per AppDomain. - -[Serializable] -public ref class Singleton sealed: public ISerializable -{ -private: - - // This is the one instance of this type. - static Singleton^ theOneObject = gcnew Singleton; - -public: - - // Here are the instance fields. - String^ someString; - Int32 someNumber; - -private: - - // Private constructor allowing this type to construct the singleton. - Singleton() - { - // Do whatever is necessary to initialize the singleton. - someString = "This is a String* field"; - someNumber = 123; - } - -public: - - // A method returning a reference to the singleton. - static Singleton^ GetSingleton() - { - return theOneObject; - } - - // A method called when serializing a Singleton. - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::SerializationFormatter)] - virtual void GetObjectData( SerializationInfo^ info, StreamingContext context ) - { - // Instead of serializing this Object*, we will - // serialize a SingletonSerializationHelp instead. - info->SetType( SingletonSerializationHelper::typeid ); - - // No other values need to be added. - } - - // NOTE: ISerializable*'s special constructor is NOT necessary - // because it's never called -}; - -[Serializable] -private ref class SingletonSerializationHelper sealed: public IObjectReference -{ -public: - - // This Object* has no fields (although it could). - // GetRealObject is called after this Object* is deserialized - virtual Object^ GetRealObject( StreamingContext context ) - { - // When deserialiing this Object*, return a reference to - // the singleton Object* instead. - return Singleton::GetSingleton(); - } -}; - -[STAThread] -int main() -{ - FileStream^ fs = gcnew FileStream( "DataFile.dat",FileMode::Create ); - try - { - // Construct a BinaryFormatter and use it - // to serialize the data to the stream. - BinaryFormatter^ formatter = gcnew BinaryFormatter; - - // Create an array with multiple elements refering to - // the one Singleton Object*. - array^a1 = {Singleton::GetSingleton(),Singleton::GetSingleton()}; - - // This displays S"True". - Console::WriteLine( "Do both array elements refer to the same Object? {0}", (a1[ 0 ] == a1[ 1 ]) ); - - // Serialize the array elements. - formatter->Serialize( fs, a1 ); - - // Deserialize the array elements. - fs->Position = 0; - array^a2 = (array^)formatter->Deserialize( fs ); - - // This displays S"True". - Console::WriteLine( "Do both array elements refer to the same Object? {0}", (a2[ 0 ] == a2[ 1 ]) ); - - // This displays S"True". - Console::WriteLine( "Do all array elements refer to the same Object? {0}", (a1[ 0 ] == a2[ 0 ]) ); - } - catch ( SerializationException^ e ) - { - Console::WriteLine( "Failed to serialize. Reason: {0}", e->Message ); - throw; - } - finally - { - fs->Close(); - } - - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IPAddress_Broadcast_Loopback/CPP/ipaddress_broadcast_loopback.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IPAddress_Broadcast_Loopback/CPP/ipaddress_broadcast_loopback.cpp deleted file mode 100644 index 252026db49226..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IPAddress_Broadcast_Loopback/CPP/ipaddress_broadcast_loopback.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* -This program demonstrates the 'Loopback' and 'Broadcast' field of 'IPAddress' class. -It prints the loopback IP address 127.0.0.1 and Broadcast IP address 255.255.255.255 -*/ - -#using - -using namespace System; -using namespace System::Net; - -// -void PrintLoopbackAddress() -{ - // Gets the IP loopback address and converts it to a string. - String^ IpAddressString = IPAddress::Loopback->ToString(); - Console::WriteLine( "Loopback IP address : {0}", IpAddressString ); -} -// - -// -void PrintBroadcastAddress() -{ - // Get the IP Broadcast address and convert it to string. - String^ IpAddressString = IPAddress::Broadcast->ToString(); - Console::WriteLine( "\nBroadcast IP address : {0}", IpAddressString ); -} -// - -int main() -{ - PrintLoopbackAddress(); - PrintBroadcastAddress(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IPAddress_NetworkToHost/CPP/ipaddress_networktohost.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IPAddress_NetworkToHost/CPP/ipaddress_networktohost.cpp deleted file mode 100644 index e1bb956946698..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IPAddress_NetworkToHost/CPP/ipaddress_networktohost.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* -This program demonstrates 'NetworkToHostOrder(short)', 'NetworkToHostOrder(int)' and -'NetworkToHostOrder(long)' methods of 'IPAddress' class. -It takes a String* from commandline for each of above cases and convert it to the corresponding -primitive type(i.e. short, int, long) value. Alternatively it uses default values for each cases. -Then these values are converted from network Byte order to host Byte order by calling the -overloaded 'NetworkToHostOrder' methods of 'IPAddress' class. -*/ - -#using - -using namespace System; -using namespace System::Net; - -// -void NetworkToHostOrder_Short( short networkByte ) -{ - short hostByte; - // Converts a short value from network Byte order to host Byte order. - hostByte = IPAddress::NetworkToHostOrder( networkByte ); - Console::WriteLine( "Network Byte order to Host Byte order of {0} is {1}", networkByte, hostByte ); -} -// - -// -void NetworkToHostOrder_Integer( int networkByte ) -{ - int hostByte; - // Converts an integer value from network Byte order to host Byte order. - hostByte = IPAddress::NetworkToHostOrder( networkByte ); - Console::WriteLine( "Network Byte order to Host Byte order of {0} is {1}", networkByte, hostByte ); -} -// - -// -void NetworkToHostOrder_Long( __int64 networkByte ) -{ - __int64 hostByte; - // Converts a long value from network Byte order to host Byte order. - hostByte = IPAddress::NetworkToHostOrder( networkByte ); - Console::WriteLine( "Network Byte order to Host Byte order of {0} is {1}", networkByte, hostByte ); -} -// - -int main() -{ - try - { - short networkByteShort = 4365; - int networkByteInt = 286064640; - __int64 networkByteLong = 1228638273342013440I64; - String^ networkByteString = ""; - - Console::Write( "'Program converts Network Byte order to Host Byte order for short, int and long values'" ); - Console::Write( "\nEnter a short value for Convertion(press Enter for default, default is '4365') : " ); - networkByteString = Console::ReadLine(); - if ( networkByteString->Length > 0 ) - networkByteShort = Convert::ToInt16( networkByteString ); - NetworkToHostOrder_Short( networkByteShort ); - - networkByteString = ""; - Console::Write( "\nEnter an Integer value for Convertion(press Enter for default, default is '286064640') : " ); - networkByteString = Console::ReadLine(); - if ( networkByteString->Length > 0 ) - networkByteInt = Convert::ToInt32( networkByteString ); - NetworkToHostOrder_Integer( networkByteInt ); - - networkByteString = ""; - Console::Write( "\nEnter a long value for Convertion(press Enter for default, default is '1228638273342013440') : " ); - networkByteString = Console::ReadLine(); - if ( networkByteString->Length > 0 ) - networkByteLong = Convert::ToInt64( networkByteString ); - NetworkToHostOrder_Long( networkByteLong ); - } - catch ( FormatException^ e ) - { - Console::WriteLine( "FormatException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IPAddress_None/CPP/ipaddress_none.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IPAddress_None/CPP/ipaddress_none.cpp deleted file mode 100644 index c4ef78097fa02..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IPAddress_None/CPP/ipaddress_none.cpp +++ /dev/null @@ -1,22 +0,0 @@ - - -/* -This program demonstrates the 'None' field of 'IPAddress' class. -Provides an IP address indicating that no network interface should be used. -*/ -#using - -using namespace System; -using namespace System::Net; - -// -int main() -{ - - // Gets the IP address indicating that no network interface should be used - // and converts it to a String*. - String^ address = IPAddress::None->ToString(); - Console::WriteLine( "IP address : {0}", address ); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IPEndPoint_Properties/CPP/ipendpoint_properties.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IPEndPoint_Properties/CPP/ipendpoint_properties.cpp deleted file mode 100644 index fdaff450fae58..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IPEndPoint_Properties/CPP/ipendpoint_properties.cpp +++ /dev/null @@ -1,123 +0,0 @@ -// System.Net.IPEndPoint.MaxPort; System.Net.IPEndPoint.MinPort; -// System.Net.IPEndPoint.AddressFamily; System.Net.IPEndPoint.IPEndPoint(long,int) -// System.Net.IPEndPoint.Address; System.Net.IPEndPoint.Port; - -/*This program demonstrates the properties 'MaxPort', 'MinPort','Address','Port' -and 'AddressFamily' and a constructor 'IPEndPoint(long,int)' of class 'IPEndPoint'. - -A procedure DoSocketGet is created which internally uses a socket to transmit http "Get" requests to a Web resource. -The program accepts a resource Url, Resolves it to obtain 'IPAddress',Constructs 'IPEndPoint' instance using this -'IPAddress' and port 80.Invokes DoSocketGet procedure to obtain a response and displays the response to a console. - -It then accepts another Url, Resolves it to obtain 'IPAddress'. Assigns this IPAddress and port to the 'IPEndPoint' -and again invokes DoSocketGet to obtain a response and display. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; -using namespace System::Net::Sockets; -using namespace System::Runtime::InteropServices; - -String^ DoSocketGet( IPEndPoint^ hostIPEndPoint, String^ getString ); // forward reference - -int main() -{ - try - { - Console::Write( "\nPlease enter an INTRANET Url as shown: [e.g. www.microsoft.com]:" ); - String^ hostString1 = Console::ReadLine(); - -// -// -// -// - IPAddress^ hostIPAddress1 = (Dns::Resolve( hostString1 ))->AddressList[ 0 ]; - Console::WriteLine( hostIPAddress1 ); - IPEndPoint^ hostIPEndPoint = gcnew IPEndPoint( hostIPAddress1,80 ); - Console::WriteLine( "\nIPEndPoint information:{0}", hostIPEndPoint ); - Console::WriteLine( "\n\tMaximum allowed Port Address :{0}", IPEndPoint::MaxPort ); - Console::WriteLine( "\n\tMinimum allowed Port Address :{0}", (int^)IPEndPoint::MinPort ); - Console::WriteLine( "\n\tAddress Family :{0}", hostIPEndPoint->AddressFamily ); -// - Console::Write( "\nPress Enter to continue" ); - Console::ReadLine(); - String^ getString = String::Format( "GET / HTTP/1.1\r\nHost: {0}\r\nConnection: Close\r\n\r\n", hostString1 ); - String^ pageContent = DoSocketGet( hostIPEndPoint, getString ); - if ( pageContent != nullptr ) - { - Console::WriteLine( "Default HTML page on {0} is:\r\n{1}", hostString1, pageContent ); - } -// -// -// - - Console::Write( "\n\n\nPlease enter another INTRANET Url as shown[e.g. www.microsoft.com]: " ); - String^ hostString2 = Console::ReadLine(); - -// -// - IPAddress^ hostIPAddress2 = (Dns::Resolve( hostString2 ))->AddressList[ 0 ]; - hostIPEndPoint->Address = hostIPAddress2; - hostIPEndPoint->Port = 80; - - getString = String::Format( "GET / HTTP/1.1\r\nHost: {0}\r\nConnection: Close\r\n\r\n", hostString2 ); - pageContent = DoSocketGet( hostIPEndPoint, getString ); - if ( pageContent != nullptr ) - { - Console::WriteLine( "Default HTML page on {0} is:\r\n{1}", hostString2, pageContent ); - } - -// -// - } - catch ( SocketException^ e ) - { - Console::WriteLine( "SocketException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Message : {0}", e->Message ); - } - -} - -String^ DoSocketGet( IPEndPoint^ hostIPEndPoint, String^ getString ) -{ - try - { - // Set up variables and String to write to the server. - Encoding^ ASCII = Encoding::ASCII; - - array^ byteGet = ASCII->GetBytes( getString ); - array^ recvBytes = gcnew array(256); - String^ strRetPage = nullptr; - // Create the Socket for sending data over TCP. - Socket^ mySocket = gcnew Socket( AddressFamily::InterNetwork, - SocketType::Stream,ProtocolType::Tcp ); - // Connect to host using IPEndPoint. - mySocket->Connect( hostIPEndPoint ); - // Send the GET text to the host. - mySocket->Send( byteGet, byteGet->Length, (SocketFlags)( 0 ) ); - // Receive the page, loop until all bytes are received. - Int32 byteCount = mySocket->Receive( recvBytes, recvBytes->Length, (SocketFlags)( 0 ) ); - strRetPage = String::Concat( strRetPage, ASCII->GetString( recvBytes, 0, byteCount ) ); - while ( byteCount > 0 ) - { - byteCount = mySocket->Receive( recvBytes, recvBytes->Length, (SocketFlags)( 0 ) ); - strRetPage = String::Concat( strRetPage, ASCII->GetString( recvBytes, 0, byteCount ) ); - } - return strRetPage; - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception : {0}", e->Message ); - Console::WriteLine( "WinSock Error : {0}", Convert::ToString( Marshal::GetLastWin32Error() ) ); - return nullptr; - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IPHostEntry_AddressList/CPP/iphostentry_addresslist.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IPHostEntry_AddressList/CPP/iphostentry_addresslist.cpp deleted file mode 100644 index f51adc5cf17f5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IPHostEntry_AddressList/CPP/iphostentry_addresslist.cpp +++ /dev/null @@ -1,59 +0,0 @@ -/* -This program demostrates 'AddressList' property of 'IPHostEntry' class. -It takes a URL from commandline(or uses default value) and obtains a -'IPHostEntry' Object* by calling 'GetHostByName' method of 'Dns' class and -prints the host name and IP addresses associated with the specified URL. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; - -// -void GetIpAddressList( String^ hostString ) -{ - try - { - // Get 'IPHostEntry' object containing information - // like host name, IP addresses, aliases for a host. - IPHostEntry^ hostInfo = Dns::GetHostByName( hostString ); - Console::WriteLine( "Host name : {0}", hostInfo->HostName ); - Console::WriteLine( "IP address List : " ); - for ( int index = 0; index < hostInfo->AddressList->Length; index++ ) - Console::WriteLine( hostInfo->AddressList[ index ] ); - } - catch ( SocketException^ e ) - { - Console::WriteLine( "SocketException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( ArgumentNullException^ e ) - { - Console::WriteLine( "ArgumentNullException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} -// - -int main() -{ - String^ hostString = " "; - - // Create an instance of HostInfoSample class. - Console::Write( "Type a URL(or press Enter for default, default is 'www.microsoft.net') : " ); - hostString = Console::ReadLine(); - if ( hostString->Length > 0 ) - GetIpAddressList( hostString ); - else - GetIpAddressList( "www.microsoft.net" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ISerializable Interface Example/CPP/iobjectreference.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ISerializable Interface Example/CPP/iobjectreference.cpp deleted file mode 100644 index abb2b85494bb7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ISerializable Interface Example/CPP/iobjectreference.cpp +++ /dev/null @@ -1,119 +0,0 @@ -// -using namespace System; -using namespace System::IO; -using namespace System::Collections; -using namespace System::Runtime::Serialization::Formatters::Binary; -using namespace System::Runtime::Serialization; - -ref class SingletonSerializationHelper; - -// There should be only one instance of this type per AppDomain. - -[Serializable] -public ref class Singleton sealed: public ISerializable -{ -private: - - // This is the one instance of this type. - static Singleton^ theOneObject = gcnew Singleton; - -public: - - // Here are the instance fields. - String^ someString; - Int32 someNumber; - -private: - - // Private constructor allowing this type to construct the singleton. - Singleton() - { - - // Do whatever is necessary to initialize the singleton. - someString = "This is a String* field"; - someNumber = 123; - } - -public: - - // A method returning a reference to the singleton. - static Singleton^ GetSingleton() - { - return theOneObject; - } - - // A method called when serializing a Singleton. - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::SerializationFormatter)] - virtual void GetObjectData( SerializationInfo^ info, StreamingContext context ) - { - // Instead of serializing this Object*, we will - // serialize a SingletonSerializationHelp instead. - info->SetType( SingletonSerializationHelper::typeid ); - - // No other values need to be added. - } - - // NOTE: ISerializable*'s special constructor is NOT necessary - // because it's never called -}; - -[Serializable] -private ref class SingletonSerializationHelper sealed: public IObjectReference -{ -public: - - // This Object* has no fields (although it could). - // GetRealObject is called after this Object* is deserialized - virtual Object^ GetRealObject( StreamingContext context ) - { - // When deserialiing this Object*, return a reference to - // the singleton Object* instead. - return Singleton::GetSingleton(); - } -}; - -[STAThread] -int main() -{ - FileStream^ fs = gcnew FileStream( "DataFile.dat",FileMode::Create ); - try - { - // Construct a BinaryFormatter and use it - // to serialize the data to the stream. - BinaryFormatter^ formatter = gcnew BinaryFormatter; - - // Create an array with multiple elements refering to - // the one Singleton Object*. - array^a1 = {Singleton::GetSingleton(),Singleton::GetSingleton()}; - - // This displays S"True". - Console::WriteLine( "Do both array elements refer to the same Object? {0}", (a1[ 0 ] == a1[ 1 ]) ); - - // Serialize the array elements. - formatter->Serialize( fs, a1 ); - - // Deserialize the array elements. - fs->Position = 0; - array^a2 = (array^)formatter->Deserialize( fs ); - - // This displays S"True". - Console::WriteLine( "Do both array elements refer to the same Object? {0}", (a2[ 0 ] == a2[ 1 ]) ); - - // This displays S"True". - Console::WriteLine( "Do all array elements refer to the same Object? {0}", (a1[ 0 ] == a2[ 0 ]) ); - } - catch ( SerializationException^ e ) - { - Console::WriteLine( "Failed to serialize. Reason: {0}", e->Message ); - throw; - } - finally - { - fs->Close(); - } - - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IServerChannelSinkProvider_CreateSink/CPP/iserverchannelsinkprovider_3.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IServerChannelSinkProvider_CreateSink/CPP/iserverchannelsinkprovider_3.cpp deleted file mode 100644 index a648e8a91ee04..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IServerChannelSinkProvider_CreateSink/CPP/iserverchannelsinkprovider_3.cpp +++ /dev/null @@ -1,71 +0,0 @@ -// System.Runtime.Remoting.Channels.IServerChannelSinkProvider.CreateSink() -// System.Runtime.Remoting.Channels.IServerChannelSinkProvider.GetChannelData() -// System.Runtime.Remoting.Channels.IServerChannelSinkProvider.Next - -/* The following program demonstrates 'CreateSink', 'GetChannelData' - methods and 'Next' property of - 'System.Runtime.Remoting.Channels.ServerChannelSinkStack' class. - It chains together two different sink providers using the 'Next' - property. The return value of 'GetChannelData()' is displayed on - the console. -*/ - -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; - -ref class MyServerChannelSinkStack -{ -public: - IServerChannelSinkProvider^ myIServerChannelSinkProvider; - IServerChannelSinkProvider^ myIServerChannelSinkProvider1; - IServerChannelSink^ myIServerChannelSink; - IServerChannelSink^ myIServerChannelSink1; - - void MyCreateSinkMethod() - { - Console::Write( "Press Enter to set sink providers and create sinks" ); - Console::ReadLine(); - -// -// - // Create the sink providers. - myIServerChannelSinkProvider = gcnew SoapServerFormatterSinkProvider; - myIServerChannelSinkProvider1 = gcnew BinaryServerFormatterSinkProvider; - // Create the channel sinks. - myIServerChannelSink = myIServerChannelSinkProvider->CreateSink( gcnew HttpChannel ); - myIServerChannelSinkProvider->Next = myIServerChannelSinkProvider1; - - myIServerChannelSink1 = myIServerChannelSinkProvider->Next->CreateSink( gcnew HttpChannel ); -// -// - Console::WriteLine( "Two sink providers have been set" ); - } - - void MyGetChannelDataMethod() - { -// - array^channelUri = gcnew array(5); - IChannelDataStore^ myIChannelDataStore = gcnew ChannelDataStore( channelUri ); - IChannelDataStore^ myIChannelDataStore1 = gcnew ChannelDataStore( channelUri ); - myIServerChannelSinkProvider->GetChannelData( myIChannelDataStore ); - myIServerChannelSinkProvider1->GetChannelData( myIChannelDataStore1 ); -// - - Console::WriteLine( "Number of Uris in first IChannelDataStore: {0}", - myIChannelDataStore->ChannelUris->Length ); - Console::WriteLine( "Number of Uris in second IChannelDataStore: {0}", - myIChannelDataStore1->ChannelUris->Length ); - } -}; - -int main() -{ - MyServerChannelSinkStack^ myNewServerChannelSinkStack = - gcnew MyServerChannelSinkStack; - myNewServerChannelSinkStack->MyCreateSinkMethod(); - myNewServerChannelSinkStack->MyGetChannelDataMethod(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ISponsor_Client/CPP/isponsor_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ISponsor_Client/CPP/isponsor_client.cpp deleted file mode 100644 index 950c783ff0b0f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ISponsor_Client/CPP/isponsor_client.cpp +++ /dev/null @@ -1,68 +0,0 @@ -// System::Runtime::Remoting::Lifetime.ISponsor -// System::Runtime::Remoting::Lifetime.ISponsor.Renewal - -/* -The following program demonstrates the 'ISponsor' interface and its 'Renewal' method. -It defines 'MyClientSponsor' which implements 'ISponsor' interface. The server and -client is created. The client registers a sponsor that(after the initial lease time) -renews the lease at different time from that specified in the remote type. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Lifetime; -using namespace System::Security::Permissions; - -// -// -public ref class MyClientSponsor: public MarshalByRefObject, public ISponsor -{ -private: - DateTime lastRenewal; - -public: - MyClientSponsor() - { - lastRenewal = DateTime::Now; - } - - [SecurityPermissionAttribute(SecurityAction::LinkDemand,Flags=SecurityPermissionFlag::Infrastructure)] - virtual TimeSpan Renewal( ILease^ /* lease */ ) - { - Console::WriteLine( "Request to renew the lease time." ); - Console::WriteLine( "Time since last renewal: {0}", - DateTime::Now - lastRenewal ); - - lastRenewal = DateTime::Now; - return TimeSpan::FromSeconds( 20 ); - } -}; -// -// - -int main() -{ - // Load the configuration file. - RemotingConfiguration::Configure( "ISponsor_Client.config" ); - ClientActivatedType ^ clientActivatedObject = gcnew ClientActivatedType; - - ILease^ serverLease = (ILease^)( RemotingServices::GetLifetimeService( - clientActivatedObject ) ); - MyClientSponsor^ sponsor = gcnew MyClientSponsor; - - // Note: If you don't pass an initial time, the first request will be taken - // from the LeaseTime settings specified in the ISponsor_Server.config file. - serverLease->Register( sponsor ); - - Console::WriteLine( "Client-activated Object.\n {0}", - clientActivatedObject->RemoteMethod() ); - Console::WriteLine( "Press enter to end the client application domain." ); - Console::ReadLine(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ISponsor_Client/CPP/isponsor_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ISponsor_Client/CPP/isponsor_server.cpp deleted file mode 100644 index a9a6b502a421d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ISponsor_Client/CPP/isponsor_server.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; - -int main() -{ - RemotingConfiguration::Configure( "ISponsor_Server.config" ); - - Console::WriteLine( "The server is listening. Press Enter to exit...." ); - Console::ReadLine(); - - Console::WriteLine( "Garbage Collecting." ); - GC::Collect(); - GC::WaitForPendingFinalizers(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ISponsor_Client/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/ISponsor_Client/CPP/makefile deleted file mode 100644 index 04526f1be0c1c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ISponsor_Client/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: isponsor_client.exe isponsor_server.exe - -isponsor_client.exe: isponsor_client.cpp remotetype.dll - cl /clr:pure isponsor_client.cpp - -isponsor_server.exe: isponsor_server.cpp remotetype.dll - cl /clr:pure isponsor_server.cpp - -remotetype.dll: remotetype.cpp - cl /clr:pure /LD remotetype.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ISponsor_Client/CPP/remotetype.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ISponsor_Client/CPP/remotetype.cpp deleted file mode 100644 index e5ecc3d8df9fa..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ISponsor_Client/CPP/remotetype.cpp +++ /dev/null @@ -1,36 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting::Lifetime; -using namespace System::Security::Principal; - -public ref class ClientActivatedType: public MarshalByRefObject -{ -public: - // Override the lease settings for this Object. - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual Object^ InitializeLifetimeService() override - { - ILease^ lease = (ILease^)( MarshalByRefObject::InitializeLifetimeService() ); - if ( lease->CurrentState == LeaseState::Initial ) - { - lease->InitialLeaseTime = TimeSpan::FromSeconds( 3 ); - lease->SponsorshipTimeout = TimeSpan::FromSeconds( 10 ); - lease->RenewOnCallTime = TimeSpan::FromSeconds( 2 ); - } - return lease; - } - - String^ RemoteMethod() - { - Console::WriteLine( "ClientActivatedType::RemoteMethod called." ); - - // Report our client identity name. - return "RemoteMethodCalled. User name : {0}",WindowsIdentity::GetCurrent()->Name; - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ITransportHeaders_Item/CPP/ITransportHeaders_3_Share.cs b/samples/snippets/cpp/VS_Snippets_Remoting/ITransportHeaders_Item/CPP/ITransportHeaders_3_Share.cs deleted file mode 100644 index 525cb3639ef9f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ITransportHeaders_Item/CPP/ITransportHeaders_3_Share.cs +++ /dev/null @@ -1,16 +0,0 @@ -/* Supporting file for the ITransportHeaders_3_Server.cs - */ -using System; - -public class MyHelloServer : MarshalByRefObject -{ - public MyHelloServer() - { - Console.WriteLine("HelloServer activated..."); - } - public String MyHelloMethod(String name) - { - Console.WriteLine("MyHelloServer.MyHelloMethod : {0}", name); - return "Hello " + name ; - } -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ITransportHeaders_Item/CPP/itransportheaders_3_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ITransportHeaders_Item/CPP/itransportheaders_3_server.cpp deleted file mode 100644 index e161a956e00e6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ITransportHeaders_Item/CPP/itransportheaders_3_server.cpp +++ /dev/null @@ -1,115 +0,0 @@ - - -// System.Runtime.Remoting.Channels.ITransportHeaders -// System.Runtime.Remoting.Channels.ITransportHeaders.Item -// System.Runtime.Remoting.Channels.ITransportHeaders.GetEnumerator() -/* The following program demonstrates the 'ITransportHeaders' interface, -its 'Item' property and 'GetEnumerator' method. It implements the 'Item' -property and 'GetEnumerator' method in a class derived from 'ITransportHeaders' -interface. It then adds a few headers to the header list and displays them. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -ref class MyITransportHeadersClass: public ITransportHeaders -{ -private: - - // - // - int myInt; - array^myDictionaryEntry; - -public: - MyITransportHeadersClass() - { - myInt = 0; - myDictionaryEntry = gcnew array(10); - } - - - property Object^ Item [Object^] - { - - // Implement the 'Item' property. - virtual Object^ get( Object^ myKey ) - { - if ( myKey != nullptr ) - { - for ( int i = 0; i <= myInt; i++ ) - if ( myDictionaryEntry[ i ].Key == myKey ) - return myDictionaryEntry[ i ].Value; - } - - return nullptr; - } - - virtual void set( Object^ myKey, Object^ value ) - { - myDictionaryEntry[ myInt ] = DictionaryEntry(myKey,value); - myInt++; - } - - } - - // Implement the 'GetEnumerator' method. - virtual IEnumerator^ GetEnumerator() - { - Hashtable^ myHashtable = gcnew Hashtable; - for ( int j = 0; j < myInt; j++ ) - myHashtable->Add( myDictionaryEntry[ j ].Key, myDictionaryEntry[ j ].Value ); - return myHashtable->GetEnumerator(); - } - - // - // -}; - -int main() -{ - try - { - - // Create and register a 'TcpChannel' object. - TcpChannel^ myTcpChannel = gcnew TcpChannel( 8085 ); - ChannelServices::RegisterChannel( myTcpChannel, false ); - RemotingConfiguration::RegisterWellKnownServiceType( MyHelloServer::typeid, "SayHello", WellKnownObjectMode::SingleCall ); - - // Create an instance of 'myITransportHeadersObj'. - MyITransportHeadersClass^ myITransportHeadersObj = gcnew MyITransportHeadersClass; - ITransportHeaders^ myITransportHeaders = dynamic_cast(myITransportHeadersObj); - - // Add items to the header list. - myITransportHeaders->default[ "Header1" ] = "TransportHeader1"; - myITransportHeaders->default[ "Header2" ] = "TransportHeader2"; - - // Get the 'ITranportHeader' item value with key 'Header2'. - Console::WriteLine( "ITransport Header item value with key 'Header2' is :{0}", myITransportHeaders->default[ "Header2" ] ); - IEnumerator^ myEnumerator = myITransportHeaders->GetEnumerator(); - Console::WriteLine( " -KEY- -VALUE-" ); - while ( myEnumerator->MoveNext() ) - { - - // Display the 'Key' and 'Value' of the current element. - Object^ myEntry = myEnumerator->Current; - DictionaryEntry myDictionaryEntry = *dynamic_cast(myEntry); - Console::WriteLine( " {0}: {1}", myDictionaryEntry.Key, myDictionaryEntry.Value ); - } - Console::WriteLine( "Hit to exit..." ); - Console::ReadLine(); - } - catch ( Exception^ ex ) - { - Console::WriteLine( "The following exception is raised on the server side: {0}", ex->Message ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ITransportHeaders_Item/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/ITransportHeaders_Item/CPP/makefile deleted file mode 100644 index bdb7b77d7421e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ITransportHeaders_Item/CPP/makefile +++ /dev/null @@ -1,8 +0,0 @@ -all: ITransportHeaders_3_Share.dll itransportheaders_3_server.exe - -ITransportHeaders_3_Share.dll: ITransportHeaders_3_Share.cs - csc /t:library ITransportHeaders_3_Share.cs - -ITransportHeaders_3_server.exe: itransportheaders_3_server.cpp ITransportHeaders_3_Share.dll - cl /clr itransportheaders_3_server.cpp - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/IWebProxy_Interface/CPP/iwebproxy_interface.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/IWebProxy_Interface/CPP/iwebproxy_interface.cpp deleted file mode 100644 index 51a46703a72dc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/IWebProxy_Interface/CPP/iwebproxy_interface.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* -This program demonstrates 'Credentials' property, 'GetProxy' and 'IsBypassed' methods of -IWebProxy* interface. -The 'WebProxy_Interface' class implements the 'IWebProxy*' interface. It provides an implementation for the -'GetProxy' and 'IsByPassed' methods and 'ICredentials*' property. The 'GetProxy' method returns the url -of the proxy server as specified in the constructor. The 'IsByPassed' method returns false indicating -that the proxy server must never be bypassed for any requested url. The 'ICredentials*' property stores -the credentials required by the proxy server to authenticate the actual user. -*/ - -#using - -using namespace System; -using namespace System::Net; - -// -// -// -public ref class WebProxy_Interface: public IWebProxy -{ -private: - // The credentials to be used with the web proxy. - ICredentials^ iCredentials; - - // Uri of the associated proxy server. - Uri^ webProxyUri; - -public: - WebProxy_Interface( Uri^ proxyUri ) - { - webProxyUri = proxyUri; - } - - property ICredentials^ Credentials - { - // Get and Set the Credentials property. - virtual ICredentials^ get() - { - return iCredentials; - } - virtual void set( ICredentials^ value ) - { - if ( iCredentials != value ) - { - iCredentials = value; - } - } - } - - // Return the web proxy for the specified destination (destUri). - virtual Uri^ GetProxy( Uri^ destUri ) - { - // Always use the same proxy. - return webProxyUri; - } - - // Return whether the web proxy should be bypassed for the specified destination (hostUri). - virtual bool IsBypassed( Uri^ hostUri ) - { - // Never bypass the proxy. - return false; - } -}; -// -// -// - -int main() -{ - // - WebProxy_Interface^ webProxy_Interface = gcnew WebProxy_Interface( gcnew Uri( "http://proxy.example.com" ) ); - - webProxy_Interface->Credentials = gcnew NetworkCredential( "myusername", "mypassword" ); - - Console::WriteLine( "The web proxy is : {0}", webProxy_Interface->GetProxy( gcnew Uri( "http://www.contoso.com" ) ) ); - - // Check if the webproxy can ne bypassed for the site "http://www.contoso.com". - if ( webProxy_Interface->IsBypassed( gcnew Uri( "http://www.contoso.com" ) ) ) - { - Console::WriteLine( "Web Proxy is by passed" ); - } - else - { - Console::WriteLine( "Web Proxy is not by passed" ); - } - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ImportCollection_6/CPP/StockQuoteService_cpp.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/ImportCollection_6/CPP/StockQuoteService_cpp.wsdl deleted file mode 100644 index ba2aaa247d148..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ImportCollection_6/CPP/StockQuoteService_cpp.wsdl +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - My first service - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ImportCollection_6/CPP/importcollection_6.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ImportCollection_6/CPP/importcollection_6.cpp deleted file mode 100644 index a896ff5bdcf91..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ImportCollection_6/CPP/importcollection_6.cpp +++ /dev/null @@ -1,71 +0,0 @@ -// System::Web::Services::Description.ImportCollection -// System::Web::Services::Description.ImportCollection::Item -// System::Web::Services::Description.ImportCollection::CopyTo -// System::Web::Services::Description.ImportCollection::Contains -// System::Web::Services::Description.ImportCollection::IndexOf -// System::Web::Services::Description.ImportCollection::Remove - -/* The following program demonstrates the methods 'CopyTo', 'Contains', 'IndexOf', 'Remove' -and property 'Item' of class 'ImportCollection'. -The program reads a 'WSDL' document and gets a 'ServiceDescription' instance -An 'ImportCollection' instance is then retrieved from this 'ServiceDescription' -instance and its members have been demonstrated. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Xml; -int main() -{ - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "StockQuoteService_cpp.wsdl" ); - Console::WriteLine( " ImportCollection Sample " ); - - // - // Get Import Collection. - ImportCollection^ myImportCollection = myServiceDescription->Imports; - Console::WriteLine( "Total Imports in the document = {0}", myServiceDescription->Imports->Count ); - - // Print 'Import' properties to console. - for ( int i = 0; i < myImportCollection->Count; ++i ) - Console::WriteLine( "\tImport Namespace : {0} Import Location : {1} ", - myImportCollection[ i ]->Namespace, myImportCollection[ i ]->Location ); - // - - // - array^myImports = gcnew array(myServiceDescription->Imports->Count); - - // Copy 'ImportCollection' to an array. - myServiceDescription->Imports->CopyTo( myImports, 0 ); - Console::WriteLine( "Imports that are copied to Importarray ..." ); - for ( int i = 0; i < myImports->Length; ++i ) - Console::WriteLine( "\tImport Namespace : {0} Import Location : {1} ", - myImports[ i ]->Namespace, myImports[ i ]->Location ); - // - - // - // - // - // Get Import by Index. - Import^ myImport = myServiceDescription->Imports[ myServiceDescription->Imports->Count - 1 ]; - Console::WriteLine( "Import by Index..." ); - if ( myImportCollection->Contains( myImport ) ) - { - Console::WriteLine( "Import Namespace ' {0} ' is found in 'ImportCollection'.", myImport->Namespace ); - Console::WriteLine( "Index of '{0}' in 'ImportCollection' = {1}", - myImport->Namespace, myImportCollection->IndexOf( myImport ) ); - Console::WriteLine( "Deleting Import from 'ImportCollection'..." ); - myImportCollection->Remove( myImport ); - if ( myImportCollection->IndexOf( myImport ) == -1 ) - Console::WriteLine( "Import is successfully removed from Import Collection." ); - } - // - // - // -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Importsample/CPP/importsample.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Importsample/CPP/importsample.cpp deleted file mode 100644 index 84b92d63c6bfd..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Importsample/CPP/importsample.cpp +++ /dev/null @@ -1,88 +0,0 @@ -// System::Web::Services::Description.ImportCollection->Add; -// System::Web::Services::Description.ImportCollection::Insert; -// System::Web::Services::Description.Import::Import(); -// System::Web::Services::Description.Import::Location; -// System::Web::Services::Description.Import::Namespace; -// System::Web::Services::Description.Import::ServiceDescription; -// System::Web::Services::Description.Import; - -/* The following example demonstrates the constructor 'Import()' and properties 'Namespace', 'Location', 'Namespace', -'ServiceDescription' of Import Class. Methods 'Add' and 'Insert' of Class 'ImportCollection' are also demonstrated. -This example uses a sample provided in WSDL specification to explain Import and ImportCollection. -It adds import instances to ImportCollection as suggested in the specification sample and enumerates the same to the console. -Note: This is an illustrative sample using an example from WSDL specification. The real world web service has been assumed. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -// -// -// -// Creates an Import object with namespace and location. -Import^ CreateImport( String^ targetNamespace, String^ targetlocation ) -{ - Import^ myImport = gcnew Import; - myImport->Location = targetlocation; - myImport->Namespace = targetNamespace; - return myImport; -} -// -// -// - -// -void PrintImportCollection( String^ fileName_wsdl ) -{ - // Read import collection properties from generated WSDL file. - ServiceDescription^ myServiceDescription1 = ServiceDescription::Read( fileName_wsdl ); - ImportCollection^ myImportCollection = myServiceDescription1->Imports; - Console::WriteLine( "Enumerating Import Collection for file ' {0}'...", fileName_wsdl ); - - // Print Import properties to console. - for ( int i = 0; i < myImportCollection->Count; ++i ) - { - Console::WriteLine( "Namespace : {0}", myImportCollection[ i ]->Namespace ); - Console::WriteLine( "Location : {0}", myImportCollection[ i ]->Location ); - Console::WriteLine( "ServiceDescription : {0}", myImportCollection[ i ]->ServiceDescription->Name ); - } -} -// - -int main() -{ - Console::WriteLine( "Import Sample" ); - - // - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "StockQuote_cpp.wsdl" ); - myServiceDescription->Imports->Add( CreateImport( "http://localhost/stockquote/schemas", "http://localhost/stockquote/stockquote_cpp.xsd" ) ); - // - - // Save the ServiceDescripition to an external file. - myServiceDescription->Write( "StockQuote_cpp.wsdl" ); - Console::WriteLine( "document 'StockQuote_cpp.wsdl'" ); - - // Print the import collection to the console. - PrintImportCollection( "StockQuote_cpp.wsdl" ); - - // - myServiceDescription = ServiceDescription::Read( "StockQuoteService_cpp.wsdl" ); - myServiceDescription->Imports->Insert( 0, CreateImport( "http://localhost/stockquote/definitions", "http://localhost/stockquote/stockquote_cpp.wsdl" ) ); - // - - // Save the ServiceDescripition to an external file. - myServiceDescription->Write( "StockQuoteService_cs::wsdl" ); - Console::WriteLine( "" ); - Console::WriteLine( "document 'StockQuoteService_cpp.wsdl'" ); - - //Print the import collection to the console. - PrintImportCollection( "StockQuoteService_cpp.wsdl" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_BeginInvoke/CPP/logicalmethodinfo_begininvoke.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_BeginInvoke/CPP/logicalmethodinfo_begininvoke.cpp deleted file mode 100644 index 052c76a6eb843..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_BeginInvoke/CPP/logicalmethodinfo_begininvoke.cpp +++ /dev/null @@ -1,123 +0,0 @@ -// System.Web.Services.Protocols.LogicalMethodInfo.BeginInvoke(object,object[],AsyncCallback,object) -// System.Web.Services.Protocols.LogicalMethodInfo.EndInvoke(object,IAsyncResult) - -/* The following example demonstrates 'BeginInvoke' and 'EndInvoke' methods of -'LogicalMethodInfo' class. The 'Add' method of Math web service is called in asynchronous mode. 'BeginInvoke' -begins asynchronous invocation of method and 'EndInvoke' terminates the invocation -started by 'BeginInvoke'. The return value returned by 'Endinvoke' is displayed. - -Note: The MyMath class is a proxy class generated by the Wsdl.exe utility for -the Math Web Service. This class can also be found in SoapHttpClientProtocol Class example. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Reflection; -using namespace System::Web::Services::Protocols; -using namespace System::Security::Permissions; - -// Automatically generated proxy class for Math Web service. -// This class can also be found in the SoapHttpClientProtocol class example. -namespace MyMath -{ - using namespace System::Diagnostics; - using namespace System::Xml::Serialization; - using namespace System::Web::Services::Protocols; - using namespace System::Web::Services; - - [System::Web::Services::WebServiceBindingAttribute( - Name="MyMathSoap",Namespace="http://tempuri.org/")] - public ref class MyMath: public System::Web::Services::Protocols::SoapHttpClientProtocol - { - public: - MyMath() - { - this->Url = "http://localhost/Math.asmx"; - } - - [System::Web::Services::Protocols::SoapDocumentMethodAttribute( - "http://tempuri.org/Add", - Use=System::Web::Services::Description::SoapBindingUse::Literal, - ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - int Add( int x, int y ) - { - array^ temp2 = { x, y }; - array^ results = this->Invoke( "Add", temp2 ); - return (int)( results[ 0 ] ); - } - - System::IAsyncResult^ BeginAdd( int x, int y, System::AsyncCallback^ callback, Object^ asyncState ) - { - array^ temp3 = {x,y}; - return this->BeginInvoke( "Add", temp3, callback, asyncState ); - } - - int EndAdd( System::IAsyncResult^ asyncResult ) - { - array^ results = this->EndInvoke( asyncResult ); - return (int)( results[ 0 ] ); - } - }; -} - -public ref class BeginInvokeClass -{ - // - // -public: - [PermissionSet(SecurityAction::Demand, Name="FullTrust")] - static void main() - { - // Get the type information. - // Note: The MyMath class is a proxy class generated by the Wsdl.exe - // utility for the Math Web service. This class can also be found in - // the SoapHttpClientProtocol class example. - Type^ myType = MyMath::MyMath::typeid; - - // Get the method info. - MethodInfo^ myBeginMethod = myType->GetMethod( "BeginAdd" ); - MethodInfo^ myEndMethod = myType->GetMethod( "EndAdd" ); - - // Create an instance of the LogicalMethodInfo class. - array^ temp0 = { myBeginMethod, myEndMethod }; - LogicalMethodInfo^ myLogicalMethodInfo = - ( LogicalMethodInfo::Create( temp0, LogicalMethodTypes::Async ) )[ 0 ]; - - // Get an instance of the proxy class. - MyMath::MyMath^ myMathService = gcnew MyMath::MyMath; - - // Call the MyEndIntimationMethod method to intimate the end of - // the asynchronous call. - AsyncCallback^ myAsyncCallback = gcnew AsyncCallback( MyEndIntimationMethod ); - - // Begin to invoke the Add method. - array^ temp1 = { 10, 10 }; - IAsyncResult^ myAsyncResult = myLogicalMethodInfo->BeginInvoke( - myMathService, temp1, myAsyncCallback, nullptr ); - - // Wait until invoke is complete. - myAsyncResult->AsyncWaitHandle->WaitOne(); - - // Get the result. - array^ myReturnValue; - myReturnValue = myLogicalMethodInfo->EndInvoke( myMathService, myAsyncResult ); - - Console::WriteLine( "Sum of 10 and 10 is {0}", myReturnValue[ 0 ] ); - } - - // This method will be called at the end of the asynchronous call. - static void MyEndIntimationMethod( IAsyncResult^ /*Result*/ ) - { - Console::WriteLine( "Asynchronous call on Add method finished." ); - } - // - // -}; - -int main() -{ - BeginInvokeClass::main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_Constructor/CPP/logicalmethodinfo_constructor.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_Constructor/CPP/logicalmethodinfo_constructor.cpp deleted file mode 100644 index 6845810ce5a2f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_Constructor/CPP/logicalmethodinfo_constructor.cpp +++ /dev/null @@ -1,66 +0,0 @@ - - -// All the following have been marked as 1 snippet : Snippet1 -// System::Web::Services::Protocols.LogicalMethodInfo::LogicalMethodInfo(MethodInfo) -// System::Web::Services::Protocols.LogicalMethodInfo::DeclaringType -// System::Web::Services::Protocols.LogicalMethodInfo::Parameters -// System::Web::Services::Protocols.LogicalMethodInfo::ReturnType -// System::Web::Services::Protocols.LogicalMethodInfo::Invoke(Object*, Object*->Item[]) -// System::Web::Services::Protocols.LogicalMethodInfo -/* -This following example demonstrates the constructor, 'DeclaringType', -'Parameters', 'ReturnType' properties and 'Invoke(Object*, Object*->Item[])', -'ToString()' methods of the 'LogicalMethodInfo' class. This example -displays the declaring type, parameters, return type of a method -named 'Add' in the class named 'MyService'. - -Note : The 'LogicalMethodInfo' class should only be used with -'SoapMessage'. 'SoapClientMessage' and 'SoapServerMessage' contain -a property named 'MethodInfo' which provides for an instance of -'LogicalMethodInfo'. If you are interested only in the reflection -of a type then use the 'System::Reflection' namespace and not this -class. This class gives information ab->Item[Out] the* method invoked for -a web service and hence should only be used as such. For example -purposes it is being showed in a more simplified scenario. -*/ -// -#using - -using namespace System; -using namespace System::Reflection; -using namespace System::Web::Services::Protocols; - -public ref class MyService -{ -public: - int Add( int xValue, int yValue ) - { - return (xValue + yValue); - } - -}; - -int main() -{ - Type^ myType = MyService::typeid; - MethodInfo^ myMethodInfo = myType->GetMethod( "Add" ); - LogicalMethodInfo^ myLogicalMethodInfo = gcnew LogicalMethodInfo( myMethodInfo ); - Console::WriteLine( "\nPrinting properties of method : {0}\n", myLogicalMethodInfo ); - Console::WriteLine( "\nThe declaring type of the method {0} is :\n", myLogicalMethodInfo->Name ); - Console::WriteLine( "\t {0}", myLogicalMethodInfo->DeclaringType ); - Console::WriteLine( "\nThe parameters of the method {0} are :\n", myLogicalMethodInfo->Name ); - array^myParameters = myLogicalMethodInfo->Parameters; - for ( int i = 0; i < myParameters->Length; i++ ) - { - Console::WriteLine( "\t {0}", String::Concat( myParameters[ i ]->Name, " : ", myParameters[ i ]->ParameterType ) ); - } - Console::WriteLine( "\nThe return type of the method {0} is :\n", myLogicalMethodInfo->Name ); - Console::WriteLine( "\t {0}", myLogicalMethodInfo->ReturnType ); - MyService^ service = gcnew MyService; - Console::WriteLine( "\nInvoking the method {0}\n", myLogicalMethodInfo->Name ); - array^values = gcnew array(2); - values[ 0 ] = 10; - values[ 1 ] = 10; - Console::WriteLine( "\tThe sum of 10 and 10 is : {0}", myLogicalMethodInfo->Invoke( service, values ) ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_Create1/CPP/logicalmethodinfo_create1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_Create1/CPP/logicalmethodinfo_create1.cpp deleted file mode 100644 index 3710797439f81..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_Create1/CPP/logicalmethodinfo_create1.cpp +++ /dev/null @@ -1,76 +0,0 @@ - - -// All the following have been marked as 1 snippet : Snippet1 -// System::Web::Services::Protocols.LogicalMethodInfo::Create(MethodInfo) -// System::Web::Services::Protocols.LogicalMethodInfo::Name -// System::Web::Services::Protocols.LogicalMethodInfo::InParameters -// System::Web::Services::Protocols.LogicalMethodInfo::OutParameters -// System::Web::Services::Protocols.LogicalMethodInfo::IsVoid -/* -This following example demonstrates the 'Name', -'InParameters', 'OutParameters', 'IsVoid' properties and -'Create(MethodInfo)' method of the 'LogicalMethodInfo' class. -This example displays the parameters, the in parameters and -[Out] parameters. - - -Note : The 'LogicalMethodInfo' class should only be used with -'SoapMessage'. 'SoapClientMessage' and 'SoapServerMessage' contain -a property named 'MethodInfo' which provides for an instance of -'LogicalMethodInfo'. If you are interested only in the reflection -of a type then use the 'System::Reflection' namespace and not this -class. This class gives information ab->Item[Out] the* method invoked for -a web service and hence should only be used as such. For example -purposes it is being showed in a more simplified scenario. -*/ -// -#using - -using namespace System; -using namespace System::Runtime::InteropServices; -using namespace System::Reflection; -using namespace System::Web::Services::Protocols; - -public ref class MyService -{ -public: - void MyMethod( int inParameter, [Out]interior_ptr outParameter ) - { - *outParameter = inParameter; - } -}; - -int main() -{ - Type^ myType = MyService::typeid; - MethodInfo^ myMethodInfo = myType->GetMethod( "MyMethod" ); - array^temparray = {myMethodInfo}; - LogicalMethodInfo^ myLogicalMethodInfo = (LogicalMethodInfo::Create( temparray ))[ 0 ]; - Console::WriteLine( "\nPrinting parameters for the method : {0}", myLogicalMethodInfo->Name ); - Console::WriteLine( "\nThe parameters of the method {0} are :\n", myLogicalMethodInfo->Name ); - array^myParameters = myLogicalMethodInfo->Parameters; - for ( int i = 0; i < myParameters->Length; i++ ) - { - Console::WriteLine( String::Concat( "\t ", myParameters[ i ]->Name, " : ", myParameters[ i ]->ParameterType ) ); - - } - Console::WriteLine( "\nThe in parameters of the method {0} are :\n", myLogicalMethodInfo->Name ); - myParameters = myLogicalMethodInfo->InParameters; - for ( int i = 0; i < myParameters->Length; i++ ) - { - Console::WriteLine( String::Concat( "\t ", myParameters[ i ]->Name, " : ", myParameters[ i ]->ParameterType ) ); - - } - Console::WriteLine( "\nThe out parameters of the method {0} are :\n", myLogicalMethodInfo->Name ); - myParameters = myLogicalMethodInfo->OutParameters; - for ( int i = 0; i < myParameters->Length; i++ ) - { - Console::WriteLine( String::Concat( "\t ", myParameters[ i ]->Name, " : ", myParameters[ i ]->ParameterType ) ); - - } - if ( myLogicalMethodInfo->IsVoid ) - Console::WriteLine( "\nThe return type is void" ); - else - Console::WriteLine( "\nThe return type is {0}", myLogicalMethodInfo->ReturnType ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_Create2/CPP/logicalmethodinfo_create2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_Create2/CPP/logicalmethodinfo_create2.cpp deleted file mode 100644 index c626ad55b86ce..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_Create2/CPP/logicalmethodinfo_create2.cpp +++ /dev/null @@ -1,78 +0,0 @@ -// System::Web::Services::Protocols.LogicalMethodInfo::Create(MethodInfo->Item[], LogicalMethodTypes) -// System::Web::Services::Protocols.LogicalMethodInfo::AsyncCallbackParameter -// System::Web::Services::Protocols.LogicalMethodInfo::AsyncStateParameter -// System::Web::Services::Protocols.LogicalMethodInfo::AsyncResultParameter -// System::Web::Services::Protocols.LogicalMethodInfo::BeginMethodInfo -// System::Web::Services::Protocols.LogicalMethodInfo::EndMethodInfo -// System::Web::Services::Protocols.LogicalMethodInfo::IsAsync -// System::Web::Services::Protocols.LogicalMethodTypes::Async - -/* -This following example demonstrates the 'AsyncCallbackParameter', -'AsyncResultParameter', 'AsyncStateParameter', 'BeginMethodInfo', -'EndMethodInfo', 'IsAsync' properties and -'Create(MethodInfo->Item[], LogicalMethodTypes)' method of the -'LogicalMethodInfo' class and the 'Async' enum member of the -'LogicalMethodTypes' enumeration. This example displays the callback, -result and state parameters for asynchronous methods. It also displays -the begin and end for such asynchronous methods. - -Note : The 'LogicalMethodInfo' class should only be used with -'SoapMessage'. 'SoapClientMessage' and 'SoapServerMessage' contain -a property named 'MethodInfo' which provides for an instance of -'LogicalMethodInfo'. If you are interested only in the reflection -of a type then use the 'System::Reflection' namespace and not this -class. This class gives information ab->Item[Out] the* method invoked for -a web service and hence should only be used as such. For example -purposes it is being showed in a more simplified scenario. -*/ - -// -#using -#using -#using -#using - -using namespace System; -using namespace System::Reflection; -using namespace System::Web::Services::Protocols; - -public ref class MyService: public SoapHttpClientProtocol -{ -public: - IAsyncResult^ BeginAdd( int xValue, int yValue, AsyncCallback^ callback, Object^ asyncState ) - { - array^temp0 = {xValue,yValue}; - return this->BeginInvoke( "Add", temp0, callback, asyncState ); - } - - int EndAdd( System::IAsyncResult^ asyncResult ) - { - array^results = this->EndInvoke( asyncResult ); - return *dynamic_cast(results[ 0 ]); - } -}; - -int main() -{ - Type^ myType = MyService::typeid; - MethodInfo^ myBeginMethod = myType->GetMethod( "BeginAdd" ); - MethodInfo^ myEndMethod = myType->GetMethod( "EndAdd" ); - array^temp0 = {myBeginMethod,myEndMethod}; - LogicalMethodInfo^ myLogicalMethodInfo = LogicalMethodInfo::Create( temp0, LogicalMethodTypes::Async )[ 0 ]; - Console::WriteLine( "\nThe asynchronous callback parameter of method {0} is :\n", myLogicalMethodInfo->Name ); - Console::WriteLine( "\t {0} : {1}", myLogicalMethodInfo->AsyncCallbackParameter->Name, myLogicalMethodInfo->AsyncCallbackParameter->ParameterType ); - Console::WriteLine( "\nThe asynchronous state parameter of method {0} is :\n", myLogicalMethodInfo->Name ); - Console::WriteLine( "\t {0} : {1}", myLogicalMethodInfo->AsyncStateParameter->Name, myLogicalMethodInfo->AsyncStateParameter->ParameterType ); - Console::WriteLine( "\nThe asynchronous result parameter of method {0} is :\n", myLogicalMethodInfo->Name ); - Console::WriteLine( "\t {0} : {1}", myLogicalMethodInfo->AsyncResultParameter->Name, myLogicalMethodInfo->AsyncResultParameter->ParameterType ); - Console::WriteLine( "\nThe begin method of the asynchronous method {0} is :\n", myLogicalMethodInfo->Name ); - Console::WriteLine( "\t {0}", myLogicalMethodInfo->BeginMethodInfo ); - Console::WriteLine( "\nThe end method of the asynchronous method {0} is :\n", myLogicalMethodInfo->Name ); - Console::WriteLine( "\t {0}", myLogicalMethodInfo->EndMethodInfo ); - if ( myLogicalMethodInfo->IsAsync ) - Console::WriteLine( "\n {0} is asynchronous", myLogicalMethodInfo->Name ); - else - Console::WriteLine( "\n {0} is synchronous", myLogicalMethodInfo->Name ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_GetCustomAttribute/CPP/logicalmethodinfo_getcustomattribute.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_GetCustomAttribute/CPP/logicalmethodinfo_getcustomattribute.cpp deleted file mode 100644 index ac1bdd162ab88..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_GetCustomAttribute/CPP/logicalmethodinfo_getcustomattribute.cpp +++ /dev/null @@ -1,124 +0,0 @@ -// System::Web::Services::Protocols.LogicalMethodTypes::Sync -// System::Web::Services::Protocols.LogicalMethodTypes::LogicalMethodTypes -// System::Web::Services::Protocols.LogicalMethodInfo::MethodInfo -// All the following have been grouped as one snippet : Snippet4 -// System::Web::Services::Protocols.LogicalMethodInfo::GetCustomAttribute(Type) -// System::Web::Services::Protocols.LogicalMethodInfo::GetCustomAttributes(Type) -// System::Web::Services::Protocols.LogicalMethodInfo::ReturnTypeCustomAttributeProvider -// System::Web::Services::Protocols.LogicalMethodInfo::CustomAttributeProvider - -/* -This following example demonstrates the 'MethodInfo', -'ReturnTypeCustomAttributeProvider', 'CustomAttributeProvider', -properties and 'GetCustomAttribute(Type)', -'GetCustomAttributes(Type)' methods of the 'LogicalMethodInfo' class -and 'Sync' enum member of 'LogicalMethodTypes' enumeration. -This example demonstrates custom attributes and return attributes of the -'Add' method. - -Note : The 'LogicalMethodInfo' class should only be used with -'SoapMessage'. 'SoapClientMessage' and 'SoapServerMessage' contain -a property named 'MethodInfo' which provides for an instance of -'LogicalMethodInfo'. If you are interested only in the reflection -of a type then use the 'System::Reflection' namespace and not this -class. This class gives information ab[Out] the* method invoked for -a web service and hence should only be used as such. For example -purposes it is being showed in a more simplified scenario. -*/ - -// -#using - -using namespace System; -using namespace System::Reflection; -using namespace System::Web::Services::Protocols; - -// Define a custom attribute with one named parameter. - -[AttributeUsage(AttributeTargets::Method|AttributeTargets::ReturnValue, -AllowMultiple=true)] -public ref class MyAttribute: public Attribute -{ -private: - String^ myName; - -public: - MyAttribute( String^ name ) - { - myName = name; - } - - property String^ Name - { - String^ get() - { - return myName; - } - } -}; - -public ref class MyService -{ -public: - - [MyAttribute("This is the first sample attribute")] - [MyAttribute("This is the second sample attribute")] - [returnvalue:MyAttribute("This is the return sample attribute")] - int Add( int xValue, int yValue ) - { - return (xValue + yValue); - } -}; - -int main() -{ - // - Type^ myType = MyService::typeid; - MethodInfo^ myMethodInfo = myType->GetMethod( "Add" ); - - // - // - // Create a synchronous 'LogicalMethodInfo' instance. - array^temparray = {myMethodInfo}; - LogicalMethodInfo^ myLogicalMethodInfo = (LogicalMethodInfo::Create( temparray, LogicalMethodTypes::Sync ))[ 0 ]; - // - // - - // Display the method for which the attributes are being displayed. - Console::WriteLine( "\nDisplaying the attributes for the method : {0}\n", myLogicalMethodInfo->MethodInfo ); - // - - // Displaying a custom attribute of type 'MyAttribute' - Console::WriteLine( "\nDisplaying attribute of type 'MyAttribute'\n" ); - Object^ attribute = myLogicalMethodInfo->GetCustomAttribute( MyAttribute::typeid ); - Console::WriteLine( (dynamic_cast(attribute))->Name ); - - // Display all custom attribute of type 'MyAttribute'. - Console::WriteLine( "\nDisplaying all attributes of type 'MyAttribute'\n" ); - array^attributes = myLogicalMethodInfo->GetCustomAttributes( MyAttribute::typeid ); - for ( int i = 0; i < attributes->Length; i++ ) - Console::WriteLine( (dynamic_cast(attributes[ i ]))->Name ); - - // Display all return attributes of type 'MyAttribute'. - Console::WriteLine( "\nDisplaying all return attributes of type 'MyAttribute'\n" ); - ICustomAttributeProvider^ myCustomAttributeProvider = myLogicalMethodInfo->ReturnTypeCustomAttributeProvider; - if ( myCustomAttributeProvider->IsDefined( MyAttribute::typeid, true ) ) - { - attributes = myCustomAttributeProvider->GetCustomAttributes( true ); - for ( int i = 0; i < attributes->Length; i++ ) - if ( attributes[ i ]->GetType()->Equals( MyAttribute::typeid ) ) - Console::WriteLine( (dynamic_cast(attributes[ i ]))->Name ); - } - - // Display all the custom attributes of type 'MyAttribute'. - Console::WriteLine( "\nDisplaying all attributes of type 'MyAttribute'\n" ); - myCustomAttributeProvider = myLogicalMethodInfo->CustomAttributeProvider; - if ( myCustomAttributeProvider->IsDefined( MyAttribute::typeid, true ) ) - { - attributes = myCustomAttributeProvider->GetCustomAttributes( true ); - for ( int i = 0; i < attributes->Length; i++ ) - if ( attributes[ i ]->GetType()->Equals( MyAttribute::typeid ) ) - Console::WriteLine( (dynamic_cast(attributes[ i ]))->Name ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_IsBeginMethod/CPP/logicalmethodinfo_isbeginmethod.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_IsBeginMethod/CPP/logicalmethodinfo_isbeginmethod.cpp deleted file mode 100644 index ce69fb86dfdf0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/LogicalMethodInfo_IsBeginMethod/CPP/logicalmethodinfo_isbeginmethod.cpp +++ /dev/null @@ -1,80 +0,0 @@ - - -// System.Web.Services.Protocols.LogicalMethodInfo.IsBeginMethod(MethodInfo) -// System.Web.Services.Protocols.LogicalMethodInfo.IsEndMethod(MethodInfo) -/* -The following example demonstrates 'IsBeginMethod' and 'IsEndMethod' methods of 'System.Web.Services.Protocols.LogicalMethodInfo' class. The type information of methods of Math web service is taken in a varible of type MethodInfo. Then 'IsBeginMethod' and 'IsEndMethod' is used to query on created MethodInfo variable to find whether the method is begin and end method for asynchronous invocation or not. -Note: The below MyMath class is a proxy class generated by the Wsdl.exe utility for the Math Web Service. This class can be found in SoapHttpClientProtocol Class example also. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Reflection; -using namespace System::Web::Services::Protocols; - -// Automatically generated proxy class for Math Web service. -// This class can also be found in SoapHttpClientProtocol class example. -namespace MyMath -{ -using namespace System::Diagnostics; -using namespace System::Xml::Serialization; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - - [System::Web::Services::WebServiceBindingAttribute(Name="MyMathSoap", - Namespace="http://tempuri.org/")] - public ref class MyMath: public System::Web::Services::Protocols::SoapHttpClientProtocol - { - public: - MyMath() - { - this->Url = "http://localhost/Math.asmx"; - } - - [System::Web::Services::Protocols::SoapDocumentMethodAttribute( - "http://tempuri.org/Add", - Use=System::Web::Services::Description::SoapBindingUse::Literal, - ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - int Add( int x, int y ) - { - array^temp0 = {x,y}; - array^results = this->Invoke( "Add", temp0 ); - return *dynamic_cast(results[ 0 ]); - } - - System::IAsyncResult^ BeginAdd( int x, int y, System::AsyncCallback^ callback, Object^ asyncState ) - { - array^temp1 = {x,y}; - return this->BeginInvoke( "Add", temp1, callback, asyncState ); - } - - int EndAdd( System::IAsyncResult^ asyncResult ) - { - array^results = this->EndInvoke( asyncResult ); - return *dynamic_cast(results[ 0 ]); - } - - }; - -} - -int main() -{ - // - // - // Get the type for the proxy class MyMath Web service. - // Note: The MyMath class is a proxy class generated by the Wsdl.exe - // utility for the Math Web service. This class can also be found in - // the SoapHttpClientProtocol class example. - Type^ myType = MyMath::MyMath::typeid; - MethodInfo^ myBeginMethod = myType->GetMethod( "BeginAdd" ); - MethodInfo^ myEndMethod = myType->GetMethod( "EndAdd" ); - MethodInfo^ myMethod = myType->GetMethod( "Add" ); - Console::WriteLine( "Is 'BeginAdd' a Begin Method : {0}", LogicalMethodInfo::IsBeginMethod( myBeginMethod ) ); - Console::WriteLine( "Is 'Add' a Begin Method : {0}", LogicalMethodInfo::IsBeginMethod( myMethod ) ); - Console::WriteLine( "Is 'EndAdd' an End Method : {0}", LogicalMethodInfo::IsEndMethod( myEndMethod ) ); - // - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MatchAttribute/CPP/SvcClient_MatchAttribute.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MatchAttribute/CPP/SvcClient_MatchAttribute.cpp deleted file mode 100644 index ae08b9bd29609..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MatchAttribute/CPP/SvcClient_MatchAttribute.cpp +++ /dev/null @@ -1,141 +0,0 @@ -/* - This program is used as a client of the client proxy class. -*/ - -// System.Web.Services.Protocols.MatchAttribute -// System.Web.Services.Protocols.MatchAttribute.MatchAttribute(string) -// System.Web.Services.Protocols.MatchAttribute.IgnoreCase -// System.Web.Services.Protocols.MatchAttribute.Pattern -// System.Web.Services.Protocols.MatchAttribute.Capture -// System.Web.Services.Protocols.MatchAttribute.Group -// System.Web.Services.Protocols.MatchAttribute.MaxRepeats - -/* - The following example demonstrates the constructor and 'IgnoreCase', - 'Pattern', 'Capture', 'Group', 'MaxRepeats' properties of the - 'MatchAttribute' class. This example shows a simple proxy that - parses the contents of a .html file which has been returned in - response to a web request. The web request which is a HTTP-GET - request is done behind the scenes in the 'Invoke' method of - 'HttpGetClientProtocol'. The .html file returned in response is - parsed with the help of 'MatchAttribute' class and the contents - are available in the 'Headers' instance returned by 'GetHeaders' - method. -*/ - -// -#using -#using - -using namespace System; -using namespace System::Web::Services::Protocols; - -// -// -// -// -// -// -public ref class Example_Headers -{ -public: - - [MatchAttribute("TITLE>(.*?)<")] - String^ Title; - - [MatchAttribute("",Pattern="h1>(.*?)<",IgnoreCase=true)] - String^ H1; - - [MatchAttribute("H2>((([^<,]*),?)+)<",Group=3,Capture=4)] - String^ Element; - - [MatchAttribute("H2>((([^<,]*),?){2,})<",Group=3,MaxRepeats=0)] - array^ Elements1; - - [MatchAttribute("H2>((([^<,]*),?){2,})<",Group=3,MaxRepeats=1)] - array^ Elements2; - - [MatchAttribute("H3 ([^=]*)=([^>]*)",Group=1)] - String^ Attribute; - - [MatchAttribute("H3 ([^=]*)=([^>]*)",Group=2)] - String^ Value; -}; -// -// -// -// -// -// - -public ref class MatchAttribute_Example: public HttpGetClientProtocol -{ -public: - MatchAttribute_Example() - { - Url = "http://localhost"; - } - - [HttpMethodAttribute(TextReturnReader::typeid,UrlParameterWriter::typeid)] - Example_Headers^ GetHeaders() - { - return ((Example_Headers^)(Invoke( "GetHeaders", ( Url + "/MyHeaders.html" ), - gcnew array(0) ))); - } - - System::IAsyncResult^ BeginGetHeaders( System::AsyncCallback^ callback, - Object^ asyncState ) - { - return BeginInvoke( "GetHeaders", ( Url + "/MyHeaders.html" ), - gcnew array(0), callback, asyncState ); - } - - Example_Headers^ EndGetHeaders( System::IAsyncResult^ asyncResult ) - { - return (Example_Headers^)(EndInvoke( asyncResult )); - } -}; -// - -public ref class SvcClient -{ -public: - static void main() - { - Example_Headers^ myHeaders; - MatchAttribute_Example^ mySample = gcnew MatchAttribute_Example; - myHeaders = mySample->GetHeaders(); - - Console::WriteLine( "\nThe Title html tag content is : {0}", - myHeaders->Title ); - - Console::WriteLine( "\nThe H1 html tag content is : {0}", - myHeaders->H1 ); - - Console::WriteLine( "\nThe fifth element in H2 html tag content is : {0}", - myHeaders->Element ); - - Console::WriteLine( "\nThe elements in the H2 html tag are :" + - " (MaxRepeats = 0)" ); - for ( int i = 0; i < myHeaders->Elements1->Length; i++ ) - { - Console::WriteLine( myHeaders->Elements1[ i ] ); - } - - Console::WriteLine( "\nThe elements in the H2 html tag are :" + - " (MaxRepeats = 1)" ); - for ( int i = 0; i < myHeaders->Elements2->Length; i++ ) - { - Console::WriteLine( myHeaders->Elements2[ i ] ); - } - - Console::WriteLine( "\nThe H3 html tag has attribute : {0} = {1}", - myHeaders->Attribute, myHeaders->Value ); - } -}; - -int main() -{ - SvcClient::main(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MatchAttribute/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/MatchAttribute/CPP/makefile deleted file mode 100644 index 99d1d96246779..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MatchAttribute/CPP/makefile +++ /dev/null @@ -1,7 +0,0 @@ -all : SvcClient_MatchAttribute.exe - -SvcClient_MatchAttribute.exe : SvcClient_MatchAttribute.cpp matchattribute.dll - cl /clr:pure SvcClient_MatchAttribute.cpp - -matchattribute.dll : matchattribute.cpp - cl /clr:pure /LD matchattribute.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MatchAttribute/CPP/matchattribute.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MatchAttribute/CPP/matchattribute.cpp deleted file mode 100644 index 93e7c98050706..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MatchAttribute/CPP/matchattribute.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#using - -using namespace System; - -public ref class NotMuchHere -{ -public: - static void Main() - { - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Message.Acknowledgment/CPP/message_acknowledgment.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Message.Acknowledgment/CPP/message_acknowledgment.cpp deleted file mode 100644 index d472ebf0ea77d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Message.Acknowledgment/CPP/message_acknowledgment.cpp +++ /dev/null @@ -1,145 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -ref class MyNewQueue -{ -public: - static void CreateQueue( String^ queuePath ) - { - try - { - if ( !MessageQueue::Exists( queuePath ) ) - { - MessageQueue::Create( queuePath ); - } - else - { - Console::WriteLine( "{0} already exists.", queuePath ); - } - } - catch ( MessageQueueException^ e ) - { - Console::WriteLine( e->Message ); - } - - } - - void SendMessage() - { - // Connect to a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Create a new message. - Message^ myMessage = gcnew Message( "Original Message" ); - myMessage->AdministrationQueue = gcnew MessageQueue( ".\\myAdministrationQueue" ); - myMessage->AcknowledgeType = (AcknowledgeTypes)(AcknowledgeTypes::PositiveReceive | AcknowledgeTypes::PositiveArrival); - - // Send the Order to the queue. - myQueue->Send( myMessage ); - return; - } - - String^ ReceiveMessage() - { - // Connect to the a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - myQueue->MessageReadPropertyFilter->CorrelationId = true; - array^p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - String^ returnString = nullptr; - try - { - // Receive and format the message. - Message^ myMessage = myQueue->Receive(); - - // Display message information. - Console::WriteLine( "____________________________________________" ); - Console::WriteLine( "Original message information--" ); - Console::WriteLine( "Body: {0}", myMessage->Body ); - Console::WriteLine( "Id: {0}", myMessage->Id ); - Console::WriteLine( "____________________________________________" ); - returnString = myMessage->Id; - } - catch ( MessageQueueException^ ) - { - // Handle Message Queuing exceptions. - } - // Handle invalid serialization format. - catch ( InvalidOperationException^ e ) - { - Console::WriteLine( e->Message ); - } - - // Catch other exceptions as necessary. - return returnString; - } - - void ReceiveAcknowledgment( String^ messageId, String^ queuePath ) - { - bool found = false; - MessageQueue^ queue = gcnew MessageQueue( queuePath ); - queue->MessageReadPropertyFilter->CorrelationId = true; - queue->MessageReadPropertyFilter->Acknowledgment = true; - try - { - while ( queue->PeekByCorrelationId( messageId ) != nullptr ) - { - Message^ myAcknowledgmentMessage = queue->ReceiveByCorrelationId( messageId ); - - // Output acknowledgment message information. The correlation Id is identical - // to the id of the original message. - Console::WriteLine( "Acknowledgment Message Information--" ); - Console::WriteLine( "Correlation Id: {0}", myAcknowledgmentMessage->CorrelationId ); - Console::WriteLine( "Id: {0}", myAcknowledgmentMessage->Id ); - Console::WriteLine( "Acknowledgment Type: {0}", myAcknowledgmentMessage->Acknowledgment ); - Console::WriteLine( "____________________________________________" ); - found = true; - } - } - catch ( InvalidOperationException^ e ) - { - // This exception would be thrown if there is no (further) acknowledgment message - // with the specified correlation Id. Only output a message if there are no messages; - // not if the loop has found at least one. - if ( found == false ) - { - Console::WriteLine( e->Message ); - } - - // Handle other causes of invalid operation exception. - } - - } - -}; - -int main() -{ - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Create new queues. - MyNewQueue::CreateQueue( ".\\myQueue" ); - MyNewQueue::CreateQueue( ".\\myAdministrationQueue" ); - - // Send messages to a queue. - myNewQueue->SendMessage(); - - // Receive messages from a queue. - String^ messageId = myNewQueue->ReceiveMessage(); - - // Receive acknowledgment message. - if ( messageId != nullptr ) - { - myNewQueue->ReceiveAcknowledgment( messageId, ".\\myAdministrationQueue" ); - } - - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Message.Body/CPP/message_sendreceive.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Message.Body/CPP/message_sendreceive.cpp deleted file mode 100644 index 1d933075840d7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Message.Body/CPP/message_sendreceive.cpp +++ /dev/null @@ -1,117 +0,0 @@ - - -// -#using -#using -#using - -using namespace System; -using namespace System::Messaging; -using namespace System::Drawing; -using namespace System::IO; -ref class Order -{ -public: - int orderId; - DateTime orderTime; -}; - -ref class MyNewQueue -{ -public: - static void CreateQueue( String^ queuePath ) - { - try - { - if ( !MessageQueue::Exists( queuePath ) ) - { - MessageQueue::Create( queuePath ); - } - else - { - Console::WriteLine( "{0} already exists.", queuePath ); - } - } - catch ( MessageQueueException^ e ) - { - Console::WriteLine( e->Message ); - } - - } - - void SendMessage() - { - try - { - // Create a new order and set values. - Order^ sentOrder = gcnew Order; - sentOrder->orderId = 3; - sentOrder->orderTime = DateTime::Now; - - // Connect to a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Create the new order. - Message^ myMessage = gcnew Message( sentOrder ); - - // Send the order to the queue. - myQueue->Send( myMessage ); - } - catch ( ArgumentException^ e ) - { - Console::WriteLine( e->Message ); - } - - return; - } - - void ReceiveMessage() - { - // Connect to the a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Set the formatter to indicate body contains an Order. - array^p = gcnew array(1); - p[ 0 ] = Order::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - try - { - // Receive and format the message. - Message^ myMessage = myQueue->Receive(); - Order^ myOrder = dynamic_cast(myMessage->Body); - - // Display message information. - Console::WriteLine( "Order ID: {0}", myOrder->orderId ); - Console::WriteLine( "Sent: {0}", myOrder->orderTime ); - } - catch ( MessageQueueException^ ) - { - // Handle Message Queuing exceptions. - } - // Handle invalid serialization format. - catch ( InvalidOperationException^ e ) - { - Console::WriteLine( e->Message ); - } - - // Catch other exceptions as necessary. - return; - } -}; - -int main() -{ - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Create a queue on the local computer. - MyNewQueue::CreateQueue( ".\\myQueue" ); - - // Send a message to a queue. - myNewQueue->SendMessage(); - - // Receive a message from a queue. - myNewQueue->ReceiveMessage(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Message.DefaultPropertiesToSend/CPP/message_defaultandpriority.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Message.DefaultPropertiesToSend/CPP/message_defaultandpriority.cpp deleted file mode 100644 index 9bf2333fbd8d1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Message.DefaultPropertiesToSend/CPP/message_defaultandpriority.cpp +++ /dev/null @@ -1,107 +0,0 @@ -// - -#using -#using - -using namespace System; -using namespace System::Messaging; - -/// -/// Provides a container class for the example. -/// -ref class MyNewQueue -{ - //************************************************** - // Sends a string message to a queue. - //************************************************** -public: - void SendMessage( MessagePriority priority, String^ messageBody ) - { - // Connect to a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Create a new message. - Message^ myMessage = gcnew Message; - if ( priority > MessagePriority::Normal ) - { - myMessage->Body = "High Priority: {0}",messageBody; - } - else - { - myMessage->Body = messageBody; - } - - // Set the priority of the message. - myMessage->Priority = priority; - - // Send the Order to the queue. - myQueue->Send( myMessage ); - - return; - } - - //************************************************** - // Receives a message. - //************************************************** - void ReceiveMessage() - { - // Connect to the a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Set the queue to read the priority. By default, it - // is not read. - myQueue->MessageReadPropertyFilter->Priority = true; - - // Set the formatter to indicate body contains a String^. - array^ p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - try - { - // Receive and format the message. - Message^ myMessage = myQueue->Receive(); - - // Display message information. - Console::WriteLine( "Priority: {0}", - myMessage->Priority ); - Console::WriteLine( "Body: {0}", - myMessage->Body ); - } - catch ( MessageQueueException^ ) - { - // Handle Message Queuing exceptions. - } - // Handle invalid serialization format. - catch ( InvalidOperationException^ e ) - { - Console::WriteLine( e->Message ); - } - - // Catch other exceptions as necessary. - - return; - } -}; - -//************************************************** -// Provides an entry point into the application. -// -// This example sends and receives a message from -// a queue. -//************************************************** -int main() -{ - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Send messages to a queue. - myNewQueue->SendMessage( MessagePriority::Normal, "First Message Body." ); - myNewQueue->SendMessage( MessagePriority::Highest, "Second Message Body." ); - - // Receive messages from a queue. - myNewQueue->ReceiveMessage(); - myNewQueue->ReceiveMessage(); - - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageBinding_sample/CPP/messagebinding_sample.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageBinding_sample/CPP/messagebinding_sample.cpp deleted file mode 100644 index 5210e7417e565..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageBinding_sample/CPP/messagebinding_sample.cpp +++ /dev/null @@ -1,85 +0,0 @@ - - -// System::Web::Services::Description.MessageBinding::MessageBinding(); -// System::Web::Services::Description.MessageBinding::Extensions; -// System::Web::Services::Description.MessageBinding::Name; -/* The following program demonstrates the abstract class 'MessageBinding', it's constructor MessageBinding() -and properties 'Extensions' and 'Name'. -'MessageBinding' is an abstract class from which 'InputBinding' , 'OutputBinding' are derived. -The program contains a utility function which could be used to create either an InputBinding or OutputBinding. -This generic nature is achieved by returning an instance of 'MessageBinding'. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -MessageBinding^ CreateInputOutputBinding( String^ myBindName, bool isInputBinding ) -{ - - // - // Value isInputBinding = true ---> return type = InputBinding. - // Value isInputBinding = false --> return type = OutputBinding. - // - // - MessageBinding^ myMessageBinding = nullptr; - switch ( isInputBinding ) - { - case true: - myMessageBinding = gcnew InputBinding; - Console::WriteLine( "Added an InputBinding" ); - break; - - case false: - myMessageBinding = gcnew OutputBinding; - Console::WriteLine( "Added an OutputBinding" ); - break; - } - // - myMessageBinding->Name = myBindName; - SoapBodyBinding^ mySoapBodyBinding = gcnew SoapBodyBinding; - mySoapBodyBinding->Use = SoapBindingUse::Literal; - myMessageBinding->Extensions->Add( mySoapBodyBinding ); - Console::WriteLine( "Added extensibility element of type : {0}", mySoapBodyBinding->GetType() ); - // - // - - return myMessageBinding; -} - - -// Used to create OperationBinding instances within Binding. -OperationBinding^ CreateOperationBinding( String^ myOperation, String^ targetNamespace ) -{ - // Create OperationBinding for Operation. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = myOperation; - - // Create InputBinding for operation. - InputBinding^ myInputBinding = dynamic_cast(CreateInputOutputBinding( nullptr, true )); - - // Create OutputBinding for operation. - OutputBinding^ myOutputBinding = dynamic_cast(CreateInputOutputBinding( nullptr, false )); - - // Add InputBinding and OutputBinding to OperationBinding. - myOperationBinding->Input = myInputBinding; - myOperationBinding->Output = myOutputBinding; - - // Create an extensibility element for SoapOperationBinding. - SoapOperationBinding^ mySoapOperationBinding = gcnew SoapOperationBinding; - mySoapOperationBinding->Style = SoapBindingStyle::Document; - mySoapOperationBinding->SoapAction = String::Concat( targetNamespace, myOperation ); - - // Add the extensibility element SoapOperationBinding to OperationBinding. - myOperationBinding->Extensions->Add( mySoapOperationBinding ); - return myOperationBinding; -} - -int main() -{ - /* OperationBinding* addOperationBinding = */ - CreateOperationBinding( "Add", "http://tempuri.org/" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageCollection/CPP/messagecollection.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageCollection/CPP/messagecollection.cpp deleted file mode 100644 index 078f4450a480b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageCollection/CPP/messagecollection.cpp +++ /dev/null @@ -1,80 +0,0 @@ -// System::Web::Services::Description.MessageCollection::CopyTo; -// System::Web::Services::Description.MessageCollection::Item Property(Int32); -// System::Web::Services::Description.MessageCollection::Item Property (String); -// System::Web::Services::Description.MessageCollection::Contains; -// System::Web::Services::Description.MessageCollection::IndexOf; -// System::Web::Services::Description.MessageCollection::Remove; - -/* The program reads a WSDL document S"MathService::wsdl" and gets a ServiceDescription instance. -A MessageCollection instance is then retrieved from this ServiceDescription instance and it's -members are demonstrated. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_1.wsdl" ); - Console::WriteLine( "" ); - Console::WriteLine( "MessageCollection Sample" ); - Console::WriteLine( "========================" ); - Console::WriteLine( "" ); - - // - // Get Message Collection. - MessageCollection^ myMessageCollection = myServiceDescription->Messages; - Console::WriteLine( "Total Messages in the document = {0}", myServiceDescription->Messages->Count ); - Console::WriteLine( "" ); - Console::WriteLine( "Enumerating Messages..." ); - Console::WriteLine( "" ); - - // Print messages to console. - for ( int i = 0; i < myMessageCollection->Count; ++i ) - Console::WriteLine( "Message Name : {0}", myMessageCollection[ i ]->Name ); - // - - // - // Create a Message Array. - array^myMessages = gcnew array(myServiceDescription->Messages->Count); - - // Copy MessageCollection to an array. - myServiceDescription->Messages->CopyTo( myMessages, 0 ); - Console::WriteLine( "" ); - Console::WriteLine( "Displaying Messages that were copied to Messagearray ..." ); - Console::WriteLine( "" ); - for ( int i = 0; i < myServiceDescription->Messages->Count; ++i ) - Console::WriteLine( "Message Name : {0}", myMessages[ i ]->Name ); - // - - // - // - // - // - // Get Message by Name = S"AddSoapIn". - Message^ myMessage = myServiceDescription->Messages[ "AddSoapIn" ]; - Console::WriteLine( "" ); - Console::WriteLine( "Getting Message = 'AddSoapIn' {by Name}" ); - if ( myMessageCollection->Contains( myMessage ) ) - { - Console::WriteLine( "" ); - - // Get Message Name = S"AddSoapIn" Index. - Console::WriteLine( "Message 'AddSoapIn' was found in Message Collection." ); - Console::WriteLine( "Index of 'AddSoapIn' in Message Collection = {0}", myMessageCollection->IndexOf( myMessage ) ); - Console::WriteLine( "Deleting Message from Message Collection..." ); - myMessageCollection->Remove( myMessage ); - if ( myMessageCollection->IndexOf( myMessage ) == -1 ) - Console::WriteLine( "Message 'AddSoapIn' was successfully removed from Message Collection." ); - } - // - // - // - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessagePartCollection/CPP/messagepartcollection.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessagePartCollection/CPP/messagepartcollection.cpp deleted file mode 100644 index 1b626e5d6ee7c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessagePartCollection/CPP/messagepartcollection.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// System::Web::Services::Description.MessagePartCollection::Item Property(Int32); -// System::Web::Services::Description.MessagePart::Message; -// System::Web::Services::Description.MessagePartCollection::CopyTo; -// System::Web::Services::Description.MessagePartCollection::Item Property (String); -// System::Web::Services::Description.MessagePartCollection::Contains; -// System::Web::Services::Description.MessagePartCollection::IndexOf; -// System::Web::Services::Description.MessagePartCollection::Remove; -// System::Web::Services::Description.MessagePartCollection; - -/* The program reads a wsdl document S"MathService::wsdl" and gets ServiceDescription instance. -A MessagePartCollection instance is then retrieved from each Message and it's members are demonstrated. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; -int main() -{ - Console::WriteLine( "" ); - Console::WriteLine( "MessagePartCollection Sample" ); - Console::WriteLine( "============================" ); - Console::WriteLine( "" ); - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService.wsdl" ); - - // Get the message collection. - MessageCollection^ myMessageCollection = myServiceDescription->Messages; - Console::WriteLine( "Total Messages in the document = {0}", myServiceDescription->Messages->Count ); - Console::WriteLine( "" ); - Console::WriteLine( "Enumerating PartCollection for each message..." ); - Console::WriteLine( "" ); - - // - // - // Get the message part collection for each message. - for ( int i = 0; i < myMessageCollection->Count; ++i ) - { - Console::WriteLine( "Message : {0}", myMessageCollection[ i ]->Name ); - - // Get the message part collection. - MessagePartCollection^ myMessagePartCollection = myMessageCollection[ i ]->Parts; - - // Display the part collection. - for ( int k = 0; k < myMessagePartCollection->Count; k++ ) - { - Console::WriteLine( "\t Part Name : {0}", myMessagePartCollection[ k ]->Name ); - Console::WriteLine( "\t Message Name : {0}", myMessagePartCollection[ k ]->Message->Name ); - } - Console::WriteLine( "" ); - } - // - // - - Console::WriteLine( "MessagePartCollection for the message AddHttpGetIn." ); - // - // - Message^ myLocalMessage = myServiceDescription->Messages[ "AddHttpPostOut" ]; - if ( myMessageCollection->Contains( myLocalMessage ) ) - { - Console::WriteLine( "Message : {0}", myLocalMessage->Name ); - - // Get the message part collection. - MessagePartCollection^ myMessagePartCollection = myLocalMessage->Parts; - array^myMessagePart = gcnew array(myMessagePartCollection->Count); - - // Copy the MessagePartCollection to an array. - myMessagePartCollection->CopyTo( myMessagePart, 0 ); - for ( int k = 0; k < myMessagePart->Length; k++ ) - Console::WriteLine( "\t Part Name : {0}", myMessagePartCollection[ k ]->Name ); - Console::WriteLine( "" ); - } - // - // - - // - // - // - Console::WriteLine( "Checking if message is AddHttpPostOut..." ); - Message^ myMessage = myServiceDescription->Messages[ "AddHttpPostOut" ]; - if ( myMessageCollection->Contains( myMessage ) ) - { - // Get the mssage part collection. - MessagePartCollection^ myMessagePartCollection = myMessage->Parts; - - // Get the part named Body. - MessagePart^ myMessagePart = myMessage->Parts[ "Body" ]; - if ( myMessagePartCollection->Contains( myMessagePart ) ) - { - // Get the part named Body. - Console::WriteLine( "Index of Body in MessagePart collection = {0}", myMessagePartCollection->IndexOf( myMessagePart ) ); - Console::WriteLine( "Deleting Body from MessagePart collection..." ); - myMessagePartCollection->Remove( myMessagePart ); - if ( myMessagePartCollection->IndexOf( myMessagePart ) == -1 ) - Console::WriteLine( "from the message AddHttpPostOut." ); - } - } - // - // - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessagePropertyFilter/CPP/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessagePropertyFilter/CPP/class1.cpp deleted file mode 100644 index 6f8df31e358ae..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessagePropertyFilter/CPP/class1.cpp +++ /dev/null @@ -1,930 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -namespace MessagePropertyFilterExample -{ - public ref class Order - { - private: - int orderIdValue; - DateTime orderTimeValue; - - public: - - property int OrderId - { - int get() - { - return orderIdValue; - } - - void set(int value) - { - orderIdValue = value; - } - } - - property DateTime OrderTime - { - DateTime get() - { - return orderTimeValue; - } - - void set(DateTime value) - { - orderTimeValue = value; - } - - } - }; - - public ref class OrderProcessor - { - public: - - // Creates a new queue-> - static void CreateQueue(String^ queuePath, - bool transactional) - { - if (!MessageQueue::Exists(queuePath)) - { - MessageQueue::Create(queuePath, transactional); - } - else - { - Console::WriteLine("{0} already exists.", queuePath); - } - } - - // Sends an Order to a queue-> - void SendMessage() - { - // Create a new order and set values. - Order^ sentOrder = gcnew Order; - sentOrder->OrderId = 3; - sentOrder->OrderTime = DateTime::Now; - - // Connect to a queue on the local computer. - MessageQueue^ queue = - gcnew MessageQueue(".\\orderQueue"); - - // Create the new order. - Message^ orderMessage = gcnew Message(sentOrder); - - // Label the message. - orderMessage->Label = "Order Message"; - - // Send the order to the queue-> - queue->Send(orderMessage); - } - - // Receives a message containing an order. - void ReceiveMessage() - { - // Connect to the a queue on the local computer. - MessageQueue^ queue = - gcnew MessageQueue(".\\orderQueue"); - - // Set the formatter to indicate - // the message body contains an order. - array ^targetTypes = gcnew array(1); - targetTypes[0] = Order::typeid; - queue->Formatter = - gcnew XmlMessageFormatter(targetTypes); - - // Declare the message. - Message^ orderMessage; - - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's AcknowledgeType property. - queue->MessageReadPropertyFilter-> - AcknowledgeType = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // AcknowledgeType property. - Console::WriteLine("Message.AcknowledgeType: {0}", - orderMessage->AcknowledgeType); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's AdministrationQueue property. - queue->MessageReadPropertyFilter-> - AdministrationQueue = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // AdministrationQueue property. - Console::WriteLine("Message.AdministrationQueue: {0}", - orderMessage->AdministrationQueue); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's AppSpecific property. - queue->MessageReadPropertyFilter->AppSpecific = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // AppSpecific property. - Console::WriteLine("Message.AppSpecific: {0}", - orderMessage->AppSpecific); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's ArrivedTime property. - queue->MessageReadPropertyFilter->ArrivedTime = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // ArrivedTime property. - Console::WriteLine("Message.ArrivedTime: {0}", - orderMessage->ArrivedTime); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's AttachSenderId property. - queue->MessageReadPropertyFilter->AttachSenderId = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // AttachSenderId property. - Console::WriteLine("Message.AttachSenderId: {0}", - orderMessage->AttachSenderId); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's Authenticated property. - queue->MessageReadPropertyFilter->Authenticated = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // Authenticated property. - Console::WriteLine("Message.Authenticated: {0}", - orderMessage->Authenticated); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's - // AuthenticationProviderName property. - queue->MessageReadPropertyFilter-> - AuthenticationProviderName = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // AuthenticationProviderName property. - Console::WriteLine( - "Message.AuthenticationProviderName: {0}", - orderMessage->AuthenticationProviderName); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's - // AuthenticationProviderType property. - queue->MessageReadPropertyFilter-> - AuthenticationProviderType = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // AuthenticationProviderType property. - Console::WriteLine( - "Message.AuthenticationProviderType: {0}", - orderMessage->AuthenticationProviderType); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's Body property. - queue->MessageReadPropertyFilter->Body = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's Body property. - Console::WriteLine("Message.Body: {0}", - orderMessage->Body); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's ConnectorType property. - queue->MessageReadPropertyFilter->ConnectorType = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // ConnectorType property. - Console::WriteLine("Message.ConnectorType: {0}", - orderMessage->ConnectorType); - - // - // - // Set the filter's DefaultBodySize - // property to 2048 bytes. - queue->MessageReadPropertyFilter-> - DefaultBodySize = 2048; - - // Display the new value of the filter's - // DefaultBodySize property. - Console::WriteLine( - "MessageReadPropertyFilter.DefaultBodySize: {0}", - queue->MessageReadPropertyFilter->DefaultBodySize); - - // - // - // Set the filter's DefaultExtensionSize - // property to 1024 bytes. - queue->MessageReadPropertyFilter-> - DefaultExtensionSize = 1024; - - // Display the new value of the filter's - // DefaultExtensionSize property. - Console::WriteLine( - "MessageReadPropertyFilter." - "DefaultExtensionSize: {0}", - queue->MessageReadPropertyFilter-> - DefaultExtensionSize); - - // - // - // Set the filter's DefaultLabelSize - // property to 1024 bytes. - queue->MessageReadPropertyFilter-> - DefaultLabelSize = 1024; - - // Display the new value of the filter's - // DefaultLabelSize property. - Console::WriteLine( - "MessageReadPropertyFilter.DefaultLabelSize: {0}", - queue->MessageReadPropertyFilter->DefaultLabelSize); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's DestinationQueue property. - queue->MessageReadPropertyFilter-> - DestinationQueue = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // Destinationqueue->QueueName property. - Console::WriteLine( - "Message.Destinationqueue->QueueName: {0}", - orderMessage->DestinationQueue->QueueName); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's - // DestinationSymmetricKey property. - queue->MessageReadPropertyFilter-> - DestinationSymmetricKey = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // DestinationSymmetricKey property. - Console::WriteLine( - "Message.DestinationSymmetricKey: {0}", - orderMessage->DestinationSymmetricKey); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's DigitalSignature property. - queue->MessageReadPropertyFilter-> - DigitalSignature = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // DigitalSignature property. - Console::WriteLine("Message.DigitalSignature: {0}", - orderMessage->DigitalSignature); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's EncryptionAlgorithm property. - queue->MessageReadPropertyFilter-> - EncryptionAlgorithm = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // EncryptionAlgorithm property. - Console::WriteLine("Message.EncryptionAlgorithm: {0}", - orderMessage->EncryptionAlgorithm); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's Extension property. - queue->MessageReadPropertyFilter->Extension = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's Extension property. - Console::WriteLine("Message.Extension: {0}", - orderMessage->Extension); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's HashAlgorithm property. - queue->MessageReadPropertyFilter->HashAlgorithm = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // HashAlgorithm property. - Console::WriteLine("Message.HashAlgorithm: {0}", - orderMessage->HashAlgorithm); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's Id property. - queue->MessageReadPropertyFilter->Id = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's Id property. - Console::WriteLine("Message.Id: {0}", orderMessage->Id); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's Label property. - queue->MessageReadPropertyFilter->Label = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's Label property. - Console::WriteLine("Message.Label: {0}", - orderMessage->Label); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's MessageType property. - queue->MessageReadPropertyFilter->MessageType = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // MessageType property. - Console::WriteLine("Message.MessageType: {0}", - orderMessage->MessageType); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's Recoverable property. - queue->MessageReadPropertyFilter->Recoverable = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // Recoverable property. - Console::WriteLine("Message.Recoverable: {0}", - orderMessage->Recoverable); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's ResponseQueue property. - queue->MessageReadPropertyFilter->ResponseQueue = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // Responsequeue->QueueName property. - if (orderMessage->ResponseQueue != nullptr) - { - Console::WriteLine( - "Message.Responsequeue->QueueName: {0}", - orderMessage->ResponseQueue->QueueName); - } - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's SenderCertificate property. - queue->MessageReadPropertyFilter-> - SenderCertificate = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // SenderCertificate property. - Console::WriteLine("Message.SenderCertificate: {0}", - orderMessage->SenderCertificate); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's SenderId property. - queue->MessageReadPropertyFilter->SenderId = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's SenderId property. - Console::WriteLine("Message.SenderId: {0}", - orderMessage->SenderId); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's SenderVersion property. - queue->MessageReadPropertyFilter->SenderVersion = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // SenderVersion property. - Console::WriteLine("Message.SenderVersion: {0}", - orderMessage->SenderVersion); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's SentTime property. - queue->MessageReadPropertyFilter->SentTime = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's SentTime property. - Console::WriteLine("Message.SentTime: {0}", - orderMessage->SentTime); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's SourceMachine property. - queue->MessageReadPropertyFilter->SourceMachine = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // SourceMachine property. - Console::WriteLine("Message.SourceMachine: {0}", - orderMessage->SourceMachine); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's TimeToBeReceived property. - queue->MessageReadPropertyFilter-> - TimeToBeReceived = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // TimeToBeReceived property. - Console::WriteLine("Message.TimeToBeReceived: {0}", - orderMessage->TimeToBeReceived); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's TimeToReachQueue property. - queue->MessageReadPropertyFilter-> - TimeToReachQueue = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // TimeToReachQueue property. - Console::WriteLine("Message.TimeToReachQueue: {0}", - orderMessage->TimeToReachQueue); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's UseAuthentication property. - queue->MessageReadPropertyFilter-> - UseAuthentication = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // UseAuthentication property. - Console::WriteLine("Message.UseAuthentication: {0}", - orderMessage->UseAuthentication); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's UseDeadLetterQueue property. - queue->MessageReadPropertyFilter-> - UseDeadLetterQueue = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // UseDeadLetterQueue property. - Console::WriteLine("Message.UseDeadLetterQueue: {0}", - orderMessage->UseDeadLetterQueue); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's UseEncryption property. - queue->MessageReadPropertyFilter->UseEncryption = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // UseEncryption property. - Console::WriteLine("Message.UseEncryption: {0}", - orderMessage->UseEncryption); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's UseJournalQueue property. - queue->MessageReadPropertyFilter-> - UseJournalQueue = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // UseJournalQueue property. - Console::WriteLine("Message.UseJournalQueue: {0}", - orderMessage->UseJournalQueue); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's UseTracing property. - queue->MessageReadPropertyFilter->UseTracing = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // UseTracing property. - Console::WriteLine("Message.UseTracing: {0}", - orderMessage->UseTracing); - - // - // - // Set all of the queue's MessageReadPropertyFilter - // Boolean properties to false. - queue->MessageReadPropertyFilter->ClearAll(); - - // - // - // Set all of the queue's MessageReadPropertyFilter - // properties to their defaults. - queue->MessageReadPropertyFilter->SetDefaults(); - - // - // - // Set all of the queue's MessageReadPropertyFilter - // Boolean properties to true. - queue->MessageReadPropertyFilter->SetAll(); - - // - // - // Assign the queue a new MessageReadPropertyFilter. - queue->MessageReadPropertyFilter = - gcnew MessagePropertyFilter; - - // - // Receive the message. This will remove the message - // from the queue-> - orderMessage = - queue->Receive(TimeSpan::FromSeconds(10.0)); - } - - // Sends an order to a transactional queue-> - void SendMessageToTransQueue() - { - // Create a new order and set values. - Order^ sentOrder = gcnew Order; - sentOrder->OrderId = 3; - sentOrder->OrderTime = DateTime::Now; - - // Connect to a queue on the local computer. - MessageQueue^ queue = - gcnew MessageQueue(".\\orderTransQueue"); - - // Create the new order. - Message^ orderMessage = gcnew Message(sentOrder); - - // Create a message queuing transaction-> - MessageQueueTransaction^ transaction = - gcnew MessageQueueTransaction; - - try - { - // Begin a transaction-> - transaction->Begin(); - - // Send the order to the queue-> - queue->Send(orderMessage, transaction); - - // Commit the transaction-> - transaction->Commit(); - } - catch (MessageQueueException^ ex) - { - // Abort the transaction-> - transaction->Abort(); - - // Propagate the exception. - throw; - } - finally - { - // Delete the transaction object. - delete transaction; - } - } - - // Receives a message containing an order. - void ReceiveMessageFromTransQueue() - { - // Connect to the a queue on the local computer. - MessageQueue^ queue = - gcnew MessageQueue(".\\orderTransQueue"); - - // Set the formatter to indicate the - // message body contains an order. - array ^targetTypes = gcnew array(1); - targetTypes[0] = Order::typeid; - queue->Formatter = - gcnew XmlMessageFormatter(targetTypes); - - // Declare the message. - Message^ orderMessage; - - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's IsFirstInTransaction property. - queue->MessageReadPropertyFilter-> - IsFirstInTransaction = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // IsFirstInTransaction property. - Console::WriteLine("Message.IsFirstInTransaction: {0}", - orderMessage->IsFirstInTransaction); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's IsLastInTransaction property. - queue->MessageReadPropertyFilter-> - IsLastInTransaction = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // IsLastInTransaction property. - Console::WriteLine("Message.IsLastInTransaction: {0}", - orderMessage->IsLastInTransaction); - - // - // - // Set the queue's MessageReadPropertyFilter property - // to enable the message's TransactionId property. - queue->MessageReadPropertyFilter->TransactionId = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // TransactionId property. - Console::WriteLine("Message.TransactionId: {0}", - orderMessage->TransactionId); - - // - // - // Set the queue's MessageReadPropertyFilter property to - // enable the message's TransactionStatusQueue property. - queue->MessageReadPropertyFilter-> - TransactionStatusQueue = true; - - // Peek at the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Peek(TimeSpan::FromSeconds(10.0)); - - // Display the value of the message's - // TransactionStatusqueue->QueueName property. - Console::WriteLine( - "Message.TransactionStatusqueue->QueueName: {0}", - orderMessage->TransactionStatusQueue->QueueName); - - // - // Create a message queuing transaction-> - MessageQueueTransaction^ transaction = - gcnew MessageQueueTransaction; - - try - { - // Begin a transaction-> - transaction->Begin(); - - // Receive the message. Time out after ten seconds - // in case the message was not delivered. - orderMessage = queue->Receive( - TimeSpan::FromSeconds(10.0), transaction); - - // Commit the transaction-> - transaction->Commit(); - } - catch (MessageQueueException^ ex) - { - // Abort the transaction-> - transaction->Abort(); - - // Propagate the exception. - throw; - } - finally - { - // Delete the transaction object. - delete transaction; - } - } - }; -} - -int main() -{ - // Create a new instance of the class. - MessagePropertyFilterExample::OrderProcessor^ processor = - gcnew MessagePropertyFilterExample::OrderProcessor; - - try - { - // Create a non-transactional queue on the local computer. - // Note that the queue might not be immediately accessible, - //and therefore this example might throw an exception of type - // System.Messaging.MessageQueueException when trying to send - // a message to the newly created queue-> - MessagePropertyFilterExample:: - OrderProcessor::CreateQueue(".\\orderQueue", false); - - // Send a message to a queue-> - processor->SendMessage(); - - // Receive a message from a queue-> - processor->ReceiveMessage(); - - // Create a transactional queue on the local computer. - MessagePropertyFilterExample:: - OrderProcessor::CreateQueue(".\\orderTransQueue", true); - - // Send a message to a transactional queue-> - processor->SendMessageToTransQueue(); - - // Receive a message from a transactional queue-> - processor->ReceiveMessageFromTransQueue(); - } - catch (MessageQueueException^ ex) - { - // Write the exception information to the console. - Console::WriteLine(ex); - } -} - -// - -//output: -// -//.\orderQueue already exists. -//Message.AcknowledgeType: None -//Message.AdministrationQueue: -//Message.AppSpecific: 0 -//Message.ArrivedTime: 13.11.2004 14:42:30 -//Message.AttachSenderId: True -//Message.Authenticated: False -//Message.AuthenticationProviderName: -//Message.AuthenticationProviderType: None -//Message.Body: Order -//Message.ConnectorType: 00000000-0000-0000-0000-000000000000 -//MessageReadPropertyFilter.DefaultBodySize: 2048 -//MessageReadPropertyFilter.DefaultExtensionSize: 1024 -//MessageReadPropertyFilter.DefaultLabelSize: 1024 -//Message.Destinationqueue->QueueName: orderqueue -//Message.DestinationSymmetricKey: System.Byte[] -//Message.DigitalSignature: System.Byte[] -//Message.EncryptionAlgorithm: None -//Message.Extension: System.Byte[] -//Message.HashAlgorithm: None -//Message.Id: f2c7b57e-da35-4596-8b30-3b2ce0dd3756\2058 -//Message.Label: Order Message -//Message.MessageType: Normal -//Message.Recoverable: False -//Message.SenderCertificate: System.Byte[] -//Message.SenderId: System.Byte[] -//Message.SenderVersion: 16 -//Message.SentTime: 13.11.2004 14:42:30 -//Message.SourceMachine: ulkdev1 -//Message.TimeToBeReceived: 49710.06:28:15 -//Message.TimeToReachQueue: 4.00:00:00 -//Message.UseAuthentication: False -//Message.UseDeadLetterQueue: False -//Message.UseEncryption: False -//Message.UseJournalQueue: False -//Message.UseTracing: False -//.\orderTransQueue already exists. -//Message.IsFirstInTransaction: True -//Message.IsLastInTransaction: True -//Message.TransactionId: f2c7b57e-da35-4596-8b30-3b2ce0dd3756\2059 -//Message.TransactionStatusqueue->QueueName: private$\order_queue$ \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginPeek_TimeSpanStateObject/CPP/mqbeginpeek_timeoutstateobject.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginPeek_TimeSpanStateObject/CPP/mqbeginpeek_timeoutstateobject.cpp deleted file mode 100644 index f0d2909861803..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginPeek_TimeSpanStateObject/CPP/mqbeginpeek_timeoutstateobject.cpp +++ /dev/null @@ -1,75 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -ref class MyNewQueue -{ -public: - - // Represents a state object associated with each message. - static int messageNumber = 0; - - // Provides an event handler for the PeekCompleted - // event. - // - static void MyPeekCompleted( Object^ source, PeekCompletedEventArgs^ asyncResult ) - { - try - { - // Connect to the queue. - MessageQueue^ mq = dynamic_cast(source); - - // End the asynchronous peek operation. - Message^ m = mq->EndPeek( asyncResult->AsyncResult ); - - // Display message information on the screen, - // including the message number (state object). - Console::WriteLine( "Message: {0} {1}", asyncResult->AsyncResult->AsyncState, static_cast(m->Body) ); - - // Restart the asynchronous peek operation, with the - // same time-out. - mq->BeginPeek( TimeSpan(0,1,0), messageNumber++ ); - } - catch ( MessageQueueException^ e ) - { - if ( e->MessageQueueErrorCode == MessageQueueErrorCode::IOTimeout ) - { - Console::WriteLine( e ); - } - - // Handle other sources of MessageQueueException. - } - - // Handle other exceptions. - return; - } -}; - - -// Provides an entry point into the application. -// -// This example performs asynchronous peek operation -// processing. -int main() -{ - // Create an instance of MessageQueue. Set its formatter. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - array^p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - - // Add an event handler for the PeekCompleted event. - myQueue->PeekCompleted += gcnew PeekCompletedEventHandler( MyNewQueue::MyPeekCompleted ); - - // Begin the asynchronous peek operation with a timeout - // of one minute. - myQueue->BeginPeek( TimeSpan(0,1,0), MyNewQueue::messageNumber++ ); - - // Do other work on the current thread. - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginPeek_noparms/CPP/mqbeginpeek_noparms.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginPeek_noparms/CPP/mqbeginpeek_noparms.cpp deleted file mode 100644 index 7ba1236a1c668..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginPeek_noparms/CPP/mqbeginpeek_noparms.cpp +++ /dev/null @@ -1,55 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -// This example performs asynchronous peek operation -// processing. -//************************************************* -ref class MyNewQueue -{ -public: - - // Provides an event handler for the PeekCompleted - // event. - static void MyPeekCompleted( Object^ source, PeekCompletedEventArgs^ asyncResult ) - { - // Connect to the queue. - MessageQueue^ mq = dynamic_cast(source); - - // End the asynchronous peek operation. - Message^ m = mq->EndPeek( asyncResult->AsyncResult ); - - // Display message information on the screen. - Console::WriteLine( "Message: {0}", static_cast(m->Body) ); - - // Restart the asynchronous peek operation. - mq->BeginPeek(); - return; - } -}; - -// Provides an entry point into the application. -// -int main() -{ - // Create an instance of MessageQueue. Set its formatter. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - array^p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - - // Add an event handler for the PeekCompleted event. - myQueue->PeekCompleted += gcnew PeekCompletedEventHandler( MyNewQueue::MyPeekCompleted ); - - // Begin the asynchronous peek operation. - myQueue->BeginPeek(); - - // Do other work on the current thread. - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginPeek_timeout/CPP/mqbeginpeek_timeout.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginPeek_timeout/CPP/mqbeginpeek_timeout.cpp deleted file mode 100644 index 7b1891001d43e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginPeek_timeout/CPP/mqbeginpeek_timeout.cpp +++ /dev/null @@ -1,61 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -ref class MyNewQueue -{ -public: - static void MyPeekCompleted( Object^ source, PeekCompletedEventArgs^ asyncResult ) - { try - { - // Connect to the queue. - MessageQueue^ mq = dynamic_cast(source); - - // End the asynchronous peek operation. - Message^ m = mq->EndPeek( asyncResult->AsyncResult ); - - // Display message information on the screen. - Console::WriteLine( "Message: {0}", static_cast(m->Body) ); - - // Restart the asynchronous peek operation, with the - // same time-out. - mq->BeginPeek( TimeSpan(0,1,0) ); - } - catch ( MessageQueueException^ e ) - { - if ( e->MessageQueueErrorCode == MessageQueueErrorCode::IOTimeout ) - { - Console::WriteLine( e ); - } - - // Handle other sources of MessageQueueException. - } - - // Handle other exceptions. - return; - } -}; - -int main() -{ - // Create an instance of MessageQueue. Set its formatter. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - array^p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - - // Add an event handler for the PeekCompleted event. - myQueue->PeekCompleted += gcnew PeekCompletedEventHandler( MyNewQueue::MyPeekCompleted ); - - // Begin the asynchronous peek operation with a timeout - // of one minute. - myQueue->BeginPeek( TimeSpan(0,1,0) ); - - // Do other work on the current thread. - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginReceive_noparms_combined/CPP/mqbeginreceive_noparms_mre.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginReceive_noparms_combined/CPP/mqbeginreceive_noparms_mre.cpp deleted file mode 100644 index d7d9f34865391..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginReceive_noparms_combined/CPP/mqbeginreceive_noparms_mre.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::Messaging; -using namespace System::Threading; - -ref class MyNewQueue -{ -public: - - // Define static class members. - static ManualResetEvent^ signal = gcnew ManualResetEvent( false ); - static int count = 0; - - // Provides an event handler for the ReceiveCompleted - // event. - static void MyReceiveCompleted( Object^ source, ReceiveCompletedEventArgs^ asyncResult ) - { - try - { - // Connect to the queue. - MessageQueue^ mq = dynamic_cast(source); - - // End the asynchronous receive operation. - mq->EndReceive( asyncResult->AsyncResult ); - count += 1; - if ( count == 10 ) - { - signal->Set(); - } - - // Restart the asynchronous receive operation. - mq->BeginReceive(); - } - catch ( MessageQueueException^ ) - { - // Handle sources of MessageQueueException. - } - - // Handle other exceptions. - return; - } -}; - -// Provides an entry point into the application. -// -// This example performs asynchronous receive -// operation processing. -int main() -{ - // Create an instance of MessageQueue. Set its formatter. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - array^p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - - // Add an event handler for the ReceiveCompleted event. - myQueue->ReceiveCompleted += gcnew ReceiveCompletedEventHandler( MyNewQueue::MyReceiveCompleted ); - - // Begin the asynchronous receive operation. - myQueue->BeginReceive(); - MyNewQueue::signal->WaitOne(); - - // Do other work on the current thread. - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginReceive_noparms_combined/CPP/mqbeginreceive_noparms_wh.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginReceive_noparms_combined/CPP/mqbeginreceive_noparms_wh.cpp deleted file mode 100644 index 9a88b22ee3cef..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.BeginReceive_noparms_combined/CPP/mqbeginreceive_noparms_wh.cpp +++ /dev/null @@ -1,64 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::Messaging; -using namespace System::Threading; - -ref class MyNewQueue -{ -public: - - // Provides an event handler for the ReceiveCompleted - // event. - static void MyReceiveCompleted( Object^ source, ReceiveCompletedEventArgs^ asyncResult ) - { - try - { - // Connect to the queue. - MessageQueue^ mq = dynamic_cast(source); - - // End the asynchronous receive operation. - mq->EndReceive( asyncResult->AsyncResult ); - - // Process the message here. - Console::WriteLine( "Message received." ); - } - catch ( MessageQueueException^ ) - { - // Handle sources of MessageQueueException. - } - // Handle other exceptions. - return; - } -}; - -// Provides an entry point into the application. -// -// This example performs asynchronous receive -// operation processing. -int main() -{ - // Create an instance of MessageQueue. Set its formatter. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - array^p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - - // Add an event handler for the ReceiveCompleted event. - myQueue->ReceiveCompleted += gcnew ReceiveCompletedEventHandler( MyNewQueue::MyReceiveCompleted ); - - // Define wait handles for multiple operations. - array^waitHandleArray = gcnew array(10); - for ( int i = 0; i < 10; i++ ) - { - // Begin asynchronous operations. - waitHandleArray[ i ] = myQueue->BeginReceive()->AsyncWaitHandle; - } - - // Specify to wait for all operations to return. - WaitHandle::WaitAll( waitHandleArray ); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Close/CPP/mqclose.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Close/CPP/mqclose.cpp deleted file mode 100644 index 5bddf73feadc3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Close/CPP/mqclose.cpp +++ /dev/null @@ -1,76 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -ref class MyNewQueue -{ -public: - - // Sends a message to a queue. - void SendMessage() - { - // Connect to a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Send a message to the queue. - myQueue->Send( "My message data1." ); - - // Explicitly release resources. - myQueue->Close(); - - // Attempt to reaquire resources. - myQueue->Send( "My message data2." ); - return; - } - - // Receives a message from a queue. - void ReceiveMessage() - { - // Connect to the a on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Set the formatter to indicate body contains an Order. - array^p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - try - { - // Receive and format the message. - Message^ myMessage1 = myQueue->Receive(); - Message^ myMessage2 = myQueue->Receive(); - } - catch ( MessageQueueException^ ) - { - // Handle sources of any MessageQueueException. - } - finally - { - // Free resources. - myQueue->Close(); - } - - return; - } -}; - - -// Provides an entry point into the application. -// This example closes a queue and frees its -// resources. -int main() -{ - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Send a message to a queue. - myNewQueue->SendMessage(); - - // Receive a message from a queue. - myNewQueue->ReceiveMessage(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Create_PathTransactional/CPP/mqcreate_transactional.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Create_PathTransactional/CPP/mqcreate_transactional.cpp deleted file mode 100644 index 6d9baa8ba1726..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Create_PathTransactional/CPP/mqcreate_transactional.cpp +++ /dev/null @@ -1,106 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -ref class MyNewQueue -{ -public: - - // Creates public transactional queues and sends a - // message. - void CreatePublicTransactionalQueues() - { - - // Create and connect to a public message Queuing queue. - if ( !MessageQueue::Exists( ".\\newPublicTransQueue1" ) ) - { - - // Create the queue if it does not exist. - MessageQueue::Create( ".\\newPublicTransQueue1", true ); - } - - - // Connect to the queue. - MessageQueue^ myNewPublicQueue = gcnew MessageQueue( ".\\newPublicTransQueue1" ); - - // Create a transaction. - MessageQueueTransaction^ myTransaction = gcnew MessageQueueTransaction; - - // Begin the transaction. - myTransaction->Begin(); - - // Send the message. - myNewPublicQueue->Send( "My Message Data.", myTransaction ); - - // Commit the transaction. - myTransaction->Commit(); - if ( !MessageQueue::Exists( ".\\newPublicTransQueue2" ) ) - { - - // Create (but do not connect to) second public queue - MessageQueue::Create( ".\\newPublicTransQueue2", true ); - } - - return; - } - - - // Creates private queues and sends a message. - void CreatePrivateTransactionalQueues() - { - - // Create and connect to a private Message Queuing queue. - if ( !MessageQueue::Exists( ".\\Private$\\newPrivTransQ1" ) ) - { - - // Create the queue if it does not exist. - MessageQueue^ myNewPrivateQueue = MessageQueue::Create( ".\\Private$\\newPrivTransQ1", true ); - } - - - // Connect to the queue. - MessageQueue^ myNewPrivateQueue = gcnew MessageQueue( ".\\Private$\\newPrivTransQ1" ); - - // Create a transaction. - MessageQueueTransaction^ myTransaction = gcnew MessageQueueTransaction; - - // Begin the transaction. - myTransaction->Begin(); - - // Send the message. - myNewPrivateQueue->Send( "My Message Data.", myTransaction ); - - // Commit the transaction. - myTransaction->Commit(); - - // Create (but do not connect to) a second private queue. - if ( !MessageQueue::Exists( ".\\Private$\\newPrivTransQ2" ) ) - { - MessageQueue::Create( ".\\Private$\\newPrivTransQ2", true ); - } - - return; - } - -}; - - -// Provides an entry point into the application. -// This example creates new transactional queues. -int main() -{ - - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Create transactional queues. - myNewQueue->CreatePublicTransactionalQueues(); - myNewQueue->CreatePrivateTransactionalQueues(); - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Create_path/CPP/mqcreate.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Create_path/CPP/mqcreate.cpp deleted file mode 100644 index f90ef5700fc65..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Create_path/CPP/mqcreate.cpp +++ /dev/null @@ -1,80 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -// This example creates new public and private queues. -ref class MyNewQueue -{ -public: - void CreatePublicQueues() - { - - // Create and connect to a public Message Queuing queue. - if ( !MessageQueue::Exists( ".\\newPublicQueue" ) ) - { - - // Create the queue if it does not exist. - MessageQueue^ myNewPublicQueue = MessageQueue::Create( ".\\newPublicQueue" ); - - // Send a message to the queue. - myNewPublicQueue->Send( "My message data." ); - } - - - // Create (but do not connect to) a second public queue. - if ( !MessageQueue::Exists( ".\\newPublicResponseQueue" ) ) - { - MessageQueue::Create( ".\\newPublicResponseQueue" ); - } - - return; - } - - - // Creates private queues and sends a message. - void CreatePrivateQueues() - { - - // Create and connect to a private Message Queuing queue. - if ( !MessageQueue::Exists( ".\\Private$\\newPrivQueue" ) ) - { - - // Create the queue if it does not exist. - MessageQueue^ myNewPrivateQueue = MessageQueue::Create( ".\\Private$\\newPrivQueue" ); - - // Send a message to the queue. - myNewPrivateQueue->Send( "My message data." ); - } - - - // Create (but do not connect to) a second private queue. - if ( !MessageQueue::Exists( ".\\Private$\\newResponseQueue" ) ) - { - MessageQueue::Create( ".\\Private$\\newResponseQueue" ); - } - - return; - } - -}; - - -// Provides an entry point into the application. -int main() -{ - - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Create public and private queues. - myNewQueue->CreatePublicQueues(); - myNewQueue->CreatePrivateQueues(); - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.DefaultPropertiesToSend/CPP/mqdefaultpropertiestosend.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.DefaultPropertiesToSend/CPP/mqdefaultpropertiestosend.cpp deleted file mode 100644 index 6195578a276b1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.DefaultPropertiesToSend/CPP/mqdefaultpropertiestosend.cpp +++ /dev/null @@ -1,76 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -ref class MyNewQueue -{ -public: - - // Associates selected message property values - // with high priority messages. - void SendHighPriorityMessages() - { - - // Connect to a message queue. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Associate selected default property values with high - // priority messages. - myQueue->DefaultPropertiesToSend->Priority = MessagePriority::High; - myQueue->DefaultPropertiesToSend->Label = "High Priority Message"; - myQueue->DefaultPropertiesToSend->Recoverable = true; - myQueue->DefaultPropertiesToSend->TimeToReachQueue = TimeSpan(0,0,30); - - // Send messages using these defaults. - myQueue->Send( "High priority message data 1." ); - myQueue->Send( "High priority message data 2." ); - myQueue->Send( "High priority message data 3." ); - return; - } - - - // Associates selected message property values - // with normal priority messages. - void SendNormalPriorityMessages() - { - - // Connect to a message queue. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Associate selected default property values with normal - // priority messages. - myQueue->DefaultPropertiesToSend->Priority = MessagePriority::Normal; - myQueue->DefaultPropertiesToSend->Label = "Normal Priority Message"; - myQueue->DefaultPropertiesToSend->Recoverable = false; - myQueue->DefaultPropertiesToSend->TimeToReachQueue = TimeSpan(0,2,0); - - // Send messages using these defaults. - myQueue->Send( "Normal priority message data 1." ); - myQueue->Send( "Normal priority message data 2." ); - myQueue->Send( "Normal priority message data 3." ); - return; - } - -}; - - -// Provides an entry point into the application. -// This example specifies different types of default -// properties for messages. -int main() -{ - - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Send normal and high priority messages. - myNewQueue->SendNormalPriorityMessages(); - myNewQueue->SendHighPriorityMessages(); - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.ExistsDelete/CPP/mqexistsdelete.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.ExistsDelete/CPP/mqexistsdelete.cpp deleted file mode 100644 index 5f7ef61941745..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.ExistsDelete/CPP/mqexistsdelete.cpp +++ /dev/null @@ -1,36 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -int main() -{ - - // Determine whether the queue exists. - if ( MessageQueue::Exists( ".\\myQueue" ) ) - { - try - { - - // Delete the queue. - MessageQueue::Delete( ".\\myQueue" ); - } - catch ( MessageQueueException^ e ) - { - if ( e->MessageQueueErrorCode == MessageQueueErrorCode::AccessDenied ) - { - Console::WriteLine( "Access is denied. Queue might be a system queue." ); - } - - // Handle other sources of MessageQueueException. - } - - } - - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.GetMessageEnumerator/CPP/mqgetmessageenumerator.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.GetMessageEnumerator/CPP/mqgetmessageenumerator.cpp deleted file mode 100644 index 2f0f3252ea61c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.GetMessageEnumerator/CPP/mqgetmessageenumerator.cpp +++ /dev/null @@ -1,55 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -ref class MyNewQueue -{ -public: - void CountLowestPriority() - { - - // Holds the count of Lowest priority messages. - UInt32 numberItems = 0; - - // Connect to a queue. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Get a cursor into the messages in the queue. - MessageEnumerator^ myEnumerator = myQueue->GetMessageEnumerator(); - - // Specify that the messages's priority should be read. - myQueue->MessageReadPropertyFilter->Priority = true; - - // Move to the next message and examine its priority. - while ( myEnumerator->MoveNext() ) - { - - // Increase the count if priority is Lowest. - if ( myEnumerator->Current->Priority == MessagePriority::Lowest ) - numberItems++; - } - - - // Display final count. - Console::WriteLine( "Lowest priority messages: {0}", numberItems ); - return; - } - -}; - -int main() -{ - - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Output the count of Lowest priority messages. - myNewQueue->CountLowestPriority(); - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.GetMessageQueueEnumerator_criteria/CPP/mqgetmessagequeueenumerator_criteria.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.GetMessageQueueEnumerator_criteria/CPP/mqgetmessagequeueenumerator_criteria.cpp deleted file mode 100644 index fad785df5ce01..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.GetMessageQueueEnumerator_criteria/CPP/mqgetmessagequeueenumerator_criteria.cpp +++ /dev/null @@ -1,60 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -ref class MyNewQueue -{ -public: - - // Iterates through message queues and displays the - // path of each queue that was created in the last - // day and that exists on the computer "MyComputer". - void ListPublicQueuesByCriteria() - { - UInt32 numberQueues = 0; - - // Specify the criteria to filter by. - MessageQueueCriteria^ myCriteria = gcnew MessageQueueCriteria; - myCriteria->MachineName = "MyComputer"; - myCriteria->CreatedAfter = DateTime::Now.Subtract( TimeSpan(1,0,0,0) ); - - // Get a cursor into the queues on the network. - MessageQueueEnumerator^ myQueueEnumerator = MessageQueue::GetMessageQueueEnumerator( myCriteria ); - - // Move to the next queue and read its path. - while ( myQueueEnumerator->MoveNext() ) - { - - // Increase the count if priority is Lowest. - Console::WriteLine( myQueueEnumerator->Current->Path ); - numberQueues++; - } - - - // Handle no queues matching the criteria. - if ( numberQueues == 0 ) - { - Console::WriteLine( "No public queues match criteria." ); - } - - return; - } - -}; - -int main() -{ - - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Output the count of Lowest priority messages. - myNewQueue->ListPublicQueuesByCriteria(); - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.GetMessageQueueEnumerator_noparms/CPP/mqgetmessagequeueenumerator.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.GetMessageQueueEnumerator_noparms/CPP/mqgetmessagequeueenumerator.cpp deleted file mode 100644 index 2b942b46c1f91..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.GetMessageQueueEnumerator_noparms/CPP/mqgetmessagequeueenumerator.cpp +++ /dev/null @@ -1,54 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -//************************************************** -// Iterates through message queues and examines the -// path for each queue. Also displays the number of -// public queues on the network. -//************************************************** -void ListPublicQueues() -{ - - // Holds the count of private queues. - int numberQueues = 0; - - // Get a cursor into the queues on the network. - MessageQueueEnumerator^ myQueueEnumerator = MessageQueue::GetMessageQueueEnumerator(); - - // Move to the next queue and read its path. - while ( myQueueEnumerator->MoveNext() ) - { - - // Increase the count if priority is Lowest. - Console::WriteLine( myQueueEnumerator->Current->Path ); - numberQueues++; - } - - - // Display final count. - Console::WriteLine( "Number of public queues: {0}", numberQueues ); - return; -} - - -//************************************************** -// Provides an entry point into the application. -// -// This example uses a cursor to step through the -// message queues and list the public queues on the -// network. -//************************************************** -int main() -{ - - // Output the count of Lowest priority messages. - ListPublicQueues(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.GetQueueLists/CPP/mqgetqueuelists.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.GetQueueLists/CPP/mqgetqueuelists.cpp deleted file mode 100644 index 8092de2b7ee03..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.GetQueueLists/CPP/mqgetqueuelists.cpp +++ /dev/null @@ -1,155 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -using namespace System::Collections; -ref class MyNewQueue -{ -public: - - // Gets a list of queues with a specified category. - // Sends a broadcast message to all queues in that - // category. - void GetQueuesByCategory() - { - - // Get a list of queues with the specified category. - array^QueueList = MessageQueue::GetPublicQueuesByCategory( Guid(" {00000000-0000-0000-0000-000000000001}") ); - - // Send a broadcast message to each queue in the array. - IEnumerator^ myEnum = QueueList->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - MessageQueue^ queueItem = safe_cast(myEnum->Current); - queueItem->Send( "Broadcast message." ); - } - - return; - } - - - // Gets a list of queues with a specified label. - // Sends a broadcast message to all queues with that - // label. - void GetQueuesByLabel() - { - - // Get a list of queues with the specified label. - array^QueueList = MessageQueue::GetPublicQueuesByLabel( "My Label" ); - - // Send a broadcast message to each queue in the array. - IEnumerator^ myEnum = QueueList->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - MessageQueue^ queueItem = safe_cast(myEnum->Current); - queueItem->Send( "Broadcast message." ); - } - - return; - } - - - // Gets a list of queues on a specified computer. - // Displays the list on screen. - void GetQueuesByComputer() - { - - // Get a list of queues on the specified computer. - array^QueueList = MessageQueue::GetPublicQueuesByMachine( "MyComputer" ); - - // Display the paths of the queues in the list. - IEnumerator^ myEnum = QueueList->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - MessageQueue^ queueItem = safe_cast(myEnum->Current); - Console::WriteLine( queueItem->Path ); - } - - return; - } - - - // Gets a list of all public queues. - void GetAllPublicQueues() - { - - // Get a list of public queues. - array^QueueList = MessageQueue::GetPublicQueues(); - return; - } - - - // Gets a list of all public queues that match - // specified criteria. Displays the list on - // screen. - void GetPublicQueuesByCriteria() - { - - // Define criteria to filter the queues. - MessageQueueCriteria^ myCriteria = gcnew MessageQueueCriteria; - myCriteria->CreatedAfter = DateTime::Now.Subtract( TimeSpan(1,0,0,0) ); - myCriteria->ModifiedBefore = DateTime::Now; - myCriteria->MachineName = "."; - myCriteria->Label = "My Queue"; - - // Get a list of queues with that criteria. - array^QueueList = MessageQueue::GetPublicQueues( myCriteria ); - - // Display the paths of the queues in the list. - IEnumerator^ myEnum = QueueList->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - MessageQueue^ queueItem = safe_cast(myEnum->Current); - Console::WriteLine( queueItem->Path ); - } - - return; - } - - - // Gets a list of private queues on the local - // computer. Displays the list on screen. - void GetPrivateQueues() - { - - // Get a list of queues with the specified category. - array^QueueList = MessageQueue::GetPrivateQueuesByMachine( "." ); - - // Display the paths of the queues in the list. - IEnumerator^ myEnum = QueueList->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - MessageQueue^ queueItem = safe_cast(myEnum->Current); - Console::WriteLine( queueItem->Path ); - } - - return; - } - -}; - - -// Provides an entry point into the application. -// This example gets lists of queues by a variety -// of criteria. -int main() -{ - - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Send normal and high priority messages. - myNewQueue->GetQueuesByCategory(); - myNewQueue->GetQueuesByLabel(); - myNewQueue->GetQueuesByComputer(); - myNewQueue->GetAllPublicQueues(); - myNewQueue->GetPublicQueuesByCriteria(); - myNewQueue->GetPrivateQueues(); - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.MessageReadPropertyFilter/CPP/mqmessagereadpropertyfilter.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.MessageReadPropertyFilter/CPP/mqmessagereadpropertyfilter.cpp deleted file mode 100644 index 4cd306bad0212..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.MessageReadPropertyFilter/CPP/mqmessagereadpropertyfilter.cpp +++ /dev/null @@ -1,117 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -ref class MyNewQueue -{ -public: - - //************************************************* - // Retrieves the default properties for a Message. - //************************************************* - void RetrieveDefaultProperties() - { - // Connect to a message queue. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Specify to retrieve the default properties only. - myQueue->MessageReadPropertyFilter->SetDefaults(); - - // Set the formatter for the Message. - array^p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - - // Receive the first message in the queue. - Message^ myMessage = myQueue->Receive(); - - // Display selected properties. - Console::WriteLine( "Label: {0}", myMessage->Label ); - Console::WriteLine( "Body: {0}", static_cast(myMessage->Body) ); - return; - } - - - //************************************************* - // Retrieves all properties for a Message. - //************************************************* - void RetrieveAllProperties() - { - // Connect to a message queue. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Specify to retrieve all properties. - myQueue->MessageReadPropertyFilter->SetAll(); - - // Set the formatter for the Message. - array^p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - - // Receive the first message in the queue. - Message^ myMessage = myQueue->Receive(); - - // Display selected properties. - Console::WriteLine( "Encryption algorithm: {0}", myMessage->EncryptionAlgorithm.ToString() ); - Console::WriteLine( "Body: {0}", myMessage->Body ); - return; - } - - //************************************************* - // Retrieves application-specific properties for a - // Message. - //************************************************* - void RetrieveSelectedProperties() - { - // Connect to a message queue. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Specify to retrieve selected properties. - MessagePropertyFilter^ myFilter = gcnew MessagePropertyFilter; - myFilter->ClearAll(); - - // The following list is a random subset of available properties. - myFilter->Body = true; - myFilter->Label = true; - myFilter->MessageType = true; - myFilter->Priority = true; - myQueue->MessageReadPropertyFilter = myFilter; - - // Set the formatter for the Message. - array^p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - - // Receive the first message in the queue. - Message^ myMessage = myQueue->Receive(); - - // Display selected properties. - Console::WriteLine( "Message type: {0}", myMessage->MessageType.ToString() ); - Console::WriteLine( "Priority: {0}", myMessage->Priority.ToString() ); - return; - } -}; - - -//************************************************* -// Provides an entry point into the application. -// -// This example retrieves specific groups of Message -// properties. -//************************************************* -int main() -{ - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Retrieve specific sets of Message properties. - myNewQueue->RetrieveDefaultProperties(); - myNewQueue->RetrieveAllProperties(); - myNewQueue->RetrieveSelectedProperties(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Path/CPP/mqpath.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Path/CPP/mqpath.cpp deleted file mode 100644 index 34ef71be8b214..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Path/CPP/mqpath.cpp +++ /dev/null @@ -1,125 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -ref class MyNewQueue -{ -public: - - // References public queues. - void SendPublic() - { - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - myQueue->Send( "Public queue by path name." ); - return; - } - - - // References private queues. - void SendPrivate() - { - MessageQueue^ myQueue = gcnew MessageQueue( ".\\Private$\\myQueue" ); - myQueue->Send( "Private queue by path name." ); - return; - } - - - // References queues by label. - void SendByLabel() - { - MessageQueue^ myQueue = gcnew MessageQueue( "Label:TheLabel" ); - myQueue->Send( "Queue by label." ); - return; - } - - - // References queues by format name. - void SendByFormatName() - { - MessageQueue^ myQueue = gcnew MessageQueue( "FormatName:Public=5A5F7535-AE9A-41d4 -935C-845C2AFF7112" ); - myQueue->Send( "Queue by format name." ); - return; - } - - - // References computer journal queues. - void MonitorComputerJournal() - { - MessageQueue^ computerJournal = gcnew MessageQueue( ".\\Journal$" ); - while ( true ) - { - Message^ journalMessage = computerJournal->Receive(); - - // Process the journal message. - } - } - - - // References queue journal queues. - void MonitorQueueJournal() - { - MessageQueue^ queueJournal = gcnew MessageQueue( ".\\myQueue\\Journal$" ); - while ( true ) - { - Message^ journalMessage = queueJournal->Receive(); - - // Process the journal message. - } - } - - - // References dead-letter queues. - void MonitorDeadLetter() - { - MessageQueue^ deadLetter = gcnew MessageQueue( ".\\DeadLetter$" ); - while ( true ) - { - Message^ deadMessage = deadLetter->Receive(); - - // Process the dead-letter message. - } - } - - - // References transactional dead-letter queues. - void MonitorTransactionalDeadLetter() - { - MessageQueue^ TxDeadLetter = gcnew MessageQueue( ".\\XactDeadLetter$" ); - while ( true ) - { - Message^ txDeadLetter = TxDeadLetter->Receive(); - - // Process the transactional dead-letter message. - } - } - -}; - - -//************************************************* -// Provides an entry point into the application. -// -// This example demonstrates several ways to set -// a queue's path. -//************************************************* -int main() -{ - - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - myNewQueue->SendPublic(); - myNewQueue->SendPrivate(); - myNewQueue->SendByLabel(); - myNewQueue->SendByFormatName(); - myNewQueue->MonitorComputerJournal(); - myNewQueue->MonitorQueueJournal(); - myNewQueue->MonitorDeadLetter(); - myNewQueue->MonitorTransactionalDeadLetter(); - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Peek_noparms/CPP/mqpeek_noparms.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Peek_noparms/CPP/mqpeek_noparms.cpp deleted file mode 100644 index 15915890bde37..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Peek_noparms/CPP/mqpeek_noparms.cpp +++ /dev/null @@ -1,127 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -// This class represents an object the following example -// sends to a queue and receives from a queue. -ref class Order -{ -public: - int orderId; - DateTime orderTime; -}; - - -/// -/// Provides a container class for the example. -/// -ref class MyNewQueue -{ -public: - - //************************************************* - // Posts a notification when a message arrives in - // the queue S"monitoredQueue". Does not retrieve any - // message information when peeking the message. - //************************************************* - void NotifyArrived() - { - // Connect to a queue. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\monitoredQueue" ); - - // Specify to retrieve no message information. - myQueue->MessageReadPropertyFilter->ClearAll(); - - // Wait for a message to arrive. - Message^ emptyMessage = myQueue->Peek(); - - // Post a notification when a message arrives. - Console::WriteLine( "A message has arrived in the queue." ); - return; - } - - - //************************************************* - // Sends an Order to a queue. - //************************************************* - void SendMessage() - { - // Create a new order and set values. - Order^ sentOrder = gcnew Order; - sentOrder->orderId = 3; - sentOrder->orderTime = DateTime::Now; - - // Connect to a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Send the Order to the queue. - myQueue->Send( sentOrder ); - return; - } - - //************************************************* - // Peeks a message containing an Order. - //************************************************* - void PeekFirstMessage() - { - // Connect to a queue. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Set the formatter to indicate the body contains an Order. - array^p = gcnew array(1); - p[ 0 ] = Order::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - try - { - // Peek and format the message. - Message^ myMessage = myQueue->Peek(); - Order^ myOrder = static_cast(myMessage->Body); - - // Display message information. - Console::WriteLine( "Order ID: {0}", myOrder->orderId ); - Console::WriteLine( "Sent: {0}", myOrder->orderTime ); - } - catch ( MessageQueueException^ ) - { - // Handle Message Queuing exceptions. - } - // Handle invalid serialization format. - catch ( InvalidOperationException^ e ) - { - Console::WriteLine( e->Message ); - } - - // Catch other exceptions as necessary. - return; - } -}; - -//************************************************* -// Provides an entry point into the application. -// -// This example posts a notification that a message -// has arrived in a queue. It sends a message -// containing an other to a separate queue, and then -// peeks the first message in the queue. -//************************************************* -int main() -{ - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Wait for a message to arrive in the queue. - myNewQueue->NotifyArrived(); - - // Send a message to a queue. - myNewQueue->SendMessage(); - - // Peek the first message in the queue. - myNewQueue->PeekFirstMessage(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Peek_timeout/CPP/mqpeek_timeout.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Peek_timeout/CPP/mqpeek_timeout.cpp deleted file mode 100644 index 25b765ab9499f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Peek_timeout/CPP/mqpeek_timeout.cpp +++ /dev/null @@ -1,73 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -ref class MyNewQueue -{ -public: - - //************************************************* - // Determines whether a queue is empty. The Peek() - // method throws an exception if there is no message - // in the queue. This method handles that exception - // by returning true to the calling method. - //************************************************* - bool IsQueueEmpty() - { - bool isQueueEmpty = false; - - // Connect to a queue. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - try - { - - // Set Peek to return immediately. - myQueue->Peek( TimeSpan(0) ); - - // If an IOTime->Item[Out] was* not thrown, there is a message - // in the queue. - isQueueEmpty = false; - } - catch ( MessageQueueException^ e ) - { - if ( e->MessageQueueErrorCode == MessageQueueErrorCode::IOTimeout ) - { - - // No message was in the queue. - isQueueEmpty = true; - } - - - // Handle other sources of MessageQueueException. - } - - - // Handle other exceptions as necessary. - // Return true if there are no messages in the queue. - return isQueueEmpty; - } - -}; - - -//************************************************* -// Provides an entry point into the application. -// -// This example determines whether a queue is empty. -//************************************************* -int main() -{ - - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Determine whether a queue is empty. - bool isQueueEmpty = myNewQueue->IsQueueEmpty(); - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.ReceiveCompleted/CPP/mqreceivecompletedeventhandler.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.ReceiveCompleted/CPP/mqreceivecompletedeventhandler.cpp deleted file mode 100644 index 693998fa99587..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.ReceiveCompleted/CPP/mqreceivecompletedeventhandler.cpp +++ /dev/null @@ -1,58 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -ref class MyNewQueue -{ -public: - - //************************************************* - // Provides an event handler for the ReceiveCompleted - // event. - //************************************************* - static void MyReceiveCompleted( Object^ source, ReceiveCompletedEventArgs^ asyncResult ) - { - // Connect to the queue. - MessageQueue^ mq = dynamic_cast(source); - - // End the asynchronous Receive operation. - Message^ m = mq->EndReceive( asyncResult->AsyncResult ); - - // Display message information on the screen. - Console::WriteLine( "Message: {0}", m->Body ); - - // Restart the asynchronous Receive operation. - mq->BeginReceive(); - return; - } -}; - - -//************************************************* -// Provides an entry point into the application. -// -// This example performs asynchronous receive operation -// processing. -//************************************************* -int main() -{ - // Create an instance of MessageQueue. Set its formatter. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - array^p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - - // Add an event handler for the ReceiveCompleted event. - myQueue->ReceiveCompleted += gcnew ReceiveCompletedEventHandler( MyNewQueue::MyReceiveCompleted ); - - // Begin the asynchronous receive operation. - myQueue->BeginReceive(); - - // Do other work on the current thread. - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Receive_TimeoutTransaction/CPP/mqreceive_timeouttransaction.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Receive_TimeoutTransaction/CPP/mqreceive_timeouttransaction.cpp deleted file mode 100644 index 4908e655b4aa3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Receive_TimeoutTransaction/CPP/mqreceive_timeouttransaction.cpp +++ /dev/null @@ -1,121 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -/// -/// Provides a container class for the example. -/// -ref class MyNewQueue -{ -public: - - //************************************************* - // Sends a message to a transactional queue. - //************************************************* - void SendMessageTransactional() - { - // Connect to a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myTransactionalQueue" ); - - // Send a message to the queue. - if ( myQueue->Transactional == true ) - { - // Create a transaction. - MessageQueueTransaction^ myTransaction = gcnew MessageQueueTransaction; - - // Begin the transaction. - myTransaction->Begin(); - - // Send the message. - myQueue->Send( "My Message Data.", myTransaction ); - - // Commit the transaction. - myTransaction->Commit(); - } - - return; - } - - //************************************************* - // Receives a message from the transactional queue. - //************************************************* - void ReceiveMessageTransactional() - { - // Connect to a transactional queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myTransactionalQueue" ); - - // Set the formatter. - array^p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - - // Create a transaction. - MessageQueueTransaction^ myTransaction = gcnew MessageQueueTransaction; - try - { - // Begin the transaction. - myTransaction->Begin(); - - // Receive the message. - // Wait five seconds for a message to arrive. - Message^ myMessage = myQueue->Receive( TimeSpan(0,0,5), myTransaction ); - String^ myOrder = static_cast(myMessage->Body); - - // Display message information. - Console::WriteLine( myOrder ); - - // Commit the transaction. - myTransaction->Commit(); - } - catch ( MessageQueueException^ e ) - { - // Handle nontransactional queues. - if ( e->MessageQueueErrorCode == MessageQueueErrorCode::TransactionUsage ) - { - Console::WriteLine( "Queue is not transactional." ); - } - // Handle no message arriving in the queue. - else - - // Handle no message arriving in the queue. - if ( e->MessageQueueErrorCode == MessageQueueErrorCode::IOTimeout ) - { - Console::WriteLine( "No message in queue." ); - } - - // Else catch other sources of MessageQueueException. - // Roll back the transaction. - myTransaction->Abort(); - } - - // Catch other exceptions as necessary, such as - // InvalidOperationException, thrown when the formatter - // cannot deserialize the message. - return; - } -}; - -//************************************************* -// Provides an entry point into the application. -// -// This example sends and receives a message from -// a transactional queue. -//************************************************* -int main() -{ - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Send a message to a queue. - myNewQueue->SendMessageTransactional(); - - // Receive a message from a queue. - myNewQueue->ReceiveMessageTransactional(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Receive_noparms/CPP/mqreceive_noparms.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Receive_noparms/CPP/mqreceive_noparms.cpp deleted file mode 100644 index ab3720fe0ac0d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Receive_noparms/CPP/mqreceive_noparms.cpp +++ /dev/null @@ -1,100 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -// This class represents an object the following example -// sends to a queue and receives from a queue. -ref class Order -{ -public: - int orderId; - DateTime orderTime; -}; - - -/// -/// Provides a container class for the example. -/// -ref class MyNewQueue -{ -public: - - //************************************************* - // Sends an Order to a queue. - //************************************************* - void SendMessage() - { - // Create a new order and set values. - Order^ sentOrder = gcnew Order; - sentOrder->orderId = 3; - sentOrder->orderTime = DateTime::Now; - - // Connect to a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Send the Order to the queue. - myQueue->Send( sentOrder ); - return; - } - - //************************************************* - // Receives a message containing an Order. - //************************************************* - void ReceiveMessage() - { - // Connect to the a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Set the formatter to indicate body contains an Order. - array^p = gcnew array(1); - p[ 0 ] = Order::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - try - { - // Receive and format the message. - Message^ myMessage = myQueue->Receive(); - Order^ myOrder = static_cast(myMessage->Body); - - // Display message information. - Console::WriteLine( "Order ID: {0}", myOrder->orderId ); - Console::WriteLine( "Sent: {0}", myOrder->orderTime ); - } - catch ( MessageQueueException^ ) - { - // Handle Message Queuing exceptions. - } - // Handle invalid serialization format. - catch ( InvalidOperationException^ e ) - { - Console::WriteLine( e->Message ); - } - - // Catch other exceptions as necessary. - return; - } -}; - -//************************************************* -// Provides an entry point into the application. -// -// This example sends and receives a message from -// a queue. -//************************************************* -int main() -{ - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Send a message to a queue. - myNewQueue->SendMessage(); - - // Receive a message from a queue. - myNewQueue->ReceiveMessage(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Receive_timeout/CPP/mqreceive_timeout.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Receive_timeout/CPP/mqreceive_timeout.cpp deleted file mode 100644 index eedcb10741066..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Receive_timeout/CPP/mqreceive_timeout.cpp +++ /dev/null @@ -1,85 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -// This class represents an object the following example -// receives from a queue. -ref class Order -{ -public: - int orderId; - DateTime orderTime; -}; - - -/// -/// Provides a container class for the example. -/// -ref class MyNewQueue -{ -public: - - //************************************************* - // Receives a message containing an Order. - //************************************************* - void ReceiveMessage() - { - // Connect to the a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Set the formatter to indicate body contains an Order. - array^p = gcnew array(1); - p[ 0 ] = Order::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - try - { - // Receive and format the message. - // Wait 5 seconds for a message to arrive. - Message^ myMessage = myQueue->Receive( TimeSpan(0,0,5) ); - Order^ myOrder = static_cast(myMessage->Body); - - // Display message information. - Console::WriteLine( "Order ID: {0}", myOrder->orderId ); - Console::WriteLine( "Sent: {0}", myOrder->orderTime ); - } - catch ( MessageQueueException^ e ) - { - // Handle no message arriving in the queue. - if ( e->MessageQueueErrorCode == MessageQueueErrorCode::IOTimeout ) - { - Console::WriteLine( "No message arrived in queue." ); - } - - // Handle other sources of a MessageQueueException. - } - // Handle invalid serialization format. - catch ( InvalidOperationException^ e ) - { - Console::WriteLine( e->Message ); - } - - // Catch other exceptions as necessary. - return; - } -}; - -//************************************************* -// Provides an entry point into the application. -// -// This example receives a message from a queue. -//************************************************* -int main() -{ - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Receive a message from a queue. - myNewQueue->ReceiveMessage(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Receive_transaction/CPP/mqreceive_transaction.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Receive_transaction/CPP/mqreceive_transaction.cpp deleted file mode 100644 index 885fce58c6cdf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Receive_transaction/CPP/mqreceive_transaction.cpp +++ /dev/null @@ -1,113 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -/// -/// Provides a container class for the example. -/// -ref class MyNewQueue -{ -public: - - //************************************************* - // Sends a message to a queue. - //************************************************* - void SendMessageTransactional() - { - // Connect to a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myTransactionalQueue" ); - - // Send a message to the queue. - if ( myQueue->Transactional == true ) - { - // Create a transaction. - MessageQueueTransaction^ myTransaction = gcnew MessageQueueTransaction; - - // Begin the transaction. - myTransaction->Begin(); - - // Send the message. - myQueue->Send( "My Message Data.", myTransaction ); - - // Commit the transaction. - myTransaction->Commit(); - } - - return; - } - - - //************************************************* - // Receives a message containing an Order. - //************************************************* - void ReceiveMessageTransactional() - { - // Connect to a transactional queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myTransactionalQueue" ); - - // Set the formatter. - array^p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - - // Create a transaction. - MessageQueueTransaction^ myTransaction = gcnew MessageQueueTransaction; - try - { - // Begin the transaction. - myTransaction->Begin(); - - // Receive the message. - Message^ myMessage = myQueue->Receive( myTransaction ); - String^ myOrder = static_cast(myMessage->Body); - - // Display message information. - Console::WriteLine( myOrder ); - - // Commit the transaction. - myTransaction->Commit(); - } - catch ( MessageQueueException^ e ) - { - // Handle nontransactional queues. - if ( e->MessageQueueErrorCode == MessageQueueErrorCode::TransactionUsage ) - { - Console::WriteLine( "Queue is not transactional." ); - } - - // Else catch other sources of a MessageQueueException. - // Roll back the transaction. - myTransaction->Abort(); - } - - // Catch other exceptions as necessary, such as - // InvalidOperationException, thrown when the formatter - // cannot deserialize the message. - return; - } -}; - -//************************************************* -// Provides an entry point into the application. -// -// This example sends and receives a message from -// a transactional queue. -//************************************************* -int main() -{ - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Send a message to a queue. - myNewQueue->SendMessageTransactional(); - - // Receive a message from a queue. - myNewQueue->ReceiveMessageTransactional(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Send_ObjectTransaction/CPP/mqsend_objtransaction.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Send_ObjectTransaction/CPP/mqsend_objtransaction.cpp deleted file mode 100644 index 79d277ad91ea3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Send_ObjectTransaction/CPP/mqsend_objtransaction.cpp +++ /dev/null @@ -1,113 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -/// -/// Provides a container class for the example. -/// -ref class MyNewQueue -{ -public: - - //************************************************* - // Sends a message to a queue. - //************************************************* - void SendMessageTransactional() - { - // Connect to a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myTransactionalQueue" ); - - // Send a message to the queue. - if ( myQueue->Transactional == true ) - { - // Create a transaction. - MessageQueueTransaction^ myTransaction = gcnew MessageQueueTransaction; - - // Begin the transaction. - myTransaction->Begin(); - - // Send the message. - myQueue->Send( "My Message Data.", myTransaction ); - - // Commit the transaction. - myTransaction->Commit(); - } - - return; - } - - - //************************************************* - // Receives a message containing an Order. - //************************************************* - void ReceiveMessageTransactional() - { - // Connect to a transactional queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myTransactionalQueue" ); - - // Set the formatter. - array^p = gcnew array(1); - p[ 0 ] = String::typeid; - myQueue->Formatter = gcnew XmlMessageFormatter( p ); - - // Create a transaction. - MessageQueueTransaction^ myTransaction = gcnew MessageQueueTransaction; - try - { - // Begin the transaction. - myTransaction->Begin(); - - // Receive the message. - Message^ myMessage = myQueue->Receive( myTransaction ); - String^ myOrder = static_cast(myMessage->Body); - - // Display message information. - Console::WriteLine( myOrder ); - - // Commit the transaction. - myTransaction->Commit(); - } - catch ( MessageQueueException^ e ) - { - // Handle nontransactional queues. - if ( e->MessageQueueErrorCode == MessageQueueErrorCode::TransactionUsage ) - { - Console::WriteLine( "Queue is not transactional." ); - } - - // Else catch other sources of MessageQueueException. - // Roll back the transaction. - myTransaction->Abort(); - } - - // Catch other exceptions as necessary, such as - // InvalidOperationException, thrown when the formatter - // cannot deserialize the message. - return; - } -}; - -//************************************************* -// Provides an entry point into the application. -// -// This example sends and receives a message from -// a transactional queue. -//************************************************* -int main() -{ - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Send a message to a queue. - myNewQueue->SendMessageTransactional(); - - // Receive a message from a queue. - myNewQueue->ReceiveMessageTransactional(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Send_obj/CPP/mqsend_generic.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Send_obj/CPP/mqsend_generic.cpp deleted file mode 100644 index 512936db003c3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.Send_obj/CPP/mqsend_generic.cpp +++ /dev/null @@ -1,55 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -ref class MyNewQueue -{ -public: - void SendMessage() - { - - // Connect to a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Send a message to the queue. - if ( myQueue->Transactional == true ) - { - - // Create a transaction. - MessageQueueTransaction^ myTransaction = gcnew MessageQueueTransaction; - - // Begin the transaction. - myTransaction->Begin(); - - // Send the message. - myQueue->Send( "My Message Data.", myTransaction ); - - // Commit the transaction. - myTransaction->Commit(); - } - else - { - myQueue->Send( "My Message Data." ); - } - - return; - } - -}; - -int main() -{ - - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Send a message to a queue. - myNewQueue->SendMessage(); - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.ctor_PathSharedModeDenyReceive/CPP/mqctor_denysharedreceive.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.ctor_PathSharedModeDenyReceive/CPP/mqctor_denysharedreceive.cpp deleted file mode 100644 index c09921d9b5bf6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue.ctor_PathSharedModeDenyReceive/CPP/mqctor_denysharedreceive.cpp +++ /dev/null @@ -1,63 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Messaging; -ref class MyNewQueue -{ -public: - - // Requests exlusive read access to the queue. If - // access is granted, receives a message from the - // queue. - void GetExclusiveAccess() - { - try - { - - // Request exclusive read access to the queue. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue",true ); - - // Receive a message. This is where SharingViolation - // exceptions would be thrown. - Message^ myMessage = myQueue->Receive(); - } - catch ( MessageQueueException^ e ) - { - - // Handle request for denial of exclusive read access. - if ( e->MessageQueueErrorCode == MessageQueueErrorCode::SharingViolation ) - { - Console::WriteLine( "Denied exclusive read access" ); - } - - - // Handle other sources of a MessageQueueException. - } - - - // Handle other exceptions as necessary. - return; - } - -}; - - -// Provides an entry point into the application. -// This example connects to a message queue, and -// requests exclusive read access to the queue. -int main() -{ - - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Output the count of Lowest priority messages. - myNewQueue->GetExclusiveAccess(); - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue2/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue2/cpp/class1.cpp deleted file mode 100644 index 5293d6d567ac5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue2/cpp/class1.cpp +++ /dev/null @@ -1,1101 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::Messaging; - -// Creates a new queue. -static void CreateQueue(String^ queuePath, bool transactional) -{ - if (!MessageQueue::Exists(queuePath)) - { - MessageQueue^ queue = MessageQueue::Create(queuePath, transactional); - queue->Close(); - } - else - { - Console::WriteLine("{0} already exists.", queuePath); - } -} - -void SendObjectString() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message. - queue->Send(msg, "Example Message Label"); - - queue->Close(); - - // -} - -void SendObjectTransactionType() -{ - // - - // Connect to a transactional queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleTransQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message. - queue->Send(msg, MessageQueueTransactionType::Single); - - queue->Close(); - - // -} - -void SendObjectStringTransactionType() -{ - // - - // Connect to a transactional queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleTransQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message. - queue->Send(msg, "Example Message Label", - MessageQueueTransactionType::Single); - - queue->Close(); - - // -} - -void SendObjectStringTransaction() -{ - // - - // Connect to a transactional queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleTransQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Create a message queuing transaction. - MessageQueueTransaction^ transaction = gcnew MessageQueueTransaction(); - - try - { - // Begin a transaction. - transaction->Begin(); - - // Send the message to the queue. - queue->Send(msg, "Example Message Label", transaction); - - // Commit the transaction. - transaction->Commit(); - } - catch (Exception^ ex) - { - // Cancel the transaction. - transaction->Abort(); - - // Propagate the exception. - throw ex; - } - finally - { - // Dispose of the transaction object. - delete transaction; - queue->Close(); - } - - // -} - -void PeekByCorrelationIdStringTimespan() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Designate a queue to receive the acknowledgement message for this - // message. - msg->AdministrationQueue = - gcnew MessageQueue(".\\exampleAdminQueue"); - - // Set the message to generate an acknowledgement message upon its - // arrival. - msg->AcknowledgeType = AcknowledgeTypes::PositiveArrival; - - // Send the message. - queue->Send(msg, "Example Message Label"); - - // Get the message's Id property value. - String^ id = msg->Id; - - // Receive the message from the queue. - msg = queue->ReceiveById(id, TimeSpan::FromSeconds(10.0)); - - // Connect to the admin queue. - MessageQueue^ adminQueue = - gcnew MessageQueue(".\\exampleAdminQueue"); - - // Set the admin queue's MessageReadPropertyFilter property to ensure - // that the acknowledgement message includes the desired properties. - adminQueue->MessageReadPropertyFilter->Acknowledgment = true; - adminQueue->MessageReadPropertyFilter->CorrelationId = true; - - // Peek at the acknowledgement message. - Message^ ackMsg = adminQueue->PeekByCorrelationId(id, - TimeSpan::FromSeconds(10.0)); - - // Display the acknowledgement message's property values. - Console::WriteLine("Message.Label: {0}", ackMsg->Label); - Console::WriteLine("Message.Acknowledgment: {0}", - ackMsg->Acknowledgment); - Console::WriteLine("Message.CorrelationId: {0}", ackMsg->CorrelationId); - - adminQueue->Close(); - queue->Close(); - - // -} - -void PeekByIdString() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message. - queue->Send(msg, "Example Message Label"); - - // Get the message's Id property value. - String^ id = msg->Id; - - // Simulate doing other work so the message has time to arrive. - System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0)); - - // Peek at the message. - msg = queue->PeekById(id); - - queue->Close(); - - // -} - -void PeekByIdStringTimespan() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message. - queue->Send(msg, "Example Message Label"); - - // Get the message's Id property value. - String^ id = msg->Id; - - // Peek at the message. - msg = queue->PeekById(id, TimeSpan::FromSeconds(10.0)); - - queue->Close(); - - // -} - -void ReceiveTimespanTransactionType() -{ - // - - // Connect to a transactional queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleTransQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message. - queue->Send(msg, MessageQueueTransactionType::Single); - - // Set the formatter to indicate the message body contains a String. - queue->Formatter = gcnew XmlMessageFormatter( - gcnew array{String::typeid}); - - // Receive the message from the queue. Because the Id of the message - // is not specified, it might not be the message just sent. - msg = queue->Receive(TimeSpan::FromSeconds(10.0), - MessageQueueTransactionType::Single); - - queue->Close(); - - // -} - -void ReceiveTransactionType() -{ - // - - // Connect to a transactional queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleTransQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message. - queue->Send(msg, MessageQueueTransactionType::Single); - - // Simulate doing other work so the message has time to arrive. - System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0)); - - // Set the formatter to indicate the message body contains a String. - queue->Formatter = gcnew XmlMessageFormatter( - gcnew array{String::typeid}); - - // Receive the message from the queue. Because the Id of the message - // , it might not be the message just sent. - msg = queue->Receive(MessageQueueTransactionType::Single); - - queue->Close(); - - // -} - -void ReceiveByCorrelationIdStringTimespan() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Designate a queue to receive the acknowledgement message for this - // message. - msg->AdministrationQueue = - gcnew MessageQueue(".\\exampleAdminQueue"); - - // Set the message to generate an acknowledgement message upon its - // arrival. - msg->AcknowledgeType = AcknowledgeTypes::PositiveArrival; - - // Send the message. - queue->Send(msg, "Example Message Label"); - - // Get the message's Id property value. - String^ id = msg->Id; - - // Receive the message from the queue. - msg = queue->ReceiveById(id, TimeSpan::FromSeconds(10.0)); - - // Connect to the admin queue. - MessageQueue^ adminQueue = - gcnew MessageQueue(".\\exampleAdminQueue"); - - // Set the admin queue's MessageReadPropertyFilter property to ensure - // that the acknowledgement message includes the desired properties. - adminQueue->MessageReadPropertyFilter->Acknowledgment = true; - adminQueue->MessageReadPropertyFilter->CorrelationId = true; - - // Receive the acknowledgement message from the admin queue. - Message^ ackMsg = adminQueue->ReceiveByCorrelationId(id, - TimeSpan::FromSeconds(10.0)); - - // Display the acknowledgement message's property values. - Console::WriteLine("Message.Label: {0}", ackMsg->Label); - Console::WriteLine("Message.Acknowledgment: {0}", - ackMsg->Acknowledgment); - Console::WriteLine("Message.CorrelationId: {0}", ackMsg->CorrelationId); - - adminQueue->Close(); - queue->Close(); - - // -} - -void ReceiveByCorrelationIdStringTransactionType() -{ - // - - // Connect to a nontransactional queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message to the nontransactional queue. - queue->Send(msg, "Example Message Label"); - - // Get the message's Id property value. - String^ id = msg->Id; - - // Receive the message from the nontransactional queue. - msg = queue->ReceiveById(id, TimeSpan::FromSeconds(10.0)); - - // Connect to a transactional queue on the local computer. - MessageQueue^ transQueue = - gcnew MessageQueue(".\\exampleTransQueue"); - - // Create a new message in response to the original message. - Message^ responseMsg = gcnew Message("Example Response Message Body"); - - // Set the response message's CorrelationId property value to the Id - // property value of the original message. - responseMsg->CorrelationId = id; - - // Send the response message to the transactional queue. - transQueue->Send(responseMsg, "Example Response Message Label", - MessageQueueTransactionType::Single); - - // Simulate doing other work so the message has time to arrive. - System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0)); - - // Set the transactional queue's MessageReadPropertyFilter property to - // ensure that the response message includes the desired properties. - transQueue->MessageReadPropertyFilter->CorrelationId = true; - - // Receive the response message from the transactional queue. - responseMsg = transQueue->ReceiveByCorrelationId(id, - MessageQueueTransactionType::Single); - - // Display the response message's property values. - Console::WriteLine("Message.Label: {0}", responseMsg->Label); - Console::WriteLine("Message.CorrelationId: {0}", - responseMsg->CorrelationId); - - transQueue->Close(); - queue->Close(); - - // -} - -void ReceiveByCorrelationIdStringTimespanTransactionType() -{ - // - - // Connect to a nontransactional queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message to the nontransactional queue. - queue->Send(msg, "Example Message Label"); - - // Get the message's Id property value. - String^ id = msg->Id; - - // Receive the message from the nontransactional queue. - msg = queue->ReceiveById(id, TimeSpan::FromSeconds(10.0)); - - // Connect to a transactional queue on the local computer. - MessageQueue^ transQueue = - gcnew MessageQueue(".\\exampleTransQueue"); - - // Create a new message in response to the original message. - Message^ responseMsg = gcnew Message("Example Response Message Body"); - - // Set the response message's CorrelationId property value to the Id - // property value of the original message. - responseMsg->CorrelationId = id; - - // Send the response message to the transactional queue. - transQueue->Send(responseMsg, "Example Response Message Label", - MessageQueueTransactionType::Single); - - // Set the transactional queue's MessageReadPropertyFilter property to - // ensure that the response message includes the desired properties. - transQueue->MessageReadPropertyFilter->CorrelationId = true; - - // Receive the response message from the transactional queue. - responseMsg = transQueue->ReceiveByCorrelationId(id, - TimeSpan::FromSeconds(10.0), MessageQueueTransactionType::Single); - - // Display the response message's property values. - Console::WriteLine("Message.Label: {0}", responseMsg->Label); - Console::WriteLine("Message.CorrelationId: {0}", - responseMsg->CorrelationId); - - transQueue->Close(); - queue->Close(); - - // -} - -void ReceiveByCorrelationIdStringTimespanTransaction() -{ - // - - // Connect to a nontransactional queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message to the nontransactional queue. - queue->Send(msg, "Example Message Label"); - - // Get the message's Id property value. - String^ id = msg->Id; - - // Receive the message from the nontransactional queue. - msg = queue->ReceiveById(id, TimeSpan::FromSeconds(10.0)); - - // Connect to a transactional queue on the local computer. - MessageQueue^ transQueue = - gcnew MessageQueue(".\\exampleTransQueue"); - - // Create a new message in response to the original message. - Message^ responseMsg = gcnew Message("Example Response Message Body"); - - // Set the response message's CorrelationId property value to the Id - // property value of the original message. - responseMsg->CorrelationId = id; - - // Send the response message to the transactional queue. - transQueue->Send(responseMsg, "Example Response Message Label", - MessageQueueTransactionType::Single); - - // Set the transactional queue's MessageReadPropertyFilter property to - // ensure that the response message includes the desired properties. - transQueue->MessageReadPropertyFilter->CorrelationId = true; - - // Create a message queuing transaction. - MessageQueueTransaction^ transaction = gcnew MessageQueueTransaction(); - - try - { - // Begin a transaction. - transaction->Begin(); - - // Receive the response message from the transactional queue. - responseMsg = transQueue->ReceiveByCorrelationId(id, - TimeSpan::FromSeconds(10.0), transaction); - - // Commit the transaction. - transaction->Commit(); - } - catch (Exception^ ex) - { - // Cancel the transaction. - transaction->Abort(); - - // Propagate the exception. - throw ex; - } - finally - { - // Dispose of the transaction object. - delete transaction; - transQueue->Close(); - queue->Close(); - } - - // Display the response message's property values. - Console::WriteLine("Message.Label: {0}", responseMsg->Label); - Console::WriteLine("Message.CorrelationId: {0}", - responseMsg->CorrelationId); - - // -} - -void ReceiveByCorrelationIdStringTransaction() -{ - // - - // Connect to a nontransactional queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message to the nontransactional queue. - queue->Send(msg, "Example Message Label"); - - // Get the message's Id property value. - String^ id = msg->Id; - - // Receive the message from the nontransactional queue. - msg = queue->ReceiveById(id, TimeSpan::FromSeconds(10.0)); - - // Connect to a transactional queue on the local computer. - MessageQueue^ transQueue = - gcnew MessageQueue(".\\exampleTransQueue"); - - // Create a new message in response to the original message. - Message^ responseMsg = gcnew Message("Example Response Message Body"); - - // Set the response message's CorrelationId property value to the Id - // property value of the original message. - responseMsg->CorrelationId = id; - - // Send the response message to the transactional queue. - transQueue->Send(responseMsg, "Example Response Message Label", - MessageQueueTransactionType::Single); - - // Simulate doing other work so the message has time to arrive. - System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0)); - - // Set the transactional queue's MessageReadPropertyFilter property to - // ensure that the response message includes the desired properties. - transQueue->MessageReadPropertyFilter->CorrelationId = true; - - // Create a message queuing transaction. - MessageQueueTransaction^ transaction = gcnew MessageQueueTransaction(); - - try - { - // Begin a transaction. - transaction->Begin(); - - // Receive the response message from the transactional queue. - responseMsg = transQueue->ReceiveByCorrelationId(id, transaction); - - // Commit the transaction. - transaction->Commit(); - } - catch (Exception^ ex) - { - // Cancel the transaction. - transaction->Abort(); - - // Propagate the exception. - throw ex; - } - finally - { - // Dispose of the transaction object. - delete transaction; - transQueue->Close(); - queue->Close(); - } - - // Display the response message's property values. - Console::WriteLine("Message.Label: {0}", responseMsg->Label); - Console::WriteLine("Message.CorrelationId: {0}", - responseMsg->CorrelationId); - - // -} - -void ReceiveByIdStringTransactionType() -{ - // - - // Connect to a transactional queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleTransQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message. - queue->Send(msg, "Example Message Label", - MessageQueueTransactionType::Single); - - // Get the message's Id property value. - String^ id = msg->Id; - - // Simulate doing other work so the message has time to arrive. - System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0)); - - // Receive the message from the queue. - msg = queue->ReceiveById(id, MessageQueueTransactionType::Single); - - queue->Close(); - - // -} - -void ReceiveByIdString() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message. - queue->Send(msg, "Example Message Label"); - - // Get the message's Id property value. - String^ id = msg->Id; - - // Simulate doing other work so the message has time to arrive. - System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0)); - - // Receive the message from the queue. - msg = queue->ReceiveById(id); - - queue->Close(); - - // -} - -void ReceiveByIdStringTransaction() -{ - // - - // Connect to a transactional queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleTransQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message. - queue->Send(msg, "Example Message Label", - MessageQueueTransactionType::Single); - - // Get the message's Id property value. - String^ id = msg->Id; - - // Simulate doing other work so the message has time to arrive. - System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0)); - - // Create a message queuing transaction. - MessageQueueTransaction^ transaction = gcnew MessageQueueTransaction(); - - try - { - // Begin a transaction. - transaction->Begin(); - - // Receive the message from the queue. - msg = queue->ReceiveById(id, transaction); - - // Commit the transaction. - transaction->Commit(); - } - catch (Exception^ ex) - { - // Cancel the transaction. - transaction->Abort(); - - // Propagate the exception. - throw ex; - } - finally - { - // Dispose of the transaction object. - delete transaction; - queue->Close(); - } - - // -} - -void ReceiveByIdStringTimespanTransaction() -{ - // - - // Connect to a transactional queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleTransQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message. - queue->Send(msg, "Example Message Label", - MessageQueueTransactionType::Single); - - // Get the message's Id property value. - String^ id = msg->Id; - - // Create a message queuing transaction. - MessageQueueTransaction^ transaction = gcnew MessageQueueTransaction(); - - try - { - // Begin a transaction. - transaction->Begin(); - - // Receive the message from the queue. - msg = queue->ReceiveById(id, TimeSpan::FromSeconds(10.0), - transaction); - - // Commit the transaction. - transaction->Commit(); - } - catch (Exception^ ex) - { - // Cancel the transaction. - transaction->Abort(); - - // Propagate the exception. - throw ex; - } - finally - { - // Dispose of the transaction object. - delete transaction; - queue->Close(); - } - - // -} - -void ReceiveByIdStringTimespanTransactionType() -{ - // - - // Connect to a transactional queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleTransQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message. - queue->Send(msg, "Example Message Label", - MessageQueueTransactionType::Single); - - // Get the message's Id property value. - String^ id = msg->Id; - - // Receive the message from the queue. - msg = queue->ReceiveById(id, TimeSpan::FromSeconds(10.0), - MessageQueueTransactionType::Single); - - queue->Close(); - - // -} - -void ReceiveByIdStringTimespan() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new message. - Message^ msg = gcnew Message("Example Message Body"); - - // Send the message. - queue->Send(msg, "Example Message Label"); - - // Get the message's Id property value. - String^ id = msg->Id; - - // Receive the message from the queue. - msg = queue->ReceiveById(id, TimeSpan::FromSeconds(10.0)); - - queue->Close(); - - // -} - -void GetAllMessages() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Populate an array with copies of all the messages in the queue. - array^ msgs = queue->GetAllMessages(); - - // Loop through the messages. - for each(Message^ msg in msgs) - { - // Display the label of each message. - Console::WriteLine(msg->Label); - } - - queue->Close(); - - // -} - -void GetEnumerator() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Get an IEnumerator object. - System::Collections::IEnumerator^ enumerator = - queue->GetMessageEnumerator2(); - - // Use the IEnumerator object to loop through the messages. - while(enumerator->MoveNext()) - { - // Get a message from the enumerator. - Message^ msg = (Message^)enumerator->Current; - - // Display the label of the message. - Console::WriteLine(msg->Label); - } - - queue->Close(); - - // -} - -void SetPermissionsStringAccessRights() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Grant all users in the "Everyone" user group the right to receive - // messages from the queue. - queue->SetPermissions("Everyone", - MessageQueueAccessRights::ReceiveMessage); - - queue->Close(); - - // -} - -void SetPermissionsAccessControlEntry() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new trustee to represent the "Everyone" user group. - Trustee^ tr = gcnew Trustee("Everyone"); - - // Create a MessageQueueAccessControlEntry, granting the trustee the - // right to receive messages from the queue. - MessageQueueAccessControlEntry^ entry = gcnew - MessageQueueAccessControlEntry( - tr, MessageQueueAccessRights::ReceiveMessage, - AccessControlEntryType::Allow); - - // Apply the MessageQueueAccessControlEntry to the queue. - queue->SetPermissions(entry); - - queue->Close(); - - // -} - -void SetPermissionsStringAccessRightsAccessControlEntryType() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Grant all users in the "Everyone" user group the right to receive - // messages from the queue. - queue->SetPermissions("Everyone", - MessageQueueAccessRights::ReceiveMessage, - AccessControlEntryType::Allow); - - queue->Close(); - - // -} - -void SetPermissionsAccessControlList() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create an AccessControlList. - AccessControlList^ list = gcnew AccessControlList(); - - // Create a new trustee to represent the "Everyone" user group. - Trustee^ tr = gcnew Trustee("Everyone"); - - // Create an AccessControlEntry, granting the trustee read access to - // the queue. - AccessControlEntry^ entry = gcnew AccessControlEntry( - tr, GenericAccessRights::Read, - StandardAccessRights::Read, - AccessControlEntryType::Allow); - - // Add the AccessControlEntry to the AccessControlList. - list->Add(entry); - - // Apply the AccessControlList to the queue. - queue->SetPermissions(list); - - queue->Close(); - - // -} - -void ResetPermissions() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Reset the queue's permission list to its default values. - queue->ResetPermissions(); - - queue->Close(); - - // -} - -void Refresh() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Refresh the queue's property values to obtain its current state. - queue->Refresh(); - - queue->Close(); - - // -} - -void Purge() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Delete all messages from the queue. - queue->Purge(); - - queue->Close(); - - // -} - -void main() -{ - try - { - // Create a nontransactional queue on the local computer. - // Note that the queue might not be immediately accessible, and - // therefore this example might throw an exception of type - // System.Messaging.MessageQueueException when trying to send a - // message to the newly created queue. - CreateQueue(".\\exampleQueue", false); - - // Create a nontransactional queue on the local computer. This - // queue will be used to receive acknowledgement messages. - CreateQueue(".\\exampleAdminQueue", false); - - // Create a transactional queue on the local computer. - CreateQueue(".\\exampleTransQueue", true); - - // Send a message to a queue. - SendObjectString(); - - // Send a message to a transactional queue. - SendObjectTransactionType(); - - // Send a message to a transactional queue. - SendObjectStringTransactionType(); - - // Send a message to a transactional queue. - SendObjectStringTransaction(); - - // Demonstrate PeekById. - PeekByIdString(); - - // Demonstrate PeekById. - PeekByIdStringTimespan(); - - // Demonstrate PeekByCorrelationId. - PeekByCorrelationIdStringTimespan(); - - // Receive a message from a transactional queue. - ReceiveTimespanTransactionType(); - - // Receive a message from a transactional queue. - ReceiveTransactionType(); - - // Demonstrate ReceiveByCorrelationId. - ReceiveByCorrelationIdStringTimespan(); - - // Demonstrate ReceiveByCorrelationId. - ReceiveByCorrelationIdStringTransactionType(); - - // Demonstrate ReceiveByCorrelationId. - ReceiveByCorrelationIdStringTimespanTransactionType(); - - // Demonstrate ReceiveByCorrelationId. - ReceiveByCorrelationIdStringTimespanTransaction(); - - // Demonstrate ReceiveByCorrelationId. - ReceiveByCorrelationIdStringTransaction(); - - // Demonstrate ReceiveById. - ReceiveByIdStringTransactionType(); - - // Demonstrate ReceiveById. - ReceiveByIdString(); - - // Demonstrate ReceiveById. - ReceiveByIdStringTransaction(); - - // Demonstrate ReceiveById. - ReceiveByIdStringTimespanTransaction(); - - // Demonstrate ReceiveById. - ReceiveByIdStringTimespanTransactionType(); - - // Demonstrate ReceiveById. - ReceiveByIdStringTimespan(); - - // Demonstrate GetAllMessages. - GetAllMessages(); - - // Demonstrate GetEnumerator. - GetEnumerator(); - - // Demonstrate SetPermissions. - SetPermissionsStringAccessRights(); - - // Demonstrate SetPermissions. - SetPermissionsAccessControlEntry(); - - // Demonstrate SetPermissions. - SetPermissionsStringAccessRightsAccessControlEntryType(); - - // Demonstrate SetPermissions. - SetPermissionsAccessControlList(); - - // Demonstrate ResetPermissions. - ResetPermissions(); - - // Demonstrate Refresh. - Refresh(); - - // Demonstrate Purge. - Purge(); - } - catch (InvalidOperationException^) - { - Console::WriteLine("Please install Message Queuing."); - } - catch (MessageQueueException^ ex) - { - // Write the exception information to the console. - Console::WriteLine(ex->Message); - } -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue2/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue2/cpp/makefile deleted file mode 100644 index 03224e4c8d8d6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue2/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -MessageQueue2.exe : class1.cpp - cl /W4 /clr:pure /FeMessageQueue2.exe class1.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue4/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue4/cpp/class1.cpp deleted file mode 100644 index 27cc2fcd0f3c8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue4/cpp/class1.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// - -#using -#using - -using namespace System; -using namespace System::Messaging; - -// Create a new queue. -static void CreateQueue(String^ queuePath, bool transactional) -{ - if (!MessageQueue::Exists(queuePath)) - { - MessageQueue^ queue = MessageQueue::Create(queuePath, transactional); - queue->Close(); - } - else - { - Console::WriteLine("{0} already exists.", queuePath); - } -} - -static void UseQueue() -{ - // - // Connect to a queue on the local computer, grant exclusive read - // access to the first application that accesses the queue, and - // enable connection caching. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue", true, true); - - queue->Close(); - // -} - -int main() -{ - // Create a nontransactional queue on the local computer. - CreateQueue(".\\exampleQueue", false); - - UseQueue(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue4/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue4/cpp/makefile deleted file mode 100644 index 638386ac1e59c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueue4/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -MessageQueue4.exe : class1.cpp - cl /W4 /clr:pure /FeMessageQueue4.exe class1.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginPeek/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginPeek/cpp/class1.cpp deleted file mode 100644 index bd142a855da0a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginPeek/cpp/class1.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -// Creates a new queue. -void CreateQueue(String^ queuePath, bool transactional) -{ - if(!MessageQueue::Exists(queuePath)) - { - MessageQueue^ queue = MessageQueue::Create(queuePath, transactional); - queue->Close(); - } - else - { - Console::WriteLine("{0} already exists.", queuePath); - } -} - -// Provides an event handler for the PeekCompleted event. -void MyPeekCompleted(IAsyncResult^ asyncResult) -{ - // Connect to the queue. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // End the asynchronous peek operation. - Message^ msg = queue->EndPeek(asyncResult); - - // Display the message information on the screen. - Console::WriteLine("Message number: {0}", asyncResult->AsyncState); - Console::WriteLine("Message body: {0}", msg->Body); - - // Receive the message. This will remove the message from the queue. - msg = queue->Receive(TimeSpan::FromSeconds(10.0)); - - queue->Close(); -} - -int main() -{ - // Represents a state object associated with each message. - int messageNumber = 0; - - // Create a non-transactional queue on the local computer. - // Note that the queue might not be immediately accessible, and - // therefore this example might throw an exception of type - // System.Messaging.MessageQueueException when trying to send a - // message to the newly created queue. - CreateQueue(".\\exampleQueue", false); - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Send a message to the queue. - queue->Send("Example Message"); - - // Begin the asynchronous peek operation. - queue->BeginPeek(TimeSpan::FromSeconds(10.0), messageNumber++, - gcnew AsyncCallback(MyPeekCompleted)); - - // Simulate doing other work on the current thread. - System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0)); - - queue->Close(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginPeek/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginPeek/cpp/makefile deleted file mode 100644 index 176fc9b351425..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginPeek/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -MessageQueueBeginPeek.exe: class1.cpp - cl /clr:pure /FeMessageQueueBeginPeek.exe class1.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive1/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive1/cpp/class1.cpp deleted file mode 100644 index f55dd96f51c9f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive1/cpp/class1.cpp +++ /dev/null @@ -1,82 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -// Creates a new queue. -void CreateQueue(String^ queuePath, bool transactional) -{ - if(!MessageQueue::Exists(queuePath)) - { - MessageQueue^ queue = MessageQueue::Create(queuePath, transactional); - queue->Close(); - } - else - { - Console::WriteLine("{0} already exists.", queuePath); - } -} - -// Provides an event handler for the ReceiveCompleted event. -void HandleReceiveCompleted(Object^ source, ReceiveCompletedEventArgs^ e) -{ - // Connect to the queue. - MessageQueue^ queue = (MessageQueue^)source; - - // End the asynchronous receive operation. - Message^ msg = queue->EndReceive(e->AsyncResult); - - // Display the message information on the screen. - Console::WriteLine("Message body: {0}", msg->Body); - - queue->Close(); -} - -int main() -{ - // Create a non-transactional queue on the local computer. - // Note that the queue might not be immediately accessible, and - // therefore this example might throw an exception of type - // System.Messaging.MessageQueueException when trying to send a - // message to the newly created queue. - MessageQueue^ queue = nullptr; - try - { - CreateQueue(".\\exampleQueue", false); - - // Connect to a queue on the local computer. - queue = gcnew MessageQueue(".\\exampleQueue"); - - // Add an event handler for the ReceiveCompleted event. - queue->ReceiveCompleted += gcnew - ReceiveCompletedEventHandler(HandleReceiveCompleted); - - // Send a message to the queue. - queue->Send("Example Message"); - - // Begin the asynchronous receive operation. - queue->BeginReceive(TimeSpan::FromSeconds(10.0)); - - // Simulate doing other work on the current thread. - System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0)); - } - - catch (InvalidOperationException^) - { - Console::WriteLine("Please install Message Queuing."); - } - - catch (MessageQueueException^ ex) - { - Console::WriteLine(ex->Message); - } - - finally - { - queue->Close(); - } - -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive1/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive1/cpp/makefile deleted file mode 100644 index e0058c351763e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive1/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -MessageQueueBeginReceive1.exe: class1.cpp - cl /clr:pure /FeMessageQueueBeginReceive1.exe class1.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive2/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive2/cpp/class1.cpp deleted file mode 100644 index b75428d1df71c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive2/cpp/class1.cpp +++ /dev/null @@ -1,86 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -// Creates a new queue. -void CreateQueue(String^ queuePath, bool transactional) -{ - if(!MessageQueue::Exists(queuePath)) - { - MessageQueue^ queue = MessageQueue::Create(queuePath, transactional); - queue->Close(); - } - else - { - Console::WriteLine("{0} already exists.", queuePath); - } -} - -// Provides an event handler for the ReceiveCompleted event. -void HandleReceiveCompleted(Object^ source, ReceiveCompletedEventArgs^ e) -{ - // Connect to the queue. - MessageQueue^ queue = (MessageQueue^)source; - - // End the asynchronous receive operation. - Message^ msg = queue->EndReceive(e->AsyncResult); - - // Display the message information on the screen. - Console::WriteLine("Message number: {0}", e->AsyncResult->AsyncState); - Console::WriteLine("Message body: {0}", msg->Body); - - queue->Close(); -} - -int main() -{ - // Create a non-transactional queue on the local computer. - // Note that the queue might not be immediately accessible, and - // therefore this example might throw an exception of type - // System.Messaging.MessageQueueException when trying to send a - // message to the newly created queue. - MessageQueue^ queue = nullptr; - - // Represents a state object associated with each message. - int messageNumber = 0; - - try - { - CreateQueue(".\\exampleQueue", false); - - // Connect to a queue on the local computer. - queue = gcnew MessageQueue(".\\exampleQueue"); - - // Add an event handler for the ReceiveCompleted event. - queue->ReceiveCompleted += gcnew - ReceiveCompletedEventHandler(HandleReceiveCompleted); - - // Send a message to the queue. - queue->Send("Example Message"); - - // Begin the asynchronous receive operation. - queue->BeginReceive(TimeSpan::FromSeconds(10.0), messageNumber++); - - // Simulate doing other work on the current thread. - System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0)); - } - catch (InvalidOperationException^) - { - Console::WriteLine("Please install Message Queuing."); - } - - catch (MessageQueueException^ ex) - { - Console::WriteLine(ex->Message); - } - - finally - { - queue->Close(); - } -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive2/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive2/cpp/makefile deleted file mode 100644 index 9f2a5f5a0720d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive2/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -MessageQueueBeginReceive2.exe: class1.cpp - cl /clr:pure /FeMessageQueueBeginReceive2.exe class1.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive3/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive3/cpp/class1.cpp deleted file mode 100644 index a60adfa80c763..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive3/cpp/class1.cpp +++ /dev/null @@ -1,81 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::Messaging; - -// Creates a new queue. -void CreateQueue(String^ queuePath, bool transactional) -{ - if (!MessageQueue::Exists(queuePath)) - { - MessageQueue^ queue = MessageQueue::Create(queuePath, transactional); - queue->Close(); - } - else - { - Console::WriteLine("{0} already exists.", queuePath); - } -} - -// Provides an event handler for the ReceiveCompleted event. -void HandleReceiveCompleted(IAsyncResult^ asyncResult) -{ - // Connect to the queue. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // End the asynchronous receive operation. - Message^ msg = queue->EndReceive(asyncResult); - - // Display the message information on the screen. - Console::WriteLine("Message number: {0}", asyncResult->AsyncState); - Console::WriteLine("Message body: {0}", msg->Body); - - queue->Close(); -} - -int main() -{ - // Represents a state object associated with each message. - int messageNumber = 0; - - // Create a non-transactional queue on the local computer. - // Note that the queue might not be immediately accessible, and - // therefore this example might throw an exception of type - // System.Messaging.MessageQueueException when trying to send a - // message to the newly created queue. - MessageQueue^ queue = nullptr; - try - { - CreateQueue(".\\exampleQueue", false); - - // Connect to a queue on the local computer. - queue = gcnew MessageQueue(".\\exampleQueue"); - - // Send a message to the queue. - queue->Send("Example Message"); - - // Begin the asynchronous receive operation. - queue->BeginReceive(TimeSpan::FromSeconds(10.0), messageNumber++, - gcnew AsyncCallback(HandleReceiveCompleted)); - - // Simulate doing other work on the current thread. - System::Threading::Thread::Sleep(TimeSpan::FromSeconds(10.0)); - } - catch (InvalidOperationException^) - { - Console::WriteLine("Please install Message Queuing."); - } - - catch (MessageQueueException^ ex) - { - Console::WriteLine(ex->Message); - } - - finally - { - queue->Close(); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive3/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive3/cpp/makefile deleted file mode 100644 index 9efb68a4d4ef9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueueBeginReceive3/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -MessageQueueBeginReceive3.exe: class1.cpp - cl /FeMessageQueueBeginReceive3.exe /clr:pure class1.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionAccess/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionAccess/cpp/class1.cpp deleted file mode 100644 index e77794103caff..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionAccess/cpp/class1.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// - -#using -#using - -using namespace System; -using namespace System::Messaging; - -// Creates a new queue. -void CreateQueue(String^ queuePath, bool transactional) -{ - if (!MessageQueue::Exists(queuePath)) - { - MessageQueue^ queue = MessageQueue::Create(queuePath, transactional); - queue->Close(); - } - else - { - Console::WriteLine("{0} already exists.",queuePath); - } -} - -// Demonstrates the use of MessageQueuePermissionAccess -void CreatePermission() -{ - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermission. - MessageQueuePermission^ permission = gcnew MessageQueuePermission( - MessageQueuePermissionAccess::Receive, queue->MachineName, - queue->Label, queue->Category.ToString()); - - queue->Close(); - // -} - -int main() -{ - try - { - - // Create a non-transactional queue on the local computer. - CreateQueue(".\\exampleQueue", false); - - // Demonstrate use of MessageQueuePermissionAccess. - CreatePermission(); - } - - catch (InvalidOperationException^) - { - Console::WriteLine("Please install Message Queuing."); - } - - catch (MessageQueueException^ ex) - { - Console::WriteLine(ex->Message); - } -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionAccess/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionAccess/cpp/makefile deleted file mode 100644 index a5b8094e50aae..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionAccess/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -MessageQueuePermissionAccess.exe : class1.cpp - cl /W4 /clr:pure /FeMessageQueuePermissionAccess.exe class1.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionAttribute/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionAttribute/cpp/class1.cpp deleted file mode 100644 index c5679d136b80c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionAttribute/cpp/class1.cpp +++ /dev/null @@ -1,213 +0,0 @@ -// - -#using -#using - -using namespace System; -using namespace System::Messaging; - -// Creates a new queue. -void CreateQueue(String^ queuePath, bool transactional) -{ - if (!MessageQueue::Exists(queuePath)) - { - MessageQueue^ queue = MessageQueue::Create(queuePath, transactional); - queue->Close(); - } - else - { - Console::WriteLine("{0} already exists.", queuePath); - } -} - -// Demonstrates the following MessageQueuePermissionAttribute constructor: -// public #ctor (SecurityAction action) -void CreateAttribute() -{ - // - - // Create a new instance of MessageQueuePermissionAttribute. - MessageQueuePermissionAttribute^ attribute = - gcnew MessageQueuePermissionAttribute( - System::Security::Permissions::SecurityAction::Assert); - - // -} - - -void CategoryExample() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermissionAttribute. - MessageQueuePermissionAttribute^ attribute = - gcnew MessageQueuePermissionAttribute( - System::Security::Permissions::SecurityAction::Assert); - - // Set the attribute's Category property value, based on the queue's - // Category property value. - attribute->Category = queue->Category.ToString(); - - // Display the new value of the attribute's Category property. - Console::WriteLine("attribute->Category: {0}", - attribute->Category); - - queue->Close(); - // -} - -void LabelExample() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermissionAttribute. - MessageQueuePermissionAttribute^ attribute = - gcnew MessageQueuePermissionAttribute( - System::Security::Permissions::SecurityAction::Assert); - - // Set the attribute's Label property value, based on the queue's Label - // property value. - attribute->Label = queue->Label; - - // Display the new value of the attribute's Label property. - Console::WriteLine("attribute->Label: {0}", attribute->Label); - - queue->Close(); - // -} - - -void MachineNameExample() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermissionAttribute. - MessageQueuePermissionAttribute^ attribute = - gcnew MessageQueuePermissionAttribute( - System::Security::Permissions::SecurityAction::Assert); - - // Set the attribute's MachineName property value, based on the queue's - // MachineName property value. - attribute->MachineName = queue->MachineName; - - // Display the new value of the attribute's MachineName property. - Console::WriteLine("attribute->MachineName: {0}", - attribute->MachineName); - - queue->Close(); - // -} - -void PathExample() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermissionAttribute. - MessageQueuePermissionAttribute^ attribute = - gcnew MessageQueuePermissionAttribute( - System::Security::Permissions::SecurityAction::Assert); - - // Set the attribute's Path property value, based on the queue's Path - // property value. - attribute->Path = queue->Path; - - // Display the new value of the attribute's Path property. - Console::WriteLine("attribute->Path: {0}", attribute->Path); - - queue->Close(); - // -} - -void PermissionAccessExample() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermissionAttribute. - MessageQueuePermissionAttribute^ attribute = - gcnew MessageQueuePermissionAttribute( - System::Security::Permissions::SecurityAction::Assert); - - // Set the attribute's PermissionAccess property value. - attribute->PermissionAccess = MessageQueuePermissionAccess::Receive; - - // Display the new value of the attribute's PermissionAccess property. - Console::WriteLine("attribute->PermissionAccess: {0}", - attribute->PermissionAccess); - - queue->Close(); - // -} - -void CreatePermissionExample() -{ - // - - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermissionAttribute. - MessageQueuePermissionAttribute^ attribute = - gcnew MessageQueuePermissionAttribute( - System::Security::Permissions::SecurityAction::Assert); - - // Set the attribute's Path property value, based on the queue's Path - // property value. - attribute->Path = queue->Path; - - // Get an IPermission interface by calling the attribute's - // CreatePermission() method. - System::Security::IPermission^ permission = attribute->CreatePermission(); - - queue->Close(); - // -} - -int main() -{ - try - { - - // Create a non-transactional queue on the local computer. - CreateQueue(".\\exampleQueue", false); - - // Demonstrate the members of MessageQueuePermissionAttribute. - // Note that the Path, FormatName, MachineName, Label, and Category - // property values cannot all be set on the same instance of - // MessageQueuePermissionAttribute. Trying to do so will throw an - // exception of type System.InvalidOperationException. - - CreateAttribute(); - CategoryExample(); - LabelExample(); - MachineNameExample(); - PathExample(); - PermissionAccessExample(); - CreatePermissionExample(); - } - - catch (InvalidOperationException^) - { - Console::WriteLine("Please install Message Queuing."); - } - - catch (MessageQueueException^ ex) - { - Console::WriteLine(ex->Message); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionAttribute/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionAttribute/cpp/makefile deleted file mode 100644 index a39af17a883dc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionAttribute/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -MessageQueuePermissionAttribute.exe : class1.cpp - cl /W4 /clr:pure /FeMessageQueuePermissionAttribute.exe class1.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionEntry/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionEntry/cpp/class1.cpp deleted file mode 100644 index 50c49a55ddcf0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionEntry/cpp/class1.cpp +++ /dev/null @@ -1,208 +0,0 @@ -// - -#using -#using - -using namespace System; -using namespace System::Messaging; - -public ref class MessageQueuePermissionEntryExample -{ - // Creates a new queue. -public: - static void CreateQueue(String^ queuePath, bool transactional) - { - if(!MessageQueue::Exists(queuePath)) - { - MessageQueue^ queue = MessageQueue::Create(queuePath, transactional); - queue->Close(); - } - else - { - Console::WriteLine("{0} already exists.", queuePath); - } - } - - // Demonstrates the following MessageQueuePermission constructor: - // public #ctor (MessageQueuePermissionAccess permissionAccess, - // String path) -public: - void CreateEntryShortCtor() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->Path); - - queue->Close(); - // - } - - // Demonstrates the following MessageQueuePermission constructor: - // public #ctor (MessageQueuePermissionAccess permissionAccess, - // String machineName, String label, String category) -public: - void CreateEntryLongCtor() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->MachineName, - queue->Label, - queue->Category.ToString()); - - queue->Close(); - // - } - -public: - void CategoryExample() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->MachineName, - queue->Label, - queue->Category.ToString()); - - // Display the value of the entry's Category property. - Console::WriteLine("Category: {0}", entry->Category->ToString()); - - queue->Close(); - // - } - -public: - void LabelExample() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->MachineName, - queue->Label, - queue->Category.ToString()); - - // Display the value of the entry's Label property. - Console::WriteLine("Label: {0}", entry->Label); - - queue->Close(); - // - } - -public: - void MachineNameExample() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->MachineName, - queue->Label, - queue->Category.ToString()); - - // Display the value of the entry's MachineName property. - Console::WriteLine("MachineName: {0}", entry->MachineName); - - queue->Close(); - // - } - -public: - void PathExample() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->Path); - - // Display the value of the entry's Path property. - Console::WriteLine("Path: {0}", entry->Path); - - queue->Close(); - // - } - -public: - void PermissionAccessExample() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->MachineName, - queue->Label, - queue->Category.ToString()); - - // Display the value of the entry's PermissionAccess property. - Console::WriteLine("PermissionAccess: {0}", entry->PermissionAccess); - - queue->Close(); - // - } -}; - -int main() -{ - // Create a new instance of the class. - MessageQueuePermissionEntryExample^ example = - gcnew MessageQueuePermissionEntryExample(); - - try - { - // Create a non-transactional queue on the local computer. - // Note that the queue might not be immediately accessible, and - // therefore this example might throw an exception of type - // System.Messaging.MessageQueueException when trying to send a - // message to the newly created queue. - example->CreateQueue(".\\exampleQueue", false); - - // Demonstrate MessageQueuePermissionEntry's constructors. - example->CreateEntryShortCtor(); - example->CreateEntryLongCtor(); - - // Demonstrate MessageQueuePermissionEntry's properties. - example->CategoryExample(); - example->LabelExample(); - example->MachineNameExample(); - example->PathExample(); - example->PermissionAccessExample(); - } - - catch (InvalidOperationException^) - { - Console::WriteLine("Please install Message Queuing."); - } - - catch (MessageQueueException^ ex) - { - // Write the exception information to the console. - Console::WriteLine(ex->Message); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionEntry/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionEntry/cpp/makefile deleted file mode 100644 index a8d395ad158ac..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionEntry/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -MessageQueuePermissionEntry.exe: class1.cpp - cl /clr:pure /FeMessageQueuePermissionEntry.exe class1.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionEntryCollection/cpp/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionEntryCollection/cpp/class1.cpp deleted file mode 100644 index 01ab6fd2ada08..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionEntryCollection/cpp/class1.cpp +++ /dev/null @@ -1,408 +0,0 @@ -// - -#using -#using -using namespace System; -using namespace System::Messaging; - -public ref class MessageQueuePermissionEntryCollectionExample -{ - // Demonstrates: - // public Int32 Add (MessageQueuePermissionEntry value) -public: - void AddExample() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermission. - MessageQueuePermission^ permission = gcnew MessageQueuePermission(); - - // Get an instance of MessageQueuePermissionEntryCollection from the - // permission's PermissionEntries property. - MessageQueuePermissionEntryCollection^ collection = - permission->PermissionEntries; - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->MachineName, - queue->Label, queue->Category.ToString()); - - // Add the entry to the collection. - collection->Add(entry); - - queue->Close(); - // - } - - // Demonstrates: - // public Void AddRange (MessageQueuePermissionEntry[] value) -public: - void AddRangeExample1() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermission. - MessageQueuePermission^ permission = gcnew MessageQueuePermission(); - - // Get an instance of MessageQueuePermissionEntryCollection from the - // permission's PermissionEntries property. - MessageQueuePermissionEntryCollection^ collection = - permission->PermissionEntries; - - // Create an array of type MessageQueuePermissionEntry. - array^ entries = - gcnew array(1); - - // Create a new instance of MessageQueuePermissionEntry and place the - // instance in the array. - entries[0] = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->MachineName, - queue->Label, - queue->Category.ToString()); - - // Add the array to the collection. - collection->AddRange(entries); - - queue->Close(); - // - } - - // Demonstrates: - // public Void AddRange (MessageQueuePermissionEntryCollection value) -public: - void AddRangeExample2() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermission. - MessageQueuePermission^ permission = gcnew MessageQueuePermission(); - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->MachineName, - queue->Label, queue->Category.ToString()); - - // Add the entry to the permission's collection. - permission->PermissionEntries->Add(entry); - - // Create another new instance of MessageQueuePermission. - MessageQueuePermission^ newPermission = gcnew MessageQueuePermission(); - - // Use AddRange() to append the original permission's collection to the - // new permission's collection. - newPermission->PermissionEntries->AddRange( - permission->PermissionEntries); - - // To show that AddRange() copies collections by value and not by - // reference, we'll clear the original permission's collection, then - // display a count of how many entries are in the original permission's - // collection and how many entries are in the new permission's - // collection. - - // Clear the original permission's collection. - permission->PermissionEntries->Clear(); - - // The original permission now contains 0 entries, but the new - // permission still contains 1 entry. - Console::WriteLine("Original permission contains {0} entries.", - permission->PermissionEntries->Count); - Console::WriteLine("New permission contains {0} entries.", - newPermission->PermissionEntries->Count); - - queue->Close(); - // - } - - // Demonstrates: - // public Boolean Contains (MessageQueuePermissionEntry value) -public: - void ContainsExample() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermission. - MessageQueuePermission^ permission = gcnew MessageQueuePermission(); - - // Get an instance of MessageQueuePermissionEntryCollection from the - // permission's PermissionEntries property. - MessageQueuePermissionEntryCollection^ collection = - permission->PermissionEntries; - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->MachineName, - queue->Label, - queue->Category.ToString()); - - // Add the entry to the collection. - collection->Add(entry); - - // Show that the collection contains the entry. - Console::WriteLine("Collection contains first entry (true/false): {0}", - collection->Contains(entry)); - - // Create another new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ newEntry = - gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Send, - queue->MachineName, - queue->Label, - queue->Category.ToString()); - - // Show that the collection does not contain the new entry. - Console::WriteLine( - "Collection contains second entry (true/false): {0}", - collection->Contains(newEntry)); - - queue->Close(); - // - } - - // Demonstrates: - // public Void CopyTo (MessageQueuePermissionEntry[] array, Int32 index) -public: - void CopyToExample() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermission. - MessageQueuePermission^ permission = gcnew MessageQueuePermission(); - - // Get an instance of MessageQueuePermissionEntryCollection from the - // permission's PermissionEntries property. - MessageQueuePermissionEntryCollection^ collection = - permission->PermissionEntries; - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->MachineName, - queue->Label, - queue->Category.ToString()); - - // Add the entry to the collection. - collection->Add(entry); - - // Create an array of type MessageQueuePermissionEntry. - array^ entries = - gcnew array(1); - - // Copy the collection to index 0 of the array. - collection->CopyTo(entries, 0); - - // Show that the array now contains the entry. - Console::WriteLine("entries[0].PermissionAccess: {0}", - entries[0]->PermissionAccess); - Console::WriteLine("entries[0].MachineName: {0}", - entries[0]->MachineName); - Console::WriteLine("entries[0].Label: {0}", entries[0]->Label); - Console::WriteLine("entries[0].Category: {0}", - entries[0]->Category); - - queue->Close(); - // - } - - // Demonstrates: - // public Int32 IndexOf (MessageQueuePermissionEntry value) -public: - void IndexOfExample() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermission. - MessageQueuePermission^ permission = gcnew MessageQueuePermission(); - - // Get an instance of MessageQueuePermissionEntryCollection from the - // permission's PermissionEntries property. - MessageQueuePermissionEntryCollection^ collection = - permission->PermissionEntries; - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->MachineName, - queue->Label, - queue->Category.ToString()); - - // Add the entry to the collection. - collection->Add(entry); - - // Display the index of the entry in the collection. - Console::WriteLine("Collection contains entry at index: {0}", - collection->IndexOf(entry)); - - queue->Close(); - // - } - - // Demonstrates: - // public Void Insert (Int32 index, MessageQueuePermissionEntry value) -public: - void InsertExample() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermission. - MessageQueuePermission^ permission = gcnew MessageQueuePermission(); - - // Get an instance of MessageQueuePermissionEntryCollection from the - // permission's PermissionEntries property. - MessageQueuePermissionEntryCollection^ collection = - permission->PermissionEntries; - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->MachineName, - queue->Label, - queue->Category.ToString()); - - // Add the entry to the collection. - collection->Add(entry); - - // Create another new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ newEntry = - gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Send, - queue->MachineName, - queue->Label, - queue->Category.ToString()); - - // Insert the new entry into the collection before the original entry. - collection->Insert(0, newEntry); - - queue->Close(); - // - } - - // Demonstrates: - // public MessageQueuePermissionEntry Item [Int32 index] { get; set; } -public: - void ItemExample() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermission. - MessageQueuePermission^ permission = gcnew MessageQueuePermission(); - - // Get an instance of MessageQueuePermissionEntryCollection from the - // permission's PermissionEntries property. - MessageQueuePermissionEntryCollection^ collection = - permission->PermissionEntries; - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->MachineName, - queue->Label, - queue->Category.ToString()); - - // Add the entry to the collection. - collection->Add(entry); - - // Display the entry's properties, using the collection's Item - // accessor. - Console::WriteLine("collection[0].PermissionAccess: {0}", - collection[0]->PermissionAccess); - Console::WriteLine("collection[0].MachineName: {0}", - collection[0]->MachineName); - Console::WriteLine("collection[0].Label: {0}", collection[0]->Label); - Console::WriteLine("collection[0].Category: {0}", - collection[0]->Category); - - queue->Close(); - // - } - - // Demonstrates: - // public Void Remove (MessageQueuePermissionEntry value) -public: - void RemoveExample() - { - // - // Connect to a queue on the local computer. - MessageQueue^ queue = gcnew MessageQueue(".\\exampleQueue"); - - // Create a new instance of MessageQueuePermission. - MessageQueuePermission^ permission = gcnew MessageQueuePermission(); - - // Get an instance of MessageQueuePermissionEntryCollection from the - // permission's PermissionEntries property. - MessageQueuePermissionEntryCollection^ collection = - permission->PermissionEntries; - - // Create a new instance of MessageQueuePermissionEntry. - MessageQueuePermissionEntry^ entry = gcnew MessageQueuePermissionEntry( - MessageQueuePermissionAccess::Receive, - queue->MachineName, - queue->Label, - queue->Category.ToString()); - - // Add the entry to the collection. - collection->Add(entry); - - // Remove the entry from the collection. - collection->Remove(entry); - - queue->Close(); - // - } -}; - -// Creates a new queue. -void CreateQueue(String^ queuePath, bool transactional) -{ - if (!MessageQueue::Exists(queuePath)) - { - MessageQueue^ queue = MessageQueue::Create(queuePath, transactional); - queue->Close(); - } - else - { - Console::WriteLine("{0} already exists.", queuePath); - } -} - -int main() -{ - // Create a new instance of the class. - MessageQueuePermissionEntryCollectionExample^ example = - gcnew MessageQueuePermissionEntryCollectionExample(); - - // Create a non-transactional queue on the local computer. - CreateQueue(".\\exampleQueue", false); - - // Demonstrate MessageQueuePermissionEntryCollection's members. - example->AddExample(); - example->AddRangeExample1(); - example->AddRangeExample2(); - example->ContainsExample(); - example->CopyToExample(); - example->IndexOfExample(); - example->InsertExample(); - example->ItemExample(); - example->RemoveExample(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionEntryCollection/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionEntryCollection/cpp/makefile deleted file mode 100644 index b28e01adfd640..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessageQueuePermissionEntryCollection/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -MessageQueuePermissionEntryCollection.exe : class1.cpp - cl /clr:pure /FeMessageQueuePermissionEntryCollection.exe class1.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Message_Samples3/CPP/message_samples3.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Message_Samples3/CPP/message_samples3.cpp deleted file mode 100644 index ec5c5a7a24008..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Message_Samples3/CPP/message_samples3.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// System::Web::Services::Description.Message::FindPartsByName -// System::Web::Services::Description.Message::ServiceDescription -// System::Web::Services::Description.Message::FindPartByName - -/* The following program demonstrates the property ' ServiceDescription' and -methods 'FindPartsByName', 'FindPartByName' of class 'Message'. The program -reads a wsdl document S"MathService::wsdl" and instantiates a -ServiceDescription instance from WSDL document. -The program invokes 'FindPartsByName' to obtain an array of MessageParts and also invokes -'FindPartByName' to retrieve a specific 'MessagePart'. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; -int main() -{ - try - { - // - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_cpp.wsdl" ); - - // - // Get message from ServiceDescription. - Message^ myMessage1 = myServiceDescription->Messages[ "AddHttpPostIn" ]; - Console::WriteLine( "ServiceDescription : {0}", myMessage1->ServiceDescription ); - - // - array^myParts = gcnew array(2); - myParts[ 0 ] = "a"; - myParts[ 1 ] = "b"; - array^myMessageParts = myMessage1->FindPartsByName( myParts ); - Console::WriteLine( "Results of FindPartsByName operation:" ); - for ( int i = 0; i < myMessageParts->Length; ++i ) - { - Console::WriteLine( "Part Name: {0}", myMessageParts[ i ]->Name ); - Console::WriteLine( "Part Type: {0}", myMessageParts[ i ]->Type ); - } - // - // - // Get another message from ServiceDescription. - Message^ myMessage2 = myServiceDescription->Messages[ "DivideHttpGetOut" ]; - MessagePart^ myMessagePart = myMessage2->FindPartByName( "Body" ); - Console::WriteLine( "Results of FindPartByName operation:" ); - Console::WriteLine( "Part Name: {0}", myMessagePart->Name ); - Console::WriteLine( "Part Element: {0}", myMessagePart->Element ); - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MessagingBinaryFormatter/CPP/message_binaryformatter.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MessagingBinaryFormatter/CPP/message_binaryformatter.cpp deleted file mode 100644 index e5e40864ae4e6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MessagingBinaryFormatter/CPP/message_binaryformatter.cpp +++ /dev/null @@ -1,141 +0,0 @@ - - -// -#using -#using -#using - -using namespace System; -using namespace System::Messaging; -using namespace System::Drawing; -using namespace System::IO; - -/// -/// Provides a container class for the example. -/// -ref class MyNewQueue -{ -public: - - //************************************************* - // Creates a new queue. - //************************************************* - static void CreateQueue( String^ queuePath ) - { - try - { - if ( !MessageQueue::Exists( queuePath ) ) - { - MessageQueue::Create( queuePath ); - } - else - { - Console::WriteLine( "{0} already exists.", queuePath ); - } - } - catch ( MessageQueueException^ e ) - { - Console::WriteLine( e->Message ); - } - - } - - - //************************************************* - // Sends an image to a queue, using the BinaryMessageFormatter. - //************************************************* - void SendMessage() - { - try - { - - // Create a new bitmap. - // The file must be in the \bin\debug or \bin\retail folder, or - // you must give a full path to its location. - Image^ myImage = Bitmap::FromFile( "SentImage::bmp" ); - - // Connect to a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - Message^ myMessage = gcnew Message( myImage,gcnew BinaryMessageFormatter ); - - // Send the image to the queue. - myQueue->Send( myMessage ); - } - catch ( ArgumentException^ e ) - { - Console::WriteLine( e->Message ); - } - - return; - } - - - //************************************************* - // Receives a message containing an image. - //************************************************* - void ReceiveMessage() - { - try - { - - // Connect to the a queue on the local computer. - MessageQueue^ myQueue = gcnew MessageQueue( ".\\myQueue" ); - - // Set the formatter to indicate body contains an Order. - myQueue->Formatter = gcnew BinaryMessageFormatter; - - // Receive and format the message. - Message^ myMessage = myQueue->Receive(); - Bitmap^ myImage = static_cast(myMessage->Body); - - // This will be saved in the \bin\debug or \bin\retail folder. - myImage->Save( "ReceivedImage::bmp", System::Drawing::Imaging::ImageFormat::Bmp ); - } - catch ( MessageQueueException^ ) - { - - // Handle Message Queuing exceptions. - } - // Handle invalid serialization format. - catch ( InvalidOperationException^ e ) - { - Console::WriteLine( e->Message ); - } - catch ( IOException^ e ) - { - - // Handle file access exceptions. - } - - - // Catch other exceptions as necessary. - return; - } - -}; - - -//************************************************* -// Provides an entry point into the application. -// -// This example sends and receives a message from -// a queue. -//************************************************* -int main() -{ - - // Create a new instance of the class. - MyNewQueue^ myNewQueue = gcnew MyNewQueue; - - // Create a queue on the local computer. - MyNewQueue::CreateQueue( ".\\myQueue" ); - - // Send a message to a queue. - myNewQueue->SendMessage(); - - // Receive a message from a queue. - myNewQueue->ReceiveMessage(); - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MetaData.ConvertCodeSourceFileToAssemblyFile/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MetaData.ConvertCodeSourceFileToAssemblyFile/CPP/source.cpp deleted file mode 100644 index a60f0e1720b57..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MetaData.ConvertCodeSourceFileToAssemblyFile/CPP/source.cpp +++ /dev/null @@ -1,15 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting::MetadataServices; -int main() -{ - MetaData::ConvertCodeSourceFileToAssemblyFile( "CsSource.cs", "testAssm.dll", "" ); - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MetaData.ConvertTypesToSchemaToFile/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MetaData.ConvertTypesToSchemaToFile/CPP/source.cpp deleted file mode 100644 index c8665cf1b3c27..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MetaData.ConvertTypesToSchemaToFile/CPP/source.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting::Metadata; -using namespace System::Runtime::Remoting::MetadataServices; - -ref class TestClass -{ -private: - int integer; - -public: - static const double dFloatingPoint = 5.1999; - - property int Int - { - int get() - { - return integer; - } - void set( int value ) - { - integer = value; - } - } - void Print() - { - Console::WriteLine( "The double is equal to {0}.", dFloatingPoint ); - } -}; - -int main() -{ - array^types = gcnew array(4); - String^ s = "a"; - int i = -5; - double d = 3.1415; - TestClass^ tc = gcnew TestClass; - types[ 0 ] = s->GetType(); - types[ 1 ] = i.GetType(); - types[ 2 ] = d.GetType(); - types[ 3 ] = tc->GetType(); - MetaData::ConvertTypesToSchemaToFile( types, SdlType::Wsdl, "test.xml" ); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MetaData.ConvertTypesToSchemaToStream/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MetaData.ConvertTypesToSchemaToStream/CPP/source.cpp deleted file mode 100644 index 6fd71eb46d7b0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MetaData.ConvertTypesToSchemaToStream/CPP/source.cpp +++ /dev/null @@ -1,50 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting::Metadata; -using namespace System::Runtime::Remoting::MetadataServices; -using namespace System::IO; - -ref class TestClass -{ -private: - int integer; - -public: - static const double dFloatingPoint = 5.1999; - - property int Int - { - int get() - { - return integer; - } - void set( int value ) - { - integer = value; - } - } - void Print() - { - Console::WriteLine( "The double is equal to {0}.", dFloatingPoint ); - } -}; - -int main() -{ - array^types = gcnew array(4); - String^ s = "a"; - int i = -5; - double d = 3.1415; - TestClass^ tc = gcnew TestClass; - types[ 0 ] = s->GetType(); - types[ 1 ] = i.GetType(); - types[ 2 ] = i.GetType(); - types[ 3 ] = tc->GetType(); - FileStream^ fs = gcnew FileStream( "test.xml",FileMode::OpenOrCreate ); - MetaData::ConvertTypesToSchemaToStream( types, SdlType::Wsdl, fs ); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimeContentBinding_Part_4/CPP/mimecontentbinding_part_4.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MimeContentBinding_Part_4/CPP/mimecontentbinding_part_4.cpp deleted file mode 100644 index 3eae8f13886ed..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimeContentBinding_Part_4/CPP/mimecontentbinding_part_4.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// System::Web::Services::Description.MimeContentBinding::Type -// System::Web::Services::Description.MimeContentBinding::Part -// System::Web::Services::Description.MimeContentBinding::NameSpace -// System::Web::Services::Description.MimeContentBinding - -/* The following program demonstrates properties 'Type', 'Part' -and field 'NameSpace'of class 'MimeContentBinding'.It reads 'MimeContentSample_cs::wsdl'file -and instantiates a ServiceDescription Object*.'MimeContentBinding' objects are retrieved from Extension -points of OutputBinding for one of the Binding Object* and its properties 'Type', 'Part'are displayed.It also -displays 'NameSpace' of the 'MimeContentBinding' Object*. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; - -int main() -{ - // - // - // - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MimeContentSample_cpp.wsdl" ); - - // Get the Binding. - Binding^ myBinding = myServiceDescription->Bindings[ "b1" ]; - - // Get the first OperationBinding. - OperationBinding^ myOperationBinding = myBinding->Operations[ 0 ]; - OutputBinding^ myOutputBinding = myOperationBinding->Output; - ServiceDescriptionFormatExtensionCollection ^ myServiceDescriptionFormatExtensionCollection = myOutputBinding->Extensions; - - // Find all MimeContentBinding objects in extensions. - array^myMimeContentBindings = (array^)myServiceDescriptionFormatExtensionCollection->FindAll( MimeContentBinding::typeid ); - - // Enumerate the array and display MimeContentBinding properties. - IEnumerator^ myEnum = myMimeContentBindings->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - MimeContentBinding^ myMimeContentBinding = safe_cast(myEnum->Current); - Console::WriteLine( "Type: {0}", myMimeContentBinding->Type ); - Console::WriteLine( "Part: {0}", myMimeContentBinding->Part ); - } - // - // - Console::WriteLine( "Namespace: {0}", MimeContentBinding::Namespace ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimeMultiPartRelatedBinding_Parts_2/CPP/MimeMultiPartRelatedSample_cpp.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/MimeMultiPartRelatedBinding_Parts_2/CPP/MimeMultiPartRelatedSample_cpp.wsdl deleted file mode 100644 index 4ad0d84133fb7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimeMultiPartRelatedBinding_Parts_2/CPP/MimeMultiPartRelatedSample_cpp.wsdl +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimeMultiPartRelatedBinding_Parts_2/CPP/mimemultipartrelatedbinding_parts_2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MimeMultiPartRelatedBinding_Parts_2/CPP/mimemultipartrelatedbinding_parts_2.cpp deleted file mode 100644 index f7387c482ad06..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimeMultiPartRelatedBinding_Parts_2/CPP/mimemultipartrelatedbinding_parts_2.cpp +++ /dev/null @@ -1,55 +0,0 @@ -// System::Web::Services::Description.MimeMultipartRelatedBinding -// System::Web::Services::Description.MimeMultipartRelatedBinding::Parts; - -/* The following program demonstrates the property 'Parts' of class 'MimeMultipartRelatedBinding'. -It reads 'MimeMultiPartRelatedSample_cpp.wsdl'file and instantiates a ServiceDescription Object*. -'MimeMultipartRelatedBinding' Object* is retrieved from Extension -points of OutputBinding for one of the Binding Object* and its property'Parts' has been demonstrated. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; - -int main() -{ - // - ServiceDescription^ myServicDescription = ServiceDescription::Read( "MimeMultiPartRelatedSample_cpp.wsdl" ); - - // Get the binding collection. - BindingCollection^ myBindingCollection = myServicDescription->Bindings; - int index = 0; - for ( int i = 0; i < myBindingCollection->Count; i++ ) - // Get the collection for MimeServiceHttpPost. - if ( String::Compare( myBindingCollection[ i ]->Name, "MimeServiceHttpPost" ) == 0 ) - { - OperationBindingCollection^ myOperationBindingCollection = myBindingCollection[ i ]->Operations; - OutputBinding^ myOutputBinding = myOperationBindingCollection[ 0 ]->Output; - ServiceDescriptionFormatExtensionCollection ^ myServiceDescriptionFormatExtensionCollection = myOutputBinding->Extensions; - MimeMultipartRelatedBinding^ myMimeMultipartRelatedBinding = dynamic_cast(myServiceDescriptionFormatExtensionCollection->Find( MimeMultipartRelatedBinding::typeid )); - MimePartCollection^ myMimePartCollection = myMimeMultipartRelatedBinding->Parts; - IEnumerator^ myEnum = myMimePartCollection->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - MimePart^ myMimePart = dynamic_cast(myEnum->Current); - Console::WriteLine( "Extension Types added to MimePart: {0}", index++ ); - Console::WriteLine( "----------------------------" ); - IEnumerator^ myEnum2 = myMimePart->Extensions->GetEnumerator(); - while ( myEnum2->MoveNext() ) - { - Console::WriteLine( myEnum2->Current->GetType() ); - } - - Console::WriteLine( "" ); - } - - break; - } - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimePartCollection_1/CPP/MimePartCollection_1_Input_cpp.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/MimePartCollection_1/CPP/MimePartCollection_1_Input_cpp.wsdl deleted file mode 100644 index 745bfd01aee48..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimePartCollection_1/CPP/MimePartCollection_1_Input_cpp.wsdl +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimePartCollection_1/CPP/mimepartcollection_1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MimePartCollection_1/CPP/mimepartcollection_1.cpp deleted file mode 100644 index 5648074bf2a05..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimePartCollection_1/CPP/mimepartcollection_1.cpp +++ /dev/null @@ -1,66 +0,0 @@ -// System::Web::Services::Description.MimePartCollection - -/* The following program demostrates 'MimePartCollection' class. It -takes 'MimePartCollection_1_Input_cpp.wsdl' as input which -contains one 'MimePart' Object* that supports 'HttpPost'. -A mimepartcollection Object* is created and mimepart is added to the -mimepartcollection at the specified location, finally writes -into the file'MimePartCollection_1_Output_cpp.wsdl'. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Xml; -using namespace System::Web::Services::Description; - -int main() -{ - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MimePartCollection_1_Input_cpp.wsdl" ); - ServiceDescriptionCollection^ myServiceDescriptionCol = gcnew ServiceDescriptionCollection; - myServiceDescriptionCol->Add( myServiceDescription ); - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "MimeServiceHttpPost","http://tempuri.org/" ); - - // Create a 'Binding' object. - Binding^ myBinding = myServiceDescriptionCol->GetBinding( myXmlQualifiedName ); - OperationBinding^ myOperationBinding = nullptr; - for ( int i = 0; i < myBinding->Operations->Count; i++ ) - if ( myBinding->Operations[ i ]->Name->Equals( "AddNumbers" ) ) - myOperationBinding = myBinding->Operations[ i ]; - - OutputBinding^ myOutputBinding = myOperationBinding->Output; - MimeMultipartRelatedBinding^ myMimeMultipartRelatedBinding = nullptr; - IEnumerator^ myIEnumerator = myOutputBinding->Extensions->GetEnumerator(); - while ( myIEnumerator->MoveNext() ) - myMimeMultipartRelatedBinding = dynamic_cast(myIEnumerator->Current); - - // Create an instances of 'MimePartCollection'. - MimePartCollection^ myMimePartCollection = gcnew MimePartCollection; - myMimePartCollection = myMimeMultipartRelatedBinding->Parts; - Console::WriteLine( "Total number of mimepart elements initially is: {0}", myMimePartCollection->Count ); - - // Create an instance of 'MimePart'. - MimePart^ myMimePart = gcnew MimePart; - - // Create an instance of 'MimeXmlBinding'. - MimeXmlBinding^ myMimeXmlBinding = gcnew MimeXmlBinding; - myMimeXmlBinding->Part = "body"; - myMimePart->Extensions->Add( myMimeXmlBinding ); - - // Insert a mimepart at first position. - myMimePartCollection->Insert( 0, myMimePart ); - Console::WriteLine( "Inserting a mimepart object..." ); - if ( myMimePartCollection->Contains( myMimePart ) ) - { - Console::WriteLine( "'MimePart' is succesffully added at position: {0}", myMimePartCollection->IndexOf( myMimePart ) ); - Console::WriteLine( "Total number of mimepart elements after inserting is: {0}", myMimePartCollection->Count ); - } - - myServiceDescription->Write( "MimePartCollection_1_Output_cpp.wsdl" ); - Console::WriteLine( "MimePartCollection_1_Output_cpp.wsdl has been generated successfully." ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimePartCollection_8/CPP/mimepartcollection_8.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MimePartCollection_8/CPP/mimepartcollection_8.cpp deleted file mode 100644 index e2a877fe7ae53..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimePartCollection_8/CPP/mimepartcollection_8.cpp +++ /dev/null @@ -1,146 +0,0 @@ -// System::Web::Services::Description.MimePartCollection::MimePartCollection() -// System::Web::Services::Description.MimePartCollection::Item->Item[System::Int32 index] -// System::Web::Services::Description.MimePartCollection::Insert -// System::Web::Services::Description.MimePartCollection::IndexOf -// System::Web::Services::Description.MimePartCollection->Add -// System::Web::Services::Description.MimePartCollection::Contains -// System::Web::Services::Description.MimePartCollection::CopyTo -// System::Web::Services::Description.MimePartCollection::Remove - -/* This program demostrates constructor, 'Item' property , 'Insert', 'IndexOf', 'Add', -'Contains', 'CopyTo', and 'Remove' methods of 'MimePartCollection' class. -It takes 'MimePartCollection_8_Input_cpp.wsdl' as an input file which contains -one 'MimePart' object that supports 'HttpPost'. A mimepartcollection object is -created and new mimepart objects are added to mimepartcollection using 'Insert' -and 'Add' methods. A mimepart object is removed from the mimepartcollection using -'Remove'method.The ServiceDescription is finally written into output wsdl file -'MimePartCollection_8_out_CS::wsdl'. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Xml; -using namespace System::Web::Services::Description; - -int main() -{ - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MimePartCollection_8_Input_cpp.wsdl" ); - ServiceDescriptionCollection^ myServiceDescriptionCol = gcnew ServiceDescriptionCollection; - myServiceDescriptionCol->Add( myServiceDescription ); - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "MimeServiceHttpPost","http://tempuri.org/" ); - - // Create a binding object. - Binding^ myBinding = myServiceDescriptionCol->GetBinding( myXmlQualifiedName ); - OperationBinding^ myOperationBinding = nullptr; - for ( int i = 0; i < myBinding->Operations->Count; i++ ) - if ( myBinding->Operations[ i ]->Name->Equals( "AddNumbers" ) ) - myOperationBinding = myBinding->Operations[ i ]; - - OutputBinding^ myOutputBinding = myOperationBinding->Output; - - // - // - // - // - MimeMultipartRelatedBinding^ myMimeMultipartRelatedBinding = nullptr; - IEnumerator^ myIEnumerator = myOutputBinding->Extensions->GetEnumerator(); - while ( myIEnumerator->MoveNext() ) - myMimeMultipartRelatedBinding = (MimeMultipartRelatedBinding^)myIEnumerator->Current; - - // Create an instance of 'MimePartCollection'. - MimePartCollection^ myMimePartCollection = gcnew MimePartCollection; - myMimePartCollection = myMimeMultipartRelatedBinding->Parts; - Console::WriteLine( "Total number of mimepart elements in the collection initially is: {0}", myMimePartCollection->Count ); - - // Get the type of first 'Item' in collection. - Console::WriteLine( "The first object in collection is of type: {0}", myMimePartCollection[ 0 ] ); - MimePart^ myMimePart1 = gcnew MimePart; - - // Create an instance of 'MimeXmlBinding'. - MimeXmlBinding^ myMimeXmlBinding1 = gcnew MimeXmlBinding; - myMimeXmlBinding1->Part = "body"; - myMimePart1->Extensions->Add( myMimeXmlBinding1 ); - - // a mimepart at first position. - myMimePartCollection->Insert( 0, myMimePart1 ); - Console::WriteLine( "Inserting a mimepart object..." ); - - // Check whether 'Insert' was successful or not. - if ( myMimePartCollection->Contains( myMimePart1 ) ) - { - // Display the index of inserted 'MimePart'. - Console::WriteLine( "'MimePart' is succesfully inserted at position: {0}", myMimePartCollection->IndexOf( myMimePart1 ) ); - } - // - // - // - // - - Console::WriteLine( "Total number of mimepart elements after inserting is: {0}", myMimePartCollection->Count ); - - // - // - MimePart^ myMimePart2 = gcnew MimePart; - MimeXmlBinding^ myMimeXmlBinding2 = gcnew MimeXmlBinding; - myMimeXmlBinding2->Part = "body"; - myMimePart2->Extensions->Add( myMimeXmlBinding2 ); - - // Add a mimepart to the mimepartcollection. - myMimePartCollection->Add( myMimePart2 ); - Console::WriteLine( "Adding a mimepart object..." ); - - // Check if collection contains added mimepart object. - if ( myMimePartCollection->Contains( myMimePart2 ) ) - Console::WriteLine( "'MimePart' is succesfully added at position: {0}", myMimePartCollection->IndexOf( myMimePart2 ) ); - // - // - - Console::WriteLine( "Total number of mimepart elements after adding is: {0}", myMimePartCollection->Count ); - - // - array^myArray = gcnew array(myMimePartCollection->Count); - - // Copy the mimepartcollection to an array. - myMimePartCollection->CopyTo( myArray, 0 ); - Console::WriteLine( "Displaying the array copied from mimepartcollection" ); - for ( int j = 0; j < myMimePartCollection->Count; j++ ) - { - Console::WriteLine( "Mimepart object at position : {0}", j ); - for ( int i = 0; i < myArray[ j ]->Extensions->Count; i++ ) - { - MimeXmlBinding^ myMimeXmlBinding3 = (MimeXmlBinding^)(myArray[ j ]->Extensions[ i ]); - Console::WriteLine( "Part: {0}", (myMimeXmlBinding3->Part) ); - } - } - // - // - Console::WriteLine( "Removing a mimepart object..." ); - - // Remove the mimepart from the mimepartcollection. - myMimePartCollection->Remove( myMimePart1 ); - - // Check whether the mimepart is removed or not. - if ( !myMimePartCollection->Contains( myMimePart1 ) ) - Console::WriteLine( "Mimepart is succesfully removed from mimepartcollection" ); - // - - Console::WriteLine( "Total number of elements in collection after removing is: {0}", myMimePartCollection->Count ); - array^myArray1 = gcnew array(myMimePartCollection->Count); - myMimePartCollection->CopyTo( myArray1, 0 ); - Console::WriteLine( "Dispalying the 'MimePartCollection' after removing" ); - for ( int j = 0; j < myMimePartCollection->Count; j++ ) - { - Console::WriteLine( "Mimepart object at position : {0}", j ); - for ( int i = 0; i < myArray1[ j ]->Extensions->Count; i++ ) - { - MimeXmlBinding^ myMimeXmlBinding3 = (MimeXmlBinding^)(myArray1[ j ]->Extensions[ i ]); - Console::WriteLine( "part: {0}", (myMimeXmlBinding3->Part) ); - } - } - myServiceDescription->Write( "MimePartCollection_8_output.wsdl" ); - Console::WriteLine( "MimePartCollection_8_output.wsdl has been generated successfully." ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimePart_3/CPP/MimePart_3_Input_cpp.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/MimePart_3/CPP/MimePart_3_Input_cpp.wsdl deleted file mode 100644 index 64548b47a649d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimePart_3/CPP/MimePart_3_Input_cpp.wsdl +++ /dev/null @@ -1,107 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimePart_3/CPP/mimepart_3.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MimePart_3/CPP/mimepart_3.cpp deleted file mode 100644 index 78518047dc2f2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimePart_3/CPP/mimepart_3.cpp +++ /dev/null @@ -1,60 +0,0 @@ - - -// System.Web.Services.Description.MimePart -// System.Web.Services.Description.MimePart.ctor() -// System.Web.Services.Description.MimePart.Extensions -/* The following program demonstrates the 'MimePart' class, constructor -and 'Extensions' property of 'MimePart' class. It reads -'MimePart_3_Input_cpp.wsdl' file which does not have 'MimePart' object -supporting 'OutPut' of 'HttpPost'. It adds the 'MimePart' and finally -writes into 'MimePart_3_OutPut_cpp.wsdl' file. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Web::Services::Description; - -int main() -{ - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MimePart_3_Input_cpp.wsdl" ); - ServiceDescriptionCollection^ myServiceDescriptionCol = gcnew ServiceDescriptionCollection; - myServiceDescriptionCol->Add( myServiceDescription ); - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "MimeServiceHttpPost","http://tempuri.org/" ); - - // Create the Binding. - Binding^ myBinding = myServiceDescriptionCol->GetBinding( myXmlQualifiedName ); - OperationBinding^ myOperationBinding = nullptr; - for ( int i = 0; i < myBinding->Operations->Count; i++ ) - { - if ( myBinding->Operations[ i ]->Name->Equals( "AddNumbers" ) ) - { - myOperationBinding = myBinding->Operations[ i ]; - } - } - - // - // - // Create the OutputBinding. - OutputBinding^ myOutputBinding = myOperationBinding->Output; - MimeXmlBinding^ myMimeXmlBinding = gcnew MimeXmlBinding; - myMimeXmlBinding->Part = "body"; - - // Create the MimePart. - MimePart^ myMimePart = gcnew MimePart; - myMimePart->Extensions->Add( myMimeXmlBinding ); - MimeMultipartRelatedBinding^ myMimePartRelatedBinding = gcnew MimeMultipartRelatedBinding; - - // Add the MimePart to the MimePartRelatedBinding. - myMimePartRelatedBinding->Parts->Add( myMimePart ); - myOutputBinding->Extensions->Add( myMimePartRelatedBinding ); - // - // - - myServiceDescription->Write( "MimePart_3_Output_CPP.wsdl" ); - Console::WriteLine( "MimePart_3_Output_CPP.wsdl has been generated successfully." ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimeTextMatch_5/CPP/MimeTextMatch_5_Input_CPP.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/MimeTextMatch_5/CPP/MimeTextMatch_5_Input_CPP.wsdl deleted file mode 100644 index b0b37666a68a2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimeTextMatch_5/CPP/MimeTextMatch_5_Input_CPP.wsdl +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimeTextMatch_5/CPP/mimetextmatch_5.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MimeTextMatch_5/CPP/mimetextmatch_5.cpp deleted file mode 100644 index a1904f5cf88ca..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimeTextMatch_5/CPP/mimetextmatch_5.cpp +++ /dev/null @@ -1,138 +0,0 @@ - - -// System.Web.Services.Description.MimeTextMatch -// System.Web.Services.Description.MimeTextMatch.Capture -// System.Web.Services.Description.MimeTextMatch.Group -// System.Web.Services.Description.MimeTextMatch.Repeats -// System.Web.Services.Description.MimeTextMatch.RepeatsString -/* The following program demostrates constructor, 'Capture', 'Group', - 'Repeats' and 'RepeatsString' properties of 'MimeTextMatch'class. - It takes 'MimeTextMatch_5_Input_CPP.wsdl' as input which does not - contain 'Binding' object supporting 'HttpPost'. A text pattern - ''TITLE>(.*?)<' with text name as 'Title' and type - name set which is to be searched in a HTTP transmission is added to the ServiceDescription. - The modified ServiceDescription is written into 'MimeTextMatch_5_Output_CPP.wsdl'. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - try - { - int myInt = 0; - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MimeTextMatch_5_Input_CPP.wsdl" ); - - // Create the 'Binding' object. - Binding^ myBinding = gcnew Binding; - - // Initialize 'Name' property of 'Binding' class. - myBinding->Name = "MimeTextMatchServiceHttpPost"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:MimeTextMatchServiceHttpPost" ); - myBinding->Type = myXmlQualifiedName; - - // Create the 'HttpBinding' object. - HttpBinding^ myHttpBinding = gcnew HttpBinding; - myHttpBinding->Verb = "POST"; - - // Add the 'HttpBinding' to the 'Binding'. - myBinding->Extensions->Add( myHttpBinding ); - - // Create the 'OperationBinding' object. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "AddNumbers"; - HttpOperationBinding^ myHttpOperationBinding = gcnew HttpOperationBinding; - myHttpOperationBinding->Location = "/AddNumbers"; - - // Add the 'HttpOperationBinding' object to 'OperationBinding'. - myOperationBinding->Extensions->Add( myHttpOperationBinding ); - - // - // - // - // - // Create an InputBinding. - InputBinding^ myInputBinding = gcnew InputBinding; - MimeTextBinding^ myMimeTextBinding = gcnew MimeTextBinding; - MimeTextMatchCollection^ myMimeTextMatchCollection1 = gcnew MimeTextMatchCollection; - array^myMimeTextMatch = gcnew array(3); - myMimeTextMatchCollection1 = myMimeTextBinding->Matches; - - // Intialize the MimeTextMatch. - for ( myInt = 0; myInt < 3; myInt++ ) - { - // Get a new MimeTextMatch. - myMimeTextMatch[ myInt ] = gcnew MimeTextMatch; - - // Assign values to properties of the MimeTextMatch. - myMimeTextMatch[ myInt ]->Name = String::Format( "Title{0}", Convert::ToString( myInt ) ); - myMimeTextMatch[ myInt ]->Type = "*/*"; - myMimeTextMatch[ myInt ]->Pattern = "TITLE>(.*?)<"; - myMimeTextMatch[ myInt ]->IgnoreCase = true; - myMimeTextMatch[ myInt ]->Capture = 2; - myMimeTextMatch[ myInt ]->Group = 2; - if ( myInt != 0 ) - { - - // Assign the Repeats property if the index is not 0. - myMimeTextMatch[ myInt ]->Repeats = 2; - } - else - { - - // Assign the RepeatsString property if the index is 0. - myMimeTextMatch[ myInt ]->RepeatsString = "4"; - } - myMimeTextMatchCollection1->Add( myMimeTextMatch[ myInt ] ); - - } - // - // - // - // - - myInputBinding->Extensions->Add( myMimeTextBinding ); - - // Add the 'InputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInputBinding; - - // Create the 'OutputBinding' instance. - OutputBinding^ myOutput = gcnew OutputBinding; - MimeXmlBinding^ postMimeXmlbinding = gcnew MimeXmlBinding; - - // Initialize 'Part' property of 'MimeXmlBinding' class. - postMimeXmlbinding->Part = "Body"; - - // Add 'MimeXmlBinding' instance to 'OutputBinding' instance. - myOutput->Extensions->Add( postMimeXmlbinding ); - - // Add the 'OutPutBinding' to 'OperationBinding'. - myOperationBinding->Output = myOutput; - - // Add the 'OutPutBinding' to 'OperationBinding'. - myOperationBinding->Output = myOutput; - - // Add the 'OperationBinding' to 'Binding'. - myBinding->Operations->Add( myOperationBinding ); - - // Add the 'Binding' to 'BindingCollection' of 'ServiceDescription'. - myServiceDescription->Bindings->Add( myBinding ); - - // Write the 'ServiceDescription' as a WSDL file. - myServiceDescription->Write( "MimeTextMatch_5_Output_CPP.wsdl" ); - Console::WriteLine( "WSDL file with name 'MimeTextMatch_5_Output_CPP.wsdl' is" - " created successfully." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimeText_Binding_Match_8/CPP/MimeText_Binding_Match_8_Input_CPP.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/MimeText_Binding_Match_8/CPP/MimeText_Binding_Match_8_Input_CPP.wsdl deleted file mode 100644 index 521d34c6e62ef..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimeText_Binding_Match_8/CPP/MimeText_Binding_Match_8_Input_CPP.wsdl +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimeText_Binding_Match_8/CPP/mimetext_binding_match_8.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MimeText_Binding_Match_8/CPP/mimetext_binding_match_8.cpp deleted file mode 100644 index 495d3ca8b8266..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimeText_Binding_Match_8/CPP/mimetext_binding_match_8.cpp +++ /dev/null @@ -1,128 +0,0 @@ - - -// System.Web.Services.Description.MimeTextBinding -// System.Web.Services.Description.MimeTextBinding() -// System.Web.Services.Description.MimeTextMatch() -// System.Web.Services.Description.MimeTextMatch.Name -// System.Web.Services.Description.MimeTextMatch.Type -// System.Web.Services.Description.MimeTextMatch.Pattern -// System.Web.Services.Description.MimeTextMatch.IgnoreCase -// System.Web.Services.Description.MimeTextBinding.Matches -/* This program demostrates constructor and 'Matches' property -of 'MimeTextBinding' class and 'Name', 'Type', 'Pattern', -'IgnoreCase' properties of 'MimeTextMatch' class. -It takes 'MimeText_Binding_Match_8_Input_CPP.wsdl' as an -input file which does not contain 'Binding' object that supports -'HttpPost'. A text pattern ''TITLE>(.*?)<' with text name -as 'Title' and with type name set, is added to the wsdl file. Finally the -' modified ServiceDescription is written to 'MimeText_Binding_Match_8_Output_CPP.wsdl'. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - try - { - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MimeText_Binding_Match_8_Input_CPP.wsdl" ); - - // Create a Binding. - Binding^ myBinding = gcnew Binding; - - // Initialize the Name property of the Binding. - myBinding->Name = "MimeText_Binding_MatchServiceHttpPost"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:MimeText_Binding_MatchServiceHttpPost" ); - myBinding->Type = myXmlQualifiedName; - - // Create an HttpBinding. - HttpBinding^ myHttpBinding = gcnew HttpBinding; - myHttpBinding->Verb = "POST"; - - // Add the HttpBinding to the Binding. - myBinding->Extensions->Add( myHttpBinding ); - - // Create an OperationBinding. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "AddNumbers"; - HttpOperationBinding^ myHttpOperationBinding = gcnew HttpOperationBinding; - myHttpOperationBinding->Location = "/AddNumbers"; - - // Add the HttpOperationBinding to the OperationBinding. - myOperationBinding->Extensions->Add( myHttpOperationBinding ); - - // Create an InputBinding. - InputBinding^ myInputBinding = gcnew InputBinding; - MimeContentBinding^ postMimeContentbinding = gcnew MimeContentBinding; - postMimeContentbinding->Type = "application/x-www-form-urlencoded"; - myInputBinding->Extensions->Add( postMimeContentbinding ); - - // Add the InputBinding to the OperationBinding. - myOperationBinding->Input = myInputBinding; - - // - // - // - // - // - // - // - // Create an OutputBinding. - OutputBinding^ myOutputBinding = gcnew OutputBinding; - - // Create a MimeTextBinding. - MimeTextBinding^ myMimeTextBinding = gcnew MimeTextBinding; - - // Create a MimeTextMatch. - MimeTextMatch^ myMimeTextMatch = gcnew MimeTextMatch; - MimeTextMatchCollection^ myMimeTextMatchCollection; - - // Initialize properties of the MimeTextMatch. - myMimeTextMatch->Name = "Title"; - myMimeTextMatch->Type = "*/*"; - myMimeTextMatch->Pattern = "'TITLE>(.*?)<"; - myMimeTextMatch->IgnoreCase = true; - - // Initialize a MimeTextMatchCollection. - myMimeTextMatchCollection = myMimeTextBinding->Matches; - - // Add the MimeTextMatch to the MimeTextMatchCollection. - myMimeTextMatchCollection->Add( myMimeTextMatch ); - myOutputBinding->Extensions->Add( myMimeTextBinding ); - - // Add the OutputBinding to the OperationBinding. - myOperationBinding->Output = myOutputBinding; - // - // - // - // - // - // - // - - // Add the OutputBinding to the OperationBinding. - myOperationBinding->Output = myOutputBinding; - - // Add the OperationBinding to the Binding. - myBinding->Operations->Add( myOperationBinding ); - - // Add the Binding to the BindingCollection of the ServiceDescription. - myServiceDescription->Bindings->Add( myBinding ); - - // Write the ServiceDescription as a WSDL file. - myServiceDescription->Write( "MimeText_Binding_Match_8_Output_CPP.wsdl" ); - Console::WriteLine( "WSDL file named 'MimeText_Binding_Match_8_Output_CPP.wsdl' was" - " created successfully." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimeText_Match_MatchColl_9/CPP/MimeText_Match_MatchColl_9_Input_CPP.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/MimeText_Match_MatchColl_9/CPP/MimeText_Match_MatchColl_9_Input_CPP.wsdl deleted file mode 100644 index f547e5013869b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimeText_Match_MatchColl_9/CPP/MimeText_Match_MatchColl_9_Input_CPP.wsdl +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimeText_Match_MatchColl_9/CPP/mimetext_match_matchcoll_9.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MimeText_Match_MatchColl_9/CPP/mimetext_match_matchcoll_9.cpp deleted file mode 100644 index c488a6fea4901..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimeText_Match_MatchColl_9/CPP/mimetext_match_matchcoll_9.cpp +++ /dev/null @@ -1,180 +0,0 @@ -// System.Web.Services.Description.MimeTextMatchCollection -// System.Web.Services.Description.MimeTextMatchCollection() -// System.Web.Services.Description.MimeTextMatchCollection.Contains -// System.Web.Services.Description.MimeTextMatchCollection.Add -// System.Web.Services.Description.MimeTextMatchCollection.CopyTo -// System.Web.Services.Description.MimeTextMatchCollection.Remove -// System.Web.Services.Description.MimeTextMatchCollection.Item -// System.Web.Services.Description.MimeTextMatchCollection.IndexOf -// System.Web.Services.Description.MimeTextMatchCollection.Insert - -/* This program demostrates constructor, Contains, Add, Item, - IndexOf, Insert and Remove property of 'MimeTextMatchCollection'. - This program takes 'MimeText_Match_MatchColl_9_Input_CPP.wsdl' as an - input file which does not contain 'Binding' object that supports - 'HttpPost'. A name, type, Group and Capture properties are set - which are to be searched in a HTTP transmission and - 'MimeTextMatchCollection' collection object is created - for input and output of 'HttpPost' and finally writes into - 'MimeText_Match_MatchColl_9_Output_CPP.wsdl'. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - try - { - int myInt = 0; - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MimeText_Match_MatchColl_9_Input_CPP.wsdl" ); - - // Create the 'Binding' object. - Binding^ myBinding = gcnew Binding; - - // Initialize 'Name' property of 'Binding' class. - myBinding->Name = "MimeText_Match_MatchCollServiceHttpPost"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:MimeText_Match_MatchCollServiceHttpPost" ); - myBinding->Type = myXmlQualifiedName; - - // Create the 'HttpBinding' object. - HttpBinding^ myHttpBinding = gcnew HttpBinding; - myHttpBinding->Verb = "POST"; - - // Add the 'HttpBinding' to the 'Binding'. - myBinding->Extensions->Add( myHttpBinding ); - - // Create the 'OperationBinding' object. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "AddNumbers"; - HttpOperationBinding^ myHttpOperationBinding = gcnew HttpOperationBinding; - myHttpOperationBinding->Location = "/AddNumbers"; - - // Add the 'HttpOperationBinding' to 'OperationBinding'. - myOperationBinding->Extensions->Add( myHttpOperationBinding ); - - // - // Create the 'InputBinding' object. - InputBinding^ myInputBinding = gcnew InputBinding; - MimeTextBinding^ myMimeTextBinding = gcnew MimeTextBinding; - MimeTextMatchCollection^ myMimeTextMatchCollection; - - // - // - // - // Get an array instance of 'MimeTextMatch' class. - array^myMimeTextMatch = gcnew array(4); - myMimeTextMatchCollection = myMimeTextBinding->Matches; - - // Initialize properties of 'MimeTextMatch' class. - for ( myInt = 0; myInt < 4; myInt++ ) - { - // Create the 'MimeTextMatch' instance. - myMimeTextMatch[ myInt ] = gcnew MimeTextMatch; - myMimeTextMatch[ myInt ]->Name = "Title"; - myMimeTextMatch[ myInt ]->Type = "*/*"; - myMimeTextMatch[ myInt ]->IgnoreCase = true; - if ( true == myMimeTextMatchCollection->Contains( myMimeTextMatch[ 0 ] ) ) - { - myMimeTextMatch[ myInt ]->Name = String::Format( "Title{0}", Convert::ToString( myInt ) ); - myMimeTextMatch[ myInt ]->Capture = 2; - myMimeTextMatch[ myInt ]->Group = 2; - myMimeTextMatchCollection->Add( myMimeTextMatch[ myInt ] ); - } - else - { - myMimeTextMatchCollection->Add( myMimeTextMatch[ myInt ] ); - myMimeTextMatchCollection[ myInt ]->RepeatsString = "2"; - } - } - myMimeTextMatchCollection = myMimeTextBinding->Matches; - - // Copy collection to 'MimeTextMatch' array instance. - myMimeTextMatchCollection->CopyTo( myMimeTextMatch, 0 ); - // - // - // - - myInputBinding->Extensions->Add( myMimeTextBinding ); - - // Add the 'InputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInputBinding; - - // Create the 'OutputBinding' instance. - OutputBinding^ myOutputBinding = gcnew OutputBinding; - - // Create the 'MimeTextBinding' instance. - MimeTextBinding^ myMimeTextBinding1 = gcnew MimeTextBinding; - - // - // - // - // - // - // Get an instance of 'MimeTextMatchCollection'. - MimeTextMatchCollection^ myMimeTextMatchCollection1 = gcnew MimeTextMatchCollection; - array^myMimeTextMatch1 = gcnew array(5); - myMimeTextMatchCollection1 = myMimeTextBinding1->Matches; - for ( myInt = 0; myInt < 4; myInt++ ) - { - myMimeTextMatch1[ myInt ] = gcnew MimeTextMatch; - myMimeTextMatch1[ myInt ]->Name = String::Format( "Title{0}", Convert::ToString( myInt ) ); - if ( myInt != 0 ) - { - myMimeTextMatch1[ myInt ]->RepeatsString = "7"; - } - myMimeTextMatchCollection1->Add( myMimeTextMatch1[ myInt ] ); - } - myMimeTextMatch1[ 4 ] = gcnew MimeTextMatch; - - // Remove 'MimeTextMatch' instance from collection. - myMimeTextMatchCollection1->Remove( myMimeTextMatch1[ 1 ] ); - - // Using MimeTextMatchCollection.Item indexer to comapre. - if ( myMimeTextMatch1[ 2 ] == myMimeTextMatchCollection1[ 1 ] ) - { - // Check whether 'MimeTextMatch' instance exists. - myInt = myMimeTextMatchCollection1->IndexOf( myMimeTextMatch1[ 2 ] ); - - // Insert 'MimeTextMatch' instance at a desired position. - myMimeTextMatchCollection1->Insert( 1, myMimeTextMatch1[ myInt ] ); - myMimeTextMatchCollection1[ 1 ]->RepeatsString = "5"; - myMimeTextMatchCollection1->Insert( 4, myMimeTextMatch1[ myInt ] ); - } - // - // - // - // - // - // - - myOutputBinding->Extensions->Add( myMimeTextBinding1 ); - - // Add the 'OutPutBinding' to 'OperationBinding'. - myOperationBinding->Output = myOutputBinding; - - // Add the 'OutPutBinding' to 'OperationBinding'. - myOperationBinding->Output = myOutputBinding; - - // Add the 'OperationBinding' to 'Binding'. - myBinding->Operations->Add( myOperationBinding ); - - // Add the 'Binding' to 'BindingCollection' of 'ServiceDescription'. - myServiceDescription->Bindings->Add( myBinding ); - - // Write the 'ServiceDescription' as a WSDL file. - myServiceDescription->Write( "MimeText_Match_MatchColl_9_Output_CPP.wsdl" ); - Console::WriteLine( "WSDL file with name 'MimeText_Match_MatchColl_9_Output_CPP.wsdl' is" - " created successfully." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimeXmlBinding_Part_3/CPP/MimeXmlBinding_Part_3_Input_CPP.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/MimeXmlBinding_Part_3/CPP/MimeXmlBinding_Part_3_Input_CPP.wsdl deleted file mode 100644 index 6f44c8aff5ffc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimeXmlBinding_Part_3/CPP/MimeXmlBinding_Part_3_Input_CPP.wsdl +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/MimeXmlBinding_Part_3/CPP/mimexmlbinding_part_3.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/MimeXmlBinding_Part_3/CPP/mimexmlbinding_part_3.cpp deleted file mode 100644 index 0cb0a7cb654c7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/MimeXmlBinding_Part_3/CPP/mimexmlbinding_part_3.cpp +++ /dev/null @@ -1,93 +0,0 @@ - - -// System.Web.Services.Description.MimeXmlBinding -// System.Web.Services.Description.MimeXmlBinding.MimeXmlBinding() -// System.Web.Services.Description.MimeXmlBinding.Part -/* The following program demonstrates constructor and 'Part'property -of 'MimeXmlBinding' class. This program takes 'MimeXmlBinding_Part_3_Input_CPP.wsdl' -as input, which does not contain 'Binding' object that supports 'HttpPost'. -It sets message part property to 'Body' on which 'MimeXmlBinding' is -applied and finally writes into 'MimeXmlBinding_Part_3_Output_CPP.wsdl'. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; -int main() -{ - try - { - ServiceDescription^ myDescription = ServiceDescription::Read( "MimeXmlBinding_Part_3_Input_CPP.wsdl" ); - - // Create the 'Binding' object. - Binding^ myBinding = gcnew Binding; - - // Initialize 'Name' property of 'Binding' class. - myBinding->Name = "MimeXmlBinding_Part_3_ServiceHttpPost"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:MimeXmlBinding_Part_3_ServiceHttpPost" ); - myBinding->Type = myXmlQualifiedName; - - // Create the 'HttpBinding' object. - HttpBinding^ myHttpBinding = gcnew HttpBinding; - myHttpBinding->Verb = "POST"; - - // Add the 'HttpBinding' to the 'Binding'. - myBinding->Extensions->Add( myHttpBinding ); - - // Create the 'OperationBinding' object. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "AddNumbers"; - HttpOperationBinding^ myHttpOperationBinding = gcnew HttpOperationBinding; - myHttpOperationBinding->Location = "/AddNumbers"; - - // Add the 'HttpOperationBinding' to 'OperationBinding'. - myOperationBinding->Extensions->Add( myHttpOperationBinding ); - - // Create the 'InputBinding' object. - InputBinding^ myInputBinding = gcnew InputBinding; - MimeContentBinding^ myMimeContentBinding = gcnew MimeContentBinding; - myMimeContentBinding->Type = "application/x-www-form-urlencoded"; - myInputBinding->Extensions->Add( myMimeContentBinding ); - - // Add the 'InputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInputBinding; - - // - // - // Create an OutputBinding. - OutputBinding^ myOutputBinding = gcnew OutputBinding; - MimeXmlBinding^ myMimeXmlBinding = gcnew MimeXmlBinding; - - // Initialize the Part property of the MimeXmlBinding. - myMimeXmlBinding->Part = "Body"; - - // Add the MimeXmlBinding to the OutputBinding. - myOutputBinding->Extensions->Add( myMimeXmlBinding ); - // - // - - // Add the 'OutPutBinding' to 'OperationBinding'. - myOperationBinding->Output = myOutputBinding; - - // Add the 'OperationBinding' to 'Binding'. - myBinding->Operations->Add( myOperationBinding ); - - // Add the 'Binding' to 'BindingCollection' of 'ServiceDescription'. - myDescription->Bindings->Add( myBinding ); - - // Write the 'ServiceDescription' as a WSDL file. - myDescription->Write( "MimeXmlBinding_Part_3_Output_CPP.wsdl" ); - Console::WriteLine( "WSDL file with name 'MimeXmlBinding_Part_3_Output_CPP.wsdl' is" - " created successfully." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLAutoProxy/CPP/proxy.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLAutoProxy/CPP/proxy.cpp deleted file mode 100644 index 6fdfe8f6904f1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLAutoProxy/CPP/proxy.cpp +++ /dev/null @@ -1,235 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Net; - -// -// The following method displays the properties of the -// specified WebProxy instance. -void DisplayProxyProperties( WebProxy^ proxy ) -{ - Console::WriteLine( "Address: {0}", proxy->Address ); - Console::WriteLine( "Bypass on local: {0}", proxy->BypassProxyOnLocal ); - - int count = proxy->BypassList->Length; - if ( count == 0 ) - { - Console::WriteLine( "The bypass list is empty." ); - return; - } - - array^bypass = proxy->BypassList; - Console::WriteLine( "The bypass list contents:" ); - for ( int i = 0; i < count; i++ ) - { - Console::WriteLine( bypass[ i ] ); - - } -} -// - -// -// The following method creates a Web proxy that uses -// Web proxy auto-discovery and supplies -// credentials to be used to download the wpad.dat script. -void CheckAutoProxyForRequest( Uri^ resource ) -{ - WebProxy^ proxy = gcnew WebProxy; - - // See what proxy is used for the resource. - Uri^ resourceProxy = proxy->GetProxy( resource ); - - // Test to see if a proxy was selected. - if ( resourceProxy == resource ) - { - Console::WriteLine( "No proxy for {0}", resource ); - } - else - { - Console::WriteLine( "Proxy for {0} is {1}", - resource, resourceProxy ); - } -} -// - -// -// The following method creates a WebProxy object that uses Internet Explorer's -// detected script if it is found in the registry; otherwise, it -// tries to use Web proxy auto-discovery to set the proxy used for -// the request. -void CheckAutoGlobalProxyForRequest( Uri^ resource ) -{ - WebProxy^ proxy = gcnew WebProxy; - - // Display the proxy's properties. - DisplayProxyProperties( proxy ); - - // See what proxy is used for the resource. - Uri^ resourceProxy = proxy->GetProxy( resource ); - - // Test to see whether a proxy was selected. - if ( resourceProxy == resource ) - { - Console::WriteLine( "No proxy for {0}", resource ); - } - else - { - Console::WriteLine( "Proxy for {0} is {1}", resource, resourceProxy ); - } -} -// - -// The following method creates a Web proxy that -// has its initial values set by the Internet Explorer's -// explicit proxy address and bypass list. -// The proxy uses Internet Explorer's automatically detected -// script if it found in the registry; otherwise, it tries to use -// Web proxy auto-discovery to set the proxy used for -// the request. -void CheckAutoDefaultProxyForRequest( Uri^ resource ) -{ - WebProxy^ proxy = dynamic_cast(WebRequest::DefaultWebProxy); - - // Display the proxy properties. - DisplayProxyProperties( proxy ); - - // See what proxy is used for resource. - Uri^ resourceProxy = proxy->GetProxy( resource ); - - // Test to see if a proxy was selected. - if ( resourceProxy == resource ) - { - Console::WriteLine( "No proxy for {0}", resource ); - } - else - { - Console::WriteLine( "Proxy for {0} is {1}", resource, resourceProxy ); - } -} - -// -// This method specifies a script that should -// be used in the event that auto-discovery fails. -void CheckAutoProxyAndScriptForRequest( Uri^ resource, Uri^ script ) -{ - WebProxy^ proxy = gcnew WebProxy; - DisplayProxyProperties( proxy ); - - // See what proxy is used for resource. - Uri^ resourceProxy = dynamic_cast(proxy->GetProxy(resource)); - - // Test to see whether a proxy was selected. - if ( resourceProxy == resource ) - { - Console::WriteLine( "No proxy for {0}", resource ); - } - else - { - Console::WriteLine( "Proxy for {0} is {1}", resource, resourceProxy ); - } -} -// - -// if construct with glocabl select -// if use system = true then if proxy = Glocalproxy.Select - the returned instance -// will have its values set -// by IE settings. If you do webProxy get default roxy reads manual setting (proxy address and -// bypass - doesn't matter what the config file has. -// -// The following method explicitly identifies -// the script to be downloaded and used to select the proxy. -void CheckScriptedProxyForRequest( Uri^ resource, Uri^ script ) -{ - WebProxy^ proxy = gcnew WebProxy; - - // See what proxy is used for resource. - Uri^ resourceProxy = dynamic_cast(proxy->GetProxy(resource)); - - // Test to see whether a proxy was selected. - if ( resourceProxy == nullptr ) - { - Console::WriteLine( "No proxy selected for {0}.", resource ); - return; - } - else - { - Console::WriteLine( "proxy returned for {0}.", resource ); - { - - // DIRECT in script is returned as a null Uri object. - if ( resourceProxy == nullptr ) - Console::WriteLine( "DIRECT" ); - else - Console::WriteLine( "{0}", resourceProxy ); - - } - } -} -// - -// -WebResponse^ CheckLatestScriptRequest( Uri^ resource, WebProxy^ proxy ) -{ - WebRequest^ request = WebRequest::Create( resource ); - request->Proxy = proxy; - WebResponse^ response = request->GetResponse(); - return response; -} -// - -void CheckScriptedProxyForRequest2( Uri^ resource, Uri^ script ) -{ - WebProxy^ proxy = gcnew WebProxy; - - // if use ssystem = true then if proxy = Glocalproxy.Select - the returned instance - // will have its values set - // by IE settings. If you do webProxy get defaultProxy reads manual setting (proxy address and - // bypass - doesn't matter what the config file has. - - // if construct with global select - - // See what proxy is used for resource. - Uri^ resourceProxy = proxy->GetProxy( resource ); - Console::WriteLine( "GetProxy returned for {0} is {1}.", resource, resourceProxy ); - - -} - -void Underline() -{ - Console::WriteLine( "=======================================" ); -} - -int main() -{ - Uri^ resource = gcnew Uri( "http://www.example.com" ); - - // Console.WriteLine("nothing - default ctor"); Underline(); - // DisplayProxyProperties(new WebProxy()); - // Console.WriteLine ("\n\nAuto-only - default ctor"); Underline(); - // CheckAutoProxyForRequest(resource); - Console::WriteLine( "\n\nAuto-only - GlobalProxySelection.Select" ); - Underline(); - CheckAutoGlobalProxyForRequest( resource ); - - /* - Console.WriteLine ("\n\nAuto-only - DefaultProxy"); Underline(); - CheckAutoDefaultProxyForRequest(resource); - */ - // Console.WriteLine("\n\n IE auto + Valid Script-only"); - // CheckScriptedProxyForRequest(resource, new Uri("http://sharriso1/wpad.dat")); - // Console.WriteLine("\n\n IE auto Invalid Script-only"); - // CheckScriptedProxyForRequest(resource, new Uri("http://sharriso1/wpadx.dat")); - /* Console.WriteLine("Auto and Valid script"); - CheckAutoProxyAndScriptForRequest(resource, new Uri("http://sharriso1/wpad.dat")); - - Console.WriteLine("Auto and Invalid script"); - CheckAutoProxyAndScriptForRequest(resource, new Uri("http://sharriso1/wpadx.dat")); - */ - // check snippet 5 - // CheckLatestScriptRequest(resource, WebProxy.GetDefaultProxy()); - // check snippet 6 - //CheckAutoProxyForRequest( resource); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLCookies/CPP/cookiessnippets.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLCookies/CPP/cookiessnippets.cpp deleted file mode 100644 index 18275c877c28a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLCookies/CPP/cookiessnippets.cpp +++ /dev/null @@ -1,77 +0,0 @@ - - -// -#using - -using namespace System; -using namespace System::Net; - -// This example is run at the command line. -// Specify one argument: the name of the host to -// send the request to. -// If the request is sucessful, the example displays the contents of the cookies -// returned by the host. -// -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args == nullptr || args->Length != 2 ) - { - Console::WriteLine( "Specify the URL to receive the request." ); - Environment::Exit( 1 ); - } - - - // - HttpWebRequest^ request = dynamic_cast(WebRequest::Create( args[ 1 ] )); - request->CookieContainer = gcnew CookieContainer; - HttpWebResponse^ response = dynamic_cast(request->GetResponse()); - response->Cookies = request->CookieContainer->GetCookies( request->RequestUri ); - - // Print the properties of each cookie. - System::Collections::IEnumerator^ myEnum = response->Cookies->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Cookie^ cook = safe_cast(myEnum->Current); - Console::WriteLine( "Cookie:" ); - Console::WriteLine( "{0} = {1}", cook->Name, cook->Value ); - Console::WriteLine( "Domain: {0}", cook->Domain ); - Console::WriteLine( "Path: {0}", cook->Path ); - Console::WriteLine( "Port: {0}", cook->Port ); - Console::WriteLine( "Secure: {0}", cook->Secure ); - Console::WriteLine( "When issued: {0}", cook->TimeStamp ); - Console::WriteLine( "Expires: {0} (expired? {1})", cook->Expires, cook->Expired ); - Console::WriteLine( "Don't save: {0}", cook->Discard ); - Console::WriteLine( "Comment: {0}", cook->Comment ); - Console::WriteLine( "Uri for comments: {0}", cook->CommentUri ); - Console::WriteLine( "Version: RFC {0}", cook->Version == 1 ? (String^)"2109" : "2965" ); - - // - // Show the string representation of the cookie. - Console::WriteLine( "String: {0}", cook ); - - // - } - // - -} - -// -// Output from this example will be vary depending on the host name specified, -// but will be similar to the following. -/* -Cookie: -CustomerID = 13xyz -Domain: .contoso.com -Path: / -Port: -Secure: False -When issued: 1/14/2003 3:20:57 PM -Expires: 1/17/2013 11:14:07 AM (expired? False) -Don't save: False -Comment: -Uri for comments: -Version: RFC 2965 -String: CustomerID = 13xyz -*/ -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLCredPolicy/CPP/NCLCredPolicy.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLCredPolicy/CPP/NCLCredPolicy.cpp deleted file mode 100644 index 43ec554b17892..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLCredPolicy/CPP/NCLCredPolicy.cpp +++ /dev/null @@ -1,249 +0,0 @@ - -// NCLCredPolicy -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Security; -using namespace System::IO; -using namespace System::Text; -using namespace System::Collections; -using namespace System::Collections::Specialized; -using namespace Microsoft::Win32; - -// -public ref class SelectedHostsCredentialPolicy: public ICredentialPolicy -{ -public: - SelectedHostsCredentialPolicy(){} - - virtual bool ShouldSendCredential( Uri^ challengeUri, WebRequest^ request, NetworkCredential^ /*credential*/, IAuthenticationModule^ /*authModule*/ ) - { - Console::WriteLine( L"Checking custom credential policy." ); - if ( request->RequestUri->Host->Equals( L"www.contoso.com" ) || challengeUri->IsLoopback == true ) - return true; - - return false; - } -}; -// - -// -// The following class allows credentials to be sent if they are for requests for resources -// in the same domain, or if the request uses the HTTPSscheme and basic authentication is -// required. -public ref class HttpsBasicCredentialPolicy: public IntranetZoneCredentialPolicy -{ -public: - HttpsBasicCredentialPolicy(){} - - virtual bool ShouldSendCredential( Uri^ challengeUri, WebRequest^ request, NetworkCredential^ credential, IAuthenticationModule^ authModule ) override - { - Console::WriteLine( L"Checking custom credential policy for HTTPS and basic." ); - bool answer = IntranetZoneCredentialPolicy::ShouldSendCredential( challengeUri, request, credential, authModule ); - if ( answer == true ) - { - Console::WriteLine( L"Sending credential for intranet resource." ); - return answer; - } - - // Determine whether the base implementation returned false for basic and HTTPS. - if ( request->RequestUri->Scheme == Uri::UriSchemeHttps && authModule->AuthenticationType->Equals( L"Basic" ) ) - { - Console::WriteLine( L"Sending credential for HTTPS and basic." ); - return true; - } - - return false; - } -}; -// - -public ref class CredentialPolicyExamples -{ -public: - static void UseHttpsBasicCredentialPolicy() - { - HttpsBasicCredentialPolicy^ encryptedBasic = gcnew HttpsBasicCredentialPolicy; - AuthenticationManager::CredentialPolicy = encryptedBasic; - } - - static void UseCustomCredentialPolicy() - { - SelectedHostsCredentialPolicy^ hosts = gcnew SelectedHostsCredentialPolicy; - AuthenticationManager::CredentialPolicy = hosts; - } - - // - static void UseIntranetCredentialPolicy() - { - IntranetZoneCredentialPolicy^ policy = gcnew IntranetZoneCredentialPolicy; - AuthenticationManager::CredentialPolicy = policy; - } - // - - // - // The following example uses the System, System.Net, - // and System.IO namespaces. - static void RequestMutualAuth( Uri^ resource ) - { - // Create a new HttpWebRequest object for the specified resource. - WebRequest^ request = dynamic_cast(WebRequest::Create( resource )); - - // Request mutual authentication. - request->AuthenticationLevel = AuthenticationLevel::MutualAuthRequested; - - // Supply client credentials. - request->Credentials = CredentialCache::DefaultCredentials; - HttpWebResponse^ response = dynamic_cast(request->GetResponse()); - - // Determine whether mutual authentication was used. - Console::WriteLine( L"Is mutually authenticated? {0}", response->IsMutuallyAuthenticated ); - - // Read and display the response. - Stream^ streamResponse = response->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - String^ responseString = streamRead->ReadToEnd(); - Console::WriteLine( responseString ); - - // Close the stream objects. - streamResponse->Close(); - streamRead->Close(); - - // Release the HttpWebResponse. - response->Close(); - } - // - - -private: - - static String^ GetUserName() - { - return L"sharriso1\\Jane"; - } - - static String^ GetUserPassword() - { - return L"LXMP9804!"; - } - -public: - ref class HttpsBasicCredentialOnlyPolicy: public ICredentialPolicy - { - public: - HttpsBasicCredentialOnlyPolicy(){} - - virtual bool ShouldSendCredential( Uri^ /*challengeUri*/, WebRequest^ request, NetworkCredential^ /*credential*/, IAuthenticationModule^ authModule ) - { - Console::WriteLine( L"Checking custom credential policy for HTTPS and basic." ); - - // Determine whether the base implementation returned false for basic and https. - if ( request->RequestUri->Scheme == Uri::UriSchemeHttps && authModule->AuthenticationType->Equals( L"Basic" ) ) - { - Console::WriteLine( L"Sending credential for HTTPS and basic." ); - return true; - } - - return false; - } - - }; - - static void RequestHttpBasicResource( Uri^ resource ) - { - // Set policy to send credentials when using HTTPS and basic authentication; - HttpsBasicCredentialOnlyPolicy^ encryptedBasic = gcnew HttpsBasicCredentialOnlyPolicy; - AuthenticationManager::CredentialPolicy = encryptedBasic; - - // Create a new HttpWebRequest object for the specified resource. - WebRequest^ request = dynamic_cast(WebRequest::Create( resource )); - - // Supply client credentials for basic authentication. - request->Credentials = gcnew NetworkCredential( GetUserName(),GetUserPassword() ); - HttpWebResponse^ response = dynamic_cast(request->GetResponse()); - - // Determine whether mutual authentication was used. - Console::WriteLine( L"Is mutually authenticated? {0}", response->IsMutuallyAuthenticated ); - - // Read and display the response. - System::IO::Stream^ streamResponse = response->GetResponseStream(); - System::IO::StreamReader^ streamRead = gcnew System::IO::StreamReader( streamResponse ); - String^ responseString = streamRead->ReadToEnd(); - Console::WriteLine( responseString ); - - // Close the stream objects. - streamResponse->Close(); - streamRead->Close(); - - // Release the HttpWebResponse. - response->Close(); - } - - // - static void RequestResource( Uri^ resource ) - { - // Set policy to send credentials when using HTTPS and basic authentication. - // Create a new HttpWebRequest object for the specified resource. - WebRequest^ request = dynamic_cast(WebRequest::Create( resource )); - - // Supply client credentials for basic authentication. - request->UseDefaultCredentials = true; - request->AuthenticationLevel = AuthenticationLevel::MutualAuthRequired; - HttpWebResponse^ response = dynamic_cast(request->GetResponse()); - - // Determine mutual authentication was used. - Console::WriteLine( L"Is mutually authenticated? {0}", response->IsMutuallyAuthenticated ); - System::Collections::Specialized::StringDictionary^ spnDictionary = AuthenticationManager::CustomTargetNameDictionary; - System::Collections::IEnumerator^ myEnum = spnDictionary->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - DictionaryEntry^ e = safe_cast(myEnum->Current); - Console::WriteLine( "Key: {0} - {1}", dynamic_cast(e->Key), dynamic_cast(e->Value) ); - } - - // Read and display the response. - System::IO::Stream^ streamResponse = response->GetResponseStream(); - System::IO::StreamReader^ streamRead = gcnew System::IO::StreamReader( streamResponse ); - String^ responseString = streamRead->ReadToEnd(); - Console::WriteLine( responseString ); - - // Close the stream objects. - streamResponse->Close(); - streamRead->Close(); - - // Release the HttpWebResponse. - response->Close(); - } - - /* - - The output from this example will differ based on the requested resource - and whether mutual authentication was successful. For the purpose of illustration, - a sample of the output is shown here: - - Is mutually authenticated? True - Key: http://server1.someDomain.contoso.com - HTTP/server1.someDomain.contoso.com - - - ... - - - */ - // - int TestCredentialPolicy() - { - // UseCustomCredentialPolicy(); - //RequestMutualAuth(new Uri("http://wasabi/noribeta/NamespaceExceptionReport.aspx?Namespace=System.Net")); - //RequestMutualAuth(new Uri("http://sharriso1/test/postaccepter.aspx")); - // RequestResource(new Uri("http://sharriso1.redmond.corp.microsoft.com/test/postaccepter.aspx")); - RequestResource( gcnew Uri( L"http://www.google.com" ) ); - return 1; - } -}; - -void main() -{ - CredentialPolicyExamples^ cpe = gcnew CredentialPolicyExamples; - cpe->TestCredentialPolicy(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLCustomWebClient/CPP/mywebclient.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLCustomWebClient/CPP/mywebclient.cpp deleted file mode 100644 index 57313e17fac96..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLCustomWebClient/CPP/mywebclient.cpp +++ /dev/null @@ -1,188 +0,0 @@ - - -//NCLCustomWebClient -#using - -using namespace System; -using namespace System::Net; - -public ref class CustomWebClient: public WebClient -{ -protected: - - // - virtual WebRequest^ GetWebRequest ( Uri^ address ) override - { - WebRequest^ request = dynamic_cast(WebClient::GetWebRequest( address )); - - // Perform any customizations on the request. - // This version of WebClient always preauthenticates. - request->PreAuthenticate = true; - return request; - } - // - - // - virtual WebResponse^ GetWebResponse( WebRequest^ request ) override - { - WebResponse^ response = WebClient::GetWebResponse( request ); - - // Perform any custom actions with the response ... - return response; - } - // - - // - virtual WebResponse^ GetWebResponse( WebRequest^ request, IAsyncResult^ result ) override - { - WebResponse^ response = WebClient::GetWebResponse( request, result ); - - // Perform any custom actions with the response ... - return response; - } - // - - // - virtual void OnDownloadDataCompleted( DownloadDataCompletedEventArgs ^ e ) override - { - // Here you can perform any custom actions before the event is raised - // and event handlers are called... - WebClient::OnDownloadDataCompleted( e ); - - // Here you can perform any post event actions... - } - // - - // - virtual void OnDownloadFileCompleted( System::ComponentModel::AsyncCompletedEventArgs ^ e ) override - { - // Here you can perform any custom actions before the event is raised - // and event handlers are called... - WebClient::OnDownloadFileCompleted( e ); - - // Here you can perform any post event actions... - } - // - - // - virtual void OnDownloadStringCompleted( DownloadStringCompletedEventArgs ^ e ) override - { - // Here you can perform any custom actions before the event is raised - // and event handlers are called... - WebClient::OnDownloadStringCompleted( e ); - - // Here you can perform any post event actions... - } - // - - // - virtual void OnOpenReadCompleted( OpenReadCompletedEventArgs ^ e ) override - { - // Here you can perform any custom actions before the event is raised - // and event handlers are called... - WebClient::OnOpenReadCompleted( e ); - - // Here you can perform any post event actions... - } - // - - // - virtual void OnOpenWriteCompleted( OpenWriteCompletedEventArgs ^ e ) override - { - // Here you can perform any custom actions before the event is raised - // and event handlers are called... - WebClient::OnOpenWriteCompleted( e ); - - // Here you can perform any post event actions... - } - // - - // - virtual void OnUploadDataCompleted( UploadDataCompletedEventArgs ^ e ) override - { - // Here you can perform any custom actions before the event is raised - // and event handlers are called... - WebClient::OnUploadDataCompleted( e ); - - // Here you can perform any post event actions... - } - // - - // - virtual void OnUploadFileCompleted( UploadFileCompletedEventArgs ^ e ) override - { - // Here you can perform any custom actions before the event is raised - // and event handlers are called... - WebClient::OnUploadFileCompleted( e ); - - // Here you can perform any post event actions... - } - // - - // - virtual void OnUploadStringCompleted( UploadStringCompletedEventArgs ^ e ) override - { - // Here you can perform any custom actions before the event is raised - // and event handlers are called... - WebClient::OnUploadStringCompleted( e ); - - // Here you can perform any post event actions... - } - // - - // - virtual void OnDownloadProgressChanged( DownloadProgressChangedEventArgs ^ e ) override - { - // Here you can perform any custom actions before the event is raised - // and event handlers are called... - WebClient::OnDownloadProgressChanged( e ); - - // Here you can perform any post event actions... - } - // - - // - virtual void OnUploadProgressChanged( UploadProgressChangedEventArgs ^ e ) override - { - // Here you can perform any custom actions before the event is raised - // and event handlers are called... - WebClient::OnUploadProgressChanged( e ); - - // Here you can perform any post event actions... - } - // - - // - virtual void OnUploadValuesCompleted( UploadValuesCompletedEventArgs ^ e ) override - { - // Here you can perform any custom actions before the event is raised - // and event handlers are called... - WebClient::OnUploadValuesCompleted( e ); - - // Here you can perform any post event actions... - } - // -}; - -int main() -{ - CustomWebClient^ newClient = gcnew CustomWebClient; -} - -// Output from this example will be vary depending on the host name specified, -// but will be similar to the following. -/* -Cookie: -CustomerID = 13xyz -Domain: .contoso.com -Path: / -Port: -Secure: False -When issued: 1/14/2003 3:20:57 PM -Expires: 1/17/2013 11:14:07 AM (expired? False) -Don't save: False -Comment: -Uri for comments: -Version: RFC 2965 -String: CustomerID = 13xyz -*/ diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLEmptyWebProxy/CPP/test.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLEmptyWebProxy/CPP/test.cpp deleted file mode 100644 index 6a13836357ff0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLEmptyWebProxy/CPP/test.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -int main() -{ - - // Create a request for the Web page at www.contoso.com. - WebRequest^ request = WebRequest::Create( L"http://www.contoso.com" ); - - // This application doesn't want they proxy to be used so it sets - // the global proxy to an empy proxy. - IWebProxy^ myProxy = GlobalProxySelection::GetEmptyWebProxy(); - - // Get the response. - WebResponse^ response = request->GetResponse(); - - // Display the response to the console. - Stream^ stream = response->GetResponseStream(); - StreamReader^ reader = gcnew StreamReader( stream ); - Console::WriteLine( reader->ReadToEnd() ); - - // Clean up. - reader->Close(); - stream->Close(); - response->Close(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLFtpAsync/CPP/async.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLFtpAsync/CPP/async.cpp deleted file mode 100644 index e507d6263b90a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLFtpAsync/CPP/async.cpp +++ /dev/null @@ -1,227 +0,0 @@ - - -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::Threading; -using namespace System::IO; - -// -public ref class FtpState -{ -private: - ManualResetEvent^ wait; - FtpWebRequest^ request; - String^ fileName; - Exception^ operationException; - String^ status; - -public: - FtpState() - { - wait = gcnew ManualResetEvent( false ); - } - - property ManualResetEvent^ OperationComplete - { - ManualResetEvent^ get() - { - return wait; - } - - } - - property FtpWebRequest^ Request - { - FtpWebRequest^ get() - { - return request; - } - - void set( FtpWebRequest^ value ) - { - request = value; - } - - } - - property String^ FileName - { - String^ get() - { - return fileName; - } - - void set( String^ value ) - { - fileName = value; - } - - } - - property Exception^ OperationException - { - Exception^ get() - { - return operationException; - } - - void set( Exception^ value ) - { - operationException = value; - } - - } - - property String^ StatusDescription - { - String^ get() - { - return status; - } - - void set( String^ value ) - { - status = value; - } - - } -}; -// - -// -public ref class AsynchronousFtpUpLoader -{ -public: - - // - // Command line arguments are two strings: - // 1. The url that is the name of the file being uploaded to the server. - // 2. The name of the file on the local machine. - // - static void Main() - { - array^args = Environment::GetCommandLineArgs(); - - // Create a Uri instance with the specified URI string. - // If the URI is not correctly formed, the Uri constructor - // will throw an exception. - ManualResetEvent^ waitObject; - Uri^ target = gcnew Uri( args[ 1 ] ); - String^ fileName = args[ 2 ]; - FtpState^ state = gcnew FtpState; - FtpWebRequest ^ request = dynamic_cast(WebRequest::Create( target )); - request->Method = WebRequestMethods::Ftp::UploadFile; - - // This example uses anonymous logon. - // The request is anonymous by default; the credential does not have to be specified. - // The example specifies the credential only to - // control how actions are logged on the server. - request->Credentials = gcnew NetworkCredential( "anonymous","janeDoe@contoso.com" ); - - // Store the request in the object that we pass into the - // asynchronous operations. - state->Request = request; - state->FileName = fileName; - - // Get the event to wait on. - waitObject = state->OperationComplete; - - // Asynchronously get the stream for the file contents. - request->BeginGetRequestStream( gcnew AsyncCallback( EndGetStreamCallback ), state ); - - // Block the current thread until all operations are complete. - waitObject->WaitOne(); - - // The operations either completed or threw an exception. - if ( state->OperationException != nullptr ) - { - throw state->OperationException; - } - else - { - Console::WriteLine( "The operation completed - {0}", state->StatusDescription ); - } - } - // - - // -private: - static void EndGetStreamCallback( IAsyncResult^ ar ) - { - FtpState^ state = dynamic_cast(ar->AsyncState); - Stream^ requestStream = nullptr; - - // End the asynchronous call to get the request stream. - try - { - requestStream = state->Request->EndGetRequestStream( ar ); - - // Copy the file contents to the request stream. - const int bufferLength = 2048; - array^buffer = gcnew array(bufferLength); - int count = 0; - int readBytes = 0; - FileStream^ stream = File::OpenRead( state->FileName ); - do - { - readBytes = stream->Read( buffer, 0, bufferLength ); - requestStream->Write( buffer, 0, bufferLength ); - count += readBytes; - } - while ( readBytes != 0 ); - Console::WriteLine( "Writing {0} bytes to the stream.", count ); - - // IMPORTANT: Close the request stream before sending the request. - requestStream->Close(); - - // Asynchronously get the response to the upload request. - state->Request->BeginGetResponse( gcnew AsyncCallback( EndGetResponseCallback ), state ); - } - // Return exceptions to the main application thread. - catch ( Exception^ e ) - { - Console::WriteLine( "Could not get the request stream." ); - state->OperationException = e; - state->OperationComplete->Set(); - return; - } - } - // - - // - // The EndGetResponseCallback method - // completes a call to BeginGetResponse. - static void EndGetResponseCallback( IAsyncResult^ ar ) - { - FtpState^ state = dynamic_cast(ar->AsyncState); - FtpWebResponse ^ response = nullptr; - try - { - response = dynamic_cast(state->Request->EndGetResponse( ar )); - response->Close(); - state->StatusDescription = response->StatusDescription; - - // Signal the main application thread that - // the operation is complete. - state->OperationComplete->Set(); - } - // Return exceptions to the main application thread. - catch ( Exception^ e ) - { - Console::WriteLine( "Error getting response." ); - state->OperationException = e; - state->OperationComplete->Set(); - } - } - // -}; -// - -int main() -{ - AsynchronousFtpUpLoader::Main(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLFtpClient/CPP/ftptests.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLFtpClient/CPP/ftptests.cpp deleted file mode 100644 index 779372bd9864c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLFtpClient/CPP/ftptests.cpp +++ /dev/null @@ -1,842 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; -using namespace System::IO; -using namespace System::Threading; -using namespace System::Security::Cryptography::X509Certificates; - -public ref class FtpRequestTest -{ -private: - - // FxCop rule requires a private constructor. - FtpRequestTest(){} - - -public: - - // - static bool ListFilesOnServer( Uri^ serverUri ) - { - // The serverUri should start with the ftp:// scheme. - if ( serverUri->Scheme != Uri::UriSchemeFtp ) - { - return false; - } - - // Get the object used to communicate with the server. - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::ListDirectory; - - // Get the ServicePoint object used for this request, and limit it to one connection. - // In a real-world application you might use the default number of connections (2), - // or select a value that works best for your application. - ServicePoint^ sp = request->ServicePoint; - Console::WriteLine( "ServicePoint connections = {0}.", sp->ConnectionLimit ); - sp->ConnectionLimit = 1; - FtpWebResponse^ response = dynamic_cast(request->GetResponse()); - - // The following streams are used to read the data returned from the server. - Stream^ responseStream = nullptr; - StreamReader^ readStream = nullptr; - try - { - responseStream = response->GetResponseStream(); - readStream = gcnew StreamReader( responseStream,System::Text::Encoding::UTF8 ); - if ( readStream != nullptr ) - { - // Display the data received from the server. - Console::WriteLine( readStream->ReadToEnd() ); - } - - Console::WriteLine( "List status: {0}", response->StatusDescription ); - } - finally - { - if ( readStream != nullptr ) - { - readStream->Close(); - } - - if ( response != nullptr ) - { - response->Close(); - } - } - - return true; - } - // - - // new content - // - static bool NameListFilesOnServer( Uri^ serverUri ) - { - // The serverUri should start with the ftp:// scheme. - if ( serverUri->Scheme != Uri::UriSchemeFtp ) - { - return false; - } - - // Get the object used to communicate with the server. - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::ListDirectoryDetails; - FtpWebResponse^ response = dynamic_cast(request->GetResponse()); - - // The following streams are used to read the data returned from the server. - Stream^ responseStream = nullptr; - StreamReader^ readStream = nullptr; - try - { - responseStream = response->GetResponseStream(); - readStream = gcnew StreamReader( responseStream,System::Text::Encoding::UTF8 ); - if ( readStream != nullptr ) - { - // Display the data received from the server. - Console::WriteLine( readStream->ReadToEnd() ); - } - - Console::WriteLine( "Status: {0}", response->StatusDescription ); - } - finally - { - if ( readStream != nullptr ) - { - readStream->Close(); - } - - if ( response != nullptr ) - { - response->Close(); - } - } - - return true; - } - // - - // - static bool GetDateTimestampOnServer( Uri^ serverUri ) - { - // The serverUri should start with the ftp:// scheme. - if ( serverUri->Scheme != Uri::UriSchemeFtp ) - { - return false; - } - - // Get the object used to communicate with the server. - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::GetDateTimestamp; - FtpWebResponse^ response = dynamic_cast(request->GetResponse()); - Console::WriteLine( "{0} {1}", serverUri, response->LastModified ); - - // The output from this method will vary depening on the - // file specified and your regional settings. It is similar to: - // ftp://contoso.com/Data.txt 4/15/2003 10:46:02 AM - return true; - } - // - - // - static bool MakeDirectoryOnServer( Uri^ serverUri ) - { - // The serverUri should start with the ftp:// scheme. - if ( serverUri->Scheme != Uri::UriSchemeFtp ) - { - return false; - } - - // Get the object used to communicate with the server. - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::MakeDirectory; - FtpWebResponse^ response = dynamic_cast(request->GetResponse()); - Console::WriteLine( "Status: {0}", response->StatusDescription ); - return true; - } - // - - // - static bool UploadUniqueFileOnServer( Uri^ serverUri, String^ fileName ) - { - // The URI described by serverUri should use the ftp:// scheme. - // It contains the name of the directory on the server. - // Example: ftp://contoso.com. - // - // The fileName parameter identifies the file containing the data to be uploaded. - if ( serverUri->Scheme != Uri::UriSchemeFtp ) - { - return false; - } - - // Get the object used to communicate with the server. - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::UploadFileWithUniqueName; - - // Don't set a time limit for the operation to complete. - request->Timeout = System::Threading::Timeout::Infinite; - - // Copy the file contents to the request stream. - const int bufferLength = 2048; - array^buffer = gcnew array(bufferLength); - int count = 0; - int readBytes = 0; - FileStream^ stream = File::OpenRead( fileName ); - Stream^ requestStream = request->GetRequestStream(); - do - { - readBytes = stream->Read( buffer, 0, bufferLength ); - requestStream->Write( buffer, 0, bufferLength ); - count += readBytes; - } - while ( readBytes != 0 ); - - Console::WriteLine( "Writing {0} bytes to the stream.", count ); - - // IMPORTANT: Close the request stream before sending the request. - requestStream->Close(); - FtpWebResponse^ response = dynamic_cast(request->GetResponse()); - Console::WriteLine( "Upload status: {0}, {1}", response->StatusCode, response->StatusDescription ); - Console::WriteLine( "File name: {0}", response->ResponseUri ); - response->Close(); - return true; - } - // - - // - static bool RemoveDirectoryOnServer( Uri^ serverUri ) - { - // The serverUri should start with the ftp:// scheme. - if ( serverUri->Scheme != Uri::UriSchemeFtp ) - { - return false; - } - - // Get the object used to communicate with the server. - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::RemoveDirectory; - FtpWebResponse^ response = dynamic_cast(request->GetResponse()); - Console::WriteLine( "Status: {0}", response->StatusDescription ); - return true; - } - // - - // - static bool UploadFileToServer( String^ fileName, Uri^ serverUri ) - { - // The URI described by serverUri should use the ftp:// scheme. - // It contains the name of the file on the server. - // Example: ftp://contoso.com/someFile.txt. - // - // The fileName parameter identifies the file containing the data to be uploaded. - if ( serverUri->Scheme != Uri::UriSchemeFtp ) - { - return false; - } - - // Get the object used to communicate with the server. - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::UploadFile; - - // Don't set a time limit for the operation to complete. - request->Timeout = System::Threading::Timeout::Infinite; - - // Copy the file contents to the request stream. - const int bufferLength = 2048; - array^buffer = gcnew array(bufferLength); - int count = 0; - int readBytes = 0; - FileStream^ stream = File::OpenRead( fileName ); - Stream^ requestStream = request->GetRequestStream(); - do - { - readBytes = stream->Read( buffer, 0, bufferLength ); - requestStream->Write( buffer, 0, bufferLength ); - count += readBytes; - } - while ( readBytes != 0 ); - - Console::WriteLine( "Writing {0} bytes to the stream.", count ); - - // IMPORTANT: Close the request stream before sending the request. - requestStream->Close(); - FtpWebResponse^ response = dynamic_cast(request->GetResponse()); - Console::WriteLine( "Upload status: {0}, {1}", response->StatusCode, response->StatusDescription ); - response->Close(); - return true; - } - // - - // - static bool AppendFileOnServer( String^ fileName, Uri^ serverUri ) - { - // The URI described by serverUri should use the ftp:// scheme. - // It contains the name of the file on the server. - // Example: ftp://contoso.com/someFile.txt. - // The fileName parameter identifies the file containing - // the data to be appended to the file on the server. - if ( serverUri->Scheme != Uri::UriSchemeFtp ) - { - return false; - } - - // Get the object used to communicate with the server. - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::AppendFile; - StreamReader^ sourceStream = gcnew StreamReader( fileName ); - array^fileContents = Encoding::UTF8->GetBytes( sourceStream->ReadToEnd() ); - sourceStream->Close(); - request->ContentLength = fileContents->Length; - - // This example assumes the FTP site uses anonymous logon. - request->Credentials = gcnew NetworkCredential( "anonymous","janeDoe@contoso.com" ); - Stream^ requestStream = request->GetRequestStream(); - requestStream->Write( fileContents, 0, fileContents->Length ); - requestStream->Close(); - FtpWebResponse^ response = dynamic_cast(request->GetResponse()); - Console::WriteLine( "Append status: {0}", response->StatusDescription ); - response->Close(); - return true; - } - // - - // - static bool DeleteFileOnServer( Uri^ serverUri ) - { - // The serverUri parameter should use the ftp:// scheme. - // It contains the name of the server file that is to be deleted. - // Example: ftp://contoso.com/someFile.txt. - // - if ( serverUri->Scheme != Uri::UriSchemeFtp ) - { - return false; - } - - // Get the object used to communicate with the server. - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::DeleteFile; - FtpWebResponse^ response = dynamic_cast(request->GetResponse()); - Console::WriteLine( "Delete status: {0}", response->StatusDescription ); - response->Close(); - return true; - } - // - - // - static bool DisplayFileFromServer( Uri^ serverUri ) - { - // The serverUri parameter should start with the ftp:// scheme. - if ( serverUri->Scheme != Uri::UriSchemeFtp ) - { - return false; - } - - // Get the object used to communicate with the server. - WebClient^ request = gcnew WebClient; - - // This example assumes the FTP site uses anonymous logon. - request->Credentials = gcnew NetworkCredential( "anonymous","janeDoe@contoso.com" ); - try - { - array^newFileData = request->DownloadData( serverUri->ToString() ); - String^ fileString = System::Text::Encoding::UTF8->GetString( newFileData ); - Console::WriteLine( fileString ); - } - catch ( WebException^ e ) - { - Console::WriteLine( e ); - } - - return true; - } - // - - - // -private: - // DisplayRequestProperties prints a request's properties. - // This method should be called after the request is sent to the server. - static void DisplayRequestProperties( FtpWebRequest^ request ) - { - // - Console::WriteLine( "User {0} {1}", request->Credentials->GetCredential( request->RequestUri, "basic" )->UserName, request->RequestUri ); - - // - Console::WriteLine( "Request: {0} {1}", request->Method, request->RequestUri ); - - // - Console::WriteLine( "Passive: {0} Keep alive: {1} Binary: {2} Timeout: {3}.", request->UsePassive, request->KeepAlive, request->UseBinary, request->Timeout == -1 ? "none" : request->Timeout.ToString() ); - - // - // - IWebProxy^ proxy = request->Proxy; - if ( proxy ) - { - Console::WriteLine( "Proxy: {0}", proxy->GetProxy( request->RequestUri ) ); - } - else - { - Console::WriteLine( "Proxy: (none)" ); - } - - Console::WriteLine( "ConnectionGroup: {0}", request->ConnectionGroupName == nullptr ? "none" : request->ConnectionGroupName ); - // - - Console::WriteLine( "Encrypted connection: {0}", request->EnableSsl ); - - Console::WriteLine("Method: {0}", request->Method); - } - // - - // -public: - // NOT Working - throws a protocolError - 350 Restarting at 8. for args shown in Main. - static bool RestartDownloadFromServer( String^ fileName, Uri^ serverUri, long offset ) - { - // The serverUri parameter should use the ftp:// scheme. - // It identifies the server file that is to be appended. - // Example: ftp://contoso.com/someFile.txt. - // - // The fileName parameter identifies the local file - // - // The offset parameter specifies where in the server file to start reading data. - if ( serverUri->Scheme != Uri::UriSchemeFtp ) - { - return false; - } - - // Get the object used to communicate with the server. - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::DownloadFile; - request->ContentOffset = offset; - FtpWebResponse^ response = nullptr; - try - { - response = dynamic_cast(request->GetResponse()); - } - catch ( WebException^ e ) - { - Console::WriteLine( e->Status ); - Console::WriteLine( e->Message ); - return false; - } - - Stream^ newFile = response->GetResponseStream(); - StreamReader^ reader = gcnew StreamReader( newFile ); - - // Display downloaded data. - String^ newFileData = reader->ReadToEnd(); - - // Append the response data to the local file - // using a StreamWriter. - StreamWriter^ writer = File::AppendText(fileName); - writer->Write(newFileData); - - // Display the status description. - - // Cleanup. - writer->Close(); - reader->Close(); - response->Close(); - // string fileString = System.Text.Encoding.UTF8.GetString(newFileData); - // Console::WriteLine( sr ); - Console::WriteLine("Download restart - status: {0}",response->StatusDescription); - return true; - } - // - - // not enabled in M2 - // Sample call: SendCommandToServer("ftp://contoso.com/", "pwd"); - // The output can only return status information. - static bool SendCommandToServer( String^ serverUri, String^ command ) - { - // The serverUri parameter should start with the ftp:// scheme. - // It contains the name of the file on the server that will be appended. - // Example: ftp://contoso.com/someFile.txt. - // - // The command parameter identifies the command to send to the server. - if ( serverUri->ToLower()->StartsWith( Uri::UriSchemeFtp ) == false ) - { - return false; - } - - // Get the object used to communicate with the server. - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = command; - - // This example assumes the FTP site uses anonymous logon. - request->Credentials = gcnew NetworkCredential( "anonymous","janeDoe@contoso.com" ); - FtpWebResponse^ response = dynamic_cast(request->GetResponse()); - Console::WriteLine( "{0} status: {1}", command, response->StatusDescription ); - response->Close(); - return true; - } - - // - static bool DownloadFileFromServer( Uri^ serverUri, String^ localFileName ) - { - // The serverUri parameter should start with the ftp:// scheme. - if ( serverUri->Scheme != Uri::UriSchemeFtp ) - { - return false; - } - - // Get the object used to communicate with the server. - // Note that the cast to FtpWebRequest is done only - // for the purposes of illustration. If your application - // does not set any properties other than those defined in the - // System.Net.WebRequest class, you can use the following line instead: - // WebRequest request = WebRequest.Create(serverUri); - // - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::DownloadFile; - FtpWebResponse^ response = dynamic_cast(request->GetResponse()); - Stream^ responseStream = nullptr; - StreamReader^ readStream = nullptr; - StreamWriter^ writeStream = nullptr; - try - { - responseStream = response->GetResponseStream(); - readStream = gcnew StreamReader( responseStream,System::Text::Encoding::UTF8 ); - - // Display information about the data received from the server. - Console::WriteLine( "Bytes received: {0}", response->ContentLength ); - Console::WriteLine( "Message from server: {0}", response->StatusDescription ); - Console::WriteLine( "Resource: {0}", response->ResponseUri ); - - // Write the bytes received from the server to the local file. - if ( readStream != nullptr ) - { - writeStream = gcnew StreamWriter( localFileName,false ); - writeStream->Write( readStream->ReadToEnd() ); - } - } - finally - { - if ( readStream != nullptr ) - { - readStream->Close(); - } - - if ( response != nullptr ) - { - response->Close(); - } - - if ( writeStream != nullptr ) - { - writeStream->Close(); - } - } - - return true; - } - // - - // Make a request to show the request properties - static void GetRequestProperties( Uri^ serverUri ) - { - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - - // This example assumes the FTP site uses anonymous logon. - request->Credentials = gcnew NetworkCredential( "anonymous","janeDoe@contoso.com" ); - request->Proxy = gcnew WebProxy; - request->Method = WebRequestMethods::Ftp::DownloadFile; - request->Abort(); - DisplayRequestProperties( request ); - } - - // async snippets - // - static bool GetFileSizeFromServer( Uri^ serverUri ) - { - // The serverUri parameter should start with the ftp:// scheme. - if ( serverUri->Scheme != Uri::UriSchemeFtp ) - { - return false; - } - - // Get the object used to communicate with the server. - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::GetFileSize; - FtpWebResponse^ response = dynamic_cast(request->GetResponse()); - - // Display information about the server response. - Console::WriteLine( "size of file: {0}", response->ContentLength ); - response->Close(); - return true; - } - // - - // - static bool ListFilesOnServerSsl( Uri^ serverUri ) - { - // The serverUri should start with the ftp:// scheme. - if ( serverUri->Scheme != Uri::UriSchemeFtp ) - { - return false; - } - - // Get the object used to communicate with the server. - FtpWebRequest^ request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::ListDirectory; - request->EnableSsl = true; - - // Get the ServicePoint object used for this request, and limit it to one connection. - // In a real-world application you might use the default number of connections (2), - // or select a value that works best for your application. - ServicePoint^ sp = request->ServicePoint; - Console::WriteLine( "ServicePoint connections = {0}.", sp->ConnectionLimit ); - sp->ConnectionLimit = 1; - FtpWebResponse^ response = dynamic_cast(request->GetResponse()); - Console::WriteLine( "The content length is {0}", response->ContentLength ); - - // The following streams are used to read the data returned from the server. - Stream^ responseStream = nullptr; - StreamReader^ readStream = nullptr; - responseStream = response->GetResponseStream(); - readStream = gcnew StreamReader( responseStream,System::Text::Encoding::UTF8 ); - - // Display the data received from the server. - Console::WriteLine( readStream->ReadToEnd() ); - Console::WriteLine( "List status: {0}", response->StatusDescription ); - readStream->Close(); - response->Close(); - - // - Console::WriteLine( "Banner message: {0}", response->BannerMessage ); - // - - // - Console::WriteLine( "Welcome message: {0}", response->WelcomeMessage ); - // - - // - Console::WriteLine( "Exit message: {0}", response->ExitMessage ); - // - - return true; - } - - // -internal: - static FtpStatusCode WaitForFinalStatus( FtpWebResponse^ response ) - { - int status = (int)response->StatusCode; - - // < 200 is undefined or informational messages. - // 300 and 400 are intermediate and temporary errors respectively. - // 200- 299 and 500- 599 are final statuses indicating - // sucess or failure respectively. - while ( status < 200 || (status >= 300 && status < 500) ) - { - Console::Write( "{0}. ", status ); - System::Threading::Thread::Sleep( 100 ); - status = (int)response->StatusCode; - } - - return response->StatusCode; - } - - -public: - static void Main() - { - // tests for snippets: - // ListFilesOnServer(new Uri(S"ftp://sharriso1")); - // works m3.1 - // NameListFilesOnServer (new Uri (S"ftp://sharriso1")); - // throws - // GetDateTimestampOnServer (new Uri ("ftp://sharriso1")); - // GetDateTimestampOnServer (new Uri (S"ftp://sharriso1/localfile.txt")); - // RemoveDirectoryOnServer (new Uri (S"ftp://sharriso1/DirtyDir")); - // MakeDirectoryOnServer (new Uri (S"ftp://sharriso1/DirtyDir")); - // UploadUniqueFileOnServer (new Uri (S"ftp://sharriso1/SherdieDir/"), "sharriso2.log"); - // ListFilesOnServer (new Uri (S"ftp://sharriso1")); - ListFilesOnServerSsl( gcnew Uri( "ftp://sharriso1" ) ); - - // snippet 8 - not working - // snippet 1 - // ListFilesOnServer(new Uri("ftp://sharriso1/")); - // snippet 8 - not working - //SendCommandToServer("ftp://sharriso1/", "rename localfile.txt loc2.txt"); - // new snippet 7 - // upload is just helper - //UploadFileToServer("NCLFtpClient.xml", new Uri("ftp://sharriso1/NCLFtpClient.xml")); - // RestartDownloadFromServer("piecexml.txt", new Uri("ftp://sharriso1/NCLFtpClient.xml"), 8); - // DownloadFileFromServer(new Uri("ftp://sharriso1/onesandtwos.txt"), "downloadedFile0320_1.txt"); - // snippet 11 - GetFileSizeFromServer( gcnew Uri( "ftp://sharriso1/localfile.txt" ) ); - - // snippet 5 - // DisplayFileFromServer Not working! - // DisplayFileFromServer(new Uri("ftp://sharriso1/ss1.txt")); - // snippet 2 - // UploadFileToServer("local.txt", new Uri("ftp://sharriso1/localfile.txt")); - //DeleteFileOnServer(new Uri("ftp://sharriso1/localfile.txt")); - // DownloadFileFromServer(new Uri("ftp://sharriso1/localFileagain.txt"), "dlagain.txt"); - // AppendFileOnServer("dlagain.txt", new Uri("ftp://sharriso1/localfile.txt")); - // Snippet 14, 15, and 16 - // GetRequestProperties(new Uri("ftp://sharriso1/localfile.txt")); - // Snippet 9 - // DownloadFileFromServer(new Uri("ftp://sharriso1/localFileagain.txt"), "dlagain.txt"); - //AsynchronousUploadFileToServer( "system.pdb","ftp://sharriso1/localFile.pdb"); - // ListFilesOnServer(new Uri("ftp://sharriso1")); - //DownloadFileFromServer(new Uri("ftp://sharriso1/localFileagain.txt"), "dlagain.txt"); - //UploadPartialFileOnServer("allOnes.txt", "ftp://sharriso1/babyones.txt", 20 ); - // TestCloning(); - // test the async methods - // ManualResetEvent wait = new ManualResetEvent(false); - // AsynchronousFtpUpLoader uploader = new AsynchronousFtpUpLoader(wait); - // uploader.AsynchronousUploadFileToServer("ftptests.cs", "ftp://sharriso1/ftptests.txt"); - // wait.WaitOne(); - // Snippet 10 - // ManualResetEvent wait = new ManualResetEvent(false); - // AsynchronousFtpUpLoader uploader = new AsynchronousFtpUpLoader(wait); - // uploader.AbortUpload("mscorlib.xml", "ftp://sharriso1/ftptests.txt"); - // wait.WaitOne(); - } -}; - - -// The RequestState class is the state object used to store the request information -// during asynchronous operations. -private ref class RequestState -{ -internal: - FtpWebRequest^ request; - Object^ requestData; - RequestState( FtpWebRequest ^theRequest, Object^ data ) - { - request = theRequest; - requestData = data; - } -}; - -public ref class AsynchronousFtpUpLoader -{ -private: - ManualResetEvent^ wait; - FtpWebRequest^ request; - array^fileContents; - Exception^ asyncException; - -public: - AsynchronousFtpUpLoader( ManualResetEvent^ wait ) - { - this->wait = wait; - } - - // In the AsynchronousUploadFileToServer method, - // serverUri contains the name of the file on the FTP server, and - // fileName contains the name of the file on the local computer. - void AsynchronousUploadFileToServer( String^ fileName, String^ serverUri ) - { - request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::UploadFile; - - // This example assumes the FTP site uses anonymous logon. - request->Credentials = gcnew NetworkCredential( "anonymous","janeDoe@contoso.com" ); - - // Get the file to be uploaded and convert it to bytes. - StreamReader^ sourceStream = gcnew StreamReader( fileName ); - fileContents = Encoding::UTF8->GetBytes( sourceStream->ReadToEnd() ); - sourceStream->Close(); - - // Set the content length to the number of bytes in the file. - request->ContentLength = fileContents->Length; - - // Asynchronously get the stream for the file contents. - IAsyncResult^ ar = request->BeginGetRequestStream( gcnew AsyncCallback( this, &AsynchronousFtpUpLoader::EndGetStreamCallback ), nullptr ); - Console::WriteLine( "Getting the request stream asynchronously..." ); - } - -private: - void EndGetStreamCallback( IAsyncResult^ ar ) - { - // Thread.Sleep(5000); - // Console.WriteLine("I'm awake now"); - Stream^ requestStream = nullptr; - - // End the asynchronous call to get the request stream. - try - { - requestStream = request->EndGetRequestStream( ar ); - } - // Return exceptions to the main application thread. - catch ( Exception^ e ) - { - Console::WriteLine( "Could not get the request stream." ); - asyncException = e; - wait->Set(); - return; - } - - // Write the file contents to the request stream. - requestStream->Write( fileContents, 0, fileContents->Length ); - Console::WriteLine( "Writing {0} bytes to the stream.", fileContents->Length ); - - // IMPORTANT: Close the request stream before sending the request. - requestStream->Close(); - IAsyncResult^ responseAR = request->BeginGetResponse( gcnew AsyncCallback( this, &AsynchronousFtpUpLoader::EndGetResponseCallback ), nullptr ); - } - - // The EndGetResponseCallback method - // completes a call to BeginGetResponse. - void EndGetResponseCallback( IAsyncResult^ ar ) - { - FtpWebResponse^ response = nullptr; - try - { - response = dynamic_cast(request->EndGetResponse( ar )); - } - // Return exceptions to the main application thread. - catch ( Exception^ e ) - { - Console::WriteLine( "Error getting response." ); - asyncException = e; - } - - Console::WriteLine( "Upload status: {0}", response->StatusDescription ); - - // Signal the application thread that this is complete. - wait->Set(); - } - - // -public: - void AbortUpload( String^ fileName, String^ serverUri ) - { - request = dynamic_cast(WebRequest::Create( serverUri )); - request->Method = WebRequestMethods::Ftp::UploadFile; - - // Get the file to be uploaded and convert it to bytes. - StreamReader^ sourceStream = gcnew StreamReader( fileName ); - fileContents = Encoding::UTF8->GetBytes( sourceStream->ReadToEnd() ); - sourceStream->Close(); - - // Set the content length to the number of bytes in the file. - request->ContentLength = fileContents->Length; - - // Asynchronously get the stream for the file contents. - IAsyncResult^ ar = request->BeginGetRequestStream( gcnew AsyncCallback( this, &AsynchronousFtpUpLoader::EndGetStreamCallback ), nullptr ); - Console::WriteLine( "Getting the request stream asynchronously..." ); - Console::WriteLine( "Press 'a' to abort the upload or any other key to continue" ); - String^ input = Console::ReadLine(); - if ( input->Equals( "a" ) ) - { - request->Abort(); - Console::WriteLine( "Request aborted" ); - return; - } - } - // -}; - -int main() -{ - FtpRequestTest::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLMailSync/CPP/NclMailSync.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLMailSync/CPP/NclMailSync.cpp deleted file mode 100644 index caa3478f6592d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLMailSync/CPP/NclMailSync.cpp +++ /dev/null @@ -1,1086 +0,0 @@ - -// NclMailSync -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Mail; -using namespace System::Net::Mime; -using namespace System::Collections; -using namespace System::Collections::Specialized; -using namespace System::IO; -using namespace System::Text; - -public ref class CtorExamples -{ -public: - - // - static void CreateTestMessage1( String^ server, int port ) - { - String^ to = L"jane@contoso.com"; - String^ from = L"ben@contoso.com"; - String^ subject = L"Using the new SMTP client."; - String^ body = L"Using this new feature, you can send an email message from an application very easily."; - MailMessage^ message = gcnew MailMessage( from,to,subject,body ); - SmtpClient^ client = gcnew SmtpClient( server,port ); - - // Credentials are necessary if the server requires the client - // to authenticate before it will send email on the client's behalf. - client->Credentials = CredentialCache::DefaultNetworkCredentials; - - //Display the properties on the service point. - ServicePoint^ p = client->ServicePoint; - Console::WriteLine( L"Connection lease timeout: {0}", p->ConnectionLeaseTimeout ); - client->Send( message ); - client->~SmtpClient(); - } - - - // - // - static void CreateTestMessage2( String^ server ) - { - String^ to = L"jane@contoso.com"; - String^ from = L"ben@contoso.com"; - MailMessage^ message = gcnew MailMessage( from,to ); - message->Subject = L"Using the new SMTP client."; - message->Body = L"Using this new feature, you can send an email message from an application very easily."; - SmtpClient^ client = gcnew SmtpClient( server ); - - // Credentials are necessary if the server requires the client - // to authenticate before it will send email on the client's behalf. - client->UseDefaultCredentials = true; - client->Send( message ); - client->~SmtpClient(); - } - - - // - // - static void CreateTimeoutTestMessage( String^ server ) - { - String^ to = L"jane@contoso.com"; - String^ from = L"ben@contoso.com"; - String^ subject = L"Using the new SMTP client."; - String^ body = L"Using this new feature, you can send an email message from an application very easily."; - MailMessage^ message = gcnew MailMessage( from,to,subject,body ); - SmtpClient^ client = gcnew SmtpClient( server ); - Console::WriteLine( L"Changing time out from {0} to 100.", client->Timeout ); - client->Timeout = 100; - - // Credentials are necessary if the server requires the client - // to authenticate before it will send email on the client's behalf. - client->Credentials = CredentialCache::DefaultNetworkCredentials; - client->Send( message ); - } - - - // - // - static void CreateTestMessage3() - { - MailAddress^ to = gcnew MailAddress( L"jane@contoso.com" ); - MailAddress^ from = gcnew MailAddress( L"ben@contoso.com" ); - MailMessage^ message = gcnew MailMessage( from,to ); - message->Subject = L"Using the new SMTP client."; - message->Body = L"Using this new feature, you can send an email message from an application very easily."; - - // Use the application or machine configuration to get the - // host, port, and credentials. - SmtpClient^ client = gcnew SmtpClient; - Console::WriteLine( L"Sending an email message to {0} at {1} by using the SMTP host {2}.", to->User, to->Host, client->Host ); - client->Send( message ); - } - - - // - // - static void CreateMessageWithMultipleViews( String^ server, String^ recipients ) - { - - // Create a message and set up the recipients. - MailMessage^ message = gcnew MailMessage( L"jane@contoso.com",recipients,L"This email message has multiple views.",L"This is some plain text." ); - - // Construct the alternate body as HTML. - String^ body = L""; - body = String::Concat( body, L"" ); - body = String::Concat( body, L"
this is some HTML text" ); - body = String::Concat( body, L"
" ); - - // Add the alternate body to the message. - AlternateView^ alternate = AlternateView::CreateAlternateViewFromString(body); - message->AlternateViews->Add(alternate); - - // Send the message. - SmtpClient^ client = gcnew SmtpClient( server ); - client->Credentials = CredentialCache::DefaultNetworkCredentials; - client->Send( message ); - - // Display the values in the ContentType for the attachment. - ContentType^ c = alternate->ContentType; - Console::WriteLine( L"Content type" ); - Console::WriteLine( c ); - Console::WriteLine( L"Boundary {0}", c->Boundary ); - Console::WriteLine( L"CharSet {0}", c->CharSet ); - Console::WriteLine( L"MediaType {0}", c->MediaType ); - Console::WriteLine( L"Name {0}", c->Name ); - Console::WriteLine( L"Parameters: {0}", c->Parameters->Count ); - IEnumerator^ myEnum = c->Parameters->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - DictionaryEntry^ d = safe_cast(myEnum->Current); - Console::WriteLine( L"{0} = {1}", d->Key, d->Value ); - } - - Console::WriteLine(); - alternate->~AlternateView(); - } - - - //
- // - static void CreateMessageWithAttachment( String^ server ) - { - - // Specify the file to be attached and sent. - // This example assumes that a file named Data.xls exists in the - // current working directory. - String^ file = L"data.xls"; - - // Create a message and set up the recipients. - MailMessage^ message = gcnew MailMessage( L"jane@contoso.com",L"ben@contoso.com",L"Quarterly data report.",L"See the attached spreadsheet." ); - - // Create the file attachment for this email message. - Attachment^ data = gcnew Attachment(file, MediaTypeNames::Application::Octet); - - // Add time stamp information for the file. - ContentDisposition^ disposition = data->ContentDisposition; - disposition->CreationDate = System::IO::File::GetCreationTime( file ); - disposition->ModificationDate = System::IO::File::GetLastWriteTime( file ); - disposition->ReadDate = System::IO::File::GetLastAccessTime( file ); - - // Add the file attachment to this email message. - message->Attachments->Add( data ); - - //Send the message. - SmtpClient^ client = gcnew SmtpClient( server ); - - // Add credentials if the SMTP server requires them. - client->Credentials = CredentialCache::DefaultNetworkCredentials; - client->Send( message ); - - // Display the values in the ContentDisposition for the attachment. - ContentDisposition^ cd = data->ContentDisposition; - Console::WriteLine( L"Content disposition" ); - Console::WriteLine( cd ); - Console::WriteLine( L"File {0}", cd->FileName ); - Console::WriteLine( L"Size {0}", cd->Size ); - Console::WriteLine( L"Creation {0}", cd->CreationDate ); - Console::WriteLine( L"Modification {0}", cd->ModificationDate ); - Console::WriteLine( L"Read {0}", cd->ReadDate ); - Console::WriteLine( L"Inline {0}", cd->Inline ); - Console::WriteLine( L"Parameters: {0}", cd->Parameters->Count ); - IEnumerator^ myEnum1 = cd->Parameters->GetEnumerator(); - while ( myEnum1->MoveNext() ) - { - DictionaryEntry^ d = safe_cast(myEnum1->Current); - Console::WriteLine( L"{0} = {1}", d->Key, d->Value ); - } - - data->~Attachment(); - client->~SmtpClient(); - } - - - // - // - static void CreateTestMessage4( String^ server ) - { - MailAddress^ from = gcnew MailAddress( L"ben@contoso.com" ); - MailAddress^ to = gcnew MailAddress( L"Jane@contoso.com" ); - MailMessage^ message = gcnew MailMessage( from,to ); - message->Subject = L"Using the SmtpClient class."; - message->Body = L"Using this feature, you can send an email message from an application very easily."; - SmtpClient^ client = gcnew SmtpClient( server ); - Console::WriteLine( L"Sending an email message to {0} by using SMTP host {1} port {2}.", to, client->Host, client->Port ); - client->Send( message ); - client->~SmtpClient(); - } - - - // - // - static void CreateTestMessage5( String^ server ) - { - String^ to = L"jane@contoso.com"; - String^ from = L"ben@contoso.com"; - String^ subject = L"Using the new SMTP client."; - String^ body = L"Using this new feature, you can send an email message from an application very easily."; - SmtpClient^ client = gcnew SmtpClient( server ); - client->Credentials = CredentialCache::DefaultNetworkCredentials; - client->Send( from, to, subject, body ); - client->~SmtpClient(); - } - - - // - // - static void CreateBccTestMessage( String^ server ) - { - MailAddress^ from = gcnew MailAddress( L"ben@contoso.com",L"Ben Miller" ); - MailAddress^ to = gcnew MailAddress( L"jane@contoso.com",L"Jane Clayton" ); - MailMessage^ message = gcnew MailMessage( from,to ); - message->Subject = L"Using the SmtpClient class."; - message->Body = L"Using this feature, you can send an email message from an application very easily."; - MailAddress^ bcc = gcnew MailAddress( L"manager1@contoso.com" ); - message->Bcc->Add( bcc ); - SmtpClient^ client = gcnew SmtpClient( server ); - client->Credentials = CredentialCache::DefaultNetworkCredentials; - Console::WriteLine( L"Sending an email message to {0} and {1}.", to->DisplayName, message->Bcc ); - try - { - client->Send( message ); - } - catch ( Exception^ ex ) - { - Console::WriteLine(L"Exception caught in CreateBccTestMessage(): {0}", - ex->ToString() ); - } - client->~SmtpClient(); - } - - - // - // - static void CreateCopyMessage( String^ server ) - { - MailAddress^ from = gcnew MailAddress( L"ben@contoso.com",L"Ben Miller" ); - MailAddress^ to = gcnew MailAddress( L"jane@contoso.com",L"Jane Clayton" ); - MailMessage^ message = gcnew MailMessage( from,to ); - - // message.Subject = "Using the SmtpClient class."; - message->Subject = L"Using the SmtpClient class."; - message->Body = L"Using this feature, you can send an email message from an application very easily."; - - // Add a carbon copy recipient. - MailAddress^ copy = gcnew MailAddress( L"Notification_List@contoso.com" ); - message->CC->Add( copy ); - SmtpClient^ client = gcnew SmtpClient( server ); - - // Include credentials if the server requires them. - client->Credentials = CredentialCache::DefaultNetworkCredentials; - Console::WriteLine( L"Sending an email message to {0} by using the SMTP host {1}.", to->Address, client->Host ); - client->Send( message ); - client->~SmtpClient(); - } - - - // - // - static void CreateMessageAttachment1( String^ server, String^ textMessage ) - { - - // Create a message and set up the recipients. - MailMessage^ message = gcnew MailMessage( L"jane@contoso.com",L"ben@contoso.com",L"A text message for you.",L"Message: " ); - - // Attach the message string to this email message. - Attachment^ data = gcnew Attachment( textMessage,MediaTypeNames::Text::Plain ); - ContentDisposition^ disposition = data->ContentDisposition; - - // Suggest a file name for the attachment. - disposition->FileName = String::Format( L"message{0}", DateTime::Now ); - message->Attachments->Add( data ); - - //Send the message. - SmtpClient^ client = gcnew SmtpClient( server ); - client->Credentials = CredentialCache::DefaultNetworkCredentials; - client->Send( message ); - - // Display the values in the ContentDisposition for the attachment. - Console::WriteLine( L"Content disposition" ); - Console::WriteLine( disposition ); - Console::WriteLine( L"File {0}", disposition->FileName ); - Console::WriteLine( L"Size {0}", disposition->Size ); - Console::WriteLine( L"Creation {0}", disposition->CreationDate ); - Console::WriteLine( L"Modification {0}", disposition->ModificationDate ); - Console::WriteLine( L"Read {0}", disposition->ReadDate ); - Console::WriteLine( L"Inline {0}", disposition->Inline ); - Console::WriteLine( L"Parameters: {0}", disposition->Parameters->Count ); - IEnumerator^ myEnum2 = disposition->Parameters->GetEnumerator(); - while ( myEnum2->MoveNext() ) - { - DictionaryEntry^ d = safe_cast(myEnum2->Current); - Console::WriteLine( L"{0} = {1}", d->Key, d->Value ); - } - - data->~Attachment(); - client->~SmtpClient(); - } - - - // - // - static void CreateMessageInlineAttachment( String^ server, String^ textMessage ) - { - - // Create a message and set up the recipients. - MailMessage^ message = gcnew MailMessage( L"jane@contoso.com",L"ben@contoso.com",L"An inline text message for you.",L"Message: " ); - - // Attach the message string to this email message. - Attachment^ data = gcnew Attachment( textMessage,MediaTypeNames::Text::Plain ); - - // Send textMessage as part of the email body. - message->Attachments->Add( data ); - ContentDisposition^ disposition = data->ContentDisposition; - disposition->Inline = true; - - //Send the message. - // Include credentials if the server requires them. - SmtpClient^ client = gcnew SmtpClient( server ); - client->Credentials = CredentialCache::DefaultNetworkCredentials; - client->Send( message ); - data->~Attachment(); - client->~SmtpClient(); - } - - - // - // - static void CreateMessageInlineAttachment2( String^ server, String^ textMessage ) - { - - // Create a message and set up the recipients. - MailMessage^ message = gcnew MailMessage( L"jane@contoso.com",L"ben@contoso.com",L"A text message for you.",L"Message: " ); - - // Attach the message string to this email message. - Attachment^ data = gcnew Attachment( textMessage ); - - // Send textMessage as part of the email body. - message->Attachments->Add( data ); - ContentType^ content = data->ContentType; - content->MediaType = MediaTypeNames::Text::Plain; - - //Send the message. - // Include credentials if the server requires them. - SmtpClient^ client = gcnew SmtpClient( server ); - client->Credentials = CredentialCache::DefaultNetworkCredentials; - client->Send( message ); - data->~Attachment(); - client->~SmtpClient(); - } - - - // - // - // The following example sends a summary of a log file as the message - // and the log as an email attachment. - static void SendErrorLog( String^ server, String^ recipientList ) - { - - // Create a message from logMailer@contoso.com to recipientList. - MailMessage^ message = gcnew MailMessage( L"logMailer@contoso.com",recipientList ); - message->Subject = L"Error Log report"; - String^ fileName = L"log.txt"; - - // Get the file stream for the error log. - // Requires the System.IO namespace. - FileStream^ fs = gcnew FileStream( fileName,FileMode::Open,FileAccess::Read ); - StreamReader^ s = gcnew StreamReader( fs ); - int errors = 0; - while ( s->ReadLine() != nullptr ) - { - - // Process each line from the log file here. - errors++; - } - - message->Body = String::Format( L"{0} errors in log as of {1}", errors, DateTime::Now ); - - // Close the stream reader. This also closes the file. - s->Close(); - - // Re-open the file at the beginning to make the attachment. - fs = gcnew FileStream( fileName,FileMode::Open,FileAccess::Read ); - - // Make a contentType indicating that the log data - // that is attached is plain text. - ContentType^ ct = gcnew ContentType( MediaTypeNames::Text::Plain ); - - // Attach the log file stream to the email message. - Attachment^ data = gcnew Attachment( fs,ct ); - ContentDisposition^ disposition = data->ContentDisposition; - - // Suggest a file name for the attachment. - disposition->FileName = String::Format( L"log{0}.txt", DateTime::Now ); - - // Add the attachment to the message. - message->Attachments->Add( data ); - - // Send the message. - // Include credentials if the server requires them. - SmtpClient^ client = gcnew SmtpClient( server ); - client->Credentials = CredentialCache::DefaultNetworkCredentials; - client->Send( message ); - data->~Attachment(); - client->~SmtpClient(); - - // Close the log file. - fs->Close(); - } - - - // - // - // The following example sends a summary of a log file as the message - // and the log as an email attachment. - static void SendNamedErrorLog( String^ server, String^ recipientList ) - { - - // Create a message from logMailer@contoso.com to recipientList. - MailMessage^ message = gcnew MailMessage( L"logMailer@contoso.com",recipientList ); - message->Subject = L"Error Log report"; - String^ fileName = L"log.txt"; - - // Get the file stream for the error log. - // Requires the System.IO namespace. - FileStream^ fs = gcnew FileStream( fileName,FileMode::Open,FileAccess::Read ); - StreamReader^ s = gcnew StreamReader( fs ); - int errors = 0; - while ( s->ReadLine() != nullptr ) - { - - // Process each line from the log file here. - errors++; - } - - message->Body = String::Format( L"{0} errors in log as of {1}", errors, DateTime::Now ); - - // Close the stream reader. This also closes the file. - s->Close(); - - // Re-open the file at the beginning to make the attachment. - fs = gcnew FileStream( fileName,FileMode::Open,FileAccess::Read ); - - // Make a ContentType indicating that the log data - // that is attached is plain text and is named. - ContentType^ ct = gcnew ContentType; - ct->MediaType = MediaTypeNames::Text::Plain; - ct->Name = String::Format( L"log{0}.txt", DateTime::Now ); - - // Create the attachment. - Attachment^ data = gcnew Attachment( fs,ct ); - - // Add the attachment to the message. - message->Attachments->Add( data ); - - // Send the message. - // Include credentials if the server requires them. - SmtpClient^ client = gcnew SmtpClient( server ); - client->Credentials = CredentialCache::DefaultNetworkCredentials; - client->Send( message ); - data->~Attachment(); - client->~SmtpClient(); - - // Close the log file. - fs->Close(); - return; - } - - - // - // - // The following example sends a summary of a log file as the message - // and the log as an email attachment. - static void SendNamedAndTypedErrorLog( String^ server, String^ recipientList ) - { - - // Create a message from logMailer@contoso.com to recipientList. - MailMessage^ message = gcnew MailMessage( L"logMailer@contoso.com",recipientList ); - message->Subject = L"Error Log report"; - String^ fileName = L"log.txt"; - - // Get the file stream for the error log. - // Requires the System.IO namespace. - FileStream^ fs = gcnew FileStream( fileName,FileMode::Open,FileAccess::Read ); - StreamReader^ s = gcnew StreamReader( fs ); - int errors = 0; - while ( s->ReadLine() != nullptr ) - { - - // Process each line from the log file here. - errors++; - } - - message->Body = String::Format( L"{0} errors in log as of {1}", errors, DateTime::Now ); - - // Close the stream reader. This also closes the file. - s->Close(); - - // Re-open the file at the beginning to make the attachment. - fs = gcnew FileStream( fileName,FileMode::Open,FileAccess::Read ); - - // Create a name for the log data file. - String^ name = String::Format( L"log{0}.txt", DateTime::Now ); - - // Create the attachment, name it, and specify the MIME type. - Attachment^ data = gcnew Attachment( fs,name,MediaTypeNames::Text::Plain ); - - // Add the attachment to the message. - message->Attachments->Add( data ); - - // Send the message. - // Include credentials if the server requires them. - SmtpClient^ client = gcnew SmtpClient( server ); - client->Credentials = CredentialCache::DefaultNetworkCredentials; - client->Send( message ); - data->~Attachment(); - client->~SmtpClient(); - - // Close the log file. - fs->Close(); - } - - - // - // - static Attachment^ SendAttachedMessage( String^ server ) - { - - // Set up the sender information. - String^ from = String::Concat( Environment::UserDomainName, L".", Environment::UserName, L"@contoso.com" ); - Console::WriteLine( L"From: {0}", from ); - - // Have the user enter the message recipient. - Console::Write( L"To: " ); - String^ recipient = Console::ReadLine(); - - // Check for recipient data. - // A real application would add error checking here for a valid email - // address format. This example accepts any input. - if ( recipient->Length == 0 ) - return nullptr; - - - // Get the subject. - Console::Write( L"Subject: " ); - String^ subject = Console::ReadLine(); - - // Get the message content. - Console::WriteLine( L"Enter the message. Press return on a blank line to finish:" ); - StringBuilder^ sb = gcnew StringBuilder; - String^ line; - while ( true ) - { - line = Console::ReadLine(); - if ( line->Length > 0 ) - { - - // Store the message and the end-of-line characters. - sb->AppendFormat( L"{0},{1}", line, Environment::NewLine ); - } - else - break; - } - - - // Create a message and set up the recipients. - MailMessage^ message = gcnew MailMessage( from,recipient ); - message->Subject = subject; - - // Attach the message string to this email message. - // Set the encoding to the computer's current encoding. - Attachment^ data = gcnew Attachment( sb->ToString(),MediaTypeNames::Text::Plain); - - // Add the attachment to the message. - message->Attachments->Add( data ); - - //Send the message. Supply credentials if necessary. - SmtpClient^ client = gcnew SmtpClient( server ); - client->Credentials = CredentialCache::DefaultNetworkCredentials; - Console::WriteLine( L"Ready to send. Press enter to send. Type any character to quit:" ); - String^ answer = Console::ReadLine(); - if ( answer->Length == 0 ) - { - client->Send( message ); - Console::WriteLine( L"Message sent." ); - } - else - { - Console::WriteLine( L"Send canceled." ); - } - - client->~SmtpClient(); - return data; - } - - - // - // - static void CreateMessageWithFile( String^ server, String^ to ) - { - - // Create a message and set up the recipients. - MailMessage^ message = gcnew MailMessage( L"ReportMailer@contoso.com",to ); - message->Subject = L"Monthly Expense report"; - message->Body = L"Please review the attached report."; - - // Attach a file to this email message. - Attachment^ data = gcnew Attachment("data.xls", MediaTypeNames::Application::Octet); - AttachmentCollection^ attachments = message->Attachments; - attachments->Add( data ); - SmtpClient^ client = gcnew SmtpClient( server ); - client->Credentials = dynamic_cast(CredentialCache::DefaultNetworkCredentials); - client->Send( message ); - client->~SmtpClient(); - } - - - // - // - static void DisplayFileAttachment( Attachment^ a ) - { - Console::WriteLine( L"Content Disposition {0}", a->ContentDisposition ); - Console::WriteLine( L"Content Type {0}", a->ContentType ); - Console::WriteLine( L"Name {0}", a->Name ); - } - - - // - // - static void DisplayStringAttachment( Attachment^ a ) - { - Console::WriteLine( L"Content: {0}", a->ContentType ); - Console::WriteLine( L"Encoding {0}", a->TransferEncoding ); - Console::WriteLine( L"Content Disposition {0}", a->ContentDisposition->ToString() ); - Console::WriteLine( L"Content Type {0}", a->ContentType->ToString() ); - } - - - // - // - static void DisplayStreamAttachment( Attachment^ a ) - { - Stream^ s = a->ContentStream; - StreamReader^ reader = gcnew StreamReader( s ); - Console::WriteLine( L"Content: {0}", reader->ReadToEnd() ); - Console::WriteLine( L"Content Type {0}", a->ContentType ); - Console::WriteLine( L"Transfer Encoding {0}", a->TransferEncoding ); - - // Note that you cannot close the reader before the email is sent. - // Closing the reader before sending the email will close the - // ContentStream and cause an SmtpException. - reader = nullptr; - } - - - // - // - static void CreateMessageWithAttachment2( String^ server, String^ to ) - { - - // Specify the file to be attached and sent. - // This example assumes that a file named Data.xls exists in the - // current working directory. - String^ file = L"data.xls"; - - // Create a message and set up the recipients. - MailMessage^ message = gcnew MailMessage( L"ReportMailer@contoso.com",to,L"Quarterly data report",L"See the attached spreadsheet." ); - - // Create the file attachment for this email message. - Attachment^ data = gcnew Attachment(file); - - // Add time stamp information for the file. - ContentDisposition^ disposition = data->ContentDisposition; - disposition->CreationDate = System::IO::File::GetCreationTime( file ); - disposition->ModificationDate = System::IO::File::GetLastWriteTime( file ); - disposition->ReadDate = System::IO::File::GetLastAccessTime( file ); - - // Add the file attachment to this email message. - message->Attachments->Add( data ); - - //Send the message. - SmtpClient^ client = gcnew SmtpClient( server ); - - // Add credentials if the SMTP server requires them. - client->Credentials = dynamic_cast(CredentialCache::DefaultNetworkCredentials); - client->Send( message ); - data->~Attachment(); - client->~SmtpClient(); - } - - - // - // - static void CreateMessageWithAttachment3( String^ server, String^ to ) - { - - // Specify the file to be attached and sent. - // This example assumes that a file named data.xls exists in the - // current working directory. - String^ file = L"data.xls"; - - // Create a message and set up the recipients. - MailMessage^ message = gcnew MailMessage( L"ReportMailer@contoso.com",to,L"Quarterly data report",L"See the attached spreadsheet." ); - - // Create the file attachment for this email message. - Attachment^ data = gcnew Attachment("Qtr3.xls"); - - - // Add time stamp information for the file. - ContentDisposition^ disposition = data->ContentDisposition; - disposition->CreationDate = System::IO::File::GetCreationTime( file ); - disposition->ModificationDate = System::IO::File::GetLastWriteTime( file ); - disposition->ReadDate = System::IO::File::GetLastAccessTime( file ); - - // Add the file attachment to this email message. - message->Attachments->Add( data ); - - //Send the message. - SmtpClient^ client = gcnew SmtpClient( server ); - - // Add credentials if the SMTP server requires them. - client->Credentials = dynamic_cast(CredentialCache::DefaultNetworkCredentials); - - // Notify user if an error occurs. - try - { - client->Send( message ); - } - catch ( SmtpException^ e ) - { - Console::WriteLine( L"Error: {0}", e->StatusCode ); - } - finally - { - data->~Attachment(); - client->~SmtpClient(); - } - - } - - - // - // - static void CreateMessageWithAttachment4( String^ server, String^ to ) - { - - // Specify the file to be attached and sent. - // This example uses a file on a UNC share. - String^ file = L"\\\\share3\\c$\\reports\\data.xls"; - - // Create a message and set up the recipients. - MailMessage^ message = gcnew MailMessage( L"ReportMailer@contoso.com",to,L"Quarterly data report",L"See the attached spreadsheet." ); - - // Create the file attachment for this email message. - Attachment^ data = gcnew Attachment("qtr3.xls", MediaTypeNames::Application::Octet); - - // Add time stamp information for the file. - ContentDisposition^ disposition = data->ContentDisposition; - disposition->CreationDate = System::IO::File::GetCreationTime( file ); - disposition->ModificationDate = System::IO::File::GetLastWriteTime( file ); - disposition->ReadDate = System::IO::File::GetLastAccessTime( file ); - disposition->DispositionType = DispositionTypeNames::Attachment; - - // Add the file attachment to this email message. - message->Attachments->Add( data ); - - //Send the message. - SmtpClient^ client = gcnew SmtpClient( server ); - - // Add credentials if the SMTP server requires them. - client->Credentials = dynamic_cast(CredentialCache::DefaultNetworkCredentials); - client->Send( message ); - - // Display the message headers. - array^keys = message->Headers->AllKeys; - Console::WriteLine( L"Headers" ); - IEnumerator^ myEnum3 = keys->GetEnumerator(); - while ( myEnum3->MoveNext() ) - { - String^ s = safe_cast(myEnum3->Current); - Console::WriteLine( L"{0}:", s ); - Console::WriteLine( L" {0}", message->Headers[ s ] ); - } - - data->~Attachment(); - client->~SmtpClient(); - } - - - // - // - static void CreateMessageAttachment5( String^ server, String^ textMessage ) - { - - // Create a message and set up the recipients. - MailMessage^ message = gcnew MailMessage( L"jane@contoso.com",L"ben@contoso.com",L"A text message for you.",L"Message: " ); - - // Attach the message string to this email message. - Attachment^ data = gcnew Attachment(textMessage, - MediaTypeNames::Text::Plain); - ContentDisposition^ disposition = data->ContentDisposition; - - // Suggest a file name for the attachment. - disposition->FileName = String::Format( L"message{0}", DateTime::Now ); - message->Attachments->Add( data ); - - //Send the message. - SmtpClient^ client = gcnew SmtpClient( server ); - client->Credentials = dynamic_cast(CredentialCache::DefaultNetworkCredentials); - client->Send( message ); - data->~Attachment(); - client->~SmtpClient(); - } - - - // - // - static void CreateMessageInlineAttachment3( String^ server, String^ textMessage ) - { - - // Create a message and set up the recipients. - MailMessage^ message = gcnew MailMessage( L"jane@contoso.com",L"ben@contoso.com",L"An inline text message for you.",L"Message: " ); - - // Attach the message string to this email message. - Attachment^ data = gcnew Attachment( textMessage,MediaTypeNames::Text::Plain ); - - // Send textMessage as part of the email body. - message->Attachments->Add( data ); - ContentDisposition^ disposition = data->ContentDisposition; - disposition->DispositionType = DispositionTypeNames::Inline; - - //Send the message. - // Include credentials if the server requires them. - SmtpClient^ client = gcnew SmtpClient( server ); - client->Credentials = dynamic_cast(CredentialCache::DefaultNetworkCredentials); - client->Send( message ); - data->~Attachment(); - client->~SmtpClient(); - } - - - // - // - static void RetryIfBusy( String^ server ) - { - MailAddress^ from = gcnew MailAddress( L"ben@contoso.com" ); - MailAddress^ to = gcnew MailAddress( L"jane@contoso.com" ); - MailMessage^ message = gcnew MailMessage( from,to ); - - // message.Subject = "Using the SmtpClient class."; - message->Subject = L"Using the SmtpClient class."; - message->Body = L"Using this feature, you can send an email message from an application very easily."; - - // Add a carbon copy recipient. - MailAddress^ copy = gcnew MailAddress( L"Notifications@contoso.com" ); - message->CC->Add( copy ); - SmtpClient^ client = gcnew SmtpClient( server ); - - // Include credentials if the server requires them. - client->Credentials = dynamic_cast(CredentialCache::DefaultNetworkCredentials); - Console::WriteLine( L"Sending an email message to {0} using the SMTP host {1}.", to->Address, client->Host ); - try - { - client->Send( message ); - } - catch ( SmtpFailedRecipientsException^ ex ) - { - for ( int i = 0; i < ex->InnerExceptions->Length; i++ ) - { - SmtpStatusCode status = ex->InnerExceptions[ i ]->StatusCode; - if ( status == SmtpStatusCode::MailboxBusy || status == SmtpStatusCode::MailboxUnavailable ) - { - Console::WriteLine( L"Delivery failed - retrying in 5 seconds." ); - System::Threading::Thread::Sleep( 5000 ); - client->Send( message ); - } - else - { - Console::WriteLine( L"Failed to deliver message to {0}", ex->InnerExceptions[ i ] ); - } - - } - } - catch ( Exception^ ex ) - { - Console::WriteLine(L"Exception caught in RetryIfBusy(): {0}", - ex->ToString() ); - } - finally - { - client->~SmtpClient(); - } - } - - - // - // silly snippets to get code coverage in exceptions! - // - static SmtpException^ GenerateDefaultSmtpException() - { - return gcnew SmtpException; - } - - - // - // - static SmtpException^ GenerateSmtpException( String^ message ) - { - return gcnew SmtpException( message ); - } - - - // - // - static SmtpException^ GenerateSmtpException( SmtpStatusCode status ) - { - return gcnew SmtpException( status ); - } - - - // - // - static SmtpException^ GenerateSmtpException( SmtpStatusCode status, String^ message ) - { - return gcnew SmtpException( status,message ); - } - - - // - // - static SmtpException^ GenerateSmtpException( String^ message, Exception^ innerException ) - { - return gcnew SmtpException( message,innerException ); - } - - - // - static void CreateSampleDispositions() - { - - // - ContentDisposition^ c1 = gcnew ContentDisposition; - Console::WriteLine( c1 ); - - // - // - ContentDisposition^ c2 = gcnew ContentDisposition( L"attachment" ); - Console::WriteLine( c2 ); - - // - ContentDisposition^ c3 = gcnew ContentDisposition( L"Attachment; filename = myFile;" ); - Console::WriteLine( c3 ); - } - - static void DumpMailAddress( MailAddress^ a ) - { - Console::WriteLine( L"Display: {0} Host: {1} User: {2} Address: {3}", a->DisplayName, a->Host, a->User, a->Address ); - } - - static void CreateSampleAddresses() - { - MailAddress^ a1 = gcnew MailAddress( L"Ben Miller " ); - Console::WriteLine( a1 ); - DumpMailAddress( a1 ); - - // WRONG but legal: Should not include angle brackets. - MailAddress^ a2 = gcnew MailAddress( L"" ); - Console::WriteLine( a2 ); - DumpMailAddress( a2 ); - MailAddress^ a3 = gcnew MailAddress( L"ben.address1@contoso.com" ); - Console::WriteLine( a3 ); - DumpMailAddress( a3 ); - - // Use a constructor that takes an address and the display name separately. - // Throwing a format exception - // MailAddress a4 = new MailAddress("tom@contoso.com", "Tom Smith"); - // Console.WriteLine(a4.ToString()); - // DumpMailAddress(a4); - // WRONG: Should not include angle brackets. - // MailAddress a5 = new MailAddress(" ", "Tom Smith"); - // Console.WriteLine(a5.ToString()); - // DumpMailAddress(a5); - // WRONG but legal: Should not include display name as part of address. - MailAddress^ a6 = gcnew MailAddress( L"Tom Smith",L"Bill Jones" ); - Console::WriteLine( a6 ); - DumpMailAddress( a6 ); - MailAddress^ a7 = gcnew MailAddress( L"tom@contoso.com",L" Tom Smith " ); - Console::WriteLine( a7 ); - DumpMailAddress( a7 ); - } - - static void DisplayContentType( ContentType^ c ) - { - Console::WriteLine( L"Boundary {0}", c->Boundary ); - Console::WriteLine( L"Charset {0}", c->CharSet ); - Console::WriteLine( L"MediaType {0}", c->MediaType ); - Console::WriteLine( L"Name {0}", c->Name ); - Console::WriteLine( L"Parameters: {0}", c->Parameters->Count ); - IEnumerator^ myEnum4 = c->Parameters->GetEnumerator(); - while ( myEnum4->MoveNext() ) - { - DictionaryEntry^ d = safe_cast(myEnum4->Current); - Console::WriteLine( L"{0} = {1}", d->Key, d->Value ); - } - } - - static void CreateContentTypes() - { - ContentType^ c1 = gcnew ContentType; - Console::WriteLine( L"---c1 {0}", c1 ); - DisplayContentType( c1 ); - ContentType^ c2 = gcnew ContentType( L"text/html" ); - Console::WriteLine( L"---c2 {0}", c2 ); - DisplayContentType( c2 ); - ContentType^ c3 = gcnew ContentType( L"application/x-myPrivateSubtype; name=data.xyz; charset=us-ascii" ); - Console::WriteLine( L"---c3 {0}", c3 ); - DisplayContentType( c3 ); - } - - - // The first argument is the recipient. - // The second argument is the sender. - void NCLMailSyncRun() - { - - // CreateTestMessage2(args[0]); - //CreateMessageInlineAttachment3("smarthost", "string textMessage"); - //CreateTestMessage3(); - //CreateTestMessage4(args[0]); - // CreateTestMessageX(args[0]); - //CreateMessageWithMultipleViews("smarthost","sharriso@microsoft.com"); - CreateBccTestMessage( L"sharriso1" ); - - //CreateCopyMessage("sharriso1"); - // CreateMessageWithMultipleRecipients("sharriso1"); - //CreateTestMessageY("sharriso1"); - //CreateMessageWithAttachment("smarthost"); - //CreateContentTypes(); - // CreateMessageWithMultipleRecipients("smarthost"); - //CreateSampleAddresses(); - // CreateMessageAttachment1("smarthost", "This is an attached message."); - //CreateMessageInlineAttachment("sharriso1", "How cool is this?"); - //CreateMessageInlineAttachment2("smarthost", "This is an attached message."); - //SendErrorLog("smarthost", "sharriso@microsoft.com"); - //Attachment log = SendNamedErrorLog("smarthost", "sharriso@microsoft.com"); - //SendNamedAndTypedErrorLog("smarthost", "sharriso@microsoft.com"); - //Attachment a = SendAttachedMessage("smarthost"); - //DisplayStringAttachment(a); - // CreateMessageWithFile("smarthost", "sharriso@microsoft.com"); - // CreateMessageWithAttachment2("smarthost", "sharriso@microsoft.com"); - // CreateMessageWithAttachment3("xx","sharriso@microsoft.com"); - // CreateMessageWithAttachment4("smarthost", "sharriso@microsoft.com"); - // CreateMessageAttachment5("sharriso1", "string textMessage"); - //CreateSampleDispositions(); - RetryIfBusy("sharriso1"); - } - -}; - -void main() -{ - CtorExamples^ ce = gcnew CtorExamples; - ce->NCLMailSyncRun(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLNetInfo2/CPP/networkexamples.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLNetInfo2/CPP/networkexamples.cpp deleted file mode 100644 index 7e698f37f1fc7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLNetInfo2/CPP/networkexamples.cpp +++ /dev/null @@ -1,1015 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::NetworkInformation; -using namespace System::Net::Sockets; - -// -void GetTcpConnections() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - array^connections = properties->GetActiveTcpConnections(); - System::Collections::IEnumerator^ myEnum = connections->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - TcpConnectionInformation ^ t = safe_cast(myEnum->Current); - Console::Write( "Local endpoint: {0} ", t->LocalEndPoint->Address ); - Console::Write( "Remote endpoint: {0} ", t->RemoteEndPoint->Address ); - Console::WriteLine( "{0}", t->State ); - } -} -// - -// -void CountTcpConnections() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - array^connections = properties->GetActiveTcpConnections(); - int establishedConnections = 0; - System::Collections::IEnumerator^ myEnum1 = connections->GetEnumerator(); - while ( myEnum1->MoveNext() ) - { - TcpConnectionInformation ^ t = safe_cast(myEnum1->Current); - if ( t->State == TcpState::Established ) - { - establishedConnections++; - } - - Console::Write( "Local endpoint: {0} ", t->LocalEndPoint->Address ); - Console::WriteLine( "Remote endpoint: {0} ", t->RemoteEndPoint->Address ); - } - - Console::WriteLine( "There are {0} established TCP connections.", establishedConnections ); -} -// - -// -void DisplayActiveUdpListeners() -{ - Console::WriteLine( "Active UDP Listeners" ); - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - array^endPoints = properties->GetActiveUdpListeners(); - System::Collections::IEnumerator^ myEnum2 = endPoints->GetEnumerator(); - while ( myEnum2->MoveNext() ) - { - IPEndPoint^ e = safe_cast(myEnum2->Current); - Console::WriteLine( e ); - } -} -// - -// -void ShowNetworkInterfaces() -{ - array^nics = NetworkInterface::GetAllNetworkInterfaces(); - if ( !nics || nics->Length < 1 ) - { - Console::WriteLine( " No network interfaces found." ); - return; - } - - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - Console::WriteLine( "Interface information for {0}.{1}", properties->HostName, properties->DomainName ); - Console::WriteLine( " Number of interfaces .................... : {0}", nics->Length ); - System::Collections::IEnumerator^ myEnum3 = nics->GetEnumerator(); - while ( myEnum3->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum3->Current); - Console::WriteLine(); - Console::WriteLine( adapter->Description ); - Console::WriteLine( String::Empty->PadLeft( adapter->Description->Length, '=' ) ); - Console::WriteLine( " Interface type .......................... : {0}", - adapter->NetworkInterfaceType ); - } -} -// - -// -void ShowTcpTimeouts() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - TcpStatistics ^ tcpstat = properties->GetTcpIPv4Statistics(); - Console::WriteLine( " Minimum Transmission Timeout............. : {0}", - tcpstat->MinimumTransmissionTimeout ); - Console::WriteLine( " Maximum Transmission Timeout............. : {0}", - tcpstat->MaximumTransmissionTimeout ); - Console::WriteLine( " Maximum connections ............. : {0}", - tcpstat->MaximumConnections ); -} -// - -// -void ShowTcpConnectionStatistics() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - TcpStatistics ^ tcpstat = properties->GetTcpIPv4Statistics(); - Console::WriteLine( " Connection Data:" ); - Console::WriteLine( " Current ............................ : {0}", - tcpstat->CurrentConnections ); - Console::WriteLine( " Cumulative .......................... : {0}", - tcpstat->CumulativeConnections ); - Console::WriteLine( " Initiated ........................... : {0}", - tcpstat->ConnectionsInitiated ); - Console::WriteLine( " Accepted ............................ : {0}", - tcpstat->ConnectionsAccepted ); - Console::WriteLine( " Failed Attempts ..................... : {0}", - tcpstat->FailedConnectionAttempts ); - Console::WriteLine( " Reset ............................... : {0}", - tcpstat->ResetConnections ); - Console::WriteLine( " Errors .............................. : {0}", - tcpstat->ErrorsReceived ); -} -// - -// -void ShowTcpSegmentData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - TcpStatistics ^ tcpstat = properties->GetTcpIPv4Statistics(); - Console::WriteLine( " Segment Data:" ); - Console::WriteLine( " Received ........................... : {0}", - tcpstat->SegmentsReceived ); - Console::WriteLine( " Sent ................................ : {0}", - tcpstat->SegmentsSent ); - Console::WriteLine( " Retransmitted ....................... : {0}", - tcpstat->SegmentsResent ); - Console::WriteLine( " Resent with reset ................... : {0}", - tcpstat->ResetsSent ); -} -// - -// -void ShowInterfaceByteCounts() -{ - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum4 = adapters->GetEnumerator(); - while ( myEnum4->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum4->Current); - IPInterfaceProperties ^ properties = adapter->GetIPProperties(); - IPv4InterfaceStatistics ^ stats = adapter->GetIPv4Statistics(); - Console::WriteLine( adapter->Description ); - Console::WriteLine( " Bytes sent ............................: {0}", - stats->BytesSent ); - Console::WriteLine( " Bytes received ........................: {0}", - stats->BytesReceived ); - } -} -// - -// -void ShowUnicastCounts() -{ - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum5 = adapters->GetEnumerator(); - while ( myEnum5->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum5->Current); - IPInterfaceProperties ^ properties = adapter->GetIPProperties(); - IPv4InterfaceStatistics ^ stats = adapter->GetIPv4Statistics(); - Console::WriteLine( adapter->Description ); - Console::WriteLine( " Unicast Packets Sent ..................: {0}", - stats->UnicastPacketsSent ); - Console::WriteLine( " Unicast Packets Received ..............: {0}", - stats->UnicastPacketsReceived ); - } -} -// - -// -void ShowNonUnicastCounts() -{ - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum6 = adapters->GetEnumerator(); - while ( myEnum6->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum6->Current); - IPInterfaceProperties ^ properties = adapter->GetIPProperties(); - IPv4InterfaceStatistics ^ stats = adapter->GetIPv4Statistics(); - Console::WriteLine( adapter->Description ); - Console::WriteLine( " Non Unicast Packets Sent ..............: {0}", - stats->NonUnicastPacketsSent ); - Console::WriteLine( " Non Unicast Packets Received ..........: {0}", - stats->NonUnicastPacketsReceived ); - } -} -// - -// -void ShowPacketDiscards() -{ - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum7 = adapters->GetEnumerator(); - while ( myEnum7->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum7->Current); - IPInterfaceProperties ^ properties = adapter->GetIPProperties(); - IPv4InterfaceStatistics ^ stats = adapter->GetIPv4Statistics(); - Console::WriteLine( adapter->Description ); - Console::WriteLine( " Incoming Packets Discarded ............: {0}", - stats->IncomingPacketsDiscarded ); - Console::WriteLine( " Outgoing Packets Discarded ............: {0}", - stats->OutgoingPacketsDiscarded ); - } -} -// - -// -void ShowPacketErrors() -{ - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum8 = adapters->GetEnumerator(); - while ( myEnum8->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum8->Current); - IPInterfaceProperties ^ properties = adapter->GetIPProperties(); - IPv4InterfaceStatistics ^ stats = adapter->GetIPv4Statistics(); - Console::WriteLine( adapter->Description ); - Console::WriteLine( " Incoming Packets Errors ...............: {0}", - stats->IncomingPacketsWithErrors ); - Console::WriteLine( " Outgoing packets Errors ...............: {0}", - stats->OutgoingPacketsWithErrors ); - Console::WriteLine( " Incoming Unknown Protocol Errors ......: {0}", - stats->IncomingUnknownProtocolPackets ); - } -} -// - -// -void ShowInterfaceSpeedAndQueue() -{ - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum9 = adapters->GetEnumerator(); - while ( myEnum9->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum9->Current); - IPInterfaceProperties ^ properties = adapter->GetIPProperties(); - IPv4InterfaceStatistics ^ stats = adapter->GetIPv4Statistics(); - Console::WriteLine( adapter->Description ); - Console::WriteLine( " Speed .................................: {0}", - adapter->Speed ); - Console::WriteLine( " Output queue length....................: {0}", - stats->OutputQueueLength ); - } -} -// - -// -void ShowIPStatistics() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IPGlobalStatistics ^ ipstat = properties->GetIPv4GlobalStatistics(); - Console::WriteLine( " Forwarding enabled ...................... : {0}", - ipstat->ForwardingEnabled ); - Console::WriteLine( " Interfaces .............................. : {0}", - ipstat->NumberOfInterfaces ); - Console::WriteLine( " IP addresses ............................ : {0}", - ipstat->NumberOfIPAddresses ); - Console::WriteLine( " Routes .................................. : {0}", - ipstat->NumberOfRoutes ); - Console::WriteLine( " Default TTL ............................. : {0}", - ipstat->DefaultTtl ); -} -// - -// -void ShowInboundIPStatistics() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IPGlobalStatistics ^ ipstat = properties->GetIPv4GlobalStatistics(); - Console::WriteLine( " Inbound Packet Data:" ); - Console::WriteLine( " Received ............................ : {0}", - ipstat->ReceivedPackets ); - Console::WriteLine( " Forwarded ........................... : {0}", - ipstat->ReceivedPacketsForwarded ); - Console::WriteLine( " Delivered ........................... : {0}", - ipstat->ReceivedPacketsDelivered ); - Console::WriteLine( " Discarded ........................... : {0}", - ipstat->ReceivedPacketsDiscarded ); -} -// - -// -void ShowInboundIPErrors() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IPGlobalStatistics ^ ipstat = properties->GetIPv4GlobalStatistics(); - Console::WriteLine( " Inbound Packet Errors:" ); - Console::WriteLine( " Header Errors ....................... : {0}", - ipstat->ReceivedPacketsWithHeadersErrors ); - Console::WriteLine( " Address Errors ...................... : {0}", - ipstat->ReceivedPacketsWithAddressErrors ); - Console::WriteLine( " Unknown Protocol Errors ............. : {0}", - ipstat->ReceivedPacketsWithUnknownProtocol ); -} -// - -// -void ShowOutboundIPStatistics() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IPGlobalStatistics ^ ipstat = properties->GetIPv4GlobalStatistics(); - Console::WriteLine( " Outbound Packet Data:" ); - Console::WriteLine( " Requested ........................... : {0}", - ipstat->OutputPacketRequests ); - Console::WriteLine( " Discarded ........................... : {0}", - ipstat->OutputPacketsDiscarded ); - Console::WriteLine( " No Routing Discards ................. : {0}", - ipstat->OutputPacketsWithNoRoute ); - Console::WriteLine( " Routing Entry Discards .............. : {0}", - ipstat->OutputPacketRoutingDiscards ); -} -// - -// -void ShowFragmentationStatistics() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IPGlobalStatistics ^ ipstat = properties->GetIPv4GlobalStatistics(); - Console::WriteLine( " Reassembly Data:" ); - Console::WriteLine( " Reassembly Timeout .................. : {0}", - ipstat->PacketReassemblyTimeout ); - Console::WriteLine( " Reassemblies Required ............... : {0}", - ipstat->PacketReassembliesRequired ); - Console::WriteLine( " Packets Reassembled ................. : {0}", - ipstat->PacketsReassembled ); - Console::WriteLine( " Packets Fragmented .................. : {0}", - ipstat->PacketsFragmented ); - Console::WriteLine( " Fragment Failures ................... : {0}", - ipstat->PacketFragmentFailures ); -} -// - -// -void ShowIcmpV4MessageData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV4Statistics ^ statistics = properties->GetIcmpV4Statistics(); - Console::WriteLine( " Messages ............................ Sent: {0,-10} Received: {1,-10}", - statistics->MessagesSent, statistics->MessagesReceived ); -} -// - -// -void ShowIcmpV4EchoData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV4Statistics ^ statistics = properties->GetIcmpV4Statistics(); - Console::WriteLine( " Echo Requests ....................... Sent: {0,-10} Received: {1,-10}", - statistics->EchoRequestsSent, - statistics->EchoRequestsReceived ); - Console::WriteLine( " Echo Replies ........................ Sent: {0,-10} Received: {1,-10}", - statistics->EchoRepliesSent, - statistics->EchoRepliesReceived ); -} -// - -// -void ShowIcmpV4ErrorData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV4Statistics ^ statistics = properties->GetIcmpV4Statistics(); - Console::WriteLine( " Errors .............................. Sent: {0,-10} Received: {1,-10}", - statistics->ErrorsSent, - statistics->ErrorsReceived ); -} -// - -// -void ShowIcmpV4UnreachableData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV4Statistics ^ statistics = properties->GetIcmpV4Statistics(); - Console::WriteLine( " Destination Unreachables ............ Sent: {0,-10} Received: {1,-10}", - statistics->DestinationUnreachableMessagesSent, - statistics->DestinationUnreachableMessagesReceived ); -} -// - -// -void ShowSourceQuenchData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV4Statistics ^ statistics = properties->GetIcmpV4Statistics(); - Console::WriteLine( " Source Quenches ..................... Sent: {0,-10} Received: {1,-10}", - statistics->SourceQuenchesSent, - statistics->SourceQuenchesReceived ); -} -// - -// -void ShowRedirectsData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV4Statistics ^ statistics = properties->GetIcmpV4Statistics(); - Console::WriteLine( " Redirects ........................... Sent: {0,-10} Received: {1,-10}", - statistics->RedirectsSent, - statistics->RedirectsReceived ); -} -// - -// -void ShowTimeExceededData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV4Statistics ^ statistics = properties->GetIcmpV4Statistics(); - Console::WriteLine( " TimeExceeded ........................ Sent: {0,-10} Received: {1,-10}", - statistics->TimeExceededMessagesSent, - statistics->TimeExceededMessagesReceived ); -} -// - -// -void ShowParameterData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV4Statistics ^ statistics = properties->GetIcmpV4Statistics(); - Console::WriteLine( " Parameter Problems .................. Sent: {0,-10} Received: {1,-10}", - statistics->ParameterProblemsSent, - statistics->ParameterProblemsReceived ); -} -// - -// -void ShowTimestampData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV4Statistics ^ statistics = properties->GetIcmpV4Statistics(); - Console::WriteLine( " Timestamp Requests .................. Sent: {0,-10} Received: {1,-10}", - statistics->TimestampRequestsSent, - statistics->TimestampRequestsReceived ); - Console::WriteLine( " Timestamp Replies ................... Sent: {0,-10} Received: {1,-10}", - statistics->TimestampRepliesSent, - statistics->TimestampRepliesReceived ); -} -// - -// -void ShowAddressMaskData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV4Statistics ^ statistics = properties->GetIcmpV4Statistics(); - Console::WriteLine( " Address Mask Requests ............... Sent: {0,-10} Received: {1,-10}", - statistics->AddressMaskRequestsSent, - statistics->AddressMaskRequestsReceived ); - Console::WriteLine( " Address Mask Replies ................ Sent: {0,-10} Received: {1,-10}", - statistics->AddressMaskRepliesSent, - statistics->AddressMaskRepliesReceived ); -} -// - -// -void ShowIcmpV6EchoData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV6Statistics ^ statistics = properties->GetIcmpV6Statistics(); - Console::WriteLine( " Echo Requests ....................... Sent: {0,-10} Received: {1,-10}", - statistics->EchoRequestsSent, statistics->EchoRequestsReceived ); - Console::WriteLine( " Echo Replies ........................ Sent: {0,-10} Received: {1,-10}", - statistics->EchoRepliesSent, statistics->EchoRepliesReceived ); -} -// - -// -void ShowIcmpV6ErrorData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV6Statistics ^ statistics = properties->GetIcmpV6Statistics(); - Console::WriteLine( " Errors .............................. Sent: {0,-10} Received: {1,-10}", - statistics->ErrorsSent, statistics->ErrorsReceived ); -} -// - -// -void ShowIcmpV6UnreachableData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV6Statistics ^ statistics = properties->GetIcmpV6Statistics(); - Console::WriteLine( " Destination Unreachables ............ Sent: {0,-10} Received: {1,-10}", - statistics->DestinationUnreachableMessagesSent, - statistics->DestinationUnreachableMessagesReceived ); -} -// - -// -void ShowIcmpV6MessageData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV6Statistics ^ statistics = properties->GetIcmpV6Statistics(); - Console::WriteLine( " Messages ............................ Sent: {0,-10} Received: {1,-10}", - statistics->MessagesSent, statistics->MessagesReceived ); -} -// - -// -void ShowIcmpV6MembershipData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV6Statistics ^ statistics = properties->GetIcmpV6Statistics(); - Console::WriteLine( " Queries .............................. Sent: {0,-10} Received: {1,-10}", - statistics->MembershipQueriesSent, statistics->MembershipQueriesReceived ); - Console::WriteLine( " Reductions ........................... Sent: {0,-10} Received: {1,-10}", - statistics->MembershipReductionsSent, statistics->MembershipReductionsReceived ); - Console::WriteLine( " Reports .............................. Sent: {0,-10} Received: {1,-10}", - statistics->MembershipReportsSent, statistics->MembershipReportsReceived ); -} -// - -// -void ShowIcmpV6NeighborData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV6Statistics ^ statistics = properties->GetIcmpV6Statistics(); - Console::WriteLine( " Advertisements ...................... Sent: {0,-10} Received: {1,-10}", - statistics->NeighborAdvertisementsSent, statistics->NeighborAdvertisementsReceived ); - Console::WriteLine( " Solicits ............................ Sent: {0,-10} Received: {1,-10}", - statistics->NeighborSolicitsSent, statistics->NeighborSolicitsReceived ); -} -// - -// -void ShowIcmpV6BigPacketData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV6Statistics ^ statistics = properties->GetIcmpV6Statistics(); - Console::WriteLine( " Too Big Packet ........................ Sent: {0,-10} Received: {1,-10}", - statistics->PacketTooBigMessagesSent, - statistics->PacketTooBigMessagesReceived ); -} -// - -// -void ShowIcmpV6RedirectsData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV6Statistics ^ statistics = properties->GetIcmpV6Statistics(); - Console::WriteLine( " Redirects ........................... Sent: {0,-10} Received: {1,-10}", - statistics->RedirectsSent, - statistics->RedirectsReceived ); -} -// - -// -void ShowIcmpV6TimeExceededData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV6Statistics ^ statistics = properties->GetIcmpV6Statistics(); - Console::WriteLine( " TimeExceeded ........................ Sent: {0,-10} Received: {1,-10}", - statistics->TimeExceededMessagesSent, - statistics->TimeExceededMessagesReceived ); -} -// - -// -void ShowIcmpV6ParameterData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV6Statistics ^ statistics = properties->GetIcmpV6Statistics(); - Console::WriteLine( " Parameter Problems .................. Sent: {0,-10} Received: {1,-10}", - statistics->ParameterProblemsSent, - statistics->ParameterProblemsReceived ); -} -// - -// -void ShowIcmpV6RouterData() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV6Statistics ^ statistics = properties->GetIcmpV6Statistics(); - Console::WriteLine( " Advertisements ....................... Sent: {0,-10} Received: {1,-10}", - statistics->RouterAdvertisementsSent, - statistics->RouterAdvertisementsReceived ); - Console::WriteLine( " Solicits ............................. Sent: {0,-10} Received: {1,-10}", - statistics->RouterSolicitsSent, - statistics->RouterSolicitsReceived ); -} -// - -// New content 10/29/03 -// -void DisplayDnsConfiguration() -{ - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum10 = adapters->GetEnumerator(); - while ( myEnum10->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum10->Current); - IPInterfaceProperties ^ properties = adapter->GetIPProperties(); - Console::WriteLine( adapter->Description ); - Console::WriteLine( " DNS suffix................................. :{0}", - properties->DnsSuffix ); - Console::WriteLine( " DNS enabled ............................. : {0}", - properties->IsDnsEnabled ); - Console::WriteLine( " Dynamically configured DNS .............. : {0}", - properties->IsDynamicDnsEnabled ); - } -} -// - -// -void DisplayDnsAddresses() -{ - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum11 = adapters->GetEnumerator(); - while ( myEnum11->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum11->Current); - IPInterfaceProperties ^ adapterProperties = adapter->GetIPProperties(); - IPAddressCollection ^ dnsServers = adapterProperties->DnsAddresses; - if ( dnsServers->Count > 0 ) - { - Console::WriteLine( adapter->Description ); - System::Collections::IEnumerator^ myEnum12 = dnsServers->GetEnumerator(); - while ( myEnum12->MoveNext() ) - { - IPAddress ^ dns = safe_cast(myEnum12->Current); - Console::WriteLine( " DNS Servers ............................. : {0}", - dns->ToString()); - } - } - } -} -// - -// -void DisplayAnycastAddresses() -{ - int count = 0; - - Console::WriteLine( "Anycast Addresses" ); - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum13 = adapters->GetEnumerator(); - while ( myEnum13->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum13->Current); - IPInterfaceProperties ^ adapterProperties = adapter->GetIPProperties(); - IPAddressInformationCollection ^ anyCast = adapterProperties->AnycastAddresses; - if ( anyCast->Count > 0 ) - { - Console::WriteLine( adapter->Description ); - System::Collections::IEnumerator^ myEnum14 = anyCast->GetEnumerator(); - while ( myEnum14->MoveNext() ) - { - IPAddressInformation ^ any = safe_cast(myEnum14->Current); - Console::WriteLine( " Anycast Address .......................... : {0} {1} {2}", - any->Address, any->IsTransient ? "Transient" : "", - any->IsDnsEligible ? "DNS Eligible" : "" ); - count++; - } - Console::WriteLine(); - } - } - if (count == 0) - { - Console::WriteLine(" No anycast addresses were found."); - Console::WriteLine(); - } -} -// - -// -void DisplayMulticastAddresses() -{ - int count = 0; - - Console::WriteLine( "Multicast Addresses" ); - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum15 = adapters->GetEnumerator(); - while ( myEnum15->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum15->Current); - IPInterfaceProperties ^ adapterProperties = adapter->GetIPProperties(); - MulticastIPAddressInformationCollection ^ multiCast = adapterProperties->MulticastAddresses; - if ( multiCast->Count > 0 ) - { - Console::WriteLine( adapter->Description ); - System::Collections::IEnumerator^ myEnum16 = multiCast->GetEnumerator(); - while ( myEnum16->MoveNext() ) - { - MulticastIPAddressInformation ^ multi = safe_cast(myEnum16->Current); - Console::WriteLine( " Multicast Address ....................... : {0} {1} {2}", - multi->Address, multi->IsTransient ? "Transient" : "", - multi->IsDnsEligible ? "DNS Eligible" : "" ); - count++; - } - Console::WriteLine(); - } - } - if (count == 0) - { - Console::WriteLine(" No multicast addresses were found."); - Console::WriteLine(); - } -} -// - -// -void DisplayUnicastAddresses() -{ - Console::WriteLine( "Unicast Addresses" ); - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum17 = adapters->GetEnumerator(); - while ( myEnum17->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum17->Current); - IPInterfaceProperties ^ adapterProperties = adapter->GetIPProperties(); - UnicastIPAddressInformationCollection ^ uniCast = adapterProperties->UnicastAddresses; - if ( uniCast->Count > 0 ) - { - Console::WriteLine( adapter->Description ); - String^ lifeTimeFormat = "dddd, MMMM dd, yyyy hh:mm:ss tt"; - System::Collections::IEnumerator^ myEnum18 = uniCast->GetEnumerator(); - while ( myEnum18->MoveNext() ) - { - UnicastIPAddressInformation ^ uni = safe_cast(myEnum18->Current); - DateTime when; - Console::WriteLine( " Unicast Address ......................... : {0}", - uni->Address ); - Console::WriteLine( " Prefix Origin ........................ : {0}", - uni->PrefixOrigin ); - Console::WriteLine( " Suffix Origin ........................ : {0}", - uni->SuffixOrigin ); - Console::WriteLine( " Duplicate Address Detection .......... : {0}", - uni->DuplicateAddressDetectionState ); - - // Format the lifetimes as Sunday, February 16, 2003 11:33:44 PM - // if en-us is the current culture. - // Calculate the date and time at the end of the lifetimes. - when = DateTime::UtcNow + TimeSpan::FromSeconds( (double)uni->AddressValidLifetime ); - when = when.ToLocalTime(); - Console::WriteLine( " Valid Life Time ...................... : {0}", - when.ToString( lifeTimeFormat, System::Globalization::CultureInfo::CurrentCulture ) ); - when = DateTime::UtcNow + TimeSpan::FromSeconds( (double)uni->AddressPreferredLifetime ); - when = when.ToLocalTime(); - Console::WriteLine( " Preferred life time .................. : {0}", - when.ToString( lifeTimeFormat, System::Globalization::CultureInfo::CurrentCulture ) ); - when = DateTime::UtcNow + TimeSpan::FromSeconds( (double)uni->DhcpLeaseLifetime ); - when = when.ToLocalTime(); - Console::WriteLine( " DHCP Leased Life Time ................ : {0}", - when.ToString( lifeTimeFormat, System::Globalization::CultureInfo::CurrentCulture ) ); - } - Console::WriteLine(); - } - } -} -// - -// -void DisplayDhcpServerAddresses() -{ - Console::WriteLine( "DHCP Servers" ); - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum19 = adapters->GetEnumerator(); - while ( myEnum19->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum19->Current); - IPInterfaceProperties ^ adapterProperties = adapter->GetIPProperties(); - IPAddressCollection ^ addresses = adapterProperties->DhcpServerAddresses; - if ( addresses->Count > 0 ) - { - Console::WriteLine( adapter->Description ); - System::Collections::IEnumerator^ myEnum20 = addresses->GetEnumerator(); - while ( myEnum20->MoveNext() ) - { - IPAddress^ address = safe_cast(myEnum20->Current); - Console::WriteLine( " Dhcp Address ............................ : {0}", - address ); - } - Console::WriteLine(); - } - } -} -// - -// -void DisplayGatewayAddresses() -{ - Console::WriteLine( "Gateways" ); - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum21 = adapters->GetEnumerator(); - while ( myEnum21->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum21->Current); - IPInterfaceProperties ^ adapterProperties = adapter->GetIPProperties(); - GatewayIPAddressInformationCollection ^ addresses = adapterProperties->GatewayAddresses; - if ( addresses->Count > 0 ) - { - Console::WriteLine( adapter->Description ); - System::Collections::IEnumerator^ myEnum22 = addresses->GetEnumerator(); - while ( myEnum22->MoveNext() ) - { - GatewayIPAddressInformation^ address = safe_cast(myEnum22->Current); - Console::WriteLine( " Gateway Address ......................... : {0}", - address->Address->ToString() ); - } - Console::WriteLine(); - } - } -} -// - -// -void DisplayIPv4NetworkInterfaces() -{ - array^nics = NetworkInterface::GetAllNetworkInterfaces(); - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - Console::WriteLine( "IPv4 interface information for {0}.{1}", properties->HostName, properties->DomainName ); - System::Collections::IEnumerator^ myEnum23 = nics->GetEnumerator(); - while ( myEnum23->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum23->Current); - - // Only display informatin for interfaces that support IPv4. - if ( adapter->Supports( NetworkInterfaceComponent::IPv4 ) == false ) - { - continue; - } - Console::WriteLine(); - Console::WriteLine( adapter->Description ); - - // Underline the description. - Console::WriteLine( String::Empty->PadLeft( adapter->Description->Length, '=' ) ); - IPInterfaceProperties ^ adapterProperties = adapter->GetIPProperties(); - - // Try to get the IPv4 interface properties. - IPv4InterfaceProperties ^ p = adapterProperties->GetIPv4Properties(); - if ( !p ) - { - Console::WriteLine( "No IPv4 information is available for this interface." ); - continue; - } - - // Display the IPv4 specific data. - Console::WriteLine( " Index ............................. : {0}", - p->Index ); - Console::WriteLine( " MTU ............................... : {0}", - p->Mtu ); - Console::WriteLine( " APIPA active....................... : {0}", - p->IsAutomaticPrivateAddressingActive ); - Console::WriteLine( " APIPA enabled...................... : {0}", - p->IsAutomaticPrivateAddressingEnabled ); - Console::WriteLine( " Forwarding enabled................. : {0}", - p->IsForwardingEnabled ); - Console::WriteLine( " Uses WINS ......................... : {0}", - p->UsesWins ); - } -} -// - -// -void DisplayIPv6NetworkInterfaces() -{ - array^nics = NetworkInterface::GetAllNetworkInterfaces(); - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - Console::WriteLine( "IPv6 interface information for {0}.{1}", - properties->HostName, properties->DomainName ); - - int count = 0; - - System::Collections::IEnumerator^ myEnum24 = nics->GetEnumerator(); - while ( myEnum24->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum24->Current); - - // Only display informatin for interfaces that support IPv6. - if ( adapter->Supports( NetworkInterfaceComponent::IPv6 ) == false ) - { - continue; - } - - count++; - - Console::WriteLine(); - Console::WriteLine( adapter->Description ); - - // Underline the description. - Console::WriteLine( String::Empty->PadLeft( adapter->Description->Length, '=' ) ); - IPInterfaceProperties ^ adapterProperties = adapter->GetIPProperties(); - - // Try to get the IPv6 interface properties. - IPv6InterfaceProperties ^ p = adapterProperties->GetIPv6Properties(); - if ( !p ) - { - Console::WriteLine( "No IPv6 information is available for this interface." ); - continue; - } - - // Display the IPv6 specific data. - Console::WriteLine( " Index ............................. : {0}", - p->Index ); - Console::WriteLine( " MTU ............................... : {0}", - p->Mtu ); - } - if (count == 0) - { - Console::WriteLine(" No IPv6 interfaces were found."); - Console::WriteLine(); - } -} -// - -// -void DisplayWinsServerAddresses() -{ - Console::WriteLine( "WINS Servers" ); - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum25 = adapters->GetEnumerator(); - while ( myEnum25->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum25->Current); - IPInterfaceProperties ^ adapterProperties = adapter->GetIPProperties(); - IPAddressCollection ^ addresses = adapterProperties->WinsServersAddresses; - if ( addresses->Count > 0 ) - { - Console::WriteLine( adapter->Description ); - System::Collections::IEnumerator^ myEnum26 = addresses->GetEnumerator(); - while ( myEnum26->MoveNext() ) - { - IPAddress^ address = safe_cast(myEnum26->Current); - Console::WriteLine( " WINS Server ............................ : {0}", - address ); - } - Console::WriteLine(); - } - } -} -// - -// -void DisplayTypeAndAddress() -{ - IPGlobalProperties ^ computerProperties = IPGlobalProperties::GetIPGlobalProperties(); - array^nics = NetworkInterface::GetAllNetworkInterfaces(); - Console::WriteLine( "Interface information for {0}.{1} ", computerProperties->HostName, computerProperties->DomainName ); - System::Collections::IEnumerator^ myEnum27 = nics->GetEnumerator(); - while ( myEnum27->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum27->Current); - IPInterfaceProperties ^ properties = adapter->GetIPProperties(); - Console::WriteLine( adapter->Description ); - Console::WriteLine( String::Empty->PadLeft( adapter->Description->Length, '=' ) ); - Console::WriteLine( " Interface type .......................... : {0}", - adapter->NetworkInterfaceType ); - Console::WriteLine( " Physical Address ........................ : {0}", - adapter->GetPhysicalAddress() ); - Console::WriteLine( " Is receive only.......................... : {0}", - adapter->IsReceiveOnly ); - Console::WriteLine( " Multicast................................ : {0}", - adapter->SupportsMulticast ); - } -} -// - -int main() -{ - DisplayDnsAddresses(); - DisplayDnsConfiguration(); - DisplayAnycastAddresses(); - DisplayMulticastAddresses(); - DisplayUnicastAddresses(); - - DisplayDhcpServerAddresses(); - DisplayGatewayAddresses(); - - DisplayIPv4NetworkInterfaces(); - DisplayIPv6NetworkInterfaces(); - DisplayWinsServerAddresses(); - - DisplayTypeAndAddress(); - - GetTcpConnections(); - CountTcpConnections(); - DisplayActiveUdpListeners(); - ShowTcpSegmentData(); - ShowTcpConnectionStatistics(); - ShowTcpTimeouts(); - ShowInterfaceSpeedAndQueue(); - ShowPacketErrors(); - ShowPacketDiscards(); - ShowNonUnicastCounts(); - ShowUnicastCounts(); - ShowInterfaceByteCounts(); - ShowFragmentationStatistics(); - ShowOutboundIPStatistics(); - // - ShowInboundIPErrors(); - ShowInboundIPStatistics(); - ShowIPStatistics(); - if (Socket::OSSupportsIPv6) - { - ShowIcmpV6MessageData(); - ShowIcmpV6EchoData(); - ShowIcmpV6ErrorData(); - ShowIcmpV6UnreachableData (); - ShowIcmpV6RouterData (); - } - ShowRedirectsData(); - ShowTimeExceededData(); - if (Socket::OSSupportsIPv6) - { - ShowIcmpV6ParameterData (); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLNetInfoReport/CPP/netinfo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLNetInfoReport/CPP/netinfo.cpp deleted file mode 100644 index 850060ff81c7a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLNetInfoReport/CPP/netinfo.cpp +++ /dev/null @@ -1,603 +0,0 @@ - - -// Sample NCLNetInfoReport -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Net::NetworkInformation; -using namespace System::Text; - -// -void ShowIPStatistics( NetworkInterfaceComponent version ) -{ - // - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IPGlobalStatistics ^ ipstat = nullptr; - switch ( version ) - { - case NetworkInterfaceComponent::IPv4: - ipstat = properties->GetIPv4GlobalStatistics(); - Console::WriteLine( "{0}IPv4 Statistics ", Environment::NewLine ); - break; - - case NetworkInterfaceComponent::IPv6: - ipstat = properties->GetIPv4GlobalStatistics(); - Console::WriteLine( "{0}IPv6 Statistics ", Environment::NewLine ); - break; - - default: - throw gcnew ArgumentException( "version" ); - break; - } - // - - Console::WriteLine( " Forwarding enabled ...................... : {0}", - ipstat->ForwardingEnabled ); - Console::WriteLine( " Interfaces .............................. : {0}", - ipstat->NumberOfInterfaces ); - Console::WriteLine( " IP addresses ............................ : {0}", - ipstat->NumberOfIPAddresses ); - Console::WriteLine( " Routes .................................. : {0}", - ipstat->NumberOfRoutes ); - Console::WriteLine( " Default TTL ............................. : {0}", - ipstat->DefaultTtl ); - Console::WriteLine( "" ); - Console::WriteLine( " Inbound Packet Data:" ); - Console::WriteLine( " Received ............................ : {0}", - ipstat->ReceivedPackets ); - Console::WriteLine( " Forwarded ........................... : {0}", - ipstat->ReceivedPacketsForwarded ); - Console::WriteLine( " Delivered ........................... : {0}", - ipstat->ReceivedPacketsDelivered ); - Console::WriteLine( " Discarded ........................... : {0}", - ipstat->ReceivedPacketsDiscarded ); - Console::WriteLine( " Header Errors ....................... : {0}", - ipstat->ReceivedPacketsWithHeadersErrors ); - Console::WriteLine( " Address Errors ...................... : {0}", - ipstat->ReceivedPacketsWithAddressErrors ); - Console::WriteLine( " Unknown Protocol Errors ............. : {0}", - ipstat->ReceivedPacketsWithUnknownProtocol ); - Console::WriteLine( "" ); - Console::WriteLine( " Outbound Packet Data:" ); - Console::WriteLine( " Requested ........................... : {0}", - ipstat->OutputPacketRequests ); - Console::WriteLine( " Discarded ........................... : {0}", - ipstat->OutputPacketsDiscarded ); - Console::WriteLine( " No Routing Discards ................. : {0}", - ipstat->OutputPacketsWithNoRoute ); - Console::WriteLine( " Routing Entry Discards .............. : {0}", - ipstat->OutputPacketRoutingDiscards ); - Console::WriteLine( "" ); - Console::WriteLine( " Reassembly Data:" ); - Console::WriteLine( " Reassembly Timeout .................. : {0}", - ipstat->PacketReassemblyTimeout ); - Console::WriteLine( " Reassemblies Required ............... : {0}", - ipstat->PacketReassembliesRequired ); - Console::WriteLine( " Packets Reassembled ................. : {0}", - ipstat->PacketsReassembled ); - Console::WriteLine( " Packets Fragmented .................. : {0}", - ipstat->PacketsFragmented ); - Console::WriteLine( " Fragment Failures ................... : {0}", - ipstat->PacketFragmentFailures ); - Console::WriteLine( "" ); -} -// - -// -void ShowTcpStatistics( NetworkInterfaceComponent version ) -{ - // - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - TcpStatistics ^ tcpstat = nullptr; - Console::WriteLine( "" ); - switch ( version ) - { - case NetworkInterfaceComponent::IPv4: - tcpstat = properties->GetTcpIPv4Statistics(); - Console::WriteLine( "TCP/IPv4 Statistics:" ); - break; - - case NetworkInterfaceComponent::IPv6: - tcpstat = properties->GetTcpIPv6Statistics(); - Console::WriteLine( "TCP/IPv6 Statistics:" ); - break; - - default: - throw gcnew ArgumentException( "version" ); - break; - } - // - Console::WriteLine( " Minimum Transmission Timeout............. : {0}", - tcpstat->MinimumTransmissionTimeout ); - Console::WriteLine( " Maximum Transmission Timeout............. : {0}", - tcpstat->MaximumTransmissionTimeout ); - Console::WriteLine( " Connection Data:" ); - Console::WriteLine( " Current ............................ : {0}", - tcpstat->CurrentConnections ); - Console::WriteLine( " Cumulative .......................... : {0}", - tcpstat->CumulativeConnections ); - Console::WriteLine( " Initiated ........................... : {0}", - tcpstat->ConnectionsInitiated ); - Console::WriteLine( " Accepted ............................ : {0}", - tcpstat->ConnectionsAccepted ); - Console::WriteLine( " Failed Attempts ..................... : {0}", - tcpstat->FailedConnectionAttempts ); - Console::WriteLine( " Reset ............................... : {0}", - tcpstat->ResetConnections ); - Console::WriteLine( "" ); - Console::WriteLine( " Segment Data:" ); - Console::WriteLine( " Received ........................... : {0}", - tcpstat->SegmentsReceived ); - Console::WriteLine( " Sent ................................ : {0}", - tcpstat->SegmentsSent ); - Console::WriteLine( " Retransmitted ....................... : {0}", - tcpstat->SegmentsResent ); - Console::WriteLine( "" ); -} -// - -// -void ShowUdpStatistics( NetworkInterfaceComponent version ) -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - UdpStatistics ^ udpStat = nullptr; - switch ( version ) - { - case NetworkInterfaceComponent::IPv4: - udpStat = properties->GetUdpIPv4Statistics(); - Console::WriteLine( "UDP IPv4 Statistics" ); - break; - - case NetworkInterfaceComponent::IPv6: - udpStat = properties->GetUdpIPv6Statistics(); - Console::WriteLine( "UDP IPv6 Statistics" ); - break; - - default: - throw gcnew ArgumentException( "version" ); - break; - } - Console::WriteLine( " Datagrams Received ...................... : {0}", udpStat->DatagramsReceived ); - Console::WriteLine( " Datagrams Sent .......................... : {0}", udpStat->DatagramsSent ); - Console::WriteLine( " Incoming Datagrams Discarded ............ : {0}", udpStat->IncomingDatagramsDiscarded ); - Console::WriteLine( " Incoming Datagrams With Errors .......... : {0}", udpStat->IncomingDatagramsWithErrors ); - Console::WriteLine( " UDP Listeners ........................... : {0}", udpStat->UdpListeners ); - Console::WriteLine( "" ); -} -// - -// -void ShowEchoIcmpv4( IcmpV4Statistics ^ stat4 ) -{ - if ( stat4 != nullptr ) - { - Console::WriteLine( "ICMP v4 Echo Requests ................. Sent: {0,-10} Received: {1,-10}", stat4->EchoRequestsSent, stat4->EchoRequestsReceived ); - Console::WriteLine( "ICMP v4 Echo Replies .................. Sent: {0,-10} Received: {1,-10}", stat4->EchoRepliesSent, stat4->EchoRepliesReceived ); - } -} - -void ShowEchoIcmpv6( IcmpV6Statistics ^ stat6 ) -{ - if ( stat6 != nullptr ) - { - Console::WriteLine( "ICMP v6 Echo Requests.................. Sent: {0,-10} Received: {1,-10}", stat6->EchoRequestsSent, stat6->EchoRequestsReceived ); - Console::WriteLine( "ICMP v6 Echo Replies .................. Sent: {0,-10} Received: {1,-10}", stat6->EchoRepliesSent, stat6->EchoRepliesReceived ); - } -} - -// - -// -void ShowIcmpv4MessagesAndErrors( IcmpV4Statistics ^ stat4 ) -{ - if ( stat4 != nullptr ) - { - Console::WriteLine( "ICMP v4 Messages ...................... Sent: {0,-10} Received: {1,-10}", stat4->MessagesSent, stat4->MessagesReceived ); - Console::WriteLine( "ICMP v6 Errors ........................ Sent: {0,-10} Received: {1,-10}", stat4->ErrorsSent, stat4->ErrorsReceived ); - } - -} - -void ShowIcmpv6MessagesAndErrors( IcmpV6Statistics ^ stat6 ) -{ - if ( stat6 != nullptr ) - { - Console::WriteLine( "ICMP v6 Messages ...................... Sent: {0,-10} Received: {1,-10}", stat6->MessagesSent, stat6->MessagesReceived ); - Console::WriteLine( "ICMP v6 Errors ........................ Sent: {0,-10} Received: {1,-10}", stat6->ErrorsSent, stat6->ErrorsReceived ); - } -} -// - -// -void ShowIcmpV4Statistics() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV4Statistics ^ stat = properties->GetIcmpV4Statistics(); - Console::WriteLine( "ICMP V4 Statistics:" ); - Console::WriteLine( " Messages ............................ Sent: {0,-10} Received: {1,-10}", stat->MessagesSent, stat->MessagesReceived ); - Console::WriteLine( " Errors .............................. Sent: {0,-10} Received: {1,-10}", stat->ErrorsSent, stat->ErrorsReceived ); - Console::WriteLine( " Echo Requests ....................... Sent: {0,-10} Received: {1,-10}", stat->EchoRequestsSent, stat->EchoRequestsReceived ); - Console::WriteLine( " Echo Replies ........................ Sent: {0,-10} Received: {1,-10}", stat->EchoRepliesSent, stat->EchoRepliesReceived ); - Console::WriteLine( " Destination Unreachables ............ Sent: {0,-10} Received: {1,-10}", stat->DestinationUnreachableMessagesSent, stat->DestinationUnreachableMessagesReceived ); - Console::WriteLine( " Source Quenches ..................... Sent: {0,-10} Received: {1,-10}", stat->SourceQuenchesSent, stat->SourceQuenchesReceived ); - Console::WriteLine( " Redirects ........................... Sent: {0,-10} Received: {1,-10}", stat->RedirectsSent, stat->RedirectsReceived ); - Console::WriteLine( " TimeExceeded ........................ Sent: {0,-10} Received: {1,-10}", stat->TimeExceededMessagesSent, stat->TimeExceededMessagesReceived ); - Console::WriteLine( " Parameter Problems .................. Sent: {0,-10} Received: {1,-10}", stat->ParameterProblemsSent, stat->ParameterProblemsReceived ); - Console::WriteLine( " Timestamp Requests .................. Sent: {0,-10} Received: {1,-10}", stat->TimestampRequestsSent, stat->TimestampRequestsReceived ); - Console::WriteLine( " Timestamp Replies ................... Sent: {0,-10} Received: {1,-10}", stat->TimestampRepliesSent, stat->TimestampRepliesReceived ); - Console::WriteLine( " Address Mask Requests ............... Sent: {0,-10} Received: {1,-10}", stat->AddressMaskRequestsSent, stat->AddressMaskRequestsReceived ); - Console::WriteLine( " Address Mask Replies ................ Sent: {0,-10} Received: {1,-10}", stat->AddressMaskRepliesSent, stat->AddressMaskRepliesReceived ); - Console::WriteLine( "" ); -} -// - -// -void ShowIcmpV6Statistics() -{ - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - IcmpV6Statistics ^ stat = properties->GetIcmpV6Statistics(); - Console::WriteLine( "ICMP V6 Statistics:" ); - Console::WriteLine( " Messages ............................ Sent: {0,-10} Received: {1,-10}", stat->MessagesSent, stat->MessagesReceived ); - Console::WriteLine( " Errors .............................. Sent: {0,-10} Received: {1,-10}", stat->ErrorsSent, stat->ErrorsReceived ); - Console::WriteLine( " Echo Requests ....................... Sent: {0,-10} Received: {1,-10}", stat->EchoRequestsSent, stat->EchoRequestsReceived ); - Console::WriteLine( " Echo Replies ........................ Sent: {0,-10} Received: {1,-10}", stat->EchoRepliesSent, stat->EchoRepliesReceived ); - Console::WriteLine( " Destination Unreachables ............ Sent: {0,-10} Received: {1,-10}", stat->DestinationUnreachableMessagesSent, stat->DestinationUnreachableMessagesReceived ); - Console::WriteLine( " Parameter Problems .................. Sent: {0,-10} Received: {1,-10}", stat->ParameterProblemsSent, stat->ParameterProblemsReceived ); - Console::WriteLine( " Packets Too Big ..................... Sent: {0,-10} Received: {1,-10}", stat->PacketTooBigMessagesSent, stat->PacketTooBigMessagesReceived ); - Console::WriteLine( " Redirects ........................... Sent: {0,-10} Received: {1,-10}", stat->RedirectsSent, stat->RedirectsReceived ); - Console::WriteLine( " Router Advertisements ............... Sent: {0,-10} Received: {1,-10}", stat->RouterAdvertisementsSent, stat->RouterAdvertisementsReceived ); - Console::WriteLine( " Router Solicitations ................ Sent: {0,-10} Received: {1,-10}", stat->RouterSolicitsSent, stat->RouterSolicitsReceived ); - Console::WriteLine( " Time Exceeded ....................... Sent: {0,-10} Received: {1,-10}", stat->TimeExceededMessagesSent, stat->TimeExceededMessagesReceived ); - Console::WriteLine( " Neighbor Advertisements ............. Sent: {0,-10} Received: {1,-10}", stat->NeighborAdvertisementsSent, stat->NeighborAdvertisementsReceived ); - Console::WriteLine( " Neighbor Solicitations .............. Sent: {0,-10} Received: {1,-10}", stat->NeighborSolicitsSent, stat->NeighborSolicitsReceived ); - Console::WriteLine( " Membership Queries .................. Sent: {0,-10} Received: {1,-10}", stat->MembershipQueriesSent, stat->MembershipQueriesReceived ); - Console::WriteLine( " Membership Reports .................. Sent: {0,-10} Received: {1,-10}", stat->MembershipReportsSent, stat->MembershipReportsReceived ); - Console::WriteLine( " Membership Reductions ............... Sent: {0,-10} Received: {1,-10}", stat->MembershipReductionsSent, stat->MembershipReductionsReceived ); - Console::WriteLine( "" ); -} -// - -// -void ShowIPAddresses( String^ label, IPAddressCollection^ addresses ) -{ - if ( addresses->Count == 0 ) - return; - -// Console::WriteLine( "{0} {1} ", label, addresses->Item[ 0 ] ); - if ( addresses->Count > 1 ) - { - for ( int i = 1; i < addresses->Count; i++ ) - { - String^ address = addresses->ToString(); - String^ line = address->PadLeft( label->Length + address->Length + 1 ); - Console::WriteLine( "{0}", line ); - - } - } -} -// - -// -void ShowIPAddresses( IPInterfaceProperties ^ adapterProperties ) -{ - // - IPAddressCollection ^ dnsServers = adapterProperties->DnsAddresses; - if ( dnsServers != nullptr ) - { - System::Collections::IEnumerator^ myEnum = dnsServers->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - IPAddressInformation ^ dns = safe_cast(myEnum->Current); - Console::WriteLine( " DNS Servers ............................. : {0} ({1} {2})", - dns->Address, dns->IsTransient ? (String^)"Transient" : "", dns->IsDnsEligible ? (String^)"DNS Eligible" : "" ); - } - } - // - - IPAddressInformationCollection ^ anyCast = adapterProperties->AnycastAddresses; - if ( anyCast != nullptr ) - { - System::Collections::IEnumerator^ myEnum1 = anyCast->GetEnumerator(); - while ( myEnum1->MoveNext() ) - { - IPAddressInformation ^ any = safe_cast(myEnum1->Current); - Console::WriteLine( " Anycast Address .......................... : {0} {1} {2}", any->Address, any->IsTransient ? (String^)"Transient" : "", any->IsDnsEligible ? (String^)"DNS Eligible" : "" ); - } - - Console::WriteLine(); - } - - MulticastIPAddressInformationCollection ^ multiCast = adapterProperties->MulticastAddresses; - if ( multiCast != nullptr ) - { - System::Collections::IEnumerator^ myEnum2 = multiCast->GetEnumerator(); - while ( myEnum2->MoveNext() ) - { - IPAddressInformation ^ multi = safe_cast(myEnum2->Current); - Console::WriteLine( " Multicast Address ....................... : {0} {1} {2}", multi->Address, multi->IsTransient ? (String^)"Transient" : "", multi->IsDnsEligible ? (String^)"DNS Eligible" : "" ); - } - - Console::WriteLine(); - } - - // - UnicastIPAddressInformationCollection ^ uniCast = adapterProperties->UnicastAddresses; - if ( uniCast != nullptr ) - { - String^ lifeTimeFormat = "dddd, MMMM dd, yyyy hh:mm:ss tt"; - System::Collections::IEnumerator^ myEnum3 = uniCast->GetEnumerator(); - while ( myEnum3->MoveNext() ) - { - UnicastIPAddressInformation ^ uni = safe_cast(myEnum3->Current); - DateTime when; - Console::WriteLine( " Unicast Address ......................... : {0}", uni->Address ); - Console::WriteLine( " Prefix Origin ........................ : {0}", uni->PrefixOrigin ); - Console::WriteLine( " Suffix Origin ........................ : {0}", uni->SuffixOrigin ); - Console::WriteLine( " Duplicate Address Detection .......... : {0}", uni->DuplicateAddressDetectionState ); - - // Format the lifetimes as Sunday, February 16, 2003 11:33:44 PM - // if en-us is the current culture. - // Calculate the date and time at the end of the lifetimes. - when = DateTime::UtcNow + TimeSpan::FromSeconds( (double)uni->AddressValidLifetime ); - when = when.ToLocalTime(); - Console::WriteLine( " Valid Life Time ...................... : {0}", when.ToString( lifeTimeFormat, System::Globalization::CultureInfo::CurrentCulture ) ); - when = DateTime::UtcNow + TimeSpan::FromSeconds( (double)uni->AddressPreferredLifetime ); - when = when.ToLocalTime(); - Console::WriteLine( " Preferred life time .................. : {0}", when.ToString( lifeTimeFormat, System::Globalization::CultureInfo::CurrentCulture ) ); - when = DateTime::UtcNow + TimeSpan::FromSeconds( (double)uni->DhcpLeaseLifetime ); - when = when.ToLocalTime(); - Console::WriteLine( " DHCP Leased Life Time ................ : {0}", when.ToString( lifeTimeFormat, System::Globalization::CultureInfo::CurrentCulture ) ); - } - - Console::WriteLine(); - } - // -} -// - -// -void ShowInterfaceStatistics( NetworkInterface ^ adapter ) -{ - IPv4InterfaceStatistics ^ stats = adapter->GetIPv4Statistics(); - Console::WriteLine( "{0} Interface Statistics:", Environment::NewLine ); - Console::WriteLine( " Bytes sent ........................... : {0}", - stats->BytesSent ); - Console::WriteLine( " Bytes received ....................... : {0}", - stats->BytesReceived ); - Console::WriteLine( " Unicast Packets Sent ................. : {0}", - stats->UnicastPacketsSent ); - Console::WriteLine( " Unicast Packets Received ............. : {0}", - stats->UnicastPacketsReceived ); - Console::WriteLine( " Non Unicast Packets Sent ............. : {0}", - stats->NonUnicastPacketsSent ); - Console::WriteLine( " Non Unicast Packets Received ......... : {0}", - stats->NonUnicastPacketsReceived ); - Console::WriteLine( " Incoming Packets Discarded ........... : {0}", - stats->IncomingPacketsDiscarded ); - Console::WriteLine( " Outgoing Packets Discarded ........... : {0}", - stats->OutgoingPacketsDiscarded ); - Console::WriteLine( " Incoming Packets Errors .............. : {0}", - stats->IncomingPacketsWithErrors ); - Console::WriteLine( " Outgoing packets Errors .............. : {0}", - stats->OutgoingPacketsWithErrors ); - Console::WriteLine( " Incoming Unknown Protocol Errors ..... : {0}", - stats->IncomingUnknownProtocolPackets ); - Console::WriteLine( " Speed ................................ : {0}", - adapter->Speed ); - Console::WriteLine( " Output queue length................... : {0}", - stats->OutputQueueLength ); - Console::WriteLine(); -} -// - -// -void ShowNetworkInterfaces() -{ - IPGlobalProperties ^ computerProperties = IPGlobalProperties::GetIPGlobalProperties(); - array^nics = NetworkInterface::GetAllNetworkInterfaces(); - Console::WriteLine( "Interface information for {0}.{1} ", computerProperties->HostName, computerProperties->DomainName ); - if ( nics == nullptr || nics->Length < 1 ) - { - Console::WriteLine( " No network interfaces found." ); - return; - } - - Console::WriteLine( " Number of interfaces .................... : {0}", nics->Length ); - System::Collections::IEnumerator^ myEnum4 = nics->GetEnumerator(); - while ( myEnum4->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum4->Current); - IPInterfaceProperties ^ properties = adapter->GetIPProperties(); - Console::WriteLine(); - Console::WriteLine( adapter->Description ); - Console::WriteLine( String::Empty->PadLeft( adapter->Description->Length, '=' ) ); - Console::WriteLine( " Interface type .......................... : {0}", - adapter->NetworkInterfaceType ); - Console::WriteLine( " Physical Address ........................ : {0}", - adapter->GetPhysicalAddress() ); - Console::WriteLine( " Operational status ...................... : {0}", - adapter->OperationalStatus ); - String^ versions = ""; - - // Create a display string for the supported IP versions. - if ( adapter->Supports( NetworkInterfaceComponent::IPv4 ) ) - { - versions = "IPv4"; - } - if ( adapter->Supports( NetworkInterfaceComponent::IPv6 ) ) - { - if ( versions->Length > 0 ) - { - versions = String::Concat( versions, " " ); - } - versions = String::Concat( versions, "IPv6" ); - } - Console::WriteLine( " IP version .............................. : {0}", - versions ); - ShowIPAddresses( properties ); - - // The following information is not useful for loopback adapters. - if ( adapter->NetworkInterfaceType == NetworkInterfaceType::Loopback ) - { - continue; - } - Console::WriteLine( " DNS suffix .............................. : {0}", - properties->DnsSuffix ); - String^ label; - - // - if ( adapter->Supports( NetworkInterfaceComponent::IPv4 ) ) - { - IPv4InterfaceProperties ^ ipv4 = properties->GetIPv4Properties(); - Console::WriteLine( " MTU...................................... : {0}", - ipv4->Mtu ); - if ( ipv4->UsesWins ) - { - IPAddressCollection ^ winsServers = properties->WinsServersAddresses; - if ( winsServers->Count > 0 ) - { - label = " WINS Servers ............................ :"; - ShowIPAddresses( label, winsServers ); - } - } - } - // - Console::WriteLine( " DNS enabled ............................. : {0}", - properties->IsDnsEnabled ); - Console::WriteLine( " Dynamically configured DNS .............. : {0}", - properties->IsDynamicDnsEnabled ); - Console::WriteLine( " Receive Only ............................ : {0}", - adapter->IsReceiveOnly ); - Console::WriteLine( " Multicast ............................... : {0}", - adapter->SupportsMulticast ); - ShowInterfaceStatistics( adapter ); - Console::WriteLine(); - } -} -// - - -// -void ShowInterfaceSummary() -{ - array^interfaces = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum5 = interfaces->GetEnumerator(); - while ( myEnum5->MoveNext() ) - { - NetworkInterface ^ adapter = safe_cast(myEnum5->Current); - Console::WriteLine( "Name: {0}", adapter->Name ); - Console::WriteLine( adapter->Description ); - Console::WriteLine( String::Empty->PadLeft( adapter->Description->Length, '=' ) ); - Console::WriteLine( " Interface type .......................... : {0}", - adapter->NetworkInterfaceType ); - Console::WriteLine( " Operational status ...................... : {0}", adapter->OperationalStatus ); - String^ versions = ""; - - // Create a display string for the supported IP versions. - if ( adapter->Supports( NetworkInterfaceComponent::IPv4 ) ) - { - versions = "IPv4"; - } - - if ( adapter->Supports( NetworkInterfaceComponent::IPv6 ) ) - { - if ( versions->Length > 0 ) - { - versions = String::Concat( versions, " " ); - } - - versions = String::Concat( versions, "IPv6" ); - } - - Console::WriteLine( " IP version .............................. : {0}", versions ); - Console::WriteLine(); - } - - Console::WriteLine(); -} -// - -// -void ShowActiveTcpConnections() -{ - Console::WriteLine( "Active TCP Connections" ); - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - array^connections = properties->GetActiveTcpConnections(); - System::Collections::IEnumerator^ myEnum6 = connections->GetEnumerator(); - while ( myEnum6->MoveNext() ) - { - TcpConnectionInformation ^ c = safe_cast(myEnum6->Current); - Console::WriteLine( "{0} <==> {1}", c->LocalEndPoint, c->RemoteEndPoint ); - } -} -// - -// -void ShowActiveTcpListeners() -{ - Console::WriteLine( "Active TCP Listeners" ); - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - array^endPoints = properties->GetActiveTcpListeners(); - System::Collections::IEnumerator^ myEnum7 = endPoints->GetEnumerator(); - while ( myEnum7->MoveNext() ) - { - IPEndPoint^ e = safe_cast(myEnum7->Current); - Console::WriteLine( e ); - } -} -// - -// -void ShowActiveUdpListeners() -{ - Console::WriteLine( "Active UDP Listeners" ); - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - array^endPoints = properties->GetActiveUdpListeners(); - System::Collections::IEnumerator^ myEnum8 = endPoints->GetEnumerator(); - while ( myEnum8->MoveNext() ) - { - IPEndPoint^ e = safe_cast(myEnum8->Current); - Console::WriteLine( e ); - } -} -// - -int main() -{ - // - IPGlobalProperties ^ properties = IPGlobalProperties::GetIPGlobalProperties(); - Console::WriteLine( "Computer name: {0}", properties->HostName ); - Console::WriteLine( "Domain name: {0}", properties->DomainName ); - Console::WriteLine( "Node type: {0:f}", properties->NodeType ); - Console::WriteLine( "DHCP scope: {0}", properties->DhcpScopeName ); - Console::WriteLine( "WINS proxy? {0}", properties->IsWinsProxy ); - // - - ShowActiveTcpConnections(); - ShowActiveTcpListeners(); - ShowActiveUdpListeners(); - if (Socket::SupportsIPv4) - { - ShowIcmpV4Statistics(); - } - if (Socket::OSSupportsIPv6) - { - ShowIcmpV6Statistics(); - } - ShowIPStatistics( NetworkInterfaceComponent::IPv4 ); - ShowTcpStatistics( NetworkInterfaceComponent::IPv4 ); - ShowUdpStatistics( NetworkInterfaceComponent::IPv4 ); - ShowEchoIcmpv4(properties->GetIcmpV4Statistics()); - ShowIcmpv4MessagesAndErrors(properties->GetIcmpV4Statistics()); - - if (Socket::OSSupportsIPv6) - { - ShowEchoIcmpv6(properties->GetIcmpV6Statistics()); - ShowIcmpv6MessagesAndErrors(properties->GetIcmpV6Statistics()); - } - - ShowNetworkInterfaces(); - ShowInterfaceSummary(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLPhysicalAddress/CPP/NCLPhysicalAddress.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLPhysicalAddress/CPP/NCLPhysicalAddress.cpp deleted file mode 100644 index c3837c3296085..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLPhysicalAddress/CPP/NCLPhysicalAddress.cpp +++ /dev/null @@ -1,140 +0,0 @@ - -#using - -using namespace System; -using namespace System::Net::NetworkInformation; -using namespace System::Collections; - -// -void DisplayAddressNone() -{ - PhysicalAddress^ none = PhysicalAddress::None; - Console::WriteLine( L"None: {0}", none ); - array^bytes = none->GetAddressBytes(); - System::Collections::IEnumerator^ myEnum = bytes->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Byte b = safe_cast(myEnum->Current); - Console::Write( L"{0} ", b.ToString() ); - } - - Console::WriteLine(); -} - - -// -// -void ShowNetworkInterfaces() -{ - IPGlobalProperties^ computerProperties = IPGlobalProperties::GetIPGlobalProperties(); - array^nics = NetworkInterface::GetAllNetworkInterfaces(); - Console::WriteLine( L"Interface information for {0}.{1} ", computerProperties->HostName, computerProperties->DomainName ); - if ( nics == nullptr || nics->Length < 1 ) - { - Console::WriteLine( L" No network interfaces found." ); - return; - } - - Console::WriteLine( L" Number of interfaces .................... : {0}", (nics->Length).ToString() ); - IEnumerator^ myEnum1 = nics->GetEnumerator(); - while ( myEnum1->MoveNext() ) - { - NetworkInterface^ adapter = safe_cast(myEnum1->Current); - IPInterfaceProperties^ properties = adapter->GetIPProperties(); - Console::WriteLine(); - Console::WriteLine( adapter->Description ); - Console::WriteLine( String::Empty->PadLeft( adapter->Description->Length, '=' ) ); - Console::WriteLine( L" Interface type .......................... : {0}", adapter->NetworkInterfaceType ); - Console::Write( L" Physical address ........................ : " ); - PhysicalAddress^ address = adapter->GetPhysicalAddress(); - array^bytes = address->GetAddressBytes(); - for ( int i = 0; i < bytes->Length; i++ ) - { - - // Display the physical address in hexadecimal. - Console::Write( L"{0}", bytes[ i ].ToString( L"X2" ) ); - - // Insert a hyphen after each byte, unless we are at the end of the - // address. - if ( i != bytes->Length - 1 ) - { - Console::Write( L"-" ); - } - - } - Console::WriteLine(); - } -} - - -// -// -void ParseTest() -{ - PhysicalAddress^ address = PhysicalAddress::Parse( L"AC1EBA22" ); - Console::WriteLine( L"Address parsed as {0}", address->ToString() ); - PhysicalAddress^ address2 = PhysicalAddress::Parse( L"ac1eba22" ); - Console::WriteLine( L"Address2 parsed as {0}", address2->ToString() ); - bool test = address->Equals( address2 ); - Console::WriteLine( L"Equal? {0}", test ); -} - - -// -// -array^ StoreNetworkInterfaceAddresses() -{ - IPGlobalProperties^ computerProperties = IPGlobalProperties::GetIPGlobalProperties(); - array^nics = NetworkInterface::GetAllNetworkInterfaces(); - if ( nics == nullptr || nics->Length < 1 ) - { - Console::WriteLine( L" No network interfaces found." ); - return nullptr; - } - - array^ addresses = gcnew array(nics->Length); - int i = 0; - IEnumerator^ myEnum2 = nics->GetEnumerator(); - while ( myEnum2->MoveNext() ) - { - NetworkInterface^ adapter = safe_cast(myEnum2->Current); - IPInterfaceProperties^ properties = adapter->GetIPProperties(); - PhysicalAddress^ address = adapter->GetPhysicalAddress(); - array^bytes = address->GetAddressBytes(); - PhysicalAddress^ newAddress = gcnew PhysicalAddress( bytes ); - addresses[ i++ ] = newAddress; - } - - return addresses; -} - - -// -// -PhysicalAddress^ StrictParseAddress( String^ address ) -{ - PhysicalAddress^ newAddress = PhysicalAddress::Parse( address ); - if ( PhysicalAddress::None->Equals( newAddress ) ) - return nullptr; - - return newAddress; -} - - -// -int main() -{ - - DisplayAddressNone(); - ShowNetworkInterfaces(); - ParseTest(); - /* PhysicalAddress[] addresses = StoreNetworkInterfaceAddresses(); - foreach (PhysicalAddress address in addresses) - { - Console.WriteLine(address.ToString()); - } - */ - PhysicalAddress^ a = StrictParseAddress( nullptr ); - Console::WriteLine( a == nullptr ? L"null" : a->ToString() ); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLPingSampler/CPP/pingtest.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLPingSampler/CPP/pingtest.cpp deleted file mode 100644 index 845a8d231bd15..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLPingSampler/CPP/pingtest.cpp +++ /dev/null @@ -1,249 +0,0 @@ - - -//NCLPingSampler -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::NetworkInformation; -using namespace System::Text; -using namespace System::Threading; - -// -void SimplePing(); -void ComplexPing(); -void LocalPing(); -void ComplexLocalPing(); -void LocalPingTimeout(); -void AsyncComplexLocalPing(); -void PingCompletedCallback( Object^ sender, PingCompletedEventArgs^ e ); - -int main() -{ - -// SimplePing(); - LocalPing(); Console::WriteLine(); -// ComplexPing(); Console::WriteLine(); - ComplexLocalPing(); Console::WriteLine(); - AsyncComplexLocalPing(); -} - - -// -void SimplePing() -{ - Ping ^ pingSender = gcnew Ping; - PingReply ^ reply = pingSender->Send( "www.contoso.com" ); - if ( reply->Status == IPStatus::Success ) - { - Console::WriteLine( "Address: {0}", reply->Address->ToString() ); - Console::WriteLine( "RoundTrip time: {0}", reply->RoundtripTime ); - Console::WriteLine( "Time to live: {0}", reply->Options->Ttl ); - Console::WriteLine( "Don't fragment: {0}", reply->Options->DontFragment ); - Console::WriteLine( "Buffer size: {0}", reply->Buffer->Length ); - } - else - { - Console::WriteLine( reply->Status ); - } -} - - -// -// -void ComplexPing() -{ - Ping ^ pingSender = gcnew Ping; - - // Create a buffer of 32 bytes of data to be transmitted. - String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - array^buffer = Encoding::ASCII->GetBytes( data ); - - // Wait 10 seconds for a reply. - int timeout = 10000; - - // Set options for transmission: - // The data can go through 64 gateways or routers - // before it is destroyed, and the data packet - // cannot be fragmented. - PingOptions ^ options = gcnew PingOptions( 64,true ); - - // Send the request. - PingReply ^ reply = pingSender->Send( "www.contoso.com", timeout, buffer, options ); - if ( reply->Status == IPStatus::Success ) - { - Console::WriteLine( "Address: {0}", reply->Address->ToString() ); - Console::WriteLine( "RoundTrip time: {0}", reply->RoundtripTime ); - Console::WriteLine( "Time to live: {0}", reply->Options->Ttl ); - Console::WriteLine( "Don't fragment: {0}", reply->Options->DontFragment ); - Console::WriteLine( "Buffer size: {0}", reply->Buffer->Length ); - } - else - { - Console::WriteLine( reply->Status ); - } -} - - -// -// -void LocalPing() -{ - - // Ping's the local machine. - Ping ^ pingSender = gcnew Ping; - IPAddress^ address = IPAddress::Loopback; - PingReply ^ reply = pingSender->Send( address ); - if ( reply->Status == IPStatus::Success ) - { - Console::WriteLine( "Address: {0}", reply->Address->ToString() ); - Console::WriteLine( "RoundTrip time: {0}", reply->RoundtripTime ); - Console::WriteLine( "Time to live: {0}", reply->Options->Ttl ); - Console::WriteLine( "Don't fragment: {0}", reply->Options->DontFragment ); - Console::WriteLine( "Buffer size: {0}", reply->Buffer->Length ); - } - else - { - Console::WriteLine( reply->Status ); - } -} - - -// -// -void ComplexLocalPing() -{ - - // Ping's the local machine. - Ping ^ pingSender = gcnew Ping; - IPAddress^ address = IPAddress::Loopback; - - // Create a buffer of 32 bytes of data to be transmitted. - String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - array^buffer = Encoding::ASCII->GetBytes( data ); - - // Wait 10 seconds for a reply. - int timeout = 10000; - - // Set options for transmission: - // The data can go through 64 gateways or routers - // before it is destroyed, and the data packet - // cannot be fragmented. - PingOptions ^ options = gcnew PingOptions( 64,true ); - PingReply ^ reply = pingSender->Send( address, timeout, buffer, options ); - if ( reply->Status == IPStatus::Success ) - { - Console::WriteLine( "Address: {0}", reply->Address->ToString() ); - Console::WriteLine( "RoundTrip time: {0}", reply->RoundtripTime ); - Console::WriteLine( "Time to live: {0}", reply->Options->Ttl ); - Console::WriteLine( "Don't fragment: {0}", reply->Options->DontFragment ); - Console::WriteLine( "Buffer size: {0}", reply->Buffer->Length ); - } - else - { - Console::WriteLine( reply->Status ); - } -} - - -// -// -void LocalPingTimeout() -{ - - // Ping's the local machine. - Ping ^ pingSender = gcnew Ping; - IPAddress^ address = IPAddress::Loopback; - - // Create a buffer of 32 bytes of data to be transmitted. - String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - array^buffer = Encoding::ASCII->GetBytes( data ); - - // Wait 10 seconds for a reply. - int timeout = 10000; - PingReply ^ reply = pingSender->Send( address, timeout, buffer); - if ( reply->Status == IPStatus::Success ) - { - Console::WriteLine( "Address: {0}", reply->Address->ToString() ); - Console::WriteLine( "RoundTrip time: {0}", reply->RoundtripTime ); - Console::WriteLine( "Time to live: {0}", reply->Options->Ttl ); - Console::WriteLine( "Don't fragment: {0}", reply->Options->DontFragment ); - Console::WriteLine( "Buffer size: {0}", reply->Buffer->Length ); - } - else - { - Console::WriteLine( reply->Status ); - } -} - - -// -// -void AsyncComplexLocalPing() -{ - - // Get an object that will block the main thread. - AutoResetEvent^ waiter = gcnew AutoResetEvent( false ); - - // Ping's the local machine. - Ping ^ pingSender = gcnew Ping; - - // When the PingCompleted event is raised, - // the PingCompletedCallback method is called. - pingSender->PingCompleted += gcnew PingCompletedEventHandler( PingCompletedCallback ); - IPAddress^ address = IPAddress::Loopback; - - // Create a buffer of 32 bytes of data to be transmitted. - String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - array^buffer = Encoding::ASCII->GetBytes( data ); - - // Wait 10 seconds for a reply. - int timeout = 10000; - - // Set options for transmission: - // The data can go through 64 gateways or routers - // before it is destroyed, and the data packet - // cannot be fragmented. - PingOptions ^ options = gcnew PingOptions( 64,true ); - - // Send the ping asynchronously. - // Use the waiter as the user token. - // When the callback completes, it can wake up this thread. - pingSender->SendAsync( address, timeout, buffer, options, waiter ); - - // Prevent this example application from ending. - // A real application should do something useful - // when possible. - waiter->WaitOne(); - Console::WriteLine( "Ping example completed." ); -} - - -// -// -void PingCompletedCallback( Object^ /*sender*/, PingCompletedEventArgs^ e ) -{ - - // If the operation was canceled, display a message to the user. - if ( e->Cancelled ) - { - Console::WriteLine( "Ping canceled." ); - } - - - // If an error occurred, display the exception to the user. - if ( e->Error != nullptr ) - { - Console::WriteLine( "Ping failed:" ); - Console::WriteLine( e->Error->ToString() ); - } - - PingReply ^ reply = e->Reply; - Console::WriteLine( reply->Status ); - - // Let the main thread resume. - (dynamic_cast(e->UserState))->Set(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLResponse1/CPP/httpwebrequest1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLResponse1/CPP/httpwebrequest1.cpp deleted file mode 100644 index 65f45fbe5eb57..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLResponse1/CPP/httpwebrequest1.cpp +++ /dev/null @@ -1,51 +0,0 @@ - - -// SampleID="NCLResponse1" -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; -using namespace System::IO; - -// Specify the URL to receive the request. -int main() -{ - array^args = Environment::GetCommandLineArgs(); - HttpWebRequest^ request = dynamic_cast(WebRequest::Create( args[ 1 ] )); - - // Set some reasonable limits on resources used by this request - request->MaximumAutomaticRedirections = 4; - request->MaximumResponseHeadersLength = 4; - - // Set credentials to use for this request. - request->Credentials = CredentialCache::DefaultCredentials; - HttpWebResponse^ response = dynamic_cast(request->GetResponse()); - Console::WriteLine( "Content length is {0}", response->ContentLength ); - Console::WriteLine( "Content type is {0}", response->ContentType ); - - // Get the stream associated with the response. - Stream^ receiveStream = response->GetResponseStream(); - - // Pipes the stream to a higher level stream reader with the required encoding format. - StreamReader^ readStream = gcnew StreamReader( receiveStream,Encoding::UTF8 ); - Console::WriteLine( "Response stream received." ); - Console::WriteLine( readStream->ReadToEnd() ); - response->Close(); - readStream->Close(); -} - -/* -The output from this example will vary depending on the value passed into Main -but will be similar to the following: - -Content length is 1542 -Content type is text/html; charset=utf-8 -Response stream received. - -... - - -*/ -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLServicePoint/CPP/nclservicepoint.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLServicePoint/CPP/nclservicepoint.cpp deleted file mode 100644 index d9632b38b2c1b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLServicePoint/CPP/nclservicepoint.cpp +++ /dev/null @@ -1,88 +0,0 @@ - -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::IO; -using namespace System::Threading; - -namespace SystemNetExamples -{ - public ref class ServicePointExample - { - public: - - // Pass in the name of the Web page to retrieve. - static void PrintResponse(String^ page) - { - - // Create the request. - HttpWebRequest^ request; - Uri^ uri; - - - - try - { - uri = gcnew Uri(page); - } - catch (UriFormatException^ ex) - { - Console::WriteLine(ex->Message); - } - - request = (HttpWebRequest^) WebRequest::Create(uri); - - // Get the service point that handles the request's - // socket connection. - ServicePoint^ point = request->ServicePoint; - - // Set the receive buffer size on the underlying socket. - point->ReceiveBufferSize = 2048; - - // Set the connection lease timeout to infinite. - point->ConnectionLeaseTimeout = Timeout::Infinite; - - // Send the request. - HttpWebResponse^ response = - (HttpWebResponse^) request->GetResponse(); - Stream^ responseStream = response->GetResponseStream(); - StreamReader^ streamReader = - gcnew StreamReader(responseStream); - try - { - // Display the response. - Console::WriteLine(streamReader->ReadToEnd()); - responseStream->Close(); - response->Close(); - } - finally - { - streamReader->Close(); - } - } - }; -} - -// - -using namespace SystemNetExamples; - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - String^ page; - - if ((args == nullptr)||(args->Length < 2)||(args[1]->Length == 0)) - { - page = "http://www.contoso.com/default.html"; - } - else - { - page = args[1]; - } - ServicePointExample::PrintResponse(page); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLSimpleCache/CPP/NCLSimpleCache.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLSimpleCache/CPP/NCLSimpleCache.cpp deleted file mode 100644 index 0c201db6c1c43..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLSimpleCache/CPP/NCLSimpleCache.cpp +++ /dev/null @@ -1,274 +0,0 @@ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Cache; -using namespace System::IO; -using namespace System::Text; -using namespace System::Collections::Specialized; -using namespace System::Collections; - -public ref class CacheExample -{ -public: - - // - static WebResponse^ GetResponseUsingDefaultCache( Uri^ uri ) - { - // Set a cache policy level for the "http:" scheme. - HttpRequestCachePolicy^ policy = gcnew HttpRequestCachePolicy( HttpRequestCacheLevel::Default ); - - // Create the request. - WebRequest^ request = WebRequest::Create( uri ); - request->CachePolicy = policy; - WebResponse^ response = request->GetResponse(); - Console::WriteLine( L"Policy {0}.", policy ); - Console::WriteLine( L"Is the response from the cache? {0}", response->IsFromCache ); - return response; - } - // - - // - // The following method demonstrates overriding the - // caching policy for a request. - static WebResponse^ GetResponseNoCache( Uri^ uri ) - { - // Set a default policy level for the "http:" and "https" schemes. - HttpRequestCachePolicy^ policy = gcnew HttpRequestCachePolicy( HttpRequestCacheLevel::Default ); - HttpWebRequest::DefaultCachePolicy = policy; - - // Create the request. - WebRequest^ request = WebRequest::Create( uri ); - - // Define a cache policy for this request only. - HttpRequestCachePolicy^ noCachePolicy = gcnew HttpRequestCachePolicy( HttpRequestCacheLevel::NoCacheNoStore ); - request->CachePolicy = noCachePolicy; - WebResponse^ response = request->GetResponse(); - Console::WriteLine( L"IsFromCache? {0}", response->IsFromCache ); - - return response; - } - // - - // - static HttpRequestCachePolicy^ CreateLastSyncPolicy( DateTime when ) - { - HttpRequestCachePolicy^ policy = gcnew HttpRequestCachePolicy( when ); - Console::WriteLine( L"When: {0}", when ); - Console::WriteLine( policy->CacheSyncDate ); - return policy; - } - // - - // - static void DisplayPolicyDetails( HttpRequestCachePolicy^ policy ) - { - Console::WriteLine( L"Synchronize date: {0}", policy->CacheSyncDate ); - Console::WriteLine( L"Max age: {0}", policy->MaxAge ); - Console::WriteLine( L"Max stale: {0}", policy->MaxStale ); - Console::WriteLine( L"Min fresh: {0}", policy->MinFresh ); - } - // - - // - static HttpRequestCachePolicy^ CreateMinFreshPolicy( TimeSpan span ) - { - HttpRequestCachePolicy^ policy = gcnew HttpRequestCachePolicy( HttpCacheAgeControl::MinFresh,span ); - Console::WriteLine( L"Minimum freshness {0}", policy->MinFresh ); - return policy; - } - // - - // - static HttpRequestCachePolicy^ CreateMaxStalePolicy( TimeSpan span ) - { - HttpRequestCachePolicy^ policy = gcnew HttpRequestCachePolicy( HttpCacheAgeControl::MaxStale,span ); - Console::WriteLine( L"Max stale is {0}", policy->MaxStale ); - return policy; - } - // - - // - static HttpRequestCachePolicy^ CreateMaxAgePolicy( TimeSpan span ) - { - HttpRequestCachePolicy^ policy = gcnew HttpRequestCachePolicy( HttpCacheAgeControl::MaxAge,span ); - Console::WriteLine( L"Max age is {0}", policy->MaxAge ); - return policy; - } - // - - // - static HttpRequestCachePolicy^ CreateDefaultPolicy() - { - HttpRequestCachePolicy^ policy = gcnew HttpRequestCachePolicy; - Console::WriteLine( policy ); - return policy; - } - // - - // - static HttpRequestCachePolicy^ CreateFreshAndAgePolicy( TimeSpan freshMinimum, TimeSpan ageMaximum ) - { - HttpRequestCachePolicy^ policy = gcnew HttpRequestCachePolicy( HttpCacheAgeControl::MaxAgeAndMinFresh, - ageMaximum, freshMinimum ); - Console::WriteLine( policy ); - return policy; - } - // - - // - static HttpRequestCachePolicy^ CreateFreshAndAgePolicy2( TimeSpan freshMinimum, TimeSpan ageMaximum, DateTime when ) - { - HttpRequestCachePolicy^ policy = - gcnew HttpRequestCachePolicy( HttpCacheAgeControl::MaxAgeAndMinFresh, - ageMaximum, freshMinimum, when ); - Console::WriteLine( policy ); - return policy; - - // For the following invocation: CreateFreshAndAgePolicy(new TimeSpan(5,0,0), new TimeSpan(10,0,0), ); - // the output is: - // Level:Automatic AgeControl:MinFreshAndMaxAge MinFresh:18000 MaxAge:36000 - } - // - - // - static WebResponse^ GetResponseUsingCacheDefault( Uri^ uri ) - { - // Set the default cache policy level for the "http:" scheme. - RequestCachePolicy^ policy = gcnew RequestCachePolicy; - - // Create the request. - WebRequest^ request = WebRequest::Create( uri ); - request->CachePolicy = policy; - WebResponse^ response = request->GetResponse(); - Console::WriteLine( L"Policy level is {0}.", policy->Level ); - Console::WriteLine( L"Is the response from the cache? {0}", response->IsFromCache ); - return response; - } - // - - // - static HttpRequestCachePolicy^ CreateCacheIfAvailablePolicy() - { - HttpRequestCachePolicy^ policy = gcnew HttpRequestCachePolicy( HttpRequestCacheLevel::CacheIfAvailable ); - Console::WriteLine( policy ); - return policy; - } - // - - // - static WebResponse^ GetResponseFromCache( Uri^ uri ) - { - RequestCachePolicy^ policy = gcnew RequestCachePolicy( RequestCacheLevel::CacheOnly ); - WebRequest^ request = WebRequest::Create( uri ); - request->CachePolicy = policy; - WebResponse^ response = request->GetResponse(); - Console::WriteLine( L"Policy level is {0}.", policy->Level ); - Console::WriteLine( L"Is the response from the cache? {0}", response->IsFromCache ); - return response; - } - // - - // - static WebResponse^ GetResponseFromServer( Uri^ uri ) - { - RequestCachePolicy^ policy = gcnew RequestCachePolicy( RequestCacheLevel::NoCacheNoStore ); - WebRequest^ request = WebRequest::Create( uri ); - request->CachePolicy = policy; - WebResponse^ response = request->GetResponse(); - Console::WriteLine( L"Policy is {0}.", policy ); - Console::WriteLine( L"Is the response from the cache? {0}", response->IsFromCache ); - return response; - } - // - - // - static WebResponse^ GetResponseFromServer2( Uri^ uri ) - { - RequestCachePolicy^ policy = gcnew RequestCachePolicy( RequestCacheLevel::NoCacheNoStore ); - WebRequest^ request = WebRequest::Create( uri ); - WebRequest::DefaultCachePolicy = policy; - WebResponse^ response = request->GetResponse(); - Console::WriteLine( L"Policy is {0}.", policy ); - Console::WriteLine( L"Is the response from the cache? {0}", response->IsFromCache ); - return response; - } - // - - void TestSimpleCache() - { - /* WebResponse response = GetResponseUsingDefaultCache (new Uri("http://www.example.com")); - DisplayResponseStream (response); - Console.WriteLine("hit enter for next test..."); Console.ReadLine(); - response = GetResponseNoCache (new Uri("http://www.example.com")); - DisplayResponseStream (response); - - DisplayPolicyDetails(CreateLastSyncPolicy(DateTime.Now)); - Console.WriteLine("hit enter for next test..."); Console.ReadLine(); - - DisplayPolicyDetails(CreateMinFreshPolicy(new TimeSpan(10,0,0))); - Console.WriteLine("hit enter for next test..."); Console.ReadLine(); - - DisplayPolicyDetails(CreateMaxStalePolicy(new TimeSpan(1,10,0))); - Console.WriteLine("hit enter for next test..."); Console.ReadLine(); - DisplayPolicyDetails(CreateMaxAgePolicy(new TimeSpan(10,0,0))); - Console.WriteLine("hit enter for next test..."); Console.ReadLine(); - - DisplayPolicyDetails(CreateDefaultPolicy()); - Console.WriteLine("hit enter for next test..."); Console.ReadLine(); - - DisplayPolicyDetails(CreateFreshAndAgePolicy(new TimeSpan(5,0,0), new TimeSpan(10,0,0))); - Console.WriteLine("hit enter for next test..."); Console.ReadLine(); - - DisplayPolicyDetails(CreateFreshAndAgePolicy2(new TimeSpan(5,0,0), new TimeSpan(10,0,0), DateTime.Now)); - Console.WriteLine("hit enter for next test..."); Console.ReadLine(); - - response = GetResponseUsingCacheDefault (new Uri("http://www.example.com")); - DisplayResponseStream (response); - Console.WriteLine("hit enter for next test..."); Console.ReadLine(); - - DisplayPolicyDetails(CreateCacheIfAvailablePolicy()); - - response = GetResponseFromCache (new Uri("http://www.example.com")); - DisplayResponseStream (response); - Console.WriteLine("hit enter for next test..."); Console.ReadLine(); - response = GetResponseFromServer (new Uri("http://www.example.com")); - DisplayResponseStream (response); - - Console.WriteLine("hit enter for next test..."); Console.ReadLine(); - */ - WebResponse^ response = GetResponseFromServer2( gcnew Uri( L"http://www.example.com" ) ); - DisplayResponseStream( response ); - Console::WriteLine( L"done." ); - } - - static void DisplayResponseStream( WebResponse^ response ) - { - Stream^ stream = response->GetResponseStream(); - while ( true ) - { - array^buffer = gcnew array(1024); - int read = stream->Read( buffer, 0, buffer->Length ); - if ( read == 0 ) - { - stream->Close(); - break; - } - else - { - Console::Write( Encoding::UTF8->GetString( buffer ) ); - } - } - - stream->Close(); - } - -}; - -void main() -{ - CacheExample^ ce = gcnew CacheExample; - ce->TestSimpleCache(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLSocketEnhancements/CPP/nclsocketenhancements.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLSocketEnhancements/CPP/nclsocketenhancements.cpp deleted file mode 100644 index 30bada0e6beba..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLSocketEnhancements/CPP/nclsocketenhancements.cpp +++ /dev/null @@ -1,728 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::Threading; - -/***************************** -commented out contents of snippets 1,2,8 becuase this is not legal cpp. -the use of jagged arrays is not supprted and these throw a compiler error. - -*******************************/ -// State object for reading client data asynchronously -private ref class StateObject -{ -public private: - - // Client socket. - Socket^ workSocket; - - // Size of receive buffer. - literal int BufferSize = 1024; - - // Receive buffer. - array^buffer; - - // Received data string. - StringBuilder^ sb; - -public: - StateObject() - { - workSocket = nullptr; - buffer = gcnew array(BufferSize); - sb = gcnew StringBuilder; - } - -}; - -public ref class Test -{ -public: - - // Incoming data from client. - static String^ data = nullptr; - -private: - - // ManualResetEvent instances signal completion. - static ManualResetEvent^ connectDone = gcnew ManualResetEvent( false ); - static ManualResetEvent^ sendDone = gcnew ManualResetEvent( false ); - static ManualResetEvent^ receiveDone = gcnew ManualResetEvent( false ); - static ManualResetEvent^ disconnectDone = gcnew ManualResetEvent( false ); - - // The response from the remote device. - static String^ response = String::Empty; - -public: - - // Thread signal. - static ManualResetEvent^ allDone = gcnew ManualResetEvent( false ); - static void Main() - { - array^args = Environment::GetCommandLineArgs(); - Console::WriteLine( "{0}", args ); - if ( args[ 1 ]->Equals( "as" ) ) - { - - // Start the asynchronous server. - Console::WriteLine( "the asychronous server" ); - AsynchronousServer(); - } - else - if ( args[ 1 ]->Equals( "ac" ) ) - { - - // Start the asynchronous client. - Console::WriteLine( "the asynchronous client" ); - AsynchronousClient(); - } - else - if ( args[ 1 ]->Equals( "ss" ) ) - { - - // Start the synchronous server. - Console::WriteLine( "the sychronous server" ); - SynchronousServer(); - } - else - if ( args[ 1 ]->Equals( "sc" ) ) - { - - // Start the synchronous client. - Console::WriteLine( "the synchronous client" ); - SynchronousClient(); - } - else - { - Console::WriteLine( "default" ); - } - } - - static void AsynchronousServer() - { - - // This server waits for a connection and then uses asychronous operations to - // accept the connection, get data from the connected client, - // echo that data back to the connected client. - // It then disconnects from the client and waits for another client. - Listen(); - - // ListenWithSocket(); - } - - static void Listen() - { - - // - // This server waits for a connection and then uses asynchronous operations to - // accept the connection with initial data sent from the client. - // Establish the local endpoint for the socket. - IPHostEntry^ ipHostInfo = Dns::GetHostEntry( Dns::GetHostName() ); - IPAddress^ ipAddress = ipHostInfo->AddressList[ 0 ]; - IPEndPoint^ localEndPoint = gcnew IPEndPoint( ipAddress,11000 ); - - // Create a TCP/IP socket. - Socket^ listener = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - - // Bind the socket to the local endpoint, and listen for incoming connections. - listener->Bind( localEndPoint ); - listener->Listen( 100 ); - for ( ; ; ) - { - - // Set the event to nonsignaled state. - allDone->Reset(); - - // Start an asynchronous socket to listen for connections and receive data from the client. - Console::WriteLine( "Waiting for a connection..." ); - - // Accept the connection and receive the first 10 bytes of data. - int receivedDataSize = 10; - listener->BeginAccept( receivedDataSize, gcnew AsyncCallback( AcceptReceiveCallback ), listener ); - - // Wait until a connection is made and processed before continuing. - allDone->WaitOne(); - - } - } - - static void AcceptReceiveCallback( IAsyncResult^ ar ) - { - // Get the socket that handles the client request. - Socket^ listener = dynamic_cast(ar->AsyncState); - - // End the operation and display the received data on the console. - array^Buffer; - int bytesTransferred; - Socket^ handler = listener->EndAccept( Buffer, bytesTransferred, ar ); - String^ stringTransferred = Encoding::ASCII->GetString( Buffer, 0, bytesTransferred ); - Console::WriteLine( stringTransferred ); - Console::WriteLine( "Size of data transferred is {0}", bytesTransferred ); - - // Create the state object for the asynchronous receive. - StateObject^ state = gcnew StateObject; - state->workSocket = handler; - handler->BeginReceive( state->buffer, 0, StateObject::BufferSize, static_cast(0), gcnew AsyncCallback( ReadCallback ), state ); - } - - - // - static void ListenWithSocket() - { - // - // This server waits for a connection and then uses asynchronous operations to - // accept the connection with initial data sent from the client. - // Establish the local endpoint for the socket. - IPHostEntry^ ipHostInfo = Dns::GetHostEntry( Dns::GetHostName() ); - IPAddress^ ipAddress = ipHostInfo->AddressList[ 0 ]; - IPEndPoint^ localEndPoint = gcnew IPEndPoint( ipAddress,11000 ); - - // Create a TCP/IP socket. - Socket^ listener = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - - // Bind the socket to the local endpoint, and listen for incoming connections. - listener->Bind( localEndPoint ); - listener->Listen( 100 ); - for ( ; ; ) - { - // Set the event to nonsignaled state. - allDone->Reset(); - - // Start an asynchronous socket to listen for connections and receive data from the client. - Console::WriteLine( "Waiting for a connection..." ); - - // Accept the connection and receive the first 10 bytes of data. - // BeginAccept() creates the accepted socket. - int receivedDataSize = 10; - listener->BeginAccept( nullptr, receivedDataSize, gcnew AsyncCallback( AcceptReceiveDataCallback ), listener ); - - // Wait until a connection is made and processed before continuing. - allDone->WaitOne(); - } - } - - static void AcceptReceiveDataCallback( IAsyncResult^ ar ) - { - // Get the socket that handles the client request. - Socket^ listener = dynamic_cast(ar->AsyncState); - - // End the operation and display the received data on the console. - array^Buffer; - int bytesTransferred; - Socket^ handler = listener->EndAccept( Buffer, bytesTransferred, ar ); - String^ stringTransferred = Encoding::ASCII->GetString( Buffer, 0, bytesTransferred ); - Console::WriteLine( stringTransferred ); - Console::WriteLine( "Size of data transferred is {0}", bytesTransferred ); - - // Create the state object for the asynchronous receive. - StateObject^ state = gcnew StateObject; - state->workSocket = handler; - handler->BeginReceive( state->buffer, 0, StateObject::BufferSize, static_cast(0), gcnew AsyncCallback( ReadCallback ), state ); - } - - // - static void ReadCallback( IAsyncResult^ ar ) - { - String^ content = String::Empty; - - // Retrieve the state object and the handler socket - // from the asynchronous state object. - StateObject^ state = dynamic_cast(ar->AsyncState); - Socket^ handler = state->workSocket; - - // Read data from the client socket. - int bytesRead = handler->EndReceive( ar ); - if ( bytesRead > 0 ) - { - // There might be more data, so store the data received so far. - state->sb->Append( Encoding::ASCII->GetString( state->buffer, 0, bytesRead ) ); - - // Check for end-of-file tag. If it is not there, read - // more data. - content = state->sb->ToString(); - if ( content->IndexOf( "" ) > -1 ) - { - // All the data has been read from the - // client. Display it on the console. - Console::WriteLine( "Read {0} bytes from socket. Data : {1}", content->Length, content ); - - // Echo the data back to the client. - Send( handler, content ); - } - else - { - // Not all data received. Get more. - handler->BeginReceive( state->buffer, 0, StateObject::BufferSize, static_cast(0), gcnew AsyncCallback( ReadCallback ), state ); - } - } - } - - -private: - static void Send( Socket^ handler, String^ data ) - { - // Convert the string data to byte data using ASCII encoding. - array^byteData = Encoding::ASCII->GetBytes( data ); - - // Begin sending the data to the remote device. - handler->BeginSend( byteData, 0, byteData->Length, static_cast(0), gcnew AsyncCallback( SendCallback ), handler ); - } - - static void SendCallback( IAsyncResult^ ar ) - { - // Retrieve the socket from the state object. - Socket^ handler = dynamic_cast(ar->AsyncState); - - // Complete sending the data to the remote device. - int bytesSent = handler->EndSend( ar ); - Console::WriteLine( "Sent {0} bytes to client.", bytesSent ); - handler->Shutdown( SocketShutdown::Both ); - handler->Close(); - - // Signal the main thread to continue. - allDone->Set(); - } - -public: - static void AsynchronousClient() - { - // The following methods set up a socket and demonstrate the use of a new Sockets method. - // Send multiple buffers to remote device. - // AsynchronousSendBuffers(); - // Send a file to the remote host. - // AsynchronousFileSend(); - // Send a file with pre and post buffers. - // AsynchronousFileSendWithBuffers(); - // Show use of Begin/EndDisconnect - ClientDisconnect(); - } - - -private: - static void ClientSendCallback( IAsyncResult^ ar ) - { - // Retrieve the socket from the state object. - Socket^ client = dynamic_cast(ar->AsyncState); - - // Complete sending the data to the remote device. - int bytesSent = client->EndSend( ar ); - - // Write to the console the number of bytes sent. - Console::WriteLine( "Sent {0} bytes to server.", bytesSent ); - - // Signal that all bytes have been sent. - sendDone->Set(); - } - - -public: - - // - static void AsynchronousFileSend() - { - // Send a file to a remote device. - // Establish the remote endpoint for the socket. - IPHostEntry^ ipHostInfo = Dns::GetHostEntry( Dns::GetHostName() ); - IPAddress^ ipAddress = ipHostInfo->AddressList[ 0 ]; - IPEndPoint^ remoteEP = gcnew IPEndPoint( ipAddress,11000 ); - - // Create a TCP/IP socket. - Socket^ client = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - - // Connect to the remote endpoint. - client->BeginConnect( remoteEP, gcnew AsyncCallback( ConnectCallback ), client ); - - // Wait for connect. - connectDone->WaitOne(); - - // There is a text file test.txt in the root directory. - String^ fileName = "C:\\test.txt"; - - // Send file fileName to the remote device. - Console::WriteLine( fileName ); - client->BeginSendFile( fileName, gcnew AsyncCallback( FileSendCallback ), client ); - - // Release the socket. - client->Shutdown( SocketShutdown::Both ); - client->Close(); - } - -private: - static void FileSendCallback( IAsyncResult^ ar ) - { - // Retrieve the socket from the state object. - Socket^ client = dynamic_cast(ar->AsyncState); - - // Complete sending the data to the remote device. - client->EndSendFile( ar ); - sendDone->Set(); - } - - // - - - // -public: - static void AsynchronousFileSendWithBuffers() - { - // Send a file asynchronously to the remote device. Send a buffer before the file and a buffer afterwards. - // Establish the remote endpoint for the socket. - IPHostEntry^ ipHostInfo = Dns::GetHostEntry( Dns::GetHostName() ); - IPAddress^ ipAddress = ipHostInfo->AddressList[ 0 ]; - IPEndPoint^ remoteEP = gcnew IPEndPoint( ipAddress,11000 ); - - // Create a TCP/IP socket. - Socket^ client = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - - // Connect to the remote endpoint. - client->BeginConnect( remoteEP, gcnew AsyncCallback( ConnectCallback ), client ); - - // Wait for connect. - connectDone->WaitOne(); - - // Send a file fileName to the remote device with preBuffer and postBuffer data. - // Create the preBuffer data. - String^ string1 = String::Format( "This is text data that precedes the file.{0}", Environment::NewLine ); - array^preBuf = Encoding::ASCII->GetBytes( string1 ); - - // Create the postBuffer data. - String^ string2 = String::Format( "This is text data that will follow the file.{0}", Environment::NewLine ); - array^postBuf = Encoding::ASCII->GetBytes( string2 ); - - // There is a file test.txt in the root directory. - String^ fileName = "C:\\test.txt"; - - //Send file fileName with buffers and default flags to the remote device. - Console::WriteLine( fileName ); - client->BeginSendFile( fileName, preBuf, postBuf, static_cast(0), gcnew AsyncCallback( AsynchronousFileSendCallback ), client ); - - // Release the socket. - client->Shutdown( SocketShutdown::Both ); - client->Close(); - } - - -private: - static void AsynchronousFileSendCallback( IAsyncResult^ ar ) - { - // Retrieve the socket from the state object. - Socket^ client = dynamic_cast(ar->AsyncState); - - // Complete sending the data to the remote device. - client->EndSendFile( ar ); - sendDone->Set(); - } - // - - static void ConnectCallback( IAsyncResult^ ar ) - { - // Retrieve the socket from the state object. - Socket^ client = dynamic_cast(ar->AsyncState); - - // Complete the connection. - client->EndConnect( ar ); - Console::WriteLine( "Socket connected to {0}", client->RemoteEndPoint ); - - // Signal that the connection has been made. - connectDone->Set(); - } - - static void Receive( Socket^ client ) - { - // Create the state object. - StateObject^ state = gcnew StateObject; - state->workSocket = client; - - // Begin receiving the data from the remote device. - client->BeginReceive( state->buffer, 0, StateObject::BufferSize, static_cast(0), gcnew AsyncCallback( ReceiveCallback ), state ); - } - - static void ReceiveCallback( IAsyncResult^ ar ) - { - // Retrieve the state object and the client socket - // from the asynchronous state object. - StateObject^ state = dynamic_cast(ar->AsyncState); - Socket^ client = state->workSocket; - - // Read data from the remote device. - int bytesRead = client->EndReceive( ar ); - if ( bytesRead > 0 ) - { - // There might be more data, so store the data received so far. - state->sb->Append( Encoding::ASCII->GetString( state->buffer, 0, bytesRead ) ); - - // Get the rest of the data. - client->BeginReceive( state->buffer, 0, StateObject::BufferSize, static_cast(0), gcnew AsyncCallback( ReceiveCallback ), state ); - } - else - { - // All the data has arrived; put it in response. - if ( state->sb->Length > 1 ) - { - response = state->sb->ToString(); - } - - // Signal that all bytes have been received. - receiveDone->Set(); - } - } - - -public: - static void ClientDisconnect() - { - // - // Establish the remote endpoint for the socket. - // For this example use local computer. - IPHostEntry^ ipHostInfo = Dns::GetHostEntry( Dns::GetHostName() ); - IPAddress^ ipAddress = ipHostInfo->AddressList[ 0 ]; - IPEndPoint^ remoteEP = gcnew IPEndPoint( ipAddress,11000 ); - - // Create a TCP/IP socket. - Socket^ client = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - - // Connect to the remote endpoint. - client->BeginConnect( remoteEP, gcnew AsyncCallback( ConnectCallback ), client ); - - // Wait for connect. - connectDone->WaitOne(); - - // Send some data to the remote device. - String^ data = "This is a string of data "; - array^buffer = Encoding::ASCII->GetBytes( data ); - client->BeginSend( buffer, 0, buffer->Length, static_cast(0), gcnew AsyncCallback( ClientSendCallback ), client ); - - // Wait for send done. - sendDone->WaitOne(); - - // Release the socket. - client->Shutdown( SocketShutdown::Both ); - client->BeginDisconnect( true, gcnew AsyncCallback( DisconnectCallback ), client ); - - // Wait for the disconnect to complete. - disconnectDone->WaitOne(); - if ( client->Connected ) - Console::WriteLine( "We're still connected" ); - else - Console::WriteLine( "We're disconnected" ); - } - -private: - static void DisconnectCallback( IAsyncResult^ ar ) - { - // Complete the disconnect request. - Socket^ client = dynamic_cast(ar->AsyncState); - client->EndDisconnect( ar ); - - // Signal that the disconnect is complete. - disconnectDone->Set(); - } - -public: - - // - static void SynchronousServer() - { - // Establish the local endpoint for the socket. - IPHostEntry^ ipHost = Dns::GetHostEntry( Dns::GetHostName() ); - IPAddress^ ipAddr = ipHost->AddressList[ 0 ]; - IPEndPoint^ ipEndPoint = gcnew IPEndPoint( ipAddr,11000 ); - - // For the purposes of this example, we will send and - // receive on the same machine. - // - Socket^ listener = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - - // Bind to the local endpoint and listen to the incoming sockets. - listener->Bind( ipEndPoint ); - listener->Listen( 10 ); - for ( ; ; ) - { - Console::WriteLine( "Waiting for a connection..." ); - Socket^ handler = listener->Accept(); - String^ data = nullptr; - - // A client is connecting. - for ( ; ; ) - { - array^bytes = gcnew array(1024); - int bytesReceived = handler->Receive( bytes ); - data = String::Concat( data, Encoding::ASCII->GetString( bytes, 0, bytesReceived ) ); - if ( data->IndexOf( "" ) > -1 ) - { - break; - } - } - - // All the data has been read from the client. - // Display it on the console. - Console::WriteLine( "Read {0} bytes from socket. Data : {1}", data->Length, data ); - - // Echo the data back to the client. - //Send(handler, content); - handler->Send( Encoding::ASCII->GetBytes( data ) ); - handler->Shutdown( SocketShutdown::Both ); - handler->Close(); - } - } - - static void SynchronousClient() - { - // The following methods set up a socket and demonstrate the use of a new Sockets method. - // Set the socket options - // SetSocketOptions(); - // Send multiple buffers to remote device. - // SendMultiBuffers(); - // Send multiple buffers with socket flags - // SendMultiBuffersWithFlags(); - // Send a file to the remote host. - // FileSend(); - // Send a file with pre and post buffers - // FileSendWithBuffers(); - // Show synchronous disconnect - SynchronousDisconnect(); - } - -private: - static void SetSocketOptions() - { - // - // Establish the local endpoint for the socket. - IPHostEntry^ ipHost = Dns::GetHostEntry( Dns::GetHostName() ); - IPAddress^ ipAddr = ipHost->AddressList[ 0 ]; - IPEndPoint^ ipEndPoint = gcnew IPEndPoint( ipAddr,11000 ); - - // Create a TCP socket. - Socket^ client = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - - // Connect the socket to the remote endpoint. - client->Connect( ipEndPoint ); - - // Set option that allows socket to close gracefully without lingering. - client->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::DontLinger, true ); - - // Set option that allows socket to receive out-of-band information in the data stream. - client->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::OutOfBandInline, true ); - - // - // Release the socket. - client->Shutdown( SocketShutdown::Both ); - client->Close(); - } - - static void FileSend() - { - // - // Establish the local endpoint for the socket. - IPHostEntry^ ipHost = Dns::GetHostEntry( Dns::GetHostName() ); - IPAddress^ ipAddr = ipHost->AddressList[ 0 ]; - IPEndPoint^ ipEndPoint = gcnew IPEndPoint( ipAddr,11000 ); - - // Create a TCP socket. - Socket^ client = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - - // Connect the socket to the remote endpoint. - client->Connect( ipEndPoint ); - - // There is a text file test.txt located in the root directory. - String^ fileName = "C:\\test.txt"; - - // Send file fileName to remote device - Console::WriteLine( "Sending {0} to the host.", fileName ); - client->SendFile( fileName ); - - // Release the socket. - client->Shutdown( SocketShutdown::Both ); - client->Close(); - // - } - - static void FileSendWithBuffers() - { - // - // Establish the local endpoint for the socket. - IPHostEntry^ ipHost = Dns::GetHostEntry( Dns::GetHostName() ); - IPAddress^ ipAddr = ipHost->AddressList[ 0 ]; - IPEndPoint^ ipEndPoint = gcnew IPEndPoint( ipAddr,11000 ); - - // Create a TCP socket. - Socket^ client = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - - // Connect the socket to the remote endpoint. - client->Connect( ipEndPoint ); - - // Send file fileName to the remote host with preBuffer and postBuffer data. - // There is a text file test.txt located in the root directory. - String^ fileName = "C:\\test.txt"; - - // Create the preBuffer data. - String^ string1 = String::Format( "This is text data that precedes the file.{0}", Environment::NewLine ); - array^preBuf = Encoding::ASCII->GetBytes( string1 ); - - // Create the postBuffer data. - String^ string2 = String::Format( "This is text data that will follow the file.{0}", Environment::NewLine ); - array^postBuf = Encoding::ASCII->GetBytes( string2 ); - - //Send file fileName with buffers and default flags to the remote device. - Console::WriteLine( "Sending {0} with buffers to the host.{1}", fileName, Environment::NewLine ); - client->SendFile( fileName, preBuf, postBuf, TransmitFileOptions::UseDefaultWorkerThread ); - - // Release the socket. - client->Shutdown( SocketShutdown::Both ); - client->Close(); - // - } - -public: - static void SynchronousDisconnect() - { - // - IPHostEntry^ ipHost = Dns::GetHostEntry( Dns::GetHostName() ); - IPAddress^ ipAddr = ipHost->AddressList[ 0 ]; - IPEndPoint^ ipEndPoint = gcnew IPEndPoint( ipAddr,11000 ); - Socket^ client = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - - // Connect the socket to the remote end point. - client->Connect( ipEndPoint ); - - // Send some data to the remote device. - String^ data = "This is a string of data "; - array^buffer = Encoding::ASCII->GetBytes( data ); - int bytesTransferred = client->Send( buffer ); - - // Write to the console the number of bytes transferred. - Console::WriteLine( "{0} bytes were sent.\n", bytesTransferred ); - - // Release the socket. - client->Shutdown( SocketShutdown::Both ); - client->Disconnect( true ); - if ( client->Connected ) - Console::WriteLine( "We're still connnected" ); - else - Console::WriteLine( "We're disconnected" ); - // - } -}; - -int main() -{ - Test::Main(); -} - -/* -The output from this example will vary depending on the value passed into Main -but will be similar to the following: - -Content length is 1542 -Content type is text/html; charset=utf-8 -Response stream received. - -... - - -*/ diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLSocketIoControl/CPP/iocontrolserver.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLSocketIoControl/CPP/iocontrolserver.cpp deleted file mode 100644 index 41bffbe3ab78c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLSocketIoControl/CPP/iocontrolserver.cpp +++ /dev/null @@ -1,68 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::Threading; - -// -// FIONREAD is also available as the "Available" property. -const int FIONREAD = 0x4004667F; - -void DisplayPendingByteCount( Socket^ s ) -{ - array^ outValue = BitConverter::GetBytes( 0 ); - - // Check how many bytes have been received. - s->IOControl( FIONREAD, nullptr, outValue ); - - UInt32 bytesAvailable = BitConverter::ToUInt32( outValue, 0 ); - Console::WriteLine( "server has {0} bytes pending. Available property says {1}.", - bytesAvailable, s->Available ); - - return; -} -// - -int main() -{ - IPHostEntry^ localHost = Dns::Resolve( Dns::GetHostName() ); - IPEndPoint^ endPoint = gcnew IPEndPoint( localHost->AddressList[ 0 ], 11000 ); - - // For the purposes of this example, we will send and - // receive on the same machine. - // - Socket^ s = gcnew Socket( AddressFamily::InterNetwork, - SocketType::Stream, - ProtocolType::Tcp ); - s->Bind( endPoint ); - - s->Listen( 1 ); - Console::WriteLine( "Waiting to receive messages from client..." ); - Socket^ client = s->Accept(); - - // Creates a byte buffer to receive the message. - array^ buffer = gcnew array(256); - String^ message; - - for ( ; ; ) - { - Thread::Sleep( 10000 ); - DisplayPendingByteCount( client ); - client->Receive( buffer ); - message = Encoding::UTF8->GetString( buffer ); - - // Displays the information received to the screen - Console::WriteLine( " Server received the following message : {0}", - message ); - - // Look for "" to end session. - if ( message->IndexOf( "" ) != -1 ) - { - break; - } - } - client->Close(); - s->Close(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLSocketIoControl1/CPP/iocontrolcode.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLSocketIoControl1/CPP/iocontrolcode.cpp deleted file mode 100644 index b3fabcf3081d6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLSocketIoControl1/CPP/iocontrolcode.cpp +++ /dev/null @@ -1,70 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::Threading; - -// -void DisplayPendingByteCount( Socket^ s ) -{ - array^ outValue = BitConverter::GetBytes( 0 ); - - // Check how many bytes have been received. - s->IOControl( IOControlCode::DataToRead, nullptr, outValue ); - - UInt32 bytesAvailable = BitConverter::ToUInt32( outValue, 0 ); - Console::Write( "server has {0} bytes pending,", - bytesAvailable ); - Console::WriteLine( "Available property says {1}.", - s->Available ); - return; -} -// - -int main() -{ - IPHostEntry^ localHost = Dns::Resolve( Dns::GetHostName() ); - IPEndPoint^ endPoint = gcnew IPEndPoint( - localHost->AddressList[ 0 ],11000 ); - - // For the purposes of this example, we will send and - // receive on the same machine. - // - Socket^ s = gcnew Socket( AddressFamily::InterNetwork, - SocketType::Stream, - ProtocolType::Tcp ); - - s->Bind( endPoint ); - - s->Listen( 1 ); - Console::WriteLine( - "Waiting to receive messages from client.." ); - Socket^ client = s->Accept(); - - // Creates a byte buffer to receive the message. - array^ buffer = gcnew array(256); - String^ message; - - for ( ; ; ) - { - Thread::Sleep( 10000 ); - DisplayPendingByteCount( client ); - client->Receive( buffer ); - message = Encoding::UTF8->GetString( buffer ); - - // Displays the information received to the screen - Console::WriteLine( - " Server received the following message: {0}", - message ); - - // Look for "" to end session. - if ( message->IndexOf( "" ) != -1 ) - { - break; - } - } - client->Close(); - s->Close(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLTcpClientSync/CPP/tcpclient.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLTcpClientSync/CPP/tcpclient.cpp deleted file mode 100644 index 3a204ecc032de..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLTcpClientSync/CPP/tcpclient.cpp +++ /dev/null @@ -1,36 +0,0 @@ - - -// -#using - -using namespace System; -using namespace System::Text; -using namespace System::Net; -using namespace System::Net::Sockets; -int main() -{ - - // Create a client that will connect to a - // server listening on the contoso1 computer - // at port 11000. - TcpClient^ tcpClient = gcnew TcpClient; - tcpClient->Connect( "contosoServer", 11000 ); - - // Get the stream used to read the message sent by the server. - NetworkStream^ networkStream = tcpClient->GetStream(); - - // Set a 10 millisecond timeout for reading. - networkStream->ReadTimeout = 10; - - // Read the server message into a byte buffer. - array^bytes = gcnew array(1024); - networkStream->Read( bytes, 0, 1024 ); - - //Convert the server's message into a string and display it. - String^ data = Encoding::UTF8->GetString( bytes ); - Console::WriteLine( "Server sent message: {0}", data ); - networkStream->Close(); - tcpClient->Close(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLUriEnhancements/CPP/nclurienhancements.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLUriEnhancements/CPP/nclurienhancements.cpp deleted file mode 100644 index bbdc6d6e2b6b3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLUriEnhancements/CPP/nclurienhancements.cpp +++ /dev/null @@ -1,150 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; -using namespace System::Threading; - -// TryCreate -void SampleTryCreate() -{ - // - // String to parse. - String^ addressString = "catalog/shownew.htm?date=today"; - - // Parse the string and create a new Uri instance, if possible. - Uri^ result; - if ( Uri::TryCreate( addressString, UriKind::RelativeOrAbsolute, result ) == true ) - { - // The call was successful. Write the URI address to the console. - Console::Write( result ); - - // Check whether new Uri instance is absolute or relative. - if ( result->IsAbsoluteUri ) - Console::WriteLine( " is an absolute Uri." ); - else - Console::WriteLine( " is a relative Uri." ); - } - else - { - // Let the user know that the call failed. - Console::WriteLine( "addressString could not be parsed as a URI address." ); - } - // -} - -// Constructor -void SampleConstructor() -{ - // - // Create an absolute Uri from a string. - String^ addressString1 = "http://www.contoso.com/"; - String^ addressString2 = "catalog/shownew.htm?date=today"; - Uri^ absoluteUri = gcnew Uri(addressString1); - - // Create a relative Uri from a string. allowRelative = true to allow for - // creating a relative Uri. - Uri^ relativeUri = gcnew Uri(addressString2); - - // Check whether the new Uri is absolute or relative. - if ( !relativeUri->IsAbsoluteUri ) - Console::WriteLine( "{0} is a relative Uri.", relativeUri ); - - // Create a new Uri from an absolute Uri and a relative Uri. - Uri^ combinedUri = gcnew Uri( absoluteUri,relativeUri ); - Console::WriteLine( combinedUri->AbsoluteUri ); - // -} - -// OriginalString -void SampleOriginalString() -{ - // - // Create a new Uri from a string address. - Uri^ uriAddress = gcnew Uri( "HTTP://www.ConToso.com:80//thick%20and%20thin.htm" ); - - // Write the new Uri to the console and note the difference in the two values. - // ToString() gives the canonical version. OriginalString gives the orginal - // string that was passed to the constructor. - // The following outputs "http://www.contoso.com/thick and thin.htm". - Console::WriteLine( uriAddress ); - - // The following outputs "HTTP://www.ConToso.com:80//thick%20and%20thin.htm". - Console::WriteLine( uriAddress->OriginalString ); - // -} - - -// DNSSafeHost -void SampleDNSSafeHost() -{ - // - // Create new Uri using a string address. - Uri^ address = gcnew Uri( "http://[fe80::200:39ff:fe36:1a2d%254]/temp/example.htm" ); - - // Make the address DNS safe. - // The following outputs "[fe80::200:39ff:fe36:1a2d]". - Console::WriteLine( address->Host ); - - // The following outputs "fe80::200:39ff:fe36:1a2d%254". - Console::WriteLine( address->DnsSafeHost ); - // -} - -// operator == and !== -void SampleOperatorEqual() -{ - // - // Create some Uris. - Uri^ address1 = gcnew Uri( "http://www.contoso.com/index.htm#search" ); - Uri^ address2 = gcnew Uri( "http://www.contoso.com/index.htm" ); - Uri^ address3 = gcnew Uri( "http://www.contoso.com/index.htm?date=today" ); - - // The first two are equal because the fragment is ignored. - if ( address1 == address2 ) - Console::WriteLine( "{0} is equal to {1}", address1, address2 ); - - // The second two are not equal. - if ( address2 != address3 ) - Console::WriteLine( "{0} is not equal to {1}", address2, address3 ); - // -} - -// IsBaseOf -void SampleIsBaseOf() -{ - // - // Create a base Uri. - Uri^ baseUri = gcnew Uri( "http://www.contoso.com/" ); - - // Create a new Uri from a string. - Uri^ uriAddress = gcnew Uri( "http://www.contoso.com/index.htm?date=today" ); - - // Determine whether BaseUri is a base of UriAddress. - if ( baseUri->IsBaseOf( uriAddress ) ) - Console::WriteLine( "{0} is the base of {1}", baseUri, uriAddress ); - // -} - -int main() -{ - // TryParse - SampleTryCreate(); - - // Constructor - SampleConstructor(); - - // OriginalString - SampleOriginalString(); - - // DNSSafeHost - SampleDNSSafeHost(); - - // operator == and !== - SampleOperatorEqual(); - - // IsBaseOf - SampleIsBaseOf(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLUriExamples/CPP/uriexamples.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLUriExamples/CPP/uriexamples.cpp deleted file mode 100644 index d92779f548dd1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLUriExamples/CPP/uriexamples.cpp +++ /dev/null @@ -1,271 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; -using namespace System::Threading; -using namespace System::Runtime::Serialization; - -namespace Example -{ - public ref class Test - { - public: - static void Main() - { - // Snippets 1 and 2 - HexConversions(); - - // snippet 7 - SampleToString(); - - // snippet 8 - SampleEquals(); - - // snippets 4, 5, and 6 - GetParts(); - - // snippet 3 - SampleMakeRelative(); - - // snippets 9 - 17 - SampleCheckSchemeName(); - - // snippets 18 - SampleUserInfo(); - } - - private: - static void SampleToString() - { - // - // Create a new Uri from a string address. - Uri^ uriAddress = gcnew Uri( "HTTP://www.Contoso.com:80/thick%20and%20thin.htm" ); - - // Write the new Uri to the console and note the difference in the two values. - // ToString() gives the canonical version. OriginalString gives the orginal - // string that was passed to the constructor. - // The following outputs "http://www.contoso.com/thick and thin.htm". - Console::WriteLine( uriAddress ); - - // The following outputs "HTTP://www.Contoso.com:80/thick%20and%20thin.htm". - Console::WriteLine( uriAddress->OriginalString ); - // - } - - static void SampleEquals() - { - // - // Create some Uris. - Uri^ address1 = gcnew Uri( "http://www.contoso.com/index.htm#search" ); - Uri^ address2 = gcnew Uri( "http://www.contoso.com/index.htm" ); - if ( address1->Equals( address2 ) ) - { - Console::WriteLine( "The two addresses are equal" ); - } - else - { - Console::WriteLine( "The two addresses are not equal" ); - } - // Will output "The two addresses are equal" - // - } - - static void GetParts() - { - // - // Create Uri - Uri^ uriAddress = gcnew Uri( "http://www.contoso.com/index.htm#search" ); - Console::WriteLine( uriAddress->Fragment ); - Console::WriteLine( "Uri {0} the default port ", uriAddress->IsDefaultPort ? (String^)"uses" : "does not use" ); - - Console::WriteLine( "The path of this Uri is {0}", uriAddress->GetLeftPart( UriPartial::Path ) ); - Console::WriteLine( "Hash code {0}", uriAddress->GetHashCode() ); - // The example displays the following output: - // #search - // Uri uses the default port - // The path of this Uri is http://www.contoso.com/index.htm - // Hash code -988419291 - // - - // - Uri^ uriAddress1 = gcnew Uri( "http://www.contoso.com/title/index.htm" ); - Console::WriteLine( "The parts are {0}, {1}, {2}", uriAddress1->Segments[ 0 ], uriAddress1->Segments[ 1 ], uriAddress1->Segments[ 2 ] ); - // - - // - Uri^ uriAddress2 = gcnew Uri( "file://server/filename.ext" ); - Console::WriteLine( uriAddress2->LocalPath ); - Console::WriteLine( "Uri {0} a UNC path", uriAddress2->IsUnc ? (String^)"is" : "is not" ); - Console::WriteLine( "Uri {0} a local host", uriAddress2->IsLoopback ? (String^)"is" : "is not" ); - Console::WriteLine( "Uri {0} a file", uriAddress2->IsFile ? (String^)"is" : "is not" ); - // The example displays the following output: - // \\server\filename.ext - // Uri is a UNC path - // Uri is not a local host - // Uri is a file - // - } - - static void HexConversions() - { - - // - char testChar = 'e'; - if ( Uri::IsHexDigit( testChar ) == true ) - { - Console::WriteLine( "'{0}' is the hexadecimal representation of {1}", - testChar, Uri::FromHex( testChar ) ); - } - else - { - Console::WriteLine( "'{0}' is not a hex character", testChar ); - } - - String^ returnString = Uri::HexEscape( testChar ); - Console::WriteLine( "The hexadecimal value of '{0}' is {1}", testChar, returnString ); - // - - // - String^ testString = "%75"; - int index = 0; - if ( Uri::IsHexEncoding( testString, index ) ) - { - Console::WriteLine( "The character is {0}", - Uri::HexUnescape( testString, index ) ); - } - else - { - Console::WriteLine( "The character is not hex encoded" ); - } - // - } - - // MakeRelative - static void SampleMakeRelative() - { - // - // Create a base Uri. - Uri^ address1 = gcnew Uri( "http://www.contoso.com/" ); - - // Create a new Uri from a string. - Uri^ address2 = gcnew Uri( "http://www.contoso.com/index.htm?date=today" ); - - // Determine the relative Uri. - Console::WriteLine( "The difference is {0}", address1->MakeRelativeUri( address2 ) ); - // - } - - //CheckSchemeName - static void SampleCheckSchemeName() - { - // - Uri^ address1 = gcnew Uri( "http://www.contoso.com/index.htm#search" ); - Console::WriteLine( "address 1 {0} a valid scheme name", - Uri::CheckSchemeName( address1->Scheme ) ? (String^)" has" : " does not have" ); - if ( address1->Scheme == Uri::UriSchemeHttp ) - { - Console::WriteLine( "Uri is HTTP type" ); - } - - Console::WriteLine( address1->HostNameType ); - // - - // - Uri^ address2 = gcnew Uri( "file://server/filename.ext" ); - if ( address2->Scheme == Uri::UriSchemeFile ) - { - Console::WriteLine( "Uri is a file" ); - } - // - - Console::WriteLine( address2->HostNameType ); - - // - Uri^ address3 = gcnew Uri( "mailto:user@contoso.com?subject=uri" ); - if ( address3->Scheme == Uri::UriSchemeMailto ) - { - Console::WriteLine( "Uri is an email address" ); - } - // - - // - Uri^ address4 = gcnew Uri( "news:123456@contoso.com" ); - if ( address4->Scheme == Uri::UriSchemeNews ) - { - Console::WriteLine( "Uri is an Internet news group" ); - } - // - - // - Uri^ address5 = gcnew Uri( "nntp://news.contoso.com/123456@contoso.com" ); - if ( address5->Scheme == Uri::UriSchemeNntp ) - { - Console::WriteLine( "Uri is nntp protocol" ); - } - // - - // - Uri^ address6 = gcnew Uri( "gopher://example.contoso.com/" ); - if ( address6->Scheme == Uri::UriSchemeGopher ) - { - Console::WriteLine( "Uri is Gopher protocol" ); - } - // - - // - Uri^ address7 = gcnew Uri( "ftp://contoso/files/testfile.txt" ); - if ( address7->Scheme == Uri::UriSchemeFtp ) - { - Console::WriteLine( "Uri is Ftp protocol" ); - } - // - - // - Uri^ address8 = gcnew Uri( "https://example.contoso.com" ); - if ( address8->Scheme == Uri::UriSchemeHttps ) - { - Console::WriteLine( "Uri is Https protocol." ); - } - // - - // - String^ address = "www.contoso.com"; - String^ uriString = String::Format( "{0}{1}{2}", - Uri::UriSchemeHttp, Uri::SchemeDelimiter, address ); - -#if OLDMETHOD - Uri^ result; - if ( Uri::TryParse( uriString, false, false, result ) == true ) - { - Console::WriteLine( "{0} is a valid Uri", result ); - } - else - { - Console::WriteLine( "Uri not created" ); - } -#endif - Uri ^result = gcnew Uri(uriString); - if (result->IsWellFormedOriginalString()) - Console::WriteLine("{0} is a well formed Uri", uriString); - else - Console::WriteLine("{0} is not a well formed Uri", uriString); - // - } - - static void SampleUserInfo() - { - // - Uri^ uriAddress = gcnew Uri( "http://user:password@www.contoso.com/index.htm " ); - Console::WriteLine( uriAddress->UserInfo ); - Console::WriteLine( "Fully Escaped {0}", - uriAddress->UserEscaped ? (String^)"yes" : "no" ); - // - } - }; -} - -int main() -{ - Example::Test::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLWebClientAsync/CPP/asyncmethods.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLWebClientAsync/CPP/asyncmethods.cpp deleted file mode 100644 index 74106f56e464e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLWebClientAsync/CPP/asyncmethods.cpp +++ /dev/null @@ -1,861 +0,0 @@ - - -// NCLWebClientAsync -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; -using namespace System::ComponentModel; - -// - static void UploadProgressCallback(Object^ sender, - UploadProgressChangedEventArgs^ e) - { - // Displays the operation identifier, and the transfer progress. - Console::WriteLine("{0} uploaded {1} of {2} bytes. {3} % complete...", - (String ^)e->UserState, - e->BytesSent, - e->TotalBytesToSend, - e->ProgressPercentage); - } - static void DownloadProgressCallback(Object^ sender, - DownloadProgressChangedEventArgs^ e) - { - // Displays the operation identifier, and the transfer progress. - Console::WriteLine("{0} downloaded {1} of {2} bytes. {3} % complete...", - (String ^)e->UserState, - e->BytesReceived, - e->TotalBytesToReceive, - e->ProgressPercentage); - } -// - -// -void UploadString( String^ address ) -{ - String^ data = "Time = 12:00am temperature = 50"; - WebClient^ client = gcnew WebClient; - - // Optionally specify an encoding for uploading and downloading strings. - client->Encoding = System::Text::Encoding::UTF8; - - // Upload the data. - String^ reply = client->UploadString( address, data ); - - // Disply the server's response. - Console::WriteLine( reply ); -} - - -// -// -void PostString( String^ address ) -{ - String^ data = "Time = 12:00am temperature = 50"; - String^ method = "POST"; - WebClient^ client = gcnew WebClient; - String^ reply = client->UploadString( address, method, data ); - Console::WriteLine( reply ); -} - - -// -void UploadFileCallback2( Object^ sender, UploadFileCompletedEventArgs^ e ); - -// -// Sample call: UploadFileInBackground3("http://www.contoso.com/fileUpload.aspx", "data.txt") -void UploadFileInBackground3( String^ address, String^ fileName ) -{ - - // - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - - client->UseDefaultCredentials = true; - - // - client->UploadFileCompleted += gcnew UploadFileCompletedEventHandler( UploadFileCallback2 ); - client->UploadFileAsync( uri, fileName ); - Console::WriteLine( "File upload started." ); -} - -// - -// -// Sample call: UploadFileInBackground2("http://www.contoso.com/fileUpload.aspx", "data.txt") -void UploadFileInBackground2( String^ address, String^ fileName ) -{ - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - - client->UploadFileCompleted += - gcnew UploadFileCompletedEventHandler (UploadFileCallback2); - - // Specify a progress notification handler. - client->UploadProgressChanged += - gcnew UploadProgressChangedEventHandler( UploadProgressCallback ); - client->UploadFileAsync( uri, "POST", fileName ); - Console::WriteLine( "File upload started." ); -} - - -// -// -void UploadFileCallback2( Object^ /*sender*/, UploadFileCompletedEventArgs^ e ) -{ - String^ reply = System::Text::Encoding::UTF8->GetString( e->Result ); - Console::WriteLine( reply ); -} - - -// -void UploadFileCallback( Object^ sender, UploadFileCompletedEventArgs^ e ); - -// -// Sample call: UploadFileInBackground("http://www.contoso.com/fileUpload.aspx", "data.txt") -void UploadFileInBackground( String^ address, String^ fileName ) -{ - System::Threading::AutoResetEvent^ waiter = gcnew System::Threading::AutoResetEvent( false ); - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - String^ method = "POST"; - - // Specify that UploadFileCallback method gets called - // when the file upload completes. - client->UploadFileCompleted += gcnew UploadFileCompletedEventHandler( UploadFileCallback ); - client->UploadFileAsync( uri, method, fileName, waiter ); - - // Block the main application thread. Real applications - // can perform other tasks while waiting for the upload to complete. - waiter->WaitOne(); - Console::WriteLine( "File upload is complete." ); -} - - -// -// -void UploadFileCallback( Object^ /*sender*/, UploadFileCompletedEventArgs^ e ) -{ - System::Threading::AutoResetEvent^ waiter = dynamic_cast(e->UserState); - ; - try - { - String^ reply = System::Text::Encoding::UTF8->GetString( e->Result ); - Console::WriteLine( reply ); - } - finally - { - - // If this thread throws an exception, make sure that - // you let the main application thread resume. - waiter->Set(); - } - -} - - -// -void UploadStringCallback( Object^ sender, UploadStringCompletedEventArgs^ e ); - -// -void UploadStringInBackground( String^ address ) -{ - System::Threading::AutoResetEvent^ waiter = gcnew System::Threading::AutoResetEvent( false ); - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - String^ data = "Time = 12:00am temperature = 50"; - String^ method = "POST"; - - client->UploadStringCompleted += gcnew UploadStringCompletedEventHandler( UploadStringCallback ); - client->UploadStringAsync( uri, method, data, waiter ); - - // Block the main application thread. Real applications - // can perform other tasks while waiting for the upload to complete. - waiter->WaitOne(); - Console::WriteLine( "String upload is complete." ); -} - - -// -// -void UploadStringCallback( Object^ /*sender*/, UploadStringCompletedEventArgs^ e ) -{ - System::Threading::AutoResetEvent^ waiter = dynamic_cast(e->UserState); - try - { - String^ reply = dynamic_cast(e->Result); - Console::WriteLine( reply ); - } - finally - { - - // If this thread throws an exception, make sure that - // you let the main application thread resume. - waiter->Set(); - } - -} - - -// -void OpenReadCallback( Object^ sender, OpenReadCompletedEventArgs^ e ); - -// -void OpenResourceForReading( String^ address ) -{ - System::Threading::AutoResetEvent^ waiter = gcnew System::Threading::AutoResetEvent( false ); - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - - client->OpenReadCompleted += gcnew OpenReadCompletedEventHandler( OpenReadCallback ); - client->OpenReadAsync( uri, waiter ); - - // Block the main application thread. Real applications - // can perform other tasks while waiting for the upload to complete. - waiter->WaitOne(); -} - - -// -// -void OpenReadCallback( Object^ /*sender*/, OpenReadCompletedEventArgs^ e ) -{ - System::Threading::AutoResetEvent^ waiter = dynamic_cast(e->UserState); - Stream^ reply = nullptr; - StreamReader^ s = nullptr; - try - { - reply = dynamic_cast(e->Result); - s = gcnew StreamReader( reply ); - Console::WriteLine( s->ReadToEnd() ); - } - finally - { - if ( s != nullptr ) - { - s->Close(); - } - if ( reply != nullptr ) - { - reply->Close(); - } - - // If this thread throws an exception, make sure that - // you let the main application thread resume. - waiter->Set(); - } - -} - - -// -void OpenWriteCallback( Object^ sender, OpenWriteCompletedEventArgs^ e ); - -// -void OpenResourceForWriting( String^ address ) -{ - System::Threading::AutoResetEvent^ waiter = gcnew System::Threading::AutoResetEvent( false ); - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - - // Specify that the OpenWriteCallback method gets called - // when the writeable stream is available. - client->OpenWriteCompleted += gcnew OpenWriteCompletedEventHandler( OpenWriteCallback ); - client->OpenWriteAsync( uri, "POST", waiter ); - - // Block the main application thread. Real applications - // can perform other tasks while waiting for the upload to complete. - waiter->WaitOne(); -} - - -// -// -void OpenWriteCallback( Object^ /*sender*/, OpenWriteCompletedEventArgs^ e ) -{ - System::Threading::AutoResetEvent^ waiter = dynamic_cast(e->UserState); - Stream^ body = nullptr; - StreamWriter^ s = nullptr; - try - { - body = dynamic_cast(e->Result); - s = gcnew StreamWriter( body ); - s->AutoFlush = true; - s->Write( "This is content data to be sent to the server." ); - } - finally - { - if ( s != nullptr ) - { - s->Close(); - } - if ( body != nullptr ) - { - body->Close(); - } - - // If this thread throws an exception, make sure that - // you let the main application thread resume. - waiter->Set(); - } - -} - - -// -void OpenWriteCallback2( Object^ sender, OpenWriteCompletedEventArgs^ e ); - -// -void OpenResourceForWriting2( String^ address ) -{ - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - - // Specify that the OpenWriteCallback method gets called - // when the writeable stream is available. - client->OpenWriteCompleted += gcnew OpenWriteCompletedEventHandler( OpenWriteCallback2 ); - client->OpenWriteAsync( uri, "POST" ); - - // Applications can perform other tasks - // while waiting for the upload to complete. -} - - -// -// -void OpenWriteCallback2( Object^ /*sender*/, OpenWriteCompletedEventArgs^ e ) -{ - Stream^ body = nullptr; - StreamWriter^ s = nullptr; - try - { - body = dynamic_cast(e->Result); - s = gcnew StreamWriter( body ); - s->AutoFlush = true; - s->Write( "This is content data to be sent to the server." ); - } - finally - { - if ( s != nullptr ) - { - s->Close(); - } - if ( body != nullptr ) - { - body->Close(); - } - } - -} - - -// -// -void OpenResourceForPosting( String^ address ) -{ - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - - // Specify that the OpenWriteCallback method gets called - // when the writeable stream is available. - client->OpenWriteCompleted += gcnew OpenWriteCompletedEventHandler( OpenWriteCallback2 ); - client->OpenWriteAsync( uri ); - - // Applications can perform other tasks - // while waiting for the upload to complete. -} - - -// -void DownloadFileCallback( Object^ sender, System::ComponentModel::AsyncCompletedEventArgs^ e ); - -// -// Sample call : DownLoadFileInBackground ("http://www.contoso.com/logs/January.txt"); -void DownLoadFileInBackground( String^ address ) -{ - System::Threading::AutoResetEvent^ waiter = gcnew System::Threading::AutoResetEvent( false ); - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - - // Specify that the DownloadFileCallback method gets called - // when the download completes. - client->DownloadFileCompleted += gcnew AsyncCompletedEventHandler( DownloadFileCallback ); - client->DownloadFileAsync( uri, "serverdata.txt", waiter ); - - // Block the main application thread. Real applications - // can perform other tasks while waiting for the download to complete. - waiter->WaitOne(); -} - - -// -// -void DownloadFileCallback( Object^ /*sender*/, System::ComponentModel::AsyncCompletedEventArgs^ e ) -{ - if ( e->Cancelled ) - { - Console::WriteLine( "File download cancelled." ); - } - - if ( e->Error != nullptr ) - { - Console::WriteLine( e->Error->ToString() ); - } - - System::Threading::AutoResetEvent^ waiter = dynamic_cast(e->UserState); - - // Let the main application thread resume. - waiter->Set(); -} - - -// -void DownloadFileCallback2( Object^ sender, System::ComponentModel::AsyncCompletedEventArgs^ e ); - -// -// Sample call : DownLoadFileInBackground2 ("http://www.contoso.com/logs/January.txt"); -void DownLoadFileInBackground2( String^ address ) -{ - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - - // Specify that the DownloadFileCallback method gets called - // when the download completes. - client->DownloadFileCompleted += gcnew AsyncCompletedEventHandler( DownloadFileCallback2 ); - - // Specify a progress notification handler. - client->DownloadProgressChanged += gcnew DownloadProgressChangedEventHandler( DownloadProgressCallback ); - client->DownloadFileAsync( uri, "serverdata.txt" ); -} - - -// -// -void DownloadFileCallback2( Object^ /*sender*/, System::ComponentModel::AsyncCompletedEventArgs^ e ) -{ - if ( e->Cancelled ) - { - Console::WriteLine( "File download cancelled." ); - } - - if ( e->Error != nullptr ) - { - Console::WriteLine( e->Error->ToString() ); - } -} - - -// -void DownloadDataCallback( Object^ sender, DownloadDataCompletedEventArgs^ e ); - -// -// Sample call : DownLoadDataInBackground ("http://www.contoso.com/GameScores.html"); -void DownloadDataInBackground( String^ address ) -{ - System::Threading::AutoResetEvent^ waiter = gcnew System::Threading::AutoResetEvent( false ); - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - - // Specify that the DownloadDataCallback method gets called - // when the download completes. - client->DownloadDataCompleted += gcnew DownloadDataCompletedEventHandler( DownloadDataCallback ); - client->DownloadDataAsync( uri, waiter ); - - // Block the main application thread. Real applications - // can perform other tasks while waiting for the download to complete. - waiter->WaitOne(); -} - - -// -// -void DownloadDataCallback( Object^ /*sender*/, DownloadDataCompletedEventArgs^ e ) -{ - System::Threading::AutoResetEvent^ waiter = dynamic_cast(e->UserState); - try - { - - // If the request was not canceled and did not throw - // an exception, display the resource. - if ( !e->Cancelled && e->Error == nullptr ) - { - array^data = dynamic_cast^>(e->Result); - String^ textData = System::Text::Encoding::UTF8->GetString( data ); - Console::WriteLine( textData ); - } - } - finally - { - - // Let the main application thread resume. - waiter->Set(); - } - -} - - -// -void DownloadDataCallback2( Object^ sender, DownloadDataCompletedEventArgs^ e ); - -// -// Sample call : DownloadDataInBackground2 ("http://www.contoso.com/GameScores.html"); -void DownloadDataInBackground2( String^ address ) -{ - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - - // Specify that the DownloadDataCallback2 method gets called - // when the download completes. - client->DownloadDataCompleted += gcnew DownloadDataCompletedEventHandler( DownloadDataCallback2 ); - client->DownloadDataAsync( uri ); -} - - -// -// -void DownloadDataCallback2( Object^ /*sender*/, DownloadDataCompletedEventArgs^ e ) -{ - - // If the request was not canceled and did not throw - // an exception, display the resource. - if ( !e->Cancelled && e->Error == nullptr ) - { - array^data = dynamic_cast^>(e->Result); - String^ textData = System::Text::Encoding::UTF8->GetString( data ); - Console::WriteLine( textData ); - } -} - - -// -// -void DownloadString( String^ address ) -{ - WebClient^ client = gcnew WebClient; - String^ reply = client->DownloadString( address ); - Console::WriteLine( reply ); -} - - -// -void DownloadStringCallback( Object^ sender, DownloadStringCompletedEventArgs^ e ); - -// -// Sample call : DownLoadStringInBackground ("http://www.contoso.com/GameScores.html"); -void DownloadStringInBackground( String^ address ) -{ - System::Threading::AutoResetEvent^ waiter = gcnew System::Threading::AutoResetEvent( false ); - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - - // Specify that the DownloadStringCallback method gets called - // when the download completes. - client->DownloadStringCompleted += gcnew DownloadStringCompletedEventHandler( DownloadStringCallback ); - client->DownloadStringAsync( uri, waiter ); - - // Block the main application thread. Real applications - // can perform other tasks while waiting for the download to complete. - waiter->WaitOne(); -} - - -// -// -void DownloadStringCallback( Object^ /*sender*/, DownloadStringCompletedEventArgs^ e ) -{ - System::Threading::AutoResetEvent^ waiter = dynamic_cast(e->UserState); - try - { - - // If the request was not canceled and did not throw - // an exception, display the resource. - if ( !e->Cancelled && e->Error == nullptr ) - { - String^ textString = dynamic_cast(e->Result); - Console::WriteLine( textString ); - } - } - finally - { - - // Let the main application thread resume. - waiter->Set(); - } - -} - - -// -void DownloadStringCallback2( Object^ sender, DownloadStringCompletedEventArgs^ e ); - -// -// Sample call : DownloadStringInBackground2 ("http://www.contoso.com/GameScores.html"); -void DownloadStringInBackground2( String^ address ) -{ - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - - // Specify that the DownloadStringCallback2 method gets called - // when the download completes. - client->DownloadStringCompleted += gcnew DownloadStringCompletedEventHandler( DownloadStringCallback2 ); - client->DownloadStringAsync( uri ); -} - - -// -// -void DownloadStringCallback2( Object^ /*sender*/, DownloadStringCompletedEventArgs^ e ) -{ - - // If the request was not canceled and did not throw - // an exception, display the resource. - if ( !e->Cancelled && e->Error == nullptr ) - { - String^ textString = dynamic_cast(e->Result); - Console::WriteLine( textString ); - } -} - - -// -void OpenReadCallback2( Object^ sender, OpenReadCompletedEventArgs^ e ); - -// -void OpenResourceForReading2( String^ address ) -{ - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - - client->OpenReadCompleted += gcnew OpenReadCompletedEventHandler( OpenReadCallback2 ); - client->OpenReadAsync( uri ); -} - - -// -// -void OpenReadCallback2( Object^ /*sender*/, OpenReadCompletedEventArgs^ e ) -{ - Stream^ reply = nullptr; - StreamReader^ s = nullptr; - try - { - reply = dynamic_cast(e->Result); - s = gcnew StreamReader( reply ); - Console::WriteLine( s->ReadToEnd() ); - } - finally - { - if ( s != nullptr ) - { - s->Close(); - } - if ( reply != nullptr ) - { - reply->Close(); - } - } - -} - - -// -void UploadDataCallback( Object^ sender, UploadDataCompletedEventArgs^ e ); - -// -void UploadDataInBackground( String^ address ) -{ - System::Threading::AutoResetEvent^ waiter = gcnew System::Threading::AutoResetEvent( false ); - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - String^ text = "Time = 12:00am temperature = 50"; - array^data = System::Text::Encoding::UTF8->GetBytes( text ); - String^ method = "POST"; - - client->UploadDataCompleted += gcnew UploadDataCompletedEventHandler( UploadDataCallback ); - client->UploadDataAsync( uri, method, data, waiter ); - - // Block the main application thread. Real applications - // can perform other tasks while waiting for the upload to complete. - waiter->WaitOne(); - Console::WriteLine( "Data upload is complete." ); -} - - -// -// -void UploadDataCallback( Object^ /*sender*/, UploadDataCompletedEventArgs^ e ) -{ - System::Threading::AutoResetEvent^ waiter = dynamic_cast(e->UserState); - try - { - array^data = dynamic_cast^>(e->Result); - String^ reply = System::Text::Encoding::UTF8->GetString( data ); - Console::WriteLine( reply ); - } - finally - { - - // If this thread throws an exception, make sure that - // you let the main application thread resume. - waiter->Set(); - } - -} - - -// -void UploadDataCallback2( Object^ sender, UploadDataCompletedEventArgs^ e ); - -// -void UploadDataInBackground2( String^ address ) -{ - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - String^ text = "Time = 12:00am temperature = 50"; - array^data = System::Text::Encoding::UTF8->GetBytes( text ); - String^ method = "POST"; - - client->UploadDataCompleted += gcnew UploadDataCompletedEventHandler( UploadDataCallback2 ); - client->UploadDataAsync( uri, method, data ); -} - - -// -// -void UploadDataCallback2( Object^ /*sender*/, UploadDataCompletedEventArgs^ e ) -{ - array^data = dynamic_cast^>(e->Result); - String^ reply = System::Text::Encoding::UTF8->GetString( data ); - Console::WriteLine( reply ); -} - - -// -void UploadDataCallback3( Object^ sender, UploadDataCompletedEventArgs^ e ); - -// -void UploadDataInBackground3( String^ address ) -{ - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - String^ text = "Time = 12:00am temperature = 50"; - array^data = System::Text::Encoding::UTF8->GetBytes( text ); - - client->UploadDataCompleted += gcnew UploadDataCompletedEventHandler( UploadDataCallback3 ); - client->UploadDataAsync( uri, data ); -} - - -// -// -void UploadDataCallback3( Object^ /*sender*/, UploadDataCompletedEventArgs^ e ) -{ - array^data = dynamic_cast^>(e->Result); - String^ reply = System::Text::Encoding::UTF8->GetString( data ); - Console::WriteLine( reply ); -} - - -// -void UploadStringCallback2( Object^ sender, UploadStringCompletedEventArgs^ e ); - -// -void UploadStringInBackground2( String^ address ) -{ - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - String^ data = "Time = 12:00am temperature = 50"; - - client->UploadStringCompleted += gcnew UploadStringCompletedEventHandler( UploadStringCallback2 ); - client->UploadStringAsync( uri, data ); -} - - -// -// -void UploadStringCallback2( Object^ /*sender*/, UploadStringCompletedEventArgs^ e ) -{ - String^ reply = dynamic_cast(e->Result); - Console::WriteLine( reply ); -} - - -// -// -void UploadStringInBackground3( String^ address ) -{ - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - String^ data = "Time = 12:00am temperature = 50"; - String^ method = "POST"; - - client->UploadStringCompleted += gcnew UploadStringCompletedEventHandler( UploadStringCallback2 ); - client->UploadStringAsync( uri, method, data ); -} - - -// -// -// Sample call : DownLoadFileWithProgressNotify ("http://www.contoso.com/logs/January.txt"); -void DownLoadFileWithProgressNotify( String^ address ) -{ - WebClient^ client = gcnew WebClient; - Uri ^uri = gcnew Uri(address); - - // Specify that the DownloadFileCallback method gets called - // when the download completes. - client->DownloadFileCompleted += gcnew AsyncCompletedEventHandler( DownloadFileCallback2 ); - - // Specify a progress notification handler. - client->DownloadProgressChanged += gcnew DownloadProgressChangedEventHandler( DownloadProgressCallback ); - - // The user token, shown here as ID 1234, is used to uniquely - // identify notification events raised for this data transfer operation. - client->DownloadFileAsync( uri, "serverdata.txt", "ID 1234" ); -} - - -// -// nothing below this line appears in the docs. -//[System.Security.Permissions.FileIOPermissionAttribute(System.Security.Permissions.SecurityAction.Deny, Write=@"c:\whidbeycode\ncl.xml")] -int main() -{ - - // OpenResourceForReading ("http://google.com"); - //OpenResourceForReading2("http://google.com"); - // System.Threading.Thread.Sleep (10000); - UploadDataInBackground2( "http://sharriso1/test/postaccepter.aspx" ); - - // DownloadString ("http://google.com"); - /* - UploadDataInBackground ("http://sharriso1/test/postaccepter.aspx"); - - System.Threading.Thread.Sleep (1000); - UploadDataInBackground3 ("http://sharriso1/test/postaccepter.aspx"); - System.Threading.Thread.Sleep (1000); - - UploadStringInBackground ("http://sharriso1/test/postaccepter.aspx"); - UploadStringInBackground2 ("http://sharriso1/test/postaccepter.aspx"); - System.Threading.Thread.Sleep (1000); - UploadStringInBackground3 ("http://sharriso1/test/postaccepter.aspx"); - System.Threading.Thread.Sleep (1000); - */ - // OpenResourceForWriting2("http://sharriso1/test/postaccepter.aspx"); - // DownloadDataInBackground ("http://google.com"); - //System.Threading.Thread.Sleep (10000); - // DownloadString ("http://google.com"); - // DownloadStringInBackground ("http://google.com"); - // DownloadStringInBackground2 ("http://google.com"); - // System.Threading.Thread.Sleep (1000); - // DownLoadFileInBackground2 ("http://sharriso1/test/uploadedFiles/onesandtwos.txt"); - DownLoadFileWithProgressNotify( "http://sharriso1/test/uploadedFiles/onesandtwos.txt" ); - - //System.Threading.Thread.Sleep (10000); - // UploadString (); - // UploadStringInBackground ("http://sharriso1/test/fileUploadercs.aspx"); - // UploadFileInBackground2 ("http://sharriso1/test/fileUploadercs.aspx", "onesandtwos.txt"); - // UploadFileInBackground3 ("http://sharriso1/test/fileUploadercs.aspx", "onesandtwos.txt"); - System::Threading::Thread::Sleep( 1000 ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLWebClientUserAgent/CPP/useragent.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLWebClientUserAgent/CPP/useragent.cpp deleted file mode 100644 index 6dff2981ec87d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLWebClientUserAgent/CPP/useragent.cpp +++ /dev/null @@ -1,30 +0,0 @@ - - -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args == nullptr || args->Length == 1 ) - { - throw gcnew ApplicationException( "Specify the URI of the resource to retrieve." ); - } - - WebClient^ client = gcnew WebClient; - - // Add a user agent header in case the - // requested URI contains a query. - client->Headers->Add( "user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)" ); - Stream^ data = client->OpenRead( args[ 1 ] ); - StreamReader^ reader = gcnew StreamReader( data ); - String^ s = reader->ReadToEnd(); - Console::WriteLine( s ); - data->Close(); - reader->Close(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLWebProxy/CPP/nclwebproxy.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLWebProxy/CPP/nclwebproxy.cpp deleted file mode 100644 index bbfd7a0afd978..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLWebProxy/CPP/nclwebproxy.cpp +++ /dev/null @@ -1,186 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; - -// -WebProxy^ CreateProxy() -{ - return gcnew WebProxy; -} -// - -// -WebProxy^ CreateProxyWithExampleAddress() -{ - return gcnew WebProxy( gcnew Uri( "http://contoso" ) ); -} -// - -// -WebProxy^ CreateProxyWithExampleAddress( bool bypassLocal ) -{ - return gcnew WebProxy( gcnew Uri( "http://contoso" ), bypassLocal ); -} -// - -// -WebProxy^ CreateProxyWithBypassList( bool bypassLocal ) -{ - // Do not use the proxy server for Contoso.com URIs. - array^ bypassList = {";*.Contoso.com"}; - return gcnew WebProxy( gcnew Uri( "http://contoso" ), - bypassLocal, - bypassList ); -} -// - -// -WebProxy^ CreateProxyWithHost() -{ - return gcnew WebProxy( "http://contoso" ); -} -// - -// -WebProxy^ CreateProxyWithHostAndPort() -{ - return gcnew WebProxy( "contoso",80 ); -} -// - -// -WebProxy^ CreateProxyWithHostAddress( bool bypassLocal ) -{ - WebProxy^ proxy = gcnew WebProxy( "http://contoso",bypassLocal ); - Console::WriteLine( "Bypass proxy for local URIs?: {0}", - proxy->BypassProxyOnLocal ); - return proxy; -} -// - -// -WebProxy^ CreateProxyWithHostAndBypassList( bool bypassLocal ) -{ - // Do not use the proxy server for Contoso.com URIs. - array^ bypassList = {";*.Contoso.com"}; - return gcnew WebProxy( "http://contoso", - bypassLocal, - bypassList ); -} -// - -// -WebProxy^ CreateProxyWithCredentials( bool bypassLocal ) -{ - // Do not use the proxy server for Contoso.com URIs. - array^ bypassList = {";*.Contoso.com"}; - return gcnew WebProxy( "http://contoso", - bypassLocal, - bypassList, - CredentialCache::DefaultCredentials ); -} -// - -// -void DisplayDefaultProxy() -{ - WebProxy^ proxy = WebProxy::GetDefaultProxy(); - - Console::WriteLine( "Address: {0}", proxy->Address ); - - Console::WriteLine( "Bypass on local: {0}", - proxy->BypassProxyOnLocal ); - int count = proxy->BypassList->Length; - if ( count == 0 ) - { - Console::WriteLine( "The bypass list is empty." ); - return; - } - array^ bypass = proxy->BypassList; - Console::WriteLine( "The bypass list contents:" ); - - for ( int i = 0; i < count; i++ ) - { - Console::WriteLine( bypass[ i ] ); - } -} -// - -// -void CheckDefaultProxyForRequest( Uri^ resource ) -{ - WebProxy^ proxy = (WebProxy^)( WebProxy::GetDefaultProxy() ); - - // See what proxy is used for resource. - Uri^ resourceProxy = proxy->GetProxy( resource ); - - // Test to see whether a proxy was selected. - if ( resourceProxy == resource ) - { - Console::WriteLine( "No proxy for {0}", resource ); - } - else - { - Console::WriteLine( "Proxy for {0} is {1}", resource, - resourceProxy ); - } -} -// - -// -WebProxy^ CreateProxyAndCheckBypass( bool bypassLocal ) -{ - // Do not use the proxy server for Contoso.com URIs. - array^ bypassList = {";*.Contoso.com"}; - WebProxy^ proxy = gcnew WebProxy( "http://contoso", - bypassLocal, - bypassList ); - - // Test the bypass list. - if ( !proxy->IsBypassed( gcnew Uri( "http://www.Contoso.com" ) ) ) - { - Console::WriteLine( "Bypass not working!" ); - return nullptr; - } - else - { - Console::WriteLine( "Bypass is working." ); - return proxy; - } -} -// - -// -WebProxy^ CreateProxyWithCredentials2( bool bypassLocal ) -{ - - // Do not use the proxy server for Contoso.com URIs. - array^ bypassList = {";*.Contoso.com"}; - return gcnew WebProxy( gcnew Uri( "http://contoso" ), - bypassLocal, - bypassList, - CredentialCache::DefaultCredentials ); -} -// - -int main() -{ - Uri^ resource = gcnew Uri( "http://www.example.com" ); - - /* - CreateProxy(); - CreateProxyWithExampleAddress(); - CreateProxyWithExampleAddress(true); - CreateProxyWithBypassList(true); - CreateProxyWithHost(); - CreateProxyWithHostAndPort(); - CreateProxyWithHostAddress(true); - CreateProxyWithHostAndBypassList(true); - CreateProxyWithCredentials(true); - - DisplayDefaultProxy(); - */ - // CreateProxyAndCheckBypass(false); - CreateProxyWithCredentials2( false ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCLWebRequestSimple/CPP/webrequestget.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCLWebRequestSimple/CPP/webrequestget.cpp deleted file mode 100644 index 51c732b40054e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCLWebRequestSimple/CPP/webrequestget.cpp +++ /dev/null @@ -1,45 +0,0 @@ - - -// -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; -int main() -{ - - // - // Create a request for the URL. - WebRequest^ request = WebRequest::Create( "http://www.contoso.com/default.html" ); - - // If required by the server, set the credentials. - request->Credentials = CredentialCache::DefaultCredentials; - - // Get the response. - HttpWebResponse^ response = dynamic_cast(request->GetResponse()); - - // - // Display the status. - Console::WriteLine( response->StatusDescription ); - - // Get the stream containing content returned by the server. - Stream^ dataStream = response->GetResponseStream(); - - // Open the stream using a StreamReader for easy access. - StreamReader^ reader = gcnew StreamReader( dataStream ); - - // Read the content. - String^ responseFromServer = reader->ReadToEnd(); - - // Display the content. - Console::WriteLine( responseFromServer ); - - // Cleanup the streams and the response. - reader->Close(); - dataStream->Close(); - response->Close(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NCL_Credential.Cache.Add_SMTP/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NCL_Credential.Cache.Add_SMTP/CPP/source.cpp deleted file mode 100644 index bdb99bf4675a3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NCL_Credential.Cache.Add_SMTP/CPP/source.cpp +++ /dev/null @@ -1,40 +0,0 @@ -//The following sample initializes a CredentialCache with multiple security credentials -//and later uses NTLM credentials with SmtpClient - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Mail; - -void main() -{ -// - SmtpClient^ client = gcnew SmtpClient("ContosoMail", 45); - MailAddress^ from = gcnew MailAddress("sender@SenderMailServerName.com", "Sender Name"); - MailAddress^ to = gcnew MailAddress("recepient@RecepientMailServerName.com", "Recepient Name"); - MailMessage^ message = gcnew MailMessage(from, to); - - message->Body = "This is a test email message sent by an application. "; - message->Subject = "Test Email using Credentials"; - - NetworkCredential^ myCreds = gcnew NetworkCredential("username", "password", "domain"); - CredentialCache^ myCredentialCache = gcnew CredentialCache(); - try - { - myCredentialCache->Add("ContoscoMail", 35, "Basic", myCreds); - myCredentialCache->Add("ContoscoMail", 45, "NTLM", myCreds); - - client->Credentials = myCredentialCache->GetCredential("ContosoMail", 45, "NTLM"); - client->Send(message); - Console::WriteLine("Goodbye."); - } - catch(Exception^ e) - { - Console::WriteLine("Exception is raised. "); - Console::WriteLine("Message: {0} ",e->Message); - } -// - -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclCodeGroup/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/NclCodeGroup/cpp/makefile deleted file mode 100644 index b09411db679e7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclCodeGroup/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -NclGodeGroup.exe : sample.cpp - cl /W4 /clr:pure /FeNclCodeGroup.exe sample.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclCodeGroup/cpp/sample.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclCodeGroup/cpp/sample.cpp deleted file mode 100644 index 4f475ac7f01fb..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclCodeGroup/cpp/sample.cpp +++ /dev/null @@ -1,167 +0,0 @@ -#using - -using namespace System; -using namespace System::Security::Policy; - -static void DisplayConnectionAccessRules(NetCodeGroup^ group); -// - - -static CodeConnectAccess^ CreateFtpAndDefaultPortAccess() -{ - return gcnew CodeConnectAccess(Uri::UriSchemeFtp, - CodeConnectAccess::DefaultPort); -} -// -// - - -static CodeConnectAccess^ CreateHttpAndOriginPortAccess() -{ - return gcnew CodeConnectAccess(Uri::UriSchemeHttp, - CodeConnectAccess::OriginPort); -} -// -// - -static CodeConnectAccess^ CreateAnySchemeOriginPortAccess() -{ - return CodeConnectAccess::CreateAnySchemeAccess - (CodeConnectAccess::OriginPort); -} -// -// - -static void SetNetCodeGroupAccess() -{ - String^ userPolicyLevel = "User"; - // Locate the User policy level. - PolicyLevel^ level = nullptr; - System::Collections::IEnumerator^ ph = - System::Security::SecurityManager::PolicyHierarchy(); - while(ph->MoveNext()) - { - level = (PolicyLevel^)ph->Current; - if (level->Label == userPolicyLevel) - { - break; - } - } - if (level->Label != userPolicyLevel) - throw gcnew ApplicationException("Could not find User policy level."); - // - - IMembershipCondition^ membership = - gcnew UrlMembershipCondition("http://www.contoso.com/*"); - NetCodeGroup^ codeGroup = gcnew NetCodeGroup(membership); - // Delete default settings. - codeGroup->ResetConnectAccess(); - // Create an object that represents access to the FTP scheme and - // default port. - CodeConnectAccess^ CodeAccessFtp = - gcnew CodeConnectAccess(Uri::UriSchemeFtp, - CodeConnectAccess::DefaultPort); - // Create an object that represents access to the HTTPS scheme - // and default port. - CodeConnectAccess^ CodeAccessHttps = - gcnew CodeConnectAccess(Uri::UriSchemeHttps, - CodeConnectAccess::DefaultPort); - // Create an object that represents access to the origin - // scheme and port. - CodeConnectAccess^ CodeAccessOrigin = - CodeConnectAccess::CreateOriginSchemeAccess - (CodeConnectAccess::OriginPort); - // Add connection access objects to the NetCodeGroup object. - codeGroup->AddConnectAccess(Uri::UriSchemeHttp, CodeAccessFtp); - codeGroup->AddConnectAccess(Uri::UriSchemeHttp, CodeAccessHttps); - codeGroup->AddConnectAccess(Uri::UriSchemeHttp, CodeAccessOrigin); - // - // Provide name and description information for caspol.exe tool. - codeGroup->Name = "ContosoHttpCodeGroup"; - codeGroup->Description = "Code originating from contoso.com can" + - " connect back using the FTP or HTTPS."; - // Add the code group to the User policy's root node. - level->RootCodeGroup->AddChild(codeGroup); - // Save the changes to the policy level. - System::Security::SecurityManager::SavePolicy(); -} -// -// - -static void DisplayProperties (CodeConnectAccess^ access) -{ - Console::WriteLine("Scheme:{0} Port: {1}", - access->Scheme, access->Port); -} -// -// - -static void DisplayFields () -{ - Console::WriteLine("Origin scheme value:{0} AnyScheme value: {1}", - CodeConnectAccess::OriginScheme, CodeConnectAccess::AnyScheme); -} -// - - -static void CreateNetCodeGroup() -{ - IMembershipCondition^ membership = - gcnew UrlMembershipCondition("http://www.contoso.com/*"); - NetCodeGroup^ codeGroup = gcnew NetCodeGroup(membership); - - // Display default settings. - DisplayConnectionAccessRules(codeGroup); - // Delete default settings. - codeGroup->ResetConnectAccess(); - // Create an object that represents access to the ftp scheme and - // default port. - CodeConnectAccess^ CodeAccessFtp = - gcnew CodeConnectAccess(Uri::UriSchemeFtp, - CodeConnectAccess::DefaultPort); - // Create an object that represents access to the HTTPS scheme - // and default port. - CodeConnectAccess^ CodeAccessHttps = - gcnew CodeConnectAccess(Uri::UriSchemeHttps, - CodeConnectAccess::DefaultPort); - // Create an object that represents access to the origin scheme - // and port. - CodeConnectAccess^ CodeAccessOrigin = - CodeConnectAccess::CreateOriginSchemeAccess - (CodeConnectAccess::OriginPort); - - codeGroup->AddConnectAccess(Uri::UriSchemeHttp, CodeAccessFtp); - codeGroup->AddConnectAccess(Uri::UriSchemeHttp, CodeAccessHttps); - codeGroup->AddConnectAccess(Uri::UriSchemeHttp, CodeAccessOrigin); - Console::WriteLine("New NetCodeGroup settings:"); - DisplayConnectionAccessRules(codeGroup); -} -// - -static void DisplayConnectionAccessRules(NetCodeGroup^ group) -{ - array^ rules = - group->GetConnectAccessRules(); - for each (System::Collections::DictionaryEntry^ o in rules) - { - String^ key = (String^)(o->Key); - array^ values = (array^)(o->Value); - Console::WriteLine("Origin scheme: {0}", key); - for each (CodeConnectAccess^ c in values) - { - Console::WriteLine("Scheme {0} Port: {1}", c->Scheme, c->Port); - } - Console::WriteLine("__________________________"); - } -} -// - -int main() -{ - DisplayProperties(CreateFtpAndDefaultPortAccess()); - DisplayFields(); - DisplayProperties(CreateHttpAndOriginPortAccess()); - DisplayProperties(CreateAnySchemeOriginPortAccess()); - SetNetCodeGroupAccess(); - CreateNetCodeGroup(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclMailASync/cpp/mailasync.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclMailASync/cpp/mailasync.cpp deleted file mode 100644 index 29feeb6784ad0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclMailASync/cpp/mailasync.cpp +++ /dev/null @@ -1,93 +0,0 @@ -//NclMailASync - -// -#using -using namespace System; -using namespace System::Net; -using namespace System::Net::Mail; -using namespace System::Net::Mime; -using namespace System::Threading; -using namespace System::ComponentModel; - -static bool mailSent; - -static void SendCompletedCallback(Object^ sender, AsyncCompletedEventArgs^ e) -{ - // Get the unique identifier for this asynchronous - // operation. - String^ token = (String^) e->UserState; - - if (e->Cancelled) - { - Console::WriteLine("[{0}] Send canceled.", token); - } - if (e->Error != nullptr) - { - Console::WriteLine("[{0}] {1}", token, - e->Error->ToString()); - } else - { - Console::WriteLine("Message sent."); - } - mailSent = true; -} - -int main(array^ args) -{ - if (args->Length > 1) - { - // Command-line argument must be the SMTP host. - SmtpClient^ client = gcnew SmtpClient(args[1]); - // Specify the email sender. - // - // Create a mailing address that includes a UTF8 - // character in the display name. - MailAddress^ from = gcnew MailAddress("jane@contoso.com", - "Jane " + (wchar_t)0xD8 + " Clayton", - System::Text::Encoding::UTF8); - // - // Set destinations for the email message. - MailAddress^ to = gcnew MailAddress("ben@contoso.com"); - // Specify the message content. - // - MailMessage^ message = gcnew MailMessage(from, to); - message->Body = "This is a test email message sent" + - " by an application. "; - // Include some non-ASCII characters in body and - // subject. - String^ someArrows = gcnew String(gcnew array{L'\u2190', - L'\u2191', L'\u2192', L'\u2193'}); - message->Body += Environment::NewLine + someArrows; - message->BodyEncoding = System::Text::Encoding::UTF8; - message->Subject = "test message 1" + someArrows; - message->SubjectEncoding = System::Text::Encoding::UTF8; - // - // Set the method that is called back when the send - // operation ends. - client->SendCompleted += gcnew - SendCompletedEventHandler(SendCompletedCallback); - // The userState can be any object that allows your - // callback method to identify this send operation. - // For this example, the userToken is a string constant. - String^ userState = "test message1"; - client->SendAsync(message, userState); - Console::WriteLine("Sending message... press c to" + - " cancel mail. Press any other key to exit."); - String^ answer = Console::ReadLine(); - // If the user canceled the send, and mail hasn't been - // sent yet,then cancel the pending operation. - if (answer->ToLower()->StartsWith("c") && mailSent == false) - { - client->SendAsyncCancel(); - } - // Clean up. - delete message; - client = nullptr; - Console::WriteLine("Goodbye."); - } - else - { - Console::WriteLine("Please give SMTP server name!"); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclMailASync/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/NclMailASync/cpp/makefile deleted file mode 100644 index 2cd48a3137294..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclMailASync/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -NclMailASync.exe : mailasync.cpp - cl /W4 /clr:pure /FeNclMailASync.exe mailasync.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclMailPerms/CPP/mailpermissions.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclMailPerms/CPP/mailpermissions.cpp deleted file mode 100644 index 9e6468dcd8f82..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclMailPerms/CPP/mailpermissions.cpp +++ /dev/null @@ -1,98 +0,0 @@ - -// NCLMailPerms -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Mail; -using namespace System::Net::Mime; -using namespace System::Security::Permissions; - -namespace SmtpPermissionsExamples -{ - public ref class TestSmtpPermissions - { - public: - // - static SmtpPermission^ CreateConnectPermission() - { - SmtpPermission^ connectAccess = - gcnew SmtpPermission(SmtpAccess::Connect); - Console::WriteLine("Access? {0}", connectAccess->Access); - return connectAccess; - } - // - - // - static SmtpPermission^ CreateUnrestrictedPermission() - { - SmtpPermission^ allAccess = - gcnew SmtpPermission(PermissionState::Unrestricted); - Console::WriteLine("Is unrestricted? {0}", - allAccess->IsUnrestricted()); - return allAccess; - } - // - - // - static SmtpPermission^ CreatePermissionCopy(SmtpPermission^ p) - { - SmtpPermission^ copy = (SmtpPermission^) p->Copy(); - return copy; - } - // - - // - static SmtpPermission^ CreateUnrestrictedPermission2() - { - SmtpPermission^ allAccess = gcnew SmtpPermission(true); - Console::WriteLine("Is unrestricted? {0}", - allAccess->IsUnrestricted()); - return allAccess; - } - // - - // - static SmtpPermission^ GiveFullAccess( - SmtpPermission^ permission) - { - permission->AddPermission(SmtpAccess::Connect); - return permission; - } - // - - // - static SmtpPermission^ IntersectionWithFull( - SmtpPermission^ permission) - { - SmtpPermission^ allAccess = - gcnew SmtpPermission(PermissionState::Unrestricted); - return (SmtpPermission^) permission->Intersect(allAccess); - } - // - - // - static bool CheckSubSet( - SmtpPermission^ permission) - { - SmtpPermission^ allAccess = - gcnew SmtpPermission(PermissionState::Unrestricted); - return permission->IsSubsetOf(allAccess); - } - // - - // - static SmtpPermission^ UnionWithFull( - SmtpPermission^ permission) - { - SmtpPermission^ allAccess = - gcnew SmtpPermission(PermissionState::Unrestricted); - return (SmtpPermission^) permission->Union(allAccess); - } - // - }; -}; - -int main() -{ -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclNegoAsyncServer/CPP/NclNegoAsyncServer.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclNegoAsyncServer/CPP/NclNegoAsyncServer.cpp deleted file mode 100644 index 6f24d42284f1f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclNegoAsyncServer/CPP/NclNegoAsyncServer.cpp +++ /dev/null @@ -1,239 +0,0 @@ - -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Security; -using namespace System::Net::Sockets; -using namespace System::Security::Authentication; -using namespace System::Security::Principal; -using namespace System::Text; -using namespace System::IO; -using namespace System::Threading; - -// ClientState is the AsyncState object. -private ref class ClientState -{ -private: - AuthenticatedStream^ authStream; - TcpClient^ client; - array^buffer; - StringBuilder^ message; - ManualResetEvent^ waiter; - -internal: - ClientState( AuthenticatedStream^ a, TcpClient^ theClient ) - { - authStream = a; - client = theClient; - message = nullptr; - buffer = gcnew array(2048); - waiter = gcnew ManualResetEvent( false ); - } - -internal: - property TcpClient^ Client - { - TcpClient^ get() - { - return client; - } - } - - property AuthenticatedStream^ AuthStream - { - AuthenticatedStream^ get() - { - return authStream; - } - } - - property array^ Buffer - { - array^ get() - { - return buffer; - } - - } - - property StringBuilder^ Message - { - StringBuilder^ get() - { - if ( message == nullptr ) - message = gcnew StringBuilder; - - return message; - } - - } - - property ManualResetEvent^ Waiter - { - ManualResetEvent^ get() - { - return waiter; - } - - } - -}; - -public ref class AsynchronousAuthenticatingTcpListener -{ -public: - int Main() - { - - // Create an IPv4 TCP/IP socket. - TcpListener^ listener = gcnew TcpListener( IPAddress::Any,11000 ); - - // Listen for incoming connections. - listener->Start(); - while ( true ) - { - TcpClient^ clientRequest = nullptr; - - // Application blocks while waiting for an incoming connection. - // Type CNTL-C to terminate the server. - clientRequest = listener->AcceptTcpClient(); - Console::WriteLine( L"Client connected." ); - - // A client has connected. - try - { - AuthenticateClient( clientRequest ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e ); - continue; - } - - } - } - - - // - static void AuthenticateClient( TcpClient^ clientRequest ) - { - NetworkStream^ stream = clientRequest->GetStream(); - - // Create the NegotiateStream. - NegotiateStream^ authStream = gcnew NegotiateStream( stream,false ); - - // Save the current client and NegotiateStream instance - // in a ClientState object. - ClientState^ cState = gcnew ClientState( authStream,clientRequest ); - - // Listen for the client authentication request. - authStream->BeginAuthenticateAsServer( gcnew AsyncCallback( EndAuthenticateCallback ), cState ); - - // Wait until the authentication completes. - cState->Waiter->WaitOne(); - cState->Waiter->Reset(); - authStream->BeginRead( cState->Buffer, 0, cState->Buffer->Length, gcnew AsyncCallback( EndReadCallback ), cState ); - cState->Waiter->WaitOne(); - - // Finished with the current client. - authStream->Close(); - clientRequest->Close(); - } - - - // - // The following method is invoked by the - // BeginServerAuthenticate callback delegate. - // - static void EndAuthenticateCallback( IAsyncResult^ ar ) - { - - // Get the saved data. - ClientState^ cState = dynamic_cast(ar->AsyncState); - TcpClient^ clientRequest = cState->Client; - NegotiateStream^ authStream = dynamic_cast(cState->AuthStream); - Console::WriteLine( L"Ending authentication." ); - - // Any exceptions that occurred during authentication are - // thrown by the EndServerAuthenticate method. - try - { - - // This call blocks until the authentication is complete. - authStream->EndAuthenticateAsServer( ar ); - } - catch ( AuthenticationException^ e ) - { - Console::WriteLine( e ); - Console::WriteLine( L"Authentication failed - closing connection." ); - cState->Waiter->Set(); - return; - } - catch ( Exception^ e ) - { - Console::WriteLine( e ); - Console::WriteLine( L"Closing connection." ); - cState->Waiter->Set(); - return; - } - - - // Display properties of the authenticated client. - IIdentity^ id = authStream->RemoteIdentity; - Console::WriteLine( L"{0} was authenticated using {1}.", id->Name, id->AuthenticationType ); - cState->Waiter->Set(); - } - - - // - // - static void EndReadCallback( IAsyncResult^ ar ) - { - - // Get the saved data. - ClientState^ cState = dynamic_cast(ar->AsyncState); - TcpClient^ clientRequest = cState->Client; - NegotiateStream^ authStream = dynamic_cast(cState->AuthStream); - - // Get the buffer that stores the message sent by the client. - int bytes = -1; - - // Read the client message. - try - { - bytes = authStream->EndRead( ar ); - cState->Message->Append( Encoding::UTF8->GetChars( cState->Buffer, 0, bytes ) ); - if ( bytes != 0 ) - { - authStream->BeginRead( cState->Buffer, 0, cState->Buffer->Length, gcnew AsyncCallback( EndReadCallback ), cState ); - return; - } - } - catch ( Exception^ e ) - { - - // A real application should do something - // useful here, such as logging the failure. - Console::WriteLine( L"Client message exception:" ); - Console::WriteLine( e ); - cState->Waiter->Set(); - return; - } - - IIdentity^ id = authStream->RemoteIdentity; - Console::WriteLine( L"{0} says {1}", id->Name, cState->Message ); - cState->Waiter->Set(); - } - - // -}; - -void main() -{ - AsynchronousAuthenticatingTcpListener^ aatl = gcnew AsynchronousAuthenticatingTcpListener; - aatl->Main(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclNegoSyncClient/CPP/NclNegoSyncClient.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclNegoSyncClient/CPP/NclNegoSyncClient.cpp deleted file mode 100644 index 1a0a913e1d9c4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclNegoSyncClient/CPP/NclNegoSyncClient.cpp +++ /dev/null @@ -1,107 +0,0 @@ - -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Security; -using namespace System::Net::Sockets; -using namespace System::Security::Principal; - -// -static void DisplayStreamProperties( NegotiateStream^ stream ) -{ - Console::WriteLine( L"Can read: {0}", stream->CanRead ); - Console::WriteLine( L"Can write: {0}", stream->CanWrite ); - Console::WriteLine( L"Can seek: {0}", stream->CanSeek ); - try - { - - // If the underlying stream supports it, display the length. - Console::WriteLine( L"Length: {0}", stream->Length ); - } - catch ( NotSupportedException^ ) - { - Console::WriteLine( L"Cannot get the length of the underlying stream." ); - } - - if ( stream->CanTimeout ) - { - Console::WriteLine( L"Read time-out: {0}", stream->ReadTimeout ); - Console::WriteLine( L"Write time-out: {0}", stream->WriteTimeout ); - } -} - - -// -// -static void DisplayAuthenticationProperties( NegotiateStream^ stream ) -{ - Console::WriteLine( L"IsAuthenticated: {0}", stream->IsAuthenticated ); - Console::WriteLine( L"IsMutuallyAuthenticated: {0}", stream->IsMutuallyAuthenticated ); - Console::WriteLine( L"IsEncrypted: {0}", stream->IsEncrypted ); - Console::WriteLine( L"IsSigned: {0}", stream->IsSigned ); - Console::WriteLine( L"ImpersonationLevel: {0}", stream->ImpersonationLevel ); - Console::WriteLine( L"IsServer: {0}", stream->IsServer ); -} - - -// -// -int main() -{ - - // - // Establish the remote endpoint for the socket. - // For this example, use the local machine. - IPHostEntry^ ipHostInfo = Dns::GetHostEntry( Dns::GetHostName() ); - IPAddress^ ipAddress = ipHostInfo->AddressList[ 0 ]; - - // Client and server use port 11000. - IPEndPoint^ remoteEP = gcnew IPEndPoint( ipAddress,11000 ); - - // Create a TCP/IP socket. - TcpClient^ client = gcnew TcpClient; - - // Connect the socket to the remote endpoint. - client->Connect( remoteEP ); - Console::WriteLine( L"Client connected to {0}.", remoteEP ); - - // Ensure the client does not close when there is - // still data to be sent to the server. - client->LingerState = (gcnew LingerOption( true,0 )); - - // Request authentication. - NetworkStream^ clientStream = client->GetStream(); - NegotiateStream^ authStream = gcnew NegotiateStream( clientStream ); - - // Request authentication for the client only (no mutual authentication). - // Authenicate using the client's default credetials. - // Permit the server to impersonate the client to access resources on the server only. - // Request that data be transmitted using encryption and data signing. - authStream->AuthenticateAsClient( dynamic_cast(CredentialCache::DefaultCredentials), - L"", - ProtectionLevel::EncryptAndSign, - TokenImpersonationLevel::Impersonation ); - - // - DisplayAuthenticationProperties( authStream ); - DisplayStreamProperties( authStream ); - if ( authStream->CanWrite ) - { - - // Encode the test data into a byte array. - array^message = System::Text::Encoding::UTF8->GetBytes( L"Hello from the client." ); - authStream->Write( message, 0, message->Length ); - authStream->Flush(); - Console::WriteLine( L"Sent {0} bytes.", message->Length ); - } - - - // Close the client connection. - authStream->Close(); - Console::WriteLine( L"Client closed." ); -} - -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclNegoSyncServer/CPP/NclNegoSyncServer.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclNegoSyncServer/CPP/NclNegoSyncServer.cpp deleted file mode 100644 index b02ceda8bc7dd..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclNegoSyncServer/CPP/NclNegoSyncServer.cpp +++ /dev/null @@ -1,73 +0,0 @@ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Security; -using namespace System::Net::Sockets; -using namespace System::Security::Principal; -using namespace System::Text; -using namespace System::IO; -using namespace System::Threading; - -// -static void AuthenticateClient( TcpClient^ clientRequest ) -{ - NetworkStream^ stream = clientRequest->GetStream(); - - // Create the NegotiateStream. - NegotiateStream^ authStream = gcnew NegotiateStream( stream,false ); - - // Perform the server side of the authentication. - authStream->AuthenticateAsServer(); - - // Display properties of the authenticated client. - IIdentity^ id = authStream->RemoteIdentity; - Console::WriteLine( L"{0} was authenticated using {1}.", id->Name, id->AuthenticationType ); - - // Read a message from the client. - array^buffer = gcnew array(2048); - int charLength = authStream->Read( buffer, 0, buffer->Length ); - String^ messageData = gcnew String( Encoding::UTF8->GetChars( buffer, 0, buffer->Length ) ); - Console::WriteLine( L"READ {0}", messageData ); - - // Finished with the current client. - authStream->Close(); - - // Close the client connection. - clientRequest->Close(); -} - - -// -int main() -{ - - // Create an IPv4 TCP/IP socket. - TcpListener^ listener = gcnew TcpListener( IPAddress::Any,11000 ); - - // Listen for incoming connections. - listener->Start(); - while ( true ) - { - TcpClient^ clientRequest = nullptr; - - // Application blocks while waiting for an incoming connection. - // Type CNTL-C to terminate the server. - clientRequest = listener->AcceptTcpClient(); - - // A client has connected. - try - { - AuthenticateClient( clientRequest ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e ); - continue; - } - - Console::WriteLine( L"Client connected." ); - } -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclNegoasyncClient/CPP/NclNegoasyncClient.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclNegoasyncClient/CPP/NclNegoasyncClient.cpp deleted file mode 100644 index 8a961ac9aff45..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclNegoasyncClient/CPP/NclNegoasyncClient.cpp +++ /dev/null @@ -1,128 +0,0 @@ - -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Security; -using namespace System::Net::Sockets; -using namespace System::Text; - -// -// The following class displays the properties of an authenticatedStream. -public ref class AuthenticatedStreamReporter -{ -public: - static void DisplayProperties( AuthenticatedStream^ stream ) - { - Console::WriteLine( L"IsAuthenticated: {0}", stream->IsAuthenticated ); - Console::WriteLine( L"IsMutuallyAuthenticated: {0}", stream->IsMutuallyAuthenticated ); - Console::WriteLine( L"IsEncrypted: {0}", stream->IsEncrypted ); - Console::WriteLine( L"IsSigned: {0}", stream->IsSigned ); - Console::WriteLine( L"IsServer: {0}", stream->IsServer ); - } - -}; - - -// -public ref class ASynchronousAuthenticatingTcpClient -{ -private: - static TcpClient^ client = nullptr; - -public: - void Main() - { - - // - // - // Establish the remote endpoint for the socket. - // For this example, use the local machine. - IPHostEntry^ ipHostInfo = Dns::GetHostEntry( Dns::GetHostName() ); - IPAddress^ ipAddress = ipHostInfo->AddressList[ 0 ]; - - // Client and server use port 11000. - IPEndPoint^ remoteEP = gcnew IPEndPoint( ipAddress,11000 ); - - // Create a TCP/IP socket. - client = gcnew TcpClient; - - // Connect the socket to the remote endpoint. - client->Connect( remoteEP ); - Console::WriteLine( L"Client connected to {0}.", remoteEP ); - - // Ensure the client does not close when there is - // still data to be sent to the server. - client->LingerState = (gcnew LingerOption( true,0 )); - - // - // Request authentication. - NetworkStream^ clientStream = client->GetStream(); - NegotiateStream^ authStream = gcnew NegotiateStream( clientStream,false ); - - // - // Pass the NegotiateStream as the AsyncState object - // so that it is available to the callback delegate. - IAsyncResult^ ar = authStream->BeginAuthenticateAsClient( gcnew AsyncCallback( EndAuthenticateCallback ), authStream ); - - // - Console::WriteLine( L"Client waiting for authentication..." ); - - // Wait until the result is available. - ar->AsyncWaitHandle->WaitOne(); - - // Display the properties of the authenticated stream. - AuthenticatedStreamReporter::DisplayProperties( authStream ); - - // Send a message to the server. - // Encode the test data into a byte array. - array^message = Encoding::UTF8->GetBytes( L"Hello from the client." ); - ar = authStream->BeginWrite( message, 0, message->Length, gcnew AsyncCallback( EndWriteCallback ), authStream ); - - // - ar->AsyncWaitHandle->WaitOne(); - Console::WriteLine( L"Sent {0} bytes.", message->Length ); - - // Close the client connection. - authStream->Close(); - Console::WriteLine( L"Client closed." ); - } - - - // - // The following method is called when the authentication completes. - static void EndAuthenticateCallback( IAsyncResult^ ar ) - { - Console::WriteLine( L"Client ending authentication..." ); - NegotiateStream^ authStream = dynamic_cast(ar->AsyncState); - - // End the asynchronous operation. - authStream->EndAuthenticateAsClient( ar ); - - // Console.WriteLine("AllowedImpersonation: {0}", authStream.AllowedImpersonation); - } - - - // - // - // The following method is called when the write operation completes. - static void EndWriteCallback( IAsyncResult^ ar ) - { - Console::WriteLine( L"Client ending write operation..." ); - NegotiateStream^ authStream = dynamic_cast(ar->AsyncState); - - // End the asynchronous operation. - authStream->EndWrite( ar ); - } - - // -}; - -void main() -{ - ASynchronousAuthenticatingTcpClient^ aatc = gcnew ASynchronousAuthenticatingTcpClient; - aatc->Main(); -} -// - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclNetAddressChanged1/CPP/changed.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclNetAddressChanged1/CPP/changed.cpp deleted file mode 100644 index ee93819179c6e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclNetAddressChanged1/CPP/changed.cpp +++ /dev/null @@ -1,27 +0,0 @@ - - -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::NetworkInformation; -void AddressChangedCallback( Object^ /*sender*/, EventArgs^ /*e*/ ) -{ - array^adapters = NetworkInterface::GetAllNetworkInterfaces(); - System::Collections::IEnumerator^ myEnum = adapters->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - NetworkInterface^ n = safe_cast(myEnum->Current); - Console::WriteLine( " {0} is {1}", n->Name, n->OperationalStatus ); - } -} - -int main() -{ - NetworkChange::NetworkAddressChanged += gcnew NetworkAddressChangedEventHandler( AddressChangedCallback ); - Console::WriteLine( "Listening for address changes. Press any key to exit." ); - Console::ReadLine(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclNetworkInfoPerms/CPP/NclNetworkInfoPerms.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclNetworkInfoPerms/CPP/NclNetworkInfoPerms.cpp deleted file mode 100644 index c38764723e020..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclNetworkInfoPerms/CPP/NclNetworkInfoPerms.cpp +++ /dev/null @@ -1,48 +0,0 @@ - -// NclNetworkInfoPerms -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::NetworkInformation; -static void CreatePermission() -{ - - // - // - // - // - System::Net::NetworkInformation::NetworkInformationPermission^ unrestricted = gcnew System::Net::NetworkInformation::NetworkInformationPermission( System::Security::Permissions::PermissionState::Unrestricted ); - - // - Console::WriteLine( L"Is unrestricted? {0}", unrestricted->IsUnrestricted() ); - - // - // - // - System::Net::NetworkInformation::NetworkInformationPermission^ read = gcnew System::Net::NetworkInformation::NetworkInformationPermission( System::Net::NetworkInformation::NetworkInformationAccess::Read ); - - // - System::Net::NetworkInformation::NetworkInformationPermission^ copyPermission = dynamic_cast(read->Copy()); - - // - System::Net::NetworkInformation::NetworkInformationPermission^ unionPermission = dynamic_cast(read->Union( unrestricted )); - Console::WriteLine( L"Is subset?{0}", read->IsSubsetOf( unionPermission ) ); - - // - System::Net::NetworkInformation::NetworkInformationPermission^ intersectPermission = dynamic_cast(read->Intersect( unrestricted )); - - // - // - System::Net::NetworkInformation::NetworkInformationPermission^ permission = gcnew System::Net::NetworkInformation::NetworkInformationPermission( System::Security::Permissions::PermissionState::None ); - permission->AddPermission( System::Net::NetworkInformation::NetworkInformationAccess::Read ); - Console::WriteLine( L"Access is {0}", permission->Access ); - - // -} - -int main() -{ - CreatePermission(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclPingAsync/CPP/asyncping.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclPingAsync/CPP/asyncping.cpp deleted file mode 100644 index 813df811c2122..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclPingAsync/CPP/asyncping.cpp +++ /dev/null @@ -1,115 +0,0 @@ - - -//NCLPingAsync -// -#using - -using namespace System; -using namespace System::Text; -using namespace System::Net; -using namespace System::Net::NetworkInformation; -using namespace System::ComponentModel; -using namespace System::Threading; -void PingCompletedCallback( Object^ sender, PingCompletedEventArgs^ e ); -void DisplayReply( PingReply^ reply ); -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length == 1 ) - throw gcnew ArgumentException( "Ping needs a host or IP Address." ); - - String^ who = args[ 1 ]; - AutoResetEvent^ waiter = gcnew AutoResetEvent( false ); - - // - Ping ^ pingSender = gcnew Ping; - - // When the PingCompleted event is raised, - // the PingCompletedCallback method is called. - pingSender->PingCompleted += gcnew PingCompletedEventHandler( PingCompletedCallback ); - - // - // Create a buffer of 32 bytes of data to be transmitted. - String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - array^buffer = Encoding::ASCII->GetBytes( data ); - - // Wait 12 seconds for a reply. - int timeout = 12000; - - // - // Set options for transmission: - // The data can go through 64 gateways or routers - // before it is destroyed, and the data packet - // cannot be fragmented. - PingOptions ^ options = gcnew PingOptions( 64,true ); - Console::WriteLine( "Time to live: {0}", options->Ttl ); - Console::WriteLine( "Don't fragment: {0}", options->DontFragment ); - - // - // Send the ping asynchronously. - // Use the waiter as the user token. - // When the callback completes, it can wake up this thread. - pingSender->SendAsync( who, timeout, buffer, options, waiter ); - - // Prevent this example application from ending. - // A real application should do something useful - // when possible. - waiter->WaitOne(); - Console::WriteLine( "Ping example completed." ); -} - - -// -void PingCompletedCallback( Object^ /*sender*/, PingCompletedEventArgs^ e ) -{ - - // If the operation was canceled, display a message to the user. - if ( e->Cancelled ) - { - Console::WriteLine( "Ping canceled." ); - - // Let the main thread resume. - // UserToken is the AutoResetEvent object that the main thread - // is waiting for. - (dynamic_cast(e->UserState))->Set(); - } - - - // If an error occurred, display the exception to the user. - if ( e->Error != nullptr ) - { - Console::WriteLine( "Ping failed:" ); - Console::WriteLine( e->Error->ToString() ); - - // Let the main thread resume. - (dynamic_cast(e->UserState))->Set(); - } - - PingReply ^ reply = e->Reply; - DisplayReply( reply ); - - // Let the main thread resume. - (dynamic_cast(e->UserState))->Set(); -} - - -// -// -void DisplayReply( PingReply ^ reply ) -{ - if ( reply == nullptr ) - return; - - Console::WriteLine( "ping status: {0}", reply->Status ); - if ( reply->Status == IPStatus::Success ) - { - Console::WriteLine( "Address: {0}", reply->Address->ToString() ); - Console::WriteLine( "RoundTrip time: {0}", reply->RoundtripTime ); - Console::WriteLine( "Time to live: {0}", reply->Options->Ttl ); - Console::WriteLine( "Don't fragment: {0}", reply->Options->DontFragment ); - Console::WriteLine( "Buffer size: {0}", reply->Buffer->Length ); - } -} - -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclPingSync/CPP/syncping.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclPingSync/CPP/syncping.cpp deleted file mode 100644 index 49704c6adde83..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclPingSync/CPP/syncping.cpp +++ /dev/null @@ -1,48 +0,0 @@ - - -//NCLPingSync -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::NetworkInformation; -using namespace System::Text; - -// args[1] can be an IPaddress or host name. -int main() -{ - array^args = Environment::GetCommandLineArgs(); - - // - // - Ping ^ pingSender = gcnew Ping; - PingOptions ^ options = gcnew PingOptions; - - // Use the default Ttl value which is 128, - // but change the fragmentation behavior. - options->DontFragment = true; - - // - // Create a buffer of 32 bytes of data to be transmitted. - String^ data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"; - array^buffer = Encoding::ASCII->GetBytes( data ); - int timeout = 120; - PingReply ^ reply = pingSender->Send( args[ 1 ], timeout, buffer, options ); - - // - // - if ( reply->Status == IPStatus::Success ) - { - Console::WriteLine( "Address: {0}", reply->Address->ToString() ); - Console::WriteLine( "RoundTrip time: {0}", reply->RoundtripTime ); - Console::WriteLine( "Time to live: {0}", reply->Options->Ttl ); - Console::WriteLine( "Don't fragment: {0}", reply->Options->DontFragment ); - Console::WriteLine( "Buffer size: {0}", reply->Buffer->Length ); - } - - - // -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclSslClientAsync/CPP/NclSslClientAsync.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclSslClientAsync/CPP/NclSslClientAsync.cpp deleted file mode 100644 index aed364516a4f7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclSslClientAsync/CPP/NclSslClientAsync.cpp +++ /dev/null @@ -1,337 +0,0 @@ - -// NclSslClientAsync -// -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Net; -using namespace System::Net::Security; -using namespace System::Net::Sockets; -using namespace System::Security::Authentication; -using namespace System::Text; -using namespace System::Security::Cryptography::X509Certificates; -using namespace System::IO; - -// The following example demonstrates the client side of a -// client-server application that communicates using the -// SslStream and TcpClient classes. -// After connecting to the server and authenticating, -// the client sends the server a message, receives a message from the server, -// and then terminates. Messages sent to and from the server are terminated -// with ''. -public ref class SslTcpClient -{ -private: - - // certificateErrors holds the mapping of Win32 results to descriptive strings. - // It is used by the CertificateErrorDescription method. - static Hashtable^ certificateErrors = gcnew Hashtable; - - // complete is used to terminate the application when all - // asynchronous calls have completed or any call has thrown an exception. - // complete might be used by any of the callback methods. - static bool complete = false; - - // e stores any exception thrown by an asynchronous method so that - // the mail application thread can display the exception and terminate gracefully. - // e might be used by any of the callback methods. - static Exception^ e = nullptr; - - // - // readData and buffer holds the data read from the server. - // They is used by the ReadCallback method. - static StringBuilder^ readData = gcnew StringBuilder; - static array^buffer = gcnew array(2048); - - // - // - // Load a table of errors that might cause the certificate authentication to fail. - static void InitializeCertificateErrors() - { - certificateErrors->Add( 0x800B0101, L"The certification has expired." ); - certificateErrors->Add( 0x800B0104, L"A path length constraint in the certification chain has been violated." ); - certificateErrors->Add( 0x800B0105, L"A certificate contains an unknown extension that is marked critical." ); - certificateErrors->Add( 0x800B0107, L"A parent of a given certificate in fact did not issue that child certificate." ); - certificateErrors->Add( 0x800B0108, L"A certificate is missing or has an empty value for a necessary field." ); - certificateErrors->Add( 0x800B0109, L"The certificate root is not trusted." ); - certificateErrors->Add( 0x800B010C, L"The certificate has been revoked." ); - certificateErrors->Add( 0x800B010F, L"The name in the certificate does not not match the host name requested by the client." ); - certificateErrors->Add( 0x800B0111, L"The certificate was explicitly marked as untrusted by the user." ); - certificateErrors->Add( 0x800B0112, L"A certification chain processed correctly, but one of the CA certificates is not trusted." ); - certificateErrors->Add( 0x800B0113, L"The certificate has an invalid policy." ); - certificateErrors->Add( 0x800B0114, L"The certificate name is either not in the permitted list or is explicitly excluded." ); - certificateErrors->Add( 0x80092012, L"The revocation function was unable to check revocation for the certificate." ); - certificateErrors->Add( 0x80090327, L"An unknown error occurred while processing the certificate." ); - certificateErrors->Add( 0x80096001, L"A system-level error occurred while verifying trust." ); - certificateErrors->Add( 0x80096002, L"The certificate for the signer of the message is invalid or not found." ); - certificateErrors->Add( 0x80096003, L"One of the counter signatures was invalid." ); - certificateErrors->Add( 0x80096004, L"The signature of the certificate cannot be verified." ); - certificateErrors->Add( 0x80096005, L"The time stamp signature or certificate could not be verified or is malformed." ); - certificateErrors->Add( 0x80096010, L"The digital signature of the object was not verified." ); - certificateErrors->Add( 0x80096019, L"The basic constraint extension of a certificate has not been observed." ); - } - - static String^ CertificateErrorDescription( int problem ) - { - - // Initialize the error message dictionary if it is not yet available. - if ( certificateErrors->Count == 0 ) - { - InitializeCertificateErrors(); - } - - String^ description = dynamic_cast(certificateErrors[ problem ]); - if ( description == nullptr ) - { - description = String::Format( L"Unknown certificate error - 0x{0:x8}", problem ); - } - - return description; - } - - -public: - - // The following method is invoked by the CertificateValidationDelegate. - static bool ValidateServerCertificate( - Object^ sender, - X509Certificate^ certificate, - X509Chain^ chain, - SslPolicyErrors sslPolicyErrors) - { - - Console::WriteLine("Validating the server certificate."); - if (sslPolicyErrors == SslPolicyErrors::None) - return true; - - Console::WriteLine("Certificate error: {0}", sslPolicyErrors); - - // Do not allow this client to communicate with unauthenticated servers. - return false; - } - - // - // - static X509Certificate^ SelectLocalCertificate( - Object^ sender, - String^ targetHost, - X509CertificateCollection^ localCertificates, - X509Certificate^ remoteCertificate, - array^ acceptableIssuers - ) - { - Console::WriteLine("Client is selecting a local certificate."); - if (acceptableIssuers != nullptr && - acceptableIssuers->Length > 0 && - localCertificates != nullptr && - localCertificates->Count > 0) - { - // Use the first certificate that is from an acceptable issuer. - IEnumerator^ myEnum1 = localCertificates->GetEnumerator(); - while ( myEnum1->MoveNext() ) - { - X509Certificate^ certificate = safe_cast(myEnum1->Current); - String^ issuer = certificate->Issuer; - if ( Array::IndexOf( acceptableIssuers, issuer ) != -1 ) - return certificate; - } - } - if (localCertificates != nullptr && - localCertificates->Count > 0) - return localCertificates[0]; - - return nullptr; - } - - // - // - static void AuthenticateCallback( IAsyncResult^ ar ) - { - SslStream^ stream = dynamic_cast(ar->AsyncState); - try - { - stream->EndAuthenticateAsClient( ar ); - Console::WriteLine( L"Authentication succeeded." ); - Console::WriteLine( L"Cipher: {0} strength {1}", stream->CipherAlgorithm, stream->CipherStrength ); - Console::WriteLine( L"Hash: {0} strength {1}", stream->HashAlgorithm, stream->HashStrength ); - Console::WriteLine( L"Key exchange: {0} strength {1}", stream->KeyExchangeAlgorithm, stream->KeyExchangeStrength ); - Console::WriteLine( L"Protocol: {0}", stream->SslProtocol ); - - // Encode a test message into a byte array. - // Signal the end of the message using the "". - array^message = Encoding::UTF8->GetBytes( L"Hello from the client." ); - - // Asynchronously send a message to the server. - stream->BeginWrite( message, 0, message->Length, gcnew AsyncCallback( WriteCallback ), stream ); - } - catch ( Exception^ authenticationException ) - { - e = authenticationException; - complete = true; - return; - } - - } - - - // - // - static void WriteCallback( IAsyncResult^ ar ) - { - SslStream^ stream = dynamic_cast(ar->AsyncState); - try - { - Console::WriteLine( L"Writing data to the server." ); - stream->EndWrite( ar ); - - // Asynchronously read a message from the server. - stream->BeginRead( buffer, 0, buffer->Length, gcnew AsyncCallback( ReadCallback ), stream ); - } - catch ( Exception^ writeException ) - { - e = writeException; - complete = true; - return; - } - - } - - - // - // - static void ReadCallback( IAsyncResult^ ar ) - { - - // Read the message sent by the server. - // The end of the message is signaled using the - // "" marker. - SslStream^ stream = dynamic_cast(ar->AsyncState); - int byteCount = -1; - try - { - Console::WriteLine( L"Reading data from the server." ); - byteCount = stream->EndRead( ar ); - - // Use Decoder class to convert from bytes to UTF8 - // in case a character spans two buffers. - Decoder^ decoder = Encoding::UTF8->GetDecoder(); - array^chars = gcnew array(decoder->GetCharCount( buffer, 0, byteCount )); - decoder->GetChars( buffer, 0, byteCount, chars, 0 ); - readData->Append( chars ); - - // Check for EOF or an empty message. - if ( readData->ToString()->IndexOf( L"" ) == -1 && byteCount != 0 ) - { - - // We are not finished reading. - // Asynchronously read more message data from the server. - stream->BeginRead( buffer, 0, buffer->Length, gcnew AsyncCallback( ReadCallback ), stream ); - } - else - { - Console::WriteLine( L"Message from the server: {0}", readData ); - } - } - catch ( Exception^ readException ) - { - e = readException; - complete = true; - return; - } - - complete = true; - } - - - // - // - int TestNclSslClient() - { - array^args = Environment::GetCommandLineArgs(); - String^ serverName = nullptr; - if ( args == nullptr || args->Length < 3 ) - { - Console::WriteLine( L"To start the client specify the host name and" - L" one or more client certificate file names." ); - return 1; - } - - - // - // Server name must match the host name and the name on the host's certificate. - serverName = args[ 1 ]; - - // Create a TCP/IP client socket. - TcpClient^ client = gcnew TcpClient( serverName,80 ); - Console::WriteLine( L"Client connected." ); - - // Create an SSL stream that will close the client's stream. - SslStream^ sslStream = gcnew SslStream( - client->GetStream(), - false, - gcnew RemoteCertificateValidationCallback( ValidateServerCertificate ), - gcnew LocalCertificateSelectionCallback( SelectLocalCertificate ) ); - - // - // Create the certificate collection to hold the client's certificate. - X509CertificateCollection^ clientCertificates = gcnew X509CertificateCollection; - for ( int i = 2; i < args->Length; i++ ) - { - X509Certificate^ certificate = X509Certificate::CreateFromCertFile( args[ i ] ); - clientCertificates->Add( certificate ); - - } - - // The server name must match the name on the server certificate. - sslStream->BeginAuthenticateAsClient( - serverName, - clientCertificates, - SslProtocols::Ssl3, - true, - gcnew AsyncCallback( AuthenticateCallback ), - sslStream ); - - // User can press a key to exit application, or let the - // asynchronous calls continue until they complete. - Console::WriteLine( L"To quit, press the enter key." ); - do - { - - // Real world applications would do work here - // while waiting for the asynchronous calls to complete. - System::Threading::Thread::Sleep( 100 ); - } - while ( complete != true && Console::KeyAvailable == false ); - - if ( Console::KeyAvailable ) - { - Console::ReadLine(); - Console::WriteLine( L"Quitting." ); - client->Close(); - sslStream->Close(); - return 1; - } - - if ( e != nullptr ) - { - Console::WriteLine( L"An exception was thrown: {0}", e ); - } - - sslStream->Close(); - client->Close(); - Console::WriteLine( L"Good bye." ); - return 0; - } - - // -}; - - -// -int main() -{ - SslTcpClient^ stc = gcnew SslTcpClient; - stc->TestNclSslClient(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclSslClientSync/CPP/clientsync.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclSslClientSync/CPP/clientsync.cpp deleted file mode 100644 index 399131ddf3b64..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclSslClientSync/CPP/clientsync.cpp +++ /dev/null @@ -1,260 +0,0 @@ -// NclSslClientSync -// -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Globalization; -using namespace System::Net; -using namespace System::Net::Security; -using namespace System::Net::Sockets; -using namespace System::Security::Authentication; -using namespace System::Text; -using namespace System::Security::Cryptography::X509Certificates; -using namespace System::IO; - -namespace NlsClientSync -{ - public ref class SslTcpClient - { - private: - static Hashtable^ certificateErrors = gcnew Hashtable; - // - // Load a table of errors that might cause - // the certificate authentication to fail. - static void InitializeCertificateErrors() - { - certificateErrors->Add(0x800B0101, - "The certification has expired."); - certificateErrors->Add(0x800B0104, - "A path length constraint " - "in the certification chain has been violated."); - certificateErrors->Add(0x800B0105, - "A certificate contains an unknown extension " - "that is marked critical."); - certificateErrors->Add(0x800B0107, - "A parent of a given certificate in fact " - "did not issue that child certificate."); - certificateErrors->Add(0x800B0108, - "A certificate is missing or has an empty value " - "for a necessary field."); - certificateErrors->Add(0x800B0109, - "The certificate root is not trusted."); - certificateErrors->Add(0x800B010C, - "The certificate has been revoked."); - certificateErrors->Add(0x800B010F, - "The name in the certificate does not not match " - "the host name requested by the client."); - certificateErrors->Add(0x800B0111, - "The certificate was explicitly marked " - "as untrusted by the user."); - certificateErrors->Add(0x800B0112, - "A certification chain processed correctly, " - "but one of the CA certificates is not trusted."); - certificateErrors->Add(0x800B0113, - "The certificate has an invalid policy."); - certificateErrors->Add(0x800B0114, - "The certificate name is either not " - "in the permitted list or is explicitly excluded."); - certificateErrors->Add(0x80092012, - "The revocation function was unable to check " - "revocation for the certificate."); - certificateErrors->Add(0x80090327, - "An unknown error occurred while " - "processing the certificate."); - certificateErrors->Add(0x80096001, - "A system-level error occurred " - "while verifying trust."); - certificateErrors->Add(0x80096002, - "The certificate for the signer of the message " - "is invalid or not found."); - certificateErrors->Add(0x80096003, - "One of the counter signatures was invalid."); - certificateErrors->Add(0x80096004, - "The signature of the certificate " - "cannot be verified."); - certificateErrors->Add(0x80096005, - "The time stamp signature or certificate " - "could not be verified or is malformed."); - certificateErrors->Add(0x80096010, - "The digital signature of the object " - "was not verified."); - certificateErrors->Add(0x80096019, - "The basic constraint extension of a certificate " - "has not been observed."); - } - - static String^ CertificateErrorDescription(UInt32 problem) - { - // Initialize the error message dictionary - // if it is not yet available. - if (certificateErrors->Count == 0) - { - InitializeCertificateErrors(); - } - - String^ description = safe_cast( - certificateErrors[problem]); - if (description == nullptr) - { - description = String::Format( - CultureInfo::CurrentCulture, - "Unknown certificate error - 0x{0:x8}", - problem); - } - - return description; - } - - public: - // The following method is invoked - // by the CertificateValidationDelegate. - static bool ValidateServerCertificate( - Object^ sender, - X509Certificate^ certificate, - X509Chain^ chain, - SslPolicyErrors sslPolicyErrors) - { - - Console::WriteLine("Validating the server certificate."); - if (sslPolicyErrors == SslPolicyErrors::None) - return true; - - Console::WriteLine("Certificate error: {0}", sslPolicyErrors); - - // Do not allow this client to communicate with unauthenticated servers. - return false; - } - // - - // - static void RunClient(String^ machineName, String^ serverName) - { - - // - // - // Create a TCP/IP client socket. - // machineName is the host running the server application. - TcpClient^ client = gcnew TcpClient(machineName, 8080); - Console::WriteLine("Client connected."); - - // Create an SSL stream that will close - // the client's stream. - SslStream^ sslStream = gcnew SslStream( - client->GetStream(), false, - gcnew RemoteCertificateValidationCallback(ValidateServerCertificate), - nullptr); - - // The server name must match the name - // on the server certificate. - try - { - sslStream->AuthenticateAsClient(serverName); - } - catch (AuthenticationException^ ex) - { - Console::WriteLine("Exception: {0}", ex->Message); - if (ex->InnerException != nullptr) - { - Console::WriteLine("Inner exception: {0}", - ex->InnerException->Message); - } - - Console::WriteLine("Authentication failed - " - "closing the connection."); - sslStream->Close(); - client->Close(); - return; - } - // - // Encode a test message into a byte array. - // Signal the end of the message using the "". - array^ messsage = Encoding::UTF8->GetBytes( - "Hello from the client."); - - // Send hello message to the server. - sslStream->Write(messsage); - sslStream->Flush(); - // - // Read message from the server. - String^ serverMessage = ReadMessage(sslStream); - Console::WriteLine("Server says: {0}", serverMessage); - - // Close the client connection. - sslStream->Close(); - client->Close(); - Console::WriteLine("Client closed."); - } - // - // - private: - static String^ ReadMessage(SslStream^ sslStream) - { - - // Read the message sent by the server. - // The end of the message is signaled using the - // "" marker. - array^ buffer = gcnew array(2048); - StringBuilder^ messageData = gcnew StringBuilder; - // Use Decoder class to convert from bytes to UTF8 - // in case a character spans two buffers. - Encoding^ u8 = Encoding::UTF8; - Decoder^ decoder = u8->GetDecoder(); - - int bytes = -1; - do - { - bytes = sslStream->Read(buffer, 0, buffer->Length); - - array<__wchar_t>^ chars = gcnew array<__wchar_t>( - decoder->GetCharCount(buffer, 0, bytes)); - decoder->GetChars(buffer, 0, bytes, chars, 0); - messageData->Append(chars); - - // Check for EOF. - if (messageData->ToString()->IndexOf("") != -1) - { - break; - } - } - while (bytes != 0); - - return messageData->ToString(); - } - // - }; -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - String^ serverCertificateName = nullptr; - String^ machineName = nullptr; - if (args == nullptr || args->Length < 2) - { - Console::WriteLine("To start the client specify:"); - Console::WriteLine("clientSync machineName [serverName]"); - return 1; - } - - // User can specify the machine name and server name. - // Server name must match the name on - // the server's certificate. - machineName = args[1]; - if (args->Length < 3) - { - serverCertificateName = machineName; - } - else - { - serverCertificateName = args[2]; - }; - - NlsClientSync::SslTcpClient::RunClient(machineName, - serverCertificateName); - - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclSslServerAsync/CPP/NclSslServerAsync.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclSslServerAsync/CPP/NclSslServerAsync.cpp deleted file mode 100644 index c4d7e313017c0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclSslServerAsync/CPP/NclSslServerAsync.cpp +++ /dev/null @@ -1,265 +0,0 @@ - -// NclSslServerAsync -// -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Net::Security; -using namespace System::Security::Authentication; -using namespace System::Text; -using namespace System::Security::Cryptography::X509Certificates; -using namespace System::IO; - -// The following example demonstrates the server side of a -// client-server application that communicates using the -// SslStream, TcpListener, and TcpClient classes. -// After connecting to the server and authenticating, -// the server reads a message from the client, -// sends a message to the client, -// and then terminates. Messages sent to and from the client are terminated -// with ''. -// The ClientState class holds information shared -// by asynchronous calls. -// -public ref class ClientState -{ -internal: - SslStream^ stream; - TcpClient^ client; - StringBuilder^ readData; - array^buffer; - ClientState( SslStream^ stream, TcpClient^ client ) - { - this->stream = stream; - this->client = client; - readData = gcnew StringBuilder; - buffer = gcnew array(2048); - } - - void Close() - { - - // Close the SslStream. This will also close the - // NetworkStream allocated to the TcpClient. - stream->Close(); - - // Close the TcpClient. - client->Close(); - readData = nullptr; - buffer = nullptr; - Console::WriteLine( L"Client closed." ); - } - -}; - - -// -public ref class SslTcpListener -{ -public: - - // - // The following method is invoked by the CertificateValidationDelegate. - static bool ValidateCertificate( - Object^ sender, - X509Certificate^ certificate, - X509Chain^ chain, - SslPolicyErrors sslPolicyErrors) - { - if ( certificate == nullptr ) - { - - // Null certificate and no errors means that the client was not - // required to provide a certificate. - if ( sslPolicyErrors == SslPolicyErrors::None) - { - return true; - } - else - { - Console::WriteLine(L"Certificate error: {0}", sslPolicyErrors); - } - return false; - } - - Console::WriteLine( L"Server is validating certificate." ); - Console::WriteLine( L"Certificate was issued to {0} and is valid from {1} until {2}.", - certificate->Subject, - certificate->GetEffectiveDateString(), - certificate->GetExpirationDateString() ); - return true; - } - - - // - // - void AuthenticateCallback( IAsyncResult^ ar ) - { - ClientState^ state = dynamic_cast(ar->AsyncState); - SslStream^ stream = state->stream; - try - { - stream->EndAuthenticateAsServer( ar ); - Console::WriteLine( L"Authentication succeeded." ); - Console::WriteLine( L"Cipher: {0} strength {1}", stream->CipherAlgorithm, stream->CipherStrength ); - Console::WriteLine( L"Hash: {0} strength {1}", stream->HashAlgorithm, stream->HashStrength ); - Console::WriteLine( L"Key exchange: {0} strength {1}", stream->KeyExchangeAlgorithm, stream->KeyExchangeStrength ); - Console::WriteLine( L"Protocol: {0}", stream->SslProtocol ); - - // Asynchronously read a message from the client. - stream->BeginRead( state->buffer, 0, state->buffer->Length, gcnew AsyncCallback( this, &SslTcpListener::ReadCallback ), state ); - } - catch ( Exception^ authenticationException ) - { - Console::WriteLine( L"Authentication error: {0}", authenticationException->Message ); - if ( authenticationException->InnerException != nullptr ) - { - Console::WriteLine( L" Inner exception: {0}", authenticationException->InnerException->Message ); - } - state->Close(); - return; - } - - } - - - // - // - void WriteCallback( IAsyncResult^ ar ) - { - ClientState^ state = dynamic_cast(ar->AsyncState); - SslStream^ stream = state->stream; - try - { - Console::WriteLine( L"Writing data to the client." ); - stream->EndWrite( ar ); - } - catch ( Exception^ writeException ) - { - Console::WriteLine( L"Write error: {0}", writeException->Message ); - state->Close(); - return; - } - - Console::WriteLine( L"Finished with client." ); - state->Close(); - } - - - // - // - void ReadCallback( IAsyncResult^ ar ) - { - ClientState^ state = dynamic_cast(ar->AsyncState); - SslStream^ stream = state->stream; - - // Read the message sent by the client. - // The end of the message is signaled using the - // "" marker. - int byteCount = -1; - try - { - Console::WriteLine( L"Reading data from the client." ); - byteCount = stream->EndRead( ar ); - - // Use Decoder class to convert from bytes to UTF8 - // in case a character spans two buffers. - Decoder^ decoder = Encoding::UTF8->GetDecoder(); - array^chars = gcnew array(decoder->GetCharCount( state->buffer, 0, byteCount )); - decoder->GetChars( state->buffer, 0, byteCount, chars, 0 ); - state->readData->Append( chars ); - - // Check for EOF or an empty message. - if ( state->readData->ToString()->IndexOf( L"" ) == -1 && byteCount != 0 ) - { - - // We are not finished reading. - // Asynchronously read more message data from the client. - stream->BeginRead( state->buffer, 0, state->buffer->Length, gcnew AsyncCallback( this, &SslTcpListener::ReadCallback ), state ); - } - else - { - Console::WriteLine( L"Message from the client: {0}", state->readData ); - } - - // Encode a test message into a byte array. - // Signal the end of the message using "". - array^message = Encoding::UTF8->GetBytes( L"Hello from the server." ); - - // Asynchronously send the message to the client. - stream->BeginWrite( message, 0, message->Length, gcnew AsyncCallback( this, &SslTcpListener::WriteCallback ), state ); - } - catch ( Exception^ readException ) - { - Console::WriteLine( L"Read error: {0}", readException->Message ); - state->Close(); - return; - } - - } - - - // - // - void ProcessClient( ClientState^ state, X509Certificate^ serverCertificate ) - { - try - { - state->stream->BeginAuthenticateAsServer( - serverCertificate, true, SslProtocols::Tls, true, - gcnew AsyncCallback( this, &SslTcpListener::AuthenticateCallback ), state ); - } - catch ( Exception^ authenticationException ) - { - Console::WriteLine( L"Authentication error: {0}", authenticationException->Message ); - state->Close(); - return; - } - - } - - - // - // - int ServerSideTest() - { - array^args = Environment::GetCommandLineArgs(); - if ( args == nullptr || args->Length == 0 ) - { - Console::WriteLine( L"You must specify the server certificate file." ); - return 0; - } - - X509Certificate^ serverCertificate = X509Certificate::CreateFromCertFile( args[ 1 ] ); - - // Create a TCP/IP (IPv4) socket and listen for incoming connections. - TcpListener^ listener = gcnew TcpListener( IPAddress::Any,8080 ); - listener->Start(); - while ( true ) - { - - // Application blocks while waiting for an incoming connection. - // Type CNTL-C to terminate the server. - TcpClient^ client = listener->AcceptTcpClient(); - Console::WriteLine( L"Client connected." ); - SslStream^ stream = gcnew SslStream( client->GetStream(),false, - gcnew RemoteCertificateValidationCallback( ValidateCertificate ) ); - ClientState^ state = gcnew ClientState( stream,client ); - SslTcpListener^ listenerWorker = gcnew SslTcpListener; - listenerWorker->ProcessClient( state, serverCertificate ); - } - } - - // -}; - -int main() -{ - SslTcpListener^ stl = gcnew SslTcpListener; - stl->ServerSideTest(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclSslServerSync/CPP/NclSslServerSync.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclSslServerSync/CPP/NclSslServerSync.cpp deleted file mode 100644 index fd1b337702e24..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclSslServerSync/CPP/NclSslServerSync.cpp +++ /dev/null @@ -1,234 +0,0 @@ - -// NclSslServerSync -// -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Net::Security; -using namespace System::Security::Authentication; -using namespace System::Text; -using namespace System::Security::Cryptography::X509Certificates; -using namespace System::IO; -public ref class SslTcpServer sealed -{ -private: - static X509Certificate^ serverCertificate = nullptr; - -public: - - // The certificate parameter specifies the name of the file - // containing the machine certificate. - static void RunServer( String^ certificate ) - { - serverCertificate = X509Certificate::CreateFromCertFile( certificate ); - - // Create a TCP/IP (IPv4) socket and listen for incoming connections. - TcpListener^ listener = gcnew TcpListener( IPAddress::Any,8080 ); - listener->Start(); - - while (true) - { - Console::WriteLine( L"Waiting for a client to connect..." ); - - // Application blocks while waiting for an incoming connection. - // Type CNTL-C to terminate the server. - TcpClient^ client = listener->AcceptTcpClient(); - ProcessClient( client ); - - } - } - - - // - static void ProcessClient( TcpClient^ client ) - { - - // A client has connected. Create the - // SslStream using the client's network stream. - SslStream^ sslStream = gcnew SslStream( client->GetStream(),false ); - - // Authenticate the server but don't require the client to authenticate. - try - { - sslStream->AuthenticateAsServer( serverCertificate, false, true ); - // false == no client cert required; true == check cert revocation. - - // Display the properties and settings for the authenticated stream. - DisplaySecurityLevel( sslStream ); - DisplaySecurityServices( sslStream ); - DisplayCertificateInformation( sslStream ); - DisplayStreamProperties( sslStream ); - - // Set timeouts for the read and write to 5 seconds. - sslStream->ReadTimeout = 5000; - sslStream->WriteTimeout = 5000; - - // Read a message from the client. - Console::WriteLine( L"Waiting for client message..." ); - String^ messageData = ReadMessage( sslStream ); - Console::WriteLine( L"Received: {0}", messageData ); - - // Write a message to the client. - array^message = Encoding::UTF8->GetBytes( L"Hello from the server." ); - Console::WriteLine( L"Sending hello message." ); - sslStream->Write( message ); - } - catch ( AuthenticationException^ e ) - { - Console::WriteLine( L"Exception: {0}", e->Message ); - if ( e->InnerException != nullptr ) - { - Console::WriteLine( L"Inner exception: {0}", e->InnerException->Message ); - } - Console::WriteLine( L"Authentication failed - closing the connection." ); - sslStream->Close(); - client->Close(); - return; - } - finally - { - - // The client stream will be closed with the sslStream - // because we specified this behavior when creating - // the sslStream. - sslStream->Close(); - client->Close(); - } - - } - - - // - // - static String^ ReadMessage( SslStream^ sslStream ) - { - - // Read the message sent by the client. - // The client signals the end of the message using the - // "" marker. - array^buffer = gcnew array(2048); - StringBuilder^ messageData = gcnew StringBuilder; - int bytes = -1; - do - { - - // Read the client's test message. - bytes = sslStream->Read( buffer, 0, buffer->Length ); - - // Use Decoder class to convert from bytes to UTF8 - // in case a character spans two buffers. - Decoder^ decoder = Encoding::UTF8->GetDecoder(); - array^chars = gcnew array(decoder->GetCharCount( buffer, 0, bytes )); - decoder->GetChars( buffer, 0, bytes, chars, 0 ); - messageData->Append( chars ); - - // Check for EOF or an empty message. - if ( messageData->ToString()->IndexOf( L"" ) != -1 ) - { - break; - } - } - while ( bytes != 0 ); - - return messageData->ToString(); - } - - - // - // - static void DisplaySecurityLevel( SslStream^ stream ) - { - Console::WriteLine( L"Cipher: {0} strength {1}", stream->CipherAlgorithm, stream->CipherStrength ); - Console::WriteLine( L"Hash: {0} strength {1}", stream->HashAlgorithm, stream->HashStrength ); - Console::WriteLine( L"Key exchange: {0} strength {1}", stream->KeyExchangeAlgorithm, stream->KeyExchangeStrength ); - Console::WriteLine( L"Protocol: {0}", stream->SslProtocol ); - } - - - // - // - static void DisplaySecurityServices( SslStream^ stream ) - { - Console::WriteLine( L"Is authenticated: {0} as server? {1}", stream->IsAuthenticated, stream->IsServer ); - Console::WriteLine( L"IsSigned: {0}", stream->IsSigned ); - Console::WriteLine( L"Is Encrypted: {0}", stream->IsEncrypted ); - } - - - // - // - static void DisplayStreamProperties( SslStream^ stream ) - { - Console::WriteLine( L"Can read: {0}, write {1}", stream->CanRead, stream->CanWrite ); - Console::WriteLine( L"Can timeout: {0}", stream->CanTimeout ); - } - - - // - // - static void DisplayCertificateInformation( SslStream^ stream ) - { - Console::WriteLine( L"Certificate revocation list checked: {0}", stream->CheckCertRevocationStatus ); - X509Certificate^ localCertificate = stream->LocalCertificate; - if ( stream->LocalCertificate != nullptr ) - { - Console::WriteLine( L"Local cert was issued to {0} and is valid from {1} until {2}.", - localCertificate->Subject, - localCertificate->GetEffectiveDateString(), - localCertificate->GetExpirationDateString() ); - } - else - { - Console::WriteLine( L"Local certificate is null." ); - } - - X509Certificate^ remoteCertificate = stream->RemoteCertificate; - if ( stream->RemoteCertificate != nullptr ) - { - Console::WriteLine( L"Remote cert was issued to {0} and is valid from {1} until {2}.", - remoteCertificate->Subject, - remoteCertificate->GetEffectiveDateString(), - remoteCertificate->GetExpirationDateString() ); - } - else - { - Console::WriteLine( L"Remote certificate is null." ); - } - } - - -private: - - // - static void DisplayUsage() - { - Console::WriteLine( L"To start the server specify:" ); - Console::WriteLine( L"serverSync certificateFile.cer" ); - Environment::Exit( 1 ); - } - -public: - int RunServerASync() - { - array^args = Environment::GetCommandLineArgs(); - String^ certificate = nullptr; - if ( args == nullptr || args->Length < 2 ) - { - DisplayUsage(); - } - - certificate = args[ 1 ]; - SslTcpServer::RunServer( certificate ); - return 0; - } - -}; - -int main(){ - SslTcpServer^ sts = gcnew SslTcpServer(); - sts->RunServerASync(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclTcpServerSync/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/NclTcpServerSync/cpp/makefile deleted file mode 100644 index 72e67f7e20e2c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclTcpServerSync/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -NclTcpServerSync.exe : tcplistener.cpp - cl /clr:pure /FeNclTcpServerSync.exe tcplistener.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NclTcpServerSync/cpp/tcplistener.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NclTcpServerSync/cpp/tcplistener.cpp deleted file mode 100644 index 36b29236e7815..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NclTcpServerSync/cpp/tcplistener.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// -#using -using namespace System; -using namespace System::Text; -using namespace System::Net; -using namespace System::Net::Sockets; - -int main() -{ - // Create the server side connection and - // start listening for clients. - TcpListener^ tcpListener = gcnew TcpListener(IPAddress::Any, 11000); - tcpListener->Start(); - Console::WriteLine("Waiting for a connection...."); - - // Accept the pending client connection. - TcpClient^ tcpClient = tcpListener->AcceptTcpClient(); - Console::WriteLine("Connection accepted."); - // Get the stream to write the message - // that will be sent to the client. - NetworkStream^ networkStream = tcpClient->GetStream(); - String^ responseString = "Hello."; - // Set the write timeout to 10 millseconds. - networkStream->WriteTimeout = 10; - // Convert the message to a byte array and sent it to the client. - array^ sendBytes = Encoding::UTF8->GetBytes(responseString); - networkStream->Write(sendBytes, 0, sendBytes->Length); - Console::WriteLine("Message Sent."); - // Close the connection to the client. - tcpClient->Close(); - // Stop listening for incoming connections - // and close the server. - tcpListener->Stop(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NestingLevel/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/NestingLevel/cpp/makefile deleted file mode 100644 index 1af47739763f3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NestingLevel/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -NestingLevel.exe : nestinglevel.cpp - cl /W4 /clr:pure /FeNestingLevel.exe nestinglevel.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NestingLevel/cpp/nestinglevel.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NestingLevel/cpp/nestinglevel.cpp deleted file mode 100644 index 1418ec5d41410..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NestingLevel/cpp/nestinglevel.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Xml::Serialization; -using namespace System::IO; - -public ref class Forest -{ - // Set the NestingLevel for each array. The first - // attribute (NestingLevel = 0) is optional. -public: - [XmlArrayItem(ElementName = "tree", NestingLevel = 0)] - [XmlArrayItem(ElementName = "branch", NestingLevel = 1)] - [XmlArrayItem(ElementName = "leaf",NestingLevel = 2)] - array^>^>^ TreeArray; -}; - -int main() -{ - XmlSerializer^ serializer = gcnew XmlSerializer(Forest::typeid); - - Forest^ constructedForest = gcnew Forest(); - array^>^>^ tree = - gcnew array^>^>(2); - - array^>^ firstBranch = gcnew array^>(1); - firstBranch[0] = gcnew array{"One"}; - tree[0] = firstBranch; - - array^>^ secondBranch = gcnew array^>(2); - secondBranch[0] = gcnew array{"One","Two"}; - secondBranch[1] = gcnew array{"One","Two","Three"}; - tree[1] = secondBranch; - - constructedForest->TreeArray = tree; - - serializer->Serialize(Console::Out, constructedForest); -} - -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NetworkCredential_Constructor2/CPP/networkcredential_constructor2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NetworkCredential_Constructor2/CPP/networkcredential_constructor2.cpp deleted file mode 100644 index 1ad521299e22b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NetworkCredential_Constructor2/CPP/networkcredential_constructor2.cpp +++ /dev/null @@ -1,67 +0,0 @@ -// System::Net::NetworkCredential::NetworkCredential(String*, String*) - -/*This program demontrates the 'NetworkCredential(String*, String*)' constructor of 'NetworkCredential' class. -It takes an URL, username, password and domainname from console and forms a 'NetworkCredential' Object* with -these arguments.Then a 'WebRequest' Object* is created and the 'NetworkCredential' Object* is associated with -it.A message is displayed onto the console on successful reception of response otherwise an exception is thrown. -*/ - -#using - -using namespace System; -using namespace System::Net; - -void GetPage( String^ url, String^ username, String^ passwd, String^ domain ) -{ - try - { -// - // Call the onstructor to create an instance of NetworkCredential with the - // specified user name and password. - NetworkCredential^ myCredentials = gcnew NetworkCredential( username,passwd ); - - // Create a WebRequest with the specified URL. - WebRequest^ myWebRequest = WebRequest::Create( url ); - myCredentials->Domain = domain; - myWebRequest->Credentials = myCredentials; - Console::WriteLine( "\n\nCredentials Domain : {0} , UserName : {1} , Password : {2}", - myCredentials->Domain, myCredentials->UserName, myCredentials->Password ); - Console::WriteLine( "\n\nRequest to Url is sent.Waiting for response..." ); - - // Send the request and wait for a response. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - - // Process the response. - Console::WriteLine( "\nResponse received successfully." ); - - // Release the resources of the response object. - myWebResponse->Close(); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nWebException is raised.The Reason for failure is : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following exception was raised : {0}", e->Message ); - } -} - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length < 5 ) - { - Console::WriteLine( "\nPlease enter a protected resource Url and other details as command line parameter as below:" ); - Console::WriteLine( "\nUsage: NetworkCredential_Constructor2 URLname username password domainname" ); - Console::WriteLine( "\nExample: NetworkCredential_Constructor2 http://dotnet.microsoft.com/ george george123 microsoft" ); - } - else - { - GetPage( args[ 1 ], args[ 2 ], args[ 3 ], args[ 4 ] ); - } - - Console::WriteLine( "\n\nPress 'Enter key' to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NetworkCredential_GetCredential/CPP/networkcredential_getcredential.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NetworkCredential_GetCredential/CPP/networkcredential_getcredential.cpp deleted file mode 100644 index d4f7d1217e7c1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NetworkCredential_GetCredential/CPP/networkcredential_getcredential.cpp +++ /dev/null @@ -1,68 +0,0 @@ - - -// System::Net::NetworkCredential::GetCredential -/*This program demontrates the 'GetCredential' of 'NetworkCredential' class. -It accepts an URL, username and password from console. Creates a 'NetworkCredential' Object* -using these parameters. A 'WebRequest' Object* is created to access the Uri S"http://www.microsoft.com" -and the 'NetworkCredential' Object* is assigned as it's Credentials. -A message is displayed onto the console on successful reception of response -otherwise an exception is thrown. -*/ - -#using - -using namespace System; -using namespace System::Net; - -void GetPage( String^ url, String^ userName, String^ password ) -{ - try - { -// - // Create an empty instance of the NetworkCredential class. - NetworkCredential^ myCredentials = gcnew NetworkCredential( userName,password ); - - // Create a webrequest with the specified URL. - WebRequest^ myWebRequest = WebRequest::Create( url ); - myWebRequest->Credentials = myCredentials->GetCredential( gcnew Uri( url ), "" ); - Console::WriteLine( "\n\nUser Credentials:- UserName : {0} , Password : {1}", - myCredentials->UserName, myCredentials->Password ); - - // Send the request and wait for a response. - Console::WriteLine( "\n\nRequest to Url is sent.Waiting for response...Please wait ..." ); - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - - // Process the response. - Console::WriteLine( "\nResponse received sucessfully" ); - - // Release the resources of the response object. - myWebResponse->Close(); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nWebException is raised.The Reason for failure is : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following exception was raised : {0}", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 4 ) - { - Console::WriteLine( "\nPlease enter a protected resource Url and other details as* command line parameter as below:" ); - Console::WriteLine( "\nUsage: NetworkCredential_GetCredential URLname username password" ); - Console::WriteLine( "\nExample: NetworkCredential_GetCredential http://dotnet.microsoft.com/ george george123" ); - } - else - { - GetPage( args[ 1 ], args[ 2 ], args[ 3 ] ); - } - - Console::WriteLine( "\n\nPress 'Enter' to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NetworkCredential_UserName_Password_Domain/CPP/networkcredential_username_password_domain.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NetworkCredential_UserName_Password_Domain/CPP/networkcredential_username_password_domain.cpp deleted file mode 100644 index 47fb7e93ba3d9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NetworkCredential_UserName_Password_Domain/CPP/networkcredential_username_password_domain.cpp +++ /dev/null @@ -1,74 +0,0 @@ - - -// System::Net::NetworkCredential::Username;System::Net::NetworkCredential::Domain;System::Net::NetworkCredential::Password -/*This program demontrates the 'UserName', 'Domain' and 'Password' properties of 'NetworkCredential' class. -It takes an URL, username, password and domainname from console. An empty 'NetworkCredential' Object* -is created.The 'UserName' , 'Password' and 'Domain' porperties of 'NetworkCredential' class are initialised -with the respective values taken from console. Then a 'WebRequest' Object* is created and the 'NetworkCredential' -Object* is associated with it.A message is displayed onto the console on successful reception of response -otherwise an exception is thrown. -*/ - -#using - -using namespace System; -using namespace System::Net; -void GetPage( String^ url, String^ username, String^ passwd, String^ domain ) -{ - try - { -// -// -// - // Create an empty instance of the NetworkCredential class. - NetworkCredential^ myCredentials = gcnew NetworkCredential( "","","" ); - myCredentials->Domain = domain; - myCredentials->UserName = username; - myCredentials->Password = passwd; - - // Create a WebRequest with the specified URL. - WebRequest^ myWebRequest = WebRequest::Create( url ); - myWebRequest->Credentials = myCredentials; - Console::WriteLine( "\n\nUser Credentials:- Domain : {0} , UserName : {1} , Password : {2}", - myCredentials->Domain, myCredentials->UserName, myCredentials->Password ); - - // Send the request and wait for a response. - Console::WriteLine( "\n\nRequest to Url is sent.Waiting for response...Please wait ..." ); - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - - // Process the response. - Console::WriteLine( "\nResponse received sucessfully" ); - - // Release the resources of the response object. - myWebResponse->Close(); -// -// -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nWebException is raised.The Reason for failure is : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following exception was raised : {0}", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 5 ) - { - Console::WriteLine( "\nPlease enter a protected resource Url and other details as command line parameter as below:" ); - Console::WriteLine( "\nUsage: NetworkCredential_UserName_Password_Domain URLname username password domainname" ); - Console::WriteLine( "\nExample: NetworkCredential_UserName_Password_Domain http://dotnet.microsoft.com/ george george123 microsoft" ); - } - else - { - GetPage( args[ 1 ], args[ 2 ], args[ 3 ], args[ 4 ] ); - } - - Console::WriteLine( "\n\nPress 'Enter key' to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NetworkStream_Async_SendAndReceive/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NetworkStream_Async_SendAndReceive/CPP/source.cpp deleted file mode 100644 index c2a97a0eded60..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NetworkStream_Async_SendAndReceive/CPP/source.cpp +++ /dev/null @@ -1,137 +0,0 @@ - - -// The following sample is intended to demonstrate how to use a -//NetworkStream for synchronous communcation with a remote host -//This class uses several NetworkStream members that would be useful -// in a synchronous communciation senario -#using - -using namespace System; -using namespace System::Text; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Threading; -ref class MyNetworkStreamClass -{ -public: - - // - - // Example of EndWrite - static void myWriteCallBack( IAsyncResult^ ar ) - { - NetworkStream^ myNetworkStream = safe_cast(ar->AsyncState); - myNetworkStream->EndWrite( ar ); - } - // - - // - // Example of EndRead, DataAvailable and BeginRead. - static void myReadCallBack( IAsyncResult^ ar ) - { - NetworkStream^ myNetworkStream = safe_cast(ar->AsyncState); - array^myReadBuffer = gcnew array(1024); - String^ myCompleteMessage = ""; - int numberOfBytesRead; - numberOfBytesRead = myNetworkStream->EndRead( ar ); - myCompleteMessage = String::Concat( myCompleteMessage, Encoding::ASCII->GetString( myReadBuffer, 0, numberOfBytesRead ) ); - - // message received may be larger than buffer size so loop through until you have it all. - while ( myNetworkStream->DataAvailable ) - { - AsyncCallback^ pasync = gcnew AsyncCallback( &myReadCallBack ); - myNetworkStream->BeginRead( myReadBuffer, 0, myReadBuffer->Length, pasync, myNetworkStream ); - } - - // Print out the received message to the console. - Console::WriteLine( "You received the following message : {0}", myCompleteMessage ); - } - // - - static void MySample( bool networkStreamOwnsSocket ) - { - ManualResetEvent^ allDone = gcnew ManualResetEvent( false ); - - // Create a socket and connect with a remote host. - IPHostEntry^ myIpHostEntry = Dns::GetHostEntry( "www.contoso.com" ); - IPEndPoint^ myIpEndPoint = gcnew IPEndPoint( myIpHostEntry->AddressList[ 0 ],1001 ); - Socket^ mySocket = gcnew Socket( myIpEndPoint->Address->AddressFamily,SocketType::Stream,ProtocolType::Tcp ); - try - { - // - // Example for creating a NetworkStreams - mySocket->Connect( myIpEndPoint ); - - // Create the NetworkStream for communicating with the remote host. - NetworkStream^ myNetworkStream; - if ( networkStreamOwnsSocket ) - { - myNetworkStream = gcnew NetworkStream( mySocket,FileAccess::ReadWrite,true ); - } - else - { - myNetworkStream = gcnew NetworkStream( mySocket,FileAccess::ReadWrite ); - } - // - - // - // Example of CanWrite, and BeginWrite. - // Check to see if this NetworkStream is writable. - if ( myNetworkStream->CanWrite ) - { - array^myWriteBuffer = Encoding::ASCII->GetBytes( "Are you receiving this message?" ); - myNetworkStream->BeginWrite( myWriteBuffer, 0, myWriteBuffer->Length, gcnew AsyncCallback( &MyNetworkStreamClass::myWriteCallBack ), myNetworkStream ); - allDone->WaitOne(); - } - else - { - Console::WriteLine( "Sorry. You cannot write to this NetworkStream." ); - } - // - - // - // Example of CanRead, and BeginRead. - // Check to see if this NetworkStream is readable. - if ( myNetworkStream->CanRead ) - { - array^myReadBuffer = gcnew array(1024); - myNetworkStream->BeginRead( myReadBuffer, 0, myReadBuffer->Length, gcnew AsyncCallback( &MyNetworkStreamClass::myReadCallBack ), myNetworkStream ); - allDone->WaitOne(); - } - else - { - Console::WriteLine( "Sorry. You cannot read from this NetworkStream." ); - } - // - - // Close the NetworkStream - myNetworkStream->Close(); - } - catch ( Exception^ exception ) - { - Console::WriteLine( "Exception Thrown: {0}", exception ); - } - } -}; - -int main( int argc, char *argv[] ) -{ - if ( "yes" == gcnew String(argv[1]) ) - { - MyNetworkStreamClass::MySample( true ); - } - else - if ( "no" == gcnew String(argv[1]) ) - { - MyNetworkStreamClass::MySample( false ); - } - else - { - Console::WriteLine( "Must use 'yes' to allow the NetworkStream to own the Socket or {0}", "\n 'no' to prohibit NetworkStream from owning the Socket." ); - } -} - -//Output: -//-1, 234.00 -//(-)1, 234.00 diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NetworkStream_Protected_Members/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NetworkStream_Protected_Members/CPP/source.cpp deleted file mode 100644 index 17f565e5d3c2a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NetworkStream_Protected_Members/CPP/source.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; - -ref class MyNetworkStream_Sub_Class: public NetworkStream -{ -public: - MyNetworkStream_Sub_Class( System::Net::Sockets::Socket^ socket, bool ownsSocket ) - : NetworkStream( socket, ownsSocket ) - { - } - - property bool IsConnected - { - // You can use the Socket method to examine the underlying Socket. - bool get() - { - return this->Socket->Connected; - } - } - - property bool CanCommunicate - { - bool get() - { - if ( !this->Readable | !this->Writeable ) - { - return false; - } - else - { - return true; - } - } - } -// - - static void DoSomethingSignificant() - { - // Do something significant in here - } - -}; - -int main() -{ - MyNetworkStream_Sub_Class::DoSomethingSignificant(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/NetworkStream_Synch_SendAndReceive/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/NetworkStream_Synch_SendAndReceive/CPP/source.cpp deleted file mode 100644 index 1a8522fdbae29..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/NetworkStream_Synch_SendAndReceive/CPP/source.cpp +++ /dev/null @@ -1,118 +0,0 @@ -// The following sample is intended to demonstrate how to use a -//NetworkStream for synchronous communcation with a remote host -//This class uses several NetworkStream members that would be useful -// in a synchronous communciation senario - -#using - -using namespace System; -using namespace System::Text; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Threading; - -void MySample( bool networkStreamOwnsSocket ) -{ - // - // This should be the classwide example. - // Create a socket and connect with a remote host. - IPHostEntry^ myIpHostEntry = Dns::GetHostEntry( "www.contoso.com" ); - IPEndPoint^ myIpEndPoint = gcnew IPEndPoint( myIpHostEntry->AddressList[ 0 ],1001 ); - - Socket^ mySocket = gcnew Socket( myIpEndPoint->Address->AddressFamily, - SocketType::Stream, - ProtocolType::Tcp ); - try - { - mySocket->Connect( myIpEndPoint ); - - // - // Examples for constructors that do not specify file permission. - // Create the NetworkStream for communicating with the remote host. - NetworkStream^ myNetworkStream; - - if ( networkStreamOwnsSocket ) - { - myNetworkStream = gcnew NetworkStream( mySocket,true ); - } - else - { - myNetworkStream = gcnew NetworkStream( mySocket ); - } - // - - // - // Examples for CanWrite, and CanWrite - // Check to see if this NetworkStream is writable. - if ( myNetworkStream->CanWrite ) - { - array^ myWriteBuffer = Encoding::ASCII->GetBytes( - "Are you receiving this message?" ); - myNetworkStream->Write( myWriteBuffer, 0, myWriteBuffer->Length ); - } - else - { - Console::WriteLine( "Sorry. You cannot write to this NetworkStream." ); - } - // - - // - // Examples for CanRead, Read, and DataAvailable. - // Check to see if this NetworkStream is readable. - if ( myNetworkStream->CanRead ) - { - array^ myReadBuffer = gcnew array(1024); - String^ myCompleteMessage = ""; - int numberOfBytesRead = 0; - - // Incoming message may be larger than the buffer size. - do - { - numberOfBytesRead = myNetworkStream->Read( myReadBuffer, 0, - myReadBuffer->Length ); - myCompleteMessage = String::Concat( myCompleteMessage, - Encoding::ASCII->GetString( myReadBuffer, 0, numberOfBytesRead ) ); - } - while ( myNetworkStream->DataAvailable ); - - // Print out the received message to the console. - Console::WriteLine( "You received the following message : {0}", - myCompleteMessage ); - } - else - { - Console::WriteLine( "Sorry. You cannot read from this NetworkStream." ); - } - // - - // - // Example for closing the NetworkStream. - // Close the NetworkStream - myNetworkStream->Close(); - // - - } - catch ( Exception^ exception ) - { - Console::WriteLine( "Exception Thrown: {0}", exception->ToString() ); - } -} -// - -int main( int argc, char *argv[] ) -{ - if ( "yes" == gcnew String(argv[1]) ) - { - MySample( true ); - } - else - if ( "no" == gcnew String(argv[1]) ) - { - MySample( false ); - } - else - { - Console::WriteLine( "Must use 'yes' to allow the NetworkStream to own the Socket or {0}", "\n 'no' to prohibit NetworkStream from owning the Socket." ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ObjectHandle/CPP/objecthandleassembly.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ObjectHandle/CPP/objecthandleassembly.cpp deleted file mode 100644 index 6afe3a48d866b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ObjectHandle/CPP/objecthandleassembly.cpp +++ /dev/null @@ -1,48 +0,0 @@ - -// -using namespace System; -using namespace System::Runtime::Remoting; -public ref class MyType: public MarshalByRefObject -{ -public: - MyType() - { - Console::Write( "Created an instance of MyType in an AppDomain with the " ); - Console::WriteLine( "hash code {0}", AppDomain::CurrentDomain->GetHashCode() ); - Console::WriteLine( "" ); - } - - int GetAppDomainHashCode() - { - return AppDomain::CurrentDomain->GetHashCode(); - } - -}; - -int main() -{ - Console::WriteLine( "The hash code of the default AppDomain is {0}.", AppDomain::CurrentDomain->GetHashCode() ); - Console::WriteLine( "" ); - - // Creates another AppDomain. - AppDomain^ domain = AppDomain::CreateDomain( "AnotherDomain", nullptr, (AppDomainSetup^)nullptr ); - - // - // Creates an instance of MyType defined in the assembly called ObjectHandleAssembly. - ObjectHandle^ obj = domain->CreateInstance( "ObjectHandleAssembly", "MyType" ); - - // Unwraps the proxy to the MyType object created in the other AppDomain. - MyType^ testObj = dynamic_cast(obj->Unwrap()); - if ( RemotingServices::IsTransparentProxy( testObj ) ) - Console::WriteLine( "The unwrapped object is a proxy." ); - else - Console::WriteLine( "The unwrapped object is not a proxy!" ); - - Console::WriteLine( "" ); - Console::Write( "Calling a method on the object located in an AppDomain with the hash code " ); - Console::WriteLine( testObj->GetAppDomainHashCode() ); - - // -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/OperationBindingCollection_OperationBindingCollection/CPP/MathService_input_cpp.wsdl b/samples/snippets/cpp/VS_Snippets_Remoting/OperationBindingCollection_OperationBindingCollection/CPP/MathService_input_cpp.wsdl deleted file mode 100644 index fa9de60ff9a91..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/OperationBindingCollection_OperationBindingCollection/CPP/MathService_input_cpp.wsdl +++ /dev/null @@ -1,312 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/OperationBindingCollection_OperationBindingCollection/CPP/operationbindingcollection_operationbindingcollection.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/OperationBindingCollection_OperationBindingCollection/CPP/operationbindingcollection_operationbindingcollection.cpp deleted file mode 100644 index 73662f4cd6683..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/OperationBindingCollection_OperationBindingCollection/CPP/operationbindingcollection_operationbindingcollection.cpp +++ /dev/null @@ -1,134 +0,0 @@ -// System.Web.Services.Description.OperationBindingCollection -// System.Web.Services.Description.OperationBindingCollection.Contains -// System.Web.Services.Description.OperationBindingCollection.Add -// System.Web.Services.Description.OperationBindingCollection.Item -// System.Web.Services.Description.OperationBindingCollection.Remove -// System.Web.Services.Description.OperationBindingCollection.Insert -// System.Web.Services.Description.OperationBindingCollection.IndexOf -// System.Web.Services.Description.OperationBindingCollection.CopyTo - -/* -The following example demonstrates the usage of the -'OperationBindingCollection' class, the 'Item' property and various methods of the -class. The input to the program is a WSDL file 'MathService_input_cpp.wsdl' without -the add operation binding of SOAP protocol. In this example the WSDL file -is modified to insert a new 'OperationBinding' for SOAP. The -'OperationBindingCollection' is populated based on WSDL document -structure defined in WSDL specification. The updated instance is then -written to 'MathService_new_cpp.wsdl'. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -int main() -{ - try - { - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_input_cpp.wsdl" ); - - // Add the OperationBinding for the Add operation. - OperationBinding^ addOperationBinding = gcnew OperationBinding; - String^ addOperation = "Add"; - String^ myTargetNamespace = myServiceDescription->TargetNamespace; - addOperationBinding->Name = addOperation; - - // Add the InputBinding for the operation. - InputBinding^ myInputBinding = gcnew InputBinding; - SoapBodyBinding^ mySoapBodyBinding = gcnew SoapBodyBinding; - mySoapBodyBinding->Use = SoapBindingUse::Literal; - myInputBinding->Extensions->Add( mySoapBodyBinding ); - addOperationBinding->Input = myInputBinding; - - // Add the OutputBinding for the operation. - OutputBinding^ myOutputBinding = gcnew OutputBinding; - myOutputBinding->Extensions->Add( mySoapBodyBinding ); - addOperationBinding->Output = myOutputBinding; - - // Add the extensibility element for the SoapOperationBinding. - SoapOperationBinding^ mySoapOperationBinding = gcnew SoapOperationBinding; - mySoapOperationBinding->Style = SoapBindingStyle::Document; - mySoapOperationBinding->SoapAction = String::Concat( myTargetNamespace, addOperation ); - addOperationBinding->Extensions->Add( mySoapOperationBinding ); - - // Get the BindingCollection from the ServiceDescription. - BindingCollection^ myBindingCollection = myServiceDescription->Bindings; - - // Get the OperationBindingCollection of SOAP binding from - // the BindingCollection. - OperationBindingCollection^ myOperationBindingCollection = myBindingCollection[ 0 ]->Operations; - - // - // Check for the Add OperationBinding in the collection. - bool contains = myOperationBindingCollection->Contains( addOperationBinding ); - Console::WriteLine( "\nWhether the collection contains the Add OperationBinding : {0}", contains ); - // - - // - // Add the Add OperationBinding to the collection. - myOperationBindingCollection->Add( addOperationBinding ); - Console::WriteLine( "\nAdded the OperationBinding of the Add" - " operation to the collection." ); - // - - // - // - // Get the OperationBinding of the Add operation from the collection. - OperationBinding^ myOperationBinding = myOperationBindingCollection[ 3 ]; - - // Remove the OperationBinding of the Add operation from - // the collection. - myOperationBindingCollection->Remove( myOperationBinding ); - Console::WriteLine( "\nRemoved the OperationBinding of the " - "Add operation from the collection." ); - // - // - - // - // - // Insert the OperationBinding of the Add operation at index 0. - myOperationBindingCollection->Insert( 0, addOperationBinding ); - Console::WriteLine( "\nInserted the OperationBinding of the " - "Add operation in the collection." ); - - // Get the index of the OperationBinding of the Add - // operation from the collection. - int index = myOperationBindingCollection->IndexOf( addOperationBinding ); - Console::WriteLine( "\nThe index of the OperationBinding of the Add operation : {0}", index ); - // - // - - Console::WriteLine( "" ); - - // - array^operationBindingArray = - gcnew array(myOperationBindingCollection->Count); - - // Copy this collection to the OperationBinding array. - myOperationBindingCollection->CopyTo( operationBindingArray, 0 ); - Console::WriteLine( "The operations supported by this service " - "are :" ); - - for each(OperationBinding^ myOperationBinding1 in operationBindingArray) - { - Binding^ myBinding = myOperationBinding1->Binding; - Console::WriteLine(" Binding : "+ myBinding->Name + " Name of " + - "operation : " + myOperationBinding1->Name); - } - // - - // Save the ServiceDescription to an external file. - myServiceDescription->Write( "MathService_new_cpp.wsdl" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/OperationBinding_OperationBinding/CPP/operationbinding_operationbinding.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/OperationBinding_OperationBinding/CPP/operationbinding_operationbinding.cpp deleted file mode 100644 index 6e56ab4aa9aa8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/OperationBinding_OperationBinding/CPP/operationbinding_operationbinding.cpp +++ /dev/null @@ -1,127 +0,0 @@ -// System.Web.Services.Description.OperationBinding -// System.Web.Services.Description.OperationBinding.OperationBinding -// System.Web.Services.Description.OperationBinding.Name -// System.Web.Services.Description.OperationBinding.Input -// System.Web.Services.Description.OperationBinding.Output -// System.Web.Services.Description.OperationBinding.Extensions -// System.Web.Services.Description.OperationBinding.Faults -// System.Web.Services.Description.OperationBinding.Binding - -/* -The following example demonstrates the usage of the 'OperationBinding' -class, constructor 'OperationBinding()' and various properties of the class. The -input to the program is a WSDL file 'MathService_input_cs.wsdl' without the -add operation binding for SOAP protocol. In the example the WSDL file is modified to insert -a new 'OperationBinding' instance for SOAP. The 'OperationBinding' instance -is populated based on WSDL document structure defined in WSDL specification.The updated -instance is then written to 'MathService_new_cs.wsdl'. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; - -int main() -{ - try - { - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_input_cs.wsdl" ); - String^ myTargetNamespace = myServiceDescription->TargetNamespace; - - // - // - // Create an OperationBinding for the Add operation. - OperationBinding^ addOperationBinding = gcnew OperationBinding; - String^ addOperation = "Add"; - addOperationBinding->Name = addOperation; - // - - // - // Create an InputBinding for the Add operation. - InputBinding^ myInputBinding = gcnew InputBinding; - SoapBodyBinding^ mySoapBodyBinding = gcnew SoapBodyBinding; - mySoapBodyBinding->Use = SoapBindingUse::Literal; - myInputBinding->Extensions->Add( mySoapBodyBinding ); - - // Add the InputBinding to the OperationBinding. - addOperationBinding->Input = myInputBinding; - // - - // - // Create an OutputBinding for the Add operation. - OutputBinding^ myOutputBinding = gcnew OutputBinding; - myOutputBinding->Extensions->Add( mySoapBodyBinding ); - - // Add the OutputBinding to the OperationBinding. - addOperationBinding->Output = myOutputBinding; - // - - // - // Create an extensibility element for a SoapOperationBinding. - SoapOperationBinding^ mySoapOperationBinding = gcnew SoapOperationBinding; - mySoapOperationBinding->Style = SoapBindingStyle::Document; - mySoapOperationBinding->SoapAction = String::Concat( myTargetNamespace, addOperation ); - - // Add the extensibility element SoapOperationBinding to - // the OperationBinding. - addOperationBinding->Extensions->Add( mySoapOperationBinding ); - // - // - - // - ServiceDescriptionFormatExtensionCollection^ myExtensions; - - // Get the FaultBindingCollection from the OperationBinding. - FaultBindingCollection^ myFaultBindingCollection = addOperationBinding->Faults; - FaultBinding^ myFaultBinding = gcnew FaultBinding; - myFaultBinding->Name = "ErrorFloat"; - - // Associate SOAP fault binding to the fault binding of the operation. - myExtensions = myFaultBinding->Extensions; - SoapFaultBinding^ mySoapFaultBinding = gcnew SoapFaultBinding; - mySoapFaultBinding->Use = SoapBindingUse::Literal; - mySoapFaultBinding->Namespace = myTargetNamespace; - myExtensions->Add( mySoapFaultBinding ); - myFaultBindingCollection->Add( myFaultBinding ); - // - - // Get the BindingCollection from the ServiceDescription. - BindingCollection^ myBindingCollection = myServiceDescription->Bindings; - - // Get the OperationBindingCollection of SOAP binding - // from the BindingCollection. - OperationBindingCollection^ myOperationBindingCollection = myBindingCollection[ 0 ]->Operations; - myOperationBindingCollection->Add( addOperationBinding ); - Console::WriteLine( "The operations supported by this service are:" ); - System::Collections::IEnumerator^ myEnum = myOperationBindingCollection->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - OperationBinding^ myOperationBinding = safe_cast(myEnum->Current); - - // - Binding^ myBinding = myOperationBinding->Binding; - Console::WriteLine( " Binding : {0} :: Name of operation : {1}", myBinding->Name, myOperationBinding->Name ); - // - - FaultBindingCollection^ myFaultBindingCollection1 = myOperationBinding->Faults; - System::Collections::IEnumerator^ myEnum1 = myFaultBindingCollection1->GetEnumerator(); - while ( myEnum1->MoveNext() ) - { - FaultBinding^ myFaultBinding1 = safe_cast(myEnum1->Current); - Console::WriteLine( " Fault : {0}", myFaultBinding1->Name ); - } - } - myServiceDescription->Write( "MathService_new_cs.wsdl" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/OperationCollection_Methods/CPP/operationcollection_methods.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/OperationCollection_Methods/CPP/operationcollection_methods.cpp deleted file mode 100644 index 1a8d04b1690b7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/OperationCollection_Methods/CPP/operationcollection_methods.cpp +++ /dev/null @@ -1,92 +0,0 @@ -// System.Web.Sevices.Description.OperationCollection -// System.Web.Sevices.Description.OperationCollection.Add -// System.Web.Sevices.Description.OperationCollection.Contains -// System.Web.Sevices.Description.OperationCollection.IndexOf -// System.Web.Sevices.Description.OperationCollection.Remove -// System.Web.Sevices.Description.OperationCollection.Insert -// System.Web.Sevices.Description.OperationCollection.Item -// System.Web.Sevices.Description.OperationCollection.CopyTo - -/* -The following example demonstrates the usage of the -'OperationCollection' class , its property 'Item' and its methods -'Add', 'Contains', 'CopyTo', 'IndexOf', 'Insert' and 'Remove'. -The input to the program is a WSDL file 'MathService_input_cs.wsdl'with -information related to the 'Add' operation for the SOAP protocol, -removed from it. It creates a new file 'MathService_new_cs.wsdl' with -the added information about the 'Add' method. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Xml; -using namespace System::Web::Services::Description; -int main() -{ - try - { - // Read the 'MathService_Input_cs.wsdl' file. - ServiceDescription^ myDescription = ServiceDescription::Read( "MathService_Input_cs.wsdl" ); - PortTypeCollection^ myPortTypeCollection = myDescription->PortTypes; - - // Get the 'OperationCollection' for 'SOAP' protocol. - - // - OperationCollection^ myOperationCollection = myPortTypeCollection[ 0 ]->Operations; - Operation^ myOperation = gcnew Operation; - myOperation->Name = "Add"; - OperationMessage^ myOperationMessageInput = (OperationMessage^)(gcnew OperationInput); - myOperationMessageInput->Message = gcnew XmlQualifiedName( "AddSoapIn",myDescription->TargetNamespace ); - OperationMessage^ myOperationMessageOutput = (OperationMessage^)(gcnew OperationOutput); - myOperationMessageOutput->Message = gcnew XmlQualifiedName( "AddSoapOut",myDescription->TargetNamespace ); - myOperation->Messages->Add( myOperationMessageInput ); - myOperation->Messages->Add( myOperationMessageOutput ); - myOperationCollection->Add( myOperation ); - // - - // - // - if ( myOperationCollection->Contains( myOperation ) == true ) - { - Console::WriteLine( "The index of the added 'myOperation' operation is : {0}", myOperationCollection->IndexOf( myOperation ) ); - } - // - // - - // - // - // - myOperationCollection->Remove( myOperation ); - - // Insert the 'myOpearation' operation at the index '0'. - myOperationCollection->Insert( 0, myOperation ); - Console::WriteLine( "The operation at index '0' is : {0}", myOperationCollection[ 0 ]->Name ); - // - // - // - - // - array^myOperationArray = gcnew array(myOperationCollection->Count); - myOperationCollection->CopyTo( myOperationArray, 0 ); - Console::WriteLine( "The operation(s) in the collection are :" ); - for ( int i = 0; i < myOperationCollection->Count; i++ ) - { - Console::WriteLine( " {0}", myOperationArray[ i ]->Name ); - } - // - - myDescription->Write( "MathService_New_cs.wsdl" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/OperationFaultCollection_7/CPP/operationfaultcollection_7.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/OperationFaultCollection_7/CPP/operationfaultcollection_7.cpp deleted file mode 100644 index ad166a972198c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/OperationFaultCollection_7/CPP/operationfaultcollection_7.cpp +++ /dev/null @@ -1,114 +0,0 @@ -// System::Web::Services::Description.OperationFaultCollection -// System::Web::Services::Description.OperationFaultCollection::Contains -// System::Web::Services::Description.OperationFaultCollection::CopyTo -// System::Web::Services::Description.OperationFaultCollection::IndexOf -// System::Web::Services::Description.OperationFaultCollection::Insert -// System::Web::Services::Description.OperationFaultCollection::Item -// System::Web::Services::Description.OperationFaultCollection::Remove - -/* -The following example demonstrates the usage of the -'OperationFaultCollection' class, the 'Contains', 'CopyTo', 'IndexOf', -'Insert', 'Remove', methods and the 'Item' property of the class. -The program reverses the fault bindings that appear in the WSDL file. -It also reverses the operation faults and writes the resultant WSDL -file. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -int main() -{ - try - { - // Read the StockQuote.wsdl file as input. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "StockQuote_cpp.wsdl" ); - - // - // - // - // - // - // - PortTypeCollection^ myPortTypeCollection = myServiceDescription->PortTypes; - PortType^ myPortType = myPortTypeCollection[ 0 ]; - OperationCollection^ myOperationCollection = myPortType->Operations; - Operation^ myOperation = myOperationCollection[ 0 ]; - OperationFaultCollection^ myOperationFaultCollection = myOperation->Faults; - - // Reverse the operation fault order. - if ( myOperationFaultCollection->Count > 1 ) - { - OperationFault^ myOperationFault = myOperationFaultCollection[ 0 ]; - array^myOperationFaultArray = gcnew array(myOperationFaultCollection->Count); - - // Copy the operation fault to a temporary array. - myOperationFaultCollection->CopyTo( myOperationFaultArray, 0 ); - - // Remove all the operation faults from the collection. - for ( int i = 0; i < myOperationFaultArray->Length; i++ ) - myOperationFaultCollection->Remove( myOperationFaultArray[ i ] ); - - // Insert the operation faults in the reverse order. - for ( int i = 0,j = (myOperationFaultArray->Length - 1); i < myOperationFaultArray->Length; i++,j-- ) - myOperationFaultCollection->Insert( i, myOperationFaultArray[ j ] ); - if ( myOperationFaultCollection->Contains( myOperationFault ) && (myOperationFaultCollection->IndexOf( myOperationFault ) == myOperationFaultCollection->Count - 1) ) - Console::WriteLine( "Succeeded in reversing the operation faults." ); - else - Console::WriteLine( "Error while reversing the faults." ); - } - // - // - // - // - // - // - - BindingCollection^ myBindingCollection = myServiceDescription->Bindings; - Binding^ myBinding = myBindingCollection[ 0 ]; - OperationBindingCollection^ myOperationBindingCollection = myBinding->Operations; - OperationBinding^ myOperationBinding = myOperationBindingCollection[ 0 ]; - FaultBindingCollection^ myFaultBindingCollection = myOperationBinding->Faults; - - // Reverse the fault binding order. - if ( myFaultBindingCollection->Count > 1 ) - { - FaultBinding^ myFaultBinding = myFaultBindingCollection[ 0 ]; - array^myFaultBindingArray = gcnew array(myFaultBindingCollection->Count); - - // Copy the fault bindings to a temporary array. - myFaultBindingCollection->CopyTo( myFaultBindingArray, 0 ); - - // Remove all the fault bindings. - for ( int i = 0; i < myFaultBindingArray->Length; i++ ) - myFaultBindingCollection->Remove( myFaultBindingArray[ i ] ); - - // Insert the fault bindings in the reverse order. - for ( int i = 0,j = (myFaultBindingArray->Length - 1); i < myFaultBindingArray->Length; i++,j-- ) - myFaultBindingCollection->Insert( i, myFaultBindingArray[ j ] ); - - // Check whether the first element before the reversal - // is now the last element. - if ( myFaultBindingCollection->Contains( myFaultBinding ) && myFaultBindingCollection->IndexOf( myFaultBinding ) == (myFaultBindingCollection->Count - 1) ) - { - // Write the WSDL generated to a file. - myServiceDescription->Write( "StockQuoteOut_cpp.wsdl" ); - Console::WriteLine( "The file StockQuoteOut_cpp.wsdl was successfully written" ); - } - else - Console::WriteLine( "An error occurred while reversing the input WSDL file." ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/OperationFaultCollection_Add/CPP/operationfaultcollection_add.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/OperationFaultCollection_Add/CPP/operationfaultcollection_add.cpp deleted file mode 100644 index 82de5e660ad46..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/OperationFaultCollection_Add/CPP/operationfaultcollection_add.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// System::Web::Services::Description.OperationFaultCollection->Add - -/* -The following example demonstrates the 'Add' method of the -'OperationFaultCollection' class. Based on 'StockQuote_cs::wsdl', the program generates a WSDL file -'StockQuoteNew_cs::wsdl' which contains 'Fault' information written out. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Xml; -using namespace System::Xml::Schema; -using namespace System::Xml::Serialization; - -int main() -{ - try - { - // Read the 'StockQuote::wsdl' file as input. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "StockQuote_cpp.wsdl" ); - PortTypeCollection^ myPortTypeCollection = myServiceDescription->PortTypes; - PortType^ myPortType = myPortTypeCollection[ 0 ]; - OperationCollection^ myOperationCollection = myPortType->Operations; - Operation^ myOperation = myOperationCollection[ 0 ]; - - // - OperationFaultCollection^ myOperationFaultCollection = myOperation->Faults; - OperationFault^ myOperationFault = gcnew OperationFault; - myOperationFault->Name = "ErrorString"; - myOperationFault->Message = gcnew XmlQualifiedName( "s0:GetTradePriceStringFault" ); - myOperationFaultCollection->Add( myOperationFault ); - // - - Console::WriteLine( "Added OperationFault with Name: {0}", myOperationFault->Name ); - myOperationFault = gcnew OperationFault; - myOperationFault->Name = "ErrorInt"; - myOperationFault->Message = gcnew XmlQualifiedName( "s0:GetTradePriceIntFault" ); - myOperationFaultCollection->Add( myOperationFault ); - myOperationCollection->Add( myOperation ); - Console::WriteLine( "Added Second OperationFault with Name: {0}", myOperationFault->Name ); - myServiceDescription->Write( "StockQuoteNew_cpp.wsdl" ); - Console::WriteLine( "\nThe file 'StockQuoteNew_cpp.wsdl' is created successfully." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/OperationFaultCollection_Item/CPP/operationfaultcollection_item.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/OperationFaultCollection_Item/CPP/operationfaultcollection_item.cpp deleted file mode 100644 index 845e68c61640c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/OperationFaultCollection_Item/CPP/operationfaultcollection_item.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// System::Web::Services::Description.OperationFaultCollection::Item->Item[String*] - -/* -The following example demonstrates the 'Item' property of the -'OperationFaultCollection' class. The program removes a fault binding -with the name 'ErrorString' from the WSDL file. It also removes an -operation fault with the name 'ErrorString' and generates a WSDL file. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -int main() -{ - try - { - // Read the 'StockQuote::wsdl' file as input. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "StockQuote_cpp.wsdl" ); - - // Remove the operation fault with the name 'ErrorString'. - PortTypeCollection^ myPortTypeCollection = myServiceDescription->PortTypes; - PortType^ myPortType = myPortTypeCollection[ 0 ]; - OperationCollection^ myOperationCollection = myPortType->Operations; - Operation^ myOperation = myOperationCollection[ 0 ]; - - // - OperationFaultCollection^ myOperationFaultCollection = myOperation->Faults; - OperationFault^ myOperationFault = myOperationFaultCollection[ "ErrorString" ]; - if ( myOperationFault != nullptr ) - myOperationFaultCollection->Remove( myOperationFault ); - // - - // Remove the fault binding with the name 'ErrorString'. - BindingCollection^ myBindingCollection = myServiceDescription->Bindings; - Binding^ myBinding = myBindingCollection[ 0 ]; - OperationBindingCollection^ myOperationBindingCollection = myBinding->Operations; - OperationBinding^ myOperationBinding = myOperationBindingCollection[ 0 ]; - FaultBindingCollection^ myFaultBindingCollection = myOperationBinding->Faults; - if ( myFaultBindingCollection->Contains( myFaultBindingCollection[ "ErrorString" ] ) ) - myFaultBindingCollection->Remove( myFaultBindingCollection[ "ErrorString" ] ); - myServiceDescription->Write( "OperationFaultCollection_out.wsdl" ); - Console::WriteLine( "WSDL file with name 'OperationFaultCollection_out.wsdl' created Successfully" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/OperationFault_OperationFault/CPP/operationfault_operationfault.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/OperationFault_OperationFault/CPP/operationfault_operationfault.cpp deleted file mode 100644 index b5f3b55eaa1a8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/OperationFault_OperationFault/CPP/operationfault_operationfault.cpp +++ /dev/null @@ -1,55 +0,0 @@ -// System::Web::Services::Description.OperationFault -// System::Web::Services::Description.OperationFault::OperationFault - -/* The following example demonstrates the usage of the 'OperationFault' -class and its constructor. The program generates a WSDL file -'StockQuoteNew_cs::wsdl' which contains 'Fault' information written -out. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Xml; -using namespace System::Xml::Schema; -using namespace System::Xml::Serialization; -int main() -{ - try - { - // Read the 'StockQuote_cpp.wsdl' file as input. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "StockQuote_cpp.wsdl" ); - PortTypeCollection^ myPortTypeCollection = myServiceDescription->PortTypes; - PortType^ myPortType = myPortTypeCollection[ 0 ]; - OperationCollection^ myOperationCollection = myPortType->Operations; - Operation^ myOperation = myOperationCollection[ 0 ]; - - // - OperationFault^ myOperationFault = gcnew OperationFault; - myOperationFault->Name = "ErrorString"; - myOperationFault->Message = gcnew XmlQualifiedName( "s0:GetTradePriceStringFault" ); - myOperation->Faults->Add( myOperationFault ); - Console::WriteLine( "Added OperationFault with Name: {0}", myOperationFault->Name ); - myOperationFault = gcnew OperationFault; - myOperationFault->Name = "ErrorInt"; - myOperationFault->Message = gcnew XmlQualifiedName( "s0:GetTradePriceIntFault" ); - myOperation->Faults->Add( myOperationFault ); - // - - myOperationCollection->Add( myOperation ); - Console::WriteLine( "Added Second OperationFault with Name: {0}", myOperationFault->Name ); - myServiceDescription->Write( "StockQuoteNew_cpp.wsdl" ); - Console::WriteLine( "\nThe file 'StockQuoteNew_cpp.wsdl' is created successfully." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/OperationFlow_Enum/CPP/operationflow_enum.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/OperationFlow_Enum/CPP/operationflow_enum.cpp deleted file mode 100644 index 200d1635e9458..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/OperationFlow_Enum/CPP/operationflow_enum.cpp +++ /dev/null @@ -1,141 +0,0 @@ -// System.Web.Sevices.Description.OperationFlow -// System.Web.Sevices.Description.OperationFlow.None -// System.Web.Sevices.Description.OperationFlow.OneWay -// System.Web.Sevices.Description.OperationFlow.Notification -// System.Web.Sevices.Description.OperationFlow.SolicitResponse -// System.Web.Sevices.Description.OperationFlow.RequestResponse - -/* -The following example demonstrates the usage of the 'OperationFlow' -Enumeration, its members 'None', 'OneWay', 'Notification', -'SolicitResponse', 'RequestResponse'. The input to the program is a -WSDL file 'MathService_input_cs.wsdl' It creates a new file -'MathService_new_cs.wsdl' by adding the operation messages -'OperationInput' and 'OperationOutput' are added to the -'OperationInput' and 'OperationOutput' in such way that all members of -the 'OperationFlow' enumeration are generated. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Web::Services; -using namespace System::Web::Services::Description; - -// -// -// -// -// -void DisplayOperationFlowDescription( OperationFlow myOperationFlow ) -{ - switch ( myOperationFlow ) - { - case OperationFlow::None: - Console::WriteLine( "Indicates that the endpoint or service " - "receives no transmissions (None)." ); - break; - - case OperationFlow::OneWay: - Console::WriteLine( "Indicates that the endpoint or service " - "receives a message (OneWay)." ); - break; - - case OperationFlow::Notification: - Console::WriteLine( "Indicates that the endpoint or service " - "sends a message (Notification)." ); - break; - - case OperationFlow::SolicitResponse: - Console::WriteLine( "Indicates that the endpoint or service " - "sends a message, then receives a " - "correlated message (SolicitResponse)." ); - break; - - case OperationFlow::RequestResponse: - Console::WriteLine( "Indicates that the endpoint or service " - "receives a message, then sends a " - "correlated message (RequestResponse)." ); - break; - } -} -// -// -// -// -// - -int main() -{ - try - { - ServiceDescription^ myDescription = ServiceDescription::Read( "MathService_Input_cs.wsdl" ); - PortTypeCollection^ myPortTypeCollection = myDescription->PortTypes; - - // Get the OperationCollection for SOAP protocol. - OperationCollection^ myOperationCollection = myPortTypeCollection[ 0 ]->Operations; - - // Get the OperationMessageCollection for the Add operation. - OperationMessageCollection^ myOperationMessageCollection = myOperationCollection[ 0 ]->Messages; - - // Indicate that the endpoint or service receives no - // transmissions (None). - Console::WriteLine( "myOperationMessageCollection does not " - "contain any operation messages." ); - DisplayOperationFlowDescription( myOperationMessageCollection->Flow ); - Console::WriteLine(); - - // Indicate that the endpoint or service receives a message (OneWay). - OperationMessage^ myInputOperationMessage = dynamic_cast(gcnew OperationInput); - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "AddSoapIn",myDescription->TargetNamespace ); - myInputOperationMessage->Message = myXmlQualifiedName; - myOperationMessageCollection->Add( myInputOperationMessage ); - Console::WriteLine( "myOperationMessageCollection contains " - "only input operation messages." ); - DisplayOperationFlowDescription( myOperationMessageCollection->Flow ); - Console::WriteLine(); - myOperationMessageCollection->Remove( myInputOperationMessage ); - - // Indicate that an endpoint or service sends a message (Notification). - OperationMessage^ myOutputOperationMessage = dynamic_cast(gcnew OperationOutput); - XmlQualifiedName^ myXmlQualifiedName1 = gcnew XmlQualifiedName( "AddSoapOut",myDescription->TargetNamespace ); - myOutputOperationMessage->Message = myXmlQualifiedName1; - myOperationMessageCollection->Add( myOutputOperationMessage ); - Console::WriteLine( "myOperationMessageCollection contains " - "only output operation messages." ); - DisplayOperationFlowDescription( myOperationMessageCollection->Flow ); - Console::WriteLine(); - - // Indicate that an endpoint or service sends a message, then - // receives a correlated message (SolicitResponse). - myOperationMessageCollection->Add( myInputOperationMessage ); - Console::WriteLine( "'myOperationMessageCollection' contains " - "an output operation message first, then " - "an input operation message." ); - DisplayOperationFlowDescription( myOperationMessageCollection->Flow ); - Console::WriteLine(); - - // Indicate that an endpoint or service receives a message, - // then sends a correlated message (RequestResponse). - myOperationMessageCollection->Remove( myInputOperationMessage ); - myOperationMessageCollection->Insert( 0, myInputOperationMessage ); - Console::WriteLine( "myOperationMessageCollection contains " - "an input operation message first, then " - "an output operation message." ); - DisplayOperationFlowDescription( myOperationMessageCollection->Flow ); - Console::WriteLine(); - myDescription->Write( "MathService_new_cs.wsdl" ); - Console::WriteLine( "The file MathService_new_cs.wsdl was successfully written." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/OperationInput_OperationInput/CPP/operationinput_operationinput.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/OperationInput_OperationInput/CPP/operationinput_operationinput.cpp deleted file mode 100644 index fdc4a94dd1da5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/OperationInput_OperationInput/CPP/operationinput_operationinput.cpp +++ /dev/null @@ -1,127 +0,0 @@ -// System.Web.Services.Description.OperationInput -// System.Web.Services.Description.OperationInput.OperationInput - -/* -The following example demonstrates the usage of the 'OperationInput' -class and its constructor 'OperationInput'. It instantiates the -'ServiceDescription' object by reading a file 'AddNumbersIn_cs.wsdl' -and then creates 'AddNumbersOut_cs.wsdl' file which corresponds to -added attributes in the 'ServiceDescription' instance. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - try - { - ServiceDescription^ myDescription = ServiceDescription::Read( "AddNumbersIn_cs.wsdl" ); - - // Add the ServiceHttpPost binding. - Binding^ myBinding = gcnew Binding; - myBinding->Name = "ServiceHttpPost"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:ServiceHttpPost" ); - myBinding->Type = myXmlQualifiedName; - HttpBinding^ myHttpBinding = gcnew HttpBinding; - myHttpBinding->Verb = "POST"; - myBinding->Extensions->Add( myHttpBinding ); - - // Add the operation name AddNumbers. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "AddNumbers"; - HttpOperationBinding^ myOperation = gcnew HttpOperationBinding; - myOperation->Location = "/AddNumbers"; - myOperationBinding->Extensions->Add( myOperation ); - - // Add the input binding. - InputBinding^ myInput = gcnew InputBinding; - MimeContentBinding^ postMimeContentbinding = gcnew MimeContentBinding; - postMimeContentbinding->Type = "application/x-www-form-urlencoded"; - myInput->Extensions->Add( postMimeContentbinding ); - - // Add the InputBinding to the OperationBinding. - myOperationBinding->Input = myInput; - - // Add the ouput binding. - OutputBinding^ myOutput = gcnew OutputBinding; - MimeXmlBinding^ postMimeXmlBinding = gcnew MimeXmlBinding; - postMimeXmlBinding->Part = "Body"; - myOutput->Extensions->Add( postMimeXmlBinding ); - - // Add the OutputBinding to the OperationBinding. - myOperationBinding->Output = myOutput; - myBinding->Operations->Add( myOperationBinding ); - myDescription->Bindings->Add( myBinding ); - - // Add the port definition. - Port^ postPort = gcnew Port; - postPort->Name = "ServiceHttpPost"; - postPort->Binding = gcnew XmlQualifiedName( "s0:ServiceHttpPost" ); - HttpAddressBinding^ postAddressBinding = gcnew HttpAddressBinding; - postAddressBinding->Location = "http://localhost/Service.cs.asmx"; - postPort->Extensions->Add( postAddressBinding ); - myDescription->Services[ 0 ]->Ports->Add( postPort ); - - // Add the post port type definition. - PortType^ postPortType = gcnew PortType; - postPortType->Name = "ServiceHttpPost"; - Operation^ postOperation = gcnew Operation; - postOperation->Name = "AddNumbers"; - OperationMessage^ postOutput = dynamic_cast(gcnew OperationOutput); - postOutput->Message = gcnew XmlQualifiedName( "s0:AddNumbersHttpPostOut" ); - - // - OperationInput^ postInput = gcnew OperationInput; - postInput->Message = gcnew XmlQualifiedName( "s0:AddNumbersHttpPostIn" ); - postOperation->Messages->Add( postInput ); - postOperation->Messages->Add( postOutput ); - postPortType->Operations->Add( postOperation ); - // - - myDescription->PortTypes->Add( postPortType ); - - // Add the first message information. - Message^ postMessage1 = gcnew Message; - postMessage1->Name = "AddNumbersHttpPostIn"; - MessagePart^ postMessagePart1 = gcnew MessagePart; - postMessagePart1->Name = "firstnumber"; - postMessagePart1->Type = gcnew XmlQualifiedName( "s:string" ); - - // Add the second message information. - MessagePart^ postMessagePart2 = gcnew MessagePart; - postMessagePart2->Name = "secondnumber"; - postMessagePart2->Type = gcnew XmlQualifiedName( "s:string" ); - postMessage1->Parts->Add( postMessagePart1 ); - postMessage1->Parts->Add( postMessagePart2 ); - Message^ postMessage2 = gcnew Message; - postMessage2->Name = "AddNumbersHttpPostOut"; - - // Add the third message information. - MessagePart^ postMessagePart3 = gcnew MessagePart; - postMessagePart3->Name = "Body"; - postMessagePart3->Element = gcnew XmlQualifiedName( "s0:int" ); - postMessage2->Parts->Add( postMessagePart3 ); - myDescription->Messages->Add( postMessage1 ); - myDescription->Messages->Add( postMessage2 ); - - // Write the ServiceDescription as a WSDL file. - myDescription->Write( "AddNumbersOut_cs.wsdl" ); - Console::WriteLine( "WSDL file named AddNumberOut_cs.Wsdl" - " created successfully." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/OperationMessageCollection_Sample/CPP/operationmessagecollection_sample.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/OperationMessageCollection_Sample/CPP/operationmessagecollection_sample.cpp deleted file mode 100644 index b9b0d6dc3f909..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/OperationMessageCollection_Sample/CPP/operationmessagecollection_sample.cpp +++ /dev/null @@ -1,129 +0,0 @@ - - -// System.Web.Services.Description.OperationMessageCollection -// System.Web.Services.Description.OperationMessageCollection.Item -// System.Web.Services.Description.OperationMessageCollection.CopyTo -// System.Web.Services.Description.OperationMessageCollection.Add -// System.Web.Services.Description.OperationMessageCollection.Contains -// System.Web.Services.Description.OperationMessageCollection.IndexOf -// System.Web.Services.Description.OperationMessageCollection.Remove -// System.Web.Services.Description.OperationMessageCollection.Insert -// System.Web.Services.Description.OperationMessageCollection.Flow -// System.Web.Services.Description.OperationMessageCollection.Input -// System.Web.Services.Description.OperationMessageCollection.Output - -/* -The following example demonstrates the usage of the -'OperationMessageCollection' class and various methods and properties of it. -The input to the program is a WSDL file 'MathService_input_vb.wsdl' without -the input message of 'Add' operation for the SOAP -protocol. In a way it tries to simulate a scenario -wherein the operation flow was 'Notification', however later operation -flow changed to 'Request-Response'.The WSDL file is -modified by inserting a new input message for the 'Add' operation. The -input message in the ServiceDescription instance is loaded with values for -'Input Message'. The instance is then written to 'MathService_new_vb.wsdl'. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Web::Services; -using namespace System::Web::Services::Description; - -// -// -// -// Displays the properties of the OperationMessageCollection. -void DisplayFlowInputOutput( OperationMessageCollection^ myOperationMessageCollection, String^ myOperation ) -{ - Console::WriteLine( "After {0}:", myOperation ); - Console::WriteLine( "Flow : {0}", myOperationMessageCollection->Flow ); - Console::WriteLine( "The first occurrence of operation Input in the collection {0}", myOperationMessageCollection->Input ); - Console::WriteLine( "The first occurrence of operation Output in the collection {0}", myOperationMessageCollection->Output ); - Console::WriteLine(); -} -// -// -// - -int main() -{ - try - { - ServiceDescription^ myDescription = ServiceDescription::Read( "MathService_input_cs.wsdl" ); - PortTypeCollection^ myPortTypeCollection = myDescription->PortTypes; - - // Get the OperationCollection for the SOAP protocol. - OperationCollection^ myOperationCollection = myPortTypeCollection[ 0 ]->Operations; - - // Get the OperationMessageCollection for the Add operation. - OperationMessageCollection^ myOperationMessageCollection = myOperationCollection[ 0 ]->Messages; - - // Display the Flow, Input, and Output properties. - DisplayFlowInputOutput( myOperationMessageCollection, "Start" ); - - // - // - // Get the operation message for the Add operation. - OperationMessage^ myOperationMessage = myOperationMessageCollection[ 0 ]; - OperationMessage^ myInputOperationMessage = dynamic_cast(gcnew OperationInput); - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "AddSoapIn",myDescription->TargetNamespace ); - myInputOperationMessage->Message = myXmlQualifiedName; - - // - array^myCollection = gcnew array(myOperationMessageCollection->Count); - myOperationMessageCollection->CopyTo( myCollection, 0 ); - Console::WriteLine( "Operation name(s) :" ); - for ( int i = 0; i < myCollection->Length; i++ ) - { - Console::WriteLine( " {0}", myCollection[ i ]->Operation->Name ); - } - // - - // Add the OperationMessage to the collection. - myOperationMessageCollection->Add( myInputOperationMessage ); - - // - DisplayFlowInputOutput( myOperationMessageCollection, "Add" ); - - // - // - if ( myOperationMessageCollection->Contains( myOperationMessage ) == true ) - { - int myIndex = myOperationMessageCollection->IndexOf( myOperationMessage ); - Console::WriteLine( " The index of the Add operation message in the collection is : {0}", myIndex ); - } - // - // - // - - // - // - myOperationMessageCollection->Remove( myInputOperationMessage ); - - // Display Flow, Input, and Output after removing. - DisplayFlowInputOutput( myOperationMessageCollection, "Remove" ); - - // Insert the message at index 0 in the collection. - myOperationMessageCollection->Insert( 0, myInputOperationMessage ); - - // Display Flow, Input, and Output after inserting. - DisplayFlowInputOutput( myOperationMessageCollection, "Insert" ); - // - // - - myDescription->Write( "MathService_new_cs.wsdl" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/OperationMessage_Properties/CPP/operationmessage_properties.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/OperationMessage_Properties/CPP/operationmessage_properties.cpp deleted file mode 100644 index c7cd7a8b49c75..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/OperationMessage_Properties/CPP/operationmessage_properties.cpp +++ /dev/null @@ -1,64 +0,0 @@ -// System.Web.Services.Description.OperationMessage -// System.Web.Services.Description.OperationMessage.OperationMessage -// System.Web.Services.Description.OperationMessage.Message -// System.Web.Services.Description.OperationMessage.Operation - -/* -The following example demonstrates the usage of the 'OperationMessage' -class, its constructor and the properties 'Message' and 'Operation'. -The input to the program is a WSDL file 'MathService_input_cs.wsdl' without -the input message of 'Add' operation for the SOAP -protocol. In this example a new input message for the 'Add' operation is created. -The input message in the ServiceDescription instance is loaded with values for -'InputMessage'. The instance is then written to 'MathService_new_cs.wsdl'. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Web::Services; -using namespace System::Web::Services::Description; - -int main() -{ - try - { - ServiceDescription^ myDescription = ServiceDescription::Read( "MathService_input_cs.wsdl" ); - PortTypeCollection^ myPortTypeCollection = myDescription->PortTypes; - - // Get the OperationCollection for the SOAP protocol. - OperationCollection^ myOperationCollection = myPortTypeCollection[ 0 ]->Operations; - - // Get the OperationMessageCollection for the Add operation. - OperationMessageCollection^ myOperationMessageCollection = myOperationCollection[ 0 ]->Messages; - - // - // - // - OperationMessage^ myInputOperationMessage = (OperationMessage^)(gcnew OperationInput); - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "AddSoapIn",myDescription->TargetNamespace ); - myInputOperationMessage->Message = myXmlQualifiedName; - // - - myOperationMessageCollection->Insert( 0, myInputOperationMessage ); - - // Display the operation name of the InputMessage. - Console::WriteLine( "The operation name is {0}", myInputOperationMessage->Operation->Name ); - // - // - - // Add the OperationMessage to the collection. - myDescription->Write( "MathService_new_cs.wsdl" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/OperationOutput_OperationOutput/CPP/operationoutput_operationoutput.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/OperationOutput_OperationOutput/CPP/operationoutput_operationoutput.cpp deleted file mode 100644 index 9500f4f962e78..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/OperationOutput_OperationOutput/CPP/operationoutput_operationoutput.cpp +++ /dev/null @@ -1,127 +0,0 @@ -// System.Web.Services.Description.OperationOutput -// System.Web.Services.Description.OperationOutput.OperationOutput - -/* -The following example demonstrates the usage of the 'OperationOutput' -class and its constructor 'OperationOutput'. It creates a -'ServiceDescription' object by reading the file 'AddNumbersIn_cs.wsdl' and -then creates 'AddNumbersOut_cs.wsdl' file which corresponds to added -attributes in the 'ServiceDescription' instance. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - try - { - ServiceDescription^ myDescription = ServiceDescription::Read( "AddNumbersIn_cs.wsdl" ); - - // Add the ServiceHttpPost binding. - Binding^ myBinding = gcnew Binding; - myBinding->Name = "ServiceHttpPost"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:ServiceHttpPost" ); - myBinding->Type = myXmlQualifiedName; - HttpBinding^ myHttpBinding = gcnew HttpBinding; - myHttpBinding->Verb = "POST"; - myBinding->Extensions->Add( myHttpBinding ); - - // Add the operation name AddNumbers. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "AddNumbers"; - HttpOperationBinding^ myOperation = gcnew HttpOperationBinding; - myOperation->Location = "/AddNumbers"; - myOperationBinding->Extensions->Add( myOperation ); - - // Add the input binding. - InputBinding^ myInput = gcnew InputBinding; - MimeContentBinding^ postMimeContentbinding = gcnew MimeContentBinding; - postMimeContentbinding->Type = "application/x-www-form-urlencoded"; - myInput->Extensions->Add( postMimeContentbinding ); - - // Add the InputBinding to the OperationBinding. - myOperationBinding->Input = myInput; - - // Add the ouput binding. - OutputBinding^ myOutput = gcnew OutputBinding; - MimeXmlBinding^ postMimeXmlbinding = gcnew MimeXmlBinding; - postMimeXmlbinding->Part = "Body"; - myOutput->Extensions->Add( postMimeXmlbinding ); - - // Add the OutPutBinding to the OperationBinding. - myOperationBinding->Output = myOutput; - myBinding->Operations->Add( myOperationBinding ); - myDescription->Bindings->Add( myBinding ); - - // Add the port definition. - Port^ postPort = gcnew Port; - postPort->Name = "ServiceHttpPost"; - postPort->Binding = gcnew XmlQualifiedName( "s0:ServiceHttpPost" ); - HttpAddressBinding^ postAddressBinding = gcnew HttpAddressBinding; - postAddressBinding->Location = "http://localhost/Service_cs.asmx"; - postPort->Extensions->Add( postAddressBinding ); - myDescription->Services[ 0 ]->Ports->Add( postPort ); - - // Add the post port type definition. - PortType^ postPortType = gcnew PortType; - postPortType->Name = "ServiceHttpPost"; - Operation^ postOperation = gcnew Operation; - postOperation->Name = "AddNumbers"; - OperationMessage^ postInput = dynamic_cast(gcnew OperationInput); - postInput->Message = gcnew XmlQualifiedName( "s0:AddNumbersHttpPostIn" ); - - // - OperationOutput^ postOutput = gcnew OperationOutput; - postOutput->Message = gcnew XmlQualifiedName( "s0:AddNumbersHttpPostOut" ); - postOperation->Messages->Add( postInput ); - postOperation->Messages->Add( postOutput ); - postPortType->Operations->Add( postOperation ); - // - - myDescription->PortTypes->Add( postPortType ); - - // Add the first message information. - Message^ postMessage1 = gcnew Message; - postMessage1->Name = "AddNumbersHttpPostIn"; - MessagePart^ postMessagePart1 = gcnew MessagePart; - postMessagePart1->Name = "firstnumber"; - postMessagePart1->Type = gcnew XmlQualifiedName( "s:string" ); - - // Add the second message information. - MessagePart^ postMessagePart2 = gcnew MessagePart; - postMessagePart2->Name = "secondnumber"; - postMessagePart2->Type = gcnew XmlQualifiedName( "s:string" ); - postMessage1->Parts->Add( postMessagePart1 ); - postMessage1->Parts->Add( postMessagePart2 ); - Message^ postMessage2 = gcnew Message; - postMessage2->Name = "AddNumbersHttpPostOut"; - - // Add the third message information. - MessagePart^ postMessagePart3 = gcnew MessagePart; - postMessagePart3->Name = "Body"; - postMessagePart3->Element = gcnew XmlQualifiedName( "s0:int" ); - postMessage2->Parts->Add( postMessagePart3 ); - myDescription->Messages->Add( postMessage1 ); - myDescription->Messages->Add( postMessage2 ); - - // Write the ServiceDescription as a WSDL file. - myDescription->Write( "AddNumbersOut_cs.wsdl" ); - Console::WriteLine( "WSDL file named AddNumbersOut_cs.Wsdl" - " created successfully." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Operation_2/CPP/operation_2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Operation_2/CPP/operation_2.cpp deleted file mode 100644 index 6af07a14872f4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Operation_2/CPP/operation_2.cpp +++ /dev/null @@ -1,155 +0,0 @@ -// System.Web.Services.Description Operation.ParameterOrderString -// System.Web.Services.Description Operation.ParameterOrder - -/* The following program demonstrates the 'ParameterOrderString' and - 'ParameterOrder' properties of 'Operation' class. It collects the - message part names from the input WSDL file and sets to the - 'ParameterOrderString'. It then displays the same using 'ParameterOrder' - property. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - try - { - ServiceDescription^ myDescription = ServiceDescription::Read( "Operation_2_Input_CS.wsdl" ); - Binding^ myBinding = gcnew Binding; - myBinding->Name = "Operation_2_ServiceHttpPost"; - XmlQualifiedName^ myQualifiedName = gcnew XmlQualifiedName( "s0:Operation_2_ServiceHttpPost" ); - myBinding->Type = myQualifiedName; - HttpBinding^ myHttpBinding = gcnew HttpBinding; - myHttpBinding->Verb = "POST"; - - // Add the 'HttpBinding' to the 'Binding'. - myBinding->Extensions->Add( myHttpBinding ); - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "AddNumbers"; - HttpOperationBinding^ myHttpOperationBinding = gcnew HttpOperationBinding; - myHttpOperationBinding->Location = "/AddNumbers"; - - // Add the 'HttpOperationBinding' to 'OperationBinding'. - myOperationBinding->Extensions->Add( myHttpOperationBinding ); - InputBinding^ myInputBinding = gcnew InputBinding; - MimeContentBinding^ myPostMimeContentbinding = gcnew MimeContentBinding; - myPostMimeContentbinding->Type = "application/x-www-form-urlencoded"; - myInputBinding->Extensions->Add( myPostMimeContentbinding ); - - // Add the 'InputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInputBinding; - OutputBinding^ myOutputBinding = gcnew OutputBinding; - MimeXmlBinding^ myPostMimeXmlbinding = gcnew MimeXmlBinding; - myPostMimeXmlbinding->Part = "Body"; - myOutputBinding->Extensions->Add( myPostMimeXmlbinding ); - - // Add the 'OutPutBinding' to 'OperationBinding'. - myOperationBinding->Output = myOutputBinding; - - // Add the 'OperationBinding' to 'Binding'. - myBinding->Operations->Add( myOperationBinding ); - - // Add the 'Binding' to 'BindingCollection' of 'ServiceDescription'. - myDescription->Bindings->Add( myBinding ); - Port^ myPostPort = gcnew Port; - myPostPort->Name = "Operation_2_ServiceHttpPost"; - myPostPort->Binding = gcnew XmlQualifiedName( "s0:Operation_2_ServiceHttpPost" ); - HttpAddressBinding^ myPostAddressBinding = gcnew HttpAddressBinding; - myPostAddressBinding->Location = "http://localhost/Operation_2/Operation_2_Service.cs.asmx"; - - // Add the 'HttpAddressBinding' to the 'Port'. - myPostPort->Extensions->Add( myPostAddressBinding ); - - // Add the 'Port' to 'PortCollection' of 'ServiceDescription'. - myDescription->Services[ 0 ]->Ports->Add( myPostPort ); - PortType^ myPostPortType = gcnew PortType; - myPostPortType->Name = "Operation_2_ServiceHttpPost"; - Operation^ myPostOperation = gcnew Operation; - myPostOperation->Name = "AddNumbers"; - OperationMessage^ myPostOperationInput = dynamic_cast(gcnew OperationInput); - myPostOperationInput->Message = gcnew XmlQualifiedName( "s0:AddNumbersHttpPostIn" ); - OperationMessage^ myPostOperationOutput = dynamic_cast(gcnew OperationOutput); - myPostOperationOutput->Message = gcnew XmlQualifiedName( "s0:AddNumbersHttpPostout" ); - myPostOperation->Messages->Add( myPostOperationInput ); - myPostOperation->Messages->Add( myPostOperationOutput ); - - // Add the 'Operation' to 'PortType'. - myPostPortType->Operations->Add( myPostOperation ); - - // Adds the 'PortType' to 'PortTypeCollection' of 'ServiceDescription'. - myDescription->PortTypes->Add( myPostPortType ); - Message^ myPostMessage1 = gcnew Message; - myPostMessage1->Name = "AddNumbersHttpPostIn"; - MessagePart^ myPostMessagePart1 = gcnew MessagePart; - myPostMessagePart1->Name = "firstnumber"; - myPostMessagePart1->Type = gcnew XmlQualifiedName( "s:string" ); - MessagePart^ myPostMessagePart2 = gcnew MessagePart; - myPostMessagePart2->Name = "secondnumber"; - myPostMessagePart2->Type = gcnew XmlQualifiedName( "s:string" ); - - // Add the 'MessagePart' objects to 'Messages'. - myPostMessage1->Parts->Add( myPostMessagePart1 ); - myPostMessage1->Parts->Add( myPostMessagePart2 ); - Message^ myPostMessage2 = gcnew Message; - myPostMessage2->Name = "AddNumbersHttpPostout"; - MessagePart^ myPostMessagePart3 = gcnew MessagePart; - myPostMessagePart3->Name = "Body"; - myPostMessagePart3->Element = gcnew XmlQualifiedName( "s0:int" ); - - // Add the 'MessagePart' to 'Message'. - myPostMessage2->Parts->Add( myPostMessagePart3 ); - - // Add the 'Message' objects to 'ServiceDescription'. - myDescription->Messages->Add( myPostMessage1 ); - myDescription->Messages->Add( myPostMessage2 ); - - // Write the 'ServiceDescription' as a WSDL file. - myDescription->Write( "Operation_2_Output_CS.wsdl" ); - Console::WriteLine( " 'Operation_2_Output_CS.wsdl' file created Successfully" ); - - // - // - String^ myString = nullptr; - Operation^ myOperation = gcnew Operation; - myDescription = ServiceDescription::Read( "Operation_2_Input_CS.wsdl" ); - array^myMessage = gcnew array(myDescription->Messages->Count); - - // Copy the messages from the service description. - myDescription->Messages->CopyTo( myMessage, 0 ); - for ( int i = 0; i < myDescription->Messages->Count; i++ ) - { - array^myMessagePart = gcnew array(myMessage[ i ]->Parts->Count); - - // Copy the message parts into a MessagePart. - myMessage[ i ]->Parts->CopyTo( myMessagePart, 0 ); - for ( int j = 0; j < myMessage[ i ]->Parts->Count; j++ ) - { - myString = String::Concat( myString, myMessagePart[ j ]->Name, " " ); - } - } - - // message part names. - myOperation->ParameterOrderString = myString; - array^myString1 = myOperation->ParameterOrder; - int k = 0; - Console::WriteLine( "The list of message part names is as follows:" ); - while ( k < 5 ) - { - Console::WriteLine( myString1[ k ] ); - k++; - } - // - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following Exception is raised : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Operation_5/CPP/operation_5.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Operation_5/CPP/operation_5.cpp deleted file mode 100644 index 13001d530c732..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Operation_5/CPP/operation_5.cpp +++ /dev/null @@ -1,72 +0,0 @@ - - -// System.Web.Services.Description.Operation -// System.Web.Services.Description.Operation.Operation -// System.Web.Services.Description.Operation.Messages -// System.Web.Services.Description.Operation.Name -// System.Web.Services.Description.Operation.PortType -/* The following program demonstrates 'Operation' class, its contructor -and 'Messages','Name' and 'PortType' properties. It reads the file -'Operation_5_Input_CS.wsdl' which does not have 'PortType' object that -supports 'HttpPost'. It adds a 'PortType' object that supports 'HttpPost' -protocol and writes into 'Operation_5_Output_CS.wsdl'. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; -Operation^ CreateOperation( String^ myOperationName, String^ myInputMesg, String^ myOutputMesg ) -{ - - // - // - // - // Create an Operation. - Operation^ myOperation = gcnew Operation; - myOperation->Name = myOperationName; - OperationMessage^ myInput = dynamic_cast(gcnew OperationInput); - myInput->Message = gcnew XmlQualifiedName( myInputMesg ); - OperationMessage^ myOutput = dynamic_cast(gcnew OperationOutput); - myOutput->Message = gcnew XmlQualifiedName( myOutputMesg ); - - // Add messages to the OperationMessageCollection. - myOperation->Messages->Add( myInput ); - myOperation->Messages->Add( myOutput ); - Console::WriteLine( "Operation name is: {0}", myOperation->Name ); - - // - // - // - return myOperation; -} - -int main() -{ - ServiceDescription^ myDescription = ServiceDescription::Read( "Operation_5_Input_CS.wsdl" ); - - // Create a 'PortType' object. - PortType^ myPortType = gcnew PortType; - myPortType->Name = "OperationServiceHttpPost"; - Operation^ myOperation = CreateOperation( "AddNumbers", "s0:AddNumbersHttpPostIn", "s0:AddNumbersHttpPostOut" ); - myPortType->Operations->Add( myOperation ); - - // - // Get the PortType of the Operation. - PortType^ myPort = myOperation->PortType; - Console::WriteLine( "The port type of the operation is: {0}", myPort->Name ); - - // - // Add the 'PortType's to 'PortTypeCollection' of 'ServiceDescription'. - myDescription->PortTypes->Add( myPortType ); - - // Write the 'ServiceDescription' as a WSDL file. - myDescription->Write( "Operation_5_Output_CS.wsdl" ); - Console::WriteLine( "WSDL file with name 'Operation_5_Output_CS.wsdl' file created Successfully" ); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Operation_Faults/CPP/operation_faults.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Operation_Faults/CPP/operation_faults.cpp deleted file mode 100644 index 69a3b7c85e8d1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Operation_Faults/CPP/operation_faults.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// System::Web::Services::Description.Operation::Faults - -/* The following program demonstrates the 'Faults' property of 'Operation' -class. It reads from a 'Operation_Faults_Input_CS::wsdl' file removes fault -binding and operation fault with the name 'ErrorString'. The modified -ServiceDescriptor is written to 'Operation_Faults_Output_Cpp.wsdl' file. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; - -int main() -{ - // - // Read the 'Operation_Faults_Input_cpp.wsdl' file as input. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "Operation_Faults_Input_cpp.wsdl" ); - - // Get the operation fault collection. - PortTypeCollection^ myPortTypeCollection = myServiceDescription->PortTypes; - PortType^ myPortType = myPortTypeCollection[ 0 ]; - OperationCollection^ myOperationCollection = myPortType->Operations; - - // Remove the operation fault with the name 'ErrorString'. - Operation^ myOperation = myOperationCollection[ 0 ]; - OperationFaultCollection^ myOperationFaultCollection = myOperation->Faults; - if ( myOperationFaultCollection->Contains( myOperationFaultCollection[ "ErrorString" ] ) ) - myOperationFaultCollection->Remove( myOperationFaultCollection[ "ErrorString" ] ); - // - - // Get the fault binding collection. - BindingCollection^ myBindingCollection = myServiceDescription->Bindings; - Binding^ myBinding = myBindingCollection[ 0 ]; - OperationBindingCollection^ myOperationBindingCollection = myBinding->Operations; - - // Remove the fault binding with the name 'ErrorString'. - OperationBinding^ myOperationBinding = myOperationBindingCollection[ 0 ]; - FaultBindingCollection^ myFaultBindingCollection = myOperationBinding->Faults; - if ( myFaultBindingCollection->Contains( myFaultBindingCollection[ "ErrorString" ] ) ) - myFaultBindingCollection->Remove( myFaultBindingCollection[ "ErrorString" ] ); - - myServiceDescription->Write( "Operation_Faults_Output_cpp.wsdl" ); - Console::WriteLine( "WSDL file with name 'Operation_Faults_Output_cpp.wsdl' file created Successfully" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Operation_IsBoundBy/CPP/operation_isboundby.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Operation_IsBoundBy/CPP/operation_isboundby.cpp deleted file mode 100644 index 9b42a03b3064f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Operation_IsBoundBy/CPP/operation_isboundby.cpp +++ /dev/null @@ -1,95 +0,0 @@ -// System.Web.Services.Description.Operation.IsBoundBy -/* The following program demonstrates the 'IsBoundBy' method of - 'Operation' class. It takes "Operation_IsBoundBy_Input_CS.wsdl" - as input which does not contain 'PortType' and 'Binding' objects - supporting 'HttpPost'.It then adds those objects and writes into - 'Operation_IsBoundBy_Output_CS.wsdl'. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "Operation_IsBoundBy_Input_CS.wsdl" ); - - // Create the 'Binding' object. - Binding^ myBinding = gcnew Binding; - myBinding->Name = "MyOperationIsBoundByServiceHttpPost"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:OperationServiceHttpPost" ); - myBinding->Type = myXmlQualifiedName; - - // Create the 'HttpBinding' object. - HttpBinding^ myHttpBinding = gcnew HttpBinding; - myHttpBinding->Verb = "POST"; - - // Add the 'HttpBinding' to the 'Binding'. - myBinding->Extensions->Add( myHttpBinding ); - - // Create the 'OperationBinding' object. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "AddNumbers"; - HttpOperationBinding^ myHttpOperationBinding = gcnew HttpOperationBinding; - myHttpOperationBinding->Location = "/AddNumbers"; - - // Add the 'HttpOperationBinding' to 'OperationBinding'. - myOperationBinding->Extensions->Add( myHttpOperationBinding ); - - // Create the 'InputBinding' object. - InputBinding^ myInputBinding = gcnew InputBinding; - MimeContentBinding^ myPostMimeContentBinding = gcnew MimeContentBinding; - myPostMimeContentBinding->Type = "application/x-www-form-urlencoded"; - myInputBinding->Extensions->Add( myPostMimeContentBinding ); - - // Add the 'InputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInputBinding; - - // Create the 'OutputBinding' object. - OutputBinding^ myOutputBinding = gcnew OutputBinding; - MimeXmlBinding^ myPostMimeXmlBinding = gcnew MimeXmlBinding; - myPostMimeXmlBinding->Part = "Body"; - myOutputBinding->Extensions->Add( myPostMimeXmlBinding ); - - // Add the 'OutPutBinding' to 'OperationBinding'. - myOperationBinding->Output = myOutputBinding; - - // Add the 'OperationBinding' to 'Binding'. - myBinding->Operations->Add( myOperationBinding ); - - // Add the 'Binding' to 'BindingCollection' of 'ServiceDescription'. - myServiceDescription->Bindings->Add( myBinding ); - - // Create a 'PortType' object. - PortType^ myPostPortType = gcnew PortType; - myPostPortType->Name = "OperationServiceHttpPost"; - -// - Operation^ myPostOperation = gcnew Operation; - myPostOperation->Name = myOperationBinding->Name; - Console::WriteLine( "'Operation' instance uses 'OperationBinding': {0}", - myPostOperation->IsBoundBy( myOperationBinding ) ); -// - - OperationMessage^ myOperationMessage = dynamic_cast(gcnew OperationInput); - myOperationMessage->Message = gcnew XmlQualifiedName( "s0:AddNumbersHttpPostIn" ); - OperationMessage^ myOperationMessage1 = dynamic_cast(gcnew OperationOutput); - myOperationMessage1->Message = gcnew XmlQualifiedName( "s0:AddNumbersHttpPostOut" ); - myPostOperation->Messages->Add( myOperationMessage ); - myPostOperation->Messages->Add( myOperationMessage1 ); - - // Add the 'Operation' to 'PortType'. - myPostPortType->Operations->Add( myPostOperation ); - - // Adds the 'PortType' to 'PortTypeCollection' of 'ServiceDescription'. - myServiceDescription->PortTypes->Add( myPostPortType ); - - // Write the 'ServiceDescription' as a WSDL file. - myServiceDescription->Write( "Operation_IsBoundBy_Output_CS.wsdl" ); - Console::WriteLine( "WSDL file with name 'Operation_IsBoundBy_Output_CS.wsdl' created Successfully" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/PortClass/CPP/portclass.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/PortClass/CPP/portclass.cpp deleted file mode 100644 index 458ca2e8f8e78..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/PortClass/CPP/portclass.cpp +++ /dev/null @@ -1,166 +0,0 @@ - - -// System.Web.Services.Description.Port.ctor(). -// System.Web.Services.Description.Port.Binding(). -// System.Web.Services.Description.Portt.Extensions. -// System.Web.Services.Description.Port.Name. -// System.Web.Services.Description.Port.Service. -/* The following example demonstrates the constructor and the properties 'Binding', - 'Extensions','Name', and 'Service' of the 'Port' class. - The input to the program is a WSDL file 'AddNumbers_cs.wsdl'. - It creates a 'ServiceDescription' instance by using the static read method - of 'ServiceDescription' by passing the 'AddNumbers.wsdl' name as an argument. - It creates a 'Binding' object and adds that binding object to - 'ServiceDescription'. It adds the 'PortType',Messages to the 'ServiceDescription' - object. Finally it writes the 'ServiceDescrption' as a WSDL file with - name 'AddNumbersOne.wsdl. - */ -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Web; -using namespace System::Collections; -using namespace System::Xml; -int main() -{ - try - { - ServiceDescription^ myDescription = ServiceDescription::Read( "AddNumbers_cs.wsdl" ); - - // Create the 'Binding' object. - Binding^ myBinding = gcnew Binding; - myBinding->Name = "PortServiceHttpPost"; - XmlQualifiedName^ qualifiedName = gcnew XmlQualifiedName( "s0:PortServiceHttpPost" ); - myBinding->Type = qualifiedName; - - // Create the 'HttpBinding' object. - HttpBinding^ myHttpBinding = gcnew HttpBinding; - myHttpBinding->Verb = "POST"; - - // Add the 'HttpBinding' to the 'Binding'. - myBinding->Extensions->Add( myHttpBinding ); - - // Create the 'OperationBinding' object. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "AddNumbers"; - HttpOperationBinding^ myOperation = gcnew HttpOperationBinding; - myOperation->Location = "/AddNumbers"; - - // Add the 'HttpOperationBinding' to 'OperationBinding'. - myOperationBinding->Extensions->Add( myOperation ); - - // Create the 'InputBinding' object. - InputBinding^ myInput = gcnew InputBinding; - MimeContentBinding^ postMimeContentbinding = gcnew MimeContentBinding; - postMimeContentbinding->Type = "application/x-www-form-urlencoded"; - myInput->Extensions->Add( postMimeContentbinding ); - - // Add the 'InputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInput; - - // Create the 'OutputBinding' object. - OutputBinding^ myOutput = gcnew OutputBinding; - MimeXmlBinding^ postMimeXmlbinding = gcnew MimeXmlBinding; - postMimeXmlbinding->Part = "Body"; - myOutput->Extensions->Add( postMimeXmlbinding ); - - // Add the 'OutPutBinding' to 'OperationBinding'. - myOperationBinding->Output = myOutput; - - // Add the 'OperationBinding' to 'Binding'. - myBinding->Operations->Add( myOperationBinding ); - - // Add the 'Binding' to 'BindingCollection' of 'ServiceDescription'. - myDescription->Bindings->Add( myBinding ); - - // - // - // - // - // - // Create a Port. - Port^ postPort = gcnew Port; - postPort->Name = "PortServiceHttpPost"; - postPort->Binding = gcnew XmlQualifiedName( "s0:PortServiceHttpPost" ); - // - // - - // Create an HttpAddressBinding. - HttpAddressBinding^ postAddressBinding = gcnew HttpAddressBinding; - postAddressBinding->Location = "http://localhost/PortClass/PortService_cs.asmx"; - - // Add the HttpAddressBinding to the Port. - postPort->Extensions->Add( postAddressBinding ); - // - - // Get the Service of the postPort. - Service^ myService = postPort->Service; - - // Print the service name for the port. - Console::WriteLine( "This is the service name of the postPort:*{0}*", myDescription->Services[ 0 ]->Ports[ 0 ]->Service->Name ); - - // Add the Port to the PortCollection of the ServiceDescription. - myDescription->Services[ 0 ]->Ports->Add( postPort ); - // - // - - // Create a 'PortType' object. - PortType^ postPortType = gcnew PortType; - postPortType->Name = "PortServiceHttpPost"; - Operation^ postOperation = gcnew Operation; - postOperation->Name = "AddNumbers"; - OperationMessage^ postInput = dynamic_cast(gcnew OperationInput); - postInput->Message = gcnew XmlQualifiedName( "s0:AddNumbersHttpPostIn" ); - OperationMessage^ postOutput = dynamic_cast(gcnew OperationOutput); - postOutput->Message = gcnew XmlQualifiedName( "s0:AddNumbersHttpPostOut" ); - postOperation->Messages->Add( postInput ); - postOperation->Messages->Add( postOutput ); - - // Add the 'Operation' to 'PortType'. - postPortType->Operations->Add( postOperation ); - - // Adds the 'PortType' to 'PortTypeCollection' of 'ServiceDescription'. - myDescription->PortTypes->Add( postPortType ); - - // Create the 'Message' object. - Message^ postMessage1 = gcnew Message; - postMessage1->Name = "AddNumbersHttpPostIn"; - - // Create the 'MessageParts'. - MessagePart^ postMessagePart1 = gcnew MessagePart; - postMessagePart1->Name = "firstnumber"; - postMessagePart1->Type = gcnew XmlQualifiedName( "s:string" ); - MessagePart^ postMessagePart2 = gcnew MessagePart; - postMessagePart2->Name = "secondnumber"; - postMessagePart2->Type = gcnew XmlQualifiedName( "s:string" ); - - // Add the 'MessagePart' objects to 'Messages'. - postMessage1->Parts->Add( postMessagePart1 ); - postMessage1->Parts->Add( postMessagePart2 ); - - // Create another 'Message' object. - Message^ postMessage2 = gcnew Message; - postMessage2->Name = "AddNumbersHttpPostOut"; - MessagePart^ postMessagePart3 = gcnew MessagePart; - postMessagePart3->Name = "Body"; - postMessagePart3->Element = gcnew XmlQualifiedName( "s0:int" ); - - // Add the 'MessagePart' to 'Message' - postMessage2->Parts->Add( postMessagePart3 ); - - // Add the 'Message' objects to 'ServiceDescription'. - myDescription->Messages->Add( postMessage1 ); - myDescription->Messages->Add( postMessage2 ); - - // Write the 'ServiceDescription' as a WSDL file. - myDescription->Write( "AddNumbersOne.wsdl" ); - Console::WriteLine( "WSDL file with name 'AddNumbersOne.Wsdl' file created Successfully" ); - } - catch ( Exception^ ex ) - { - Console::WriteLine( "Exception {0} occurred", ex->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/PortCollection_Add/CPP/portcollection_add.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/PortCollection_Add/CPP/portcollection_add.cpp deleted file mode 100644 index aea7134fd0b1a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/PortCollection_Add/CPP/portcollection_add.cpp +++ /dev/null @@ -1,67 +0,0 @@ - - -// System.Web.Services.Description.PortCollection.Contains -// System.Web.Services.Description.PortCollection.Add -/* - The following sample reads the contents of a file 'MathServiceAdd_cs.wsdl' - into a 'ServiceDescription' instance. It gets the collection of Service - instances from 'ServiceDescription'. It then adds a new port and checks - whether a port exists. The programs writes a new web service description - file. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Xml; -int main() -{ - try - { - Service^ myService; - PortCollection^ myPortCollection; - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathServiceAdd_cs.wsdl" ); - Console::WriteLine( "\nTotal Number of Services :{0}", myServiceDescription->Services->Count ); - for ( int i = 0; i < myServiceDescription->Services->Count; ++i ) - { - myService = myServiceDescription->Services[ i ]; - Console::WriteLine( "Name : {0}", myService->Name ); - - // - // - myPortCollection = myService->Ports; - Port^ myNewPort = myPortCollection[ 0 ]; - myPortCollection->Remove( myNewPort ); - - // Display the number of ports. - Console::WriteLine( "\nTotal number of ports before adding a new port : {0}", myService->Ports->Count ); - - // Add a new port. - myPortCollection->Add( myNewPort ); - - // Display the number of ports after adding a port. - Console::WriteLine( "Total number of ports after adding a new port : {0}", myService->Ports->Count ); - // - - bool bContain = myPortCollection->Contains( myNewPort ); - Console::WriteLine( "\nPort '{0}' exists : {1}", myNewPort->Name, bContain ); - - // Remove a port from the collection. - myPortCollection->Remove( myPortCollection[ myNewPort->Name ] ); - bContain = myPortCollection->Contains( myNewPort ); - Console::WriteLine( "Port '{0}' exists : {1}", myNewPort->Name, bContain ); - - // Create the description file. - myPortCollection->Insert( 0, myNewPort ); - myServiceDescription->Write( "MathServiceAddNew_cs.wsdl" ); - // - - } - } - catch ( Exception^ ex ) - { - Console::WriteLine( "Exception:{0}", ex->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/PortCollection_CopyTo/CPP/portcollection_copyto.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/PortCollection_CopyTo/CPP/portcollection_copyto.cpp deleted file mode 100644 index 3f20f18b74adf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/PortCollection_CopyTo/CPP/portcollection_copyto.cpp +++ /dev/null @@ -1,71 +0,0 @@ - - -// System.Web.Services.Description.PortCollection.Insert -// System.Web.Services.Description.PortCollection.IndexOf -// System.Web.Services.Description.PortCollection.CopyTo -/* - The following sample reads the contents of a file 'MathService.wsdl' - into a 'ServiceDescription' instance. It gets the collection of Service - instances from 'ServiceDescription'. It instantiates 'PortCollection' for - each service in the collection. 'CopyTo' is called to copy - the contents into an array. Calls 'IndexOf' for a given port. - 'Insert' method is called to insert a new port in the collection. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Xml; - -int main() -{ - try - { - Service^ myService; - PortCollection^ myPortCollection; - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathServiceCopyTo_cs.wsdl" ); - Console::WriteLine( "Total Number of Services :{0}", myServiceDescription->Services->Count ); - for ( int i = 0; i < myServiceDescription->Services->Count; ++i ) - { - myService = myServiceDescription->Services[ i ]; - Console::WriteLine( "Name : {0}", myService->Name ); - - // - // - // - myPortCollection = myService->Ports; - - // Create an array of Port objects. - Console::WriteLine( "\nPort collection :" ); - array^myPortArray = gcnew array(myService->Ports->Count); - myPortCollection->CopyTo( myPortArray, 0 ); - for ( int i1 = 0; i1 < myService->Ports->Count; ++i1 ) - { - Console::WriteLine( "Port[{0}] : {1}", i1, myPortArray[ i1 ]->Name ); - - } - // - Port^ myIndexPort = myPortCollection[ 0 ]; - Console::WriteLine( "\n\nThe index of port '{0}' is : {1}", myIndexPort->Name, myPortCollection->IndexOf( myIndexPort ) ); - // - - Port^ myPortTestInsert = myPortCollection[ 0 ]; - myPortCollection->Remove( myPortTestInsert ); - myPortCollection->Insert( 0, myPortTestInsert ); - Console::WriteLine( "\n\nTotal Number of Ports after inserting a new port '{0}' is : {1}", myPortTestInsert->Name, myService->Ports->Count ); - for ( int i1 = 0; i1 < myService->Ports->Count; ++i1 ) - { - Console::WriteLine( "Port[{0}] : {1}", i1, myPortArray[ i1 ]->Name ); - - } - myServiceDescription->Write( "MathServiceCopyToNew_cs.wsdl" ); - // - } - } - catch ( Exception^ ex ) - { - Console::WriteLine( "Exception:{0}", ex->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/PortCollection_Item/CPP/portcollection_item.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/PortCollection_Item/CPP/portcollection_item.cpp deleted file mode 100644 index 9b3c46cc59d6f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/PortCollection_Item/CPP/portcollection_item.cpp +++ /dev/null @@ -1,71 +0,0 @@ - - -// System.Web.Services.Description.PortCollection -// System.Web.Services.Description.PortCollection.Remove -// System.Web.Services.Description.PortCollection.Item(String) -// System.Web.Services.Description.PortCollection.Item(Int32) -/* - The following sample reads the contents of a file 'MathService_cs.wsdl' - into a 'ServiceDescription' instance. It gets the collection of Service - instances from 'ServiceDescription'. It instantiates 'PortCollection' for - each service in the collection. It access the ports from the collection and - displays them. It accesses a port by its name from the collection and - displays its index. It adds a new port and calls 'Remove' - to remove the newly added port.The programs writes a new web service - description file. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; - -int main() -{ - try - { - // - // - // - // - Service^ myService; - PortCollection^ myPortCollection; - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathServiceItem_cs.wsdl" ); - Console::WriteLine( "Total number of services : {0}", myServiceDescription->Services->Count ); - for ( int i = 0; i < myServiceDescription->Services->Count; ++i ) - { - myService = myServiceDescription->Services[ i ]; - Console::WriteLine( "Name : {0}", myService->Name ); - myPortCollection = myService->Ports; - - // Create an array of ports. - Console::WriteLine( "\nPort collection :" ); - for ( int i1 = 0; i1 < myService->Ports->Count; ++i1 ) - { - Console::WriteLine( "Port[{0}] : {1}", i1, myPortCollection[ i1 ]->Name ); - } - // - - String^ strPort = myPortCollection[ 0 ]->Name; - Port^ myPort = myPortCollection[ strPort ]; - Console::WriteLine( "\nIndex of Port[{0}] : {1}", strPort, myPortCollection->IndexOf( myPort ) ); - // - - Port^ myPortTestRemove = myPortCollection[ 0 ]; - Console::WriteLine( "\nTotal number of ports before removing a port '{0}' is : {1}", myPortTestRemove->Name, myService->Ports->Count ); - myPortCollection->Remove( myPortTestRemove ); - Console::WriteLine( "Total number of ports after removing a port '{0}' is : {1}", myPortTestRemove->Name, myService->Ports->Count ); - - // Create the WSDL file. - myPortCollection->Insert( 0, myPortTestRemove ); - myServiceDescription->Write( "MathServiceItemNew_cs.wsdl" ); - // - // - } - } - catch ( Exception^ ex ) - { - Console::WriteLine( "Exception: {0}", ex->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/PortType/CPP/porttype.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/PortType/CPP/porttype.cpp deleted file mode 100644 index 0862e7f024994..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/PortType/CPP/porttype.cpp +++ /dev/null @@ -1,75 +0,0 @@ - - -// System.Web.Services.Description.PortType.Operations -// System.Web.Services.Description.PortType.PortType() -// System.Web.Services.Description.PortType.Name -/*The following sample demonstrates the properties 'Operations','Name' and constructor -'PortType()' of class 'PortType'.This sample reads the contents of a file 'MathService_cs.wsdl' -into a 'ServiceDescription' instance. It gets the collection of 'PortType' -instances from 'ServiceDescription'. It removes a 'PortType' from the collection, creates a -new 'PortType' and adds it into collection.The programs writes a new web service description -file 'MathService_New.wsdl'. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Xml; -Operation^ CreateOperation( String^ operationName, String^ inputMessage, String^ outputMessage, String^ targetNamespace ) -{ - Operation^ myOperation = gcnew Operation; - myOperation->Name = operationName; - OperationMessage^ input = dynamic_cast(gcnew OperationInput); - input->Message = gcnew XmlQualifiedName( inputMessage,targetNamespace ); - OperationMessage^ output = dynamic_cast(gcnew OperationOutput); - output->Message = gcnew XmlQualifiedName( outputMessage,targetNamespace ); - myOperation->Messages->Add( input ); - myOperation->Messages->Add( output ); - return myOperation; -} - -int main() -{ - try - { - // - // - PortTypeCollection^ myPortTypeCollection; - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_CS.wsdl" ); - myPortTypeCollection = myServiceDescription->PortTypes; - int noOfPortTypes = myServiceDescription->PortTypes->Count; - Console::WriteLine( "\nTotal number of PortTypes : {0}", noOfPortTypes ); - PortType^ myPortType = myPortTypeCollection[ "MathServiceSoap" ]; - myPortTypeCollection->Remove( myPortType ); - - // Create a new PortType. - PortType^ myNewPortType = gcnew PortType; - myNewPortType->Name = "MathServiceSoap"; - OperationCollection^ myOperationCollection = myServiceDescription->PortTypes[ 0 ]->Operations; - String^ inputMsg; - String^ outputMsg; - for ( int i = 0; i < myOperationCollection->Count; i++ ) - { - inputMsg = String::Concat( myOperationCollection[ i ]->Name, "SoapIn" ); - outputMsg = String::Concat( myOperationCollection[ i ]->Name, "SoapOut" ); - Console::WriteLine( " Operation = {0}", myOperationCollection[ i ]->Name ); - myNewPortType->Operations->Add( CreateOperation( myOperationCollection[ i ]->Name, inputMsg, outputMsg, myServiceDescription->TargetNamespace ) ); - - } - myPortTypeCollection->Add( myNewPortType ); - noOfPortTypes = myServiceDescription->PortTypes->Count; - Console::WriteLine( "\nTotal number of PortTypes : {0}", noOfPortTypes ); - myServiceDescription->Write( "MathService_New.wsdl" ); - // - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception:{0}", e->Message ); - } - -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/PortTypeCollection_1/CPP/porttypecollection_1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/PortTypeCollection_1/CPP/porttypecollection_1.cpp deleted file mode 100644 index bfaa4c38ac4c2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/PortTypeCollection_1/CPP/porttypecollection_1.cpp +++ /dev/null @@ -1,59 +0,0 @@ - - -// System.Web.Services.Description.PortTypeCollection.Item[int] -// System.Web.Services.Description.PortTypeCollection.Remove() -// System.Web.Services.Description.PortTypeCollection.Add() -/*The following sample demonstrates the indexer 'Item[int]', methods -'Remove()' and 'Add()' of class 'PortTypeCollection'. It reads the -contents of a file 'MathService.wsdl'into a 'ServiceDescription' instance. -It gets the collection of 'PortType' from 'ServiceDescription' and adds -a new PortType and writes a new web service description file into -'MathService_New.wsdl'. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Xml; - -int main() -{ - try - { - // - // - // - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_CS.wsdl" ); - PortTypeCollection^ myPortTypeCollection = myServiceDescription->PortTypes; - int noOfPortTypes = myServiceDescription->PortTypes->Count; - Console::WriteLine( "\nTotal number of PortTypes: {0}", myServiceDescription->PortTypes->Count ); - - // Get the first PortType in the collection. - PortType^ myNewPortType = myPortTypeCollection[ 0 ]; - Console::WriteLine( "The PortType at index 0 is: {0}", myNewPortType->Name ); - Console::WriteLine( "Removing the PortType {0}", myNewPortType->Name ); - - // Remove the PortType from the collection. - myPortTypeCollection->Remove( myNewPortType ); - - // Display the number of PortTypes. - Console::WriteLine( "\nTotal number of PortTypes after removing: {0}", myServiceDescription->PortTypes->Count ); - Console::WriteLine( "Adding a PortType {0}", myNewPortType->Name ); - - // Add a new PortType from the collection. - myPortTypeCollection->Add( myNewPortType ); - - // Display the number of PortTypes after adding a port. - Console::WriteLine( "Total number of PortTypes after adding a new port: {0}", myServiceDescription->PortTypes->Count ); - myServiceDescription->Write( "MathService_New.wsdl" ); - // - // - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/PortTypeCollection_2/CPP/porttypecollection_2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/PortTypeCollection_2/CPP/porttypecollection_2.cpp deleted file mode 100644 index 5aba1957af5ab..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/PortTypeCollection_2/CPP/porttypecollection_2.cpp +++ /dev/null @@ -1,68 +0,0 @@ - - -// System.Web.Services.Description.PortTypeCollection.Contains() -// System.Web.Services.Description.PortTypeCollection.Insert() -// System.Web.Services.Description.PortTypeCollection.IndexOf() -// System.Web.Services.Description.PortTypeCollection.Item[string] -/* -The following sample demonstrates the methods 'IndexOf()','Insert()','Contains()' and -indexer 'Item[string]' of class 'PortTypeCollection'. This sample reads the contents -of 'MathService.wsdl' into a 'ServiceDescription' instance. It gets the collection of -'PortType' instances from 'ServiceDescription'. It removes a 'PortType' with the name -'MathServiceSoap' and adds the same later. Then it checks whether the collection contains -the added 'PortType'.The sample writes a new web service description file 'MathService_New.wsdl'. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Xml; -int main() -{ - try - { - // - // - // - // - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_CS.wsdl" ); - PortTypeCollection^ myPortTypeCollection = myServiceDescription->PortTypes; - int noOfPortTypes = myServiceDescription->PortTypes->Count; - Console::WriteLine( "\nTotal number of PortTypes: {0}", noOfPortTypes ); - PortType^ myNewPortType = myPortTypeCollection[ "MathServiceSoap" ]; - // - - // Get the index in the collection. - int index = myPortTypeCollection->IndexOf( myNewPortType ); - // - - Console::WriteLine( "Removing the PortType named {0}", myNewPortType->Name ); - - // Remove the PortType from the collection. - myPortTypeCollection->Remove( myNewPortType ); - noOfPortTypes = myServiceDescription->PortTypes->Count; - Console::WriteLine( "\nTotal number of PortTypes: {0}", noOfPortTypes ); - - // Check whether the PortType exists in the collection. - bool bContains = myPortTypeCollection->Contains( myNewPortType ); - Console::WriteLine( "Port Type'{0}' exists: {1}", myNewPortType->Name, bContains ); - Console::WriteLine( "Adding the PortType" ); - - // Insert a new portType at the index location. - myPortTypeCollection->Insert( index, myNewPortType ); - // - - // Display the number of portTypes after adding a port. - Console::WriteLine( "Total number of PortTypes after adding a new port: {0}", myServiceDescription->PortTypes->Count ); - bContains = myPortTypeCollection->Contains( myNewPortType ); - Console::WriteLine( "Port Type'{0}' exists: {1}", myNewPortType->Name, bContains ); - myServiceDescription->Write( "MathService_New.wsdl" ); - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/PortTypeCollection_Class/CPP/porttypecollection_class.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/PortTypeCollection_Class/CPP/porttypecollection_class.cpp deleted file mode 100644 index a0c7a4790fc82..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/PortTypeCollection_Class/CPP/porttypecollection_class.cpp +++ /dev/null @@ -1,64 +0,0 @@ - - -// System.Web.Services.Description.PortTypeCollection -/* The following sample demonstrates the class 'PortTypeCollection'. It reads the -contents of WSDL document 'MathService.wsdl'into a 'ServiceDescription' instance. -It gets the collection of 'PortType'from 'ServiceDescription'. It copies the -collection into an array of 'PortType' and displays their names. Then it removes a -'PortType', checks whether the collection contains the removed 'PortType'. -It adds the same 'PortType' and writes a new web service description file into -'MathService_New.wsdl'. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Xml; -using namespace System::Collections; -int main() -{ - try - { - // Read the existing Web service description file. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_CS.wsdl" ); - PortTypeCollection^ myPortTypeCollection = myServiceDescription->PortTypes; - int noOfPortTypes = myServiceDescription->PortTypes->Count; - Console::WriteLine( "\nTotal number of PortTypes: {0}", myServiceDescription->PortTypes->Count ); - - // Get the first PortType in the collection. - PortType^ myNewPortType = myPortTypeCollection[ "MathServiceSoap" ]; - int index = myPortTypeCollection->IndexOf( myNewPortType ); - Console::WriteLine( "The PortType with the name {0} is at index: {1}", myNewPortType->Name, (index + 1) ); - Console::WriteLine( "Removing the PortType: {0}", myNewPortType->Name ); - - // Remove the PortType from the collection. - myPortTypeCollection->Remove( myNewPortType ); - bool bContains = myPortTypeCollection->Contains( myNewPortType ); - Console::WriteLine( "The PortType with the name {0} exists: {1}", myNewPortType->Name, bContains ); - Console::WriteLine( "Total number of PortTypes after removing: {0}", myServiceDescription->PortTypes->Count ); - Console::WriteLine( "Adding a PortType: {0}", myNewPortType->Name ); - - // Add a new portType from the collection. - myPortTypeCollection->Add( myNewPortType ); - - // Display the number of portTypes after adding a port. - Console::WriteLine( "Total number of PortTypes after adding a new port: {0}", myServiceDescription->PortTypes->Count ); - - // List the PortTypes available in the WSDL document. - IEnumerator^ myEnum = myPortTypeCollection->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - PortType^ myPortType = safe_cast(myEnum->Current); - Console::WriteLine( "The PortType name is: {0}", myPortType->Name ); - } - myServiceDescription->Write( "MathService_New.wsdl" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/PortTypeCollection_CopyTo/CPP/porttypecollection_copyto.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/PortTypeCollection_CopyTo/CPP/porttypecollection_copyto.cpp deleted file mode 100644 index a64d2d2fc97f4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/PortTypeCollection_CopyTo/CPP/porttypecollection_copyto.cpp +++ /dev/null @@ -1,50 +0,0 @@ -// System.Web.Services.Description.PortTypeCollection.CopyTo() - -/* -The following sample demonstrates the 'CopyTo()' method of the class -'PortTypeCollection'.This sample reads the contents of a file 'MathService.wsdl' -into a 'ServiceDescription' instance. It gets the collection of 'PortType' -from 'ServiceDescription'. It copies the collection into an array of 'PortType' -and displays their names. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Xml; - -int main() -{ - try - { -// - PortTypeCollection^ myPortTypeCollection; - - ServiceDescription^ myServiceDescription = - ServiceDescription::Read( "MathService_CS.wsdl" ); - - myPortTypeCollection = myServiceDescription->PortTypes; - int noOfPortTypes = myServiceDescription->PortTypes->Count; - Console::WriteLine( "\nTotal number of PortTypes: {0}", - myServiceDescription->PortTypes->Count ); - - // Copy the collection into an array. - array^ myPortTypeArray = gcnew array(noOfPortTypes); - myPortTypeCollection->CopyTo( myPortTypeArray, 0 ); - - // Display names of all PortTypes. - for ( int i = 0; i < noOfPortTypes; i++ ) - { - Console::WriteLine( "PortType name: {0}", myPortTypeArray[ i ]->Name ); - } - myServiceDescription->Write( "MathService_New.wsdl" ); -// - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/PortType_Class/CPP/porttype_class.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/PortType_Class/CPP/porttype_class.cpp deleted file mode 100644 index e96a8f14d0a6e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/PortType_Class/CPP/porttype_class.cpp +++ /dev/null @@ -1,71 +0,0 @@ - - -// System.Web.Services.Description.PortType -/* -The following sample demonstrates the class 'PortType'. This sample reads -the contents of a file 'MathService_cs.wsdl' into a 'ServiceDescription' instance. -It gets the collection of 'PortType'instances from 'ServiceDescription'. -It removes a 'PortType' from the collection, creates a new 'PortType' and adds -it into collection.The programs writes a new web service description -file 'MathService_New.wsdl'. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Xml; -Operation^ CreateOperation( String^ operationName, String^ inputMessage, String^ outputMessage, String^ targetNamespace ) -{ - Operation^ myOperation = gcnew Operation; - myOperation->Name = operationName; - OperationMessage^ input = dynamic_cast(gcnew OperationInput); - input->Message = gcnew XmlQualifiedName( inputMessage,targetNamespace ); - OperationMessage^ output = dynamic_cast(gcnew OperationOutput); - output->Message = gcnew XmlQualifiedName( outputMessage,targetNamespace ); - myOperation->Messages->Add( input ); - myOperation->Messages->Add( output ); - return myOperation; -} - -int main() -{ - try - { - PortTypeCollection^ myPortTypeCollection; - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_CS.wsdl" ); - myPortTypeCollection = myServiceDescription->PortTypes; - int noOfPortTypes = myServiceDescription->PortTypes->Count; - Console::WriteLine( "\nTotal number of PortTypes : {0}", noOfPortTypes ); - PortType^ myPortType = myPortTypeCollection[ "MathServiceSoap" ]; - myPortTypeCollection->Remove( myPortType ); - - // Create a new PortType. - PortType^ myNewPortType = gcnew PortType; - myNewPortType->Name = "MathServiceSoap"; - OperationCollection^ myOperationCollection = myServiceDescription->PortTypes[ 0 ]->Operations; - for ( int i = 0; i < myOperationCollection->Count; i++ ) - { - String^ inputmsg = String::Concat( myOperationCollection[ i ]->Name, "SoapIn" ); - String^ outputmsg = String::Concat( myOperationCollection[ i ]->Name, "SoapOut" ); - Console::WriteLine( "Operation = {0}", myOperationCollection[ i ]->Name ); - myNewPortType->Operations->Add( CreateOperation( myOperationCollection[ i ]->Name, inputmsg, outputmsg, myServiceDescription->TargetNamespace ) ); - - } - - // Add the PortType to the collection. - myPortTypeCollection->Add( myNewPortType ); - noOfPortTypes = myServiceDescription->PortTypes->Count; - Console::WriteLine( "\nTotal Number of PortTypes : {0}", noOfPortTypes ); - myServiceDescription->Write( "MathService_New.wsdl" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RealProxy_Sample/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RealProxy_Sample/CPP/makefile deleted file mode 100644 index dfe5cf66691f9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RealProxy_Sample/CPP/makefile +++ /dev/null @@ -1,3 +0,0 @@ -all: realproxy_sample.exe -realproxy_sample.exe: realproxy_sample.cpp - cl /clr:pure realproxy_sample.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RealProxy_Sample/CPP/realproxy_sample.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RealProxy_Sample/CPP/realproxy_sample.cpp deleted file mode 100644 index 1df6d73f92567..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RealProxy_Sample/CPP/realproxy_sample.cpp +++ /dev/null @@ -1,131 +0,0 @@ - - -// System.Runtime.Remoting.Proxies.RealProxy.SupportsInterface(Guid); -// System.Runtime.Remoting.Proxies.RealProxy.GetCOMIUnknown(bool); -// System.Runtime.Remoting.Proxies.RealProxy.SetCOMIUnknown(IntPtr); -/* The following example demonstrates implementation of methods -'GetCOMIUnknown','SupportsInterface' and 'SetCOMIUnknown' of -System.Runtime.Remoting.Proxies.RealProxy. - -The following program has a 'CustomProxy' referring to unmanaged COM component. -A COM Runtime Wrapper takes care of method call to unmanaged world. SupportsInterface -method is overridden to return address of COM Runtime Wrapper. -*/ -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Runtime::Serialization; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Activation; -using namespace System::Runtime::Remoting::Proxies; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Remoting::Contexts; -using namespace System::Runtime::InteropServices; -using namespace System::Security::Permissions; -using namespace ActiveDs; -// using namespace InterOpADS; -public ref class MyProxy: public RealProxy -{ -private: - String^ m_URI; - MarshalByRefObject^ myMarshalByRefObject; - -public: - [SecurityPermission(SecurityAction::LinkDemand)] - MyProxy() - : RealProxy() - { - Console::WriteLine( "MyProxy Constructor Called..." ); - myMarshalByRefObject = dynamic_cast(Activator::CreateInstance(WinNTSystemInfo::typeid )); - ObjRef^ myObjRef = RemotingServices::Marshal( myMarshalByRefObject ); - m_URI = myObjRef->URI; - } - - [SecurityPermission(SecurityAction::LinkDemand)] - MyProxy( Type^ myType ) - : RealProxy( myType ) - { - Console::WriteLine( "MyProxy Constructor Called..." ); - myMarshalByRefObject = dynamic_cast(Activator::CreateInstance( myType )); - ObjRef^ myObjRef = RemotingServices::Marshal( myMarshalByRefObject ); - m_URI = myObjRef->URI; - } - - [SecurityPermission(SecurityAction::LinkDemand)] - MyProxy( Type^ myType, MarshalByRefObject^ targetObject ) - : RealProxy( myType ) - { - Console::WriteLine( "MyProxy Constructor Called..." ); - myMarshalByRefObject = targetObject; - ObjRef^ myObjRef = RemotingServices::Marshal( myMarshalByRefObject ); - m_URI = myObjRef->URI; - } - - [SecurityPermission(SecurityAction::LinkDemand, Flags = SecurityPermissionFlag::Infrastructure)] - virtual IMessage^ Invoke( IMessage^ msg ) override - { - if ( dynamic_cast(msg) ) - { - - // Initialize a new instance of remote object - IConstructionReturnMessage^ myIConstructionReturnMessage = this->InitializeServerObject( dynamic_cast(msg) ); - ConstructionResponse^ constructionResponse = gcnew ConstructionResponse( nullptr,dynamic_cast(msg) ); - return constructionResponse; - } - - IDictionary^ myIDictionary = msg->Properties; - IMessage^ retMsg; - myIDictionary->default[ "__Uri" ] = m_URI; - - // Synchronously dispatch messages to server. - retMsg = ChannelServices::SyncDispatchMessage( msg ); - - // Pushing return value and OUT parameters back onto stack - IMethodReturnMessage^ mrm = dynamic_cast(retMsg); - return retMsg; - } - - // - // - // - [SecurityPermission(SecurityAction::LinkDemand, Flags = SecurityPermissionFlag::Infrastructure)] - IntPtr SupportsInterface( Guid * /*myGuid*/ ) - { - Console::WriteLine( "SupportsInterface method called" ); - - // Object reference is requested for communication with unmanaged objects - // in the current process through COM. - IntPtr myIntPtr = this->GetCOMIUnknown( false ); - - // Stores an unmanaged proxy of the object. - this->SetCOMIUnknown( myIntPtr ); - - // return COM Runtime Wrapper pointer. - return myIntPtr; - } - // - // - // -}; - - -// Acts as a custom proxy user. -[SecurityPermission(SecurityAction::LinkDemand)] -int main() -{ - Console::WriteLine( "" ); - Console::WriteLine( "CustomProxy Sample" ); - Console::WriteLine( "==================" ); - MyProxy^ mProxy = gcnew MyProxy( WinNTSystemInfo::typeid); - WinNTSystemInfo^ myHelloServer = dynamic_cast(mProxy->GetTransparentProxy()); - Console::WriteLine( "Machine Name = {0}", myHelloServer->ComputerName ); - Console::WriteLine( "Domain Name = {0}", myHelloServer->DomainName ); - Console::WriteLine( "User Name = {0}", myHelloServer->UserName ); - - // Construct Guid object from unmanaged Interface 'IADsWinNTSystemInfo' guid. - Guid myGuid = Guid("{6C6D65DC-AFD1-11D2-9CB9-0000F87A369E}"); - IntPtr myIntrPtr = mProxy->SupportsInterface( &myGuid ); - Console::WriteLine( "Requested Interface Pointer= {0}", myIntrPtr.ToInt32() ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting.ObjRef/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting.ObjRef/CPP/client.cpp deleted file mode 100644 index 11d4599ec999d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting.ObjRef/CPP/client.cpp +++ /dev/null @@ -1,54 +0,0 @@ - - -#using -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Net::Sockets; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Remoting::Lifetime; -using namespace System::Runtime::Remoting::Contexts; -using namespace System::Runtime::Serialization; -using namespace System::Collections; -using namespace SampleNamespace; - -int main() -{ - ChannelServices::RegisterChannel( gcnew HttpChannel( 0 ) ); - RemotingConfiguration::RegisterActivatedClientType( SampleService::typeid, "http://localhost:9000/MySampleService" ); - SampleService ^ myRemoteObject = gcnew SampleService; - bool result = myRemoteObject->SampleMethod(); - - // System::Runtime::Remoting::ObjRef - // - ObjRef^ objRefSample = RemotingServices::GetObjRefForProxy( myRemoteObject ); - Console::WriteLine( "***ObjRef Details***" ); - Console::WriteLine( "URI:\t {0}", objRefSample->URI ); - array^channelData = objRefSample->ChannelInfo->ChannelData; - Console::WriteLine( "Channel Info:" ); - for each(Object^ o in channelData) - Console::WriteLine("\t{0}", o->ToString()); - IEnvoyInfo^ envoyInfo = objRefSample->EnvoyInfo; - if ( envoyInfo == nullptr ) - { - Console::WriteLine( "This ObjRef does not have envoy information." ); - } - else - { - IMessageSink^ envoySinks = envoyInfo->EnvoySinks; - Console::WriteLine( "Envoy Sink Class: {0}", envoySinks ); - } - IRemotingTypeInfo^ typeInfo = objRefSample->TypeInfo; - Console::WriteLine( "Remote type name: {0}", typeInfo->TypeName ); - Console::WriteLine( "Can my Object cast to a Bitmap? {0}", typeInfo->CanCastTo( System::Drawing::Bitmap::typeid, objRefSample ) ); - Console::WriteLine( "Is this Object from this AppDomain? {0}", objRefSample->IsFromThisAppDomain() ); - Console::WriteLine( "Is this Object from this process? {0}", objRefSample->IsFromThisProcess() ); - // - - return 0; -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting.ObjRef/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting.ObjRef/CPP/makefile deleted file mode 100644 index 0123a1cccaabe..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting.ObjRef/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -makefile : server.exe client.exe - -server.exe : server.cpp service.dll - cl /clr:pure server.cpp - -client.exe : client.cpp service.dll - cl /clr:pure client.cpp - -service.dll : service.cpp - cl /clr:pure /LD service.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting.ObjRef/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting.ObjRef/CPP/server.cpp deleted file mode 100644 index e63960c89bd7a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting.ObjRef/CPP/server.cpp +++ /dev/null @@ -1,24 +0,0 @@ - - -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Lifetime; -using namespace SampleNamespace; - -int main() -{ - HttpChannel^ channel = gcnew HttpChannel( 9000 ); - ChannelServices::RegisterChannel( channel ); - RemotingConfiguration::ApplicationName = "MySampleService"; - RemotingConfiguration::RegisterActivatedServiceType( SampleService::typeid ); - Console::WriteLine( "Press enter to end the server process." ); - Console::ReadLine(); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting.ObjRef/CPP/service.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting.ObjRef/CPP/service.cpp deleted file mode 100644 index a0d9caedd44fc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting.ObjRef/CPP/service.cpp +++ /dev/null @@ -1,25 +0,0 @@ - - -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Lifetime; - -namespace SampleNamespace -{ - // Define the remote service class - public ref class SampleService: public MarshalByRefObject - { - public: - bool SampleMethod() - { - Console::WriteLine( "Hello, you have called SampleMethod()." ); - return true; - } - }; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ClientActivation/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ClientActivation/CPP/client.cpp deleted file mode 100644 index ef46529987d8f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ClientActivation/CPP/client.cpp +++ /dev/null @@ -1,36 +0,0 @@ - - -// -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - ChannelServices::RegisterChannel( gcnew TcpChannel ); - RemotingConfiguration::RegisterActivatedClientType( HelloServiceClass::typeid, "tcp://localhost:8082" ); - try - { - HelloServiceClass ^ service = gcnew HelloServiceClass; - - // Calls the remote method. - Console::WriteLine(); - Console::WriteLine( "Calling remote Object" ); - Console::WriteLine( service->HelloMethod( "Caveman" ) ); - Console::WriteLine( service->HelloMethod( "Spaceman" ) ); - Console::WriteLine( service->HelloMethod( "Client Man" ) ); - Console::WriteLine( "Finished remote Object call" ); - } - catch (Exception ex) - { - Console::WriteLine("An exception occurred: " + ex.Message); - } - Console::WriteLine(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ClientActivation/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ClientActivation/CPP/makefile deleted file mode 100644 index 2f15fb3bfe717..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ClientActivation/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: Service.dll Client.exe Server.exe - -Server.exe: Server.cpp - cl /clr:pure Server.cpp - -Client.exe: Client.cpp - cl /clr:pure Client.cpp - -Service.dll: service.cpp - cl /clr:pure /LD service.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ClientActivation/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ClientActivation/CPP/server.cpp deleted file mode 100644 index f11b436af12db..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ClientActivation/CPP/server.cpp +++ /dev/null @@ -1,21 +0,0 @@ - - -// -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - ChannelServices::RegisterChannel( gcnew TcpChannel( 8082 ) ); - RemotingConfiguration::RegisterActivatedServiceType( HelloServiceClass::typeid ); - Console::WriteLine( "Press enter to stop this process." ); - Console::ReadLine(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ClientActivation/CPP/service.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ClientActivation/CPP/service.cpp deleted file mode 100644 index 75ffaf57d8f6e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ClientActivation/CPP/service.cpp +++ /dev/null @@ -1,36 +0,0 @@ - - -// -#using - -using namespace System; - -public ref class HelloServiceClass: public MarshalByRefObject -{ -private: - static int n_instance; - -public: - HelloServiceClass() - { - n_instance++; - Console::WriteLine( "{0} has been created. Instance # = {1}", this->GetType()->Name, n_instance ); - } - - ~HelloServiceClass() - { - Console::WriteLine( "Destroyed instance {0} of HelloServiceClass.", n_instance ); - n_instance--; - } - - String^ HelloMethod( String^ name ) - { - // Reports that the method was called. - Console::WriteLine(); - Console::WriteLine( "Called HelloMethod on instance {0} with the '{1}' parameter.", n_instance, name ); - - // Calculates and returns the result to the client. - return String::Format( "Hi there {0}", name ); - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation/CPP/client.cpp deleted file mode 100644 index cc94e608fe1d4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation/CPP/client.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -#using -#using -#using "server.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels; - -int main() -{ - // open channel and get handle to Object - ChannelServices::RegisterChannel( gcnew TcpChannel ); - - //Registering the well known Object on the client side for use by the operator gcnew. - RemotingConfiguration::RegisterWellKnownClientType( HelloServer::typeid, - "tcp://localhost:8084/SayHello" ); - HelloServer^ obj = gcnew HelloServer; - - // call remote method - Console::WriteLine(); - Console::WriteLine( "Before Call" ); - Console::WriteLine( obj->HelloMethod( "Caveman" ) ); - Console::WriteLine( obj->HelloMethod( "Spaceman" ) ); - Console::WriteLine( obj->HelloMethod( "Client Man" ) ); - Console::WriteLine( "After Call" ); - Console::WriteLine(); -} -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation/CPP/makefile deleted file mode 100644 index 2a6b27ebd19cb..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation/CPP/makefile +++ /dev/null @@ -1,7 +0,0 @@ -all : server.dll client.exe - -server.dll : server.cpp - cl /LD /clr:pure server.cpp - -client.exe : client.cpp server.dll - cl /clr:pure client.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation/CPP/server.cpp deleted file mode 100644 index a7646f3ab1cd2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation/CPP/server.cpp +++ /dev/null @@ -1,61 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -public ref class HelloServer: public MarshalByRefObject -{ -private: - static int n_called = 0; - -public: - static void Main() - { -// -// - // Registers the server and waits until the user hits enter. - TcpChannel^ chan = gcnew TcpChannel( 8084 ); - ChannelServices::RegisterChannel( chan ); - - RemotingConfiguration::RegisterWellKnownServiceType( - Type::GetType( "HelloServer,server" ), - "SayHello", - WellKnownObjectMode::SingleCall ); - System::Console::WriteLine( L"Hit to exit..." ); - System::Console::ReadLine(); -// -// - } - - HelloServer() - { - Console::WriteLine( "HelloServer activated" ); - } - - ~HelloServer() - { - Console::WriteLine( "Object Destroyed" ); - } - - String^ HelloMethod( String^ name ) - { - // Reports that the method was called. - Console::WriteLine(); - Console::WriteLine( "Hello.HelloMethod : {0}", name ); - n_called++; - Console::WriteLine( "The method was called {0} times.", n_called ); - - // Calculates and returns the result to the client. - return String::Format( "Hi there {0}", name ); - } -}; -// - -int main() -{ - HelloServer::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation1/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation1/CPP/client.cpp deleted file mode 100644 index 4a3d08ad8ade0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation1/CPP/client.cpp +++ /dev/null @@ -1,38 +0,0 @@ - - -// -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels; -int main() -{ - // - // - ChannelServices::RegisterChannel( gcnew TcpChannel ); - RemotingConfiguration::RegisterWellKnownClientType( HelloService::typeid, - "tcp://localhost:8082/HelloServiceApplication/MyUri" ); - HelloService ^ service = gcnew HelloService; - // - // - if ( service == nullptr ) - { - Console::WriteLine( "Could not locate server." ); - return -1; - } - - // Calls the remote method. - Console::WriteLine(); - Console::WriteLine( "Calling remote Object*" ); - Console::WriteLine( service->HelloMethod( "Caveman" ) ); - Console::WriteLine( service->HelloMethod( "Spaceman" ) ); - Console::WriteLine( service->HelloMethod( "Client Man" ) ); - Console::WriteLine( "Finished remote Object* call" ); - Console::WriteLine(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation1/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation1/CPP/makefile deleted file mode 100644 index 2a9cfc0149e10..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation1/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: service.dll Client.exe Server.exe - -service.dll: service.cpp - cl /clr:pure /LD service.cpp - -Server.exe: Server.cpp - cl /clr:pure Server.cpp - -Client.exe: Client.cpp - cl /clr:pure Client.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation1/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation1/CPP/server.cpp deleted file mode 100644 index 35c1d834e809f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation1/CPP/server.cpp +++ /dev/null @@ -1,27 +0,0 @@ - - -// -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -int main() -{ - // - // - ChannelServices::RegisterChannel( gcnew TcpChannel( 8082 ) ); - RemotingConfiguration::ApplicationName = "HelloServiceApplication"; - RemotingConfiguration::RegisterWellKnownServiceType( HelloService::typeid, - "MyUri", - WellKnownObjectMode::SingleCall ); - // - // - Console::WriteLine( "Press enter to stop this process." ); - Console::ReadLine(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation1/CPP/service.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation1/CPP/service.cpp deleted file mode 100644 index f8d912e49bf33..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration.ServerActivation1/CPP/service.cpp +++ /dev/null @@ -1,34 +0,0 @@ - - -// -#using - -using namespace System; -public ref class HelloService: public MarshalByRefObject -{ -private: - static int n_instances; - -public: - HelloService() - { - n_instances++; - Console::WriteLine( "" ); - Console::WriteLine( "HelloService activated - instance # {0}.", n_instances ); - } - - ~HelloService() - { - Console::WriteLine( "HelloService instance {0} destroyed.", n_instances ); - n_instances--; - } - - String^ HelloMethod( String^ name ) - { - Console::WriteLine( "HelloMethod called on HelloService instance {0}.", n_instances ); - return String::Format( "Hi there {0}.", name ); - } - -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_Configure_Client/CPP/RemotingConfiguration_Configure_Client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_Configure_Client/CPP/RemotingConfiguration_Configure_Client.cpp deleted file mode 100644 index 1c5b46ac99a86..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_Configure_Client/CPP/RemotingConfiguration_Configure_Client.cpp +++ /dev/null @@ -1,18 +0,0 @@ - - -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - TcpChannel^ myChannel = gcnew TcpChannel; - ChannelServices::RegisterChannel( myChannel ); - MyServerImpl ^ myObject = dynamic_cast(Activator::GetObject( MyServerImpl::typeid, "tcp://localhost:8085/SayHello" )); - Console::WriteLine( myObject->MyMethod( "ClientString" ) ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_Configure_Client/CPP/RemotingConfiguration_Configure_Shared.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_Configure_Client/CPP/RemotingConfiguration_Configure_Shared.cpp deleted file mode 100644 index 5b74d849a263b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_Configure_Client/CPP/RemotingConfiguration_Configure_Shared.cpp +++ /dev/null @@ -1,13 +0,0 @@ - -// This is the implementation class for the remote object. -using namespace System; -public ref class MyServerImpl: public MarshalByRefObject -{ -public: - MyServerImpl(){} - - String^ MyMethod( String^ name ) - { - return String::Format( "The string from client is {0}", name ); - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_Configure_Client/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_Configure_Client/CPP/makefile deleted file mode 100644 index 8f67adf1f7caf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_Configure_Client/CPP/makefile +++ /dev/null @@ -1,11 +0,0 @@ -all : remotingconfiguration_configure_server.exe RemotingConfiguration_Configure_Client.exe - - -remotingconfiguration_configure_server.exe : remotingconfiguration_configure_server.cpp RemotingConfiguration_Configure_Shared.dll - cl /clr:pure remotingconfiguration_configure_server.cpp - -RemotingConfiguration_Configure_Client.exe : RemotingConfiguration_Configure_Client.cpp RemotingConfiguration_Configure_Shared.dll - cl /clr:pure RemotingConfiguration_Configure_Client.cpp - -RemotingConfiguration_Configure_Shared.dll : RemotingConfiguration_Configure_Shared.cpp - cl /clr:pure /LD RemotingConfiguration_Configure_Shared.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_Configure_Client/CPP/remotingconfiguration_configure_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_Configure_Client/CPP/remotingconfiguration_configure_server.cpp deleted file mode 100644 index 122bcd549e09e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_Configure_Client/CPP/remotingconfiguration_configure_server.cpp +++ /dev/null @@ -1,40 +0,0 @@ - - -// System.Runtime.Remoting.RemotingConfiguration.Configure -// System.Runtime.Remoting.RemotingConfiguration.GetRegisteredWellKnownServiceTypes -/* - The following example demonstrates the 'Configure' and - 'GetRegisteredWellKnownServiceTypes' methods of 'RemotingConfiguration' class. - It configures the remoting infrastructure using the 'Configure' method.Then gets - the registered well-known objects at the service end and displays it's properties - on the console. -*/ -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels::Http; - -int main() -{ - // - // Configure the remoting structure. - RemotingConfiguration::Configure( "server.config" ); - // - - // - // Retrive the array of objects registered as well known types at - // the service end. - array^myEntries = RemotingConfiguration::GetRegisteredWellKnownServiceTypes(); - Console::WriteLine( "The number of WellKnownServiceTypeEntries are:{0}", myEntries->Length ); - Console::WriteLine( "The Object Type is:{0}", myEntries[ 0 ]->ObjectType ); - Console::WriteLine( "The Object Uri is:{0}", myEntries[ 0 ]->ObjectUri ); - Console::WriteLine( "The Mode is:{0}", myEntries[ 0 ]->Mode ); - // - - Console::WriteLine( "Press to exit..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredActivatedServer_Client/CPP/RemotingConfiguration_GetRegisteredActivatedService_Client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredActivatedServer_Client/CPP/RemotingConfiguration_GetRegisteredActivatedService_Client.cpp deleted file mode 100644 index 5fd1b48ad1500..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredActivatedServer_Client/CPP/RemotingConfiguration_GetRegisteredActivatedService_Client.cpp +++ /dev/null @@ -1,26 +0,0 @@ - - -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - try - { - ChannelServices::RegisterChannel( gcnew TcpChannel ); - RemotingConfiguration::RegisterActivatedClientType( MyServerImpl::typeid, "tcp://localhost:8085" ); - MyServerImpl ^ myObject = gcnew MyServerImpl; - for ( int i = 0; i <= 4; i++ ) - Console::WriteLine( myObject->MyMethod( String::Format( "invoke the server method {0} time", (i + 1) ) ) ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredActivatedServer_Client/CPP/RemotingConfiguration_GetRegisteredActivatedService_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredActivatedServer_Client/CPP/RemotingConfiguration_GetRegisteredActivatedService_server.cpp deleted file mode 100644 index 8853fd1bced2c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredActivatedServer_Client/CPP/RemotingConfiguration_GetRegisteredActivatedService_server.cpp +++ /dev/null @@ -1,44 +0,0 @@ - - -// System.Runtime.Remoting.RemotingConfiguration.IsActivationAllowed -// System.Runtime.Remoting.RemotingConfiguration.GetRegisteredActivatedServiceTypes -/* -The following example demonstrates the 'IsActivationAllowed' and -'GetRegisteredActivatedServiceTypes' methods of 'RemotingConfiguration' class. -It registers a 'TcpChannel' object with the channel services. Then registers the 'MyServerImpl' -object at the service end that can be activated on request from a client.By using the -'GetRegisteredActivatedClientTypes' method it gets the registered activated service types -and displays it's properties to the console. - -*/ -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - ChannelServices::RegisterChannel( gcnew TcpChannel( 8085 ) ); - RemotingConfiguration::RegisterActivatedServiceType( MyServerImpl::typeid ); - - // - // - // Check whether the 'MyServerImpl' object is allowed for - // activation or not. - if ( RemotingConfiguration::IsActivationAllowed( MyServerImpl::typeid ) ) - { - // Get the registered activated service types . - array^myActivatedServiceEntries = RemotingConfiguration::GetRegisteredActivatedServiceTypes(); - Console::WriteLine( "The Length of the registered activated service type array is {0}", myActivatedServiceEntries->Length ); - Console::WriteLine( "The Object type is:{0}", myActivatedServiceEntries[ 0 ]->ObjectType ); - } - // - // - - Console::WriteLine( "Press enter to stop this process." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredActivatedServer_Client/CPP/RemotingConfiguration_GetRegisteredActivatedService_shared.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredActivatedServer_Client/CPP/RemotingConfiguration_GetRegisteredActivatedService_shared.cpp deleted file mode 100644 index a117c15ab5410..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredActivatedServer_Client/CPP/RemotingConfiguration_GetRegisteredActivatedService_shared.cpp +++ /dev/null @@ -1,15 +0,0 @@ - -using namespace System; -public ref class MyServerImpl: public MarshalByRefObject -{ -public: - MyServerImpl() - { - Console::WriteLine( "Server Activated..." ); - } - - String^ MyMethod( String^ name ) - { - return String::Format( "The client requests to {0}", name ); - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredActivatedServer_Client/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredActivatedServer_Client/CPP/makefile deleted file mode 100644 index dda16a4cb4d08..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredActivatedServer_Client/CPP/makefile +++ /dev/null @@ -1,11 +0,0 @@ -all : remotingconfiguration_getregisteredactivatedservice_server.exe RemotingConfiguration_GetRegisteredActivatedService_Client.exe - - -remotingconfiguration_getregisteredactivatedservice_server.exe : remotingconfiguration_getregisteredactivatedservice_server.cpp RemotingConfiguration_GetRegisteredActivatedService_Shared.dll - cl /clr:pure remotingconfiguration_getregisteredactivatedservice_server.cpp - -RemotingConfiguration_GetRegisteredActivatedService_Client.exe : RemotingConfiguration_GetRegisteredActivatedService_Client.cpp RemotingConfiguration_GetRegisteredActivatedService_Shared.dll - cl /clr:pure RemotingConfiguration_GetRegisteredActivatedService_Client.cpp - -RemotingConfiguration_GetRegisteredActivatedService_Shared.dll : RemotingConfiguration_GetRegisteredActivatedService_Shared.cpp - cl /clr:pure /LD RemotingConfiguration_GetRegisteredActivatedService_Shared.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredWellKnownClient_Client/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredWellKnownClient_Client/CPP/makefile deleted file mode 100644 index e3934ed1ef375..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredWellKnownClient_Client/CPP/makefile +++ /dev/null @@ -1,11 +0,0 @@ -all : RemotingConfiguration_GetRegisteredWellKnownClient_Server.exe remotingconfiguration_getregisteredwellknownclient_client.exe - - -RemotingConfiguration_GetRegisteredWellKnownClient_Server.exe : RemotingConfiguration_GetRegisteredWellKnownClient_Server.cpp RemotingConfiguration_GetRegisteredWellKnownClient_Shared.dll - cl /clr:pure RemotingConfiguration_GetRegisteredWellKnownClient_Server.cpp - -remotingconfiguration_getregisteredwellknownclient_client.exe : remotingconfiguration_getregisteredwellknownclient_client.cpp RemotingConfiguration_GetRegisteredWellKnownClient_Shared.dll - cl /clr:pure remotingconfiguration_getregisteredwellknownclient_client.cpp - -RemotingConfiguration_GetRegisteredWellKnownClient_Shared.dll : RemotingConfiguration_GetRegisteredWellKnownClient_Shared.cpp - cl /clr:pure /LD RemotingConfiguration_GetRegisteredWellKnownClient_Shared.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredWellKnownClient_Client/CPP/remotingconfiguration_getregisteredwellknownclient_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredWellKnownClient_Client/CPP/remotingconfiguration_getregisteredwellknownclient_client.cpp deleted file mode 100644 index e149f6b0fb6cc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredWellKnownClient_Client/CPP/remotingconfiguration_getregisteredwellknownclient_client.cpp +++ /dev/null @@ -1,36 +0,0 @@ - - -// System.Runtime.Remoting.RemotingConfiguration.GetRegisteredWellKnownClientTypes -/* -The following example demonstrates the 'GetRegisteredWellKnownClientTypes' method -of 'RemotingConfiguration' class. -It registers a 'TcpChannel' object with the channel services. Then registers the -'MyServerImpl' object as well-known type at the client end. By using the -'GetRegisteredWellKnownClientTypes' method it gets well-known types registered -at the client side and displays it's properties to the console. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -int main() -{ - ChannelServices::RegisterChannel( gcnew TcpChannel ); - - // Register the specified object as well-known type at client end. - RemotingConfiguration::RegisterWellKnownClientType( MyServerImpl::typeid, "tcp://localhost:8085/SayHello" ); - MyServerImpl ^ myObject = gcnew MyServerImpl; - Console::WriteLine( myObject->MyMethod( "ClientString" ) ); - - // - // Get the well-known types registered at the client. - array^myEntries = RemotingConfiguration::GetRegisteredWellKnownClientTypes(); - Console::WriteLine( "The number of WellKnownClientTypeEntries are:{0}", myEntries->Length ); - Console::WriteLine( "The Object type is:{0}", myEntries[ 0 ]->ObjectType ); - Console::WriteLine( "The Object Url is:{0}", myEntries[ 0 ]->ObjectUrl ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredWellKnownClient_Client/CPP/remotingconfiguration_getregisteredwellknownclient_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredWellKnownClient_Client/CPP/remotingconfiguration_getregisteredwellknownclient_server.cpp deleted file mode 100644 index 359f51a9b1d32..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredWellKnownClient_Client/CPP/remotingconfiguration_getregisteredwellknownclient_server.cpp +++ /dev/null @@ -1,18 +0,0 @@ - - -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -int main() -{ - TcpChannel^ chan = gcnew TcpChannel( 8085 ); - ChannelServices::RegisterChannel( chan ); - RemotingConfiguration::RegisterWellKnownServiceType( MyServerImpl::typeid, "SayHello", WellKnownObjectMode::Singleton ); - Console::WriteLine( "Press to exit..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredWellKnownClient_Client/CPP/remotingconfiguration_getregisteredwellknownclient_shared.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredWellKnownClient_Client/CPP/remotingconfiguration_getregisteredwellknownclient_shared.cpp deleted file mode 100644 index 69aee02c2b088..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_GetRegisteredWellKnownClient_Client/CPP/remotingconfiguration_getregisteredwellknownclient_shared.cpp +++ /dev/null @@ -1,16 +0,0 @@ - -using namespace System; - -public ref class MyServerImpl: public MarshalByRefObject -{ -public: - MyServerImpl() - { - Console::WriteLine( "Server Activated" ); - } - - String^ MyMethod( String^ name ) - { - return String::Format( "The string from client is {0}", name ); - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType1_Client/CPP/RemotingConfiguration_IsRemotelyActivatedClientType1_Shared.cs b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType1_Client/CPP/RemotingConfiguration_IsRemotelyActivatedClientType1_Shared.cs deleted file mode 100644 index 007015ae6222f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType1_Client/CPP/RemotingConfiguration_IsRemotelyActivatedClientType1_Shared.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - - public class MyServerImpl :MarshalByRefObject - { - public MyServerImpl() - { - Console.WriteLine("Server Activated..."); - } - - public String MyMethod(String name) - { - return "The client requests to "+name; - } - } diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType1_Client/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType1_Client/CPP/makefile deleted file mode 100644 index 72013b6e09fde..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType1_Client/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: remotingconfiguration_isremotelyactivatedclienttype1_server.exe remotingconfiguration_isremotelyactivatedclienttype1_client.exe RemotingConfiguration_IsRemotelyActivatedClientType1_Shared.dll - -RemotingConfiguration_IsRemotelyActivatedClientType1_shared.dll : RemotingConfiguration_IsRemotelyActivatedClientType1_shared.cs - csc /t:library RemotingConfiguration_IsRemotelyActivatedClientType1_shared.cs - -remotingconfiguration_isremotelyactivatedclienttype1_server.exe : remotingconfiguration_isremotelyactivatedclienttype1_server.cpp RemotingConfiguration_IsRemotelyActivatedClientType1_Shared.dll - cl /clr:pure remotingconfiguration_isremotelyactivatedclienttype1_server.cpp - -remotingconfiguration_isremotelyactivatedclienttype1_client.exe : remotingconfiguration_isremotelyactivatedclienttype1_client.cpp RemotingConfiguration_IsRemotelyActivatedClientType1_Shared.dll - cl /clr:pure remotingconfiguration_isremotelyactivatedclienttype1_client.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType1_Client/CPP/remotingconfiguration_isremotelyactivatedclienttype1_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType1_Client/CPP/remotingconfiguration_isremotelyactivatedclienttype1_client.cpp deleted file mode 100644 index 39c71256e28ed..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType1_Client/CPP/remotingconfiguration_isremotelyactivatedclienttype1_client.cpp +++ /dev/null @@ -1,43 +0,0 @@ - - -// System.Runtime.Remoting.RemotingConfiguration.IsRemotelyActivatedClientType(Type) -/* -The following example demonstrates the 'IsRemotelyActivatedClientType(Type)' method -of 'RemotingConfiguration' class. -It registers a 'TcpChannel' object with the channel services. Then registers the 'MyServerImpl' -object as activated client type which can be activated at the server. By using the above -method it gets the activated client type registered at the client side and displays it's -properties to the console. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -int main() -{ - try - { - ChannelServices::RegisterChannel( gcnew TcpChannel, false ); - RemotingConfiguration::RegisterActivatedClientType( MyServerImpl::typeid, "tcp://localhost:8085" ); - MyServerImpl ^ myObject = gcnew MyServerImpl; - for ( int i = 0; i <= 4; i++ ) - Console::WriteLine( myObject->MyMethod( String::Format( "invoke the server method {0} time.", (i + 1) ) ) ); - - // - // Check whether the 'MyServerImpl' type is registered as - // a remotely activated client type. - ActivatedClientTypeEntry^ myActivatedClientEntry = RemotingConfiguration::IsRemotelyActivatedClientType( MyServerImpl::typeid); - Console::WriteLine( "The Object type is {0}", myActivatedClientEntry->ObjectType ); - Console::WriteLine( "The Application Url is {0}", myActivatedClientEntry->ApplicationUrl ); - - // - } - catch ( Exception^ e ) - { - Console::WriteLine( e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType1_Client/CPP/remotingconfiguration_isremotelyactivatedclienttype1_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType1_Client/CPP/remotingconfiguration_isremotelyactivatedclienttype1_server.cpp deleted file mode 100644 index 6732b27807198..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType1_Client/CPP/remotingconfiguration_isremotelyactivatedclienttype1_server.cpp +++ /dev/null @@ -1,18 +0,0 @@ - - -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - ChannelServices::RegisterChannel( gcnew TcpChannel( 8085 ), false ); - RemotingConfiguration::RegisterActivatedServiceType( MyServerImpl::typeid ); - Console::WriteLine( "Press enter to stop this process." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType2_Client/CPP/RemotingConfiguration_IsRemotelyActivatedClientType2_Shared.cs b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType2_Client/CPP/RemotingConfiguration_IsRemotelyActivatedClientType2_Shared.cs deleted file mode 100644 index f19ff43b19bbe..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType2_Client/CPP/RemotingConfiguration_IsRemotelyActivatedClientType2_Shared.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; - - public class MyServerImpl :MarshalByRefObject - { - int i; - public MyServerImpl() - { - i=0; - Console.WriteLine("Server Activated..."); - } - - public String MyMethod(String name) - { - i=i+1; - return "The client requests to "+name +i+" time"; - } - } diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType2_Client/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType2_Client/CPP/makefile deleted file mode 100644 index efdfd5a9bee59..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType2_Client/CPP/makefile +++ /dev/null @@ -1,14 +0,0 @@ -all: RemotingConfiguration_IsRemotelyActivatedClientType2_Shared.dll remotingconfiguration_isremotelyactivatedclienttype2_server.exe remotingconfiguration_isremotelyactivatedclienttype2_client.exe - -RemotingConfiguration_IsRemotelyActivatedClientType2_Shared.dll : RemotingConfiguration_IsRemotelyActivatedClientType2_Shared.cs - csc /t:library RemotingConfiguration_IsRemotelyActivatedClientType2_Shared.cs - -remotingconfiguration_isremotelyactivatedclienttype2_server.exe : remotingconfiguration_isremotelyactivatedclienttype2_server.cpp RemotingConfiguration_IsRemotelyActivatedClientType2_Shared.dll - cl /clr:pure remotingconfiguration_isremotelyactivatedclienttype2_server.cpp - -remotingconfiguration_isremotelyactivatedclienttype2_client.exe : remotingconfiguration_isremotelyactivatedclienttype2_client.cpp RemotingConfiguration_IsRemotelyActivatedClientType2_Shared.dll - cl /clr:pure remotingconfiguration_isremotelyactivatedclienttype2_client.cpp - - - - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType2_Client/CPP/remotingconfiguration_isremotelyactivatedclienttype2_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType2_Client/CPP/remotingconfiguration_isremotelyactivatedclienttype2_client.cpp deleted file mode 100644 index ee5aae8ca7cea..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType2_Client/CPP/remotingconfiguration_isremotelyactivatedclienttype2_client.cpp +++ /dev/null @@ -1,52 +0,0 @@ - - -// System.Runtime.Remoting.RemotingConfiguration.IsRemotelyActivatedClientType(String,String) -/* -The following example demonstrates the 'IsRemotelyActivatedClientType(String,String)' method -of 'RemotingConfiguration' class. -It registers a 'TcpChannel' object with the channel services. Then registers the 'MyServerImpl' -object as activated client type which can be activated at the server and displays it's -properties to the console. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Reflection; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - try - { - ChannelServices::RegisterChannel( gcnew TcpChannel, false ); - RemotingConfiguration::RegisterActivatedClientType( MyServerImpl::typeid, "tcp://localhost:8085" ); - MyServerImpl ^ myObject = gcnew MyServerImpl; - for ( int i = 0; i <= 4; i++ ) - Console::WriteLine( myObject->MyMethod( "invoke the server method " ) ); - - // Get the assembly for the 'MyServerImpl' object. - // - Assembly^ myAssembly = Assembly::GetAssembly( MyServerImpl::typeid ); - AssemblyName^ myName = myAssembly->GetName(); - - // Check whether the 'MyServerImpl' type is registered as - // a remotely activated client type. - ActivatedClientTypeEntry^ myActivatedClientEntry = - RemotingConfiguration::IsRemotelyActivatedClientType( MyServerImpl::typeid->FullName, myName->Name ); - Console::WriteLine( "The Object type : {0}", myActivatedClientEntry->ObjectType ); - Console::WriteLine( "The Application Url : {0}", myActivatedClientEntry->ApplicationUrl ); - if (myActivatedClientEntry) - Console::WriteLine( "The object is client activated"); - else - Console::WriteLine("The object is not client activated"); - // - } - catch ( Exception^ e ) - { - Console::WriteLine( e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType2_Client/CPP/remotingconfiguration_isremotelyactivatedclienttype2_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType2_Client/CPP/remotingconfiguration_isremotelyactivatedclienttype2_server.cpp deleted file mode 100644 index a14fe90241989..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsRemotelyActivatedClientType2_Client/CPP/remotingconfiguration_isremotelyactivatedclienttype2_server.cpp +++ /dev/null @@ -1,18 +0,0 @@ - - -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - ChannelServices::RegisterChannel( gcnew TcpChannel( 8085 ), false ); - RemotingConfiguration::RegisterActivatedServiceType( MyServerImpl::typeid ); - Console::WriteLine( "Press enter to stop this process." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType1_Client/CPP/RemotingConfiguration_IsWellKnownClientType1_Shared.cs b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType1_Client/CPP/RemotingConfiguration_IsWellKnownClientType1_Shared.cs deleted file mode 100644 index 4779f34178062..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType1_Client/CPP/RemotingConfiguration_IsWellKnownClientType1_Shared.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - - public class MyServerImpl :MarshalByRefObject - { - public MyServerImpl() - { - Console.WriteLine("Server Activated"); - } - - public String MyMethod(String name) - { - return "The string from client is " + name; - } - } diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType1_Client/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType1_Client/CPP/makefile deleted file mode 100644 index e3eabdfb65d68..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType1_Client/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: RemotingConfiguration_IsWellKnownClientType1_Shared.dll remotingconfiguration_iswellknownclienttype1_client.exe - -RemotingConfiguration_IsWellKnownClientType1_Shared.dll : RemotingConfiguration_IsWellKnownClientType1_Shared.cs - csc /t:library RemotingConfiguration_IsWellKnownClientType1_Shared.cs - -remotingconfiguration_iswellknownclienttype1_client.exe : remotingconfiguration_iswellknownclienttype1_client.cpp RemotingConfiguration_IsWellKnownClientType1_Shared.dll - cl /clr:pure remotingconfiguration_iswellknownclienttype1_client.cpp - - - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType1_Client/CPP/remotingconfiguration_iswellknownclienttype1_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType1_Client/CPP/remotingconfiguration_iswellknownclienttype1_client.cpp deleted file mode 100644 index 00ffa473c279a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType1_Client/CPP/remotingconfiguration_iswellknownclienttype1_client.cpp +++ /dev/null @@ -1,37 +0,0 @@ - - -// System.Runtime.Remoting.RemotingConfiguration.IsWellKnownClientType(Type) -/* -The following example demonstrates the 'IsWellKnownClientType(Type)' method -of 'RemotingConfiguration' class. It registers a 'TcpChannel' object with the channel -services. Then registers the 'MyServerImpl' object as well-known type. By using the above -method it gets the well-known type registered at the client side and displays it's -properties to the console. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - ChannelServices::RegisterChannel( gcnew TcpChannel, false ); - - // Register the 'MyServerImpl' object as well known type - // at client end. - RemotingConfiguration::RegisterWellKnownClientType( MyServerImpl::typeid, "tcp://localhost:8085/SayHello" ); - MyServerImpl ^ myObject = gcnew MyServerImpl; - Console::WriteLine( myObject->MyMethod( "ClientString" ) ); - - // - // Check whether the specified object type is registered as - // well known client type or not. - WellKnownClientTypeEntry^ myWellKnownClientType = RemotingConfiguration::IsWellKnownClientType( MyServerImpl::typeid ); - Console::WriteLine( "The Object type is {0}", myWellKnownClientType->ObjectType ); - Console::WriteLine( "The Object Url is {0}", myWellKnownClientType->ObjectUrl ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType2_Client/CPP/RemotingConfiguration_IsWellKnownClientType2_Shared.cs b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType2_Client/CPP/RemotingConfiguration_IsWellKnownClientType2_Shared.cs deleted file mode 100644 index ed75db7d4c923..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType2_Client/CPP/RemotingConfiguration_IsWellKnownClientType2_Shared.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Runtime.Remoting; - - public class MyServerImpl :MarshalByRefObject - { - public MyServerImpl() - { - Console.WriteLine("Server Activated"); - } - - public String MyMethod(String name) - { - Console.WriteLine(name); - return "The string from server : " + name; - } - } diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType2_Client/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType2_Client/CPP/makefile deleted file mode 100644 index ad6b6af057759..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType2_Client/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: RemotingConfiguration_IsWellKnownClientType2_Shared.dll remotingconfiguration_iswellknownclienttype2_client.exe - -RemotingConfiguration_IsWellKnownClientType2_Shared.dll : RemotingConfiguration_IsWellKnownClientType2_Shared.cs - csc /t:library RemotingConfiguration_IsWellKnownClientType2_Shared.cs - -remotingconfiguration_iswellknownclienttype2_client.exe : remotingconfiguration_iswellknownclienttype2_client.cpp RemotingConfiguration_IsWellKnownClientType2_Shared.dll - cl /clr:pure remotingconfiguration_iswellknownclienttype2_client.cpp - - - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType2_Client/CPP/remotingconfiguration_iswellknownclienttype2_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType2_Client/CPP/remotingconfiguration_iswellknownclienttype2_client.cpp deleted file mode 100644 index ba0e93af1f077..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingConfiguration_IsWellKnownClientType2_Client/CPP/remotingconfiguration_iswellknownclienttype2_client.cpp +++ /dev/null @@ -1,42 +0,0 @@ - - -// System.Runtime.Remoting.RemotingConfiguration.IsWellKnownClientType(String,String) -/* -The following example demonstrates the 'IsWellKnownClientType(String,String)' method -of 'RemotingConfiguration' class. It registers a 'TcpChannel' object with the channel -services. Then registers the 'MyServerImpl' object as well-known type at the client end. -and displays it's properties to the console. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Reflection; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - ChannelServices::RegisterChannel( gcnew TcpChannel, false ); - - // Register the 'MyServerImpl' object as well known type - // at client end. - RemotingConfiguration::RegisterWellKnownClientType( MyServerImpl::typeid, "tcp://localhost:8085/SayHello" ); - - // - MyServerImpl ^ myObject = gcnew MyServerImpl; - - // Get the assembly for the 'MyServerImpl' object. - Assembly^ myAssembly = Assembly::GetAssembly( MyServerImpl::typeid ); - AssemblyName^ myName = myAssembly->GetName(); - - // Check whether the specified object type is registered as - // well-known client type. - WellKnownClientTypeEntry^ myWellKnownClientType = RemotingConfiguration::IsWellKnownClientType( MyServerImpl::typeid->FullName, myName->Name ); - Console::WriteLine( "The Object type :{0}", myWellKnownClientType->ObjectType ); - Console::WriteLine( "The Object Uri :{0}", myWellKnownClientType->ObjectUrl ); - // - Console::WriteLine( myObject->MyMethod( "Remote method is called." ) ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices IsObject Snippets/CPP/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices IsObject Snippets/CPP/class1.cpp deleted file mode 100644 index d1b75b89c64dd..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices IsObject Snippets/CPP/class1.cpp +++ /dev/null @@ -1,56 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Runtime::Remoting; - -namespace TempConverter -{ - public ref class Converter: public MarshalByRefObject{}; - -} - -ref class Client -{ -public: - void RunSnippet() - { - // - // Create a remote version of TempConverter::Converter. - TempConverter::Converter^ converter1 = - dynamic_cast(Activator::GetObject( - TempConverter::Converter::typeid, - "http://localhost:8085/TempConverter" )); - - // Create a local version of TempConverter::Converter. - TempConverter::Converter^ converter2 = gcnew TempConverter::Converter; - - // Returns true, converter1 is remote and in a different appdomain. - System::Runtime::Remoting::RemotingServices::IsObjectOutOfAppDomain( converter1 ); - - // Returns false, converter2 is local and running in this appdomain. - System::Runtime::Remoting::RemotingServices::IsObjectOutOfAppDomain( converter2 ); - - // Returns true, converter1 is remote and in a different context. - System::Runtime::Remoting::RemotingServices::IsObjectOutOfContext( converter1 ); - - // Returns false, converter2 is local and running in this context. - System::Runtime::Remoting::RemotingServices::IsObjectOutOfContext( converter2 ); - // - - // Print those function calls. - System::Console::WriteLine( " {0}", RemotingServices::IsObjectOutOfAppDomain( converter1 ) ); - System::Console::WriteLine( " {0}", RemotingServices::IsObjectOutOfAppDomain( converter2 ) ); - System::Console::WriteLine( " {0}", RemotingServices::IsObjectOutOfContext( converter1 ) ); - System::Console::WriteLine( " {0}", RemotingServices::IsObjectOutOfContext( converter2 ) ); - } -}; - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - Client^ client = gcnew Client; - client->RunSnippet(); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/basicclient.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/basicclient.cpp deleted file mode 100644 index 0bfe3822e7412..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/basicclient.cpp +++ /dev/null @@ -1,45 +0,0 @@ - - -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace SampleNamespace; -using namespace System::Security::Permissions; - -public ref class SampleClient -{ -private: - static const String^ SERVER_URL = "http://localhost:9000/MySampleService/SampleWellKnown.soap"; - -public: - [SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::RemotingConfiguration)] - static void Snippet1() - { - // - Console::WriteLine( "Connecting to SampleNamespace::SampleWellKnown." ); - SampleWellKnown ^ proxy = dynamic_cast(RemotingServices::Connect( SampleWellKnown::typeid, const_cast(SERVER_URL) )); - Console::WriteLine( "Connected to SampleWellKnown" ); - - // Verifies that the Object* reference is to a transparent proxy. - if ( RemotingServices::IsTransparentProxy( proxy ) ) - Console::WriteLine( "proxy is a reference to a transparent proxy." ); - else - Console::WriteLine( "proxy is not a transparent proxy. This is unexpected." ); - - // Calls a method on the server Object*. - Console::WriteLine( "proxy->Add returned {0}.", proxy->Add( 2, 3 ) ); - // - } - -}; - -int main() -{ - SampleClient::Snippet1(); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/basicserver.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/basicserver.cpp deleted file mode 100644 index 52e699a41001d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/basicserver.cpp +++ /dev/null @@ -1,36 +0,0 @@ - - -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Collections; -using namespace System::IO; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Threading; -using namespace SampleNamespace; - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - String^ serverConfigFile = "basicserver.exe.config"; - if ( (args->Length > 2) && (args[ 1 ]->ToLower()->Equals( "/c" ) | args[ 1 ]->ToLower()->Equals( "-c" )) ) - { - serverConfigFile = args[ 2 ]; - } - - RemotingConfiguration::Configure( "channels.config" ); - RemotingConfiguration::Configure( serverConfigFile ); - Console::WriteLine( "Listening..." ); - String^ keyState = ""; - while ( String::Compare( keyState, "0", true ) != 0 ) - { - Console::WriteLine( "***** Press 0 to exit this service *****" ); - keyState = Console::ReadLine(); - } - - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/makefile deleted file mode 100644 index fd15841afe743..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/makefile +++ /dev/null @@ -1,17 +0,0 @@ - -all: basicserver.exe basicclient.exe manualserver.exe manualclient.exe - -basicserver.exe: basicserver.cpp service.dll - cl /clr:pure basicserver.cpp - -basicclient.exe: basicclient.cpp service.dll - cl /clr:pure basicclient.cpp - -manualserver.exe: manualserver.cpp service.dll - cl /clr:pure manualserver.cpp - -manualclient.exe: manualclient.cpp service.dll - cl /clr:pure manualclient.cpp - -service.dll: service.cpp - cl /clr:pure /LD service.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/manualclient.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/manualclient.cpp deleted file mode 100644 index 93b01ca8cceaf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/manualclient.cpp +++ /dev/null @@ -1,38 +0,0 @@ - - -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Net::Sockets; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace SampleNamespace; - -// Note: this snippet is based on v-ralphs' Dynamic Remoting sample. -int main() -{ - // System::Runtime::Remoting::RemotingServices.Disconnect() -- ManualServer::cs has a snippet for Disconnect, too. - - // - WellKnownClientTypeEntry^ remoteType = gcnew WellKnownClientTypeEntry( SampleWellKnown::typeid,"tcp://localhost:9000/objectWellKnownUri" ); - RemotingConfiguration::RegisterWellKnownClientType( remoteType ); - SampleWellKnown^ objectWellKnown = gcnew SampleWellKnown; - try - { - objectWellKnown->Add( 2, 3 ); - Console::WriteLine( "The add method on SampleWellKnown was successfully called." ); - } - catch ( SocketException^ ) - { - Console::WriteLine( "The server is not available. Is it still running?" ); - } - catch ( RemotingException^ ) - { - Console::WriteLine( "SampleWellKnown is currently not available. The server probably called Disconnect()." ); - } - // - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/manualserver.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/manualserver.cpp deleted file mode 100644 index d526055447af6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/manualserver.cpp +++ /dev/null @@ -1,33 +0,0 @@ - - -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace SampleNamespace; - -// Note: this snippet is based on v-ralphs' Dynamic Remoting sample. -int main() -{ - // - TcpChannel^ channel = gcnew TcpChannel( 9000 ); - ChannelServices::RegisterChannel( channel ); - SampleWellKnown ^ objectWellKnown = gcnew SampleWellKnown; - - // After the channel is registered, the Object* needs to be registered - // with the remoting infrastructure. So, Marshal is called. - ObjRef^ objrefWellKnown = RemotingServices::Marshal( objectWellKnown, "objectWellKnownUri" ); - Console::WriteLine( "An instance of SampleWellKnown type is published at {0}.", objrefWellKnown->URI ); - Console::WriteLine( "Press enter to unregister SampleWellKnown, so that it is no longer available on this channel." ); - Console::ReadLine(); - RemotingServices::Disconnect( objectWellKnown ); - Console::WriteLine( "Press enter to end the server process." ); - Console::ReadLine(); - // - - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/service.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/service.cpp deleted file mode 100644 index 05a59c3feab28..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.BasicSample/CPP/service.cpp +++ /dev/null @@ -1,23 +0,0 @@ - - -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Collections; -using namespace System::Runtime::Remoting; - -namespace SampleNamespace -{ - public ref class SampleWellKnown: public MarshalByRefObject - { - public: - int State; - int Add( int a, int b ) - { - Console::WriteLine( "Add method called" ); - return a + b; - } - }; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.ExecuteMessage/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.ExecuteMessage/CPP/client.cpp deleted file mode 100644 index 366f610432aa1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.ExecuteMessage/CPP/client.cpp +++ /dev/null @@ -1,23 +0,0 @@ - - -#using -#using -#using "serviceclass.dll" - -using namespace System; -using namespace System::Diagnostics; -using namespace System::Reflection; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - ChannelServices::RegisterChannel( gcnew TcpChannel ); - WellKnownClientTypeEntry^ remoteType = gcnew WellKnownClientTypeEntry( SampleService::typeid,"tcp://localhost:9000/SampleServiceUri" ); - RemotingConfiguration::RegisterWellKnownClientType( remoteType ); - SampleService^ service = gcnew SampleService; - Console::WriteLine( "Connected to SampleService" ); - service->UpdateServer( 3, 3.14, "Pi" ); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.ExecuteMessage/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.ExecuteMessage/CPP/makefile deleted file mode 100644 index 2c14cfc29ce0b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.ExecuteMessage/CPP/makefile +++ /dev/null @@ -1,12 +0,0 @@ -all : server.exe client.exe - - -server.exe : server.cpp serviceclass.dll - cl /clr:pure server.cpp - -client.exe : client.cpp serviceclass.dll - cl /clr:pure client.cpp - -serviceclass.dll : serviceclass.cpp - cl /clr:pure /LD serviceclass.cpp - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.ExecuteMessage/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.ExecuteMessage/CPP/server.cpp deleted file mode 100644 index dbbe1ba79ecbc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.ExecuteMessage/CPP/server.cpp +++ /dev/null @@ -1,42 +0,0 @@ - - -#using -#using -#using "serviceclass.dll" - -using namespace System; -using namespace System::Diagnostics; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Contexts; -int main() -{ - array^args = Environment::GetCommandLineArgs(); - TcpChannel^ channel; - bool isReplicationServer = false; - - // Determine if this should be the replication server - if ( (args->Length > 1) && (args[ 1 ]->ToLower()->Equals( "r" )) ) - { - isReplicationServer = true; - channel = gcnew TcpChannel( 9001 ); - } - else - { - channel = gcnew TcpChannel( 9000 ); - } - - ChannelServices::RegisterChannel( channel ); - WellKnownServiceTypeEntry^ entry = gcnew WellKnownServiceTypeEntry( SampleService::typeid,"SampleServiceUri",WellKnownObjectMode::Singleton ); - RemotingConfiguration::RegisterWellKnownServiceType( entry ); - if ( !isReplicationServer ) - { - ReplicationSinkProp ^ myProp = gcnew ReplicationSinkProp; - Context::RegisterDynamicProperty( myProp, nullptr, nullptr ); - } - - Console::WriteLine( "**** Press enter to stop this process. ****\n" ); - Console::ReadLine(); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.ExecuteMessage/CPP/serviceclass.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.ExecuteMessage/CPP/serviceclass.cpp deleted file mode 100644 index 79aaac386f2a0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.ExecuteMessage/CPP/serviceclass.cpp +++ /dev/null @@ -1,153 +0,0 @@ - - -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Diagnostics; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Remoting::Contexts; -using namespace System::Runtime::Remoting::Channels; - -public ref class SampleService: public ContextBoundObject -{ -public: - bool UpdateServer( int i, double d, String^ s ) - { - Console::WriteLine( "SampleService::UpdateServer called: {0}, {1}, {2}", i, d, s ); - return true; - } - -}; - -public ref class ReplicationSink: public IDynamicMessageSink -{ -private: - static const String^ replicatedServiceUri = "/SampleServiceUri"; - static const String^ replicationServerUrl = "tcp://localhost:9001"; - -public: - - // System::Runtime::Remoting::RemotingServices.ExecuteMessage - // System::Runtime::Remoting::RemotingServices.GetSessionIdForMethodMessage - // - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual void ProcessMessageStart( IMessage^ requestMessage, bool /*bClientSide*/, bool /*bAsyncCall*/ ) - { - Console::WriteLine( "\nProcessMessageStart" ); - Console::WriteLine( "requestMessage = {0}", requestMessage ); - try - { - Console::WriteLine( "SessionId = {0}.", RemotingServices::GetSessionIdForMethodMessage( dynamic_cast(requestMessage) ) ); - } - catch ( InvalidCastException^ ) - { - Console::WriteLine( "The requestMessage is not an IMethodMessage*." ); - } - - IMethodCallMessage^ requestMethodCallMessage; - try - { - requestMethodCallMessage = dynamic_cast(requestMessage); - - // Prints the details of the IMethodCallMessage* to the console. - Console::WriteLine( "\nMethodCall details" ); - Console::WriteLine( "Uri = {0}", requestMethodCallMessage->Uri ); - Console::WriteLine( "TypeName = {0}", requestMethodCallMessage->TypeName ); - Console::WriteLine( "MethodName = {0}", requestMethodCallMessage->MethodName ); - Console::WriteLine( "ArgCount = {0}", requestMethodCallMessage->ArgCount ); - Console::WriteLine( "MethodCall::Args" ); - IEnumerator^ myEnum = requestMethodCallMessage->Args->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Object^ o = safe_cast(myEnum->Current); - Console::WriteLine( "\t {0}", o ); - - // Sends this method call message to another server to replicate - // the call at the second server. - if ( requestMethodCallMessage->Uri == replicatedServiceUri ) - { - String^ repSvr = String::Format( "{0}{1}", const_cast(replicationServerUrl), const_cast(replicatedServiceUri) ); - SampleService^ replicationService = dynamic_cast(Activator::GetObject( SampleService::typeid, repSvr )); - IMethodReturnMessage^ returnMessage = RemotingServices::ExecuteMessage( replicationService, requestMethodCallMessage ); - - // Prints the results of the method call stored in the IMethodReturnMessage*. - Console::WriteLine( "\nMessage returned by ExecuteMessage." ); - Console::WriteLine( "\tException = {0}", returnMessage->Exception ); - Console::WriteLine( "\tReturnValue = {0}", returnMessage->ReturnValue ); - Console::WriteLine( "\tOutArgCount = {0}", returnMessage->OutArgCount ); - Console::WriteLine( "Return message OutArgs" ); - IEnumerator^ myEnum = requestMethodCallMessage->Args->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Object^ o = safe_cast(myEnum->Current); - Console::WriteLine( "\t {0}", o ); - } - } - } - } - catch ( InvalidCastException^ ) - { - Console::WriteLine( "The requestMessage is not a MethodCall" ); - } - } - // - - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual void ProcessMessageFinish( IMessage^ requestMessage, bool /*bClientSide*/, bool /*bAsyncCall*/ ) - { - Console::WriteLine( "\nProcessMessageFinish" ); - Console::WriteLine( "requestMessage = {0}", requestMessage ); - ReturnMessage^ requestMethodReturn; - try - { - requestMethodReturn = static_cast(requestMessage); - - // Print the details of the ReturnMessage to the console - Console::WriteLine( "\nReturnMessage details" ); - Console::WriteLine( "\tException = {0}", requestMethodReturn->Exception ); - Console::WriteLine( "\tReturnValue = {0}", requestMethodReturn->ReturnValue ); - Console::WriteLine( "\tOutArgCount = {0}", requestMethodReturn->OutArgCount ); - Console::WriteLine( "Return message OutArgs" ); - IEnumerator^ myEnum = requestMethodReturn->Args->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Object^ o = safe_cast(myEnum->Current); - Console::WriteLine( "\t {0}", o ); - } - } - catch ( InvalidCastException^ ) - { - Console::WriteLine( "The requestMessage is not a ReturnMessage." ); - } - } -}; - -public ref class ReplicationSinkProp: public IDynamicProperty, public IContributeDynamicSink -{ -public: - - property String^ Name - { - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual String^ get() - { - return "ReplicationSinkProp"; - } - } - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual IDynamicMessageSink^ GetDynamicSink() - { - return gcnew ReplicationSink; - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.GetObjRefForProxy/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.GetObjRefForProxy/CPP/client.cpp deleted file mode 100644 index b8502b5c48bf4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.GetObjRefForProxy/CPP/client.cpp +++ /dev/null @@ -1,54 +0,0 @@ - - -#using -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Net::Sockets; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Remoting::Lifetime; -using namespace System::Collections; -using namespace SampleNamespace; - -int main() -{ - ChannelServices::RegisterChannel( gcnew HttpChannel( 0 ), false ); - RemotingConfiguration::RegisterActivatedClientType( SampleService::typeid, "http://localhost:9000/MySampleService" ); - SampleService ^ myRemoteObject = gcnew SampleService; - bool result = myRemoteObject->SampleMethod(); - - // System::Runtime::Remoting::RemotingServices.GetObjRefForProxy - // - ObjRef^ objRefSample = RemotingServices::GetObjRefForProxy( myRemoteObject ); - Console::WriteLine( "***ObjRef Details***" ); - Console::WriteLine( "URI:\t {0}", objRefSample->URI ); - array^channelData = objRefSample->ChannelInfo->ChannelData; - Console::WriteLine( "Channel Info:" ); - IEnumerator^ myEnum = channelData->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Object^ o = safe_cast(myEnum->Current); - Console::WriteLine( "\t {0}", o ); - } - - IEnvoyInfo^ envoyInfo = objRefSample->EnvoyInfo; - if ( envoyInfo == nullptr ) - { - Console::WriteLine( "This ObjRef does not have envoy information." ); - } - else - { - IMessageSink^ envoySinks = envoyInfo->EnvoySinks; - Console::WriteLine( "Envoy Sink Class: {0}", envoySinks ); - } - - IRemotingTypeInfo^ typeInfo = objRefSample->TypeInfo; - Console::WriteLine( "Remote type name: {0}", typeInfo->TypeName ); - Console::WriteLine( "Can my Object* cast to a Bitmap? {0}", typeInfo->CanCastTo( System::Drawing::Bitmap::typeid, objRefSample ) ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.GetObjRefForProxy/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.GetObjRefForProxy/CPP/makefile deleted file mode 100644 index af9980200399f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.GetObjRefForProxy/CPP/makefile +++ /dev/null @@ -1,11 +0,0 @@ -all: service.dll server.exe client.exe - -service.dll : service.cs - csc /t:library service.cs - -server.exe : server.cpp service.dll - cl /clr:pure server.cpp - -client.exe : client.cpp service.dll - cl /clr:pure client.cpp - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.GetObjRefForProxy/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.GetObjRefForProxy/CPP/server.cpp deleted file mode 100644 index 7c0c3498a56e2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.GetObjRefForProxy/CPP/server.cpp +++ /dev/null @@ -1,24 +0,0 @@ - - -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Lifetime; -using namespace SampleNamespace; - -int main() -{ - HttpChannel^ channel = gcnew HttpChannel( 9000 ); - ChannelServices::RegisterChannel( channel, false ); - RemotingConfiguration::ApplicationName = "MySampleService"; - RemotingConfiguration::RegisterActivatedServiceType( SampleService::typeid ); - Console::WriteLine( "Press enter to end the server process." ); - Console::ReadLine(); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.GetObjRefForProxy/CPP/service.cs b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.GetObjRefForProxy/CPP/service.cs deleted file mode 100644 index aede08cfc26bc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.GetObjRefForProxy/CPP/service.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Runtime.Remoting; -using System.Runtime.Remoting.Channels; -using System.Runtime.Remoting.Channels.Tcp; -using System.Runtime.Remoting.Channels.Http; -using System.Runtime.Remoting.Lifetime; - -namespace SampleNamespace { - // Define the remote service class - public class SampleService : MarshalByRefObject { - public bool SampleMethod() { - Console.WriteLine("Hello, you have called SampleMethod()."); - return true; - } - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.TimerSample/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.TimerSample/CPP/makefile deleted file mode 100644 index c35829a2adeef..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.TimerSample/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: timerserver.exe timerclient.exe - -timerserver.exe: timerserver.cpp timerservice.dll - cl /clr:pure timerserver.cpp - -timerclient.exe: timerclient.cpp timerservice.dll - cl /clr:pure timerclient.cpp - -timerservice.dll: timerservice.cpp - cl /clr:pure /LD timerservice.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.TimerSample/CPP/timerclient.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.TimerSample/CPP/timerclient.cpp deleted file mode 100644 index 590b94dffc718..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.TimerSample/CPP/timerclient.cpp +++ /dev/null @@ -1,75 +0,0 @@ -// System::Runtime::Remoting::RemotingServices.GetLifetimeService -// This sample is of a remote client for a group coffee timer. -// Since the client must stay connected to a stateful server object -// for minutes without calling it, it needs to register as a sponsor -// of the lease to prevent the server from being collected. -// Multiple clients can connect to the same timer object, and receive -// notification when the timer expires. -// System::Runtime::Remoting::RemotingServices.GetLifetimeService -// -#using -#using -#using "timerservice.dll" - -using namespace System; -using namespace System::Net::Sockets; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Remoting::Lifetime; -using namespace TimerSample; -using namespace System::Security::Permissions; - -namespace GroupCoffeeTimer -{ - public ref class TimerClient: public MarshalByRefObject, public ISponsor - { - public: - [SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::Infrastructure)] - TimerClient() - { - // Registers the HTTP Channel so that this client can receive - // events from the remote service. - ChannelServices::RegisterChannel( gcnew HttpChannel( 0 ), false ); - WellKnownClientTypeEntry^ remoteType = gcnew WellKnownClientTypeEntry( TimerService::typeid,"http://localhost:9000/MyService/TimerService.soap" ); - RemotingConfiguration::RegisterWellKnownClientType( remoteType ); - TimerService^ groupTimer = gcnew TimerService; - groupTimer->MinutesToTime = 4.0; - - // Registers this client as a lease sponsor so that it can - // prevent the expiration of the TimerService. - ILease^ leaseObject = dynamic_cast(RemotingServices::GetLifetimeService( groupTimer )); - leaseObject->Register( this ); - - // Subscribes to the event so that the client can receive notifications from the server. - groupTimer->TimerExpired += gcnew TimerExpiredEventHandler( this, &TimerClient::OnTimerExpired ); - Console::WriteLine( "Connected to TimerExpired event" ); - groupTimer->Start(); - Console::WriteLine( "Timer started for {0} minutes.", groupTimer->MinutesToTime ); - Console::WriteLine( "Press enter to end the client process." ); - Console::ReadLine(); - } - - private: - void OnTimerExpired( Object^, TimerServiceEventArgs^ e ) - { - Console::WriteLine( "TimerHelper::OnTimerExpired: {0}", e->Message ); - } - public: - [System::Security::Permissions::PermissionSet(System::Security:: - Permissions::SecurityAction::Demand, Name = "FullTrust")] - virtual TimeSpan Renewal( ILease^ ) - { - Console::WriteLine( "TimerClient: Renewal called." ); - return TimeSpan::FromMinutes( 0.5 ); - } - }; -} - -int main() -{ - using namespace GroupCoffeeTimer; - gcnew TimerClient; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.TimerSample/CPP/timerserver.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.TimerSample/CPP/timerserver.cpp deleted file mode 100644 index a1dfd6cd549c1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.TimerSample/CPP/timerserver.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#using -#using -#using "timerservice.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Lifetime; -using namespace System::Timers; -using namespace TimerSample; - -int main() -{ - HttpChannel^ channel = gcnew HttpChannel( 9000 ); - ChannelServices::RegisterChannel( channel, false ); - RemotingConfiguration::RegisterWellKnownServiceType( TimerService::typeid, "MyService/TimerService.soap", WellKnownObjectMode::Singleton ); - Console::WriteLine( "Press enter to end the server process." ); - Console::ReadLine(); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.TimerSample/CPP/timerservice.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.TimerSample/CPP/timerservice.cpp deleted file mode 100644 index b57341a1d8734..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.TimerSample/CPP/timerservice.cpp +++ /dev/null @@ -1,124 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Lifetime; -using namespace System::Timers; - -namespace TimerSample -{ - // Define the event arguments - - [Serializable] - public ref class TimerServiceEventArgs: public EventArgs - { - private: - String^ m_Message; - - public: - TimerServiceEventArgs( String^ message ) - { - m_Message = message; - } - - property String^ Message - { - String^ get() - { - return m_Message; - } - } - }; - - public delegate void TimerExpiredEventHandler( // Define the delegate for the event - Object^ sender, TimerServiceEventArgs^ e ); - - // Define the remote service class - public ref class TimerService: public MarshalByRefObject - { - private: - double m_MinutesToTime; - Timer^ m_Timer; - - public: - event TimerExpiredEventHandler^ TimerExpired; - - // The client will subscribe and unsubscribe to this event - // Default: Initialize the TimerService to 4 minutes, the time required - // to brew coffee in a French Press. - TimerService() - { - Console::WriteLine( "TimerService instantiated." ); - m_MinutesToTime = 4.0; - m_Timer = gcnew Timer; - m_Timer->Elapsed += gcnew ElapsedEventHandler( this, &TimerService::OnElapsed ); - } - - TimerService( double minutes ) - { - Console::WriteLine( "TimerService instantiated." ); - m_MinutesToTime = minutes; - m_Timer = gcnew Timer; - m_Timer->Elapsed += gcnew ElapsedEventHandler( this, &TimerService::OnElapsed ); - } - - property double MinutesToTime - { - double get() - { - return m_MinutesToTime; - } - - void set( double value ) - { - m_MinutesToTime = value; - } - - } - void Start() - { - if ( !m_Timer->Enabled ) - { - TimeSpan interval = TimeSpan::FromMinutes( m_MinutesToTime ); - m_Timer->Interval = interval.TotalMilliseconds; - m_Timer->Enabled = true; - } - else - { - // TODO: Raise an exception - } - } - - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual Object^ InitializeLifetimeService() override - { - ILease^ lease = dynamic_cast(MarshalByRefObject::InitializeLifetimeService()); - if ( lease->CurrentState == LeaseState::Initial ) - { - lease->InitialLeaseTime = TimeSpan::FromMinutes( 0.125 ); - lease->SponsorshipTimeout = TimeSpan::FromMinutes( 2 ); - lease->RenewOnCallTime = TimeSpan::FromSeconds( 2 ); - Console::WriteLine( "TimerService: InitializeLifetimeService" ); - } - - return lease; - } - private: - void OnElapsed( Object^ source, ElapsedEventArgs^ e ) - { - m_Timer->Enabled = false; - - // Fire Event - // Package String in TimerServiceEventArgs - TimerServiceEventArgs^ timerEventArgs = gcnew TimerServiceEventArgs( "TimerServiceEventArgs: Timer Expired." ); - Console::WriteLine( "Firing TimerExpired Event" ); - TimerExpired( this, timerEventArgs ); - } - }; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.Unmarshal/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.Unmarshal/CPP/client.cpp deleted file mode 100644 index d7f3d4b569d39..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.Unmarshal/CPP/client.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// System::Runtime::Remoting::RemotingServices.GetLifetimeService -// This sample is of a remote client for a group coffee timer. -// Since the client must stay connected to a stateful server Object* -// for minutes with->Item[Out] calling* it, it needs to register as a sponsor -// of the lease to prevent the server from being collected. -// Multiple clients can connect to the same timer Object*, and receive -// notification when the timer expires. - -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Net::Sockets; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Remoting::Lifetime; -using namespace SampleNamespace; - -int main() -{ - // System::Runtime::Remoting::RemotingServices.Unmarshal - // - ChannelServices::RegisterChannel( gcnew HttpChannel ); - - SampleService ^ objectSample = (SampleService^)( Activator::GetObject( SampleService::typeid, - "http://localhost:9000/MySampleService/SampleService.soap" ) ); - - // The GetManuallyMarshaledObject() method uses RemotingServices::Marshal() - // to create an ObjRef object for a SampleTwo object. - ObjRef^ objRefSampleTwo = objectSample->GetManuallyMarshaledObject(); - - SampleTwo ^ objectSampleTwo = (SampleTwo^)( RemotingServices::Unmarshal( objRefSampleTwo ) ); - - objectSampleTwo->PrintMessage( "ObjRef successfuly unmarshaled." ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.Unmarshal/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.Unmarshal/CPP/makefile deleted file mode 100644 index a804d9e3e10e2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.Unmarshal/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all : server.exe client.exe - -server.exe : server.cpp service.dll - cl /clr:pure server.cpp - -client.exe : client.cpp service.dll - cl /clr:pure client.cpp - -service.dll : service.cpp - cl /LD /clr:pure service.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.Unmarshal/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.Unmarshal/CPP/server.cpp deleted file mode 100644 index 3f715d0fa45cb..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.Unmarshal/CPP/server.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Lifetime; -using namespace SampleNamespace; - -int main() -{ - // System::Runtime::Remoting::RemotingServices.SetObjectUriForMarshal - // - RemotingConfiguration::ApplicationName = "MySampleService"; - HttpChannel^ channel = gcnew HttpChannel( 9000 ); - ChannelServices::RegisterChannel( channel ); - SampleService^ objectService = gcnew SampleService; - RemotingServices::SetObjectUriForMarshal( objectService, "SampleService.soap" ); - RemotingServices::Marshal( objectService ); - - Console::WriteLine( "Press enter to end the server process." ); - Console::ReadLine(); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.Unmarshal/CPP/service.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.Unmarshal/CPP/service.cpp deleted file mode 100644 index 0872b8161fdaf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/RemotingServices.Unmarshal/CPP/service.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Lifetime; - -namespace SampleNamespace -{ - public ref class SampleTwo: public MarshalByRefObject - { - public: - void PrintMessage( String^ s ) - { - Console::WriteLine( "This message was received from the client:" ); - Console::WriteLine( "\t {0}", s ); - } - }; - - // Define the remote service class - public ref class SampleService: public MarshalByRefObject - { - public: - bool SampleMethod() - { - Console::WriteLine( "Hello, you have called SampleMethod()." ); - return true; - } - - ObjRef^ GetManuallyMarshaledObject() - { - SampleTwo^ objectTwo = gcnew SampleTwo; - ObjRef^ objRefTwo = RemotingServices::Marshal( objectTwo ); - return objRefTwo; - } - }; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Ipc/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Ipc/CPP/client.cpp deleted file mode 100644 index a25a8b273ca34..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Ipc/CPP/client.cpp +++ /dev/null @@ -1,33 +0,0 @@ - -// -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Ipc; - -public ref class Client -{ -public: - void ClientTest() - { - // - IpcClientChannel^ clientChannel = gcnew IpcClientChannel; - ChannelServices::RegisterChannel( clientChannel ); - // - - RemotingConfiguration::RegisterWellKnownClientType( Counter::typeid, L"ipc://remote/counter" ); - Counter^ counter = gcnew Counter; - Console::WriteLine( L"This is call number {0}.", counter->Count ); - } -}; - -int main() -{ - Client^ c = gcnew Client; - c->ClientTest(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Ipc/CPP/counter.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Ipc/CPP/counter.cpp deleted file mode 100644 index 57f389d01b4b3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Ipc/CPP/counter.cpp +++ /dev/null @@ -1,24 +0,0 @@ - -// Counter.cs -// -using namespace System; -public ref class Counter: public MarshalByRefObject -{ -private: - int count; - -public: - Counter() - { - count = 0; - } - - property int Count - { - int get() - { - return (count)++; - } - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Ipc/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Ipc/CPP/makefile deleted file mode 100644 index aca530f08d7ba..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Ipc/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: Counter.dll Client.exe Server.exe - -Counter.dll: Counter.cpp - cl /clr:pure /LD Counter.cpp - -Server.exe: Server.cpp - cl /clr:pure Server.cpp - -Client.exe: Client.cpp - cl /clr:pure Client.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Ipc/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Ipc/CPP/server.cpp deleted file mode 100644 index 3e9a5712ad176..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Ipc/CPP/server.cpp +++ /dev/null @@ -1,40 +0,0 @@ - -// -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Ipc; - -public ref class IpcServer -{ -public: - void IpcServerTest() - { - // - // Create and register an IPC channel - IpcServerChannel^ serverChannel = gcnew IpcServerChannel( L"remote" ); - ChannelServices::RegisterChannel( serverChannel ); - // - - // Expose an object - RemotingConfiguration::RegisterWellKnownServiceType( Counter::typeid, L"counter", WellKnownObjectMode::Singleton ); - - // Wait for calls - // - Console::WriteLine( L"Listening on {0}", serverChannel->GetChannelUri() ); - // - - Console::ReadLine(); - } -}; - -int main() -{ - IpcServer^ is = gcnew IpcServer; - is->IpcServerTest(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/client.cpp deleted file mode 100644 index 99ac0db930000..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/client.cpp +++ /dev/null @@ -1,18 +0,0 @@ - - -// -#using - -using namespace System; -using namespace System::Runtime::Remoting; - -int main() -{ - // Set up a remoting client. - RemotingConfiguration::Configure( "Client.config" ); - - // Call a method on a remote object. - Remotable ^ remoteObject = gcnew Remotable; - Console::WriteLine( remoteObject->GetCount() ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/clientsink.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/clientsink.cpp deleted file mode 100644 index 849a76f616ef7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/clientsink.cpp +++ /dev/null @@ -1,142 +0,0 @@ - -// -using namespace System::Runtime::InteropServices; -using namespace System; -using namespace System::Collections; -using namespace System::IO; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Messaging; - -[System::Security::Permissions::PermissionSet(System::Security:: - Permissions::SecurityAction::Demand, Name = "FullTrust")] -public ref class ClientSink: public BaseChannelSinkWithProperties, public IClientChannelSink -{ -private: - - // This class inherits from BaseChannelSinkWithPropertes - // to get an implementation of IChannelSinkBase. - // - // The next sink in the chain. - IClientChannelSink^ nextSink; - // - - - // -public: - property IClientChannelSink^ NextChannelSink - { - virtual IClientChannelSink^ get() - { - return (nextSink); - } - } - // - - // - virtual Stream^ GetRequestStream( IMessage^ message, ITransportHeaders^ requestHeaders ) - { - // Get the request stream from the next sink in the chain. - return (nextSink->GetRequestStream( message, requestHeaders )); - } - // - - // - virtual void ProcessMessage( IMessage^ message, ITransportHeaders^ requestHeaders, Stream^ requestStream, [Out]ITransportHeaders^% responseHeaders, [Out]Stream^% responseStream ) - { - // Print the request message properties. - Console::WriteLine( "---- Message from the client ----" ); - IDictionary^ dictionary = message->Properties; - IEnumerator^ myEnum = dictionary->Keys->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Object^ key = safe_cast(myEnum->Current); - Console::WriteLine( "{0} = {1}", key, dictionary[ key ] ); - } - - Console::WriteLine( "---------------------------------" ); - - // Hand off to the next sink in the chain. - nextSink->ProcessMessage( message, requestHeaders, requestStream, responseHeaders, responseStream ); - } - // - - // - // For synchronous remoting, it is not necessary to implement this method. - virtual void AsyncProcessRequest( IClientChannelSinkStack^ /*sinkStack*/, IMessage^ /*message*/, ITransportHeaders^ /*requestHeaders*/, Stream^ /*requestStream*/ ) - { - throw gcnew NotImplementedException; - } - // - - // - virtual void AsyncProcessResponse( IClientResponseChannelSinkStack^ /*sinkStack*/, Object^ /*state*/, ITransportHeaders^ /*responseHeaders*/, Stream^ /*responseStream*/ ) - { - throw gcnew NotImplementedException; - } - - // - property System::Collections::IDictionary^ Properties - { - virtual System::Collections::IDictionary^ get() override - { - return (dynamic_cast(this))->Properties; - } - } - - // Constructor - ClientSink( IClientChannelSink^ sink ) - { - if ( sink == nullptr ) - throw gcnew ArgumentNullException( "sink" ); - - nextSink = sink; - } -}; -// - -// -[System::Security::Permissions::PermissionSet(System::Security:: - Permissions::SecurityAction::Demand, Name = "FullTrust")] -public ref class ClientSinkProvider: public IClientChannelSinkProvider -{ -private: - - // - // The next provider in the chain. - IClientChannelSinkProvider^ nextProvider; - // - - // -public: - property IClientChannelSinkProvider^ Next - { - virtual IClientChannelSinkProvider^ get() - { - return (nextProvider); - } - - virtual void set( IClientChannelSinkProvider^ value ) - { - nextProvider = value; - } - } - // - - // - virtual IClientChannelSink^ CreateSink( IChannelSender^ channel, String^ url, Object^ remoteChannelData ) - { - Console::WriteLine( "Creating ClientSink for {0}", url ); - - // Create the next sink in the chain. - IClientChannelSink^ nextSink = nextProvider->CreateSink( channel, url, remoteChannelData ); - - // Hook our sink up to it. - return (gcnew ClientSink( nextSink )); - } - // - - // This constructor is required in order to use the provider in file-based configuration. - // It need not do anything unless you want to use the information in the parameters. - ClientSinkProvider( IDictionary^ /*properties*/, ICollection^ /*providerData*/ ){} -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/makefile deleted file mode 100644 index c1426b57e8dd0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/makefile +++ /dev/null @@ -1,12 +0,0 @@ -# Comment here -all: Server.exe Client.exe -Remotable.dll: Remotable.cpp - cl /clr:pure /LD Remotable.cpp -ServerSink.dll: ServerSink.cpp - cl /clr:pure /LD ServerSink.cpp -Server.exe: Server.cpp Remotable.dll ServerSink.dll - cl /clr:pure Server.cpp -ClientSink.dll: ClientSink.cpp - cl /clr:pure /LD ClientSink.cpp -Client.exe: Client.cpp ClientSink.dll Remotable.dll - cl /clr:pure Client.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/remotable.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/remotable.cpp deleted file mode 100644 index adbb36ff4042d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/remotable.cpp +++ /dev/null @@ -1,22 +0,0 @@ - -// -using namespace System; -using namespace System::Runtime::Remoting; - -public ref class Remotable: public MarshalByRefObject -{ -private: - int callCount; - -public: - Remotable() - : callCount( 0 ) - {} - - int GetCount() - { - callCount++; - return (callCount); - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/server.cpp deleted file mode 100644 index 7163b96de7faa..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/server.cpp +++ /dev/null @@ -1,15 +0,0 @@ - -// -using namespace System; -using namespace System::Runtime::Remoting; - -int main() -{ - // Set up a remoting server. - RemotingConfiguration::Configure( "Server.config" ); - - // Wait for method calls. - Console::WriteLine( "Listening..." ); - Console::ReadLine(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/serversink.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/serversink.cpp deleted file mode 100644 index 93da1a676ea0a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/serversink.cpp +++ /dev/null @@ -1,137 +0,0 @@ - -// -using namespace System::Runtime::InteropServices; -using namespace System; -using namespace System::Collections; -using namespace System::IO; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Messaging; - -[System::Security::Permissions::PermissionSet(System::Security:: - Permissions::SecurityAction::Demand, Name = "FullTrust")] -public ref class ServerSink: public BaseChannelSinkWithProperties, public IServerChannelSink -{ -private: - - // This class inherits from BaseChannelSinkWithPropertes - // to get an implementation of IChannelSinkBase. - // - // The next sink in the chain. - IServerChannelSink^ nextSink; - // - - // -public: - property IServerChannelSink^ NextChannelSink - { - virtual IServerChannelSink^ get() - { - return (nextSink); - } - } - // - - // - virtual Stream^ GetResponseStream( IServerResponseChannelSinkStack^ /*sinkStack*/, Object^ /*state*/, IMessage^ /*message*/, ITransportHeaders^ /*responseHeaders*/ ) - { - return nullptr; - } - // - - // - virtual ServerProcessing ProcessMessage( IServerChannelSinkStack^ sinkStack, IMessage^ requestMessage, ITransportHeaders^ requestHeaders, Stream^ requestStream, [Out]IMessage^% responseMessage, [Out]ITransportHeaders^% responseHeaders, [Out]Stream^% responseStream ) - { - // Hand off to the next sink for processing. - sinkStack->Push( this, nullptr ); - ServerProcessing status = nextSink->ProcessMessage( sinkStack, requestMessage, requestHeaders, requestStream, responseMessage, responseHeaders, responseStream ); - - // Print the response message properties. - Console::WriteLine( "---- Message from the server ----" ); - IDictionary^ dictionary = ( *responseMessage).Properties; - IEnumerator^ myEnum = dictionary->Keys->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Object^ key = safe_cast(myEnum->Current); - Console::WriteLine( "{0} = {1}", key, dictionary[ key ] ); - } - - Console::WriteLine( "---------------------------------" ); - return (status); - } - // - - // - virtual void AsyncProcessResponse( IServerResponseChannelSinkStack^ /*sinkStack*/, Object^ /*state*/, IMessage^ /*message*/, ITransportHeaders^ /*responseHeaders*/, Stream^ /*responseStream*/ ) - { - throw gcnew NotImplementedException; - } - // - - property System::Collections::IDictionary^ Properties - { - virtual System::Collections::IDictionary^ get() override - { - return (dynamic_cast(this))->Properties; - } - } - - // Constructor - ServerSink( IServerChannelSink^ sink ) - { - if ( sink == nullptr ) - throw gcnew ArgumentNullException( "sink" ); - - nextSink = sink; - } -}; -// - -// -[System::Security::Permissions::PermissionSet(System::Security:: - Permissions::SecurityAction::Demand, Name = "FullTrust")] -public ref class ServerSinkProvider: public IServerChannelSinkProvider -{ - // - // The next provider in the chain. -private: - IServerChannelSinkProvider^ nextProvider; - // - - // -public: - property IServerChannelSinkProvider^ Next - { - virtual IServerChannelSinkProvider^ get() - { - return (nextProvider); - } - - virtual void set( IServerChannelSinkProvider^ value ) - { - nextProvider = value; - } - } - // - - // - virtual IServerChannelSink^ CreateSink( IChannelReceiver^ channel ) - { - Console::WriteLine( "Creating ServerSink" ); - - // Create the next sink in the chain. - IServerChannelSink^ nextSink = nextProvider->CreateSink( channel ); - - // Hook our sink up to it. - return (gcnew ServerSink( nextSink )); - } - // - - // - virtual void GetChannelData( IChannelDataStore^ /*channelData*/ ){} - // - - // This constructor is required in order to use the provider in file-based configuration. - // It need not do anything unless you want to use the information in the parameters. - ServerSinkProvider( IDictionary^ /*properties*/, ICollection^ /*providerData*/ ){} -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpAuth/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpAuth/CPP/client.cpp deleted file mode 100644 index 5b2824ec1ef94..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpAuth/CPP/client.cpp +++ /dev/null @@ -1,35 +0,0 @@ - - -// -#using -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - // - // Specify client channel properties. - IDictionary^ dict = gcnew Hashtable; - dict[ "port" ] = 9090; - dict[ "impersonationLevel" ] = "Identify"; - dict[ "authenticationPolicy" ] = "AuthPolicy, Policy"; - - // Set up a client channel. - TcpClientChannel^ clientChannel = gcnew TcpClientChannel( dict, nullptr ); - ChannelServices::RegisterChannel( clientChannel, false ); - // - - // Obtain a proxy for a remote object. - RemotingConfiguration::RegisterWellKnownClientType( Remotable::typeid, "tcp://localhost:9090/Remotable.rem" ); - - // Call a method on the object. - Remotable ^ remoteObject = gcnew Remotable; - Console::WriteLine( remoteObject->GetMessage() ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpAuth/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpAuth/CPP/makefile deleted file mode 100644 index 641994d912bad..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpAuth/CPP/makefile +++ /dev/null @@ -1,8 +0,0 @@ -all: Remotable.dll Server.exe Client.exe -Remotable.dll: Remotable.cpp - cl /clr:pure /LD Remotable.cpp -Server.exe: Server.cpp Remotable.dll - cl /clr:pure Server.cpp -Client.exe: Client.cpp Remotable.dll - cl /clr:pure Client.cpp - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpAuth/CPP/remotable.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpAuth/CPP/remotable.cpp deleted file mode 100644 index 7a3be490f0ba9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpAuth/CPP/remotable.cpp +++ /dev/null @@ -1,41 +0,0 @@ -// -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Security::Principal; -using namespace System::Text; -using namespace System::Security::Permissions; - -public ref class Remotable: public MarshalByRefObject -{ -public: - - // A method to call remotely. - [SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::Infrastructure)] - String^ GetMessage() - { - // Create a message. - StringBuilder^ message = gcnew StringBuilder( "call" ); - - // Identity the calling principal. - IIdentity^ remoteIdentity = dynamic_cast(System::Runtime::Remoting::Messaging::CallContext::GetData( "__remotePrincipal" )); - if ( remoteIdentity == nullptr ) - { - message->Append( " by an unknown caller" ); - } - else - { - message->AppendFormat( " by {0}", remoteIdentity->Name ); - } - - - // Identify the executing principal. - IIdentity^ localIdentity = dynamic_cast(WindowsIdentity::GetCurrent()); - message->AppendFormat( " was executed as {0}.", localIdentity->Name ); - - // Return the message. - return (message->ToString()); - } - -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpAuth/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpAuth/CPP/server.cpp deleted file mode 100644 index fc2018f899f7d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpAuth/CPP/server.cpp +++ /dev/null @@ -1,34 +0,0 @@ - - -// -#using -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - // - // Specify server channel properties. - IDictionary^ dict = gcnew Hashtable; - dict[ "port" ] = 9090; - dict[ "authenticationMode" ] = "IdentifyCallers"; - - // Set up a server channel. - TcpServerChannel^ serverChannel = gcnew TcpServerChannel( dict, nullptr ); - ChannelServices::RegisterChannel( serverChannel, false ); - - // - // Set up a remote object. - RemotingConfiguration::RegisterWellKnownServiceType( Remotable::typeid, "Remotable.rem", WellKnownObjectMode::Singleton ); - - // Wait for method calls. - Console::WriteLine( "Listening..." ); - Console::ReadLine(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpInfo/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpInfo/CPP/client.cpp deleted file mode 100644 index ced0c327846c3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpInfo/CPP/client.cpp +++ /dev/null @@ -1,35 +0,0 @@ - - -// -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -int main() -{ - - // - // Set up a client channel. - TcpClientChannel^ clientChannel = gcnew TcpClientChannel; - ChannelServices::RegisterChannel( clientChannel ); - - // - // - // Show the name and priority of the channel. - Console::WriteLine( "Channel Name: {0}", clientChannel->ChannelName ); - Console::WriteLine( "Channel Priority: {0}", clientChannel->ChannelPriority ); - - // - // Obtain a proxy for a remote object. - RemotingConfiguration::RegisterWellKnownClientType( Remotable::typeid, "tcp://localhost:9090/Remotable.rem" ); - - // Call a method on the object. - Remotable ^ remoteObject = gcnew Remotable; - Console::WriteLine( remoteObject->GetCount() ); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpInfo/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpInfo/CPP/makefile deleted file mode 100644 index d8e75e869e224..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpInfo/CPP/makefile +++ /dev/null @@ -1,7 +0,0 @@ -all: Remotable.dll Server.exe Client.exe -Remotable.dll: Remotable.cpp - cl /clr:pure /LD Remotable.cpp -Server.exe: Server.cpp Remotable.dll - cl /clr:pure Server.cpp -Client.exe: Client.cpp Remotable.dll - cl /clr:pure Client.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpInfo/CPP/remotable.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpInfo/CPP/remotable.cpp deleted file mode 100644 index 81b3b1ffd8fbf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpInfo/CPP/remotable.cpp +++ /dev/null @@ -1,22 +0,0 @@ - -// -using namespace System; -using namespace System::Runtime::Remoting; - -public ref class Remotable: public MarshalByRefObject -{ -private: - int callCount; - -public: - Remotable() - : callCount( 0 ) - {} - - int GetCount() - { - callCount++; - return (callCount); - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpInfo/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpInfo/CPP/server.cpp deleted file mode 100644 index 7688f7f257edd..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Remoting_TcpInfo/CPP/server.cpp +++ /dev/null @@ -1,45 +0,0 @@ - - -// -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - // - // Set up a server channel. - TcpServerChannel^ serverChannel = gcnew TcpServerChannel( 9090 ); - ChannelServices::RegisterChannel( serverChannel ); - // - - // Expose an object for remote calls. - RemotingConfiguration::RegisterWellKnownServiceType( Remotable::typeid, "Remotable.rem", WellKnownObjectMode::Singleton ); - - // - // Show the name and priority of the channel. - Console::WriteLine( "Channel Name: {0}", serverChannel->ChannelName ); - Console::WriteLine( "Channel Priority: {0}", serverChannel->ChannelPriority ); - // - - // - // Show the URIs associated with the channel. - ChannelDataStore^ data = dynamic_cast(serverChannel->ChannelData); - System::Collections::IEnumerator^ myEnum = data->ChannelUris->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - String^ uri = safe_cast(myEnum->Current); - Console::WriteLine( uri ); - } - // - - // Wait for method calls. - Console::WriteLine( "Listening..." ); - Console::ReadLine(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SchemaReference/CPP/schemareference.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SchemaReference/CPP/schemareference.cpp deleted file mode 100644 index 56b4a19308eae..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SchemaReference/CPP/schemareference.cpp +++ /dev/null @@ -1,83 +0,0 @@ - - -// System::Web::Services::Discovery.SchemaReference::SchemaReference() -// System::Web::Services::Discovery.SchemaReference::SchemaReference(String*) -// System::Web::Services::Discovery.SchemaReference::SchemaReference.DefaultFileName -// System::Web::Services::Discovery.SchemaReference::SchemaReference.Namespace -// System::Web::Services::Discovery.SchemaReference::SchemaReference.ReadDocument(stream) -// System::Web::Services::Discovery.SchemaReference::SchemaReference.Schema -// System::Web::Services::Discovery.SchemaReference::SchemaReference.Ref -// System::Web::Services::Discovery.SchemaReference::SchemaReference.TargetNamespace -// System::Web::Services::Discovery.SchemaReference::SchemaReference.Url -// System::Web::Services::Discovery.SchemaReference::SchemaReference.WriteDocument(Object*, stream) -// System::Web::Services::Discovery.SchemaReference::SchemaReference -/* This example demonstrates 'SchemaReference' class, its constructors, 'ReadDocument', -* 'WriteDocument', 'Namespace, 'DefaultFileName', 'Schema', 'Ref', 'TargetNamespace', -* and 'Url' members. A variable of type 'SchemaReference' is taken. An xml schema -* document is passed as parameter to overloaded constructor. All the membes are shown -* using 'SchemaReference' variable. -Note : The dataservice.xsd file should be copied to Inetpub\wwwroot -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Xml; -using namespace System::Xml::Schema; -using namespace System::Web::Services::Discovery; -int main() -{ - try - { - - // - // Reference the schema document. - String^ myStringUrl = "c:\\Inetpub\\wwwroot\\dataservice.xsd"; - XmlSchema^ myXmlSchema; - - // Create the client protocol. - DiscoveryClientProtocol^ myDiscoveryClientProtocol = gcnew DiscoveryClientProtocol; - myDiscoveryClientProtocol->Credentials = CredentialCache::DefaultCredentials; - - // Create a schema reference. - SchemaReference^ mySchemaReferenceNoParam = gcnew SchemaReference; - SchemaReference^ mySchemaReference = gcnew SchemaReference( myStringUrl ); - - // Set the client protocol. - mySchemaReference->ClientProtocol = myDiscoveryClientProtocol; - - // Access the default file name associated with the schema reference. - Console::WriteLine( "Default filename is : {0}", mySchemaReference->DefaultFilename ); - - // Access the namespace associated with schema reference class. - Console::WriteLine( "Namespace is : {0}", SchemaReference::Namespace ); - FileStream^ myStream = gcnew FileStream( myStringUrl,FileMode::OpenOrCreate ); - - // Read the document in a stream. - mySchemaReference->ReadDocument( myStream ); - - // Get the schema of referenced document. - myXmlSchema = mySchemaReference->Schema; - Console::WriteLine( "Reference is : {0}", mySchemaReference->Ref ); - Console::WriteLine( "Target namespace (default empty) is : {0}", mySchemaReference->TargetNamespace ); - Console::WriteLine( "URL is : {0}", mySchemaReference->Url ); - - // Write the document in the stream. - mySchemaReference->WriteDocument( myXmlSchema, myStream ); - myStream->Close(); - mySchemaReference = nullptr; - - // - } - catch ( Exception^ e ) - { - Console::WriteLine( e ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SelectModeExample/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SelectModeExample/CPP/source.cpp deleted file mode 100644 index 13bca5b2a4375..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SelectModeExample/CPP/source.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#using - -using namespace System; -using namespace System::Text; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; - -int main() -{ - - //Set up variables and String to write to the server. - Encoding^ ASCII = Encoding::ASCII; - String^ Get = "GET / HTTP/1.1\r\nHost: www.contoso.com" + - "\r\nConnection: Close\r\n\r\n"; - array^ ByteGet = ASCII->GetBytes( Get ); - array^ RecvBytes = gcnew array(256); - String^ strRetPage = nullptr; - - // IPAddress and IPEndPoint represent the endpoint that will - // receive the request. - // Get first IPAddress in list return by DNS. - IPAddress^ hostadd = Dns::GetHostEntry( "www.contoso.com" )->AddressList[ 0 ]; - IPEndPoint^ EPhost = gcnew IPEndPoint( hostadd,80 ); - - // - //Creates the Socket for sending data over TCP. - Socket^ s = gcnew Socket( AddressFamily::InterNetwork, SocketType::Stream, - ProtocolType::Tcp ); - - // Connects to host using IPEndPoint. - s->Connect( EPhost ); - if ( !s->Connected ) - { - strRetPage = "Unable to connect to host"; - } - // Use the SelectWrite enumeration to obtain Socket status. - if ( s->Poll( -1, SelectMode::SelectWrite ) ) - { - Console::WriteLine( "This Socket is writable." ); - } - else if ( s->Poll( -1, SelectMode::SelectRead ) ) - { - Console::WriteLine( "This Socket is readable." ); - } - else if ( s->Poll( -1, SelectMode::SelectError ) ) - { - Console::WriteLine( "This Socket has an error." ); - } - // - - // Sent the GET text to the host. - s->Send( ByteGet, ByteGet->Length, SocketFlags::None ); - - // Receives the page, loops until all bytes are received. - Int32 bytes = s->Receive( RecvBytes, RecvBytes->Length, SocketFlags::None ); - strRetPage = "Default HTML page on www.contoso.com:\r\n"; - strRetPage = String::Concat( strRetPage, ASCII->GetString( RecvBytes, 0, bytes ) ); - - while ( bytes > 0 ) - { - bytes = s->Receive( RecvBytes, RecvBytes->Length, SocketFlags::None ); - strRetPage = String::Concat( strRetPage, ASCII->GetString( RecvBytes, 0, bytes ) ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SerializationAttributes/CPP/s.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SerializationAttributes/CPP/s.cpp deleted file mode 100644 index 19c0b28945873..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SerializationAttributes/CPP/s.cpp +++ /dev/null @@ -1,79 +0,0 @@ - - -// -#using -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Runtime::Serialization::Formatters::Soap; - -// A test object that needs to be serialized. - -[Serializable] -ref class TestSimpleObject -{ -private: - int member1; - String^ member2; - String^ member3; - double member4; - -public: - - // A field that is not serialized. - - [NonSerialized] - String^ member5; - TestSimpleObject() - { - member1 = 11; - member2 = "hello"; - member3 = "hello"; - member4 = 3.14159265; - member5 = "hello world!"; - } - - void Print() - { - Console::WriteLine( "member1 = ' {0}'", member1 ); - Console::WriteLine( "member2 = ' {0}'", member2 ); - Console::WriteLine( "member3 = ' {0}'", member3 ); - Console::WriteLine( "member4 = ' {0}'", member4 ); - Console::WriteLine( "member5 = ' {0}'", member5 ); - } - -}; - -int main() -{ - // Creates a new TestSimpleObject object. - TestSimpleObject^ obj = gcnew TestSimpleObject; - Console::WriteLine( "Before serialization the Object* contains: " ); - obj->Print(); - - // Opens a file and serializes the object into it in binary format. - Stream^ stream = File::Open( "data.xml", FileMode::Create ); - SoapFormatter^ formatter = gcnew SoapFormatter; - - //BinaryFormatter* formatter = new BinaryFormatter(); - formatter->Serialize( stream, obj ); - stream->Close(); - - // Empties obj. - obj = nullptr; - - // Opens file S"data.xml" and deserializes the object from it. - stream = File::Open( "data.xml", FileMode::Open ); - formatter = gcnew SoapFormatter; - - //formatter = new BinaryFormatter(); - obj = dynamic_cast(formatter->Deserialize( stream )); - stream->Close(); - Console::WriteLine( "" ); - Console::WriteLine( "After deserialization the object contains: " ); - obj->Print(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SerializationBinder Example/CPP/serializationbinder.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SerializationBinder Example/CPP/serializationbinder.cpp deleted file mode 100644 index 0173b3dfbb52f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SerializationBinder Example/CPP/serializationbinder.cpp +++ /dev/null @@ -1,161 +0,0 @@ - -// -using namespace System; -using namespace System::IO; -using namespace System::Runtime::Serialization; -using namespace System::Runtime::Serialization::Formatters::Binary; -using namespace System::Reflection; -using namespace System::Security::Permissions; -ref class Version1ToVersion2DeserializationBinder; - -[Serializable] -ref class Version1Type -{ -public: - Int32 x; -}; - - -[Serializable] -ref class Version2Type: public ISerializable -{ -public: - Int32 x; - String^ name; - - // The security attribute demands that code that calls - // this method have permission to perform serialization. - - [SecurityPermissionAttribute(SecurityAction::Demand,SerializationFormatter=true)] - virtual void GetObjectData( SerializationInfo^ info, StreamingContext context ) - { - info->AddValue( "x", x ); - info->AddValue( "name", name ); - } - - -private: - - // The security attribute demands that code that calls - // this method have permission to perform serialization. - - [SecurityPermissionAttribute(SecurityAction::Demand,SerializationFormatter=true)] - Version2Type( SerializationInfo^ info, StreamingContext context ) - { - x = info->GetInt32( "x" ); - try - { - name = info->GetString( "name" ); - } - catch ( SerializationException^ ) - { - // The 'name' field was not serialized because Version1Type - // did not contain this field. - // We will set this field to a reasonable default value. - name = "Reasonable default value"; - } - } -}; - -ref class Version1ToVersion2DeserializationBinder sealed: public SerializationBinder -{ -public: - virtual Type^ BindToType( String^ assemblyName, String^ typeName ) override - { - Type^ typeToDeserialize = nullptr; - - // For each assemblyName/typeName that you want to deserialize to - // a different type, set typeToDeserialize to the desired type. - String^ assemVer1 = Assembly::GetExecutingAssembly()->FullName; - String^ typeVer1 = "Version1Type"; - if ( assemblyName->Equals( assemVer1 ) && typeName->Equals( typeVer1 ) ) - { - // To use a type from a different assembly version, - // change the version number using the following line of code. - // assemblyName = assemblyName.Replace("1.0.0.0", "2.0.0.0"); - // To use a different type from the same assembly, - // change the type name. - typeName = "Version2Type"; - } - - // The following line of code returns the type. - typeToDeserialize = Type::GetType( String::Format( "{0}, {1}", typeName, assemblyName ) ); - return typeToDeserialize; - } -}; - -ref class App -{ -public: - static void Serialize() - { - // To serialize the objects, you must first open a stream for writing. - // We will use a file stream here. - FileStream^ fs = gcnew FileStream( "DataFile.dat",FileMode::Create ); - try - { - // Construct a BinaryFormatter and use it - // to serialize the data to the stream. - BinaryFormatter^ formatter = gcnew BinaryFormatter; - - // Construct a Version1Type Object and serialize it. - Version1Type^ obj = gcnew Version1Type; - obj->x = 123; - formatter->Serialize( fs, obj ); - } - catch ( SerializationException^ e ) - { - Console::WriteLine( "Failed to serialize. Reason: {0}", e->Message ); - throw; - } - finally - { - fs->Close(); - } - } - - static void Deserialize() - { - // Declare the Version2Type reference. - Version2Type^ obj = nullptr; - - // Open the file containing the data that we want to deserialize. - FileStream^ fs = gcnew FileStream( "DataFile.dat",FileMode::Open ); - try - { - // Construct a BinaryFormatter and use it - // to deserialize the data from the stream. - BinaryFormatter^ formatter = gcnew BinaryFormatter; - - // Construct an instance of our - // Version1ToVersion2TypeSerialiationBinder type. - // This Binder type knows how to deserialize a Version1Type - // Object* to a Version2Type Object. - formatter->Binder = gcnew Version1ToVersion2DeserializationBinder; - obj = dynamic_cast(formatter->Deserialize( fs )); - } - catch ( SerializationException^ e ) - { - Console::WriteLine( "Failed to deserialize. Reason: {0}", e->Message ); - throw; - } - finally - { - fs->Close(); - } - - // To prove that a Version2Type Object* was deserialized, - // display the Object's type and fields to the console. - Console::WriteLine( "Type of Object deserialized: {0}", obj->GetType() ); - Console::WriteLine( "x = {0}, name = {1}", obj->x, obj->name ); - } -}; - -[STAThread] -int main() -{ - App::Serialize(); - App::Deserialize(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceClass/CPP/serviceclass.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceClass/CPP/serviceclass.cpp deleted file mode 100644 index 6b5d11452a777..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceClass/CPP/serviceclass.cpp +++ /dev/null @@ -1,84 +0,0 @@ -// System.Web.Services.Description.Service - -/* The following sample demonstrates the class 'Service'.This sample reads the -contents of a file 'MathService_cs.wsdl' into a 'ServiceDescription' instance. -It gets the collection of Service instances from 'ServiceDescription'. It -then removes a 'Service' from the collection and creates a new 'Service' and -adds it into collection. It writes a new web service description file 'MathService_New.wsdl'. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Xml; - -Port^ CreatePort( String^ PortName, String^ BindingName, String^ targetNamespace ) -{ - Port^ myPort = gcnew Port; - myPort->Name = PortName; - myPort->Binding = gcnew XmlQualifiedName( BindingName,targetNamespace ); - - // Create a SoapAddress extensibility element to add to the port. - SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding; - mySoapAddressBinding->Location = "http://localhost/ServiceClass/MathService_CS.asmx"; - myPort->Extensions->Add( mySoapAddressBinding ); - return myPort; -} - -int main() -{ - try - { - // Read a WSDL document. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_CS.wsdl" ); - ServiceCollection^ myServiceCollection = myServiceDescription->Services; - int noOfServices = myServiceCollection->Count; - Console::WriteLine( "\nTotal number of services: {0}", noOfServices ); - - // Gets a reference to the service. - Service^ myOldService = myServiceCollection[ 0 ]; - Console::WriteLine( "No. of ports in the service: {0}", myServiceCollection[ 0 ]->Ports->Count ); - Console::WriteLine( "These are the ports in the service:" ); - for ( int i = 0; i < myOldService->Ports->Count; i++ ) - Console::WriteLine( "Port name: {0}", myOldService->Ports[ i ]->Name ); - Console::WriteLine( "Service name: {0}", myOldService->Name ); - Service^ myService = gcnew Service; - myService->Name = "MathService"; - - // Add the Ports to the newly created Service. - for ( int i = 0; i < myOldService->Ports->Count; i++ ) - { - String^ PortName = myServiceCollection[ 0 ]->Ports[ i ]->Name; - String^ BindingName = myServiceCollection[ 0 ]->Ports[ i ]->Binding->Name; - myService->Ports->Add( CreatePort( PortName, BindingName, myServiceDescription->TargetNamespace ) ); - } - Console::WriteLine( "Newly created ports -" ); - for ( int i = 0; i < myService->Ports->Count; i++ ) - Console::WriteLine( "Port name: {0}", myOldService->Ports[ i ]->Name ); - - // Add the extensions to the newly created Service. - int noOfExtensions = myOldService->Extensions->Count; - Console::WriteLine( "No. of extensions: {0}", noOfExtensions ); - if ( noOfExtensions > 0 ) - { - for ( int i = 0; i < myOldService->Ports->Count; i++ ) - myService->Extensions->Add( myServiceCollection[ 0 ]->Extensions[ i ] ); - } - - // Remove the service from the collection. - myServiceCollection->Remove( myOldService ); - - // Add the newly created service. - myServiceCollection->Add( myService ); - myServiceDescription->Write( "MathService_New.wsdl" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceCollection_CopyTo/CPP/servicecollection_copyto.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceCollection_CopyTo/CPP/servicecollection_copyto.cpp deleted file mode 100644 index 8935936e70fe2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceCollection_CopyTo/CPP/servicecollection_copyto.cpp +++ /dev/null @@ -1,111 +0,0 @@ -// System.Web.Services.Description.ServiceCollection.Contains(Service) -// System.Web.Services.Description.ServiceCollection.IndexOf(service) -// System.Web.Services.Description.ServiceCollection.CopyTo(System[],int) - -/* -The following program demonstrates the methods of -ServiceDescription and ServiceCollection class. An existing WSDL document -is read. An exiting service named "MathService" is removed from the -collection. A new Service object is constructed and added at index 1 of the -Collection .A new WSDL file is created as output. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Text; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::IO; -using namespace System::Xml; -int main() -{ - try - { - // Read the Existing Wsdl. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "AddSubtractService_CS.wsdl" ); - - // Remove the service named "MathService". - ServiceCollection^ myServiceDescriptionCollection = myServiceDescription->Services; - myServiceDescriptionCollection->Remove( myServiceDescription->Services[ "MathService" ] ); - - // Build a new Service. - Service^ myService = gcnew Service; - myService->Name = "MathService"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:MathServiceSoap" ); - - // Build a new Port for Soap. - Port^ mySoapPort = gcnew Port; - mySoapPort->Name = "MathServiceSoap"; - mySoapPort->Binding = myXmlQualifiedName; - SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding; - mySoapAddressBinding->Location = "http://localhost/ServiceCollection_CopyTo/AddSubtractService_CS.asmx"; - mySoapPort->Extensions->Add( mySoapAddressBinding ); - - // Build a new Port for HttpGet. - XmlQualifiedName^ myXmlQualifiedName2 = gcnew XmlQualifiedName( "s0:MathServiceHttpGet" ); - Port^ myHttpGetPort = gcnew Port; - myHttpGetPort->Name = "MathServiceHttpGet"; - myHttpGetPort->Binding = myXmlQualifiedName2; - HttpAddressBinding^ myHttpAddressBinding = gcnew HttpAddressBinding; - myHttpAddressBinding->Location = "http://localhost/ServiceCollection_CopyTo/AddSubtractService_CS.asmx"; - myHttpGetPort->Extensions->Add( myHttpAddressBinding ); - - // Build a new Port for HttpPost. - XmlQualifiedName^ myXmlQualifiedName3 = gcnew XmlQualifiedName( "s0:MathServiceHttpPost" ); - - // Build a new Port for Soap. - Port^ myHttpPostPort = gcnew Port; - myHttpPostPort->Name = "MathServiceHttpPost"; - myHttpPostPort->Binding = myXmlQualifiedName3; - HttpAddressBinding^ myHttpAddressBinding1 = gcnew HttpAddressBinding; - myHttpAddressBinding1->Location = "http://localhost/ServiceCollection_CopyTo/AddSubtractService_CS.asmx"; - myHttpPostPort->Extensions->Add( myHttpAddressBinding1 ); - - // Add the ports to the service. - myService->Ports->Add( mySoapPort ); - myService->Ports->Add( myHttpGetPort ); - myService->Ports->Add( myHttpPostPort ); - - // Add the Service to the ServiceCollection. - myServiceDescription->Services->Insert( 1, myService ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( "output.wsdl" ); - - // Output the Wsdl. - myServiceDescription->Write( myStreamWriter ); - myStreamWriter->Close(); - - // - // - if ( myServiceDescription->Services->Contains( myService ) ) - { - Console::WriteLine( "The mentioned service exists at index {0} in the WSDL.", myServiceDescription->Services->IndexOf( myService ) ); - - // - array^myServiceArray = gcnew array(myServiceDescription->Services->Count); - - // Copy the services into an array. - myServiceDescription->Services->CopyTo( myServiceArray, 0 ); - IEnumerator^ myEnumerator = myServiceArray->GetEnumerator(); - Console::WriteLine( "The names of services in the array are" ); - while ( myEnumerator->MoveNext() ) - { - Service^ myService1 = dynamic_cast(myEnumerator->Current); - Console::WriteLine( myService1->Name ); - } - // - } - else - { - Console::WriteLine( "Service does not exist in the WSDL." ); - } - // - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception Caught! {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceCollection_Item/CPP/servicecollection_item.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceCollection_Item/CPP/servicecollection_item.cpp deleted file mode 100644 index 64701ed31f107..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceCollection_Item/CPP/servicecollection_item.cpp +++ /dev/null @@ -1,80 +0,0 @@ -// System.Web.Services.Description.ServiceDescription.Write(FileName) -// System.Web.Services.Description.ServiceCollection.Remove -// System.Web.Services.Description.ServiceCollection.Item(int) -// System.Web.Services.Description.ServiceDescription.Services -// System.Web.Services.Description.ServiceDescription.TargetNamespace -// System.Web.Services.Description.ServiceCollection.Add - -/* -The following example demonstrates methods and properties of -ServiceDescription and ServiceCollection classes. -A new WSDL is read and the existing service "MathService" in the -ServiceCollection is removed.The service by default is defined for -SOAP,HttpGet,HttpPost.A new Service defined for SOAP and HttpGet is -constructed and added to the ServiceCollection. -The programs writes a new web service description file. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; -int main() -{ - // - // - // - // - // - // Read a ServiceDescription from existing WSDL. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "Input_CS.wsdl" ); - myServiceDescription->TargetNamespace = "http://tempuri.org/"; - // - - // Get the ServiceCollection of the ServiceDescription. - ServiceCollection^ myServiceCollection = myServiceDescription->Services; - - // Remove the Service at index 0 of the collection. - myServiceCollection->Remove( myServiceDescription->Services[ 0 ] ); - // - // - // - // - // Build a new Service. - Service^ myService = gcnew Service; - myService->Name = "MathService"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:MathServiceSoap" ); - - // Build a new Port for SOAP. - Port^ mySoapPort = gcnew Port; - mySoapPort->Name = "MathServiceSoap"; - mySoapPort->Binding = myXmlQualifiedName; - SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding; - mySoapAddressBinding->Location = "http://localhost/ServiceCollection_Item/AddSub_CS.asmx"; - mySoapPort->Extensions->Add( mySoapAddressBinding ); - - // Build a new Port for HTTP-GET. - XmlQualifiedName^ myXmlQualifiedName2 = gcnew XmlQualifiedName( "s0:MathServiceHttpGet" ); - Port^ myHttpGetPort = gcnew Port; - myHttpGetPort->Name = "MathServiceHttpGet"; - myHttpGetPort->Binding = myXmlQualifiedName2; - HttpAddressBinding^ myHttpAddressBinding = gcnew HttpAddressBinding; - myHttpAddressBinding->Location = "http://localhost/ServiceCollection_Item/AddSub_CS.asmx"; - myHttpGetPort->Extensions->Add( myHttpAddressBinding ); - - // Add the ports to the service. - myService->Ports->Add( myHttpGetPort ); - myService->Ports->Add( mySoapPort ); - - // Add the service to the ServiceCollection. - myServiceCollection->Add( myService ); - - // - // Write to a new WSDL file. - myServiceDescription->Write( "output.wsdl" ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription/CPP/servicedescription.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription/CPP/servicedescription.cpp deleted file mode 100644 index fa70e899296c4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription/CPP/servicedescription.cpp +++ /dev/null @@ -1,84 +0,0 @@ -// System.Web.Services.Description.ServiceDescription - -/* -The following example demonstrates the 'ServiceDescription' class. -The input to the program is a WSDL file 'MyWsdl.wsdl'. -This program removes one 'Binding' from the existing WSDL. -A new Binding is defined and added to the ServiceDescription object. -The program generates a new Web Service Description document. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Description; -using namespace System::Xml; - -// Used to create OperationBinding instances within 'Binding'. -OperationBinding^ CreateOperationBinding( String^ operation, String^ targetNamespace ) -{ - // Create OperationBinding instance for operation. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = operation; - - // Create InputBinding for operation. - InputBinding^ myInputBinding = gcnew InputBinding; - SoapBodyBinding^ mySoapBodyBinding = gcnew SoapBodyBinding; - mySoapBodyBinding->Use = SoapBindingUse::Literal; - myInputBinding->Extensions->Add( mySoapBodyBinding ); - - // Create OutputBinding for operation. - OutputBinding^ myOutputBinding = gcnew OutputBinding; - myOutputBinding->Extensions->Add( mySoapBodyBinding ); - - // Add 'InputBinding' and 'OutputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInputBinding; - myOperationBinding->Output = myOutputBinding; - - // Create extensibility element for 'SoapOperationBinding'. - SoapOperationBinding^ mySoapOperationBinding = gcnew SoapOperationBinding; - mySoapOperationBinding->Style = SoapBindingStyle::Document; - mySoapOperationBinding->SoapAction = targetNamespace + operation; - - // Add extensibility element 'SoapOperationBinding' to 'OperationBinding'. - myOperationBinding->Extensions->Add( mySoapOperationBinding ); - return myOperationBinding; -} - -int main() -{ - try - { - // - // Obtain the ServiceDescription of existing Wsdl. - ServiceDescription^ myDescription = ServiceDescription::Read( "MyWsdl_CS.wsdl" ); - - // Remove the Binding from the Binding Collection of ServiceDescription. - BindingCollection^ myBindingCollection = myDescription->Bindings; - myBindingCollection->Remove( myBindingCollection[ 0 ] ); - - // Form a new Binding. - Binding^ myBinding = gcnew Binding; - myBinding->Name = "Service1Soap"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:Service1Soap" ); - myBinding->Type = myXmlQualifiedName; - SoapBinding^ mySoapBinding = gcnew SoapBinding; - mySoapBinding->Transport = "http://schemas.xmlsoap.org/soap/http"; - mySoapBinding->Style = SoapBindingStyle::Document; - OperationBinding^ addOperationBinding = CreateOperationBinding( "Add", myDescription->TargetNamespace ); - myBinding->Operations->Add( addOperationBinding ); - myBinding->Extensions->Add( mySoapBinding ); - - // Add the Binding to the ServiceDescription. - myDescription->Bindings->Add( myBinding ); - myDescription->Write( "MyOutWsdl.wsdl" ); - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception :{0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionBaseCollection/CPP/servicedescriptionbasecollection.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionBaseCollection/CPP/servicedescriptionbasecollection.cpp deleted file mode 100644 index a8845c0e0db03..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionBaseCollection/CPP/servicedescriptionbasecollection.cpp +++ /dev/null @@ -1,192 +0,0 @@ - - -// System.Web.Services.Description.ServiceDescriptionBaseCollection. -/* -The following example demonstrates 'ServiceDescriptionBaseCollection' class. -A 'ServiceDescription' instance is obtained from the existing Wsdl. -'MyMethod' takes an instance of 'ServiceDescriptionBaseCollection' as a parameter. -Instance of different types of collections that were actually derived from -'ServiceDescriptionBaseCollection' are passed to my method and modifications of -corresponding instances in done. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; -ref class ServiceDescription_Sample -{ -public: - static ServiceDescription^ myServiceDescription; - static void Main() - { - // Read a ServiceDescription of existing WSDL. - myServiceDescription = ServiceDescription::Read( "Input_CS.wsdl" ); - - // Get the ServiceCollection of the ServiceDescription. - ServiceCollection^ myServiceCollection = myServiceDescription->Services; - MyMethod( myServiceCollection ); - BindingCollection^ myBindingCollection = myServiceDescription->Bindings; - MyMethod( myBindingCollection ); - PortTypeCollection^ myPortTypeCollection = myServiceDescription->PortTypes; - MyMethod( myPortTypeCollection ); - myServiceDescription->Write( "Output.Wsdl" ); - } - - // - static void MyMethod( ServiceDescriptionBaseCollection^ myServiceCollection ) - { - Type^ myType = myServiceCollection->GetType(); - if ( myType->Equals( System::Web::Services::Description::ServiceCollection::typeid ) ) - { - // Remove the services at index 0 of the collection. - (dynamic_cast(myServiceCollection))->Remove( myServiceDescription->Services[ 0 ] ); - - // Build a new Service. - Service^ myService = gcnew Service; - myService->Name = "MathService"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:MathServiceSoap" ); - - // Build a new Port for SOAP. - Port^ mySoapPort = gcnew Port; - mySoapPort->Name = "MathServiceSoap"; - mySoapPort->Binding = myXmlQualifiedName; - SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding; - mySoapAddressBinding->Location = "http://localhost/" - "ServiceDescriptionBaseCollection/AddSubtractService.CS.asmx"; - mySoapPort->Extensions->Add( mySoapAddressBinding ); - - // Build a new Port for HTTP-GET. - XmlQualifiedName^ myXmlQualifiedName2 = gcnew XmlQualifiedName( "s0:MathServiceHttpGet" ); - Port^ myHttpGetPort = gcnew Port; - myHttpGetPort->Name = "MathServiceHttpGet"; - myHttpGetPort->Binding = myXmlQualifiedName2; - HttpAddressBinding^ myHttpAddressBinding = gcnew HttpAddressBinding; - myHttpAddressBinding->Location = "http://localhost/" - "ServiceDescriptionBaseCollection/AddSubtractService.CS.asmx"; - myHttpGetPort->Extensions->Add( myHttpAddressBinding ); - - // Add the ports to the Service. - myService->Ports->Add( myHttpGetPort ); - myService->Ports->Add( mySoapPort ); - - // Add the Service to the ServiceCollection. - myServiceDescription->Services->Add( myService ); - } - else - if ( myType->Equals( System::Web::Services::Description::BindingCollection::typeid ) ) - { - // Remove the Binding in the BindingCollection at index 0. - (dynamic_cast(myServiceCollection))->Remove( myServiceDescription->Bindings[ 0 ] ); - - // Build a new Binding. - Binding^ myBinding = gcnew Binding; - myBinding->Name = "MathServiceSoap"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:MathServiceSoap" ); - myBinding->Type = myXmlQualifiedName; - SoapBinding^ mySoapBinding = gcnew SoapBinding; - mySoapBinding->Transport = "http://schemas.xmlsoap.org/soap/http"; - mySoapBinding->Style = SoapBindingStyle::Document; - - // Create the operations for the binding. - OperationBinding^ addOperationBinding = CreateOperationBinding( "Add", myServiceDescription->TargetNamespace ); - OperationBinding^ subtractOperationBinding = CreateOperationBinding( "Subtract", myServiceDescription->TargetNamespace ); - - // Add the operations to the Binding. - myBinding->Operations->Add( subtractOperationBinding ); - myBinding->Operations->Add( addOperationBinding ); - myBinding->Extensions->Add( mySoapBinding ); - - // Add the Binding to the Bindings collection. - myServiceDescription->Bindings->Add( myBinding ); - } - else - if ( myType->Equals( System::Web::Services::Description::PortTypeCollection::typeid ) ) - { - // Remove the PortType at index 0. - (dynamic_cast(myServiceCollection))->Remove( myServiceDescription->PortTypes[ 0 ] ); - - // Build a new PortType. - PortType^ myPortType = gcnew PortType; - myPortType->Name = "MathServiceSoap"; - - // Build an Add Operation for the PortType. - Operation^ myAddOperation = gcnew Operation; - myAddOperation->Name = "Add"; - - // Build the Input and Output messages for the Operations. - OperationInput^ myOperationInputMessage1 = gcnew OperationInput; - XmlQualifiedName^ myXmlQualifiedName1 = gcnew XmlQualifiedName( "s0:AddSoapIn" ); - myOperationInputMessage1->Message = myXmlQualifiedName1; - OperationOutput^ myOperationOutputMessage1 = gcnew OperationOutput; - XmlQualifiedName^ myXmlQualifiedName2 = gcnew XmlQualifiedName( "s0:AddSoapOut" ); - myOperationOutputMessage1->Message = myXmlQualifiedName2; - - // Add the messages to the operations. - myAddOperation->Messages->Add( myOperationInputMessage1 ); - myAddOperation->Messages->Add( myOperationOutputMessage1 ); - - // Build an Add Operation for the PortType. - Operation^ mySubtractOperation = gcnew Operation; - mySubtractOperation->Name = "Subtract"; - - // Build the Input and Output messages for the operations. - OperationInput^ myOperationInputMessage2 = gcnew OperationInput; - XmlQualifiedName^ myXmlQualifiedName3 = gcnew XmlQualifiedName( "s0:SubtractSoapIn" ); - myOperationInputMessage2->Message = myXmlQualifiedName3; - OperationOutput^ myOperationOutputMessage2 = gcnew OperationOutput; - XmlQualifiedName^ myXmlQualifiedName4 = gcnew XmlQualifiedName( "s0:SubtractSoapOut" ); - myOperationOutputMessage2->Message = myXmlQualifiedName4; - - // Add the messages to the operations. - mySubtractOperation->Messages->Add( myOperationInputMessage2 ); - mySubtractOperation->Messages->Add( myOperationOutputMessage2 ); - - // Add the operations to the PortType. - myPortType->Operations->Add( myAddOperation ); - myPortType->Operations->Add( mySubtractOperation ); - - // Add the PortType to the collection. - myServiceDescription->PortTypes->Add( myPortType ); - } - } - // - - static OperationBinding^ CreateOperationBinding( String^ operation, String^ targetNamespace ) - { - // Create OperationBinding instance for operation. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = operation; - - // Create InputBinding for operation. - InputBinding^ myInputBinding = gcnew InputBinding; - SoapBodyBinding^ mySoapBodyBinding = gcnew SoapBodyBinding; - mySoapBodyBinding->Use = SoapBindingUse::Literal; - myInputBinding->Extensions->Add( mySoapBodyBinding ); - - // Create OutputBinding for operation. - OutputBinding^ myOutputBinding = gcnew OutputBinding; - myOutputBinding->Extensions->Add( mySoapBodyBinding ); - - // Add 'InputBinding' and 'OutputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInputBinding; - myOperationBinding->Output = myOutputBinding; - - // Create extensibility element for 'SoapOperationBinding'. - SoapOperationBinding^ mySoapOperationBinding = gcnew SoapOperationBinding; - mySoapOperationBinding->Style = SoapBindingStyle::Document; - mySoapOperationBinding->SoapAction = String::Concat( targetNamespace, operation ); - - // Add extensibility element 'SoapOperationBinding' to 'OperationBinding'. - myOperationBinding->Extensions->Add( mySoapOperationBinding ); - return myOperationBinding; - } -}; - -int main() -{ - ServiceDescription_Sample::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection/CPP/servicedescriptioncollection.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection/CPP/servicedescriptioncollection.cpp deleted file mode 100644 index 3a27bf22ab5d3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection/CPP/servicedescriptioncollection.cpp +++ /dev/null @@ -1,57 +0,0 @@ - - -// System::Web::Services::Description.ServiceDescriptionCollection -/*The following program demonstrates the 'ServiceDescriptionCollection' class. -It creates two 'ServiceDescription' objects and add them to -'ServiceDescriptionCollection' Object*. It displays the name of 'ServiceDescription' -objects using 'Item' property. 'GetBinding' method is used to display binding instance of the -'ServiceDescription' Object*. - -Note: This program requires 'DataTypes_CS.wsdl' and 'MathService_cpp.wsdl' files to -be placed in same directory as that of .exe for running. -*/ -// -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Web::Services::Description; - -int main() -{ - try - { - // Get ServiceDescription objects. - ServiceDescription^ myServiceDescription1 = ServiceDescription::Read( "DataTypes_cpp.wsdl" ); - ServiceDescription^ myServiceDescription2 = ServiceDescription::Read( "MathService_cpp.wsdl" ); - - // Set the names of the ServiceDescriptions. - myServiceDescription1->Name = "DataTypes"; - myServiceDescription2->Name = "MathService"; - - // Create a ServiceDescriptionCollection. - ServiceDescriptionCollection^ myServiceDescriptionCollection = gcnew ServiceDescriptionCollection; - - // Add the ServiceDescriptions to the collection. - myServiceDescriptionCollection->Add( myServiceDescription1 ); - myServiceDescriptionCollection->Add( myServiceDescription2 ); - - // Display the elements of the collection using the Item property. - Console::WriteLine( "Elements in the collection: " ); - for ( int i = 0; i < myServiceDescriptionCollection->Count; i++ ) - Console::WriteLine( myServiceDescriptionCollection[ i ]->Name ); - - // Construct an XML qualified name. - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "MathServiceSoap","http://tempuri2.org/" ); - - // Get the Binding from the collection. - Binding^ myBinding = myServiceDescriptionCollection->GetBinding( myXmlQualifiedName ); - Console::WriteLine( "Binding found in collection with name: {0}", myBinding->ServiceDescription->Name ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_Constructor_Add_Item/CPP/sdcollection_constructor_add_item.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_Constructor_Add_Item/CPP/sdcollection_constructor_add_item.cpp deleted file mode 100644 index 1f4b047229c35..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_Constructor_Add_Item/CPP/sdcollection_constructor_add_item.cpp +++ /dev/null @@ -1,50 +0,0 @@ - - -// System::Web::Services::Description.ServiceDescriptionCollection::ServiceDescriptionCollection() -// System::Web::Services::Description.ServiceDescriptionCollection->Add() -// System::Web::Services::Description.ServiceDescriptionCollection::Item(Int32) -/* The following program demonstrates 'Constructor', 'Add' method and -'Item' property of 'ServiceDescriptionCollection' class. It creates an -instance of 'ServiceDescriptionCollection' and adds -'ServiceDescription' objects to the collection. The Item property is used to -display the TargetNamespace of elements in the collection. - -Note: This program requires 'DataTypes_CS::wsdl' and 'MathService_CS::wsdl' -files to be placed in same directory as that of .exe for running. -*/ -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; - -int main() -{ - try - { - ServiceDescription^ myServiceDescription1 = ServiceDescription::Read( "DataTypes_cpp.wsdl" ); - ServiceDescription^ myServiceDescription2 = ServiceDescription::Read( "MathService_cpp.wsdl" ); - - // - // - // Create a ServiceDescriptionCollection. - ServiceDescriptionCollection^ myCollection = gcnew ServiceDescriptionCollection; - - // Add ServiceDescriptions to the collection. - myCollection->Add( myServiceDescription1 ); - myCollection->Add( myServiceDescription2 ); - // - // - - // - // Display element properties in the collection using - // the Item property. - for ( int i = 0; i < myCollection->Count; i++ ) - Console::WriteLine( myCollection[ i ]->TargetNamespace ); - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_Contains_IndexOf_Remove/CPP/sdcollection_contains_indexof_remove.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_Contains_IndexOf_Remove/CPP/sdcollection_contains_indexof_remove.cpp deleted file mode 100644 index 6a6f1f0c8b26c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_Contains_IndexOf_Remove/CPP/sdcollection_contains_indexof_remove.cpp +++ /dev/null @@ -1,60 +0,0 @@ -// System::Web::Services::Description.ServiceDescriptionCollection::Contains() -// System::Web::Services::Description.ServiceDescriptionCollection::IndexOf() -// System::Web::Services::Description.ServiceDescriptionCollection::Remove() - -/* The following program demonstrates 'Contains', 'IndexOf' and -'Remove' methods of 'ServiceDescriptionCollection' class. It creates an -instance of 'ServiceDescriptionCollection' and adds 'ServiceDescription' -objects to the collection. It checks for an Object* of 'ServiceDescription', -retrieves the index of the Object* and removes it from the collection. - -Note: This program requires 'DataTypes_cpp.wsdl' and 'MathService_cpp.wsdl' -files to be placed in the same directory as that of .exe for -running. -*/ - -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; - -int main() -{ - try - { - ServiceDescription^ myServiceDescription1 = - ServiceDescription::Read( "DataTypes_cpp.wsdl" ); - ServiceDescription^ myServiceDescription2 = - ServiceDescription::Read( "MathService_cpp.wsdl" ); - ServiceDescriptionCollection^ myCollection = - gcnew ServiceDescriptionCollection; - - // Add 'ServiceDescription' objects. - myCollection->Add( myServiceDescription1 ); - myCollection->Add( myServiceDescription2 ); - -// - // Check for 'ServiceDescription' object in the collection. - if ( myCollection->Contains( myServiceDescription2 ) ) - { -// -// - // Get the index of 'ServiceDescription' object. - int myIndex = myCollection->IndexOf( myServiceDescription2 ); - - // Remove 'ServiceDescription' object from the collection. - myCollection->Remove( myServiceDescription2 ); - Console::WriteLine( "Element at index {0} is removed ", myIndex ); -// - // - } - else - Console::WriteLine( "Element not found." ); -// - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_GetBinding/CPP/servicedescriptioncollection_getbinding.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_GetBinding/CPP/servicedescriptioncollection_getbinding.cpp deleted file mode 100644 index 79ca7ba38d2d3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_GetBinding/CPP/servicedescriptioncollection_getbinding.cpp +++ /dev/null @@ -1,52 +0,0 @@ - - -// System::Web::Services::Description.ServiceDescriptionCollection::GetBinding() -/* The following program demonstrates the 'GetBinding' method -of 'ServiceDescriptionCollection' class. It searches for a -'Binding' in the collection and returns the Binding instance. -On success, a message is displayed on the console. - -Note: This program requires 'DataTypes_cpp.wsdl' and 'MathService_cpp.wsdl' -files to be placed in same directory as that of .exe for running. -*/ - -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Web::Services::Description; - -int main() -{ - try - { - ServiceDescription^ myServiceDescription1 = - ServiceDescription::Read( "DataTypes_cpp.wsdl" ); - ServiceDescription^ myServiceDescription2 = - ServiceDescription::Read( "MathService_cpp.wsdl" ); - - // Create the Object* of 'ServiceDescriptionCollection' class. - ServiceDescriptionCollection^ myCollection = - gcnew ServiceDescriptionCollection; - - // Add ServiceDescription objects. - myCollection->Add( myServiceDescription1 ); - myCollection->Add( myServiceDescription2 ); - -// - // Construct an XML qualified name. - XmlQualifiedName^ myXmlQualifiedName = - gcnew XmlQualifiedName( "MathServiceSoap","http://tempuri2.org/" ); - - // Get the Binding from the collection. - myCollection->GetBinding( myXmlQualifiedName ); -// - Console::WriteLine( "Specified Binding is a member of ServiceDescription " - + "instances within the collection" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_GetMessage/CPP/servicedescriptioncollection_getmessage.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_GetMessage/CPP/servicedescriptioncollection_getmessage.cpp deleted file mode 100644 index e84c9b0113472..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_GetMessage/CPP/servicedescriptioncollection_getmessage.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// System::Web::Services::Description.ServiceDescriptionCollection::GetMessage() - -/* The following program demonstrates the 'GetMessage' method -of 'ServiceDescriptionCollection' class. It searches for a -'Message' in the collection and returns the Message instance. On success, -a message is displayed on the console. - -Note: This program requires 'DataTypes_cpp.wsdl' and 'MathService_cpp.wsdl' -files to be placed in same directory as that of .exe for running. -*/ - -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Web::Services::Description; - -int main() -{ - try - { - ServiceDescription^ myServiceDescription1 = - ServiceDescription::Read( "DataTypes_cpp.wsdl" ); - ServiceDescription^ myServiceDescription2 = - ServiceDescription::Read( "MathService_cpp.wsdl" ); - - // Create the Object* of 'ServiceDescriptionCollection' class. - ServiceDescriptionCollection^ myCollection = - gcnew ServiceDescriptionCollection; - - // Add 'ServiceDescription' objects. - myCollection->Add( myServiceDescription1 ); - myCollection->Add( myServiceDescription2 ); - -// - // Construct an XML qualified name. - XmlQualifiedName^ myXmlQualifiedName = - gcnew XmlQualifiedName( "AddSoapIn","http://tempuri2.org/" ); - - // Get the Message from the collection. - myCollection->GetMessage( myXmlQualifiedName ); -// - - Console::WriteLine( "Specified Message is a member of ServiceDescription " - + "instances within the collection." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_GetPortType/CPP/servicedescriptioncollection_getporttype.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_GetPortType/CPP/servicedescriptioncollection_getporttype.cpp deleted file mode 100644 index 8374664ea9d9d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_GetPortType/CPP/servicedescriptioncollection_getporttype.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// System::Web::Services::Description.ServiceDescriptionCollection::GetPortType() - -/* The following program demonstrates the 'GetPortType' method -of 'ServiceDescriptionCollection' class. It searches for a -'PortType' with XmlQualifiedName in the collection and returns a -PortType instance. On success, a message is displayed on the -console. - -Note: This program requires 'DataTypes_cpp..wsdl' and 'MathService_cpp..wsdl' -files to be placed in same directory as that of .exe for running. -*/ - -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Web::Services::Description; - -int main() -{ - try - { - ServiceDescription^ myServiceDescription1 = - ServiceDescription::Read( "DataTypes_cpp..wsdl" ); - ServiceDescription^ myServiceDescription2 = - ServiceDescription::Read( "MathService_cpp..wsdl" ); - - // Create the Object* of 'ServiceDescriptionCollection' class. - ServiceDescriptionCollection^ myCollection = - gcnew ServiceDescriptionCollection; - - // Add 'ServiceDescription' objects. - myCollection->Add( myServiceDescription1 ); - myCollection->Add( myServiceDescription2 ); - -// - // Construct an XML qualified name. - XmlQualifiedName^ myXmlQualifiedName = - gcnew XmlQualifiedName( "MathServiceSoap","http://tempuri2.org/" ); - - // Get the PortType from the collection. - myCollection->GetPortType( myXmlQualifiedName ); -// - - Console::WriteLine( "Specified PortType is a member of ServiceDescription " - + "instances within the collection." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_GetService/CPP/servicedescriptioncollection_getservice.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_GetService/CPP/servicedescriptioncollection_getservice.cpp deleted file mode 100644 index 393a442e65a27..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_GetService/CPP/servicedescriptioncollection_getservice.cpp +++ /dev/null @@ -1,53 +0,0 @@ -// System::Web::Services::Description.ServiceDescriptionCollection::GetService() - -/* The following program demonstrates the 'GetService' method -of 'ServiceDescriptionCollection' class. It searches for a -'Service' with XmlQualifiedName in the collection and returns -the Service instance. On success, a message is displayed on the -console. - -Note: This program requires 'DataTypes_cpp.wsdl' and 'MathService_cpp.wsdl' -files to be placed in same directory as that of .exe for running. -*/ - -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Web::Services::Description; - -int main() -{ - try - { - ServiceDescription^ myServiceDescription1 = - ServiceDescription::Read( "DataTypes_cpp.wsdl" ); - ServiceDescription^ myServiceDescription2 = - ServiceDescription::Read( "MathService_cpp.wsdl" ); - - // Create the Object* of 'ServiceDescriptionCollection' class. - ServiceDescriptionCollection^ myCollection = - gcnew ServiceDescriptionCollection; - - // Add 'ServiceDescription' objects. - myCollection->Add( myServiceDescription1 ); - myCollection->Add( myServiceDescription2 ); - -// - // Construct an XML qualified name. - XmlQualifiedName^ myXmlQualifiedName = - gcnew XmlQualifiedName( "MathService","http://tempuri2.org/" ); - - // Get the Service from the collection. - myCollection->GetService( myXmlQualifiedName ); -// - - Console::WriteLine( "Specified Service is a member of ServiceDescription " - + "instances within the collection" ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_Insert_Item_CopyTo/CPP/sdcollection_insert_item_copyto.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_Insert_Item_CopyTo/CPP/sdcollection_insert_item_copyto.cpp deleted file mode 100644 index 65f79d261a7c0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionCollection_Insert_Item_CopyTo/CPP/sdcollection_insert_item_copyto.cpp +++ /dev/null @@ -1,62 +0,0 @@ - - -// System::Web::Services::Description.ServiceDescriptionCollection::Insert() -// System::Web::Services::Description.ServiceDescriptionCollection::Item(String) -// System::Web::Services::Description.ServiceDescriptionCollection::CopyTo() -/* The following program demonstrates 'Item' property, 'Insert' and 'CopyTo' -methods of the 'ServiceDescriptionCollection' class. It creates an instance of -'ServiceDescriptionCollection' and adds 'ServiceDescription' objects to the -collection. The elements of the collection are copied to a 'ServiceDescription' -array. - -Note: This program requires 'DataTypes_cpp.wsdl' and 'MathService_cpp.wsdl' -files to be placed in the same directory as that of .exe for running. -*/ -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; - -int main() -{ - try - { - ServiceDescription^ myServiceDescription1 = ServiceDescription::Read( "DataTypes_cpp.wsdl" ); - myServiceDescription1->Name = "DataTypes"; - ServiceDescription^ myServiceDescription2 = ServiceDescription::Read( "MathService_cpp.wsdl" ); - myServiceDescription2->Name = "MathService"; - - // Create the object of 'ServiceDescriptionCollection' class. - ServiceDescriptionCollection^ myCollection = gcnew ServiceDescriptionCollection; - - // Add 'ServiceDescription' objects. - myCollection->Add( myServiceDescription1 ); - - // - // Insert a ServiceDescription into the collection. - myCollection->Insert( 1, myServiceDescription2 ); - // - - // - // Get a ServiceDescription in the collection using - // the Item property. - ServiceDescription^ myServiceDescription = myCollection[ "http://tempuri1.org/" ]; - // - - Console::WriteLine( "Name of the object retrieved using 'Item' property: {0}", myServiceDescription->Name ); - - // - array^myArray = gcnew array(myCollection->Count); - - // Copy the collection to a ServiceDescription array. - myCollection->CopyTo( myArray, 0 ); - for ( int i = 0; i < myArray->Length; i++ ) - Console::WriteLine( "Name of element in array: {0}", myArray[ i ]->Name ); - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionFormatExtension_13/CPP/servicedescriptionformatextension_13.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionFormatExtension_13/CPP/servicedescriptionformatextension_13.cpp deleted file mode 100644 index bd4ca4802098c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionFormatExtension_13/CPP/servicedescriptionformatextension_13.cpp +++ /dev/null @@ -1,142 +0,0 @@ - - -// System::Web::Services::Description.ServiceDescriptionFormatExtensionCollection -// System::Web::Services::Description.ServiceDescriptionFormatExtensionCollection::ctor -// System::Web::Services::Description.ServiceDescriptionFormatExtensionCollection->Add() -// System::Web::Services::Description.ServiceDescriptionFormatExtensionCollection::Item -// System::Web::Services::Description.ServiceDescriptionFormatExtensionCollection::Find(System::Type type) -// System::Web::Services::Description.ServiceDescriptionFormatExtensionCollection::FindAll(System::Type type) -// System::Web::Services::Description.ServiceDescriptionFormatExtensionCollection::IsHandled() -// System::Web::Services::Description.ServiceDescriptionFormatExtensionCollection::IsRequired() -// System::Web::Services::Description.ServiceDescriptionFormatExtensionCollection::CopyTo() -// System::Web::Services::Description.ServiceDescriptionFormatExtensionCollection::Contains() -// System::Web::Services::Description.ServiceDescriptionFormatExtensionCollection::IndexOf() -// System::Web::Services::Description.ServiceDescriptionFormatExtensionCollection::Remove() -// System::Web::Services::Description.ServiceDescriptionFormatExtensionCollection::Insert() -/* The following program demonstrates the class, properties and methods of -'ServiceDescriptionFormatExtensionCollection' -class. It creates a ServiceDescription object, uses it to create -'ServiceDescriptionFormatExtensionCollection' object. Collection -object is used for demonstration of class properties and methods. - -Note: This program requires 'Sample_cpp.wsdl' file to be placed in -the same directory as that of .exe for running. -*/ -// -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; - -ref class MyFormatExtension: public ServiceDescriptionFormatExtension -{ -public: - MyFormatExtension() - { - // Set the properties. - this->Handled = true; - this->Required = true; - } -}; - -int main() -{ - try - { - // - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "Sample_cpp.wsdl" ); - ServiceDescriptionFormatExtensionCollection^ myCollection = gcnew ServiceDescriptionFormatExtensionCollection( myServiceDescription ); - // - - // - SoapBinding^ mySoapBinding1 = gcnew SoapBinding; - SoapBinding^ mySoapBinding2 = gcnew SoapBinding; - SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding; - MyFormatExtension^ myFormatExtensionObject = gcnew MyFormatExtension; - - // Add elements to collection. - myCollection->Add( mySoapBinding1 ); - myCollection->Add( mySoapAddressBinding ); - myCollection->Add( mySoapBinding2 ); - myCollection->Add( myFormatExtensionObject ); - // - - // - Console::WriteLine( "Collection contains following types of elements: " ); - - // Display the 'Type' of the elements in collection. - for ( int i = 0; i < myCollection->Count; i++ ) - Console::WriteLine( myCollection[ i ]->GetType() ); - // - - // - // Check element of type 'SoapAddressBinding' in collection. - Object^ myObj = myCollection->Find( mySoapAddressBinding->GetType() ); - if ( myObj == nullptr ) - Console::WriteLine( "Element of type ' {0}' not found in collection.", mySoapAddressBinding->GetType() ); - else - Console::WriteLine( "Element of type ' {0}' found in collection.", mySoapAddressBinding->GetType() ); - // - - // - // Check all elements of type 'SoapBinding' in collection. - array^myObjectArray1 = gcnew array(myCollection->Count); - myObjectArray1 = myCollection->FindAll( mySoapBinding1->GetType() ); - int myNumberOfElements = 0; - IEnumerator^ myIEnumerator = myObjectArray1->GetEnumerator(); - - // Calculate number of elements of type 'SoapBinding'. - while ( myIEnumerator->MoveNext() ) - if ( mySoapBinding1->GetType() == myIEnumerator->Current->GetType() ) - myNumberOfElements++; - Console::WriteLine( "Collection contains {0} objects of type ' {1}'.", myNumberOfElements, mySoapBinding1->GetType() ); - // - - // - // Check 'IsHandled' status for 'myFormatExtensionObject' object in collection. - Console::WriteLine( "'IsHandled' status for {0} object is {1}.", myFormatExtensionObject, myCollection->IsHandled( myFormatExtensionObject ) ); - // - - // - // Check 'IsRequired' status for 'myFormatExtensionObject' object in collection. - Console::WriteLine( "'IsRequired' status for {0} object is {1}.", myFormatExtensionObject, myCollection->IsRequired( myFormatExtensionObject ) ); - // - - // - // Copy elements of collection to an Object array. - array^myObjectArray2 = gcnew array(myCollection->Count); - myCollection->CopyTo( myObjectArray2, 0 ); - Console::WriteLine( "Collection elements are copied to an object array." ); - // - - // - // Check for 'myFormatExtension' object in collection. - if ( myCollection->Contains( myFormatExtensionObject ) ) - { - // - // Get index of a 'myFormatExtension' object in collection. - Console::WriteLine( "Index of 'myFormatExtensionObject' is {0} in collection.", myCollection->IndexOf( myFormatExtensionObject ) ); - // - - // - // Remove 'myFormatExtensionObject' element from collection. - myCollection->Remove( myFormatExtensionObject ); - Console::WriteLine( "'myFormatExtensionObject' is removed from collection." ); - // - } - // - - // - // Insert 'MyFormatExtension' object. - myCollection->Insert( 0, myFormatExtensionObject ); - Console::WriteLine( "'myFormatExtensionObject' is inserted to collection." ); - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionImportStyle_Client/CPP/servicedescriptionimportstyle_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionImportStyle_Client/CPP/servicedescriptionimportstyle_client.cpp deleted file mode 100644 index bed420f5e0155..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionImportStyle_Client/CPP/servicedescriptionimportstyle_client.cpp +++ /dev/null @@ -1,39 +0,0 @@ - - -// System::Web::Services::Description.ServiceDescriptionImportStyle -// System::Web::Services::Description.ServiceDescriptionImportStyle::Client -/* The following program demonstrates the 'ServiceDescriptionImportStyle' -enumeration and 'Client' member of 'ServiceDescriptionImportStyle' in -'System::Web::Services::Description' namespace. It creates a -ServiceDescriptionImporter Object* from a .wsdl file and demonstrates -the usage of Client. */ -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -int main() -{ - try - { - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "Sample_cpp.wsdl" ); - ServiceDescriptionImporter^ myImporter = gcnew ServiceDescriptionImporter; - myImporter->ProtocolName = "Soap"; - myImporter->AddServiceDescription( myServiceDescription, "", "" ); - - // - ServiceDescriptionImportStyle myStyle = myImporter->Style; - Console::WriteLine( "Import style: {0}", myStyle ); - - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Following exception was thrown: {0}", e ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionImportWarnings_Enum/CPP/servicedescriptionimportwarnings_enum.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionImportWarnings_Enum/CPP/servicedescriptionimportwarnings_enum.cpp deleted file mode 100644 index 475d65bae5aff..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescriptionImportWarnings_Enum/CPP/servicedescriptionimportwarnings_enum.cpp +++ /dev/null @@ -1,82 +0,0 @@ -// System::Web::Services::Description.ServiceDescriptionImportWarnings::NoCodeGenerated -// System::Web::Services::Description.ServiceDescriptionImportWarnings::NoMethodsGenerated -// System::Web::Services::Description.ServiceDescriptionImportWarnings::UnsupportedOperationsIgnored -// System::Web::Services::Description.ServiceDescriptionImportWarnings::OptionalExtensionsIgnored -// System::Web::Services::Description.ServiceDescriptionImportWarnings::RequiredExtensionsIgnored -// System::Web::Services::Description.ServiceDescriptionImportWarnings::UnsupportedBindingsIgnored - -/* -The following program demonstrates the enum values of 'ServiceDescriptionImportWarnings'. -'Import' method of 'ServiceDescriptionImporter' will give the enumaration. The user selected -option will help in taking the related wsdl file and returns the corresponding warning which -is displayed on the console. -*/ - -using namespace System; - -#using -#using -#using - -using namespace System::Web::Services::Description; -using namespace System::CodeDom; - -void DisplayWarning( String^ myWSDLFileName ) -{ -// - String^ myDisplay; - // Read wsdl file. - ServiceDescription^ myServiceDescription = ServiceDescription::Read - ( myWSDLFileName ); - - ServiceDescriptionImporter^ myServiceDescriptionImporter = - gcnew ServiceDescriptionImporter; - - // Add 'myServiceDescription' to 'myServiceDescriptionImporter'. - myServiceDescriptionImporter->AddServiceDescription - ( myServiceDescription, "", "" ); - - myServiceDescriptionImporter->ProtocolName = "HttpGet"; - CodeNamespace^ myCodeNamespace = gcnew CodeNamespace; - CodeCompileUnit^ myCodeCompileUnit = gcnew CodeCompileUnit; - - // Invoke 'Import' method. - ServiceDescriptionImportWarnings myWarning = - myServiceDescriptionImporter->Import(myCodeNamespace, - myCodeCompileUnit); - - switch ( myWarning ) - { - case ServiceDescriptionImportWarnings::NoCodeGenerated: - myDisplay = "NoCodeGenerated"; - break; - case ServiceDescriptionImportWarnings::NoMethodsGenerated: - myDisplay = "NoMethodsGenerated"; - break; - case ServiceDescriptionImportWarnings::UnsupportedOperationsIgnored: - myDisplay = "UnsupportedOperationsIgnored"; - break; - case ServiceDescriptionImportWarnings::OptionalExtensionsIgnored: - myDisplay = "OptionalExtensionsIgnored"; - break; - case ServiceDescriptionImportWarnings::RequiredExtensionsIgnored: - myDisplay = "RequiredExtensionsIgnored"; - break; - case ServiceDescriptionImportWarnings::UnsupportedBindingsIgnored: - myDisplay = "UnsupportedBindingsIgnored"; - break; - default: - myDisplay = "General Warning"; - break; - } - Console::WriteLine( "Warning : " + myDisplay ); -// -} - -int main() -{ - DisplayWarning( "ServiceDescriptionImportWarnings_NoCodeGenerated.wsdl" ); - DisplayWarning( "ServiceDescriptionImportWarnings_NoMethodsGenerated::wsdl" ); - DisplayWarning( "ServiceDescriptionImportWarnings_UnsupportedOperationsIgnored::wsdl" ); - DisplayWarning( "ServiceDescriptionImportWarnings_OptionalExtensionsIgnored::wsdl" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Bindings/CPP/servicedescription_bindings.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Bindings/CPP/servicedescription_bindings.cpp deleted file mode 100644 index 7b2a6a89d1b9c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Bindings/CPP/servicedescription_bindings.cpp +++ /dev/null @@ -1,85 +0,0 @@ -// System.Web.Services.Description.ServiceDescription.Bindings - -/* -The following example demonstrates the property 'Bindings' of -'ServiceDescription' class. The input to the program is a WSDL file -'MyWsdl_CS.wsdl'. This program removes one 'Binding' from the existing WSDL. -A new Binding is defined and added to the ServiceDescription object. -The program generates a new Web Service Description document. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Description; -using namespace System::Xml; - -// Used to create OperationBinding instances within 'Binding'. -OperationBinding^ CreateOperationBinding( String^ operation, String^ targetNamespace ) -{ - // Create OperationBinding instance for operation. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = operation; - - // Create InputBinding for operation. - InputBinding^ myInputBinding = gcnew InputBinding; - SoapBodyBinding^ mySoapBodyBinding = gcnew SoapBodyBinding; - mySoapBodyBinding->Use = SoapBindingUse::Literal; - myInputBinding->Extensions->Add( mySoapBodyBinding ); - - // Create OutputBinding for operation. - OutputBinding^ myOutputBinding = gcnew OutputBinding; - myOutputBinding->Extensions->Add( mySoapBodyBinding ); - - // Add 'InputBinding' and 'OutputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInputBinding; - myOperationBinding->Output = myOutputBinding; - - // Create extensibility element for 'SoapOperationBinding'. - SoapOperationBinding^ mySoapOperationBinding = gcnew SoapOperationBinding; - mySoapOperationBinding->Style = SoapBindingStyle::Document; - mySoapOperationBinding->SoapAction = targetNamespace + operation; - - // Add extensibility element 'SoapOperationBinding' to 'OperationBinding'. - myOperationBinding->Extensions->Add( mySoapOperationBinding ); - return myOperationBinding; -} - -int main() -{ - try - { - // - // Obtain the ServiceDescription from existing WSDL. - ServiceDescription^ myDescription = ServiceDescription::Read( "MyWsdl_CS.wsdl" ); - - // Remove the Binding from the BindingCollection of - // the ServiceDescription. - BindingCollection^ myBindingCollection = myDescription->Bindings; - myBindingCollection->Remove( myBindingCollection[ 0 ] ); - - // Form a new Binding. - Binding^ myBinding = gcnew Binding; - myBinding->Name = "Service1Soap"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:Service1Soap" ); - myBinding->Type = myXmlQualifiedName; - SoapBinding^ mySoapBinding = gcnew SoapBinding; - mySoapBinding->Transport = "http://schemas.xmlsoap.org/soap/http"; - mySoapBinding->Style = SoapBindingStyle::Document; - OperationBinding^ addOperationBinding = CreateOperationBinding( "Add", myDescription->TargetNamespace ); - myBinding->Operations->Add( addOperationBinding ); - myBinding->Extensions->Add( mySoapBinding ); - - // Add the Binding to the ServiceDescription. - myDescription->Bindings->Add( myBinding ); - myDescription->Write( "MyOutWsdl.wsdl" ); - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Constructor_4/CPP/servicedescription_constructor_4.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Constructor_4/CPP/servicedescription_constructor_4.cpp deleted file mode 100644 index 295c9eb371127..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Constructor_4/CPP/servicedescription_constructor_4.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// System.Web.Services.Description.ServiceDescription.ServiceDescription() -// System.Web.Services.Description.ServiceDescription.Read(string) -// System.Web.Services.Description.ServiceDescription.Messages -// System.Web.Services.Description.ServiceDescription.Name - -/* -The following example demonstrates the constructor 'ServiceDescription()', -properties 'Messages', 'Name' and 'Read' method of 'ServiceDescription' -class.The input to the program is a WSDL file 'MyWsdl.wsdl'. -This program removes one message from the existing WSDL. -A new Message is defined and added to the ServiceDescription. -A new wsdl with modified ServiceDescription is written in 'MyOutWsdl.wsdl'. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Description; -using namespace System::Xml; - -int main() -{ - // - // - // - // - ServiceDescription^ myDescription = gcnew ServiceDescription; - myDescription = ServiceDescription::Read( "MyWsdl_CS.wsdl" ); - myDescription->Name = "MyServiceDescription"; - Console::WriteLine( "Name: {0}", myDescription->Name ); - MessageCollection^ myMessageCollection = myDescription->Messages; - - // Remove the message at index 0 from the message collection. - myMessageCollection->Remove( myDescription->Messages[ 0 ] ); - - // Build a new message. - Message^ myMessage = gcnew Message; - myMessage->Name = "AddSoapIn"; - - // Build a new MessagePart. - MessagePart^ myMessagePart = gcnew MessagePart; - myMessagePart->Name = "parameters"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:Add" ); - myMessagePart->Element = myXmlQualifiedName; - - // Add MessageParts to the message. - myMessage->Parts->Add( myMessagePart ); - - // Add the message to the ServiceDescription. - myDescription->Messages->Add( myMessage ); - myDescription->Write( "MyOutWsdl.wsdl" ); - // - // - // - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Extensions_RetrieveUrl/CPP/servicedescription_extensions_2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Extensions_RetrieveUrl/CPP/servicedescription_extensions_2.cpp deleted file mode 100644 index 5aa1c26e6f6fb..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Extensions_RetrieveUrl/CPP/servicedescription_extensions_2.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// System.Web.Services.Description.ServiceDescription.Extensions -// System.Web.Services.Description.ServiceDescription.RetrievalUrl -/* The following program demonstrates properties 'Extensions', 'RetrievalUrl' of -'ServiceDescription' class. The input to the program is a WSDL file -'ServiceDescription_Extensions_Input_cs.wsdl'. This program adds one object -to the extensions collection and displays the count and set the 'RetrievalURL' and displays. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Description; - -int main() -{ - // - // - ServiceDescription^ myServiceDescription = gcnew ServiceDescription; - myServiceDescription = ServiceDescription::Read( "ServiceDescription_Extensions_Input_cs.wsdl" ); - Console::WriteLine( myServiceDescription->Bindings[ 1 ]->Extensions[ 0 ] ); - SoapBinding^ mySoapBinding = gcnew SoapBinding; - mySoapBinding->Required = true; - SoapBinding^ mySoapBinding1 = gcnew SoapBinding; - mySoapBinding1->Required = false; - myServiceDescription->Extensions->Add( mySoapBinding ); - myServiceDescription->Extensions->Add( mySoapBinding1 ); - System::Collections::IEnumerator^ myEnum = myServiceDescription->Extensions->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - ServiceDescriptionFormatExtension^ myServiceDescriptionFormatExtension = (ServiceDescriptionFormatExtension^)(myEnum->Current); - Console::WriteLine( "Required: {0}", myServiceDescriptionFormatExtension->Required ); - } - - myServiceDescription->Write( "ServiceDescription_Extensions_Output_cs.wsdl" ); - myServiceDescription->RetrievalUrl = "http://www.contoso.com/"; - Console::WriteLine( "Retrieval URL is: {0}", myServiceDescription->RetrievalUrl ); - // - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Imports_Service/CPP/servicedescription_imports.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Imports_Service/CPP/servicedescription_imports.cpp deleted file mode 100644 index 7f3cffea1bed6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Imports_Service/CPP/servicedescription_imports.cpp +++ /dev/null @@ -1,42 +0,0 @@ -// System.Web.Services.Description.ServiceDescription.Imports - -/* The following program demonstrates the property 'Imports' of 'ServiceDescription' class. -The input to the program is a WSDL file 'ServiceDescription_Imports_Input_CS.wsdl' which -is not having the import element. A new 'Import' is defined and added to the new modified -'ServiceDescription_Imports_Output_CS.wsdl' file. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Description; -using namespace System::Xml; - -int main() -{ - // - ServiceDescription^ myServiceDescription = gcnew ServiceDescription; - myServiceDescription = ServiceDescription::Read( "ServiceDescription_Imports_Input_CS.wsdl" ); - ImportCollection^ myImportCollection = myServiceDescription->Imports; - - // Create an Import. - Import^ myImport = gcnew Import; - myImport->Namespace = myServiceDescription->TargetNamespace; - - // Set the location for the Import. - myImport->Location = "http://www.contoso.com/"; - myImportCollection->Add( myImport ); - myServiceDescription->Write( "ServiceDescription_Imports_Output_CS.wsdl" ); - myImportCollection->Clear(); - myServiceDescription = ServiceDescription::Read( "ServiceDescription_Imports_Output_CS.wsdl" ); - myImportCollection = myServiceDescription->Imports; - Console::WriteLine( "The Import elements added to the ImportCollection are: " ); - for ( int i = 0; i < myImportCollection->Count; i++ ) - { - Console::WriteLine( "{0}. {1}", (i + 1), myImportCollection[ i ]->Location ); - } - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Namespace/CPP/servicedescription_namespace.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Namespace/CPP/servicedescription_namespace.cpp deleted file mode 100644 index c43dfec57a950..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Namespace/CPP/servicedescription_namespace.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// System::Web::Services::Description.ServiceDescription::Namespace - -/* -The following example demonstrates 'Namespace' property of 'ServiceDescription' class.The input to the program is a -WSDL file 'MyWsdl::wsdl'.This program displays the Namespace of 'ServiceDescription' class. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Description; - -int main() -{ - try - { -// - ServiceDescription^ myDescription = - ServiceDescription::Read( "MyWsdl_CS.wsdl" ); - Console::WriteLine( "Namespace : " + ServiceDescription::Namespace ); -// - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: " + e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_PortTypes_2/CPP/servicedescription_porttypes_2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_PortTypes_2/CPP/servicedescription_porttypes_2.cpp deleted file mode 100644 index fb6a682faf5c8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_PortTypes_2/CPP/servicedescription_porttypes_2.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// System.Web.Services.Description.ServiceDescription.PortTypes -// System.Web.Services.Description.ServiceDescription.CanRead - -/* -The following example demonstrates the 'PortTypes' property -and 'CanRead' method of 'ServiceDescription' class. -The input to the program is a WSDL file 'MyWsdl_CS.wsdl'. -This program checks the validity of WSDL file.One of the existing -port types is removed.A new PortType is defined and added to the -port types collection of the service description. A modified WSDL -is the output of the program. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Description; -using namespace System::Xml; - -// -// -// Creates an Operation for a PortType. -Operation^ CreateOperation( String^ operationName, String^ inputMessage, String^ outputMessage, String^ targetNamespace ) -{ - Operation^ myOperation = gcnew Operation; - myOperation->Name = operationName; - OperationMessage^ input = dynamic_cast(gcnew OperationInput); - input->Message = gcnew XmlQualifiedName( inputMessage,targetNamespace ); - OperationMessage^ output = dynamic_cast(gcnew OperationOutput); - output->Message = gcnew XmlQualifiedName( outputMessage,targetNamespace ); - myOperation->Messages->Add( input ); - myOperation->Messages->Add( output ); - return myOperation; -} - -int main() -{ - String^ myWsdlFileName = "MyWsdl_CS.wsdl"; - XmlTextReader^ myReader = gcnew XmlTextReader( myWsdlFileName ); - if ( ServiceDescription::CanRead( myReader ) ) - { - ServiceDescription^ myDescription = ServiceDescription::Read( myWsdlFileName ); - - // Remove the PortType at index 0 of the collection. - PortTypeCollection^ myPortTypeCollection = myDescription->PortTypes; - myPortTypeCollection->Remove( myDescription->PortTypes[ 0 ] ); - - // Build a new PortType. - PortType^ myPortType = gcnew PortType; - myPortType->Name = "Service1Soap"; - Operation^ myOperation = CreateOperation( "Add", "s0:AddSoapIn", "s0:AddSoapOut", "" ); - myPortType->Operations->Add( myOperation ); - - // Add a new PortType to the PortType collection of - // the ServiceDescription. - myDescription->PortTypes->Add( myPortType ); - myDescription->Write( "MyOutWsdl.wsdl" ); - Console::WriteLine( "New WSDL file generated successfully." ); - } - else - { - Console::WriteLine( "This file is not a WSDL file." ); - } -} -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Read/CPP/servicedescription_read.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Read/CPP/servicedescription_read.cpp deleted file mode 100644 index 9f61643a1f432..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Read/CPP/servicedescription_read.cpp +++ /dev/null @@ -1,85 +0,0 @@ - - -// System.Web.Description.ServiceDescription.Read(XmlReader) -// System.Web.Description.ServiceCollection.Item(string) -// System.Web.Description.ServiceCollection.Insert(int,Service) -// System.Web.Description.ServiceDescription.Write(XmlWriter) -/* -The following program demonstrates the properties of ServiceDescription and -ServiceCollection class.An XmlTextReader with the required url is created. -An existing WSDL document is read. -An existing service named "MathService" is removed from the collection and -A new Service object is constructed and added at index 1 of the Collection of Services. -A new WSDL file is created as output. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Text; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - try - { - // - // - // Create a new XmlTextWriter with specified URL. - XmlTextReader^ myXmlReader = gcnew XmlTextReader( "All_CS.wsdl" ); - ServiceDescription^ myServiceDescription = ServiceDescription::Read( myXmlReader ); - myServiceDescription->TargetNamespace = "http://tempuri.org/"; - - // Remove the service named MathService. - ServiceCollection^ myServiceDescriptionCollection = myServiceDescription->Services; - myServiceDescriptionCollection->Remove( myServiceDescription->Services[ "MathService" ] ); - // - // - - // - Service^ myService = gcnew Service; - myService->Name = "MathService"; - XmlQualifiedName^ myXmlQualifiedName = gcnew XmlQualifiedName( "s0:MathServiceSoap" ); - - // Build a new Port for SOAP. - Port^ mySoapPort = gcnew Port; - mySoapPort->Name = "MathServiceSoap"; - mySoapPort->Binding = myXmlQualifiedName; - SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding; - mySoapAddressBinding->Location = "http://localhost/ServiceDescription_Read/AddService_CS.asmx"; - mySoapPort->Extensions->Add( mySoapAddressBinding ); - - // Build a new Port for HTTP-GET. - XmlQualifiedName^ myXmlQualifiedName2 = gcnew XmlQualifiedName( "s0:MathServiceHttpGet" ); - Port^ myHttpGetPort = gcnew Port; - myHttpGetPort->Name = "MathServiceHttpGet"; - myHttpGetPort->Binding = myXmlQualifiedName2; - HttpAddressBinding^ myHttpAddressBinding = gcnew HttpAddressBinding; - myHttpAddressBinding->Location = "http://localhost/ServiceDescription_Read/AddService_CS.asmx"; - myHttpGetPort->Extensions->Add( myHttpAddressBinding ); - - // Add the ports to the service. - myService->Ports->Add( myHttpGetPort ); - myService->Ports->Add( mySoapPort ); - - // Add the service to the ServiceCollection. - myServiceDescription->Services->Insert( 1, myService ); - // - - // - // Create a new XmlTextWriter object. - XmlTextWriter^ myWriter = gcnew XmlTextWriter( "output.wsdl",Encoding::UTF8 ); - myWriter->Formatting = Formatting::Indented; - - // Write the WSDL. - myServiceDescription->Write( myWriter ); - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Read1/CPP/servicedescription_read1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Read1/CPP/servicedescription_read1.cpp deleted file mode 100644 index ce0c8097760e3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Read1/CPP/servicedescription_read1.cpp +++ /dev/null @@ -1,44 +0,0 @@ - - -// System::Web::Services::Description.Read(TextReader) -/* -The following example demonstrates the 'Read(TextReader)' method of -'ServiceDescription' class.A ServiceDescription instance is -obtained from existing Wsdl::Name property of Bindings in the -ServiceDescription is displayed to console. -*/ -#using -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Description; -using namespace System::Xml; -using namespace System::IO; - -int main() -{ - try - { - // - ServiceDescription^ myDescription = gcnew ServiceDescription; - - // Create a StreamReader to read a WSDL file. - TextReader^ myTextReader = gcnew StreamReader( "MyWsdl.wsdl" ); - myDescription = ServiceDescription::Read( myTextReader ); - Console::WriteLine( "Bindings are: " ); - - // Display the Bindings present in the WSDL file. - System::Collections::IEnumerator^ myEnum = myDescription->Bindings->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Binding^ myBinding = safe_cast(myEnum->Current); - Console::WriteLine( myBinding->Name ); - } - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Read2/CPP/servicedescription_read2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Read2/CPP/servicedescription_read2.cpp deleted file mode 100644 index 11b98b37d9b09..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Read2/CPP/servicedescription_read2.cpp +++ /dev/null @@ -1,44 +0,0 @@ - - -// System::Web::Services::Description.Read(StreamReader) -/* -The following example demonstrates the 'Read(StreamReader)' method of -'ServiceDescription' class.A ServiceDescription instance is -obtained from existing Wsdl. Name property of Bindings in the -ServiceDescription is displayed to console. -*/ -#using - -// #using -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Description; -using namespace System::Xml; -using namespace System::IO; - -int main() -{ - try - { - // - // Create a StreamReader to read a WSDL file. - StreamReader^ myStreamReader = gcnew StreamReader( "MyWsdl.wsdl" ); - ServiceDescription^ myDescription = ServiceDescription::Read( myStreamReader ); - Console::WriteLine( "Bindings are: " ); - - // Display the Bindings present in the WSDL file. - System::Collections::IEnumerator^ myEnum = myDescription->Bindings->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - Binding^ myBinding = safe_cast(myEnum->Current); - Console::WriteLine( myBinding->Name ); - } - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Types/CPP/servicedescription_types.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Types/CPP/servicedescription_types.cpp deleted file mode 100644 index 306781ed27162..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/ServiceDescription_Types/CPP/servicedescription_types.cpp +++ /dev/null @@ -1,101 +0,0 @@ - - -// System.Web.Services.Description.ServiceDescription.Types -// System.Web.Services.Description.ServiceDescription.Write(Stream) -/* -The following program demonstrates the 'Write' method and 'Types' property -of ServiceDescription class.An existing WSDL document is read. -Types of the SericeDescription are removed.New Types are constructed. -Types are then added to ServiceDescription .A new WSDL file is created as output. -*/ -#using -#using -#using - -using namespace System; -using namespace System::Text; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Schema; - -// This function creates a XmlComplex Element. -XmlSchemaElement^ CreateComplexTypeXmlElement( String^ minoccurs, String^ maxoccurs, String^ name, XmlQualifiedName^ schemaTypeName ) -{ - XmlSchemaElement^ myXmlSchemaElement = gcnew XmlSchemaElement; - myXmlSchemaElement->MinOccursString = minoccurs; - myXmlSchemaElement->MaxOccursString = maxoccurs; - myXmlSchemaElement->Name = name; - myXmlSchemaElement->SchemaTypeName = schemaTypeName; - return myXmlSchemaElement; -} - -int main() -{ - try - { - // Read the existing WSDL. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "Input_CS.wsdl" ); - - // - myServiceDescription->Types->Schemas->Remove( myServiceDescription->Types->Schemas[ 0 ] ); - XmlSchema^ myXmlSchema = gcnew XmlSchema; - myXmlSchema->AttributeFormDefault = XmlSchemaForm::Qualified; - myXmlSchema->ElementFormDefault = XmlSchemaForm::Qualified; - myXmlSchema->TargetNamespace = myServiceDescription->TargetNamespace; - XmlSchemaElement^ myXmlElement1 = gcnew XmlSchemaElement; - myXmlElement1->Name = "Add"; - XmlSchemaComplexType^ myXmlSchemaComplexType = gcnew XmlSchemaComplexType; - XmlSchemaSequence^ myXmlSchemaSequence = gcnew XmlSchemaSequence; - myXmlSchemaSequence->Items->Add( CreateComplexTypeXmlElement( "1", "1", "a", gcnew XmlQualifiedName( "s:float" ) ) ); - myXmlSchemaSequence->Items->Add( CreateComplexTypeXmlElement( "1", "1", "b", gcnew XmlQualifiedName( "s:float" ) ) ); - myXmlSchemaComplexType->Particle = myXmlSchemaSequence; - myXmlElement1->SchemaType = myXmlSchemaComplexType; - myXmlSchema->Items->Add( myXmlElement1 ); - XmlSchemaElement^ myXmlElement2 = gcnew XmlSchemaElement; - myXmlElement2->Name = "AddResponse"; - myXmlSchemaComplexType = gcnew XmlSchemaComplexType; - myXmlSchemaSequence = gcnew XmlSchemaSequence; - myXmlSchemaSequence->Items->Add( CreateComplexTypeXmlElement( "1", "1", "AddResult", gcnew XmlQualifiedName( "s:float" ) ) ); - myXmlSchemaComplexType->Particle = myXmlSchemaSequence; - myXmlElement2->SchemaType = myXmlSchemaComplexType; - myXmlSchema->Items->Add( myXmlElement2 ); - XmlSchemaElement^ myXmlElement3 = gcnew XmlSchemaElement; - myXmlElement3->Name = "Subtract"; - myXmlSchemaComplexType = gcnew XmlSchemaComplexType; - myXmlSchemaSequence = gcnew XmlSchemaSequence; - myXmlSchemaSequence->Items->Add( CreateComplexTypeXmlElement( "1", "1", "a", gcnew XmlQualifiedName( "s:float" ) ) ); - myXmlSchemaSequence->Items->Add( CreateComplexTypeXmlElement( "1", "1", "b", gcnew XmlQualifiedName( "s:float" ) ) ); - myXmlSchemaComplexType->Particle = myXmlSchemaSequence; - myXmlElement3->SchemaType = myXmlSchemaComplexType; - myXmlSchema->Items->Add( myXmlElement3 ); - XmlSchemaElement^ myXmlElement4 = gcnew XmlSchemaElement; - myXmlElement4->Name = "SubtractResponse"; - myXmlSchemaComplexType = gcnew XmlSchemaComplexType; - myXmlSchemaSequence = gcnew XmlSchemaSequence; - myXmlSchemaSequence->Items->Add( CreateComplexTypeXmlElement( "1", "1", "SubtractResult", gcnew XmlQualifiedName( "s:int" ) ) ); - myXmlSchemaComplexType->Particle = myXmlSchemaSequence; - myXmlElement4->SchemaType = myXmlSchemaComplexType; - myXmlSchema->Items->Add( myXmlElement4 ); - - // Add the schemas to the Types property of the ServiceDescription. - myServiceDescription->Types->Schemas->Add( myXmlSchema ); - // - - // - FileStream^ myFileStream = gcnew FileStream( "output.wsdl",FileMode::OpenOrCreate,FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - - // Write the WSDL. - Console::WriteLine( "Writing a new WSDL file." ); - myServiceDescription->Write( myStreamWriter ); - myStreamWriter->Close(); - myFileStream->Close(); - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception Caught! {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Service_Class4/CPP/service_class.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Service_Class4/CPP/service_class.cpp deleted file mode 100644 index 5d5e1df7929b6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Service_Class4/CPP/service_class.cpp +++ /dev/null @@ -1,95 +0,0 @@ -// System.Web.Services.Description.Service.Ports -// System.Web.Services.Description.Service.Extensions -// System.Web.Services.Description.Service.Service() -// System.Web.Services.Description.Service.Name - -/*The following sample demonstrates the properties 'Ports','Extensions','Name' and -constructor 'Service()'.This sample reads the contents of a file 'MathService_cs.wsdl' -into a 'ServiceDescription' instance. It gets the collection of Service -instances from 'ServiceDescription'. It then removes a 'Service' from the collection and -creates a new 'Service' and adds it into collection. It writes a new web service description -file 'MathService_New.wsdl'. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Xml; - -Port^ CreatePort( String^ PortName, String^ BindingName, String^ targetNamespace ) -{ - Port^ myPort = gcnew Port; - myPort->Name = PortName; - myPort->Binding = gcnew XmlQualifiedName( BindingName,targetNamespace ); - - // Create a SoapAddress extensibility element to add to the port. - SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding; - mySoapAddressBinding->Location = "http://localhost/Service_Class/MathService_CS.asmx"; - myPort->Extensions->Add( mySoapAddressBinding ); - return myPort; -} - -int main() -{ - try - { - // - // - // - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MathService_CS.wsdl" ); - ServiceCollection^ myServiceCollection = myServiceDescription->Services; - int noOfServices = myServiceCollection->Count; - Console::WriteLine( "\nTotal number of services: {0}", noOfServices ); - - // Get a reference to the service. - Service^ myOldService = myServiceCollection[ 0 ]; - Console::WriteLine( "No. of Ports in the Service{0}", myServiceCollection[ 0 ]->Ports->Count ); - Console::WriteLine( "These are the ports in the service:" ); - for ( int i = 0; i < myOldService->Ports->Count; i++ ) - Console::WriteLine( "Port name: {0}", myOldService->Ports[ i ]->Name ); - Console::WriteLine( "Service name: {0}", myOldService->Name ); - Service^ myService = gcnew Service; - myService->Name = "MathService"; - - // Add the ports to the newly created service. - for ( int i = 0; i < myOldService->Ports->Count; i++ ) - { - String^ PortName = myServiceCollection[ 0 ]->Ports[ i ]->Name; - String^ BindingName = myServiceCollection[ 0 ]->Ports[ i ]->Binding->Name; - myService->Ports->Add( CreatePort( PortName, BindingName, myServiceDescription->TargetNamespace ) ); - - } - Console::WriteLine( "Newly created ports -" ); - for ( int i = 0; i < myService->Ports->Count; i++ ) - Console::WriteLine( "Port Name: {0}", myOldService->Ports[ i ]->Name ); - - // Add the extensions to the newly created service. - int noOfExtensions = myOldService->Extensions->Count; - Console::WriteLine( "No. of extensions: {0}", noOfExtensions ); - if ( noOfExtensions > 0 ) - { - for ( int i = 0; i < myOldService->Ports->Count; i++ ) - myService->Extensions->Add( myServiceCollection[ 0 ]->Extensions[ i ] ); - } - - // Remove the service from the collection. - myServiceCollection->Remove( myOldService ); - - // Add the newly created service. - myServiceCollection->Add( myService ); - myServiceDescription->Write( "MathService_New.wsdl" ); - // - // - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } - -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SinkProviders/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SinkProviders/CPP/source.cpp deleted file mode 100644 index 4386b6e2533ed..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SinkProviders/CPP/source.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Security::Permissions; - -[SecurityPermission(SecurityAction::Demand)] -int main() -{ - // - IDictionary^ prop = gcnew Hashtable; - prop[ "port" ] = 9000; - IClientChannelSinkProvider^ clientChain = gcnew BinaryClientFormatterSinkProvider; - IServerChannelSinkProvider^ serverChain = gcnew SoapServerFormatterSinkProvider; - serverChain->Next = gcnew BinaryServerFormatterSinkProvider; - ChannelServices::RegisterChannel( gcnew HttpChannel( prop,clientChain,serverChain ) ); - // - - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttribues.SoapDefaultValue/CPP/defvalue.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttribues.SoapDefaultValue/CPP/defvalue.cpp deleted file mode 100644 index 076a9f1908851..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttribues.SoapDefaultValue/CPP/defvalue.cpp +++ /dev/null @@ -1,126 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -using namespace System::Xml::Schema; -using namespace System::ComponentModel; -public ref class Group -{ -public: - - // The default is set to .NET. - - [DefaultValue(".NET")] - String^ GroupName; -}; - -public ref class Run -{ -public: - void SerializeOriginal( String^ filename ) - { - // Create an instance of the XmlSerializer class. - XmlSerializer^ mySerializer = gcnew XmlSerializer( Group::typeid ); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - // Setting the GroupName to '.NET' is like not setting it at all - // because it is the default value. So no value will be - // serialized, and on deserialization it will appear as a blank. - myGroup->GroupName = ".NET"; - - // Serialize the class, and close the TextWriter. - mySerializer->Serialize( writer, myGroup ); - writer->Close(); - } - - void SerializeOverride( String^ filename ) - { - // Create an instance of the XmlSerializer class - // that overrides the serialization. - XmlSerializer^ overRideSerializer = CreateOverrideSerializer(); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - // The specifies that the default value is now - // 'Team1'. So setting the GroupName to '.NET' means - // the value will be serialized. - myGroup->GroupName = ".NET"; - - // Serialize the class, and close the TextWriter. - overRideSerializer->Serialize( writer, myGroup ); - writer->Close(); - } - - void DeserializeOriginal( String^ filename ) - { - // Create an instance of the XmlSerializer class. - XmlSerializer^ mySerializer = gcnew XmlSerializer( Group::typeid ); - - // Reading the file requires a TextReader. - TextReader^ reader = gcnew StreamReader( filename ); - - // Deserialize and cast the Object*. - Group^ myGroup; - myGroup = safe_cast(mySerializer->Deserialize( reader )); - Console::WriteLine( myGroup->GroupName ); - Console::WriteLine(); - } - - void DeserializeOverride( String^ filename ) - { - // Create an instance of the XmlSerializer class. - XmlSerializer^ overRideSerializer = CreateOverrideSerializer(); - - // Reading the file requires a TextReader. - TextReader^ reader = gcnew StreamReader( filename ); - - // Deserialize and cast the Object*. - Group^ myGroup; - myGroup = safe_cast(overRideSerializer->Deserialize( reader )); - Console::WriteLine( myGroup->GroupName ); - } - -private: - XmlSerializer^ CreateOverrideSerializer() - { - SoapAttributeOverrides^ mySoapAttributeOverrides = gcnew SoapAttributeOverrides; - SoapAttributes^ soapAtts = gcnew SoapAttributes; - - // Create a new DefaultValueAttribute Object* for the GroupName - // property. - DefaultValueAttribute^ newDefault = gcnew DefaultValueAttribute( "Team1" ); - soapAtts->SoapDefaultValue = newDefault; - mySoapAttributeOverrides->Add( Group::typeid, "GroupName", soapAtts ); - - // Create an XmlTypeMapping that is used to create an instance - // of the XmlSerializer. Then return the XmlSerializer Object*. - XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter( mySoapAttributeOverrides ))->ImportTypeMapping( Group::typeid ); - XmlSerializer^ ser = gcnew XmlSerializer( myMapping ); - return ser; - } -}; - -int main() -{ - Run^ test = gcnew Run; - test->SerializeOriginal( "SoapOriginal.xml" ); - test->SerializeOverride( "mySoapAttributeOverridesideAttributes.xml" ); - test->DeserializeOriginal( "SoapOriginal.xml" ); - test->DeserializeOverride( "mySoapAttributeOverridesideAttributes.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttribute/CPP/soapattribute.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttribute/CPP/soapattribute.cpp deleted file mode 100644 index 6c2fca3bb4d6d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttribute/CPP/soapattribute.cpp +++ /dev/null @@ -1,115 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Text; -using namespace System::Xml; -using namespace System::Xml::Serialization; -using namespace System::Xml::Schema; - -//using namespace System::Runtime::Remoting::Metadata; -public ref class Vehicle -{ -public: - String^ licenseNumber; -}; - - -[SoapInclude(Vehicle::typeid)] -public ref class Group -{ -public: - - [SoapAttributeAttribute(Namespace="http://www.cpandl.com")] - String^ GroupName; - - [SoapAttributeAttribute(DataType="base64Binary")] - array^GroupNumber; - - [SoapAttributeAttribute(DataType="date",AttributeName="CreationDate")] - DateTime Today; - - [SoapElement(DataType="nonNegativeInteger",ElementName="PosInt")] - String^ PostitiveInt; - Vehicle^ GroupVehicle; -}; - -public ref class Run -{ -public: - void SerializeObject( String^ filename ) - { - // Create an instance of the XmlSerializer class that - // can generate encoded SOAP messages. - XmlSerializer^ mySerializer = ReturnSOAPSerializer(); - Group^ myGroup = MakeGroup(); - - // Writing the file requires a TextWriter. - XmlTextWriter^ writer = gcnew XmlTextWriter( filename,Encoding::UTF8 ); - writer->Formatting = Formatting::Indented; - writer->WriteStartElement( "wrapper" ); - - // Serialize the class, and close the TextWriter. - mySerializer->Serialize( writer, myGroup ); - writer->WriteEndElement(); - writer->Close(); - } - - -private: - Group^ MakeGroup() - { - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - // Set the Object* properties. - myGroup->GroupName = ".NET"; - array^hexByte = {Convert::ToByte( 100 ),Convert::ToByte( 50 )}; - myGroup->GroupNumber = hexByte; - DateTime myDate = DateTime(2002,5,2); - myGroup->Today = myDate; - myGroup->PostitiveInt = "10000"; - myGroup->GroupVehicle = gcnew Vehicle; - myGroup->GroupVehicle->licenseNumber = "1234"; - return myGroup; - } - -public: - void DeserializeObject( String^ filename ) - { - // Create an instance of the XmlSerializer class that - // can generate encoded SOAP messages. - XmlSerializer^ mySerializer = ReturnSOAPSerializer(); - - // Reading the file requires an XmlTextReader. - XmlTextReader^ reader = gcnew XmlTextReader( filename ); - reader->ReadStartElement( "wrapper" ); - - // Deserialize and cast the Object*. - Group^ myGroup; - myGroup = safe_cast(mySerializer->Deserialize( reader )); - reader->ReadEndElement(); - reader->Close(); - } - -private: - XmlSerializer^ ReturnSOAPSerializer() - { - - // Create an instance of the XmlSerializer class. - XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter)->ImportTypeMapping( Group::typeid ); - return gcnew XmlSerializer( myMapping ); - } -}; - -int main() -{ - Run^ test = gcnew Run; - test->SerializeObject( "SoapAtts.xml" ); - test->DeserializeObject( "SoapAtts.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributeAttributeEx2/CPP/soapattributeex2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributeAttributeEx2/CPP/soapattributeex2.cpp deleted file mode 100644 index ca2b9a2176d5f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributeAttributeEx2/CPP/soapattributeex2.cpp +++ /dev/null @@ -1,76 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -public ref class Group -{ -public: - - // This attribute will be overridden. - - [SoapAttributeAttribute(Namespace="http://www.cpandl.com")] - String^ GroupName; -}; - -public ref class Run -{ -public: - void SerializeOverride( String^ filename ) - { - // Create an instance of the XmlSerializer class - // that overrides the serialization. - XmlSerializer^ overRideSerializer = CreateOverrideSerializer(); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - // Set the Object* properties. - myGroup->GroupName = ".NET"; - - // Serialize the class, and close the TextWriter. - overRideSerializer->Serialize( writer, myGroup ); - writer->Close(); - } - -private: - XmlSerializer^ CreateOverrideSerializer() - { - SoapAttributeOverrides^ mySoapAttributeOverrides = gcnew SoapAttributeOverrides; - SoapAttributes^ mySoapAttributes = gcnew SoapAttributes; - - // Create a new SoapAttributeAttribute to the - // one applied to the Group class. The resulting XML - // stream will use the new namespace and attribute name. - SoapAttributeAttribute^ mySoapAttribute = gcnew SoapAttributeAttribute; - mySoapAttribute->AttributeName = "TeamName"; - - // Change the Namespace. - mySoapAttribute->Namespace = "http://www.cohowinery.com"; - mySoapAttributes->SoapAttribute = mySoapAttribute; - mySoapAttributeOverrides->Add( Group::typeid, "GroupName", mySoapAttributes ); - XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter( mySoapAttributeOverrides ))->ImportTypeMapping( Group::typeid ); - XmlSerializer^ ser = gcnew XmlSerializer( myMapping ); - return ser; - } -}; - -int main() -{ - Run^ test = gcnew Run; - test->SerializeOverride( "SoapOveride.xml" ); -} - -// -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributeOverrides.Item property 1/CPP/attadd.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributeOverrides.Item property 1/CPP/attadd.cpp deleted file mode 100644 index 723d53337e03b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributeOverrides.Item property 1/CPP/attadd.cpp +++ /dev/null @@ -1,72 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -public ref class Group -{ -public: - // Override the serialization of this member. - String^ GroupName; -}; - -public ref class Run -{ -public: - void SerializeOverride( String^ filename ) - { - // Create an instance of the XmlSerializer class - // that overrides the serialization. - XmlSerializer^ overRideSerializer = CreateOverrideSerializer(); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - // Set the object properties. - myGroup->GroupName = ".NET"; - - // Serialize the class, and close the TextWriter. - overRideSerializer->Serialize( writer, myGroup ); - writer->Close(); - } - -private: - XmlSerializer^ CreateOverrideSerializer() - { - SoapAttributeOverrides^ mySoapAttributeOverrides = gcnew SoapAttributeOverrides; - SoapAttributes^ mySoapAttributes = gcnew SoapAttributes; - SoapElementAttribute^ mySoapElement = gcnew SoapElementAttribute; - mySoapElement->ElementName = "TeamName"; - mySoapAttributes->SoapElement = mySoapElement; - - // Add the SoapAttributes to the - // mySoapAttributeOverridesrides object. - mySoapAttributeOverrides->Add( Group::typeid, "GroupName", mySoapAttributes ); - - // Get the SoapAttributes with the Item property. - SoapAttributes^ thisSoapAtts = mySoapAttributeOverrides[Group::typeid, "GroupName"]; - Console::WriteLine( "New serialized element name: {0}", thisSoapAtts->SoapElement->ElementName ); - - // Create an XmlTypeMapping that is used to create an instance - // of the XmlSerializer. Then return the XmlSerializer object. - XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter( mySoapAttributeOverrides ))-> - ImportTypeMapping( Group::typeid ); - XmlSerializer^ ser = gcnew XmlSerializer( myMapping ); - - return ser; - } -}; - -int main() -{ - Run^ test = gcnew Run; - test->SerializeOverride( "GetSoapAttributes.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributeOverrides.Item property 2/CPP/attadd2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributeOverrides.Item property 2/CPP/attadd2.cpp deleted file mode 100644 index e35e9d519f261..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributeOverrides.Item property 2/CPP/attadd2.cpp +++ /dev/null @@ -1,72 +0,0 @@ -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// The name of this type will be overridden using -// the SoapTypeAttribute. -public ref class Group -{ -public: - String^ GroupName; -}; - -public ref class Run -{ -public: - void SerializeOverride( String^ filename ) - { - // Create an instance of the XmlSerializer class - // that overrides the serialization. - XmlSerializer^ overRideSerializer = CreateOverrideSerializer(); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - // Set the object properties. - myGroup->GroupName = ".NET"; - - // Serialize the class, and close the TextWriter. - overRideSerializer->Serialize( writer, myGroup ); - writer->Close(); - } - -private: - XmlSerializer^ CreateOverrideSerializer() - { - SoapAttributeOverrides^ mySoapAttributeOverrides = gcnew SoapAttributeOverrides; - SoapAttributes^ mySoapAttributes = gcnew SoapAttributes; - SoapTypeAttribute^ mySoapType = gcnew SoapTypeAttribute; - mySoapType->TypeName = "Team"; - mySoapAttributes->SoapType = mySoapType; - - // Add the SoapAttributes to the - // mySoapAttributeOverridesrides object. - mySoapAttributeOverrides->Add( Group::typeid, mySoapAttributes ); - - // Get the SoapAttributes with the Item property. - SoapAttributes^ thisSoapAtts = mySoapAttributeOverrides[ Group::typeid ]; - Console::WriteLine( "New serialized type name: {0}", thisSoapAtts->SoapType->TypeName ); - - // Create an XmlTypeMapping that is used to create an instance - // of the XmlSerializer. Then return the XmlSerializer object. - XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter( mySoapAttributeOverrides ))-> - ImportTypeMapping( Group::typeid ); - XmlSerializer^ ser = gcnew XmlSerializer( myMapping ); - return ser; - } -}; - -int main() -{ - Run^ test = gcnew Run; - test->SerializeOverride( "GetSoapAttributes2.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributes1/CPP/s.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributes1/CPP/s.cpp deleted file mode 100644 index 97fc8013fb41f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributes1/CPP/s.cpp +++ /dev/null @@ -1,50 +0,0 @@ -#using -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Runtime::Serialization; -using namespace System::Runtime::Serialization::Formatters::Soap; -using namespace System::Runtime::Remoting::Metadata; - -// A test Object* that needs to be serialized -// -[Serializable] -[SoapTypeAttribute(XmlNamespace="MyXmlNamespace")] -public ref class TestSimpleObject -{ -public: - int member1; - - [SoapFieldAttribute(XmlElementName="MyXmlElement")] String^ member2; - - String^ member3; - double member4; - - // A field that is not serialized. - - [NonSerialized] String^ member5; - - TestSimpleObject() - { - member1 = 11; - member2 = "hello"; - member3 = "hello"; - member4 = 3.14159265; - member5 = "hello world!"; - } -}; -// - -int main() -{ - // Creates a new TestSimpleObject Object^. - TestSimpleObject^ obj = gcnew TestSimpleObject; - - // Opens a file and serializes the Object^ into it in binary format. - Stream^ stream = File::Open( "data.xml", FileMode::Create ); - SoapFormatter^ formatter = gcnew SoapFormatter; - formatter->Serialize( stream, obj ); - stream->Close(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributesOverrides/CPP/soapover.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributesOverrides/CPP/soapover.cpp deleted file mode 100644 index cd4ad348629fe..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapAttributesOverrides/CPP/soapover.cpp +++ /dev/null @@ -1,246 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Text; -using namespace System::Xml; -using namespace System::Xml::Serialization; -using namespace System::Xml::Schema; -ref class Car; - -// SoapInclude allows Vehicle to accept Car type. - -[SoapInclude(Car::typeid)] -public ref class Vehicle abstract -{ -public: - String^ licenseNumber; - DateTime makeDate; -}; - -public ref class Car: public Vehicle{}; - -public enum class GroupType -{ - // These enums can be overridden. - [SoapEnum("Small")] - A, - [SoapEnum("Large")] - B -}; - -public ref class Group -{ -public: - - [SoapAttributeAttribute(Namespace="http://www.cpandl.com")] - String^ GroupName; - - [SoapAttributeAttribute(DataType="base64Binary")] - array^GroupNumber; - - [SoapAttributeAttribute(DataType="date",AttributeName="CreationDate")] - DateTime Today; - - [SoapElement(DataType="nonNegativeInteger",ElementName="PosInt")] - String^ PostitiveInt; - - // This is ignored when serialized unless it's overridden. - - [SoapIgnore] - bool IgnoreThis; - GroupType Grouptype; - Vehicle^ MyVehicle; - - // The SoapInclude allows the method to return a Car. - - [SoapInclude(Car::typeid)] - Vehicle^ myCar( String^ licNumber ) - { - Vehicle^ v; - if ( licNumber->Equals( "" ) ) - { - v = gcnew Car; - v->licenseNumber = "!!!!!!"; - } - else - { - v = gcnew Car; - v->licenseNumber = licNumber; - } - - return v; - } -}; - -public ref class Run -{ -public: - static void main() - { - Run^ test = gcnew Run; - test->SerializeOriginal( "SoapOriginal.xml" ); - test->SerializeOverride( "SoapOverrides.xml" ); - test->DeserializeOriginal( "SoapOriginal.xml" ); - test->DeserializeOverride( "SoapOverrides.xml" ); - } - - void SerializeOriginal( String^ filename ) - { - // Create an instance of the XmlSerializer class. - XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter)->ImportTypeMapping( Group::typeid ); - XmlSerializer^ mySerializer = gcnew XmlSerializer( myMapping ); - Group^ myGroup = MakeGroup(); - - // Writing the file requires a TextWriter. - XmlTextWriter^ writer = gcnew XmlTextWriter( filename,Encoding::UTF8 ); - writer->Formatting = Formatting::Indented; - writer->WriteStartElement( "wrapper" ); - - // Serialize the class, and close the TextWriter. - mySerializer->Serialize( writer, myGroup ); - writer->WriteEndElement(); - writer->Close(); - } - - void SerializeOverride( String^ filename ) - { - // Create an instance of the XmlSerializer class - // that overrides the serialization. - XmlSerializer^ overRideSerializer = CreateOverrideSerializer(); - Group^ myGroup = MakeGroup(); - - // Writing the file requires a TextWriter. - XmlTextWriter^ writer = gcnew XmlTextWriter( filename,Encoding::UTF8 ); - writer->Formatting = Formatting::Indented; - writer->WriteStartElement( "wrapper" ); - - // Serialize the class, and close the TextWriter. - overRideSerializer->Serialize( writer, myGroup ); - writer->WriteEndElement(); - writer->Close(); - } - -private: - Group^ MakeGroup() - { - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - // Set the object properties. - myGroup->GroupName = ".NET"; - array^hexByte = {Convert::ToByte( 100 ),Convert::ToByte( 50 )}; - myGroup->GroupNumber = hexByte; - DateTime myDate = DateTime(2002,5,2); - myGroup->Today = myDate; - myGroup->PostitiveInt = "10000"; - myGroup->IgnoreThis = true; - myGroup->Grouptype = GroupType::B; - Car^ thisCar = dynamic_cast(myGroup->myCar( "1234566" )); - myGroup->MyVehicle = thisCar; - return myGroup; - } - -public: - void DeserializeOriginal( String^ filename ) - { - // Create an instance of the XmlSerializer class. - XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter)->ImportTypeMapping( Group::typeid ); - XmlSerializer^ mySerializer = gcnew XmlSerializer( myMapping ); - - // Reading the file requires an XmlTextReader. - XmlTextReader^ reader = gcnew XmlTextReader( filename ); - reader->ReadStartElement( "wrapper" ); - - // Deserialize and cast the object. - Group^ myGroup; - myGroup = dynamic_cast(mySerializer->Deserialize( reader )); - reader->ReadEndElement(); - reader->Close(); - } - - void DeserializeOverride( String^ filename ) - { - // Create an instance of the XmlSerializer class. - XmlSerializer^ overRideSerializer = CreateOverrideSerializer(); - - // Reading the file requires an XmlTextReader. - XmlTextReader^ reader = gcnew XmlTextReader( filename ); - reader->ReadStartElement( "wrapper" ); - - // Deserialize and cast the object. - Group^ myGroup; - myGroup = dynamic_cast(overRideSerializer->Deserialize( reader )); - reader->ReadEndElement(); - reader->Close(); - ReadGroup( myGroup ); - } - -private: - void ReadGroup( Group^ myGroup ) - { - Console::WriteLine( myGroup->GroupName ); - Console::WriteLine( myGroup->GroupNumber[ 0 ] ); - Console::WriteLine( myGroup->GroupNumber[ 1 ] ); - Console::WriteLine( myGroup->Today ); - Console::WriteLine( myGroup->PostitiveInt ); - Console::WriteLine( myGroup->IgnoreThis ); - Console::WriteLine(); - } - - XmlSerializer^ CreateOverrideSerializer() - { - SoapAttributeOverrides^ mySoapAttributeOverrides = gcnew SoapAttributeOverrides; - SoapAttributes^ soapAtts = gcnew SoapAttributes; - SoapElementAttribute^ mySoapElement = gcnew SoapElementAttribute; - mySoapElement->ElementName = "xxxx"; - soapAtts->SoapElement = mySoapElement; - mySoapAttributeOverrides->Add( Group::typeid, "PostitiveInt", soapAtts ); - - // Override the IgnoreThis property. - SoapIgnoreAttribute^ myIgnore = gcnew SoapIgnoreAttribute; - soapAtts = gcnew SoapAttributes; - soapAtts->SoapIgnore = false; - mySoapAttributeOverrides->Add( Group::typeid, "IgnoreThis", soapAtts ); - - // Override the GroupType enumeration. - soapAtts = gcnew SoapAttributes; - SoapEnumAttribute^ xSoapEnum = gcnew SoapEnumAttribute; - xSoapEnum->Name = "Over1000"; - soapAtts->GroupType::SoapEnum = xSoapEnum; - - // Add the SoapAttributes to the - // mySoapAttributeOverridesrides object. - mySoapAttributeOverrides->Add( GroupType::typeid, "A", soapAtts ); - - // Create second enumeration and add it. - soapAtts = gcnew SoapAttributes; - xSoapEnum = gcnew SoapEnumAttribute; - xSoapEnum->Name = "ZeroTo1000"; - soapAtts->GroupType::SoapEnum = xSoapEnum; - mySoapAttributeOverrides->Add( GroupType::typeid, "B", soapAtts ); - - // Override the Group type. - soapAtts = gcnew SoapAttributes; - SoapTypeAttribute^ soapType = gcnew SoapTypeAttribute; - soapType->TypeName = "Team"; - soapAtts->SoapType = soapType; - mySoapAttributeOverrides->Add( Group::typeid, soapAtts ); - - // Create an XmlTypeMapping that is used to create an instance - // of the XmlSerializer. Then return the XmlSerializer object. - XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter( mySoapAttributeOverrides ))->ImportTypeMapping( Group::typeid ); - XmlSerializer^ ser = gcnew XmlSerializer( myMapping ); - return ser; - } -}; - -int main() -{ - Run::main(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapBindingStyle_Rpc/CPP/soapbindingstyle_rpc.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapBindingStyle_Rpc/CPP/soapbindingstyle_rpc.cpp deleted file mode 100644 index 477f2e9539d73..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapBindingStyle_Rpc/CPP/soapbindingstyle_rpc.cpp +++ /dev/null @@ -1,110 +0,0 @@ -// System::Web::Services::Description.SoapBindingStyle::Rpc -// System::Web::Services::Description.SoapBindingUse::Encoded -// System::Web::Services::Description.SoapBodyBinding::Encoding -// System::Web::Services::Description.SoapBodyBinding::Namespace -// System::Web::Services::Description.SoapHeaderBinding::Encoding -// System::Web::Services::Description.SoapHeaderBinding::Namespace - -/* -The following example demonstrates the 'Rpc' member of 'SoapBindingStyle' -enumeration , 'Encoded' member of 'SoapBindingUse' enumeration , 'Encoding' -and 'Namespace' properties of 'SoapBodyBinding' class and 'Encoding' -and 'Namespace' properties of 'SoapHeaderBinding' class. -It takes as input a wsdl file which does not contain a binding for SOAP. -By using the 'Read' method of 'ServiceDescription' class it gets a 'ServiceDescription' Object*. -It uses the SOAP protocol related classes and creates 'Binding' element -of 'SOAP' protocol which are then added to the 'ServiceDescription' Object*. -An output wsdl file is generated from 'ServiceDescription' Object* which -could be used for generating a proxy. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - ServiceDescription^ myServiceDescription = - ServiceDescription::Read( "SoapBindingStyleInput_cpp.wsdl" ); - Binding^ myBinding = gcnew Binding; - myBinding->Name = "SOAPSvrMgr_SOAPBinding"; - myBinding->Type = gcnew XmlQualifiedName( "tns:SOAPSvrMgr_portType" ); - -// - SoapBinding^ mySoapBinding = gcnew SoapBinding; - mySoapBinding->Transport = "http://schemas.xmlsoap.org/soap/http"; - // Message to be transmitted contains parameters to call a procedure. - mySoapBinding->Style = SoapBindingStyle::Rpc; - myBinding->Extensions->Add( mySoapBinding ); -// - - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "GetServerStats"; - - SoapOperationBinding^ mySoapOperationBinding = - gcnew SoapOperationBinding; - mySoapOperationBinding->SoapAction = - "http://tempuri.org/soapsvcmgr/GetServerStats"; - myOperationBinding->Extensions->Add( mySoapOperationBinding ); - - // Create InputBinding for operation for the 'SOAP' protocol. - InputBinding^ myInputBinding = gcnew InputBinding; - -// -// -// - SoapBodyBinding^ mySoapBodyBinding = gcnew SoapBodyBinding; - // Encode SOAP body using rules specified by the 'Encoding' property. - mySoapBodyBinding->Use = SoapBindingUse::Encoded; - // Set URI representing the encoding style for encoding the body. - mySoapBodyBinding->Encoding = "http://schemas.xmlsoap.org/soap/encoding/"; - // Set the Uri representing the location of the specification - // for encoding of content not defined by 'Encoding' property'. - mySoapBodyBinding->Namespace = "http://tempuri.org/soapsvcmgr/"; - myInputBinding->Extensions->Add( mySoapBodyBinding ); -// -// -// - -// -// - SoapHeaderBinding^ mySoapHeaderBinding = gcnew SoapHeaderBinding; - mySoapHeaderBinding->Message = - gcnew XmlQualifiedName( "tns:Soapsvcmgr_Headers_Request" ); - mySoapHeaderBinding->Part = "AuthCS"; - // Encode SOAP header using rules specified by the 'Encoding' property. - mySoapHeaderBinding->Use = SoapBindingUse::Encoded; - // Set URI representing the encoding style for encoding the header. - mySoapHeaderBinding->Encoding = "http://schemas.xmlsoap.org/soap/encoding/"; - // Set the Uri representing the location of the specification - // for encoding of content not defined by 'Encoding' property'. - mySoapHeaderBinding->Namespace = "http://tempuri.org/SOAPSvr/soapsvcmgr/headers.xsd"; - // Add mySoapHeaderBinding to the 'myInputBinding' Object*. - myInputBinding->Extensions->Add( mySoapHeaderBinding ); -// -// - - // Create OutputBinding for operation. - OutputBinding^ myOutputBinding = gcnew OutputBinding; - myOutputBinding->Extensions->Add( mySoapBodyBinding ); - mySoapHeaderBinding->Part = "AuthSC"; - mySoapHeaderBinding->Message = - gcnew XmlQualifiedName( "tns:Soapsvcmgr_Headers_Response" ); - myOutputBinding->Extensions->Add( mySoapHeaderBinding ); - - // Add 'InputBinding' and 'OutputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInputBinding; - myOperationBinding->Output = myOutputBinding; - myBinding->Operations->Add( myOperationBinding ); - - myServiceDescription->Bindings->Add( myBinding ); - myServiceDescription->Write( "SoapBindingStyleOutput_cpp.wsdl" ); - Console::WriteLine( "'SoapBindingStyleOutput_cpp.wsdl' file is generated." ); - Console::WriteLine( "Proxy could be created using command" + - " 'wsdl SoapBindingStyleOutput_cpp.wsdl'" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapBinding_SoapOperationBinding/CPP/soapprotocol.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapBinding_SoapOperationBinding/CPP/soapprotocol.cpp deleted file mode 100644 index 80ca9900bb591..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapBinding_SoapOperationBinding/CPP/soapprotocol.cpp +++ /dev/null @@ -1,178 +0,0 @@ -// System.Web.Services.Description.SoapBinding.ctor -// System.Web.Services.Description.SoapBinding.Transport -// System.Web.Services.Description.SoapBinding.Style -// System.Web.Services.Description.SoapBindingStyle.Document -// System.Web.Services.Description.SoapOperationBinding.ctor -// System.Web.Services.Description.SoapOperationBinding.SoapAction -// System.Web.Services.Description.SoapOperationBinding.Style -// System.Web.Services.Description.SoapBodyBinding.ctor -// System.Web.Services.Description.SoapBodyBinding.Use -// System.Web.Services.Description.SoapBindingUse.Literal -// System.Web.Services.Description.SoapAddressBinding.ctor -// System.Web.Services.Description.SoapAddressBinding.Location - -/* -The following example demonstrates the 'SoapBinding' constructor,'Transport','Style' -properties of 'SoapBinding' class,'Document' member of 'SoapBindingStyle' enum, -'SoapOperationBinding' constructor,'SoapAction','Style' properties of 'SoapOperationBinding' -class, 'SoapBodyBinding' contructor,'Use' property of 'SoapBodyBinding' class, -'Literal' member of 'SoapBindingUse' enum and 'SoapAddressBinding' constructor, 'Location' -property of class 'SoapAddressBinding'. - -It takes as input a wsdl file which supports two protocols 'HttpGet' and 'HttpPost' . -By using the 'Read' method of 'ServiceDescription' class it gets a 'ServiceDescription' -object. It uses the SOAP protocol related classes and creates 'Binding','Port', -'PortType' and 'Message' elements of 'SOAP' protocol. It adds all these elements to -the 'ServiceDescription' object. The 'ServiceDescription' object creates another -wsdl file which supports 'SOAP' also. This wsdl file is used to generate a proxy -which is used by the .aspx file. -Note: To run the example run the makefile provided and open the '.aspx' file in browser. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - ServiceDescription^ myDescription = ServiceDescription::Read( "AddNumbersInput_cs.wsdl" ); - - // Create a 'Binding' object for the 'SOAP' protocol. - Binding^ myBinding = gcnew Binding; - myBinding->Name = "Service1Soap"; - XmlQualifiedName^ qualifiedName = gcnew XmlQualifiedName( "s0:Service1Soap" ); - myBinding->Type = qualifiedName; - - // - // - // - // - SoapBinding^ mySoapBinding = gcnew SoapBinding; - mySoapBinding->Transport = "http://schemas.xmlsoap.org/soap/http"; - mySoapBinding->Style = SoapBindingStyle::Document; - - // Add the 'SoapBinding' object to the 'Binding' object. - myBinding->Extensions->Add( mySoapBinding ); - // - // - // - // - - // Create the 'OperationBinding' object for the 'SOAP' protocol. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "AddNumbers"; - - // - // - // - // Create the 'SoapOperationBinding' object for the 'SOAP' protocol. - SoapOperationBinding^ mySoapOperationBinding = gcnew SoapOperationBinding; - mySoapOperationBinding->SoapAction = "http://tempuri.org/AddNumbers"; - mySoapOperationBinding->Style = SoapBindingStyle::Document; - - // Add the 'SoapOperationBinding' object to 'OperationBinding' object. - myOperationBinding->Extensions->Add( mySoapOperationBinding ); - // - // - // - - // - // - // - // Create the 'InputBinding' object for the 'SOAP' protocol. - InputBinding^ myInput = gcnew InputBinding; - SoapBodyBinding^ mySoapBinding1 = gcnew SoapBodyBinding; - mySoapBinding1->Use = SoapBindingUse::Literal; - myInput->Extensions->Add( mySoapBinding1 ); - - // Add the 'InputBinding' object to 'OperationBinding' object. - myOperationBinding->Input = myInput; - - // Create the 'OutputBinding' object'. - OutputBinding^ myOutput = gcnew OutputBinding; - myOutput->Extensions->Add( mySoapBinding1 ); - - // Add the 'OutputBinding' object to 'OperationBinding' object. - myOperationBinding->Output = myOutput; - - // Add the 'OperationBinding' object to 'Binding' object. - myBinding->Operations->Add( myOperationBinding ); - - // Add the 'Binding' object to the ServiceDescription instance. - myDescription->Bindings->Add( myBinding ); - // - // - // - - // - // - Port^ soapPort = gcnew Port; - soapPort->Name = "Service1Soap"; - soapPort->Binding = gcnew XmlQualifiedName( "s0:Service1Soap" ); - - // Create a 'SoapAddressBinding' object for the 'SOAP' protocol. - SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding; - mySoapAddressBinding->Location = "http://localhost/Service1_cs.asmx"; - - // Add the 'SoapAddressBinding' object to the 'Port'. - soapPort->Extensions->Add( mySoapAddressBinding ); - - // Add the 'Port' object to the ServiceDescription instance. - myDescription->Services[ 0 ]->Ports->Add( soapPort ); - // - // - - // Create a 'PortType' object. for SOAP protocol. - PortType^ soapPortType = gcnew PortType; - soapPortType->Name = "Service1Soap"; - Operation^ soapOperation = gcnew Operation; - soapOperation->Name = "AddNumbers"; - OperationMessage^ soapInput = (OperationMessage^)(gcnew OperationInput); - soapInput->Message = gcnew XmlQualifiedName( "s0:AddNumbersSoapIn" ); - OperationMessage^ soapOutput = (OperationMessage^)(gcnew OperationOutput); - soapOutput->Message = gcnew XmlQualifiedName( "s0:AddNumbersSoapOut" ); - soapOperation->Messages->Add( soapInput ); - soapOperation->Messages->Add( soapOutput ); - - // Add the 'Operation' object to 'PortType' object. - soapPortType->Operations->Add( soapOperation ); - - // Add the 'PortType' object first to 'PortTypeCollection' object - // and then to 'ServiceDescription' object. - myDescription->PortTypes->Add( soapPortType ); - - // Create the 'Message' object. - Message^ soapMessage1 = gcnew Message; - soapMessage1->Name = "AddNumbersSoapIn"; - - // Create the 'MessageParts' object. - MessagePart^ soapMessagePart1 = gcnew MessagePart; - soapMessagePart1->Name = "parameters"; - soapMessagePart1->Element = gcnew XmlQualifiedName( "s0:AddNumbers" ); - - // Add the 'MessagePart' object to 'Messages' object. - soapMessage1->Parts->Add( soapMessagePart1 ); - - // Create another 'Message' object. - Message^ soapMessage2 = gcnew Message; - soapMessage2->Name = "AddNumbersSoapOut"; - MessagePart^ soapMessagePart2 = gcnew MessagePart; - soapMessagePart2->Name = "parameters"; - soapMessagePart2->Element = gcnew XmlQualifiedName( "s0:AddNumbersResponse" ); - - // Add the 'MessagePart' object to second 'Message' object. - soapMessage2->Parts->Add( soapMessagePart2 ); - - // Add the 'Message' objects to 'ServiceDescription'. - myDescription->Messages->Add( soapMessage1 ); - myDescription->Messages->Add( soapMessage2 ); - - // Write the 'ServiceDescription' object as a WSDL file. - myDescription->Write( "AddNumbersOut_cs.wsdl" ); - Console::WriteLine( " 'AddNumbersOut_cs.Wsdl' file was generated" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapBodyBinding_Parts/CPP/soapbodybinding_parts.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapBodyBinding_Parts/CPP/soapbodybinding_parts.cpp deleted file mode 100644 index 72d797fd57454..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapBodyBinding_Parts/CPP/soapbodybinding_parts.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// System.Web.Services.Description.SoapBinding.Namespace -// System.Web.Services.Description.SoapBodyBinding.Parts - -/* -The following example demonstrates the 'Namespace' field of 'SoapBinding' class -and 'parts' property of 'SoapBodyBinding' class. -It takes a wsdl file which supports two protocols 'HttpGet' and 'HttpPost' as input. By -using the 'Read' method of 'ServiceDescription' class it gets the 'ServiceDescription' -object. It uses the SOAP protocol related classes to create 'Binding' elements of -'SOAP' protocol. It adds all the elements to the 'ServiceDescription' object. The -'ServiceDescription' object creates another wsdl file which supports 'SOAP' protocol -also. This wsdl file is used to generate a proxy which is used by the .aspx file. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - ServiceDescription^ myDescription = - ServiceDescription::Read( "AddNumbersInput_cs.wsdl" ); - // Create a 'Binding' object for the 'SOAP' protocol. - Binding^ myBinding = gcnew Binding; - myBinding->Name = "Service1Soap"; - XmlQualifiedName^ qualifiedName = - gcnew XmlQualifiedName( "s0:Service1Soap" ); - - myBinding->Type = qualifiedName; - -// - SoapBinding^ mySoapBinding = gcnew SoapBinding; - mySoapBinding->Transport = "http://schemas.xmlsoap.org/soap/http"; - mySoapBinding->Style = SoapBindingStyle::Document; - // Get the URI for XML namespace of the SoapBinding class. - String^ myNameSpace = SoapBinding::Namespace; - Console::WriteLine( "The URI of the XML Namespace is :{0}", myNameSpace ); -// - - // Add the 'SoapBinding' object to the 'Binding' object. - myBinding->Extensions->Add( mySoapBinding ); - - // Create the 'OperationBinding' object for the 'SOAP' protocol. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "AddNumbers"; - - // Create the 'SoapOperationBinding' object for the 'SOAP' protocol. - SoapOperationBinding^ mySoapOperationBinding = - gcnew SoapOperationBinding; - mySoapOperationBinding->SoapAction = "http://tempuri.org/AddNumbers"; - mySoapOperationBinding->Style = SoapBindingStyle::Document; - // Add the 'SoapOperationBinding' object to 'OperationBinding' object. - myOperationBinding->Extensions->Add( mySoapOperationBinding ); - -// - // Create the 'InputBinding' object for the 'SOAP' protocol. - InputBinding^ myInput = gcnew InputBinding; - SoapBodyBinding^ mySoapBinding1 = gcnew SoapBodyBinding; - mySoapBinding1->Use = SoapBindingUse::Literal; - - array^ myParts = gcnew array(1); - myParts[ 0 ] = "parameters"; - // Set the names of the message parts to appear in the SOAP body. - mySoapBinding1->Parts = myParts; - myInput->Extensions->Add( mySoapBinding1 ); - // Add the 'InputBinding' object to 'OperationBinding' object. - myOperationBinding->Input = myInput; - // Create the 'OutputBinding' object'. - OutputBinding^ myOutput = gcnew OutputBinding; - myOutput->Extensions->Add( mySoapBinding1 ); - // Add the 'OutPutBinding' to 'OperationBinding'. - myOperationBinding->Output = myOutput; -// - - // Add the 'OperationBinding' to 'Binding'. - myBinding->Operations->Add( myOperationBinding ); - - // Add the 'Binding' to 'BindingCollection' of 'ServiceDescription'. - myDescription->Bindings->Add( myBinding ); - - // Write the 'ServiceDescription' as a WSDL file. - myDescription->Write( "AddNumbersOut_cs.wsdl" ); - Console::WriteLine( " 'AddNumbersOut_cs.Wsdl' file was generated" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_BaseChannelSinkWithProperties/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_BaseChannelSinkWithProperties/CPP/makefile deleted file mode 100644 index d5fed0022ae33..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_BaseChannelSinkWithProperties/CPP/makefile +++ /dev/null @@ -1,4 +0,0 @@ -all: soapclientformattersinkprovider_customprovider.dll - -soapclientformattersinkprovider_customprovider.dll : soapclientformattersinkprovider_customprovider.cpp - cl /clr:pure /LD soapclientformattersinkprovider_customprovider.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_BaseChannelSinkWithProperties/CPP/soapclientformattersinkprovider_customprovider.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_BaseChannelSinkWithProperties/CPP/soapclientformattersinkprovider_customprovider.cpp deleted file mode 100644 index 406e0c2a195fa..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_BaseChannelSinkWithProperties/CPP/soapclientformattersinkprovider_customprovider.cpp +++ /dev/null @@ -1,173 +0,0 @@ - -// System.Runtime.Remoting.Channels.SoapClientFormatterSinkProvider.CreateSink -// System.Runtime.Remoting.Channels.BaseChannelSinkWithProperties -/* -The following example demonstrates the 'BaseChannelSinkWithProperties' -class and 'CreateSink' method of 'SoapClientFormatterSinkProvider' class. -Custom client formatter provider is defined by implementing -the 'IClientChannelSinkProvider' interface and custom channel sink is -defined by inheriting 'BaseChannelSinkWithProperties' abstract class. -The sink provider chain has the custom sink provider and -'SoapClientFormatterSinkProvider'. The 'CreateSink' method is used to -return a sink to the caller and form the sink chain which is used to process -the message being passed through it. -*/ -using namespace System::Runtime::InteropServices; -using namespace System; -using namespace System::Collections; -using namespace System::IO; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Security::Permissions; - -public ref class MyKey{}; - -// -[SecurityPermission(SecurityAction::Demand, Flags = SecurityPermissionFlag::Infrastructure)] -private ref class MyClientFormatterChannelSink: public BaseChannelSinkWithProperties, public IClientChannelSink, public IMessageSink -{ -private: - IClientChannelSink^ nextClientSink; - IMessageSink^ nextMessageSink; - -public: - MyClientFormatterChannelSink() - : nextClientSink( nullptr ), nextMessageSink( nullptr ) - {} - - MyClientFormatterChannelSink( IClientChannelSink^ nextSink, IMessageSink^ nextMsgSink ) - : BaseChannelSinkWithProperties() - { - nextClientSink = nextSink; - nextMessageSink = nextMsgSink; - } - - virtual void ProcessMessage( IMessage^ message, ITransportHeaders^ requestHeaders, Stream^ requestStream, [Out]ITransportHeaders^% responseHeaders, [Out]Stream^% responseStream ) - { - nextClientSink->ProcessMessage( message, requestHeaders, requestStream, responseHeaders, responseStream ); - } - - - - virtual void AsyncProcessRequest( IClientChannelSinkStack^ sinkStack, IMessage^ msg, ITransportHeaders^ headers, Stream^ myStream ) - { - sinkStack->Push( this, nullptr ); - nextClientSink->AsyncProcessRequest( sinkStack, msg, headers, myStream ); - } - - virtual void AsyncProcessResponse( IClientResponseChannelSinkStack^ sinkStack, Object^ /*state*/, ITransportHeaders^ headers, Stream^ myStream ) - { - sinkStack->AsyncProcessResponse( headers, myStream ); - } - - virtual Stream^ GetRequestStream( IMessage^ /*msg*/, ITransportHeaders^ /*headers*/ ) - { - return nullptr; - } - - - property IClientChannelSink^ NextChannelSink - { - virtual IClientChannelSink^ get() - { - return nextClientSink; - } - - } - - property IMessageSink^ NextSink - { - virtual IMessageSink^ get() - { - return nextMessageSink; - } - - } - - virtual IMessageCtrl^ AsyncProcessMessage( IMessage^ /*msg*/, IMessageSink^ /*replySink*/ ) - { - return nullptr; - } - - virtual IMessage^ SyncProcessMessage( IMessage^ msg ) - { - return nextMessageSink->SyncProcessMessage( msg ); - } - - - property Object^ Item [Object^] - { - virtual Object^ get( Object^ key ) override - { - if ( key == MyKey::typeid ) - return this; - - return nullptr; - } - - virtual void set( Object^ /*value*/, Object^ /*key*/ ) override - { - throw gcnew NotSupportedException; - } - - } - - property ICollection^ Keys - { - virtual ICollection^ get() override - { - ArrayList^ myKeys = gcnew ArrayList( 1 ); - myKeys->Add( MyKey::typeid ); - return myKeys; - } - - } - -}; - - - -// -[SecurityPermission(SecurityAction::Demand, Flags = SecurityPermissionFlag::Infrastructure)] -public ref class MyClientFormatterProvider: public IClientChannelSinkProvider -{ -private: - IClientChannelSinkProvider^ nextProvider; - -public: - MyClientFormatterProvider() : nextProvider( nullptr ) {} - - virtual IClientChannelSink^ CreateSink( IChannelSender^ channel, String^ myUrl, Object^ remoteChannelData ) - { - // - IClientChannelSink^ nextSink = nullptr; - IMessageSink^ nextMsgSink = nullptr; - if ( nextProvider != nullptr ) - { - Console::WriteLine( "Next client sink provider is: {0}", nextProvider ); - - // Create a sink chain calling the next sink provider's - // 'CreateSink' method. - nextSink = nextProvider->CreateSink( channel, myUrl, remoteChannelData ); - nextMsgSink = dynamic_cast(nextSink); - } - // - return gcnew MyClientFormatterChannelSink( nextSink,nextMsgSink ); - } - - property IClientChannelSinkProvider^ Next - { - virtual IClientChannelSinkProvider^ get() - { - return nextProvider; - } - - virtual void set( IClientChannelSinkProvider^ value ) - { - nextProvider = value; - } - } -}; - - - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/SoapClientFormatterSinkProvider_Next_Shared.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/SoapClientFormatterSinkProvider_Next_Shared.cpp deleted file mode 100644 index b8cd263ac3224..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/SoapClientFormatterSinkProvider_Next_Shared.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/* Supporting program for the 'SoapClientFormatterSinkProvider_Next_Server.cs' and - 'SoapClientFormatterSinkProvider_Next_Client.cs' - */ -using namespace System; - -public ref class HelloService : public MarshalByRefObject -{ - - static int n_instances; - -public: - HelloService() - { - n_instances++; - Console::WriteLine("HelloService activated - instance # {0}.", n_instances); - } - - ~HelloService() - { - Console::WriteLine("HelloService instance {0} destroyed.", n_instances); - n_instances--; - } - -public: - String^ HelloMethod(String^ name) - { - Console::WriteLine("HelloMethod called on HelloService instance {0}.", n_instances); - return "Hi, " + name + "."; - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/makefile deleted file mode 100644 index 19ed8e30a7038..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/makefile +++ /dev/null @@ -1,14 +0,0 @@ -all : soapclientformattersinkprovider_next_server.exe soapclientformattersinkprovider_next_client.exe - - -soapclientformattersinkprovider_next_server.exe : soapclientformattersinkprovider_next_server.cpp soapclientformattersinkprovider_customprovider.dll SoapClientFormatterSinkProvider_Next_Shared.dll - cl /clr:pure soapclientformattersinkprovider_next_server.cpp - -soapclientformattersinkprovider_next_client.exe : soapclientformattersinkprovider_next_client.cpp soapclientformattersinkprovider_customprovider.dll SoapClientFormatterSinkProvider_Next_Shared.dll - cl /clr:pure soapclientformattersinkprovider_next_client.cpp - -soapclientformattersinkprovider_customprovider.dll : soapclientformattersinkprovider_customprovider.cpp - cl /clr:pure /LD soapclientformattersinkprovider_customprovider.cpp - -SoapClientFormatterSinkProvider_Next_Shared.dll : SoapClientFormatterSinkProvider_Next_Shared.cpp - cl /clr:pure /LD SoapClientFormatterSinkProvider_Next_Shared.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/soapclientformattersinkprovider_customprovider.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/soapclientformattersinkprovider_customprovider.cpp deleted file mode 100644 index 269324a7eaf35..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/soapclientformattersinkprovider_customprovider.cpp +++ /dev/null @@ -1,270 +0,0 @@ - -// System.Runtime.Remoting.Channels.SoapServerFormatterSinkProvider.CreateSink -using namespace System::Runtime::InteropServices; -using namespace System; -using namespace System::Collections; -using namespace System::IO; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Messaging; - -public ref class MyKey{}; - -private ref class MyClientChannelSink: public BaseChannelObjectWithProperties, public IClientChannelSink -{ -private: - IClientChannelSink^ nextClientSink; - -public: - MyClientChannelSink() - : nextClientSink( nullptr ) - {} - - MyClientChannelSink( IClientChannelSink^ nextSink ) - : BaseChannelObjectWithProperties() - { - nextClientSink = nextSink; - } - - MyClientChannelSink( IChannelSender^ /*channel*/, String^ /*url*/, Object^ /*remoteChannelData*/, IClientChannelSink^ nextSink ) - : BaseChannelObjectWithProperties() - { - nextClientSink = nextSink; - } - - virtual void ProcessMessage( IMessage^ msg, ITransportHeaders^ requestHeaders, Stream^ requestStream, [Out]ITransportHeaders^% responseHeaders, [Out]Stream^% responseStream ) - { - nextClientSink->ProcessMessage( msg, requestHeaders, requestStream, responseHeaders, responseStream ); - } - - virtual void AsyncProcessRequest( IClientChannelSinkStack^ sinkStack, IMessage^ msg, ITransportHeaders^ headers, Stream^ stream ) - { - sinkStack->Push( this, nullptr ); - nextClientSink->AsyncProcessRequest( sinkStack, msg, headers, stream ); - } - - virtual void AsyncProcessResponse( IClientResponseChannelSinkStack^ sinkStack, Object^ /*state*/, ITransportHeaders^ headers, Stream^ stream ) - { - sinkStack->AsyncProcessResponse( headers, stream ); - } - - virtual Stream^ GetRequestStream( IMessage^ /*msg*/, ITransportHeaders^ /*headers*/ ) - { - return nullptr; - } - - - property IClientChannelSink^ NextChannelSink - { - virtual IClientChannelSink^ get() - { - return nextClientSink; - } - - } - - property Object^ Item [Object^] - { - virtual Object^ get( Object^ key ) override - { - if ( key == MyKey::typeid ) - return this; - - return nullptr; - } - - virtual void set( Object^ /*value*/, Object^ /*key*/ ) override - { - throw gcnew NotSupportedException; - } - - } - - property ICollection^ Keys - { - virtual ICollection^ get() override - { - ArrayList^ myKeys = gcnew ArrayList( 1 ); - myKeys->Add( MyKey::typeid ); - return myKeys; - } - } -}; - -[System::Security::Permissions::PermissionSet(System::Security:: - Permissions::SecurityAction::Demand, Name = "FullTrust")] -public ref class MyClientProvider: public IClientChannelSinkProvider -{ -private: - IClientChannelSinkProvider^ nextProvider; - -public: - MyClientProvider() - : nextProvider( nullptr ) - {} - - MyClientProvider( IDictionary^ /*properties*/, ICollection^ /*providerData*/ ){} - - virtual IClientChannelSink^ CreateSink( IChannelSender^ channel, String^ myUrl, Object^ remoteChannelData ) - { - IClientChannelSink^ nextSink = nullptr; - if ( nextProvider != nullptr ) - { - nextSink = nextProvider->CreateSink( channel, myUrl, remoteChannelData ); - if ( nextSink == nullptr ) - return nullptr; - } - - return gcnew MyClientChannelSink( nextSink ); - } - - property IClientChannelSinkProvider^ Next - { - virtual IClientChannelSinkProvider^ get() - { - return nextProvider; - } - - virtual void set( IClientChannelSinkProvider^ value ) - { - nextProvider = value; - } - } -}; - -private ref class MyServerChannelSink: public BaseChannelObjectWithProperties, public IServerChannelSink -{ -private: - IServerChannelSink^ nextServerSink; - -public: - MyServerChannelSink() - : nextServerSink( nullptr ) - {} - - MyServerChannelSink( IServerChannelSink^ nextSink ) - : BaseChannelObjectWithProperties() - { - nextServerSink = nextSink; - } - - MyServerChannelSink( IChannelReceiver^ /*channel*/, IServerChannelSink^ nextSink ) - : BaseChannelObjectWithProperties() - { - nextServerSink = nextSink; - } - - virtual ServerProcessing ProcessMessage( IServerChannelSinkStack^ sinkStack, IMessage^ requestMsg, ITransportHeaders^ requestHeaders, Stream^ requestStream, [Out]IMessage^% msg, [Out]ITransportHeaders^% responseHeaders, [Out]Stream^% responseStream ) - { - sinkStack->Push( this, nullptr ); - ServerProcessing processing = nextServerSink->ProcessMessage( sinkStack, requestMsg, requestHeaders, requestStream, msg, responseHeaders, responseStream ); - switch ( processing ) - { - case ServerProcessing::Complete: - sinkStack->Pop( this ); - break; - - case ServerProcessing::OneWay: - sinkStack->Pop( this ); - break; - - case ServerProcessing::Async: - sinkStack->Store( this, nullptr ); - break; - } - return processing; - } - - virtual void AsyncProcessResponse( IServerResponseChannelSinkStack^ sinkStack, Object^ /*state*/, IMessage^ msg, ITransportHeaders^ headers, Stream^ stream ) - { - sinkStack->AsyncProcessResponse( msg, headers, stream ); - } - - virtual Stream^ GetResponseStream( IServerResponseChannelSinkStack^ /*sinkStack*/, Object^ /*state*/, IMessage^ /*msg*/, ITransportHeaders^ /*headers*/ ) - { - return nullptr; - } - - property IServerChannelSink^ NextChannelSink - { - virtual IServerChannelSink^ get() - { - return nextServerSink; - } - - } - - property Object^ Item [Object^] - { - virtual Object^ get( Object^ key ) override - { - if ( key == MyKey::typeid ) - return this; - - return nullptr; - } - - virtual void set( Object^ /*value*/, Object^ /*key*/ ) override - { - throw gcnew NotSupportedException; - } - - } - - property ICollection^ Keys - { - virtual ICollection^ get() override - { - ArrayList^ myKeys = gcnew ArrayList( 1 ); - myKeys->Add( MyKey::typeid ); - return myKeys; - } - } -}; - -[System::Security::Permissions::PermissionSet(System::Security:: - Permissions::SecurityAction::Demand, Name = "FullTrust")] -public ref class MyServerProvider: public IServerChannelSinkProvider -{ -private: - IServerChannelSinkProvider^ nextProvider; - -public: - MyServerProvider() - : nextProvider( nullptr ) - {} - - MyServerProvider( IDictionary^ /*properties*/, ICollection^ /*providerData*/ ){} - - virtual void GetChannelData( IChannelDataStore^ /*channelData*/ ){} - - virtual IServerChannelSink^ CreateSink( IChannelReceiver^ channel ) - { - // - IServerChannelSink^ nextSink = nullptr; - if ( nextProvider != nullptr ) - { - Console::WriteLine( "The next server provider is:{0}", nextProvider ); - - // Create a sink chain calling the 'SaopServerFormatterProvider' - // 'CreateSink' method. - nextSink = nextProvider->CreateSink( channel ); - } - - return gcnew MyServerChannelSink( nextSink ); - // - } - - - property IServerChannelSinkProvider^ Next - { - virtual IServerChannelSinkProvider^ get() - { - return nextProvider; - } - - virtual void set( IServerChannelSinkProvider^ value ) - { - nextProvider = value; - } - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/soapclientformattersinkprovider_next_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/soapclientformattersinkprovider_next_client.cpp deleted file mode 100644 index 94a133d52d148..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/soapclientformattersinkprovider_next_client.cpp +++ /dev/null @@ -1,51 +0,0 @@ - - -// System.Runtime.Remoting.Channels.SoapClientFormatterSinkProvider -// System.Runtime.Remoting.Channels.SoapClientFormatterSinkProvider.Next -/* - The following program demonstrates the 'SoapClientFormatterSinkProvider' class - and 'Next' property of 'SoapClientFormatterSinkProvider' class ,'CreateSink' - method and 'Next' property of 'ServerFormatterSinkProvider' class. - Custom client and server formatter provider are created by implementing - the interfaces IClientChannelSinkProvider and IServerChannelSinkProvider. - In the client side the custom client provider is assigned to 'Next' property - of 'SoapClientFormatterSinkProvider'. In the server side, the - 'BinaryServerFormatterSinkProvider' is assigned to 'Next' property of - 'SoapServerFormatterSinkProvider'. The 'CreateSink' method is used to return a - sink to the caller and form the sink chain which is used to process the message - being passed through it. -*/ -// -#using -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Channels; -int main() -{ - try - { - // - IClientChannelSinkProvider^ mySoapProvider = gcnew SoapClientFormatterSinkProvider; - IClientChannelSinkProvider^ myClientProvider = gcnew MyClientProvider; - - // Set the custom provider as the next 'IClientChannelSinkProvider' in the sink chain. - mySoapProvider->Next = myClientProvider; - // - - TcpChannel^ myTcpChannel = gcnew TcpChannel( nullptr,mySoapProvider,nullptr ); - ChannelServices::RegisterChannel( myTcpChannel ); - RemotingConfiguration::RegisterWellKnownClientType( HelloService::typeid, "tcp://localhost:8082/HelloServiceApplication/MyUri" ); - HelloService ^ myService = gcnew HelloService; - Console::WriteLine( myService->HelloMethod( "Welcome to .Net" ) ); - } - catch ( Exception^ ex ) - { - Console::WriteLine( "The following exception is raised at client side :{0}", ex->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/soapclientformattersinkprovider_next_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/soapclientformattersinkprovider_next_server.cpp deleted file mode 100644 index 17838fc6bfbbc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientFormatterSinkProvider_Next_Create/CPP/soapclientformattersinkprovider_next_server.cpp +++ /dev/null @@ -1,42 +0,0 @@ - - -// System.Runtime.Remoting.Channels.SoapServerFormatterSinkProvider.Next; -#using -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Collections; -int main() -{ - try - { - IDictionary^ myDictionaryProperty = gcnew Hashtable; - myDictionaryProperty->Add( "port", 8082 ); - - // - IServerChannelSinkProvider^ myCustomProvider = gcnew MyServerProvider; - IServerChannelSinkProvider^ mySoapProvider = gcnew SoapServerFormatterSinkProvider; - myCustomProvider->Next = mySoapProvider; - - // Set the Binary provider as the next 'IServerChannelSinkProvider' in the - // sink chain. - mySoapProvider->Next = gcnew BinaryServerFormatterSinkProvider; - // - - TcpChannel^ myTcpChannel = gcnew TcpChannel( myDictionaryProperty,nullptr,myCustomProvider ); - ChannelServices::RegisterChannel( myTcpChannel ); - RemotingConfiguration::ApplicationName = "HelloServiceApplication"; - RemotingConfiguration::RegisterWellKnownServiceType( HelloService::typeid, "MyUri", WellKnownObjectMode::Singleton ); - Console::WriteLine( "Press enter to stop this process." ); - Console::ReadLine(); - } - catch ( Exception^ ex ) - { - Console::WriteLine( "The following exception is raised at server side: {0}", ex->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientMessage/CPP/SoapClientMessage.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientMessage/CPP/SoapClientMessage.cpp deleted file mode 100644 index 6a3351cd473d7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientMessage/CPP/SoapClientMessage.cpp +++ /dev/null @@ -1,269 +0,0 @@ -// System.Web.Services.Protocols.SoapClientMessage -// System.Web.Services.Protocols.SoapClientMessage.Action -// System.Web.Services.Protocols.SoapClientMessage.Client -// System.Web.Services.Protocols.SoapClientMessage.MethodInfo -// System.Web.Services.Protocols.SoapClientMessage.OneWay -// System.Web.Services.Protocols.SoapClientMessage.Url - -/* -The following example demonstrates the 'Action', 'Client', 'MethodInfo', -'OneWay' and 'Url' properties of the 'SoapClientMessage' class. -It extends the 'SoapExtension' class to create a class that is used to -log the SOAP messages transferred for a web service method invocation. -To associate this 'SoapExtension' class with the web service method on -the client proxy, a class that extends from 'SoapExtensionAttribute' is -used. This 'SoapExtensionAttribute' is applied to a client proxy method -which is associated with a web service method. Whenever this method is -invoked on the client side all the SOAP message that get transfered both -from the client and the server(which is hosting the web service) are -written into a log file. -*/ - -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -ref class MySoapExtension; -ref class MathSvc; - -// A SoapExtensionAttribute that can be associated with an -// XML Web service method. -[AttributeUsage(AttributeTargets::Method)] -public ref class MySoapExtensionAttribute: public SoapExtensionAttribute -{ -private: - String^ myFilename; - int myPriority; - -public: - - // Set the name of the log file where SOAP messages will be stored. - MySoapExtensionAttribute() - : SoapExtensionAttribute() - { - myFilename = "C:\\logClient.txt"; - } - - property Type^ ExtensionType - { - // Return the type of MySoapExtension. - Type^ get() - { - return typeid; - } - } - - property int Priority - { - // User can set priority of the SoapExtension. - int get() - { - return myPriority; - } - void set( int value ) - { - myPriority = value; - } - } - - property String^ Filename - { - String^ get() - { - return myFilename; - } - void set( String^ value ) - { - myFilename = value; - } - } -}; - -public ref class MySoapExtension: public SoapExtension -{ -private: - Stream^ oldStream; - Stream^ newStream; - String^ filename; - -public: - // Return the filename that is to log the SOAP messages. - Object^ GetInitializer( LogicalMethodInfo^ /*methodInfo*/, SoapExtensionAttribute^ attribute ) - { - return (dynamic_cast(attribute))->Filename; - } - - // Return the filename that is to log the SOAP messages. - Object^ GetInitializer( Type^ filename ) - { - return dynamic_cast(filename); - } - - // Save the name of the log file that will save the SOAP messages. - void Initialize( Object^ initializer ) - { - filename = dynamic_cast(initializer); - } - -// - // Process the SOAP message received and write to a log file. - void ProcessMessage( SoapMessage^ message ) - { - switch ( message->Stage ) - { - case SoapMessageStage::BeforeSerialize: - break; - case SoapMessageStage::AfterSerialize: - WriteOutput( dynamic_cast(message) ); - break; - case SoapMessageStage::BeforeDeserialize: - WriteInput( dynamic_cast(message) ); - break; - case SoapMessageStage::AfterDeserialize: - break; - default: - throw gcnew Exception( "invalid stage" ); - } - } - - // Write the contents of the outgoing SOAP message to the log file. - void WriteOutput( SoapClientMessage^ message ) - { -// -// -// -// -// - newStream->Position = 0; - FileStream^ myFileStream = gcnew FileStream( filename, FileMode::Append, - FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->WriteLine( - "================================== Request at {0}", DateTime::Now ); - - // Print to the log file the request header field for SoapAction header. - myStreamWriter->WriteLine( "The SoapAction Http request header field is: " ); - myStreamWriter->WriteLine( "\t{0}", message->Action ); - - // Print to the log file the type of the client that invoked - // the XML Web service method. - myStreamWriter->WriteLine( "The type of the client is: " ); - if ( (message->Client->GetType())->Equals( typeid ) ) - { - myStreamWriter->WriteLine( "\tMathSvc" ); - } - - // Print to the log file the method invoked by the client. - myStreamWriter->WriteLine( - "The method that has been invoked by the client is:" ); - myStreamWriter->WriteLine( "\t{0}", message->MethodInfo->Name ); - - // Print to the log file if the method invoked is OneWay. - if ( message->OneWay ) - { - myStreamWriter->WriteLine( - "The client doesn't wait for the server to finish processing" ); - } - else - { - myStreamWriter->WriteLine( - "The client waits for the server to finish processing" ); - } - - // Print to the log file the URL of the site that provides - // implementation of the method. - myStreamWriter->WriteLine( - "The URL of the XML Web service method that has been requested is: " ); - myStreamWriter->WriteLine( "\t{0}", message->Url ); - myStreamWriter->WriteLine( "The contents of the SOAP envelope are: " ); - myStreamWriter->Flush(); - - // Copy the contents of one stream to another. - Copy( newStream, myFileStream ); - myFileStream->Close(); - newStream->Position = 0; - - // Copy the contents of one stream to another. - Copy( newStream, oldStream ); -// -// -// -// -// - } -// - - // Write the contents of the incoming SOAP message to the log file. - void WriteInput( SoapClientMessage^ /*message*/ ) - { - Copy( oldStream, newStream ); - FileStream^ myFileStream = gcnew FileStream( filename, FileMode::Append, - FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->WriteLine( - "---------------------------------- Response at {0}", DateTime::Now ); - myStreamWriter->Flush(); - newStream->Position = 0; - Copy( newStream, myFileStream ); - myFileStream->Close(); - newStream->Position = 0; - } - - // Return a new MemoryStream for SOAP processing. - Stream^ ChainStream( Stream^ stream ) - { - oldStream = stream; - newStream = gcnew MemoryStream; - return newStream; - } - - // Utility method to copy the contents of one stream to another. - void Copy( Stream^ fromStream, Stream^ toStream ) - { - TextReader^ myTextReader = gcnew StreamReader( fromStream ); - TextWriter^ myTextWriter = gcnew StreamWriter( toStream ); - myTextWriter->WriteLine( myTextReader->ReadToEnd() ); - myTextWriter->Flush(); - } -}; - -[System::Web::Services::WebServiceBindingAttribute(Name="MathSvcSoap", - Namespace="http://tempuri.org/")] -public ref class MathSvc: public System::Web::Services::Protocols::SoapHttpClientProtocol -{ -public: - - [System::Diagnostics::DebuggerStepThroughAttribute] - MathSvc() - { - this->Url = "http://localhost/MathSvc_SoapClientMessage.asmx"; - } - - [System::Web::Services::Protocols::SoapDocumentMethodAttribute( - "http://tempuri.org/Add", - Use=System::Web::Services::Description::SoapBindingUse::Literal, - ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - [MySoapExtensionAttribute] - Single Add( Single xValue, Single yValue ) - { - array^temp2 = {xValue,yValue}; - array^results = this->Invoke( "Add", temp2 ); - return safe_cast(results[ 0 ]); - } - - System::IAsyncResult^ BeginAdd( Single xValue, Single yValue, System::AsyncCallback^ callback, Object^ asyncState ) - { - array^ temp3 = { xValue, yValue }; - return this->BeginInvoke( "Add", temp3, callback, asyncState ); - } - - Single EndAdd( System::IAsyncResult^ asyncResult ) - { - array^results = this->EndInvoke( asyncResult ); - return ( (Single)( results[ 0 ] ) ); - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientMessage/CPP/SvcClient_SoapClientMessage.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientMessage/CPP/SvcClient_SoapClientMessage.cpp deleted file mode 100644 index a936611b24237..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapClientMessage/CPP/SvcClient_SoapClientMessage.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - This program is used as a client of the client proxy class. -*/ - -#using - -using namespace System; - -public ref class SvcClient -{ -public: - static void Main() - { - } -}; \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapElementOverrides/CPP/soapelementoverrides.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapElementOverrides/CPP/soapelementoverrides.cpp deleted file mode 100644 index bbc969c59c571..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapElementOverrides/CPP/soapelementoverrides.cpp +++ /dev/null @@ -1,106 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; -using namespace System::Collections; -using namespace System::Xml; -using namespace System::Text; -public ref class Thing -{ -public: - - [SoapElement(IsNullable=true)] - String^ ThingName; -}; - -public ref class Transportation -{ -public: - - // The SoapElementAttribute specifies that the - // generated XML element name will be S"Wheels" - // instead of S"Vehicle". - - [SoapElement("Wheels")] - String^ Vehicle; - - [SoapElement(DataType="dateTime")] - DateTime CreationDate; - - [SoapElement(IsNullable=true)] - Thing^ thing; -}; - -public ref class Test -{ -public: - - // Return an XmlSerializer used for overriding. - XmlSerializer^ CreateSoapOverrider() - { - // Create the SoapAttributes and SoapAttributeOverrides objects. - SoapAttributes^ soapAttrs = gcnew SoapAttributes; - SoapAttributeOverrides^ soapOverrides = gcnew SoapAttributeOverrides; - - // Create an SoapElementAttribute to the Vehicles property. - SoapElementAttribute^ soapElement1 = gcnew SoapElementAttribute( "Truck" ); - - // Set the SoapElement to the Object*. - soapAttrs->SoapElement = soapElement1; - - // Add the SoapAttributes to the SoapAttributeOverrides,specifying the member to. - soapOverrides->Add( Transportation::typeid, "Vehicle", soapAttrs ); - - // Create the XmlSerializer, and return it. - XmlTypeMapping^ myTypeMapping = (gcnew SoapReflectionImporter( soapOverrides ))->ImportTypeMapping( Transportation::typeid ); - return gcnew XmlSerializer( myTypeMapping ); - } - - void SerializeOverride( String^ filename ) - { - // Create an XmlSerializer instance. - XmlSerializer^ ser = CreateSoapOverrider(); - - // Create the Object* and serialize it. - Transportation^ myTransportation = gcnew Transportation; - myTransportation->Vehicle = "MyCar"; - myTransportation->CreationDate = DateTime::Now; - myTransportation->thing = gcnew Thing; - XmlTextWriter^ writer = gcnew XmlTextWriter( filename,Encoding::UTF8 ); - writer->Formatting = Formatting::Indented; - writer->WriteStartElement( "wrapper" ); - ser->Serialize( writer, myTransportation ); - writer->WriteEndElement(); - writer->Close(); - } - - void SerializeObject( String^ filename ) - { - // Create an XmlSerializer instance. - XmlSerializer^ ser = gcnew XmlSerializer( Transportation::typeid ); - Transportation^ myTransportation = gcnew Transportation; - myTransportation->Vehicle = "MyCar"; - myTransportation->CreationDate = DateTime::Now; - myTransportation->thing = gcnew Thing; - XmlTextWriter^ writer = gcnew XmlTextWriter( filename,Encoding::UTF8 ); - writer->Formatting = Formatting::Indented; - writer->WriteStartElement( "wrapper" ); - ser->Serialize( writer, myTransportation ); - writer->WriteEndElement(); - writer->Close(); - } -}; - -int main() -{ - Test^ t = gcnew Test; - t->SerializeObject( "SoapElementOriginal.xml" ); - t->SerializeOverride( "SoapElementOverride.xml" ); - Console::WriteLine( "Finished writing two XML files." ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapEnumOverrides/CPP/soapenumoverrides.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapEnumOverrides/CPP/soapenumoverrides.cpp deleted file mode 100644 index a91c48a0ab837..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapEnumOverrides/CPP/soapenumoverrides.cpp +++ /dev/null @@ -1,94 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -public enum class GroupType -{ - // Use the SoapEnumAttribute to instruct the XmlSerializer - // to generate Small and Large instead of A and B. - [SoapEnum("Small")] - A, - [SoapEnum("Large")] - B -}; - -public ref class Group -{ -public: - String^ GroupName; - GroupType Grouptype; -}; - -public ref class Run -{ -public: - void SerializeObject( String^ filename ) - { - // Create an instance of the XmlSerializer Class. - XmlTypeMapping^ mapp = (gcnew SoapReflectionImporter)->ImportTypeMapping( Group::typeid ); - XmlSerializer^ mySerializer = gcnew XmlSerializer( mapp ); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an instance of the Class that will be serialized. - Group^ myGroup = gcnew Group; - - // Set the Object* properties. - myGroup->GroupName = ".NET"; - myGroup->Grouptype = GroupType::A; - - // Serialize the Class, and close the TextWriter. - mySerializer->Serialize( writer, myGroup ); - writer->Close(); - } - - void SerializeOverride( String^ fileName ) - { - SoapAttributeOverrides^ soapOver = gcnew SoapAttributeOverrides; - SoapAttributes^ SoapAtts = gcnew SoapAttributes; - - // Add a SoapEnumAttribute for the GroupType::A enumerator. - // Instead of 'A' it will be S"West". - SoapEnumAttribute^ soapEnum = gcnew SoapEnumAttribute( "West" ); - - // Override the S"A" enumerator. - SoapAtts->GroupType::SoapEnum = soapEnum; - soapOver->Add( GroupType::typeid, "A", SoapAtts ); - - // Add another SoapEnumAttribute for the GroupType::B enumerator. - // Instead of //B// it will be S"East". - SoapAtts = gcnew SoapAttributes; - soapEnum = gcnew SoapEnumAttribute; - soapEnum->Name = "East"; - SoapAtts->GroupType::SoapEnum = soapEnum; - soapOver->Add( GroupType::typeid, "B", SoapAtts ); - - // Create an XmlSerializer used for overriding. - XmlTypeMapping^ map = (gcnew SoapReflectionImporter( soapOver ))->ImportTypeMapping( Group::typeid ); - XmlSerializer^ ser = gcnew XmlSerializer( map ); - Group^ myGroup = gcnew Group; - myGroup->GroupName = ".NET"; - myGroup->Grouptype = GroupType::B; - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( fileName ); - ser->Serialize( writer, myGroup ); - writer->Close(); - } -}; - -int main() -{ - Run^ test = gcnew Run; - test->SerializeObject( "SoapEnum.xml" ); - test->SerializeOverride( "SoapOverride.xml" ); - Console::WriteLine( "Fininished writing two files" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapExtension.GetInitializer-Type/CPP/traceextension.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapExtension.GetInitializer-Type/CPP/traceextension.cpp deleted file mode 100644 index f4f244fd8fea4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapExtension.GetInitializer-Type/CPP/traceextension.cpp +++ /dev/null @@ -1,156 +0,0 @@ -#using - -using namespace System; -using namespace System::Web::Services; -using namespace System::Web::Services::Protocols; -using namespace System::IO; - -ref class TraceExtension; - -// Create a SoapExtensionAttribute for our SOAP Extension that can be -// applied to an XML Web service method. -[AttributeUsage(AttributeTargets::Method)] -public ref class TraceExtensionAttribute: public SoapExtensionAttribute -{ -private: - String^ filename; // = "c:\\log.txt"; - int priority; - -public: - property Type^ ExtensionType - { - virtual Type^ get() override - { - return TraceExtension::typeid; - } - } - - property int Priority - { - virtual int get() override - { - return priority; - } - virtual void set( int value ) override - { - priority = value; - } - } - - property String^ Filename - { - String^ get() - { - return filename; - } - void set( String^ value ) - { - filename = value; - } - } -}; - -// Define a SOAP Extension that traces the SOAP request and SOAP response -// for the XML Web service method, the SOAP extension is applied to. -public ref class TraceExtension: public SoapExtension -{ -private: - Stream^ oldStream; - Stream^ newStream; - String^ filename; - -public: - // When the SOAP extension is accessed for the first time the XML Web service method it is applied - // is accessed store the file name passed in using the corresponding SoapExtensionAttribute. - virtual Object^ GetInitializer( LogicalMethodInfo^ /*methodInfo*/, SoapExtensionAttribute^ attribute ) override - { - return ( (TraceExtensionAttribute^)( attribute ) )->Filename; - } - -// - // The extension was configured to run using a configuration file instead of an attribute applied to a - // specific XML Web service method. Return a file name based on the class implementing the XML Web service's type. -public: - virtual Object^ GetInitializer( Type^ WebServiceType ) override - { - // Return a file name to log the trace information to based on the passed in type. - return String::Format( "C:\\{0}.log", WebServiceType->FullName ); - } -// - - // Receive the filename stored by GetInitializer and store it in a member variable - // for this specific instance. - virtual void Initialize( Object^ initializer ) override - { - filename = (String^)( initializer ); - } - - // If the SoapMessageStage is such that the SoapRequest or SoapResponse is still in the SOAP - // format to be sent or received over the wire, save it out to filename passed in using the SoapExtensionAttribute - virtual void ProcessMessage( SoapMessage^ message ) override - { - switch ( message->Stage ) - { - case SoapMessageStage::BeforeSerialize: - break; - - case SoapMessageStage::AfterSerialize: - WriteOutput( message ); - break; - - case SoapMessageStage::BeforeDeserialize: - WriteInput( message ); - break; - - case SoapMessageStage::AfterDeserialize: - break; - - default: - throw gcnew Exception( "invalid stage" ); - } - } - - // Save the Stream representing the SOAP request or SOAP response into a local memory buffer - virtual Stream^ ChainStream( Stream^ stream ) override - { - oldStream = stream; - newStream = gcnew MemoryStream; - return newStream; - } - - void WriteOutput( SoapMessage^ /*message*/ ) - { - newStream->Position = 0; - FileStream^ fs = gcnew FileStream( filename,FileMode::Append,FileAccess::Write ); - StreamWriter^ w = gcnew StreamWriter( fs ); - w->WriteLine( "---------------------------------- Response at {0}", DateTime::Now ); - w->Flush(); - Copy( newStream, fs ); - fs->Close(); - newStream->Position = 0; - Copy( newStream, oldStream ); - } - - void WriteInput( SoapMessage^ /*message*/ ) - { - Copy( oldStream, newStream ); - FileStream^ fs = gcnew FileStream( filename,FileMode::Append,FileAccess::Write ); - StreamWriter^ w = gcnew StreamWriter( fs ); - w->WriteLine( "================================== Request at {0}", DateTime::Now ); - w->Flush(); - newStream->Position = 0; - Copy( newStream, fs ); - fs->Close(); - newStream->Position = 0; - } - - void Copy( Stream^ from, Stream^ to ) - { - TextReader^ reader = gcnew StreamReader( from ); - TextWriter^ writer = gcnew StreamWriter( to ); - writer->WriteLine( reader->ReadToEnd() ); - writer->Flush(); - } -}; - -int main(){} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapExtensionAttribute/CPP/SoapExtensionAttribute.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapExtensionAttribute/CPP/SoapExtensionAttribute.cpp deleted file mode 100644 index 8084a23059614..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapExtensionAttribute/CPP/SoapExtensionAttribute.cpp +++ /dev/null @@ -1,230 +0,0 @@ -// System.Web.Services.Protocols.SoapExtensionAttribute -// System.Web.Services.Protocols.SoapExtensionAttribute.ExtensionType -// System.Web.Services.Protocols.SoapExtensionAttribute.Priority - -/* -The following example demonstrates the 'ExtensionType' -and 'Priority' attribute of the 'SoapExtensionAttribute' class. -The program extends the 'SoapExtension' class to create a class -that is used to log the SOAP messages transferred for a web service -method invocation. To associate this 'SoapExtension' class with the -web service method on the client proxy, a class that extends from -'SoapExtensionAttribute' is used. This 'SoapExtensionAttribute' -is applied to a client proxy method which is associated with a -web service method. Whenever this method is invoked on the client -side all the SOAP message that get transffered both from the client -and the server(which is hosting the web service) are written into -a log file. -*/ - -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -ref class TraceExtension; - -// -// A SoapExtensionAttribute that can be associated with an -// XML Web service method. -[AttributeUsage(AttributeTargets::Method)] -public ref class TraceExtensionAttribute: public SoapExtensionAttribute -{ -private: - String^ myFilename; - int myPriority; - -public: - // Set the name of the log file where SOAP messages will be stored. - TraceExtensionAttribute() : SoapExtensionAttribute() - { - myFilename = "C:\\logClient.txt"; - } - - // - // Return the type of TraceExtension. - property Type^ ExtensionType - { - Type^ get() - { - return typeid; - } - } - // - - // - // User can set priority of the SoapExtension. - property int Priority - { - int get() - { - return myPriority; - } - void set( int value ) - { - myPriority = value; - } - - } - // - - property String^ Filename - { - String^ get() - { - return myFilename; - } - void set( String^ value ) - { - myFilename = value; - } - } -}; -// - -[System::Web::Services::WebServiceBindingAttribute(Name="MathSvcSoap",Namespace="http://tempuri.org/")] -public ref class MathSvc: public System::Web::Services::Protocols::SoapHttpClientProtocol -{ -public: - - [System::Diagnostics::DebuggerStepThroughAttribute] - MathSvc() - { - this->Url = "http://localhost/MathSvc_SoapExtensionAttribute.asmx"; - } - - [System::Web::Services::Protocols::SoapDocumentMethodAttribute("http://tempuri.org/Add", Use=System::Web::Services::Description::SoapBindingUse::Literal, ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - [TraceExtension] - Single Add( Single xValue, Single yValue ) - { - array^ temp0 = { xValue, yValue }; - array^ results = this->Invoke( "Add", temp0 ); - return ( (Single)( results[ 0 ] ) ); - } - - System::IAsyncResult^ BeginAdd( Single xValue, - Single yValue, - System::AsyncCallback^ callback, - Object^ asyncState ) - { - array^ temp1 = { xValue, yValue }; - return this->BeginInvoke( "Add", temp1, callback, asyncState ); - } - - Single EndAdd( System::IAsyncResult^ asyncResult ) - { - array^ results = this->EndInvoke( asyncResult ); - return ( (Single)( results[ 0 ] ) ); - } -}; - -// Define a SOAP Extension that traces the SOAP request and SOAP -// response for the XML Web service method the SOAP extension is -// applied to. -public ref class TraceExtension: public SoapExtension -{ -private: - Stream^ oldStream; - Stream^ newStream; - String^ filename; - -public: - // Save the Stream representing the SOAP request or SOAP response into - // a local memory buffer. - Stream^ ChainStream( Stream^ stream ) - { - oldStream = stream; - newStream = gcnew MemoryStream; - return newStream; - } - - // When the SOAP extension is accessed for the first time, the XML Web - // service method it is applied to is accessed to store the file - // name passed in, using the corresponding SoapExtensionAttribute. - Object^ GetInitializer( LogicalMethodInfo^ /*methodInfo*/, SoapExtensionAttribute^ attribute ) - { - return ( (TraceExtensionAttribute^)( attribute ) )->Filename; - } - - // The SOAP extension was configured to run using a configuration file - // instead of an attribute applied to a specific XML Web service - // method. - Object^ GetInitializer( Type^ WebServiceType ) - { - // Return a file name to log the trace information to, based on the - // type. - return String::Format( "C:\\{0}.log", WebServiceType->FullName ); - } - - // Receive the file name stored by GetInitializer and store it in a - // member variable for this specific instance. - void Initialize( Object^ initializer ) - { - filename = (String^)( initializer ); - } - - // If the SoapMessageStage is such that the SoapRequest or - // SoapResponse is still in the SOAP format to be sent or received, - // save it out to a file. - void ProcessMessage( SoapMessage^ message ) - { - switch ( message->Stage ) - { - case SoapMessageStage::BeforeSerialize: - break; - case SoapMessageStage::AfterSerialize: - WriteOutput( message ); - break; - case SoapMessageStage::BeforeDeserialize: - WriteInput( message ); - break; - case SoapMessageStage::AfterDeserialize: - break; - default: - throw gcnew Exception( "invalid stage" ); - } - } - - void WriteOutput( SoapMessage^ message ) - { - newStream->Position = 0; - FileStream^ fs = gcnew FileStream( filename, FileMode::Append, - FileAccess::Write ); - StreamWriter^ w = gcnew StreamWriter( fs ); - - String^ soapString = ( (SoapServerMessage^)( message ) ) ? (String^)"SoapResponse" : "SoapRequest"; - w->WriteLine( "-----{0} at {1}", soapString, DateTime::Now ); - w->Flush(); - Copy( newStream, fs ); - w->Close(); - newStream->Position = 0; - Copy( newStream, oldStream ); - } - - void WriteInput( SoapMessage^ message ) - { - Copy( oldStream, newStream ); - FileStream^ fs = gcnew FileStream( filename, FileMode::Append, - FileAccess::Write ); - StreamWriter^ w = gcnew StreamWriter( fs ); - String^ soapString = ( (SoapServerMessage^)( message ) ) ? - (String^)"SoapRequest" : "SoapResponse"; - w->WriteLine( "-----{0} at {1}", soapString, DateTime::Now ); - w->Flush(); - newStream->Position = 0; - Copy( newStream, fs ); - w->Close(); - newStream->Position = 0; - } - - void Copy( Stream^ from, Stream^ to ) - { - TextReader^ reader = gcnew StreamReader( from ); - TextWriter^ writer = gcnew StreamWriter( to ); - writer->WriteLine( reader->ReadToEnd() ); - writer->Flush(); - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapExtensionAttribute/CPP/SvcClient_SoapExtensionAttribute.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapExtensionAttribute/CPP/SvcClient_SoapExtensionAttribute.cpp deleted file mode 100644 index a936611b24237..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapExtensionAttribute/CPP/SvcClient_SoapExtensionAttribute.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - This program is used as a client of the client proxy class. -*/ - -#using - -using namespace System; - -public ref class SvcClient -{ -public: - static void Main() - { - } -}; \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapFaultBinding/CPP/soapfaultbinding.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapFaultBinding/CPP/soapfaultbinding.cpp deleted file mode 100644 index cd2422d09e2b8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapFaultBinding/CPP/soapfaultbinding.cpp +++ /dev/null @@ -1,68 +0,0 @@ -// System::Web::Services::Description.SoapFaultBinding - -/* -The following example demonstrates 'SoapFaultBinding' class. -It creates an instance of 'ServiceDescription' class by reading an existing -wsdl file. Then it creates an instance of 'SoapFaultBinding' and adds it to -the collection object of 'Binding' class. It generates a new wsdl file where -the properties of 'SoapFaultBinding' objects are reflected and which could be -used for generating a proxy. -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; - -int main() -{ - try - { - // Input wsdl file. - String^ myInputWsdlFile = "SoapFaultBindingInput_cpp.wsdl"; - - // Output wsdl file. - String^ myOutputWsdlFile = "SoapFaultBindingOutput_cpp.wsdl"; - - // Initialize an instance of a 'ServiceDescription' object. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( myInputWsdlFile ); - - // Get a SOAP binding object with binding name S"MyService1Soap". - Binding^ myBinding = myServiceDescription->Bindings[ "MyService1Soap" ]; - - // Create a new instance of 'SoapFaultBinding' class. - SoapFaultBinding^ mySoapFaultBinding = gcnew SoapFaultBinding; - - // Encode fault message using rules specified by 'Encoding' property. - mySoapFaultBinding->Use = SoapBindingUse::Encoded; - - // Set the URI representing the encoding style. - mySoapFaultBinding->Encoding = "http://tempuri.org/stockquote"; - - // Set the URI representing the location of the specification - // for encoding of content not defined by 'Encoding' property'. - mySoapFaultBinding->Namespace = "http://tempuri.org/stockquote"; - - // Create a new instance of 'FaultBinding'. - FaultBinding^ myFaultBinding = gcnew FaultBinding; - myFaultBinding->Name = "AddFaultbinding"; - myFaultBinding->Extensions->Add( mySoapFaultBinding ); - - // Get existing 'OperationBinding' object. - OperationBinding^ myOperationBinding = myBinding->Operations[ 0 ]; - myOperationBinding->Faults->Add( myFaultBinding ); - - // Create a new wsdl file. - myServiceDescription->Write( myOutputWsdlFile ); - Console::WriteLine( "The new wsdl file created is : {0}", myOutputWsdlFile ); - Console::WriteLine( "Proxy could be created using command : wsdl {0}", myOutputWsdlFile ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Error occurred : {0}", e->Message ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapFaultBinding_ctor/CPP/soapfaultbinding_ctor.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapFaultBinding_ctor/CPP/soapfaultbinding_ctor.cpp deleted file mode 100644 index 0c69f5c1ea865..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapFaultBinding_ctor/CPP/soapfaultbinding_ctor.cpp +++ /dev/null @@ -1,110 +0,0 @@ -// System::Web::Services::Description.SoapBodyBinding::PartsString -// System::Web::Services::Description.SoapFaultBinding::ctor -// System::Web::Services::Description.SoapFaultBinding::Use -// System::Web::Services::Description.SoapFaultBinding::Encoding -// System::Web::Services::Description.SoapFaultBinding::NameSpace - -/* -The following example demonstrates the 'PartsString' property of 'SoapBodyBinding' class -and constructor, 'Encoding', 'NameSpace' and 'Use'properties of 'SoapFaultBinding' class. - -It creates an instance of 'ServiceDescription' class by reading an existing -wsdl file. Then it creates an instance of 'SoapFaultBinding' and adds it to -the collection object of 'Binding' class. It generates a new wsdl file where -the properties of 'SoapFaultBinding' objects are reflected and which could be -used for generating a proxy. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -int main() -{ - try - { - // Input wsdl file. - String^ myInputWsdlFile = "SoapFaultInput_cpp.wsdl"; - - // Output wsdl file. - String^ myOutputWsdlFile = "SoapFaultOutput_cpp.wsdl"; - - // Initialize an instance of a 'ServiceDescription' object. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( myInputWsdlFile ); - - // Get a SOAP binding object with binding name S"MyService1Soap". - Binding^ myBinding = myServiceDescription->Bindings[ "MyService1Soap" ]; - - // Create the 'OperationBinding' object for the 'SOAP' protocol. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "Add"; - - // Create the 'SoapOperationBinding' object for the 'SOAP' protocol. - SoapOperationBinding^ mySoapOperationBinding = gcnew SoapOperationBinding; - mySoapOperationBinding->SoapAction = "http://tempuri.org/Add"; - mySoapOperationBinding->Style = SoapBindingStyle::Document; - - // Add the 'SoapOperationBinding' object to 'OperationBinding' object. - myOperationBinding->Extensions->Add( mySoapOperationBinding ); - - // - // Create the 'InputBinding' object for the 'SOAP' protocol. - InputBinding^ myInput = gcnew InputBinding; - SoapBodyBinding^ mySoapBinding1 = gcnew SoapBodyBinding; - mySoapBinding1->PartsString = "parameters"; - mySoapBinding1->Use = SoapBindingUse::Literal; - myInput->Extensions->Add( mySoapBinding1 ); - - // Assign the 'InputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInput; - - // Create the 'OutputBinding' object' for the 'SOAP' protocol.. - OutputBinding^ myOutput = gcnew OutputBinding; - myOutput->Extensions->Add( mySoapBinding1 ); - - // Assign the 'OutPutBinding' to 'OperationBinding'. - myOperationBinding->Output = myOutput; - // - - // - // - // - // - // Create a new instance of 'SoapFaultBinding' class. - SoapFaultBinding^ mySoapFaultBinding = gcnew SoapFaultBinding; - - // Encode fault message using rules specified by 'Encoding' property. - mySoapFaultBinding->Use = SoapBindingUse::Encoded; - - // Set the URI representing the encoding style. - mySoapFaultBinding->Encoding = "http://tempuri.org/stockquote"; - - // Set the URI representing the location of the specification - // for encoding of content not defined by 'Encoding' property'. - mySoapFaultBinding->Namespace = "http://tempuri.org/stockquote"; - - // Create a new instance of 'FaultBinding'. - FaultBinding^ myFaultBinding = gcnew FaultBinding; - myFaultBinding->Name = "AddFaultbinding"; - myFaultBinding->Extensions->Add( mySoapFaultBinding ); - - // Get existing 'OperationBinding' object. - myOperationBinding->Faults->Add( myFaultBinding ); - myBinding->Operations->Add( myOperationBinding ); - - // - // - // - // - // Create a new wsdl file. - myServiceDescription->Write( myOutputWsdlFile ); - Console::WriteLine( "The new wsdl file created is : {0}", myOutputWsdlFile ); - Console::WriteLine( "Proxy could be created using command : wsdl {0}", myOutputWsdlFile ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Error occurred : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapFormatter Example/CPP/soapformatter.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapFormatter Example/CPP/soapformatter.cpp deleted file mode 100644 index 8a4e741d33b6d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapFormatter Example/CPP/soapformatter.cpp +++ /dev/null @@ -1,90 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Collections; -using namespace System::Runtime::Serialization; -using namespace System::Runtime::Serialization::Formatters::Soap; -void Serialize() -{ - - // Create a hashtable of values that will eventually be serialized. - Hashtable^ addresses = gcnew Hashtable; - addresses->Add( "Jeff", "123 Main Street, Redmond, WA 98052" ); - addresses->Add( "Fred", "987 Pine Road, Phila., PA 19116" ); - addresses->Add( "Mary", "PO Box 112233, Palo Alto, CA 94301" ); - - // To serialize the hashtable (and its keys/values), - // you must first open a stream for writing. - // We will use a file stream here. - FileStream^ fs = gcnew FileStream( "DataFile.soap",FileMode::Create ); - - // Construct a SoapFormatter and use it - // to serialize the data to the stream. - SoapFormatter^ formatter = gcnew SoapFormatter; - try - { - formatter->Serialize( fs, addresses ); - } - catch ( SerializationException^ e ) - { - Console::WriteLine( "Failed to serialize. Reason: {0}", e->Message ); - throw; - } - finally - { - fs->Close(); - } - -} - -void Deserialize() -{ - - // Declare the hashtable reference. - Hashtable^ addresses = nullptr; - - // Open the file containing the data that we want to deserialize. - FileStream^ fs = gcnew FileStream( "DataFile.soap",FileMode::Open ); - try - { - SoapFormatter^ formatter = gcnew SoapFormatter; - - // Deserialize the hashtable from the file and - // assign the reference to our local variable. - addresses = dynamic_cast(formatter->Deserialize( fs )); - } - catch ( SerializationException^ e ) - { - Console::WriteLine( "Failed to deserialize. Reason: {0}", e->Message ); - throw; - } - finally - { - fs->Close(); - } - - - // To prove that the table deserialized correctly, - // display the keys/values to the console. - IEnumerator^ myEnum = addresses->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - DictionaryEntry^ de = safe_cast(myEnum->Current); - Console::WriteLine( " {0} lives at {1}.", de->Key, de->Value ); - } -} - - -[STAThread] -int main() -{ - Serialize(); - Deserialize(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderBinding/CPP/soapheaderbinding.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderBinding/CPP/soapheaderbinding.cpp deleted file mode 100644 index ff5d56ef650b2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderBinding/CPP/soapheaderbinding.cpp +++ /dev/null @@ -1,67 +0,0 @@ -// System::Web::Services::Description.SoapHeaderBinding - -/* -The following example demonstrates the class 'SoapHeaderBinding'. -It takes as input a wsdl file. By using the 'Read' method -of 'ServiceDescription' class it gets a 'ServiceDescription' object. -It uses the SOAP protocol related classes and creates 'Binding' element -of 'SOAP' protocol which are then added to the 'ServiceDescription' object. -An output wsdl file is generated from 'ServiceDescription' object which -could be used for generating a proxy. - -*/ - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "SoapHeaderBindingInput_cpp.wsdl" ); - Binding^ myBinding = gcnew Binding; - myBinding->Name = "MyWebServiceSoap"; - myBinding->Type = gcnew XmlQualifiedName( "s0:MyWebServiceSoap" ); - SoapBinding^ mySoapBinding = gcnew SoapBinding; - mySoapBinding->Transport = "http://schemas.xmlsoap.org/soap/http"; - mySoapBinding->Style = SoapBindingStyle::Document; - myBinding->Extensions->Add( mySoapBinding ); - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "Hello"; - SoapOperationBinding^ mySoapOperationBinding = gcnew SoapOperationBinding; - mySoapOperationBinding->SoapAction = "http://tempuri.org/Hello"; - mySoapOperationBinding->Style = SoapBindingStyle::Document; - myOperationBinding->Extensions->Add( mySoapOperationBinding ); - - // Create InputBinding for operation for the 'SOAP' protocol. - InputBinding^ myInputBinding = gcnew InputBinding; - SoapBodyBinding^ mySoapBodyBinding = gcnew SoapBodyBinding; - mySoapBodyBinding->Use = SoapBindingUse::Literal; - myInputBinding->Extensions->Add( mySoapBodyBinding ); - SoapHeaderBinding^ mySoapHeaderBinding = gcnew SoapHeaderBinding; - mySoapHeaderBinding->Message = gcnew XmlQualifiedName( "s0:HelloMyHeader" ); - mySoapHeaderBinding->Part = "MyHeader"; - mySoapHeaderBinding->Use = SoapBindingUse::Literal; - - // Add mySoapHeaderBinding to 'myInputBinding' object. - myInputBinding->Extensions->Add( mySoapHeaderBinding ); - - // Create OutputBinding for operation for the 'SOAP' protocol. - OutputBinding^ myOutputBinding = gcnew OutputBinding; - myOutputBinding->Extensions->Add( mySoapBodyBinding ); - - // Add 'InputBinding' and 'OutputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInputBinding; - myOperationBinding->Output = myOutputBinding; - myBinding->Operations->Add( myOperationBinding ); - myServiceDescription->Bindings->Add( myBinding ); - myServiceDescription->Write( "SoapHeaderBindingOut_cpp.wsdl" ); - Console::WriteLine( "'SoapHeaderBindingOut_cpp.wsdl' file is generated." ); - Console::WriteLine( "Proxy could be created using 'wsdl SoapHeaderBindingOut_cpp.wsdl'." ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderBinding_MapToProperty/CPP/soapheaderbinding_maptoproperty.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderBinding_MapToProperty/CPP/soapheaderbinding_maptoproperty.cpp deleted file mode 100644 index 094bfdc30089f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderBinding_MapToProperty/CPP/soapheaderbinding_maptoproperty.cpp +++ /dev/null @@ -1,35 +0,0 @@ -// System::Web::Services::Description.SoapHeaderBinding::MapToProperty - -/* -The following example demonstrates the 'MapToProperty' property of class 'SoapHeaderBinding'. -It reads an existing wsdl file and gets 'SoapHeaderBinding' instance from it. -'MapToProperty' property of this instance is checked to see whether this instance -is mapped to a specific property in proxy class or not. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; - -int main() -{ - // - // Read from an existing wsdl file. - ServiceDescription^ myServiceDescription = ServiceDescription::Read( "MapToProperty_cpp.wsdl" ); - - // Get the existing binding - Binding^ myBinding = myServiceDescription->Bindings[ "MyWebServiceSoap" ]; - OperationBinding^ myOperationBinding = (OperationBinding^)(myBinding->Operations[ 0 ]); - InputBinding^ myInputBinding = myOperationBinding->Input; - - // Get the 'SoapHeaderBinding' instance from 'myInputBinding'. - SoapHeaderBinding^ mySoapHeaderBinding = (SoapHeaderBinding^)(myInputBinding->Extensions[ 1 ]); - if ( mySoapHeaderBinding->MapToProperty ) - Console::WriteLine( "'SoapHeaderBinding' instance is mapped to a specific property in proxy generated class" ); - else - Console::WriteLine( "'SoapHeaderBinding' instance is not mapped to a specific property in proxy generated class" ); - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderBinding_Use/CPP/soapheaderbinding_use.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderBinding_Use/CPP/soapheaderbinding_use.cpp deleted file mode 100644 index 0223ff8c50053..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderBinding_Use/CPP/soapheaderbinding_use.cpp +++ /dev/null @@ -1,87 +0,0 @@ -// System::Web::Services::Description.SoapHeaderBinding::ctor -// System::Web::Services::Description.SoapHeaderBinding::Message -// System::Web::Services::Description.SoapHeaderBinding::Part -// System::Web::Services::Description.SoapHeaderBinding::Use - -/* -The following example demonstrates the constructor, 'Message' , 'Part' -and 'Use' properties of the class 'SoapHeaderBinding'. -It takes as input a wsdl file. The binding element corresponding to -SOAP protocol is removed from the input file. By using the 'Read' method -of 'ServiceDescription' class it gets a 'ServiceDescription' Object*. -It uses the SOAP protocol related classes and creates 'Binding' element -of 'SOAP' protocol which are then added to the 'ServiceDescription' Object*. -An output wsdl file is generated from 'ServiceDescription' Object* which -could be used for generating a proxy. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Web::Services::Description; -using namespace System::Xml; - -int main() -{ - ServiceDescription^ myServiceDescription = - ServiceDescription::Read( "SoapHeaderBindingInput_cpp.wsdl" ); - Binding^ myBinding = gcnew Binding; - myBinding->Name = "MyWebServiceSoap"; - myBinding->Type = gcnew XmlQualifiedName( "s0:MyWebServiceSoap" ); - - SoapBinding^ mySoapBinding = gcnew SoapBinding; - mySoapBinding->Transport = "http://schemas.xmlsoap.org/soap/http"; - mySoapBinding->Style = SoapBindingStyle::Document; - myBinding->Extensions->Add( mySoapBinding ); - - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "Hello"; - - SoapOperationBinding^ mySoapOperationBinding = - gcnew SoapOperationBinding; - mySoapOperationBinding->SoapAction = "http://tempuri.org/Hello"; - mySoapOperationBinding->Style = SoapBindingStyle::Document; - myOperationBinding->Extensions->Add( mySoapOperationBinding ); - - // Create InputBinding for operation for the 'SOAP' protocol. - InputBinding^ myInputBinding = gcnew InputBinding; - SoapBodyBinding^ mySoapBodyBinding = gcnew SoapBodyBinding; - mySoapBodyBinding->Use = SoapBindingUse::Literal; - myInputBinding->Extensions->Add( mySoapBodyBinding ); - -// -// -// -// - SoapHeaderBinding^ mySoapHeaderBinding = gcnew SoapHeaderBinding; - // Set the Message within the XML Web service to which the - // 'SoapHeaderBinding' applies. - mySoapHeaderBinding->Message = - gcnew XmlQualifiedName( "s0:HelloMyHeader" ); - mySoapHeaderBinding->Part = "MyHeader"; - mySoapHeaderBinding->Use = SoapBindingUse::Literal; - // Add mySoapHeaderBinding to the 'myInputBinding' object. - myInputBinding->Extensions->Add( mySoapHeaderBinding ); -// -// -// -// - - // Create OutputBinding for operation for the 'SOAP' protocol. - OutputBinding^ myOutputBinding = gcnew OutputBinding; - myOutputBinding->Extensions->Add( mySoapBodyBinding ); - - // Add 'InputBinding' and 'OutputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInputBinding; - myOperationBinding->Output = myOutputBinding; - myBinding->Operations->Add( myOperationBinding ); - - myServiceDescription->Bindings->Add( myBinding ); - myServiceDescription->Write( "SoapHeaderBindingOut_cpp.wsdl" ); - Console::WriteLine( "'SoapHeaderBindingOut_cpp.wsdl' file is generated." ); - Console::WriteLine( "Proxy could be created using " + - "'wsdl SoapHeaderBindingOut_cpp.wsdl'." ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderCollection/CPP/SoapHeaderCollection.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderCollection/CPP/SoapHeaderCollection.cpp deleted file mode 100644 index c751b8d263148..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderCollection/CPP/SoapHeaderCollection.cpp +++ /dev/null @@ -1,257 +0,0 @@ -// System.Web.Services.Protocols.SoapHeaderCollection -// System.Web.Services.Protocols.SoapHeaderCollection.SoapHeaderCollection() -// System.Web.Services.Protocols.SoapHeaderCollection.Add(SoapHeader) -// System.Web.Services.Protocols.SoapHeaderCollection.Insert(int, SoapHeader) -// System.Web.Services.Protocols.SoapHeaderCollection.CopyTo(SoapHeader[], int) -// System.Web.Services.Protocols.SoapHeaderDirection.In - -/* - The following example demonstrates various members of the - SoapHeaderCollection class and the In member of the SoapHeaderDirection - enumeration. The program extends the SoapExtension class to create a - class that is used to log the SOAP messages transferred for an XML Web - service method invocation. Whenever this method is invoked on the client - side, all the SOAP message that are transfered both from the client and - the server are written to a log file. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -ref class MySoapExtension; - -// A SoapExtensionAttribute that can be associated with an -// XML Web service method. -[AttributeUsage(AttributeTargets::Method)] -public ref class MySoapExtensionAttribute: public SoapExtensionAttribute -{ -private: - String^ myFilename; - int myPriority; - -public: - - // Set the name of the log file where SOAP messages will be stored. - MySoapExtensionAttribute() - : SoapExtensionAttribute() - { - myFilename = "C:\\logClient.txt"; - } - - property Type^ ExtensionType - { - // Return the type of MySoapExtension. - virtual Type^ get() override - { - return MySoapExtension::typeid; - } - } - - property int Priority - { - // User can set priority of the SoapExtension. - virtual int get() override - { - return myPriority; - } - - virtual void set( int value ) override - { - myPriority = value; - } - } - - property String^ Filename - { - String^ get() - { - return myFilename; - } - - void set( String^ value ) - { - myFilename = value; - } - } -}; - -public ref class MySoapHeader: public SoapHeader -{ -public: - String^ text; -}; - -// -[System::Web::Services::WebServiceBindingAttribute(Name="MathSvcSoap", - Namespace="http://tempuri.org/")] -public ref class MathSvc: public System::Web::Services::Protocols::SoapHttpClientProtocol -{ - // -public: - array^ mySoapHeaders; - - [SoapHeaderAttribute("mySoapHeaders", - Direction=SoapHeaderDirection::In)] - [System::Web::Services::Protocols::SoapDocumentMethodAttribute( - "http://tempuri.org/Add", - Use=System::Web::Services::Description::SoapBindingUse::Literal, - ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - [MySoapExtensionAttribute] - Single Add( Single xValue, Single yValue ) - { - // - SoapHeaderCollection^ mySoapHeaderCollection = gcnew SoapHeaderCollection; - MySoapHeader^ mySoapHeader; - mySoapHeader = gcnew MySoapHeader; - mySoapHeader->text = "This is the first SOAP header"; - mySoapHeaderCollection->Add( mySoapHeader ); - // - - // - mySoapHeader = gcnew MySoapHeader; - mySoapHeader->text = "This is the second SOAP header"; - mySoapHeaderCollection->Add( mySoapHeader ); - // - - // - mySoapHeader = gcnew MySoapHeader; - mySoapHeader->text = "This header is inserted before the first header"; - mySoapHeaderCollection->Insert( 0, mySoapHeader ); - // - - // - mySoapHeaders = gcnew array(mySoapHeaderCollection->Count); - mySoapHeaderCollection->CopyTo( mySoapHeaders, 0 ); - // - - array^ temp0 = {xValue,yValue}; - array^ results = this->Invoke( "Add", temp0 ); - return ( (Single)( results[ 0 ] ) ); - } - // - - [System::Diagnostics::DebuggerStepThroughAttribute] - MathSvc() - { - this->Url = "http://localhost/MathSvc_SoapHeaderCollection.cs.asmx"; - } - - System::IAsyncResult^ BeginAdd( Single xValue, - Single yValue, System::AsyncCallback^ callback, Object^ asyncState ) - { - array^ temp1 = {xValue,yValue}; - return this->BeginInvoke( "Add", temp1, callback, asyncState ); - } - - Single EndAdd( System::IAsyncResult^ asyncResult ) - { - array^ results = this->EndInvoke( asyncResult ); - return ( (Single)( results[ 0 ] ) ); - } -}; -// - -public ref class MySoapExtension: public SoapExtension -{ -private: - Stream^ oldStream; - Stream^ newStream; - String^ filename; - -public: - // Return the file name that is to log the SOAP messages. - virtual Object^ GetInitializer( LogicalMethodInfo^ /*methodInfo*/, - SoapExtensionAttribute^ attribute ) override - { - return ( (MySoapExtensionAttribute^)( attribute ) )->Filename; - } - - // Return the file name that is to log the SOAP messages. - virtual Object^ GetInitializer( Type^ filename ) override - { - return (Type^)( filename ); - } - - // Save the name of the log file that will save the SOAP messages. - virtual void Initialize( Object^ initializer ) override - { - filename = (String^)( initializer ); - } - - // Process the SOAP message received and write it to the log file. - virtual void ProcessMessage( SoapMessage^ message ) override - { - switch ( message->Stage ) - { - case SoapMessageStage::BeforeSerialize: - break; - case SoapMessageStage::AfterSerialize: - WriteOutput( (SoapClientMessage^)( message ) ); - break; - case SoapMessageStage::BeforeDeserialize: - WriteInput( (SoapClientMessage^)( message ) ); - break; - case SoapMessageStage::AfterDeserialize: - break; - default: - throw gcnew Exception( "invalid stage" ); - } - } - - // Write the contents of the outgoing SOAP message to the log file. - void WriteOutput( SoapClientMessage^ /*message*/ ) - { - newStream->Position = 0; - FileStream^ myFileStream = - gcnew FileStream( filename, FileMode::Append, FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->WriteLine( "================================== Request at {0}", - DateTime::Now ); - myStreamWriter->Flush(); - Copy( newStream, myFileStream ); - myStreamWriter->Close(); - myFileStream->Close(); - newStream->Position = 0; - Copy( newStream, oldStream ); - } - - // Write the contents of the incoming SOAP message to the log file. - void WriteInput( SoapClientMessage^ /*message*/ ) - { - Copy( oldStream, newStream ); - FileStream^ myFileStream = - gcnew FileStream( filename, FileMode::Append, FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->WriteLine( "---------------------------------- Response at {0}", - DateTime::Now ); - myStreamWriter->Flush(); - newStream->Position = 0; - Copy( newStream, myFileStream ); - myStreamWriter->Close(); - myFileStream->Close(); - newStream->Position = 0; - } - - // Return a new MemoryStream for SOAP processing. - virtual Stream^ ChainStream( Stream^ stream ) override - { - oldStream = stream; - newStream = gcnew MemoryStream; - return newStream; - } - - // Utility method to copy the contents of one stream to another. - void Copy( Stream^ fromStream, Stream^ toStream ) - { - TextReader^ myTextReader = gcnew StreamReader( fromStream ); - TextWriter^ myTextWriter = gcnew StreamWriter( toStream ); - myTextWriter->WriteLine( myTextReader->ReadToEnd() ); - myTextWriter->Flush(); - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderCollection/CPP/SvcClient_SoapHeaderCollection.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderCollection/CPP/SvcClient_SoapHeaderCollection.cpp deleted file mode 100644 index a936611b24237..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderCollection/CPP/SvcClient_SoapHeaderCollection.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - This program is used as a client of the client proxy class. -*/ - -#using - -using namespace System; - -public ref class SvcClient -{ -public: - static void Main() - { - } -}; \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderCollection_Contains/CPP/SoapHeaderCollection_Contains.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderCollection_Contains/CPP/SoapHeaderCollection_Contains.cpp deleted file mode 100644 index fd58130e9f37d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeaderCollection_Contains/CPP/SoapHeaderCollection_Contains.cpp +++ /dev/null @@ -1,253 +0,0 @@ -// System.Web.Services.Protocols.SoapHeaderCollection.Contains(SoapHeader); System.Web.Services.Protocols.SoapHeaderCollection.IndexOf(); System.Web.Services.Protocols.SoapHeaderCollection.Item; System.Web.Services.Protocols.SoapHeaderCollection.Remove(SoapHeader) - -/* -The following example demonstrates the methods 'Contains','IndexOf' and -'Remove' and the property 'Item' of the 'SoapHeaderCollection' class. The -program extends the 'SoapExtension' class to create a class that is -used to log the SOAP messages transferred for a web service method -invocation. Whenever this method is invoked on the client side -all the SOAP message that get transfered both from the client -and the server are written into a log file. -*/ - -#using -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; -using namespace System::Xml; - -ref class MySoapExtension; - -// A 'SoapExtensionAttribute' that can be associated with web service method. - -[AttributeUsage(AttributeTargets::Method)] -public ref class MySoapExtensionAttribute: public SoapExtensionAttribute -{ -private: - String^ myFilename; - int myPriority; - -public: - - // Set the name of the log file were SOAP messages will be stored. - MySoapExtensionAttribute() - : SoapExtensionAttribute() - { - myFilename = "C:\\logClient.txt"; - } - - property Type^ ExtensionType - { - // Return the type of 'MySoapExtension' class. - virtual Type^ get() override - { - return MySoapExtension::typeid; - } - } - - property int Priority - { - // User can set priority of the 'SoapExtension'. - virtual int get() override - { - return myPriority; - } - - virtual void set( int value ) override - { - myPriority = value; - } - } - - property String^ Filename - { - String^ get() - { - return myFilename; - } - - void set( String^ value ) - { - myFilename = value; - } - - } - -}; - -public ref class MySoapHeader: public SoapHeader -{ -public: - String^ Text; -}; - -[System::Web::Services::WebServiceBindingAttribute(Name="MathSvcSoap",Namespace="http://tempuri.org/")] -public ref class MathService: public System::Web::Services::Protocols::SoapHttpClientProtocol -{ -public: - array^mySoapHeaders; - - [SoapHeaderAttribute("mySoapHeaders",Direction=SoapHeaderDirection::In,Required=false)] - [System::Web::Services::Protocols::SoapDocumentMethodAttribute("http://tempuri.org/Add", - Use=System::Web::Services::Description::SoapBindingUse::Literal, - ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - [MySoapExtensionAttribute] - Single Add( Single xValue, Single yValue ) - { - SoapHeaderCollection^ mySoapHeaderCollection = gcnew SoapHeaderCollection; - MySoapHeader^ myFirstSoapHeader; - myFirstSoapHeader = gcnew MySoapHeader; - myFirstSoapHeader->Text = "This is the first soap header"; - mySoapHeaderCollection->Add( myFirstSoapHeader ); - MySoapHeader^ mySecondSoapHeader = gcnew MySoapHeader; - mySecondSoapHeader->Text = "This is the second soap header"; - mySoapHeaderCollection->Add( mySecondSoapHeader ); - - // - // Check to see whether the collection contains mySecondSoapHeader. - if ( mySoapHeaderCollection->Contains( mySecondSoapHeader ) ) - { - // Get the index of mySecondSoapHeader from the collection. - Console::WriteLine( "Index of mySecondSoapHeader: {0}", mySoapHeaderCollection->IndexOf( mySecondSoapHeader ) ); - - // Get the SoapHeader from the collection. - MySoapHeader^ mySoapHeader1 = dynamic_cast(mySoapHeaderCollection[ mySoapHeaderCollection->IndexOf( mySecondSoapHeader ) ]); - Console::WriteLine( "SoapHeader retrieved from the collection: {0}", mySoapHeader1 ); - - // Remove a SoapHeader from the collection. - mySoapHeaderCollection->Remove( mySoapHeader1 ); - Console::WriteLine( "Number of items after removal: {0}", mySoapHeaderCollection->Count ); - } - else - Console::WriteLine( "mySoapHeaderCollection does not contain mySecondSoapHeader." ); - // - - mySoapHeaders = gcnew array(mySoapHeaderCollection->Count); - mySoapHeaderCollection->CopyTo( mySoapHeaders, 0 ); - array^temp0 = {xValue,yValue}; - array^results = this->Invoke( "Add", temp0 ); - return safe_cast(results[ 0 ]); - } - - [System::Diagnostics::DebuggerStepThroughAttribute] - MathService() - { - this->Url = "http://localhost/MathService_SoapHeaderCollection.cs.asmx"; - } - - System::IAsyncResult^ BeginAdd( Single xValue, Single yValue, System::AsyncCallback^ callback, Object^ asyncState ) - { - array^temp1 = {xValue,yValue}; - return this->BeginInvoke( "Add", temp1, callback, asyncState ); - } - - Single EndAdd( System::IAsyncResult^ asyncResult ) - { - array^results = this->EndInvoke( asyncResult ); - return safe_cast(results[ 0 ]); - } - -}; - -public ref class MySoapExtension: public SoapExtension -{ -private: - Stream^ oldStream; - Stream^ newStream; - String^ myFilename; - -public: - - // Return the filename that is to log the SOAP messages. - virtual Object^ GetInitializer( LogicalMethodInfo^ /*methodInfo*/, SoapExtensionAttribute^ myAttribute ) override - { - return (dynamic_cast(myAttribute))->Filename; - } - - // Return the filename that is to log the SOAP messages. - virtual Object^ GetInitializer( Type^ myFilename ) override - { - return dynamic_cast(myFilename); - } - - // Save the name of the log file that shall save the SOAP messages. - virtual void Initialize( Object^ initializer ) override - { - myFilename = dynamic_cast(initializer); - } - - // Process the SOAP message received and write to log file. - virtual void ProcessMessage( SoapMessage^ message ) override - { - switch ( message->Stage ) - { - case SoapMessageStage::BeforeSerialize: - break; - - case SoapMessageStage::AfterSerialize: - WriteOutput( dynamic_cast(message) ); - break; - - case SoapMessageStage::BeforeDeserialize: - WriteInput( dynamic_cast(message) ); - break; - - case SoapMessageStage::AfterDeserialize: - break; - - default: - throw gcnew Exception( "invalid stage" ); - } - } - - // Write the contents of the outgoing SOAP message to the log file. - void WriteOutput( SoapClientMessage^ /*message*/ ) - { - newStream->Position = 0; - FileStream^ myFileStream = gcnew FileStream( myFilename,FileMode::Append,FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->WriteLine( "================================== Request at {0}", DateTime::Now ); - myStreamWriter->Flush(); - Copy( newStream, myFileStream ); - myStreamWriter->Close(); - myFileStream->Close(); - newStream->Position = 0; - Copy( newStream, oldStream ); - } - - // Write the contents of the incoming SOAP message to the log file. - void WriteInput( SoapClientMessage^ /*message*/ ) - { - Copy( oldStream, newStream ); - FileStream^ myFileStream = gcnew FileStream( myFilename,FileMode::Append,FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->WriteLine( "---------------------------------- Response at {0}", DateTime::Now ); - myStreamWriter->Flush(); - newStream->Position = 0; - Copy( newStream, myFileStream ); - myStreamWriter->Close(); - myFileStream->Close(); - newStream->Position = 0; - } - - // Return a new 'MemoryStream' instance for SOAP processing. - virtual Stream^ ChainStream( Stream^ myStream ) override - { - oldStream = myStream; - newStream = gcnew MemoryStream; - return newStream; - } - - // Utility method to copy the contents of one stream to another. - void Copy( Stream^ fromStream, Stream^ toStream ) - { - TextReader^ myTextReader = gcnew StreamReader( fromStream ); - TextWriter^ myTextWriter = gcnew StreamWriter( toStream ); - myTextWriter->WriteLine( myTextReader->ReadToEnd() ); - myTextWriter->Flush(); - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeader_EncodedMustUnderstand/CPP/soapheader_encodedmustunderstand.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeader_EncodedMustUnderstand/CPP/soapheader_encodedmustunderstand.cpp deleted file mode 100644 index fa98d114ffe44..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHeader_EncodedMustUnderstand/CPP/soapheader_encodedmustunderstand.cpp +++ /dev/null @@ -1,53 +0,0 @@ - - -// System.Web.Services.Protocols.SoapHeader.EncodedMustUnderstand -/* -This program demonstrates the 'EncodedMustUnderstand' property of -the 'SoapHeader' class. This example calls two webservice methods, -namely 'WebMethod1' for which the property 'DidUnderstand' is set -to true and 'WebMethod2' for which the property 'DidUnderstand' -is set to false. The property 'EncodedMustUnderstand' is set to '1' -for the client soapheader. The client calls the method 'WebMethod2' -whose 'DidUnderstand' property is set to false and hence a 'SoapHeaderException' -is thrown. -*/ -#using -#using -#using -#using - -using namespace System; - -int main() -{ - try - { - // - // MyHeader class is derived from the SoapHeader class. - MyHeader ^ customHeader = gcnew MyHeader; - customHeader->MyValue = "Header value for MyValue"; - - // Set the EncodedMustUnderstand property to true. - customHeader->EncodedMustUnderstand = "1"; - WebService_SoapHeader_EncodedMustUnderstand ^ myWebService = gcnew WebService_SoapHeader_EncodedMustUnderstand; - myWebService->myHeader1 = customHeader; - String^ results = myWebService->MyWebMethod1(); - Console::WriteLine( results ); - try - { - results = myWebService->MyWebMethod2(); - } - catch ( Exception^ myException ) - { - Console::WriteLine( "Exception raised in MyWebMethod2." ); - Console::WriteLine( "Message: {0}", myException->Message ); - } - // - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!" ); - Console::WriteLine( "Source: {0}", e->Source ); - Console::WriteLine( "Message: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHttpClientProtocol.Discover Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapHttpClientProtocol.Discover Example/CPP/source.cpp deleted file mode 100644 index 6553b346e86e4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapHttpClientProtocol.Discover Example/CPP/source.cpp +++ /dev/null @@ -1,60 +0,0 @@ - - -// -#using -#using -#using - -using namespace System::Diagnostics; -using namespace System::Xml::Serialization; -using namespace System; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -namespace MyMath -{ - - [System::Web::Services::WebServiceBindingAttribute(Name="MathSoap",Namespace="http://tempuri.org/")] - public ref class Math: public System::Web::Services::Protocols::SoapHttpClientProtocol - { - public: - - [System::Diagnostics::DebuggerStepThroughAttribute] - Math() - { - this->Url = "http://www.contoso.com/math.asmx"; - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - [System::Web::Services::Protocols::SoapDocumentMethodAttribute("http://tempuri.org/Add", - Use=System::Web::Services::Description::SoapBindingUse::Literal, - ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - int Add( int num1, int num2 ) - { - array^temp0 = {num1,num2}; - array^results = this->Invoke( "Add", temp0 ); - return *dynamic_cast(results[ 0 ]); - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - System::IAsyncResult^ BeginAdd( int num1, int num2, System::AsyncCallback^ callback, Object^ asyncState ) - { - array^temp1 = {num1,num2}; - return this->BeginInvoke( "Add", temp1, callback, asyncState ); - } - - - [System::Diagnostics::DebuggerStepThroughAttribute] - int EndAdd( System::IAsyncResult^ asyncResult ) - { - array^results = this->EndInvoke( asyncResult ); - return *dynamic_cast(results[ 0 ]); - } - - }; - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessage/CPP/SoapMessage.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessage/CPP/SoapMessage.cpp deleted file mode 100644 index c2b34429787bf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessage/CPP/SoapMessage.cpp +++ /dev/null @@ -1,322 +0,0 @@ -// System.Web.Services.Protocols.SoapMessage -// System.Web.Services.Protocols.SoapMessage.Action -// System.Web.Services.Protocols.SoapMessage.ContentType -// System.Web.Services.Protocols.SoapMessage.OneWay -// System.Web.Services.Protocols.SoapMessage.Url -// System.Web.Services.Protocols.SoapMessage.GetInParameterValue(int) -// System.Web.Services.Protocols.SoapMessage.MethodInfo -// System.Web.Services.Protocols.SoapMessage.GetOutParameterValue(int) -// System.Web.Services.Protocols.SoapMessage.GetReturnValue() - -/* -The following example demonstrates various members of the SoapMessage -class. The program extends the SoapExtension class to create a class -that is used to log the SOAP messages transferred for an XML Web service -method invocation. Whenever this method is invoked on the client side, -all the SOAP messages that get transfered both from the client and the -server are written into a log file. -*/ - -#using -#using - -using namespace System::Runtime::InteropServices; -using namespace System; -using namespace System::IO; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -ref class MySoapExtension; - -// A SoapExtensionAttribute that can be associated with an XML -// Web service method. -[AttributeUsage(AttributeTargets::Method)] -public ref class MySoapExtensionAttribute: public SoapExtensionAttribute -{ -private: - String^ myFilename; - int myPriority; - -public: - // Set the name of the log file where SOAP messages will be stored. - MySoapExtensionAttribute() : SoapExtensionAttribute() - { - myFilename = "C:\\logClient.txt"; - } - - property Type^ ExtensionType - { - // Return the type of MySoapExtension. - virtual Type^ get() override - { - return MySoapExtension::typeid; - } - } - - property int Priority - { - // User can set priority of the SoapExtension. - virtual int get() override - { - return myPriority; - } - virtual void set( int value ) override - { - myPriority = value; - } - } - - property String^ Filename - { - String^ get() - { - return myFilename; - } - void set( String^ value ) - { - myFilename = value; - } - } -}; - -public ref class MySoapHeader: public SoapHeader -{ -public: - String^ text; -}; - -[System::Web::Services::WebServiceBindingAttribute(Name="MathSvcSoap", - Namespace="http://tempuri.org/")] -public ref class MathSvc: public System::Web::Services::Protocols::SoapHttpClientProtocol -{ -public: - MySoapHeader^ mySoapHeader; - - [SoapHeaderAttribute("mySoapHeader",Direction=SoapHeaderDirection::In)] - [System::Web::Services::Protocols::SoapDocumentMethodAttribute( - "http://tempuri.org/Add", - Use=System::Web::Services::Description::SoapBindingUse::Literal, - ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - [MySoapExtensionAttribute] - Single Add( Single xValue, Single yValue, - [System::Runtime::InteropServices::Out]interior_ptr returnValue ) - { - mySoapHeader = gcnew MySoapHeader; - mySoapHeader->text = "This is the first SOAP header"; - array^ temp0 = { xValue, yValue }; - array^ results = this->Invoke( "Add", temp0 ); - *returnValue = (Single)( results[ 1 ] ); - return (Single)( results[ 0 ] ); - } - - [System::Diagnostics::DebuggerStepThroughAttribute] - MathSvc() - { - this->Url = "http://localhost/MathSvc_SoapMessage.cs.asmx"; - } - - System::IAsyncResult^ BeginAdd( Single xValue, - Single yValue, System::AsyncCallback^ callback, - Object^ asyncState ) - { - array^ temp1 = { xValue, yValue }; - return this->BeginInvoke( "Add", - temp1, callback, asyncState ); - } - - Single EndAdd( System::IAsyncResult^ asyncResult, - [System::Runtime::InteropServices::Out]interior_ptr returnValue ) - { - array^ results = this->EndInvoke( asyncResult ); - *returnValue = (Single)( results[ 1 ] ); - return (Single)( results[ 0 ] ); - } -}; - -public ref class MySoapExtension: public SoapExtension -{ -private: - Stream^ oldStream; - Stream^ newStream; - String^ filename; - -public: - - // Return the file name that is to log the SOAP messages. - virtual Object^ GetInitializer( LogicalMethodInfo^ /*methodInfo*/, - SoapExtensionAttribute^ attribute ) override - { - return ( (MySoapExtensionAttribute^)( attribute ))->Filename; - } - - // Return the file name that is to log the SOAP messages. - virtual Object^ GetInitializer( Type^ filename ) override - { - return (Type^)( filename ); - } - - // Save the name of the log file that will save the SOAP messages. - virtual void Initialize( Object^ initializer ) override - { - filename = (String^)( initializer ); - } - -// - // Process the SOAP message received and write to log file. - virtual void ProcessMessage( SoapMessage^ message ) override - { - switch ( message->Stage ) - { - case SoapMessageStage::BeforeSerialize: - WriteOutputBeforeSerialize( message ); - break; - case SoapMessageStage::AfterSerialize: - WriteOutputAfterSerialize( message ); - break; - case SoapMessageStage::BeforeDeserialize: - WriteInputBeforeDeserialize( message ); - break; - case SoapMessageStage::AfterDeserialize: - WriteInputAfterDeserialize( message ); - break; - default: - throw gcnew Exception( "invalid stage" ); - } - } - - // Write the contents of the outgoing SOAP message to the log file. - void WriteOutputBeforeSerialize( SoapMessage^ message ) - { - FileStream^ myFileStream = - gcnew FileStream( filename, FileMode::Append, FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->WriteLine( "================================== Request at {0}", - DateTime::Now ); - - // - myStreamWriter->WriteLine( - "The method that has been invoked is: " ); - myStreamWriter->WriteLine( "\t{0}", message->MethodInfo ); - // - - // - myStreamWriter->WriteLine( "The contents of the SOAPAction HTTP header is:" ); - myStreamWriter->WriteLine( "\t{0}", message->Action ); - // - - // - myStreamWriter->WriteLine( "The contents of HTTP Content-type header is:" ); - myStreamWriter->WriteLine( "\t{0}", message->ContentType ); - // - - // - if ( message->OneWay ) - { - myStreamWriter->WriteLine( - "The method invoked on the client shall not wait" - + " till the server finishes" ); - } - else - { - myStreamWriter->WriteLine( - "The method invoked on the client shall wait" - + " till the server finishes" ); - } - // - - // - myStreamWriter->WriteLine( - "The site where the XML Web service is available is:" ); - myStreamWriter->WriteLine( "\t{0}", message->Url ); - // - - // - myStreamWriter->WriteLine( "The values of the in parameters are:" ); - myStreamWriter->WriteLine( - "Value of first in parameter: {0}", message->GetInParameterValue( 0 ) ); - myStreamWriter->WriteLine( - "Value of second in parameter: {0}", message->GetInParameterValue( 1 ) ); - // - - myStreamWriter->WriteLine(); - myStreamWriter->Flush(); - myStreamWriter->Close(); - myFileStream->Close(); - } - - // Write the contents of the incoming SOAP message to the log file. - void WriteInputAfterDeserialize( SoapMessage^ message ) - { - FileStream^ myFileStream = - gcnew FileStream( filename, FileMode::Append, FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->WriteLine(); - - // - myStreamWriter->WriteLine( "The values of the out parameter are:" ); - myStreamWriter->WriteLine( - "The value of the out parameter is: {0}", message->GetOutParameterValue( 0 ) ); - // - - // - myStreamWriter->WriteLine( "The values of the return parameter are:" ); - myStreamWriter->WriteLine( - "The value of the return parameter is: {0}", message->GetReturnValue() ); - // - - myStreamWriter->Flush(); - myStreamWriter->Close(); - myFileStream->Close(); - } - // - - // Write the contents of the outgoing SOAP message to the log file. - void WriteOutputAfterSerialize( SoapMessage^ /*message*/ ) - { - newStream->Position = 0; - FileStream^ myFileStream = - gcnew FileStream( filename, FileMode::Append, FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->Flush(); - Copy( newStream, myFileStream ); - myStreamWriter->Close(); - myFileStream->Close(); - newStream->Position = 0; - Copy( newStream, oldStream ); - } - - - // Write the contents of the incoming SOAP message to the log file. - void WriteInputBeforeDeserialize( SoapMessage^ /*message*/ ) - { - Copy( oldStream, newStream ); - FileStream^ myFileStream = - gcnew FileStream( filename, FileMode::Append, FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->WriteLine( "---------------------------------- Response at {0}", - DateTime::Now ); - myStreamWriter->Flush(); - newStream->Position = 0; - Copy( newStream, myFileStream ); - myStreamWriter->Close(); - myFileStream->Close(); - newStream->Position = 0; - } - - // Return a new MemoryStream for SOAP processing. - virtual Stream^ ChainStream( Stream^ stream ) override - { - oldStream = stream; - newStream = gcnew MemoryStream; - return newStream; - } - - // Utility method to copy the contents of one stream to another. - void Copy( Stream^ fromStream, Stream^ toStream ) - { - TextReader^ myTextReader = gcnew StreamReader( fromStream ); - TextWriter^ myTextWriter = gcnew StreamWriter( toStream ); - myTextWriter->WriteLine( myTextReader->ReadToEnd() ); - myTextWriter->Flush(); - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessage/CPP/SvcClient_SoapMessage.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessage/CPP/SvcClient_SoapMessage.cpp deleted file mode 100644 index a936611b24237..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessage/CPP/SvcClient_SoapMessage.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - This program is used as a client of the client proxy class. -*/ - -#using - -using namespace System; - -public ref class SvcClient -{ -public: - static void Main() - { - } -}; \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessageState/CPP/SoapMessageState.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessageState/CPP/SoapMessageState.cpp deleted file mode 100644 index f5ed2196e550e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessageState/CPP/SoapMessageState.cpp +++ /dev/null @@ -1,225 +0,0 @@ -// System.Web.Services.Protocols.SoapMessageState -// System.Web.Services.Protocols.SoapMessageState.AfterDeserialize -// System.Web.Services.Protocols.SoapMessageState.AfterSerialize -// System.Web.Services.Protocols.SoapMessageState.BeforeDeserialize -// System.Web.Services.Protocols.SoapMessageState.BeforeSerialize - -/* - The following example demonstrates the 'AfterDeserialize', - 'AfterSerialize', 'BeforeDeserialize' and 'BeforeSerialize' enum - members of the 'SoapMessageState' class. The program extends the - 'SoapExtension' class to create a class that is used to log the - SOAP messages transferred for a web service method invocation. - To associate this 'SoapExtension' class with the web service - method on the client proxy a class that extends from - 'SoapExtensionAttribute' is used. This 'SoapExtensionAttribute' is - applied to a client proxy method which is associated with a web - service method. Whenever this method is invoked on the client - side all the SOAP message that get transfered both from the client - and the server(which is hosting the web service) are written into - a log file. -*/ - -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -ref class MySoapExtension; - -// A 'SoapExtensionAttribute' that can be associated with web service method. -[AttributeUsage(AttributeTargets::Method)] -public ref class MySoapExtensionAttribute: public SoapExtensionAttribute -{ -private: - String^ myFilename; - int myPriority; - -public: - // Set the name of the log file where SOAP messages will be stored. - MySoapExtensionAttribute() : SoapExtensionAttribute() - { - myFilename = "C:\\logClient.txt"; - } - - property Type^ ExtensionType - { - // Return the type of 'MySoapExtension' class. - Type^ get() - { - return typeid; - } - } - - property int Priority - { - // User can set priority of the 'SoapExtension'. - int get() - { - return myPriority; - } - void set( int value ) - { - myPriority = value; - } - } - - property String^ Filename - { - String^ get() - { - return myFilename; - } - void set( String^ value ) - { - myFilename = value; - } - } -}; - -[System::Web::Services::WebServiceBindingAttribute(Name="MathSvcSoap",Namespace="http://tempuri.org/")] -public ref class MathSvc: public System::Web::Services::Protocols::SoapHttpClientProtocol -{ -public: - - [System::Diagnostics::DebuggerStepThroughAttribute] - MathSvc() - { - this->Url = "http://localhost/MathSvc_SoapMessageState.asmx"; - } - - [System::Web::Services::Protocols::SoapDocumentMethodAttribute("http://tempuri.org/Add",Use=System::Web::Services::Description::SoapBindingUse::Literal,ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - [MySoapExtensionAttribute] - Single Add( Single xValue, Single yValue ) - { - array^ temp0 = {xValue,yValue}; - array^ results = this->Invoke( "Add", temp0 ); - return (Single)( results[ 0 ] ); - } - - System::IAsyncResult^ BeginAdd( Single xValue, - Single yValue, - System::AsyncCallback^ callback, - Object^ asyncState ) - { - array^ temp1 = { xValue, yValue }; - return this->BeginInvoke( "Add", temp1, callback, asyncState ); - } - - Single EndAdd( System::IAsyncResult^ asyncResult ) - { - array^ results = this->EndInvoke( asyncResult ); - return (Single)( results[ 0 ] ); - } - -}; - -public ref class MySoapExtension: public SoapExtension -{ -private: - Stream^ oldStream; - Stream^ newStream; - String^ filename; - -public: - // Return the filename that is to log the SOAP messages. - Object^ GetInitializer( LogicalMethodInfo^ /*methodInfo*/, SoapExtensionAttribute^ attribute ) - { - return ( (MySoapExtensionAttribute^)( attribute ))->Filename; - } - - // Return the filename that is to log the SOAP messages. - Object^ GetInitializer( Type^ filename ) - { - return (Type^)( filename ); - } - - // Save the name of the log file that shall save the SOAP messages. - void Initialize( Object^ initializer ) - { - filename = (String^)( initializer ); - } - -// - // Process the SOAP message received and write to log file. - void ProcessMessage( SoapMessage^ message ) - { -// -// -// -// - switch ( message->Stage ) - { - case SoapMessageStage::BeforeSerialize: - break; - case SoapMessageStage::AfterSerialize: - WriteOutput( message ); - break; - case SoapMessageStage::BeforeDeserialize: - WriteInput( message ); - break; - case SoapMessageStage::AfterDeserialize: - break; - default: - throw gcnew Exception( "invalid stage" ); - } -// -// -// -// - } -// - - // Return a new 'MemoryStream' instance for SOAP processing. - Stream^ ChainStream( Stream^ stream ) - { - oldStream = stream; - newStream = gcnew MemoryStream; - return newStream; - } - - - // Write the contents of the outgoing SOAP message to the log file. - void WriteOutput( SoapMessage^ /*message*/ ) - { - newStream->Position = 0; - FileStream^ myFileStream = - gcnew FileStream( filename, FileMode::Append, FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->WriteLine( "================================== Request at {0}", - DateTime::Now ); - myStreamWriter->Flush(); - Copy( newStream, myFileStream ); - myFileStream->Close(); - newStream->Position = 0; - Copy( newStream, oldStream ); - } - - // Write the contents of the incoming SOAP message to the log file. - void WriteInput( SoapMessage^ /*message*/ ) - { - Copy( oldStream, newStream ); - FileStream^ myFileStream = - gcnew FileStream( filename, FileMode::Append, FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->WriteLine( "---------------------------------- Response at {0}", - DateTime::Now ); - myStreamWriter->Flush(); - newStream->Position = 0; - Copy( newStream, myFileStream ); - myFileStream->Close(); - newStream->Position = 0; - } - - // Utility method to copy the contents of one stream to another. - void Copy( Stream^ fromStream, Stream^ toStream ) - { - TextReader^ myTextReader = gcnew StreamReader( fromStream ); - TextWriter^ myTextWriter = gcnew StreamWriter( toStream ); - myTextWriter->WriteLine( myTextReader->ReadToEnd() ); - myTextWriter->Flush(); - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessageState/CPP/SvcClient_SoapMessageState.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessageState/CPP/SvcClient_SoapMessageState.cpp deleted file mode 100644 index 94a498bce1658..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessageState/CPP/SvcClient_SoapMessageState.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - This program is used as a client of the client proxy class. -*/ - -#using - -using namespace System; - -public class SvcClient -{ -public: - static void Main() - { - } -}; \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessage_Headers/CPP/SoapMessage_Headers.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessage_Headers/CPP/SoapMessage_Headers.cpp deleted file mode 100644 index 1748283456201..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessage_Headers/CPP/SoapMessage_Headers.cpp +++ /dev/null @@ -1,281 +0,0 @@ -// System.Web.Services.Protocols.SoapMessage.Headers -// System.Web.Services.Protocols.SoapMessage.Stream - -/* - The following example demonstrates the 'Headers' and 'Stream' properties - of the 'SoapMessage' class. The program extends the - 'SoapExtension' class to create a class that is used to log the - SOAP messages transferred for a web service method invocation. - Whenever this method is invoked on the client side all the SOAP - message that get transfered both from the client and the server - are written into a log file. -*/ - -#using -#using -#using - -using namespace System::Runtime::InteropServices; -using namespace System; -using namespace System::IO; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -ref class MySoapExtension; - -// A SoapExtensionAttribute that can be associated with an -// XML Web service method. -[AttributeUsage(AttributeTargets::Method)] -public ref class MySoapExtensionAttribute: public SoapExtensionAttribute -{ -private: - String^ myFilename; - int myPriority; - -public: - // Set the name of the log file where SOAP messages will be stored. - MySoapExtensionAttribute() : SoapExtensionAttribute() - { - myFilename = "C:\\logClient.txt"; - } - - property Type^ ExtensionType - { - // Return the type of MySoapExtension. - virtual Type^ get() override - { - return MySoapExtension::typeid; - } - } - - property int Priority - { - // User can set priority of the SoapExtension. - virtual int get() override - { - return myPriority; - } - virtual void set( int value ) override - { - myPriority = value; - } - } - - property String^ Filename - { - String^ get() - { - return myFilename; - } - void set( String^ value ) - { - myFilename = value; - } - } -}; - -public ref class MySoapHeader: public SoapHeader -{ -public: - String^ myText; -}; - -[System::Web::Services::WebServiceBindingAttribute(Name="MathSvcSoap", - Namespace="http://tempuri.org/")] -public ref class MathSvc: public System::Web::Services::Protocols::SoapHttpClientProtocol -{ -public: - MySoapHeader^ mySoapHeader; - - [SoapHeaderAttribute("mySoapHeader",Direction=SoapHeaderDirection::In)] - [System::Web::Services::Protocols::SoapDocumentMethodAttribute( - "http://tempuri.org/Add", - Use=System::Web::Services::Description::SoapBindingUse::Literal, - ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)] - [MySoapExtensionAttribute] - Single Add( Single xValue, - Single yValue, - [System::Runtime::InteropServices::Out]interior_ptr returnValue ) - { - mySoapHeader = gcnew MySoapHeader; - mySoapHeader->myText = "This is the first SOAP header"; - array^ temp0 = {xValue,yValue}; - array^ results = this->Invoke( "Add", temp0 ); - *returnValue = (Single)( results[ 1 ] ); - return (Single)( results[ 0 ] ); - } - - [System::Diagnostics::DebuggerStepThroughAttribute] - MathSvc() - { - this->Url = "http://localhost/SoapMessage_Headers.cs.asmx"; - } - - System::IAsyncResult^ BeginAdd( Single xValue, Single yValue, - System::AsyncCallback^ callback, Object^ asyncState ) - { - array^ temp1 = { xValue, yValue }; - return this->BeginInvoke( "Add", temp1, callback, asyncState ); - } - - Single EndAdd( System::IAsyncResult^ asyncResult, - [System::Runtime::InteropServices::Out]interior_ptr returnValue ) - { - array^ results = this->EndInvoke( asyncResult ); - *returnValue = (Single)( results[ 1 ] ); - return (Single)( results[ 0 ] ); - } -}; - -public ref class MySoapExtension: public SoapExtension -{ -private: - Stream^ myOldStream; - Stream^ myNewStream; - String^ myFileName; - -public: - // Return the filename that is to log the SOAP messages. - virtual Object^ GetInitializer( LogicalMethodInfo^ /*myMethodInfo*/, - SoapExtensionAttribute^ mySoapExtensionAttributeObject ) override - { - return ( (MySoapExtensionAttribute^)( mySoapExtensionAttributeObject ) )->Filename; - } - - // Return the filename that is to log the SOAP messages. - virtual Object^ GetInitializer( Type^ myFileName ) override - { - return (Type^)( myFileName ); - } - - // Save the name of the log file that shall save the SOAP messages. - virtual void Initialize( Object^ myInitializer ) override - { - myFileName = (String^)( myInitializer ); - } - - // Process the SOAP message received and write to log file. - virtual void ProcessMessage( SoapMessage^ myMessage ) override - { - switch ( myMessage->Stage ) - { - case SoapMessageStage::BeforeSerialize: - WriteOutputBeforeSerialize( myMessage ); - break; - case SoapMessageStage::AfterSerialize: - WriteOutputAfterSerialize( myMessage ); - break; - case SoapMessageStage::BeforeDeserialize: - WriteInputBeforeDeserialize( myMessage ); - break; - case SoapMessageStage::AfterDeserialize: - WriteInputAfterDeserialize( myMessage ); - break; - default: - throw gcnew Exception( "invalid stage" ); - } - } - - // - // Write the contents of the outgoing SOAP message to the log file. -public: - void WriteOutputBeforeSerialize( SoapMessage^ myMessage ) - { - FileStream^ myFileStream = gcnew FileStream( - myFileName, FileMode::Append, FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->WriteLine( - "================================== Request at {0}", DateTime::Now ); - - myStreamWriter->WriteLine( "The values of the in parameters are:" ); - myStreamWriter->WriteLine( "Value of first in parameter: {0}", - myMessage->GetInParameterValue( 0 ) ); - myStreamWriter->WriteLine( "Value of second in parameter: {0}", - myMessage->GetInParameterValue( 1 ) ); - - myStreamWriter->Write( "Number of headers for the current request: " ); - myStreamWriter->WriteLine( myMessage->Headers->Count ); - - myStreamWriter->WriteLine(); - myStreamWriter->Flush(); - myStreamWriter->Close(); - myFileStream->Close(); - } - // - - // Write the contents of the incoming SOAP message to the log file. - void WriteInputAfterDeserialize( SoapMessage^ myMessage ) - { - FileStream^ myFileStream = gcnew FileStream( - myFileName, FileMode::Append, FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->WriteLine(); - - myStreamWriter->WriteLine( "The values of the out parameter are:" ); - myStreamWriter->WriteLine( "The value of the out parameter is: {0}", - myMessage->GetOutParameterValue( 0 ) ); - - myStreamWriter->WriteLine( "The values of the return parameter are:" ); - myStreamWriter->WriteLine( "The value of the return parameter is: {0}", - myMessage->GetReturnValue() ); - - myStreamWriter->Flush(); - myStreamWriter->Close(); - myFileStream->Close(); - } - - // Write the contents of the outgoing SOAP message to the log file. - void WriteOutputAfterSerialize( SoapMessage^ /*myMessage*/ ) - { - myNewStream->Position = 0; - FileStream^ myFileStream = gcnew FileStream( - myFileName, FileMode::Append, FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->Flush(); - Copy( myNewStream, myFileStream ); - myStreamWriter->Close(); - myFileStream->Close(); - myNewStream->Position = 0; - Copy( myNewStream, myOldStream ); - } - - // - // Write the contents of the incoming SOAP message to the log file. -public: - void WriteInputBeforeDeserialize( SoapMessage^ myMessage ) - { - Copy( myOldStream, myNewStream ); - FileStream^ myFileStream = - gcnew FileStream( myFileName, FileMode::Append, FileAccess::Write ); - StreamWriter^ myStreamWriter = gcnew StreamWriter( myFileStream ); - myStreamWriter->WriteLine( - "---------------------------------- Response at {0}", DateTime::Now ); - Stream^ myStream = myMessage->Stream; - myStreamWriter->Write( "Length of data in the current response: " ); - myStreamWriter->WriteLine( myStream->Length ); - myStreamWriter->Flush(); - myNewStream->Position = 0; - Copy( myNewStream, myFileStream ); - myStreamWriter->Close(); - myFileStream->Close(); - myNewStream->Position = 0; - } - // - - // Return a new MemoryStream for SOAP processing. - virtual Stream^ ChainStream( Stream^ myStream ) override - { - myOldStream = myStream; - myNewStream = gcnew MemoryStream; - return myNewStream; - } - - // Utility method to copy the contents of one stream to another. - void Copy( Stream^ fromStream, Stream^ toStream ) - { - TextReader^ myTextReader = gcnew StreamReader( fromStream ); - TextWriter^ myTextWriter = gcnew StreamWriter( toStream ); - myTextWriter->WriteLine( myTextReader->ReadToEnd() ); - myTextWriter->Flush(); - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessage_Headers/CPP/SvcClient_SoapMessage_Headers.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessage_Headers/CPP/SvcClient_SoapMessage_Headers.cpp deleted file mode 100644 index 94a498bce1658..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapMessage_Headers/CPP/SvcClient_SoapMessage_Headers.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* - This program is used as a client of the client proxy class. -*/ - -#using - -using namespace System; - -public class SvcClient -{ -public: - static void Main() - { - } -}; \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapOperationBinding/CPP/soapoperationbinding.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapOperationBinding/CPP/soapoperationbinding.cpp deleted file mode 100644 index c0254af595f91..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapOperationBinding/CPP/soapoperationbinding.cpp +++ /dev/null @@ -1,104 +0,0 @@ - - -// System.Web.Services.Description.SoapBinding -// System.Web.Services.Description.SoapOperationBinding -// System.Web.Services.Description.SoapBodyBinding -// System.Web.Services.Description.SoapAddressBinding -// System.Web.Services.Description.SoapBinding.HttpTransport; -/* -The following example demonstrates the 'SoapBinding', 'SoapOperationBinding' , -'SoapBodyBinding' , SoapAddressBinding' classes and 'HttpTransport' field of 'SoapBinding' class. - -It takes a wsdl file which supports two protocols 'HttpGet' and 'HttpPost' as input. By using the -'Read' method of 'ServiceDescription' class it gets the 'ServiceDescription' object. It uses -the SOAP protocol related classes and creates 'Binding','Port' and 'PortType' elements of -'SOAP' protocol. It adds all the elements to the 'ServiceDescription' object. The 'ServiceDescription' -object creates another wsdl file which supports 'SOAP' also. This wsdl file is used to generate a proxy -which is used by the .aspx file. -*/ -// -// -// -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; -int main() -{ - ServiceDescription^ myDescription = ServiceDescription::Read( "AddNumbersInput_cs.wsdl" ); - - // Create a 'Binding' object for the 'SOAP' protocol. - Binding^ myBinding = gcnew Binding; - myBinding->Name = "Service1Soap"; - XmlQualifiedName^ qualifiedName = gcnew XmlQualifiedName( "s0:Service1Soap" ); - myBinding->Type = qualifiedName; - - // - SoapBinding^ mySoapBinding = gcnew SoapBinding; - mySoapBinding->Transport = SoapBinding::HttpTransport; - mySoapBinding->Style = SoapBindingStyle::Document; - // - - // Add the 'SoapBinding' object to the 'Binding' object. - myBinding->Extensions->Add( mySoapBinding ); - - // Create the 'OperationBinding' object for the 'SOAP' protocol. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "AddNumbers"; - - // Create the 'SoapOperationBinding' object for the 'SOAP' protocol. - SoapOperationBinding^ mySoapOperationBinding = gcnew SoapOperationBinding; - mySoapOperationBinding->SoapAction = "http://tempuri.org/AddNumbers"; - mySoapOperationBinding->Style = SoapBindingStyle::Document; - - // Add the 'SoapOperationBinding' object to 'OperationBinding' object. - myOperationBinding->Extensions->Add( mySoapOperationBinding ); - - // Create the 'InputBinding' object for the 'SOAP' protocol. - InputBinding^ myInput = gcnew InputBinding; - SoapBodyBinding^ mySoapBinding1 = gcnew SoapBodyBinding; - mySoapBinding1->Use = SoapBindingUse::Literal; - myInput->Extensions->Add( mySoapBinding1 ); - - // Assign the 'InputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInput; - - // Create the 'OutputBinding' object' for the 'SOAP' protocol.. - OutputBinding^ myOutput = gcnew OutputBinding; - myOutput->Extensions->Add( mySoapBinding1 ); - - // Assign the 'OutPutBinding' to 'OperationBinding'. - myOperationBinding->Output = myOutput; - - // Add the 'OperationBinding' to 'Binding'. - myBinding->Operations->Add( myOperationBinding ); - - // Add the 'Binding' to 'BindingCollection' of 'ServiceDescription'. - myDescription->Bindings->Add( myBinding ); - Port^ soapPort = gcnew Port; - soapPort->Name = "Service1Soap"; - soapPort->Binding = gcnew XmlQualifiedName( "s0:Service1Soap" ); - - // Create a 'SoapAddressBinding' object for the 'SOAP' protocol. - SoapAddressBinding^ mySoapAddressBinding = gcnew SoapAddressBinding; - mySoapAddressBinding->Location = "http://localhost/AddNumbers.cs.asmx"; - - // Add the 'SoapAddressBinding' to the 'Port'. - soapPort->Extensions->Add( mySoapAddressBinding ); - - // Add the 'Port' to 'PortCollection' of 'ServiceDescription'. - myDescription->Services[ 0 ]->Ports->Add( soapPort ); - - // Write the 'ServiceDescription' as a WSDL file. - myDescription->Write( "AddNumbersOut_cs.wsdl" ); - Console::WriteLine( " 'AddNumbersOut_cs.Wsdl' file was generated" ); -} -// -// -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SoapTypeAttribute Example/CPP/soaptype.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SoapTypeAttribute Example/CPP/soaptype.cpp deleted file mode 100644 index 1c316326d9cc1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SoapTypeAttribute Example/CPP/soaptype.cpp +++ /dev/null @@ -1,171 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -[SoapType("EmployeeType")] -public ref class Employee -{ -public: - String^ Name; -}; - - -// The SoapType is overridden when the -// SerializeOverride method is called. - -[SoapType("SoapGroupType","http://www.cohowinery.com")] -public ref class Group -{ -public: - String^ GroupName; - array^Employees; -}; - -public ref class Run -{ -public: - void SerializeOriginal( String^ filename ) - { - // Create an instance of the XmlSerializer class that - // can be used for serializing as a SOAP message. - XmlTypeMapping^ mapp = (gcnew SoapReflectionImporter)->ImportTypeMapping( Group::typeid ); - XmlSerializer^ mySerializer = gcnew XmlSerializer( mapp ); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an XML text writer. - XmlTextWriter^ xmlWriter = gcnew XmlTextWriter( writer ); - xmlWriter->Formatting = Formatting::Indented; - xmlWriter->Indentation = 2; - - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - // Set the Object* properties. - myGroup->GroupName = ".NET"; - Employee^ e1 = gcnew Employee; - e1->Name = "Pat"; - myGroup->Employees = gcnew array(1); - myGroup->Employees[ 0 ] = e1; - - // Write the root element. - xmlWriter->WriteStartElement( "root" ); - - // Serialize the class. - mySerializer->Serialize( xmlWriter, myGroup ); - - // Close the root tag. - xmlWriter->WriteEndElement(); - - // Close the XmlWriter. - xmlWriter->Close(); - - // Close the TextWriter. - writer->Close(); - } - - void SerializeOverride( String^ filename ) - { - // Create an instance of the XmlSerializer class that - // uses a SoapAttributeOverrides Object*. - XmlSerializer^ mySerializer = CreateOverrideSerializer(); - - // Writing the file requires a TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create an XML text writer. - XmlTextWriter^ xmlWriter = gcnew XmlTextWriter( writer ); - xmlWriter->Formatting = Formatting::Indented; - xmlWriter->Indentation = 2; - - // Create an instance of the class that will be serialized. - Group^ myGroup = gcnew Group; - - // Set the Object* properties. - myGroup->GroupName = ".NET"; - Employee^ e1 = gcnew Employee; - e1->Name = "Pat"; - myGroup->Employees = gcnew array(1); - myGroup->Employees[ 0 ] = e1; - - // Write the root element. - xmlWriter->WriteStartElement( "root" ); - - // Serialize the class. - mySerializer->Serialize( xmlWriter, myGroup ); - - // Close the root tag. - xmlWriter->WriteEndElement(); - - // Close the XmlWriter. - xmlWriter->Close(); - - // Close the TextWriter. - writer->Close(); - } - - void DeserializeObject( String^ filename ) - { - // Create an instance of the XmlSerializer class. - XmlSerializer^ mySerializer = CreateOverrideSerializer(); - - // Reading the file requires a TextReader. - TextReader^ reader = gcnew StreamReader( filename ); - - // Create an XML text reader. - XmlTextReader^ xmlReader = gcnew XmlTextReader( reader ); - xmlReader->ReadStartElement(); - - // Deserialize and cast the object. - Group^ myGroup; - myGroup = dynamic_cast(mySerializer->Deserialize( xmlReader )); - xmlReader->ReadEndElement(); - Console::WriteLine( "The GroupName is {0}", myGroup->GroupName ); - Console::WriteLine( "Look at the SoapType.xml and SoapType2.xml " - "files for the generated XML." ); - - // Close the readers. - xmlReader->Close(); - reader->Close(); - } - -private: - XmlSerializer^ CreateOverrideSerializer() - { - // Create and return an XmlSerializer instance used to - // and create SOAP messages. - SoapAttributeOverrides^ mySoapAttributeOverrides = gcnew SoapAttributeOverrides; - SoapAttributes^ soapAtts = gcnew SoapAttributes; - - // Override the SoapTypeAttribute. - SoapTypeAttribute^ soapType = gcnew SoapTypeAttribute; - soapType->TypeName = "Team"; - soapType->IncludeInSchema = false; - soapType->Namespace = "http://www.microsoft.com"; - soapAtts->SoapType = soapType; - mySoapAttributeOverrides->Add( Group::typeid, soapAtts ); - - // Create an XmlTypeMapping that is used to create an instance - // of the XmlSerializer. Then return the XmlSerializer Object*. - XmlTypeMapping^ myMapping = (gcnew SoapReflectionImporter( mySoapAttributeOverrides ))->ImportTypeMapping( Group::typeid ); - XmlSerializer^ ser = gcnew XmlSerializer( myMapping ); - return ser; - } -}; - -int main() -{ - Run^ test = gcnew Run; - test->SerializeOriginal( "SoapType.xml" ); - test->SerializeOverride( "SoapType2.xml" ); - test->DeserializeObject( "SoapType2.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SocketPermissionExample/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SocketPermissionExample/CPP/source.cpp deleted file mode 100644 index 252b39958805b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SocketPermissionExample/CPP/source.cpp +++ /dev/null @@ -1,122 +0,0 @@ -#using - -using namespace System; -using namespace System::Text; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Threading; -using namespace System::Security::Permissions; -using namespace System::Collections; - -void MySocketPermission() -{ -// -// - // Creates a SocketPermission restricting access to and from all URIs. - SocketPermission^ mySocketPermission1 = gcnew SocketPermission( PermissionState::None ); - - // The socket to which this permission will apply will allow connections from www.contoso.com. - mySocketPermission1->AddPermission( NetworkAccess::Accept, TransportType::Tcp, "www.contoso.com", 11000 ); - - // Creates a SocketPermission which will allow the target Socket to connect with www.southridgevideo.com. - SocketPermission^ mySocketPermission2 = gcnew SocketPermission( NetworkAccess::Connect,TransportType::Tcp, "www.southridgevideo.com",11002 ); - - // Creates a SocketPermission from the union of two SocketPermissions. - SocketPermission^ mySocketPermissionUnion = - (SocketPermission^)( mySocketPermission1->Union( mySocketPermission2 ) ); - - // Checks to see if the union was successfully created by using the IsSubsetOf method. - if ( mySocketPermission1->IsSubsetOf( mySocketPermissionUnion ) && - mySocketPermission2->IsSubsetOf( mySocketPermissionUnion ) ) - { - Console::WriteLine( "This union contains permissions from both mySocketPermission1 and mySocketPermission2" ); - - // Prints the allowable accept URIs to the console. - Console::WriteLine( "This union accepts connections on :" ); - - IEnumerator^ myEnumerator = mySocketPermissionUnion->AcceptList; - while ( myEnumerator->MoveNext() ) - { - Console::WriteLine( safe_cast( myEnumerator->Current )->ToString() ); - } - - // Prints the allowable connect URIs to the console. - Console::WriteLine( "This union permits connections to :" ); - - myEnumerator = mySocketPermissionUnion->ConnectList; - while ( myEnumerator->MoveNext() ) - { - Console::WriteLine( safe_cast( myEnumerator->Current )->ToString() ); - } - } -// - -// - // Creates a SocketPermission from the intersect of two SocketPermissions. - SocketPermission^ mySocketPermissionIntersect = - (SocketPermission^)( mySocketPermission1->Intersect( mySocketPermissionUnion ) ); - - // mySocketPermissionIntersect should now contain the permissions of mySocketPermission1. - if ( mySocketPermission1->IsSubsetOf( mySocketPermissionIntersect ) ) - { - Console::WriteLine( "This is expected" ); - } - - // mySocketPermissionIntersect should not contain the permissios of mySocketPermission2. - if ( mySocketPermission2->IsSubsetOf( mySocketPermissionIntersect ) ) - { - Console::WriteLine( "This should not print" ); - } -// - -// - // Creates a copy of the intersect SocketPermission. - SocketPermission^ mySocketPermissionIntersectCopy = - (SocketPermission^)( mySocketPermissionIntersect->Copy() ); - if ( mySocketPermissionIntersectCopy->Equals( mySocketPermissionIntersect ) ) - { - Console::WriteLine( "Copy successfull" ); - } -// - - // Converts a SocketPermission to XML format and then immediately converts it back to a SocketPermission. - mySocketPermission1->FromXml( mySocketPermission1->ToXml() ); - - // Checks to see if permission for this socket resource is unrestricted. If it is, then there is no need to - // demand that permissions be enforced. - if ( mySocketPermissionUnion->IsUnrestricted() ) - { - //Do nothing. There are no restrictions. - } - else - { - // Enforces the permissions found in mySocketPermissionUnion on any Socket Resources used below this statement. - mySocketPermissionUnion->Demand(); - } - - IPHostEntry^ myIpHostEntry = Dns::Resolve( "www.contoso.com" ); - IPEndPoint^ myLocalEndPoint = gcnew IPEndPoint( myIpHostEntry->AddressList[ 0 ], 11000 ); - - Socket^ s = gcnew Socket( myLocalEndPoint->Address->AddressFamily, - SocketType::Stream, - ProtocolType::Tcp ); - try - { - s->Connect( myLocalEndPoint ); - } - catch ( Exception^ e ) - { - Console::Write( "Exception Thrown: " ); - Console::WriteLine( e->ToString() ); - } - - // Perform all socket operations in here. - s->Close(); -// -} - -int main() -{ - MySocketPermission(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/SocketPropertyTester/CPP/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/SocketPropertyTester/CPP/class1.cpp deleted file mode 100644 index 9cc9a851cc9a6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/SocketPropertyTester/CPP/class1.cpp +++ /dev/null @@ -1,105 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; - -namespace SocketOptionExamples -{ - ref class SocketPropertyTester - { - // - static void ConfigureTcpSocket(Socket^ tcpSocket) - { - - // Don't allow another socket to bind to this port. - tcpSocket->ExclusiveAddressUse = true; - - // The socket will linger for 10 seconds after - // Socket.Close is called. - tcpSocket->LingerState = gcnew LingerOption(true, 10); - - // Disable the Nagle Algorithm for this tcp socket. - tcpSocket->NoDelay = true; - - // Set the receive buffer size to 8k - tcpSocket->ReceiveBufferSize = 8192; - - // Set the timeout for synchronous receive methods to - // 1 second (1000 milliseconds.) - tcpSocket->ReceiveTimeout = 1000; - - // Set the send buffer size to 8k. - tcpSocket->SendBufferSize = 8192; - - // Set the timeout for synchronous send methods - // to 1 second (1000 milliseconds.) - tcpSocket->SendTimeout = 1000; - - // Set the Time To Live (TTL) to 42 router hops. - tcpSocket->Ttl = 42; - Console::WriteLine("Tcp Socket configured:"); - Console::WriteLine(" ExclusiveAddressUse {0}", - tcpSocket->ExclusiveAddressUse); - Console::WriteLine(" LingerState {0}, {1}", - tcpSocket->LingerState->Enabled, - tcpSocket->LingerState->LingerTime); - Console::WriteLine(" NoDelay {0}", - tcpSocket->NoDelay); - Console::WriteLine(" ReceiveBufferSize {0}", - tcpSocket->ReceiveBufferSize); - Console::WriteLine(" ReceiveTimeout {0}", - tcpSocket->ReceiveTimeout); - Console::WriteLine(" SendBufferSize {0}", - tcpSocket->SendBufferSize); - Console::WriteLine(" SendTimeout {0}", - tcpSocket->SendTimeout); - Console::WriteLine(" Ttl {0}", - tcpSocket->Ttl); - Console::WriteLine(" IsBound {0}", - tcpSocket->IsBound); - Console::WriteLine(""); - } - // - // - static void ConfigureUdpSocket(Socket^ udpSocket) - { - - // Set the Don't Fragment flag. - udpSocket->DontFragment = true; - - // Enable broadcast. - udpSocket->EnableBroadcast = true; - - // Disable multicast loopback. - udpSocket->MulticastLoopback = false; - Console::WriteLine("Udp Socket configured:"); - Console::WriteLine(" DontFragment {0}", - udpSocket->DontFragment); - Console::WriteLine(" EnableBroadcast {0}", - udpSocket->EnableBroadcast); - Console::WriteLine(" MulticastLoopback {0}", - udpSocket->MulticastLoopback); - } - // - public: - static void Work() - { - Socket^ tcpSocket = gcnew Socket( - AddressFamily::InterNetwork, - SocketType::Stream, ProtocolType::IP); - Socket^ udpSocket = gcnew Socket( - AddressFamily::InterNetwork, - SocketType::Dgram, ProtocolType::IP); - ConfigureTcpSocket(tcpSocket); - ConfigureUdpSocket(udpSocket); - } - }; -} - -int main() -{ - SocketOptionExamples::SocketPropertyTester::Work(); - return 0; -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Async_Send_Receive/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Async_Send_Receive/CPP/source.cpp deleted file mode 100644 index 4c44c03d6717d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Async_Send_Receive/CPP/source.cpp +++ /dev/null @@ -1,304 +0,0 @@ -#using - -using namespace System; -using namespace System::Text; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Threading; - -// -public ref class StateObject -{ -public: - literal int BUFFER_SIZE = 1024; - Socket^ workSocket; - array^ buffer; - StringBuilder^ sb; - StateObject() : workSocket( nullptr ) - { - buffer = gcnew array(BUFFER_SIZE); - sb = gcnew StringBuilder; - } -}; -// - -ref class Async_Send_Receive -{ -public: - static ManualResetEvent^ allDone = gcnew ManualResetEvent( false ); - static void Connect() - { -// - IPHostEntry^ lipa = Dns::Resolve( "host.contoso.com" ); - IPEndPoint^ lep = gcnew IPEndPoint( lipa->AddressList[ 0 ], 11000 ); - - Socket^ s = gcnew Socket( lep->Address->AddressFamily, - SocketType::Stream, - ProtocolType::Tcp ); - try - { - while ( true ) - { - allDone->Reset(); - - Console::WriteLine( "Establishing Connection" ); - s->BeginConnect( lep, gcnew AsyncCallback( - &Async_Send_Receive::Connect_Callback ), s ); - - allDone->WaitOne(); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( e ); - } -// - } - - static void Listen() - { -// - IPHostEntry^ lipa = Dns::Resolve( "host.contoso.com" ); - IPEndPoint^ lep = gcnew IPEndPoint( lipa->AddressList[ 0 ], 11000 ); - - Socket^ s = gcnew Socket( lep->Address->AddressFamily, - SocketType::Stream, - ProtocolType::Tcp ); - try - { - s->Bind( lep ); - s->Listen( 1000 ); - - while ( true ) - { - allDone->Reset(); - - Console::WriteLine( "Waiting for a connection..." ); - s->BeginAccept( gcnew AsyncCallback( &Async_Send_Receive::Connect_Callback ), s ); - - allDone->WaitOne(); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( e ); - } -// - } - - static void SendTo() - { -// - IPHostEntry^ lipa = Dns::Resolve( "host.contoso.com" ); - IPEndPoint^ lep = gcnew IPEndPoint( lipa->AddressList[ 0 ], 11000 ); - - Socket^ s = gcnew Socket( lep->Address->AddressFamily, - SocketType::Stream, - ProtocolType::Tcp ); - try - { - while ( true ) - { - allDone->Reset(); - - array^ buff = Encoding::ASCII->GetBytes( "This is a test" ); - - Console::WriteLine( "Sending Message Now.." ); - s->BeginSendTo( buff, 0, buff->Length, SocketFlags::None, lep, - gcnew AsyncCallback( &Async_Send_Receive::Connect_Callback ), s ); - - allDone->WaitOne(); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( e ); - } -// - } - - static void ReceiveFrom() - { -// - IPHostEntry^ lipa = Dns::Resolve( "host.contoso.com" ); - IPEndPoint^ lep = gcnew IPEndPoint( lipa->AddressList[ 0 ], 11000 ); - - Socket^ s = gcnew Socket( lep->Address->AddressFamily, - SocketType::Stream, - ProtocolType::Tcp ); - - IPEndPoint^ sender = gcnew IPEndPoint( IPAddress::Any, 0 ); - EndPoint^ tempRemoteEP = (EndPoint^)( sender ); - s->Connect( sender ); - - try - { - while ( true ) - { - allDone->Reset(); - StateObject^ so2 = gcnew StateObject; - so2->workSocket = s; - Console::WriteLine( "Attempting to Receive data from host.contoso.com" ); - - s->BeginReceiveFrom( so2->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None, tempRemoteEP, - gcnew AsyncCallback( &Async_Send_Receive::ReceiveFrom_Callback ), so2 ); - allDone->WaitOne(); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( e ); - } -// - } - - static void ReceiveFrom1(){ -// - IPHostEntry^ lipa = Dns::Resolve( "host.contoso.com" ); - IPEndPoint^ lep = gcnew IPEndPoint( lipa->AddressList[ 0 ], 11000); - - Socket^ s = gcnew Socket( lep->Address->AddressFamily, - SocketType::Dgram, - ProtocolType::Udp); - - IPEndPoint^ sender = gcnew IPEndPoint( IPAddress::Any, 0 ); - EndPoint^ tempRemoteEP = (EndPoint^)( sender ); - s->Connect( sender ); - - try{ - while(true){ - allDone->Reset(); - StateObject^ so2 = gcnew StateObject(); - so2->workSocket = s; - Console::WriteLine( "Attempting to Receive data from host.contoso.com" ); - - s->BeginReceiveFrom( so2->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None, tempRemoteEP, - gcnew AsyncCallback( &Async_Send_Receive::ReceiveFrom_Callback), so2); - allDone->WaitOne(); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( e ); - } -// - } - - static void Connect_Callback( IAsyncResult^ ar ) - { -// - allDone->Set(); - Socket^ s = safe_cast(ar->AsyncState); - s->EndConnect( ar ); - StateObject^ so2 = gcnew StateObject; - so2->workSocket = s; - array^ buff = Encoding::ASCII->GetBytes( "This is a test" ); - s->BeginSend( buff, 0, buff->Length, SocketFlags::None, - gcnew AsyncCallback( &Async_Send_Receive::Send_Callback ), so2 ); -// - } - - static void Send_Callback( IAsyncResult^ ar ) - { -// - StateObject^ so = safe_cast(ar->AsyncState); - Socket^ s = so->workSocket; - - int send = s->EndSend( ar ); - - Console::WriteLine( "The size of the message sent was : {0}", send ); - - s->Close(); -// - } - -// - static void Listen_Callback( IAsyncResult^ ar ) - { - allDone->Set(); - Socket^ s = safe_cast(ar->AsyncState); - Socket^ s2 = s->EndAccept( ar ); - StateObject^ so2 = gcnew StateObject; - so2->workSocket = s2; - s2->BeginReceive( so2->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None, - gcnew AsyncCallback( &Async_Send_Receive::Read_Callback ), so2 ); - } -// - -// - static void Read_Callback( IAsyncResult^ ar ) - { - StateObject^ so = safe_cast(ar->AsyncState); - Socket^ s = so->workSocket; - - int read = s->EndReceive( ar ); - - if ( read > 0 ) - { - so->sb->Append( Encoding::ASCII->GetString( so->buffer, 0, read ) ); - s->BeginReceive( so->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None, - gcnew AsyncCallback( &Async_Send_Receive::Read_Callback ), so ); - } - else - { - if ( so->sb->Length > 1 ) - { - //All of the data has been read, so displays it to the console - String^ strContent = so->sb->ToString(); - Console::WriteLine( String::Format( "Read {0} byte from socket" + - " data = {1} ", strContent->Length, strContent ) ); - } - s->Close(); - } - } - // - - static void SendTo_Callback( IAsyncResult^ ar ) - { -// - StateObject^ so = safe_cast(ar->AsyncState); - Socket^ s = so->workSocket; - - int send = s->EndSendTo( ar ); - - Console::WriteLine( "The size of the message sent was : {0}", send ); - - s->Close(); -// - } - - static void ReceiveFrom_Callback( IAsyncResult^ ar ) - { -// - StateObject^ so = safe_cast(ar->AsyncState); - Socket^ s = so->workSocket; - - // Creates a temporary EndPoint to pass to EndReceiveFrom. - IPEndPoint^ sender = gcnew IPEndPoint( IPAddress::Any,0 ); - EndPoint^ tempRemoteEP = safe_cast(sender); - - int read = s->EndReceiveFrom( ar, tempRemoteEP ); - - if ( read > 0 ) - { - so->sb->Append( Encoding::ASCII->GetString( so->buffer, 0, read ) ); - s->BeginReceiveFrom( so->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None, - tempRemoteEP, gcnew AsyncCallback( &Async_Send_Receive::ReceiveFrom_Callback ), so ); - } - else - { - if ( so->sb->Length > 1 ) - { - //All the data has been read, so displays it to the console. - String^ strContent = so->sb->ToString(); - Console::WriteLine( "Read {0} byte from socket" + - " data = {1}", strContent->Length, strContent ); - } - s->Close(); - } -// - } -}; - -void main(){} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Select/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Select/CPP/source.cpp deleted file mode 100644 index d7441a3cbf9b3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Select/CPP/source.cpp +++ /dev/null @@ -1,75 +0,0 @@ - - -#using -#define NULL 0 - -using namespace System; -using namespace System::Text; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Threading; -using namespace System::Collections; -public ref class Sync_Send_Receive -{ -public: - - //Displays sending and receiving with a connected socket -- buffer only - static void SendReceive1() - { - - // - IPHostEntry^ lipa = Dns::Resolve( Dns::GetHostName() ); - - //Gets three separate local endpoints. - IPEndPoint^ lep1 = gcnew IPEndPoint( lipa->AddressList[ 0 ],11000 ); - IPEndPoint^ lep2 = gcnew IPEndPoint( lipa->AddressList[ 0 ],11001 ); - IPEndPoint^ lep3 = gcnew IPEndPoint( lipa->AddressList[ 0 ],11002 ); - - //creates an array of endpoints. - array^ipendpoints = gcnew array(3); - ipendpoints[ 0 ] = lep1; - ipendpoints[ 1 ] = lep2; - ipendpoints[ 2 ] = lep3; - - //Creates three separate sockets. - Socket^ s1 = gcnew Socket( lep1->Address->AddressFamily,SocketType::Stream,ProtocolType::Tcp ); - Socket^ s2 = gcnew Socket( lep2->Address->AddressFamily,SocketType::Stream,ProtocolType::Tcp ); - Socket^ s3 = gcnew Socket( lep3->Address->AddressFamily,SocketType::Stream,ProtocolType::Tcp ); - array^socketList = gcnew array(3); - socketList[ 0 ] = s1; - socketList[ 1 ] = s2; - socketList[ 2 ] = s3; - - //Binds and Listens on all sockets in the array of sockets. - for ( int i = 0; i < 3; i++ ) - { - socketList[ i ]->Bind( ipendpoints[ i ] ); - socketList[ i ]->Listen( 1000 ); - - } - - //Calls Select to determine which sockets are ready for reading. - Socket::Select( safe_cast(socketList), nullptr, nullptr, 1000 ); - - //Reads on the sockets returned by Select. - array^buffer = gcnew array(1024); - String^ outString; - for ( Int32 j = 0; j < (socketList->Length - 1); j++ ) - { - socketList[ j ]->Receive( buffer ); - outString = "Socket "; - outString->Concat( j.ToString(), " has the message", Encoding::ASCII->GetString( buffer ) ); - Console::WriteLine( outString ); - - } - } - -}; - -int main() -{ - return 0; -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Send_Receive/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Send_Receive/CPP/source.cpp deleted file mode 100644 index e799e953dee9e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Send_Receive/CPP/source.cpp +++ /dev/null @@ -1,128 +0,0 @@ - - -// -#using - -using namespace System; -using namespace System::Text; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -String^ DoSocketGet( String^ server ) -{ - - //Set up variables and String to write to the server. - Encoding^ ASCII = Encoding::ASCII; - String^ Get = "GET / HTTP/1.1\r\nHost: "; - Get->Concat( server, "\r\nConnection: Close\r\n\r\n" ); - array^ByteGet = ASCII->GetBytes( Get ); - array^RecvBytes = gcnew array(256); - String^ strRetPage = nullptr; - - // IPAddress and IPEndPoint represent the endpoint that will - // receive the request. - // Get first IPAddress in list return by DNS. - try - { - - // Define those variables to be evaluated in the next for loop and - // then used to connect to the server. These variables are defined - // outside the for loop to make them accessible there after. - Socket^ s = nullptr; - IPEndPoint^ hostEndPoint; - IPAddress^ hostAddress = nullptr; - int conPort = 80; - - // Get DNS host information. - IPHostEntry^ hostInfo = Dns::Resolve( server ); - - // Get the DNS IP addresses associated with the host. - array^IPaddresses = hostInfo->AddressList; - - // Evaluate the socket and receiving host IPAddress and IPEndPoint. - for ( int index = 0; index < IPaddresses->Length; index++ ) - { - hostAddress = IPaddresses[ index ]; - hostEndPoint = gcnew IPEndPoint( hostAddress,conPort ); - - // - // Creates the Socket to send data over a TCP connection. - s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - - // - // Connect to the host using its IPEndPoint. - s->Connect( hostEndPoint ); - if ( !s->Connected ) - { - - // Connection failed, try next IPaddress. - strRetPage = "Unable to connect to host"; - s = nullptr; - continue; - } - - - // - // Sent the GET request to the host. - s->Send( ByteGet, ByteGet->Length, SocketFlags::None ); - - // - - } - - // - // Receive the host home page content and loop until all the data is received. - Int32 bytes = s->Receive( RecvBytes, RecvBytes->Length, SocketFlags::None ); - strRetPage = "Default HTML page on "; - strRetPage->Concat( server, ":\r\n", ASCII->GetString( RecvBytes, 0, bytes ) ); - while ( bytes > 0 ) - { - bytes = s->Receive( RecvBytes, RecvBytes->Length, SocketFlags::None ); - strRetPage->Concat( ASCII->GetString( RecvBytes, 0, bytes ) ); - } - - - // - } - catch ( SocketException^ e ) - { - Console::WriteLine( "SocketException caught!!!" ); - Console::Write( "Source : " ); - Console::WriteLine( e->Source ); - Console::Write( "Message : " ); - Console::WriteLine( e->Message ); - } - catch ( ArgumentNullException^ e ) - { - Console::WriteLine( "ArgumentNULLException caught!!!" ); - Console::Write( "Source : " ); - Console::WriteLine( e->Source ); - Console::Write( "Message : " ); - Console::WriteLine( e->Message ); - } - catch ( NullReferenceException^ e ) - { - Console::WriteLine( "NULLReferenceException caught!!!" ); - Console::Write( "Source : " ); - Console::WriteLine( e->Source ); - Console::Write( "Message : " ); - Console::WriteLine( e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::Write( "Source : " ); - Console::WriteLine( e->Source ); - Console::Write( "Message : " ); - Console::WriteLine( e->Message ); - } - - return strRetPage; -} - -int main() -{ - Console::WriteLine( DoSocketGet( "localhost" ) ); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Socket_Options/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Socket_Options/CPP/source.cpp deleted file mode 100644 index 8d52d9461b9a8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Socket_Options/CPP/source.cpp +++ /dev/null @@ -1,104 +0,0 @@ -#using - -using namespace System; -using namespace System::Text; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Threading; - -public ref class Sync_Send_Receive -{ -public: - static void SetSocketOptions() - { - IPHostEntry^ lipa = Dns::Resolve( "host.contoso.com" ); - IPEndPoint^ lep = gcnew IPEndPoint( lipa->AddressList[ 0 ],11000 ); - Socket^ s = gcnew Socket( lep->Address->AddressFamily, SocketType::Stream,ProtocolType::Tcp ); - -// - // Specifies that send operations will time-out - // if confirmation is not received within 1000 milliseconds. - s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 1000 ); - - // Specifies that the Socket will linger for 10 seconds after Close is called. - LingerOption^ lingerOption = gcnew LingerOption( true,10 ); - - s->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, lingerOption ); -// - - s->Connect( lep ); - - array^ msg = Encoding::ASCII->GetBytes( "This is a test" ); - -// - Console::Write( "This application will timeout if Send does not return within " ); - Console::WriteLine( Encoding::ASCII->GetString( s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4 ) ) ); - - // Blocks until send returns. - int i = s->Send( msg ); - - // Blocks until read returns. - array^ bytes = gcnew array(1024); - - s->Receive( bytes ); - - //Displays to the screen. - Console::WriteLine( Encoding::ASCII->GetString( bytes ) ); - s->Shutdown( SocketShutdown::Both ); - Console::Write( "If data remains to be sent, this application will stay open for " ); - Console::WriteLine( safe_cast(s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger ))->LingerTime.ToString() ); - s->Close(); -// - } - - static void CheckProperties() - { - IPHostEntry^ lipa = Dns::Resolve( "host.contoso.com" ); - IPEndPoint^ lep = gcnew IPEndPoint( lipa->AddressList[ 0 ],11000 ); - -// - Socket^ s = gcnew Socket( lep->Address->AddressFamily,SocketType::Stream,ProtocolType::Tcp ); - - //Uses the AddressFamily, SocketType, and ProtocolType properties. - Console::Write( "I just set the following properties of socket: \n" ); - Console::Write( "Address Family = {0}", s->AddressFamily.ToString() ); - Console::Write( "\nSocketType = {0}", s->SocketType.ToString() ); - Console::WriteLine( "\nProtocolType = {0}", s->ProtocolType.ToString() ); -// - -// - s->Connect( lep ); - - // Uses the RemoteEndPoint property. - Console::WriteLine( "I am connected to {0} on port number {1}", - IPAddress::Parse( ( ( (IPEndPoint^)(s->RemoteEndPoint) )->Address)->ToString() ), - ( (IPEndPoint^)(s->RemoteEndPoint) )->Port.ToString() ); - - // Uses the LocalEndPoint property. - Console::Write( "My local IpAddress is : {0}\nI am connected on port number {1}", - IPAddress::Parse( ( ( (IPEndPoint^)(s->LocalEndPoint) )->Address)->ToString() ), - ( (IPEndPoint^)(s->LocalEndPoint) )->Port.ToString() ); -// - -// - //Uses low level method IOControl to set this socket to blocking mode. - int code = 0x8004667E; - array^ inBuf = gcnew array(4); - - inBuf[ 0 ] = 0; - - array^ outBuf = gcnew array(4); - - s->IOControl( code, inBuf, outBuf ); - - //Checks to see that this worked. - if ( s->Blocking ) - { - Console::WriteLine( "Socket was set to Blocking mode successfully" ); - } -// - } -}; - -int main(){} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Sync_Send_Receive/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Sync_Send_Receive/CPP/source.cpp deleted file mode 100644 index 2c6dda9ea2a29..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/Socket_Sync_Send_Receive/CPP/source.cpp +++ /dev/null @@ -1,449 +0,0 @@ -#using - -using namespace System; -using namespace System::Text; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Threading; - -// -// Displays sending with a connected socket -// using the overload that takes a buffer. -int SendReceiveTest1( Socket^ server ) -{ - array^ msg = Encoding::UTF8->GetBytes( "This is a test" ); - array^ bytes = gcnew array(256); - try - { - // Blocks until send returns. - int byteCount = server->Send( msg ); - Console::WriteLine( "Sent {0} bytes.", byteCount.ToString() ); - - // Get reply from the server. - byteCount = server->Receive( bytes ); - if ( byteCount > 0 ) - { - Console::WriteLine( Encoding::UTF8->GetString( bytes ) ); - } - } - catch ( SocketException^ e ) - { - Console::WriteLine( "{0} Error code: {1}.", e->Message, e->ErrorCode.ToString() ); - return ( e->ErrorCode ); - } - return 0; -} -// - -// Displays receiving from a connected tcp socket -// using the overload that takes a buffer. -int ReceiveTest1( Socket^ client ) -{ - array^ bytes = gcnew array(256); - try - { - // It is usually preferable to use the overload - // that allows you to specify the maximum bytes returned. - if ( client->Available > 256 ) - { - throw gcnew ApplicationException( "This test socket only takes messages < 256 bytes." ); - } - // Blocks until read returns. - int byteCount = client->Receive( bytes ); - if ( byteCount > 0 ) - { - Console::WriteLine( Encoding::UTF8->GetString( bytes ) ); - } - // Send reply to the client. - client->Send( Encoding::UTF8->GetBytes( "Bye." ) ); - } - catch ( SocketException^ e ) - { - Console::WriteLine( "{0} Error code: {1}.", e->Message, e->ErrorCode.ToString() ); - return ( e->ErrorCode ); - } - return 0; -} - -// -// Displays sending with a connected socket -// using the overload that takes a buffer and socket flags. -int SendReceiveTest2( Socket^ server ) -{ - array^ msg = Encoding::UTF8->GetBytes( "This is a test" ); - array^ bytes = gcnew array(256); - try - { - // Blocks until send returns. - int byteCount = server->Send( msg, SocketFlags::None ); - Console::WriteLine( "Sent {0} bytes.", byteCount.ToString() ); - - // Get reply from the server. - byteCount = server->Receive( bytes, SocketFlags::None ); - if ( byteCount > 0 ) - { - Console::WriteLine( Encoding::UTF8->GetString( bytes ) ); - } - } - catch ( SocketException^ e ) - { - Console::WriteLine( "{0} Error code: {1}.", e->Message, e->ErrorCode.ToString() ); - return (e->ErrorCode); - } - return 0; -} -// - -// -// Displays sending with a connected socket -// using the overload that takes a buffer, message size, and socket flags. -int SendReceiveTest3( Socket^ server ) -{ - array^ msg = Encoding::UTF8->GetBytes( "This is a test" ); - array^ bytes = gcnew array(256); - try - { - // Blocks until send returns. - int i = server->Send( msg, msg->Length, SocketFlags::None ); - Console::WriteLine( "Sent {0} bytes.", i.ToString() ); - - // Get reply from the server. - int byteCount = server->Receive( bytes, server->Available, - SocketFlags::None ); - if ( byteCount > 0 ) - { - Console::WriteLine( Encoding::UTF8->GetString( bytes ) ); - } - } - catch ( SocketException^ e ) - { - Console::WriteLine( "{0} Error code: {1}.", e->Message, e->ErrorCode.ToString() ); - return (e->ErrorCode); - } - return 0; -} -// - -// -// Displays sending with a connected socket -// using the overload that takes a buffer, offset, message size, and socket flags. -int SendReceiveTest4( Socket^ server ) -{ - array^ msg = Encoding::UTF8->GetBytes( "This is a test" ); - array^ bytes = gcnew array(256); - try - { - - // Blocks until send returns. - int byteCount = server->Send( msg, 0, msg->Length, SocketFlags::None ); - Console::WriteLine( "Sent {0} bytes.", byteCount.ToString() ); - - // Get reply from the server. - byteCount = server->Receive( bytes, 0, server->Available, - SocketFlags::None ); - if ( byteCount > 0 ) - { - Console::WriteLine( Encoding::UTF8->GetString( bytes ) ); - } - } - catch ( SocketException^ e ) - { - Console::WriteLine( "{0} Error code: {1}.", e->Message, e->ErrorCode.ToString() ); - return (e->ErrorCode); - } - return 0; -} -// - -public ref class NeedForDelegates -{ -public: - - // - static void SendTo1() - { - IPHostEntry^ hostEntry = Dns::Resolve( Dns::GetHostName() ); - IPEndPoint^ endPoint = gcnew IPEndPoint( hostEntry->AddressList[ 0 ],11000 ); - - Socket^ s = gcnew Socket( endPoint->Address->AddressFamily, - SocketType::Dgram, - ProtocolType::Udp ); - - array^ msg = Encoding::ASCII->GetBytes( "This is a test" ); - Console::WriteLine( "Sending data." ); - // This call blocks. - s->SendTo( msg, endPoint ); - s->Close(); - } - // - - // - static void SendTo2() - { - IPHostEntry^ hostEntry = Dns::Resolve( Dns::GetHostName() ); - IPEndPoint^ endPoint = gcnew IPEndPoint( hostEntry->AddressList[ 0 ],11000 ); - - Socket^ s = gcnew Socket( endPoint->Address->AddressFamily, - SocketType::Dgram, - ProtocolType::Udp ); - - array^ msg = Encoding::ASCII->GetBytes( "This is a test" ); - Console::WriteLine( "Sending data." ); - // This call blocks. - s->SendTo( msg, SocketFlags::None, endPoint ); - s->Close(); - } - // - - // - static void SendTo3() - { - IPHostEntry^ hostEntry = Dns::Resolve( Dns::GetHostName() ); - IPEndPoint^ endPoint = gcnew IPEndPoint( hostEntry->AddressList[ 0 ],11000 ); - - Socket^ s = gcnew Socket( endPoint->Address->AddressFamily, - SocketType::Dgram, - ProtocolType::Udp ); - - array^ msg = Encoding::ASCII->GetBytes( "This is a test" ); - Console::WriteLine( "Sending data." ); - // This call blocks. - s->SendTo( msg, msg->Length, SocketFlags::None, endPoint ); - s->Close(); - } - // - - // - static void SendTo4() - { - IPHostEntry^ hostEntry = Dns::Resolve( Dns::GetHostName() ); - IPEndPoint^ endPoint = gcnew IPEndPoint( hostEntry->AddressList[ 0 ],11000 ); - - Socket^ s = gcnew Socket( endPoint->Address->AddressFamily, - SocketType::Dgram, - ProtocolType::Udp ); - - array^ msg = Encoding::ASCII->GetBytes( "This is a test" ); - Console::WriteLine( "Sending data." ); - // This call blocks. - s->SendTo( msg, 0, msg->Length, SocketFlags::None, endPoint ); - s->Close(); - } - // - - // The ReceiveFroms - // - static void ReceiveFrom1() - { - IPHostEntry^ hostEntry = Dns::Resolve( Dns::GetHostName() ); - IPEndPoint^ endPoint = gcnew IPEndPoint( hostEntry->AddressList[ 0 ],11000 ); - - Socket^ s = gcnew Socket( endPoint->Address->AddressFamily, - SocketType::Dgram, - ProtocolType::Udp ); - - // Creates an IPEndPoint to capture the identity of the sending host. - IPEndPoint^ sender = gcnew IPEndPoint( IPAddress::Any,0 ); - EndPoint^ senderRemote = safe_cast(sender); - - // Binding is required with ReceiveFrom calls. - s->Bind( endPoint ); - - array^ msg = gcnew array(256); - Console::WriteLine( "Waiting to receive datagrams from client..." ); - - // This call blocks. - s->ReceiveFrom( msg, senderRemote ); - s->Close(); - } - // - - // - static void ReceiveFrom2() - { - IPHostEntry^ hostEntry = Dns::Resolve( Dns::GetHostName() ); - IPEndPoint^ endPoint = gcnew IPEndPoint( hostEntry->AddressList[ 0 ],11000 ); - - Socket^ s = gcnew Socket( endPoint->Address->AddressFamily, - SocketType::Dgram, - ProtocolType::Udp ); - - // Creates an IpEndPoint to capture the identity of the sending host. - IPEndPoint^ sender = gcnew IPEndPoint( IPAddress::Any,0 ); - EndPoint^ senderRemote = safe_cast(sender); - - // Binding is required with ReceiveFrom calls. - s->Bind( endPoint ); - - array^ msg = gcnew array(256); - Console::WriteLine( "Waiting to receive datagrams from client..." ); - // This call blocks. - s->ReceiveFrom( msg, SocketFlags::None, senderRemote ); - s->Close(); - } - // - - // - static void ReceiveFrom3() - { - IPHostEntry^ hostEntry = Dns::Resolve( Dns::GetHostName() ); - IPEndPoint^ endPoint = gcnew IPEndPoint( hostEntry->AddressList[ 0 ],11000 ); - - Socket^ s = gcnew Socket( endPoint->Address->AddressFamily, - SocketType::Dgram, - ProtocolType::Udp ); - - // Creates an IPEndPoint to capture the identity of the sending host. - IPEndPoint^ sender = gcnew IPEndPoint( IPAddress::Any,0 ); - EndPoint^ senderRemote = safe_cast(sender); - - // Binding is required with ReceiveFrom calls. - s->Bind( endPoint ); - - array^ msg = gcnew array(256); - Console::WriteLine( "SWaiting to receive datagrams from client..." ); - // This call blocks. - s->ReceiveFrom( msg, msg->Length, SocketFlags::None, senderRemote ); - s->Close(); - } - // - - // - static void ReceiveFrom4() - { - IPHostEntry^ hostEntry = Dns::Resolve( Dns::GetHostName() ); - IPEndPoint^ endPoint = gcnew IPEndPoint( hostEntry->AddressList[ 0 ],11000 ); - - Socket^ s = gcnew Socket( endPoint->Address->AddressFamily, - SocketType::Dgram, - ProtocolType::Udp ); - - // Creates an IpEndPoint to capture the identity of the sending host. - IPEndPoint^ sender = gcnew IPEndPoint( IPAddress::Any,0 ); - EndPoint^ senderRemote = safe_cast(sender); - - // Binding is required with ReceiveFrom calls. - s->Bind( endPoint ); - - array^ msg = gcnew array(256); - Console::WriteLine( "SWaiting to receive datagrams from client..." ); - // This call blocks. - s->ReceiveFrom( msg, 0, msg->Length, SocketFlags::None, senderRemote ); - s->Close(); - } - // - // end NeedForDelegates -}; - -void RunUdpTests() -{ - // Test the upd versions. - - //NeedForDelegates^ n = new NeedForDelegates(); - ThreadStart^ myThreadDelegate = gcnew ThreadStart( &NeedForDelegates::ReceiveFrom1 ); - Thread^ myThread1 = gcnew Thread( myThreadDelegate ); - myThread1->Start(); - - while ( myThread1->IsAlive == true ) - { - NeedForDelegates::SendTo1(); - } - myThread1->Join(); - - Console::WriteLine( "UDP test2" ); - Thread^ myThread2 = gcnew Thread( gcnew ThreadStart( &NeedForDelegates::ReceiveFrom2 ) ); - myThread2->Start(); - while ( myThread2->IsAlive == true ) - { - NeedForDelegates::SendTo2(); - } - myThread2->Join(); - - Console::WriteLine( "UDP test3" ); - Thread^ myThread3 = gcnew Thread( gcnew ThreadStart( &NeedForDelegates::ReceiveFrom3 ) ); - myThread3->Start(); - while ( myThread3->IsAlive == true ) - { - NeedForDelegates::SendTo3(); - } - myThread3->Join(); - - Console::WriteLine( "UDP test4" ); - Thread^ myThread4 = gcnew Thread( gcnew ThreadStart( &NeedForDelegates::ReceiveFrom4 ) ); - myThread4->Start(); - while ( myThread4->IsAlive == true ) - { - NeedForDelegates::SendTo4(); - } - myThread4->Join(); -} - -//Main tests the snippets. -// To test tcp - run 2 instances source /s runs server, source /c runs client. -// To test Upd run source /u. -int main( int /*argc*/, char *args[] ) -{ - String^ host; - bool isServer; - - if ( args[ 1 ][ 1 ] == 'c' ) - { - isServer = false; - host = "127.0.0.1"; - } - else - if ( args[ 1 ][ 1 ] == 'u' ) - { - Console::WriteLine( "running udptests" ); - RunUdpTests(); - return 0; - } - else - { - host = "localhost"; - isServer = true; - } - - // Set up the endpoint and create the socket. - IPHostEntry^ hostEntry = Dns::Resolve( host ); - IPEndPoint^ endPoint = gcnew IPEndPoint( hostEntry->AddressList[ 0 ],11000 ); - - // Test the TCPIP snippets (Socket.Send and Socket.Receive) - - Socket^ s = gcnew Socket( endPoint->Address->AddressFamily, - SocketType::Stream, - ProtocolType::Tcp ); - - // Send or receive the test messages. - if ( isServer ) - { - Socket^ sender = nullptr; - s->Bind( endPoint ); - s->Listen( 1 ); - for ( ; ; ) - { - sender = s->Accept(); - // exchange messages with all clients tests - for ( int i = 0; i < 4; i++ ) - { - ReceiveTest1( sender ); - } - sender->Close(); - s->Close(); - Environment::Exit( 0 ); - } - } - // Its the client tcp tests. - else - { - s->Connect( endPoint ); - SendReceiveTest1( s ); - SendReceiveTest2( s ); - SendReceiveTest3( s ); - SendReceiveTest4( s ); - s->Close(); - } - - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.EnterpriseServices.QueuedComponents/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.EnterpriseServices.QueuedComponents/CPP/makefile deleted file mode 100644 index 3243b84415fb5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.EnterpriseServices.QueuedComponents/CPP/makefile +++ /dev/null @@ -1,6 +0,0 @@ -all: queuedcomponent.dll queuedcomponentclientclass.exe -queuedcomponent.dll: queuedcomponent.cpp - cl /clr:pure /LD queuedcomponent.cpp - -queuedcomponentclientclass.exe: queuedcomponentclientclass.cpp queuedcomponent.dll - cl /clr:pure queuedcomponentclientclass.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.EnterpriseServices.QueuedComponents/CPP/queuedcomponent.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.EnterpriseServices.QueuedComponents/CPP/queuedcomponent.cpp deleted file mode 100644 index e40bac9464b31..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.EnterpriseServices.QueuedComponents/CPP/queuedcomponent.cpp +++ /dev/null @@ -1,47 +0,0 @@ - - -#using - -using namespace System; -using namespace System::EnterpriseServices; -using namespace System::Runtime::InteropServices; -using namespace System::Reflection; - -[assembly:AssemblyKeyFile("key.snk")]; -[assembly:ApplicationName("Queued Component")]; -[assembly:ApplicationID("AC6F4BE6-66E5-4a94-8162-A7F850150F9F")]; -[assembly:ApplicationActivation(ActivationOption::Server)]; -// Ensure that the example shows how to call the queued component. -// See QueuedComponentClient for example - -// -// Mark the COM+ application as queued at compile time by using the -// ApplicationQueuing attribute. Enable the COM+ listener by -// setting the QueueListenerEnabled to true -[assembly:ApplicationQueuing(Enabled=true,QueueListenerEnabled=true)]; -// - -[Guid("9A6233C4-7459-4c1a-808A-905FC648B5A8")] -// -public interface class IQueuedComponent -{ - void QueuedTask(); -}; - - -// Mark IQueuedComponent interface as queued -// Create the queued component class by inheriting the -// System.EnterpriseServices.ServicedComponent class and an -// interface that is marked as queued with the InterfaceQueuing attribute - -[InterfaceQueuing(true,Interface="IQueuedComponent")] -public ref class QueuedComponent sealed: public ServicedComponent, public IQueuedComponent -{ -public: - virtual void QueuedTask() - { - // Perform queued task here - } - -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.EnterpriseServices.QueuedComponents/CPP/queuedcomponentclientclass.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.EnterpriseServices.QueuedComponents/CPP/queuedcomponentclientclass.cpp deleted file mode 100644 index 3a9ce01642073..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.EnterpriseServices.QueuedComponents/CPP/queuedcomponentclientclass.cpp +++ /dev/null @@ -1,24 +0,0 @@ - - -#using - -using namespace System; - -[STAThread] -int main() -{ - for ( int counter = 0; counter < 10; counter++ ) - { - - // - // Use BindToMoniker to run the queued moniker, to get an instance of the recorder - IQueuedComponent ^ qc = dynamic_cast(System::Runtime::InteropServices::Marshal::BindToMoniker( "queue:/new:QueuedComponent" )); - - // Call the method that will be recorded - qc->QueuedTask(); - - // Force the release of the recorder object, to send the message to the queue - System::Runtime::InteropServices::Marshal::ReleaseComObject( qc ); - // - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Authentication/CPP/custombasicauthentication.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Authentication/CPP/custombasicauthentication.cpp deleted file mode 100644 index 59ce360624012..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Authentication/CPP/custombasicauthentication.cpp +++ /dev/null @@ -1,355 +0,0 @@ - - -// -// This program contains snippets applicable to the following: -// System::Net::AuthenticationManger (Snippet1); -// System::Net::AuthenticationManger::Register (Snippet2); -// System::Net::AuthenticationUnregister (Snippet2); -// System::Net::AuthenticationManger::RegisteredModules (Snippet8); -// System::Net::Authorization::Authorization (Snippet3); -// System::Net::Authorization::Message (Snippet5); -// System::Net::Authorization::Complete (Snippet5); -// System::Net::Authorization::GroupId (Snippet5); -// System::Net::IAuthenticationModule* (Snippet6); -// System::Net::IAuthenticationModule*.AuthenticationType (Snippet7); -// System::Net::IAuthenticationModule*.CanPreAuthenticate (Snippet7); -// System::Net::IAuthenticationModule*.Authenticate (Snippet3); -// System::Net::IAuthenticationModule*.PreAuthenticate (Snippet4); -// -// -// This program shows how to create a custom Basic authentication module, -// how to register it via the AuthenticationManager class and how to authorize -// users to access a Web site. -// Note: In order to run this program you must create a test Web site that performs -// Basic authentication. Also you must add to your server machine a user whose -// credentials are the same you use in this program. -// Attention: Basic authenticastion sends the user's credentials over HTTP. -// Passwords and user names are encoded using Base64 encoding. Although the -// user information is encoded, it is considered insecure due to the fact that it -// could be deciphered relatively easily. -// If you must use basic authentication you are strongly adviced to use strong -// security mechanisms, such as SSL, when transfering sensitive information on -// the wire. -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; -using namespace System::Collections; - -// The ClientAuthentication class performs the following main tasks: -// 1) It obtains the user's credentials. -// 2) Unregisters the standard Basic authentication. -// 3) Registers the customized Basic authentication. -// 4) Reads the selected page and displays it on the console. -ref class TestAuthentication -{ -public: - static String^ username; - static String^ password; - static String^ domain; - static String^ uri; - - // Show how to use this program. - static void showusage() - { - Console::WriteLine( "Attempts to authenticate to a URL" ); - Console::WriteLine( "\r\nUse one of the following:" ); - Console::WriteLine( "\tcustomBasicAuthentication URL username password domain" ); - Console::WriteLine( "\tcustomBasicAuthentication URL username password" ); - Console::WriteLine( "\r\nExample:" ); - Console::WriteLine( "\tcustomBasicAuthentication http://ndpue/ncl/ basicuser basic.101 ndpue" ); - } - - - // - // Display registered authentication modules. - static void displayRegisteredModules() - { - - // The AuthenticationManager calls all authentication modules sequentially - // until one of them responds with an authorization instance. Show - // the current registered modules, for testing purposes. - IEnumerator^ registeredModules = AuthenticationManager::RegisteredModules; - Console::WriteLine( "\r\nThe following authentication modules are now registered with the system" ); - while ( registeredModules->MoveNext() ) - { - Console::WriteLine( "\r \n Module : {0}", registeredModules->Current ); - IAuthenticationModule^ currentAuthenticationModule = dynamic_cast(registeredModules->Current); - Console::WriteLine( "\t CanPreAuthenticate : {0}", currentAuthenticationModule->CanPreAuthenticate ); - } - } - - - // - // The getPage method accesses the selected page an displays its content - // on the console. - static void getPage( String^ url ) - { - try - { - - // Create the Web request object. - HttpWebRequest^ req = dynamic_cast(WebRequest::Create( url )); - - // Define the request access method. - req->Method = "GET"; - - // Define the request credentials according to the user's input. - if ( String::Compare( domain, String::Empty ) == 0 ) - req->Credentials = gcnew NetworkCredential( username,password ); // If the user's specifies the Internet resource domain, this usually - else - req->Credentials = gcnew NetworkCredential( username,password,domain ); - - // is by default the name of the sever hosting the resource. - // Issue the request. - // req->GetResponse(); - HttpWebResponse^ result = dynamic_cast(req->GetResponse()); - Console::WriteLine( "\nAuthentication Succeeded:" ); - - // Store the response. - Stream^ sData = result->GetResponseStream(); - - // Display the response. - displayPageContent( sData ); - } - catch ( WebException^ e ) - { - - // Display the error, if any. In particular display protocol - // related error. - if ( e->Status == WebExceptionStatus::ProtocolError ) - { - HttpWebResponse^ hresp = dynamic_cast(e->Response); - Console::WriteLine( "\nAuthentication Failed, {0}", hresp->StatusCode ); - Console::WriteLine( "Status Code: {0}", (int)hresp->StatusCode ); - Console::WriteLine( "Status Description: {0}", hresp->StatusDescription ); - return; - } - Console::WriteLine( "Caught Exception: {0}", e->Message ); - Console::WriteLine( "Stack: {0}", e->StackTrace ); - } - - } - - - // The displayPageContent method display the content of the - // selected page. - static void displayPageContent( Stream^ ReceiveStream ) - { - - // Create an ASCII encoding object. - Encoding^ ASCII = Encoding::ASCII; - - // Define the Byte array to temporary hold the current read bytes. - array^read = gcnew array(512); - Console::WriteLine( "\r\nPage Content...\r\n" ); - - // Read the page content and display it on the console. - // Read the first 512 bytes. - int bytes = ReceiveStream->Read( read, 0, 512 ); - while ( bytes > 0 ) - { - Console::Write( ASCII->GetString( read, 0, bytes ) ); - bytes = ReceiveStream->Read( read, 0, 512 ); - } - - Console::WriteLine( "" ); - } - -}; - - -// -// The CustomBasic class creates a custom Basic authentication by implementing the -// IAuthenticationModule interface. In particular it performs the following -// tasks: -// 1) Defines and initializes the required properties. -// 2) Impements the Authenticate method. -public ref class CustomBasic: public IAuthenticationModule -{ -private: - - // - String^ m_authenticationType; - bool m_canPreAuthenticate; - -public: - - // The CustomBasic constructor initializes the properties of the customized - // authentication. - CustomBasic() - { - m_authenticationType = "Basic"; - m_canPreAuthenticate = false; - } - - - property String^ AuthenticationType - { - - // Define the authentication type. This type is then used to identify this - // custom authentication module. The default is set to Basic. - virtual String^ get() - { - return m_authenticationType; - } - - } - - property bool CanPreAuthenticate - { - - // Define the pre-authentication capabilities for the module. The default is set - // to false. - virtual bool get() - { - return m_canPreAuthenticate; - } - - } - - // - // The checkChallenge method checks if the challenge sent by the HttpWebRequest - // contains the correct type (Basic) and the correct domain name. - // Note: the challenge is in the form BASIC REALM=S"DOMAINNAME" - // and you must assure that the Internet Web site resides on a server whose - // domain name is equal to DOMAINAME. - bool checkChallenge( String^ Challenge, String^ domain ) - { - bool challengePasses = false; - String^ tempChallenge = Challenge->ToUpper(); - - // Verify that this is a Basic authorization request and the requested domain - // is correct. - // Note: When the domain is an empty string the following code only checks - // whether the authorization type is Basic. - if ( tempChallenge->IndexOf( "BASIC" ) != -1 ) - if ( String::Compare( domain, String::Empty ) != 0 ) - if ( tempChallenge->IndexOf( domain->ToUpper() ) != -1 ) - challengePasses = true; // The domain is not allowed and the authorization type is Basic. - else - challengePasses = false; - - else - challengePasses = true; - - - return challengePasses; - } - - - // - // The PreAuthenticate method specifies if the authentication implemented - // by this class allows pre-authentication. - // Even if you do not use it, this method must be implemented to obey to the rules - // of interface implemebtation. - // In this case it always returns null. - virtual Authorization^ PreAuthenticate( WebRequest^ request, ICredentials^ credentials ) - { - return nullptr; - } - - - // - // - // Authenticate is the core method for this custom authentication. - // When an internet resource requests authentication, the WebRequest::GetResponse - // method calls the AuthenticationManager::Authenticate method. This method, in - // turn, calls the Authenticate method on each of the registered authentication - // modules, in the order they were registered. When the authentication is - // complete an Authorization object is returned to the WebRequest, as - // shown by this routine's retun type. - virtual Authorization^ Authenticate( String^ challenge, WebRequest^ request, ICredentials^ credentials ) - { - Encoding^ ASCII = Encoding::ASCII; - - // Get the username and password from the credentials - NetworkCredential^ MyCreds = credentials->GetCredential( request->RequestUri, "Basic" ); - if ( PreAuthenticate( request, credentials ) == nullptr ) - Console::WriteLine( "\n Pre-authentication is not allowed." ); - else - Console::WriteLine( "\n Pre-authentication is allowed." ); - - - // Verify that the challenge satisfies the authorization requirements. - bool challengeOk = checkChallenge( challenge, MyCreds->Domain ); - if ( !challengeOk ) - return nullptr; - - - // - // Create the encrypted string according to the Basic authentication format as - // follows: - // a)Concatenate username and password separated by colon; - // b)Apply ASCII encoding to obtain a stream of bytes; - // c)Apply Base64 Encoding to this array of bytes to obtain the encoded - // authorization. - String^ BasicEncrypt = String::Concat( MyCreds->UserName, ":", MyCreds->Password ); - String^ BasicToken = String::Concat( "Basic ", Convert::ToBase64String( ASCII->GetBytes( BasicEncrypt ) ) ); - - // Create an Authorization object using the above encoded authorization. - Authorization^ resourceAuthorization = gcnew Authorization( BasicToken ); - - // Get the Message property which contains the authorization string that the - // client returns to the server when accessing protected resources - Console::WriteLine( "\n Authorization Message: {0}", resourceAuthorization->Message ); - - // Get the Complete property which is set to true when the authentication process - // between the client and the server is finished. - Console::WriteLine( "\n Authorization Complete: {0}", resourceAuthorization->Complete ); - - // - Console::WriteLine( "\n Authorization ConnectionGroupId: {0}", resourceAuthorization->ConnectionGroupId ); - return resourceAuthorization; - } - - // -}; - - -// -// This is the program entry point. It allows the user to enter -// their credentials and the Internet resource (Web page) to access. -// It also unregisters the standard and registers the customized basic -// authentication. -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length < 4 ) - TestAuthentication::showusage(); - else - { - - // Read the user's credentials. - TestAuthentication::uri = args[ 1 ]; - TestAuthentication::username = args[ 2 ]; - TestAuthentication::password = args[ 3 ]; - if ( args->Length == 4 ) - TestAuthentication::domain = String::Empty; // If the domain exists, store it. Usually the domain name - else - TestAuthentication::domain = args[ 4 ]; - - // is by default the name of the server hosting the Internet - // resource. - // Instantiate the custom Basic authentication module. - CustomBasic^ customBasicModule = gcnew CustomBasic; - - // Unregister the standard Basic authentication module. - AuthenticationManager::Unregister( "Basic" ); - - // Register the custom Basic authentication module. - AuthenticationManager::Register( customBasicModule ); - - // Display registered Authorization modules. - TestAuthentication::displayRegisteredModules(); - - // Read the specified page and display it on the console. - TestAuthentication::getPage( TestAuthentication::uri ); - } -} - -// -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Dns/CPP/dnsnewmethods.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Dns/CPP/dnsnewmethods.cpp deleted file mode 100644 index 6c79604640fee..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Dns/CPP/dnsnewmethods.cpp +++ /dev/null @@ -1,145 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Threading; -using namespace System::Collections; - -ref class DNSChanges -{ - -// -public: - static void DoGetHostEntry(String^ hostname) - { - IPHostEntry^ host = Dns::GetHostEntry(hostname); - - Console::WriteLine("GetHostEntry({0}) returns:", host->HostName); - - for (int i = 0; i < host->AddressList->Length; i++) - { - Console::WriteLine(" {0}", host->AddressList[i]->ToString()); - } - } -// - -// -public: - static void DoGetHostEntry(IPAddress^ address) - { - IPHostEntry^ host = Dns::GetHostEntry(address); - - Console::WriteLine("GetHostEntry({0}) returns HostName: {1}", address->ToString(), host->HostName); - } -// - -// - // Determine the Internet Protocol(IP) addresses for a host. -public: - static void DoGetHostAddress(String^ hostname) - { - array^ addresses; - addresses = Dns::GetHostAddresses(hostname); - - Console::WriteLine("GetHostAddresses({0}) returns:", hostname); - for each (IPAddress^ address in addresses) - { - Console::Write("{0} ", address); - } - Console::WriteLine(""); - } -// - -// - // Signals when the resolve has finished. -public: - static ManualResetEvent^ GetHostEntryFinished = - gcnew ManualResetEvent(false); - - // define the state object for the callback. - // use hostName to correlate calls with the proper result. - ref class ResolveState - { - public: - String^ hostName; - IPHostEntry^ resolvedIPs; - - ResolveState(String^ host) - { - hostName = host; - } - - property IPHostEntry^ IPs - { - IPHostEntry^ get() - { - return resolvedIPs; - } - - void set(IPHostEntry^ IPs) - { - resolvedIPs = IPs; - } - } - - property String^ host - { - String^ get() - { - return hostName; - } - - void set(String^ host) - { - hostName = host; - } - } - }; - - // Record the IPs in the state object for later use. - static void GetHostEntryCallback(IAsyncResult^ ar) - { - ResolveState^ ioContext = (ResolveState^)(ar->AsyncState); - - ioContext->IPs = Dns::EndGetHostEntry(ar); - GetHostEntryFinished->Set(); - } - - - // Determine the Internet Protocol(IP) addresses for this - // host asynchronously. -public: - static void DoGetHostEntryAsync(String^ hostName) - { - GetHostEntryFinished->Reset(); - ResolveState^ ioContext = gcnew ResolveState(hostName); - - Dns::BeginGetHostEntry(ioContext->host, - gcnew AsyncCallback(GetHostEntryCallback), ioContext); - // Wait here until the resolve completes - // (the callback calls .Set()) - GetHostEntryFinished->WaitOne(); - - Console::WriteLine("EndGetHostEntry({0}) returns:", ioContext->host); - - for (int i = 0; i < ioContext->IPs->AddressList->Length; i++) - { - Console::WriteLine(" {0}", ioContext->IPs->AddressList[i]->ToString()); - } - -// for each (IPAddress^ address in ioContext->IPs) -// { -// Console::WriteLine("{0} ", address); -// } - } -// -}; - -int main() -{ - DNSChanges::DoGetHostEntry("www.contoso.com"); - DNSChanges::DoGetHostEntry(IPAddress::Parse("127.0.0.1")); - DNSChanges::DoGetHostAddress("www.contoso.com"); - DNSChanges::DoGetHostEntryAsync(""); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.FileWebRequest.GetResponse/CPP/getresponse.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.FileWebRequest.GetResponse/CPP/getresponse.cpp deleted file mode 100644 index 5896e74c960dd..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.FileWebRequest.GetResponse/CPP/getresponse.cpp +++ /dev/null @@ -1,120 +0,0 @@ - - -// -// This program contains examples for the following types and methods: -// System::Net::FileWebRequest::GetResponse; -// -// -// -// This program shows how to use the FileWebRequest::GetResponse method -// to read and display the content of a file passed by the user. -// Note. In order for this program to work, the folder containing the test file -// must be shared with its permissions set to allow read access. -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -ref class TestGetResponse -{ -private: - static FileWebResponse^ myFileWebResponse; - static void showUsage() - { - Console::WriteLine( "\nPlease enter file name:" ); - Console::WriteLine( "Usage: cs_getresponse //" ); - Console::WriteLine( "Example: cs_getresponse ndpue/temp/hello.txt" ); - } - - static bool makeFileRequest( String^ fileName ) - { - bool requestOk = false; - try - { - Uri^ myUrl = gcnew Uri( String::Format( "file://{0}", fileName ) ); - - // Create a Filewebrequest object using the passed Uri. - FileWebRequest^ myFileWebRequest = dynamic_cast(WebRequest::Create( myUrl )); - - // Get the FileWebResponse object. - myFileWebResponse = dynamic_cast(myFileWebRequest->GetResponse()); - requestOk = true; - } - catch ( WebException^ e ) - { - Console::WriteLine( "WebException: {0}", e->Message ); - } - catch ( UriFormatException^ e ) - { - Console::WriteLine( "UriFormatWebException: {0}", e->Message ); - } - - return requestOk; - } - - static void readFile() - { - try - { - - // Create the file stream. - Stream^ receiveStream = myFileWebResponse->GetResponseStream(); - - // Create a reader object to read the file content. - StreamReader^ readStream = gcnew StreamReader( receiveStream ); - - // Create a local buffer for a temporary storage of the - // read data. - array^readBuffer = gcnew array(256); - - // Read the first up to 256 bytes. - int count = readStream->Read( readBuffer, 0, 256 ); - Console::WriteLine( "The file content is:" ); - Console::WriteLine( "" ); - - // Loop to read the remaining bytes in 256 blocks - // and display the data on the console. - while ( count > 0 ) - { - String^ str = gcnew String( readBuffer,0,count ); - Console::WriteLine( "{0}\n", str ); - count = readStream->Read( readBuffer, 0, 256 ); - } - readStream->Close(); - - // Release the response object resources. - myFileWebResponse->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "The WebException: {0}", e->Message ); - } - catch ( UriFormatException^ e ) - { - Console::WriteLine( "The UriFormatException: {0}", e->Message ); - } - - } - - -public: - static void Main() - { - array^args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - showUsage(); - else - { - if ( makeFileRequest( args[ 1 ] ) ) - readFile(); - } - } - -}; - -int main() -{ - TestGetResponse::Main(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.FileWebRequest/CPP/getrequeststream.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.FileWebRequest/CPP/getrequeststream.cpp deleted file mode 100644 index 0dc5fc9d3fe4c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.FileWebRequest/CPP/getrequeststream.cpp +++ /dev/null @@ -1,134 +0,0 @@ - - -// -// This program contains examples for the following types and methods: -// System::Net::FileWebRequest (Snippet1); System::Net::FileWebRequest::Method (Snippet2); -// System::Net::FileWebRequest::Timeout (Snippet3); -// System::Net::FileWebRequest::ContentLength (Snippet4). -// System::Net::FileWebRequest::GetRequestStream (Snippet5); -// -// -// This program creates or open a text file in which it stores a string. -// Both file and string are passed by the user. -// Note. In order for this program to work, the folder containing the test file -// must be shared with its permissions set to allow write access. -#using - -using namespace System; -using namespace System::IO; -using namespace System::Text; -using namespace System::Net; -ref class TestGetRequestStream -{ -private: - static FileWebRequest^ myFileWebRequest; - static void showUsage() - { - Console::WriteLine( "\nPlease enter file name and timeout :" ); - Console::WriteLine( "Usage: cs_getrequeststream // timeout" ); - Console::WriteLine( "Example: cs_getrequeststream ndpue/temp/hello.txt 1000" ); - Console::WriteLine( "Small timeout values (for instance 3 or less) cause a timeout exception." ); - } - - static void makeFileRequest( String^ fileName, int timeout ) - { - try - { - - // - // - // Create a Uri object. - Uri^ myUrl = gcnew Uri( String::Format( "file://{0}", fileName ) ); - - // Create a FileWebRequest object. - myFileWebRequest = dynamic_cast(WebRequest::CreateDefault( myUrl )); - - // Set the timeout to the value selected by the user. - myFileWebRequest->Timeout = timeout; - - // - // Set the Method property to POST - myFileWebRequest->Method = "POST"; - - // - } - catch ( WebException^ e ) - { - Console::WriteLine( "WebException: {0}", e->Message ); - } - catch ( UriFormatException^ e ) - { - Console::WriteLine( "UriFormatWebException: {0}", e->Message ); - } - - } - - static void writeToFile() - { - try - { - - // - // Enter the string to write into the file. - Console::WriteLine( "Enter the string you want to write:" ); - String^ userInput = Console::ReadLine(); - - // Convert the string to Byte array. - ASCIIEncoding^ encoder = gcnew ASCIIEncoding; - array^byteArray = encoder->GetBytes( userInput ); - - // - // Set the ContentLength property. - myFileWebRequest->ContentLength = byteArray->Length; - String^ contentLength = myFileWebRequest->ContentLength.ToString(); - Console::WriteLine( "\nThe content length is {0}.", contentLength ); - - // - // Get the file stream handler to write into the file. - Stream^ readStream = myFileWebRequest->GetRequestStream(); - - // Write to the file stream. - // Note. In order for this to work the file must be accessible - // on the network. This can be accomplished by setting the property - // sharing of the folder containg the file. The permissions - // can be set so everyone can modify the file. - // FileWebRequest::Credentials property cannot be used for this purpose. - readStream->Write( byteArray, 0, userInput->Length ); - Console::WriteLine( "\nThe String you entered was successfully written into the file." ); - - // - readStream->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "The WebException: {0}", e->Message ); - } - catch ( UriFormatException^ e ) - { - Console::WriteLine( "The UriFormatWebException: {0}", e->Message ); - } - - } - - -public: - static void Main() - { - array^args = Environment::GetCommandLineArgs(); - if ( args->Length < 3 ) - showUsage(); - else - { - makeFileRequest( args[ 1 ], Int32::Parse( args[ 2 ] ) ); - writeToFile(); - } - } - -}; - -int main() -{ - TestGetRequestStream::Main(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.HttpWebRequest.BeginGetResponse/CPP/begingetresponse.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.HttpWebRequest.BeginGetResponse/CPP/begingetresponse.cpp deleted file mode 100644 index 0a03d4e4da187..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.HttpWebRequest.BeginGetResponse/CPP/begingetresponse.cpp +++ /dev/null @@ -1,195 +0,0 @@ - - -/** -* File name: Begingetresponse::cs -* This program shows how to use BeginGetResponse and EndGetResponse methods of the -* HttpWebRequest class. It also shows how to create a customized timeout. -* This is important in case od asynchronous request, because the NCL classes do -* not provide any off-the-shelf asynchronous timeout. -* It uses an asynchronous approach to get the response for the HTTP Web Request. -* The RequestState class is defined to chekc the state of the request. -* After a HttpWebRequest Object* is created, its BeginGetResponse method is used to start -* the asynchronous response phase. -* Finally, the EndGetResponse method is used to end the asynchronous response phase . -*/ -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; -using namespace System::Threading; -public ref class RequestState -{ -private: - - // This class stores the State of the request. - const int BUFFER_SIZE; - -public: - StringBuilder^ requestData; - array^BufferRead; - HttpWebRequest^ request; - HttpWebResponse^ response; - Stream^ streamResponse; - RequestState() - : BUFFER_SIZE( 1024 ) - { - BufferRead = gcnew array(BUFFER_SIZE); - requestData = gcnew StringBuilder( "" ); - request = nullptr; - streamResponse = nullptr; - } - -}; - -ref class HttpWebRequest_BeginGetResponse -{ -public: - static ManualResetEvent^ allDone = gcnew ManualResetEvent( false ); - literal int BUFFER_SIZE = 1024; - literal int DefaultTimeOut = 120000; // 2 minute timeout - - // Abort the request if the timer fires. - static void TimeoutCallback( Object^ state, bool timedOut ) - { - if ( timedOut ) - { - HttpWebRequest^ request = dynamic_cast(state); - if ( request != nullptr ) - { - request->Abort(); - } - } - } - - static void RespCallback( IAsyncResult^ asynchronousResult ) - { - try - { - - // State of request is asynchronous. - RequestState^ myRequestState = dynamic_cast(asynchronousResult->AsyncState); - HttpWebRequest^ myHttpWebRequest = myRequestState->request; - myRequestState->response = dynamic_cast(myHttpWebRequest->EndGetResponse( asynchronousResult )); - - // Read the response into a Stream object. - Stream^ responseStream = myRequestState->response->GetResponseStream(); - myRequestState->streamResponse = responseStream; - - // Begin the Reading of the contents of the HTML page and print it to the console. - IAsyncResult^ asynchronousInputRead = responseStream->BeginRead( myRequestState->BufferRead, 0, BUFFER_SIZE, gcnew AsyncCallback( ReadCallBack ), myRequestState ); - return; - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nRespCallback Exception raised!" ); - Console::WriteLine( "\nMessage: {0}", e->Message ); - Console::WriteLine( "\nStatus: {0}", e->Status ); - } - - allDone->Set(); - } - - static void ReadCallBack( IAsyncResult^ asyncResult ) - { - try - { - RequestState^ myRequestState = dynamic_cast(asyncResult->AsyncState); - Stream^ responseStream = myRequestState->streamResponse; - int read = responseStream->EndRead( asyncResult ); - - // Read the HTML page and then print it to the console. - if ( read > 0 ) - { - myRequestState->requestData->Append( Encoding::ASCII->GetString( myRequestState->BufferRead, 0, read ) ); - IAsyncResult^ asynchronousResult = responseStream->BeginRead( myRequestState->BufferRead, 0, BUFFER_SIZE, gcnew AsyncCallback( ReadCallBack ), myRequestState ); - return; - } - else - { - Console::WriteLine( "\nThe contents of the Html page are : " ); - if ( myRequestState->requestData->Length > 1 ) - { - String^ stringContent; - stringContent = myRequestState->requestData->ToString(); - Console::WriteLine( stringContent ); - } - Console::WriteLine( "Press any key to continue.........." ); - Console::ReadLine(); - responseStream->Close(); - } - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nReadCallBack Exception raised!" ); - Console::WriteLine( "\nMessage: {0}", e->Message ); - Console::WriteLine( "\nStatus: {0}", e->Status ); - } - - allDone->Set(); - } - -}; - -int main() -{ - try - { - - // Create a HttpWebrequest object to the desired URL. - HttpWebRequest^ myHttpWebRequest = dynamic_cast(WebRequest::Create( "http://www.contoso.com" )); - - /** - * If you are behind a firewall and you do not have your browser proxy setup - * you need to use the following proxy creation code. - - // Create a proxy object. - WebProxy* myProxy = new WebProxy(); - - // Associate a new Uri object to the _wProxy object, using the proxy address - // selected by the user. - myProxy.Address = new Uri(S"http://myproxy"); - - // Finally, initialize the Web request object proxy property with the _wProxy - // object. - myHttpWebRequest.Proxy=myProxy; - ***/ - // Create an instance of the RequestState and assign the previous myHttpWebRequest - // object to its request field. - RequestState^ myRequestState = gcnew RequestState; - myRequestState->request = myHttpWebRequest; - - // Start the asynchronous request. - IAsyncResult^ result = dynamic_cast(myHttpWebRequest->BeginGetResponse( gcnew AsyncCallback( HttpWebRequest_BeginGetResponse::RespCallback ), myRequestState )); - - // this line impliments the timeout, if there is a timeout, the callback fires and the request becomes aborted - ThreadPool::RegisterWaitForSingleObject( result->AsyncWaitHandle, gcnew WaitOrTimerCallback( HttpWebRequest_BeginGetResponse::TimeoutCallback ), myHttpWebRequest, HttpWebRequest_BeginGetResponse::DefaultTimeOut, true ); - - // The response came in the allowed time. The work processing will happen in the - // callback function. - HttpWebRequest_BeginGetResponse::allDone->WaitOne(); - - // Release the HttpWebResponse resource. - myRequestState->response->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nMain Exception raised!" ); - Console::WriteLine( "\nMessage: {0}", e->Message ); - Console::WriteLine( "\nStatus: {0}", e->Status ); - Console::WriteLine( "Press any key to continue.........." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nMain Exception raised!" ); - Console::WriteLine( "Source : {0} ", e->Source ); - Console::WriteLine( "Message : {0} ", e->Message ); - Console::WriteLine( "Press any key to continue.........." ); - Console::Read(); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPAddress.IPv6NoneAnyLoopback/CPP/noneanyloopback.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPAddress.IPv6NoneAnyLoopback/CPP/noneanyloopback.cpp deleted file mode 100644 index 826067e44c3a9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPAddress.IPv6NoneAnyLoopback/CPP/noneanyloopback.cpp +++ /dev/null @@ -1,140 +0,0 @@ -/** -* File name: ipaddress_none_any_loopback.cs -* Exercise the IPAddress IPv6None, IPv6Any, and IPv6Loopback properties. -* Usage: cs_nal.exe. -**/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; - -// -// This method displays the value of the current host loopback address in -// standard compressed format. -void displayIPv6LoopBackAddress() -{ - try - { - // Get the loopback address. - IPAddress^ loopBack = IPAddress::IPv6Loopback; - - // Transform the loop-back address to a string using the overladed - // ToString() method. Note that the resulting string is in the compact - // form: "::1". - String^ ipv6LoopBack = loopBack->ToString(); - Console::WriteLine( "The IPv6 Loopback address is: {0}", ipv6LoopBack ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "->Item[displayIPv6LoopBackAddress] Exception: {0}", e ); - } -} -// - -// -// This method displays the value of the current host's Any address in -// standard compressed format. The Any address is used by the host to enable -// listening to client activities on all the interfaces for a given port. -void displayIPv6AnyAddress() -{ - try - { - // Get the Any address. - IPAddress^ any = IPAddress::IPv6Any; - - // Transform the Any address to a string using the overloaded - // ToString() method. Note that the resulting string is in the compact - // form: "::". - String^ ipv6Any = any->ToString(); - - // Display the Any address. - Console::WriteLine( "The IPv6 Any address is: {0}", ipv6Any ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "->Item[displayIPv6AnyAddress] Exception: {0}", e ); - } -} -// - -// -// This method displays the value of the current host's None address in -// standard compressed format. The None address is used by the host to disable -// listening to client activities on all the interfaces. -void displayIPv6NoneAddress() -{ - try - { - // Get the None address. - IPAddress^ none = IPAddress::IPv6None; - - // Transform the None address to a string using the overloaded - // ToString() method. Note that the resulting string is in the compact - // form: "::". - String^ ipv6None = none->ToString(); - - Console::WriteLine( "The IPv6 None address is: {0}", ipv6None ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "->Item[displayIPv6NoneAddress] Exception: {0}", e ); - } -} -// - -// -// This function checks whether the passed string represents a loop-back address. -void checkIPv6LoopBackAddress( String^ ipAddress ) -{ - try - { - // Parse the passed String* to obtain the internal address - // representation. - IPAddress^ loopBack = IPAddress::Parse( ipAddress ); - - // Verify that the address is a loopback address. - bool isLoopBack = IPAddress::IsLoopback( loopBack ); - - // Build the message. - String^ msg; - if ( isLoopBack ) - { - msg = " is a loop back address."; - } - else - { - msg = " is not a loop back address."; - } - - // Display the results. - Console::WriteLine( String::Concat( ipAddress, msg ) ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "->Item[displayIPv6LoopBackAddress] Exception: {0}", e ); - } -} -// - -int main() -{ - // Verify that the current host supports IPv6 and also call WSAStartup. - // If you do not use any IPv6 methods that call WSAStartup, you will get a - // SocketException when using IPv6Loopback, IPv6Any or IPv6None. - - bool ipv6Supported = Socket::SupportsIPv6; - - // Display current host Loopback address. - displayIPv6LoopBackAddress(); - - // Display the current host's Any address. - displayIPv6AnyAddress(); - - // Display the current host's None address. - displayIPv6NoneAddress(); - - // Check that this is a loopback address. - checkIPv6LoopBackAddress( "0::1" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPAddress.IsLoopback/CPP/isloopback.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPAddress.IsLoopback/CPP/isloopback.cpp deleted file mode 100644 index 8c206f281c13a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPAddress.IsLoopback/CPP/isloopback.cpp +++ /dev/null @@ -1,75 +0,0 @@ - - -/* -This program checks whether the specified address is a loopback address. -It invokes the IPAddress Parse method to translate the address -input String* into the correct internal format. -The IP address String* must be in dotted-quad notation for IPv4 or in -colon-hexadecimal notation for IPv6. -*/ -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; - -// This method calls the IPAddress::Parse method to check if the -// passed ipAddress parameter is in the correct format. -// Then it checks whether it represents a loopback address. -// Finally, it displays the results. -void parse( String^ ipAddress ) -{ - String^ loopBack = " is not a loopback address."; - try - { - - // Perform syntax check by parsing the address string entered by the user. - IPAddress^ address = IPAddress::Parse( ipAddress ); - - // Perform semantic check by verifying that the address is a valid IPv4 - // or IPv6 loopback address. - if ( IPAddress::IsLoopback( address ) && address->AddressFamily == AddressFamily::InterNetworkV6 ) - loopBack = String::Concat( " is an IPv6 loopback address whose internal format is: ", address, "." ); - else - if ( IPAddress::IsLoopback( address ) && address->AddressFamily == AddressFamily::InterNetwork ) - loopBack = String::Concat( " is an IPv4 loopback address whose internal format is: ", address, "." ); - - // Display the results. - Console::WriteLine( "Your input address: \" {0} \" {1}", ipAddress, loopBack ); - } - catch ( FormatException^ e ) - { - Console::WriteLine( "FormatException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - -} - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length == 1 ) - { - - // No parameters entered. Display program usage. - Console::WriteLine( "Please enter an IP address." ); - Console::WriteLine( "Usage: >ipaddress_isloopback any IPv4 or IPv6 address." ); - Console::WriteLine( "Example: >ipaddress_isloopback 127.0.0.1" ); - Console::WriteLine( "Example: >ipaddress_isloopback 0:0:0:0:0:0:0:1" ); - } - else - parse( args[ 1 ] ); - - - // Parse the address string entered by the user. -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPAddress.Parse/CPP/parse.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPAddress.Parse/CPP/parse.cpp deleted file mode 100644 index e6b401756d01a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPAddress.Parse/CPP/parse.cpp +++ /dev/null @@ -1,73 +0,0 @@ - - -/* -This program converts a String* containing an IP address, in dotted-quad notation for -IPv4 or in colon-hexadecimal for IPv6, into an instance of the IPAddress class. -Then it uses the overloaded IPAddress ToString method to display the address in -its standard notation. -*/ -// -#using - -using namespace System; -using namespace System::Net; - -// This method calls the IPAddress::Parse method to check the ipAddress -// input string. If the ipAddress argument represents a syntatically correct IPv4 or -// IPv6 address, the method displays the Parse output into quad-notation or -// colon-hexadecimal notation, respectively. Otherwise, it displays an -// error message. -void parse( String^ ipAddress ) -{ - try - { - - // Create an instance of IPAddress for the specified address string (in - // dotted-quad, or colon-hexadecimal notation). - IPAddress^ address = IPAddress::Parse( ipAddress ); - - // Display the address in standard notation. - Console::WriteLine( "Parsing your input string: \"{0}\" produces this address (shown in its standard notation): {1}", ipAddress, address ); - } - catch ( ArgumentNullException^ e ) - { - Console::WriteLine( "ArgumentNullException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( FormatException^ e ) - { - Console::WriteLine( "FormatException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - -} - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - String^ IPaddress; - if ( args->Length == 1 ) - { - Console::WriteLine( "Please enter an IP address." ); - Console::WriteLine( "Usage: >cs_parse any IPv4 or IPv6 address." ); - Console::WriteLine( "Example: >cs_parse 127.0.0.1" ); - Console::WriteLine( "Example: >cs_parse 0:0:0:0:0:0:0:1" ); - return 0; - } - else - IPaddress = args[ 1 ]; - - - // Get the list of the IPv6 addresses associated with the requested host. - parse( IPaddress ); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPAddress/CPP/ipaddress.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPAddress/CPP/ipaddress.cpp deleted file mode 100644 index 2edddb778a4d6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPAddress/CPP/ipaddress.cpp +++ /dev/null @@ -1,142 +0,0 @@ - - -// -// File name: ipaddress.cpp -// The snippets contained here apply to: -// 1) System.Net.IPAddress.AddressFamily, snippet3. -// 2) System.Net.IPAddess.ScopeId, snippet3. -// more -// -// -// This program shows how to use the IPAddress class to obtain a server -// IP addressess and related information. -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text::RegularExpressions; - -/** -* The IPAddresses method obtains the selected server IP address information. -* It then displays the type of address family supported by the server and its -* IP address in standard and byte format. -**/ -void IPAddresses( String^ server ) -{ - try - { - System::Text::ASCIIEncoding^ ASCII = gcnew System::Text::ASCIIEncoding; - - // Get server related information. - IPHostEntry^ heserver = Dns::GetHostEntry( server ); - - // Loop on the AddressList - System::Collections::IEnumerator^ myEnum = heserver->AddressList->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - IPAddress^ curAdd = safe_cast(myEnum->Current); - - // - // Display the type of address family supported by the server. If the - // server is IPv6-enabled this value is: InterNetworkV6. If the server - // is also IPv4-enabled there will be an additional value of InterNetwork. - Console::WriteLine( "AddressFamily: {0}", curAdd->AddressFamily ); - - // Display the ScopeId property in case of IPV6 addresses. - if ( curAdd->AddressFamily.ToString() == ProtocolFamily::InterNetworkV6.ToString() ) - Console::WriteLine( "Scope Id: {0}", curAdd->ScopeId ); - // - - // Display the server IP address in the standard format. In - // IPv4 the format will be dotted-quad notation, in IPv6 it will be - // in colon-hexadecimal notation. - Console::WriteLine( "Address: {0}", curAdd ); - - // Display the server IP address in byte format. - Console::Write( "AddressBytes: " ); - - // - array^bytes = curAdd->GetAddressBytes(); - for ( int i = 0; i < bytes->Length; i++ ) - { - Console::Write( bytes[ i ] ); - - } - // - - Console::WriteLine( "\r\n" ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "[DoResolve] Exception: {0}", e ); - } - -} - - -// This IPAddressAdditionalInfo displays additional server address information. -void IPAddressAdditionalInfo() -{ - try - { - // Display the flags that show if the server supports IPv4 or IPv6 - // address schemas. - Console::WriteLine( "\r\nSupportsIPv4: {0}", Socket::SupportsIPv4 ); - Console::WriteLine( "SupportsIPv6: {0}", Socket::SupportsIPv6 ); - if ( Socket::SupportsIPv6 ) - { - // Display the server Any address. This IP address indicates that the server - // should listen for client activity on all network interfaces. - Console::WriteLine( "\r\nIPv6Any: {0}", IPAddress::IPv6Any ); - - // Display the server loopback address. - Console::WriteLine( "IPv6Loopback: {0}", IPAddress::IPv6Loopback ); - - // Used during autoconfiguration first phase. - Console::WriteLine( "IPv6None: {0}", IPAddress::IPv6None ); - Console::WriteLine( "IsLoopback(IPv6Loopback): {0}", IPAddress::IsLoopback( IPAddress::IPv6Loopback ) ); - } - Console::WriteLine( "IsLoopback(Loopback): {0}", IPAddress::IsLoopback( IPAddress::Loopback ) ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "[IPAddresses] Exception: {0}", e ); - } - -} - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - String^ server = nullptr; - - // Define a regular expression to parse user's input. - // This is a security check. It allows only - // alphanumeric input string between 2 to 40 character long. - Regex^ rex = gcnew Regex( "^[a-zA-Z]\\w{1,39}$" ); - if ( args->Length < 2 ) - { - // If no server name is passed as an argument to this program, use the current - // server name as default. - server = Dns::GetHostName(); - Console::WriteLine( "Using current host: {0}", server ); - } - else - { - server = args[ 1 ]; - if ( !(rex->Match(server))->Success ) - { - Console::WriteLine( "Input string format not allowed." ); - return -1; - } - } - - // Get the list of the addresses associated with the requested server. - IPAddresses( server ); - - // Get additional address information. - IPAddressAdditionalInfo(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPEndPoint/CPP/ipendpoint.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPEndPoint/CPP/ipendpoint.cpp deleted file mode 100644 index ddd7bf4588d82..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.IPEndPoint/CPP/ipendpoint.cpp +++ /dev/null @@ -1,230 +0,0 @@ - - -// File name:ipendpoint.cs. -// -// This program contains snippets applicable to the following: -// System.Net.IPEndPoint (Snippet1); -// System.Net.IPEndPoint.IPEndPoint(IPAddress, int) (Snippet2); -// System.Net.IPEndPoint.Address (Snippet3); -// System.Net.IPEndPoint.AddressFamily (Snippet3); -// System.Net.IPEndPoint.Port (Snippet3); -// System.Net.IPEndPoint.Serialize (Snippet4); -// System.Net.IPEndPoint.Create (Snippet5); -// -// -// This example uses the IPEndPoint class and its members to display the home page -// of the server selected by the user. -#using - -using namespace System; -using namespace System::Text; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text::RegularExpressions; - -// The getPage function gets the server's home page content by -// recreating the server's endpoint from the original serialized endpoint. -// Then it creates a new socket and connects it to the endpoint. -String^ getPage( String^ server, SocketAddress^ socketAddress ) -{ - //Set up variables and string to write to the server. - Encoding^ ASCII = Encoding::ASCII; - String^ Get = String::Format( "GET / HTTP/1.1\r\nHost: {0}\r\nConnection: Close\r\n\r\n", server ); - array^ByteGet = ASCII->GetBytes( Get ); - array^RecvBytes = gcnew array(256); - String^ strRetPage = nullptr; - Socket^ socket = nullptr; - - // - // Recreate the connection endpoint from the serialized information. - IPEndPoint^ endpoint = gcnew IPEndPoint( (__int64)0,0 ); - IPEndPoint^ clonedIPEndPoint = dynamic_cast(endpoint->Create( socketAddress )); - Console::WriteLine( "clonedIPEndPoint: {0}", clonedIPEndPoint ); - // - - Console::WriteLine( "Press any key to continue." ); - Console::ReadLine(); - try - { - // Create a socket object to establish a connection with the server. - socket = gcnew Socket( endpoint->AddressFamily,SocketType::Stream,ProtocolType::Tcp ); - - // Connect to the cloned end point. - socket->Connect( clonedIPEndPoint ); - } - catch ( SocketException^ e ) - { - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - - if ( socket == nullptr ) - return ("Connection to cloned endpoint failed"); - - // Send request to the server. - socket->Send( ByteGet, ByteGet->Length, static_cast(0) ); - - // Receive the server home page content. - Int32 bytes = socket->Receive( RecvBytes, RecvBytes->Length, static_cast(0) ); - - // Read the first 256 bytes. - strRetPage = String::Format( "Default HTML page on {0}:\r\n", server ); - strRetPage = String::Concat( strRetPage, ASCII->GetString( RecvBytes, 0, bytes ) ); - while ( bytes > 0 ) - { - bytes = socket->Receive( RecvBytes, RecvBytes->Length, static_cast(0) ); - strRetPage = String::Concat( strRetPage, ASCII->GetString( RecvBytes, 0, bytes ) ); - } - - socket->Close(); - return strRetPage; -} - -// -// The serializeEndpoint function serializes the endpoint and returns the -// SocketAddress containing the serialized endpoint data. -SocketAddress^ serializeEndpoint( IPEndPoint^ endpoint ) -{ - // Serialize IPEndPoint details to a SocketAddress instance. - SocketAddress^ socketAddress = endpoint->Serialize(); - - // Display the serialized endpoint information. - Console::WriteLine( "Endpoint.Serialize() : {0}", socketAddress ); - Console::WriteLine( "Socket->Family : {0}", socketAddress->Family ); - Console::WriteLine( "Socket->Size : {0}", socketAddress->Size ); - Console::WriteLine( "Press any key to continue." ); - Console::ReadLine(); - return socketAddress; -} -// - -// -void displayEndpointInfo( IPEndPoint^ endpoint ) -{ - Console::WriteLine( "Endpoint->Address : {0}", endpoint->Address ); - Console::WriteLine( "Endpoint->AddressFamily : {0}", endpoint->AddressFamily ); - Console::WriteLine( "Endpoint->Port : {0}", endpoint->Port ); - Console::WriteLine( "Endpoint.ToString() : {0}", endpoint ); - Console::WriteLine( "Press any key to continue." ); - Console::ReadLine(); -} -// - -// The serializeEndpoint function determines the server endpoint and then -// serializes it to obtain the related SocketAddress object. -// Note that in the for loop a temporary socket is created to ensure that -// the current IP address format matches the AddressFamily type. -// In fact, in the case of servers supporting both IPv4 and IPv6, an exception -// may arise if an IP address format does not match the address family type. -SocketAddress^ getSocketAddress( String^ server, int port ) -{ - Socket^ tempSocket = nullptr; - IPHostEntry^ host = nullptr; - SocketAddress^ serializedSocketAddress = nullptr; - try - { - // Get the object containing Internet host information. - host = Dns::Resolve( server ); - - // - // Obtain the IP address from the list of IP addresses associated with the server. - System::Collections::IEnumerator^ myEnum = host->AddressList->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - IPAddress^ address = safe_cast(myEnum->Current); - IPEndPoint^ endpoint = gcnew IPEndPoint( address,port ); - tempSocket = gcnew Socket( endpoint->AddressFamily,SocketType::Stream,ProtocolType::Tcp ); - tempSocket->Connect( endpoint ); - if ( tempSocket->Connected ) - { - // Display the endpoint information. - displayEndpointInfo( endpoint ); - - // Serialize the endpoint to obtain a SocketAddress object. - serializedSocketAddress = serializeEndpoint( endpoint ); - break; - } - else - continue; - } - // - - // Close the temporary socket. - tempSocket->Close(); - } - catch ( SocketException^ e ) - { - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - - return serializedSocketAddress; -} - - -// The requestServerHomePage function obtains the server's home page and returns -// its content. -String^ requestServerHomePage( String^ server, int port ) -{ - String^ strRetPage = nullptr; - - // Get a socket address using the specified server and port. - SocketAddress^ socketAddress = getSocketAddress( server, port ); - if ( socketAddress == nullptr ) - strRetPage = "Connection failed"; // Obtain the server's home page content. - else - strRetPage = getPage( server, socketAddress ); - - return strRetPage; -} - - -// Show to the user how to use this program when wrong input parameters are entered. -void showUsage() -{ - Console::WriteLine( "Enter the server name as follows:" ); - Console::WriteLine( "\tcs_ipendpoint servername" ); -} - - -// This is the program entry point. It allows the user to enter -// a server name that is used to locate its current homepage. -int main() -{ - array^args = Environment::GetCommandLineArgs(); - String^ host = nullptr; - int port = 80; - - // Define a regular expression to parse user's input. - // This is a security check. It allows only - // alphanumeric input string between 2 to 40 character long. - Regex^ rex = gcnew Regex( "^[a-zA-Z]\\w{1,39}$" ); - if ( args->Length < 2 ) - showUsage(); - else - { - String^ message = args[ 1 ]; - if ( (rex->Match(message))->Success ) - { - host = args[ 1 ]; - - // Get the specified server home_page and display its content. - String^ result = requestServerHomePage( host, port ); - Console::WriteLine( result ); - } - else - Console::WriteLine( "Input string format not allowed." ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.ServicePoint/CPP/servicepoint.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.ServicePoint/CPP/servicepoint.cpp deleted file mode 100644 index 8cd7216c8d8c9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.ServicePoint/CPP/servicepoint.cpp +++ /dev/null @@ -1,203 +0,0 @@ - - -// -// This example shows how to use the ServicePoint and ServicePointManager classes. -// The ServicePointManager class uses the ServicePoint class to manage connections -// to a remote host. The networking classes reuse service points for all -// requests to a given URI. In fact, the same ServicePoint object -// is used to issue requests to Internet resources identified by the same -// scheme identifier (for example, HTTP) and host fragment (for example, www.contoso.com). -// This should improve your application performance. -// Reusing service points in this way can help improve application performance. -#using - -using namespace System; -using namespace System::Net; -using namespace System::Threading; -using namespace System::Text::RegularExpressions; -void ShowProperties( ServicePoint^ sp ) -{ - Console::WriteLine( "Done calling FindServicePoint()..." ); - - // - // Display the ServicePoint Internet resource address. - Console::WriteLine( "Address = {0}", sp->Address ); - - // - // - // Display the date and time that the ServicePoint was last - // connected to a host. - Console::WriteLine( "IdleSince = {0}", sp->IdleSince ); - - // Display the maximum length of time that the ServicePoint instance - // is allowed to maintain an idle connection to an Internet - // resource before it is recycled for use in another connection. - Console::WriteLine( "MaxIdleTime = {0}", sp->MaxIdleTime ); - - // - // - Console::WriteLine( "ConnectionName = {0}", sp->ConnectionName ); - - // Display the maximum number of connections allowed on this - // ServicePoint instance. - Console::WriteLine( "ConnectionLimit = {0}", sp->ConnectionLimit ); - - // Display the number of connections associated with this - // ServicePoint instance. - Console::WriteLine( "CurrentConnections = {0}", sp->CurrentConnections ); - - // - // - if ( sp->Certificate == nullptr ) - Console::WriteLine( "Certificate = (null)" ); - else - Console::WriteLine( "Certificate = {0}", sp->Certificate ); - - if ( sp->ClientCertificate == nullptr ) - Console::WriteLine( "Client Certificate = (null)" ); - else - Console::WriteLine( "Client Certificate = {0}", sp->ClientCertificate ); - - Console::WriteLine( "ProtocolVersion = {0}", sp->ProtocolVersion->ToString() ); - Console::WriteLine( "SupportsPipelining = {0}", sp->SupportsPipelining ); - - // - // - Console::WriteLine( "UseNagleAlgorithm = {0} ", sp->UseNagleAlgorithm.ToString() ); - Console::WriteLine( "Expect 100-continue = {0}", sp->Expect100Continue.ToString() ); - - // -} - - -// -void makeWebRequest( int hashCode, String^ Uri ) -{ - HttpWebResponse^ res = nullptr; - - // Make sure that the idle time has elapsed, so that a new - // ServicePoint instance is created. - Console::WriteLine( "Sleeping for 2 sec." ); - Thread::Sleep( 2000 ); - try - { - - // Create a request to the passed URI. - HttpWebRequest^ req = dynamic_cast(WebRequest::Create( Uri )); - Console::WriteLine( "\nConnecting to {0} ............", Uri ); - - // Get the response object. - res = dynamic_cast(req->GetResponse()); - Console::WriteLine( "Connected.\n" ); - ServicePoint^ currentServicePoint = req->ServicePoint; - - // Display new service point properties. - int currentHashCode = currentServicePoint->GetHashCode(); - Console::WriteLine( "New service point hashcode: {0}", currentHashCode ); - Console::WriteLine( "New service point max idle time: {0}", currentServicePoint->MaxIdleTime ); - Console::WriteLine( "New service point is idle since {0}", currentServicePoint->IdleSince ); - - // Check that a new ServicePoint instance has been created. - if ( hashCode == currentHashCode ) - Console::WriteLine( "Service point reused." ); - else - Console::WriteLine( "A new service point created." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - finally - { - if ( res != nullptr ) - res->Close(); - } - -} - - -// -// Show the user how to use this program when wrong inputs are entered. -void showUsage() -{ - Console::WriteLine( "Enter the proxy name as follows:" ); - Console::WriteLine( "\tcs_servicepoint proxyName" ); -} - - -// -int main() -{ - array^args = Environment::GetCommandLineArgs(); - int port = 80; - - // Define a regular expression to parse the user's input. - // This is a security check. It allows only - // alphanumeric input strings between 2 to 40 characters long. - Regex^ rex = gcnew Regex( "^[a-zA-Z]\\w{1,39}$" ); - if ( args->Length < 2 ) - { - showUsage(); - return -1; - } - - String^ proxy = args[ 1 ]; - if ( (rex->Match(proxy))->Success != true ) - { - Console::WriteLine( "Input string format not allowed." ); - return -1; - } - - String^ proxyAdd = String::Format( "http://{0}:{1}", proxy, port ); - - // Create a proxy object. - WebProxy^ DefaultProxy = gcnew WebProxy( proxyAdd,true ); - - // Set the proxy that all HttpWebRequest instances use. - WebRequest::DefaultWebProxy = DefaultProxy; - - // Get the base interface for proxy access for the - // WebRequest-based classes. - IWebProxy^ Iproxy = WebRequest::DefaultWebProxy; - - - // - // Set the maximum number of ServicePoint instances to - // maintain. If a ServicePoint instance for that host already - // exists when your application requests a connection to - // an Internet resource, the ServicePointManager object - // returns this existing ServicePoint instance. If none exists - // for that host, it creates a new ServicePoint instance. - ServicePointManager::MaxServicePoints = 4; - - // Set the maximum idle time of a ServicePoint instance to 10 seconds. - // After the idle time expires, the ServicePoint object is eligible for - // garbage collection and cannot be used by the ServicePointManager. - ServicePointManager::MaxServicePointIdleTime = 10000; - - // - // - ServicePointManager::UseNagleAlgorithm = true; - ServicePointManager::Expect100Continue = true; - ServicePointManager::CheckCertificateRevocationList = true; - ServicePointManager::DefaultConnectionLimit = ServicePointManager::DefaultPersistentConnectionLimit; - - // - // Create the Uri object for the resource you want to access. - Uri^ MS = gcnew Uri( "http://msdn.microsoft.com/" ); - - // Use the FindServicePoint method to find an existing - // ServicePoint object or to create a new one. - ServicePoint^ servicePoint = ServicePointManager::FindServicePoint( MS, Iproxy ); - ShowProperties( servicePoint ); - int hashCode = servicePoint->GetHashCode(); - Console::WriteLine( "Service point hashcode: {0}", hashCode ); - - // Make a request with the same scheme identifier and host fragment - // used to create the previous ServicePoint object. - makeWebRequest( hashCode, "http://msdn.microsoft.com/library/" ); -} - -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.ServicePointWhidbey/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.ServicePointWhidbey/cpp/makefile deleted file mode 100644 index 98dd6b4094a07..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.ServicePointWhidbey/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -System.Net.ServicePointWhidbey.exe : servicepoint.cpp - cl /W4 /clr:pure /FeSystem.Net.ServicePointWhidbey.exe servicepoint.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.ServicePointWhidbey/cpp/servicepoint.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.ServicePointWhidbey/cpp/servicepoint.cpp deleted file mode 100644 index 75524420dc359..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.ServicePointWhidbey/cpp/servicepoint.cpp +++ /dev/null @@ -1,241 +0,0 @@ -// This example shows how to use the ServicePoint and ServicePointManager classes. -// The ServicePointManager class uses the ServicePoint class to manage connections -// to a remote host. The networking classes reuse service points for all -// requests to a given URI. In fact, the same ServicePoint object -// is used to issue requests to Internet resources identified by the same -// scheme identifier (for example, HTTP) and host fragment (for example, www.contoso.com). -// This should improve your application performance. -// Reusing service points in this way can help improve application performance. -#using - -using namespace System; -using namespace System::Security; -using namespace System::Net; -using namespace System::Threading; -using namespace System::Text::RegularExpressions; - -void ShowProperties(ServicePoint^ service) -{ - Console::WriteLine("Done calling FindServicePoint()..."); - - // Display the ServicePoint Internet resource address. - Console::WriteLine("Address = {0} ", service->Address); - - // Display the date and time that the ServicePoint was last - // connected to a host. - Console::WriteLine("IdleSince = {0}", service->IdleSince); - - // Display the maximum length of time that the ServicePoint - // instance is allowed to maintain an idle connection to an - // Internet resource before it is recycled for use in another - // connection. - Console::WriteLine("MaxIdleTime = {0}", service->MaxIdleTime); - - Console::WriteLine("ConnectionName = {0}", - service->ConnectionName); - - // Display the maximum number of connections allowed on this - // ServicePoint instance. - Console::WriteLine("ConnectionLimit = {0}", - service->ConnectionLimit); - - // Display the number of connections associated with this - // ServicePoint instance. - Console::WriteLine("CurrentConnections = {0}", - service->CurrentConnections); - - if (service->Certificate == nullptr) - { - Console::WriteLine("Certificate = (null)"); - } - else - { - Console::WriteLine("Certificate = {0}", service->Certificate); - } - - if (service->ClientCertificate == nullptr) - { - Console::WriteLine("ClientCertificate = (null)"); - } - else - { - Console:: WriteLine("ClientCertificate = {0}", - service->ClientCertificate); - } - - Console::WriteLine("ProtocolVersion = {0}", - service->ProtocolVersion); - Console::WriteLine("SupportsPipelining = {0}", - service->SupportsPipelining); - - Console::WriteLine("UseNagleAlgorithm = {0}", - service->UseNagleAlgorithm.ToString()); - Console::WriteLine("Expect 100-continue = {0}", - service->Expect100Continue.ToString()); -} - -void MakeWebRequest(int hashCode, String^ requestedUri) -{ - HttpWebResponse^ response = nullptr; - - // Make sure that the idle time has elapsed, so that a new - // ServicePoint instance is created. - Console::WriteLine("Sleeping for 2 sec."); - Thread::Sleep(2000); - try - { - // Create a request to the passed URI. - HttpWebRequest^ request = - (HttpWebRequest^)WebRequest::Create(requestedUri); - - Console::WriteLine("\nConnecting to {0} ............", - requestedUri); - - // Get the response object. - response = (HttpWebResponse^) request->GetResponse(); - Console::WriteLine("Connected.\n"); - - ServicePoint^ currentServicePoint = request->ServicePoint; - - // Display new service point properties. - int currentHashCode = currentServicePoint->GetHashCode(); - - Console::WriteLine("New service point hashcode: {0}", - currentHashCode); - Console::WriteLine("New service point max idle time: {0}", - currentServicePoint->MaxIdleTime); - Console::WriteLine("New service point is idle since {0}", - currentServicePoint->IdleSince ); - - // Check that a new ServicePoint instance has been created. - if (hashCode == currentHashCode) - { - Console::WriteLine("Service point reused."); - } - else - { - Console::WriteLine("A new service point created.") ; - } - - } - catch (NotSupportedException^ ex) - { - Console::WriteLine( - "The request scheme specified in {0} has not been registered.", - requestedUri); - Console::WriteLine("Source : {0}", ex->Source); - Console::WriteLine("Message : {0}", ex->Message); - } - catch (SecurityException^ ex) - { - Console::WriteLine( - "You do not have permission to connect to {0}.", - requestedUri); - Console::WriteLine("Source : {0}", ex->Source); - Console::WriteLine("Message : {0}", ex->Message); - } - catch (UriFormatException^ ex) - { - Console::WriteLine( - "The URI specified in {0} is not a valid URI.", - requestedUri); - Console::WriteLine("Source : {0}", ex->Source); - Console::WriteLine("Message : {0}", ex->Message); - } - catch (WebException^ ex) - { - Console::WriteLine("The proxy name could not be resolved."); - Console::WriteLine("Source : {0}", ex->Source); - Console::WriteLine("Message : {0}", ex->Message); - } - finally - { - if (response != nullptr) - { - response->Close(); - } - } -} - -// Show the user how to use this program when wrong inputs are entered. -void ShowUsage() -{ - Console::WriteLine("Enter the proxy name as follows:"); - Console::WriteLine("\tcs_servicepoint proxyName"); -} - - -int main(array^ args) -{ - int port = 80; - - // Define a regular expression to parse the user's input. - // This is a security check. It allows only - // alphanumeric input strings between 2 to 40 characters long. - Regex^ expression = gcnew Regex("^[a-zA-Z]\\w{1,39}$"); - - if (args->Length <= 1) - { - ShowUsage(); - return 0; - } - String^ proxy = args[1]; - - if ((expression->Match(proxy))->Success != true) - { - Console::WriteLine("Input string format not allowed."); - return 0; - } - String^ proxyAddress = "http://" + proxy + ":" + port; - - // Create a proxy object. - WebProxy^ defaultProxy = gcnew WebProxy(proxyAddress, true); - - // Set the proxy that all HttpWebRequest instances use. - GlobalProxySelection::Select = (IWebProxy^)defaultProxy; - - // Get the base interface for proxy access for the - // WebRequest-based classes. - IWebProxy^ proxyInterface = GlobalProxySelection::Select; - - // Set the maximum number of ServicePoint instances to - // maintain. If a ServicePoint instance for that host already - // exists when your application requests a connection to - // an Internet resource, the ServicePointManager object - // returns this existing ServicePoint instance. If none exists - // for that host, it creates a new ServicePoint instance. - ServicePointManager::MaxServicePoints = 4; - - // Set the maximum idle time of a ServicePoint instance to 10 seconds. - // After the idle time expires, the ServicePoint object is eligible for - // garbage collection and cannot be used by the ServicePointManager object. - ServicePointManager::MaxServicePointIdleTime = 10000; - - // - ServicePointManager::UseNagleAlgorithm = true; - ServicePointManager::Expect100Continue = true; - ServicePointManager::CheckCertificateRevocationList = true; - ServicePointManager::DefaultConnectionLimit = - ServicePointManager::DefaultPersistentConnectionLimit; - ServicePointManager::EnableDnsRoundRobin = true; - ServicePointManager::DnsRefreshTimeout = 4*60*1000; // 4 minutes - // - // Create the Uri object for the resource you want to access. - Uri^ msdn = gcnew Uri("http://msdn.microsoft.com/"); - - // Use the FindServicePoint method to find an existing - // ServicePoint object or to create a new one. - ServicePoint^ servicePoint = ServicePointManager::FindServicePoint( - msdn, proxyInterface); - - ShowProperties(servicePoint); - - int hashCode = servicePoint->GetHashCode(); - - Console::WriteLine("Service point hashcode: {0}", hashCode); - - // Make a request with the same scheme identifier and host fragment - // used to create the previous ServicePoint object. - MakeWebRequest(hashCode, "http://msdn.microsoft.com/library/"); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.Authentication/CPP/custombasicauthentication.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.Authentication/CPP/custombasicauthentication.cpp deleted file mode 100644 index cbceda27de956..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.Authentication/CPP/custombasicauthentication.cpp +++ /dev/null @@ -1,344 +0,0 @@ - - -// This program shows how to create your own Basic authentication module, -// register it via the AuthenticationManager class and authorize allowed -// users to access a page on a Web site. -// Note: In order to run this program you must create a test Web site that performs -// Basic authentication. Also you must add to your server machine a user whose -// credentials are the same you plan to use for this example. -// CAVEAT: Basic authenticastion sends the user's credentials over HTTP. Passwords and -// user names are encoded using Base64 encoding. Although the password is encoded, it -// is considered insecure due its ability to be deciphered relatively easily. -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; -using namespace System::Collections; - -// -// The CustomBasic class creates a custom Basic authentication by implementing the -// IAuthenticationModule interface. In particular it performs the following -// tasks: -// 1) Defines and intializes the required properties. -// 2) Impements the Authenticate and PreAuthenticate methods. -public ref class CustomBasic: public IAuthenticationModule -{ -private: - - // - String^ m_authenticationType; - bool m_canPreAuthenticate; - -public: - - // The CustomBasic constructor initializes the properties of the customized - // authentication. - CustomBasic() - { - m_authenticationType = "Basic"; - m_canPreAuthenticate = false; - } - - - property String^ AuthenticationType - { - - // Define the authentication type. This type is then used to identify this - // custom authentication module. The default is set to Basic. - virtual String^ get() - { - return m_authenticationType; - } - - } - - property bool CanPreAuthenticate - { - - // Define the pre-authentication capabilities for the module. The default is set - // to false. - virtual bool get() - { - return m_canPreAuthenticate; - } - - } - - // - // The checkChallenge method checks if the challenge sent by the HttpWebRequest - // contains the correct type (Basic) and the correct domain name. - // Note: the challenge is in the form BASIC REALM="DOMAINNAME" - // and you must assure that the Internet Web site resides on a server whose - // domain name is equal to DOMAINAME. - bool checkChallenge( String^ Challenge, String^ domain ) - { - bool challengePasses = false; - String^ tempChallenge = Challenge->ToUpper(); - - // Verify that this is a Basic authorization request and the requested domain - // is correct. - // Note: When the domain is an empty string the following code only checks - // whether the authorization type is Basic. - if ( tempChallenge->IndexOf( "BASIC" ) != -1 ) - if ( domain != String::Empty ) - if ( tempChallenge->IndexOf( domain->ToUpper() ) != -1 ) - challengePasses = true; // The domain is not allowed and the authorization type is Basic. - else - challengePasses = false; - - else - challengePasses = true; - - - return challengePasses; - } - - - // - // The PreAuthenticate method specifies if the authentication implemented - // by this class allows pre-authentication. - // Even if you do not use it, this method must be implemented to obey to the rules - // of interface implemebtation. - // In this case it always returns false. - virtual Authorization^ PreAuthenticate( WebRequest^ /*request*/, ICredentials^ /*credentials*/ ) - { - return nullptr; - } - - - // - // - // Authenticate is the core method for this custom authentication. - // When an internet resource requests authentication, the WebRequest.GetResponse - // method calls the AuthenticationManager.Authenticate method. This method, in - // turn, calls the Authenticate method on each of the registered authentication - // modules, in the order they were registered. When the authentication is - // complete an Authorization object is returned to the WebRequest, as the - // retunr type of the following routine shows. - virtual Authorization^ Authenticate( String^ challenge, WebRequest^ request, ICredentials^ credentials ) - { - Encoding^ ASCII = Encoding::ASCII; - - // Get the username and password from the credentials - NetworkCredential^ MyCreds = credentials->GetCredential( request->RequestUri, "Basic" ); - if ( PreAuthenticate( request, credentials ) == nullptr ) - Console::WriteLine( "\n Pre-authentication is not allowed." ); - else - Console::WriteLine( "\n Pre-authentication is allowed." ); - - - // Verify that the challenge satisfies the authorization requirements. - bool challengeOk = checkChallenge( challenge, MyCreds->Domain ); - if ( !challengeOk ) - return nullptr; - - - // - // Create the encrypted string according to the Basic authentication format as - // follows: - // a)Concatenate username and password seperated by colon; - // b)Apply ASCII encoding to obtain a stream of bytes; - // c)Apply Base64 Encoding to this array of bytes to obtain the encoded - // authorization. - String^ BasicEncrypt = String::Concat( MyCreds->UserName, ":", MyCreds->Password ); - String^ BasicToken = String::Format( "Basic {0}", Convert::ToBase64String( ASCII->GetBytes( BasicEncrypt ) ) ); - - // Create an Authorization object using the above encoded authorization. - Authorization^ resourceAuthorization = gcnew Authorization( BasicToken ); - - // Get the Message property which contains the authorization string that the - // client returns to the server when accessing protected resources. - Console::WriteLine( "\n Authorization Message:{0}", resourceAuthorization->Message ); - - // Get the Complete property which is set to true when the authentication process - // between the client and the server is finished. - Console::WriteLine( "\n Authorization Complete:{0}", resourceAuthorization->Complete ); - Console::WriteLine( "\n Authorization ConnectionGroupId:{0}", resourceAuthorization->ConnectionGroupId ); - - // - return resourceAuthorization; - } - - // -}; - - -// -// The ClientAuthentication performs the following main tasks: -// 1) It obtains the user's credentials. -// 2) Unregisters the standard Basic authentication. -// 3) Registers the customized Basic authentication. -// 4) Read the selected page and displays it on the console. -ref class ClientAuthentication -{ -private: - static String^ username; - static String^ password; - static String^ domain; - static String^ uri; - - // Show how to use this program. - static void showusage() - { - Console::WriteLine( "Attempts to authenticate to a URL" ); - Console::WriteLine( "\r\nUse one of the following:" ); - Console::WriteLine( "\tcustomBasicAuthentication URL username password domain" ); - Console::WriteLine( "\tcustomBasicAuthentication URL username password" ); - Console::WriteLine( "\r\nExample:" ); - Console::WriteLine( "\tcustomBasicAuthentication http://ndpue/ncl/ basicuser basic.101 ndpue" ); - } - - - // - // Display registered authentication modules. - static void displayRegisteredModules() - { - - // The AuthenticationManager calls all authentication modules sequentially - // until one of them responds with an authorization instance. Show - // the current registered modules, for testing purposes. - IEnumerator^ registeredModules = AuthenticationManager::RegisteredModules; - Console::WriteLine( "\r\nThe following authentication modules are now registered with the system" ); - while ( registeredModules->MoveNext() ) - { - Console::WriteLine( "\r \n Module : {0}", registeredModules->Current ); - IAuthenticationModule^ currentAuthenticationModule = dynamic_cast(registeredModules->Current); - Console::WriteLine( "\t CanPreAuthenticate : {0}", currentAuthenticationModule->CanPreAuthenticate ); - } - } - - - // - // The getPage method accesses the selected page an displays its content - // on the console. - static void getPage( String^ url ) - { - try - { - - // Create the Web request object. - WebRequest^ req = dynamic_cast(WebRequest::Create( url )); - - // Define the request access method. - req->Method = "GET"; - - // Define the request credentials according to the user's input. - if ( domain == String::Empty ) - req->Credentials = gcnew NetworkCredential( username,password ); // If the user's specifies the Internet resource domain, this usually - else - req->Credentials = gcnew NetworkCredential( username,password,domain ); - - // is by default the name of the sever hosting the resource. - // Issue the request. - WebResponse^ result = req->GetResponse(); - Console::WriteLine( "\nAuthentication Succeeded:" ); - - // Store the response. - Stream^ sData = result->GetResponseStream(); - - // Display the response. - displayPageContent( sData ); - } - catch ( WebException^ e ) - { - - // Display the error, if any. In particular display protocol - // related error. - if ( e->Status == WebExceptionStatus::ProtocolError ) - { - HttpWebResponse^ hresp = dynamic_cast(e->Response); - Console::WriteLine( "\nAuthentication Failed, {0}", hresp->StatusCode ); - Console::WriteLine( "Status Code: {0}", (int)hresp->StatusCode ); - Console::WriteLine( "Status Description: {0}", hresp->StatusDescription ); - return; - } - Console::WriteLine( "Caught Exception: {0}", e->Message ); - Console::WriteLine( "Stack: {0}", e->StackTrace ); - } - - } - - - // The displayPageContent method display the content of the - // selected page. - static void displayPageContent( Stream^ ReceiveStream ) - { - - // Create an ASCII encoding object. - Encoding^ ASCII = Encoding::ASCII; - - // Define the byte array to temporary hold the current read bytes. - array^read = gcnew array(512); - Console::WriteLine( "\r\nPage Content...\r\n" ); - - // Read the page content and display it on the console. - // Read the first 512 bytes. - int bytes = ReceiveStream->Read( read, 0, 512 ); - while ( bytes > 0 ) - { - Console::Write( ASCII->GetString( read, 0, bytes ) ); - bytes = ReceiveStream->Read( read, 0, 512 ); - } - - Console::WriteLine( "" ); - } - - -public: - - // - // This is the program entry point. It allows the user to enter - // their credentials and the Internet resource (Web page) to access. - // It also unregisters the standard and registers the customized basic - // authentication. - static void Main() - { - array^args = Environment::GetCommandLineArgs(); - if ( args->Length < 4 ) - showusage(); - else - { - - // Read the user's credentials. - uri = args[ 1 ]; - username = args[ 2 ]; - password = args[ 3 ]; - if ( args->Length == 4 ) - domain = String::Empty; // If the domain exists, store it. Usually the domain name - else - domain = args[ 4 ]; - - - // is by default the name of the server hosting the Internet - // resource. - // Unregister the standard Basic authentication module. - AuthenticationManager::Unregister( "Basic" ); - - // Instantiate the custom Basic authentication module. - CustomBasic^ customBasicModule = gcnew CustomBasic; - - // Register the custom Basic authentication module. - AuthenticationManager::Register( customBasicModule ); - - // Display registered Authorization modules. - displayRegisteredModules(); - - // Read the specified page and display it on the console. - getPage( uri ); - } - - return; - } - - // -}; - -int main() -{ - ClientAuthentication::Main(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.MulticastOptionListener/CPP/listener.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.MulticastOptionListener/CPP/listener.cpp deleted file mode 100644 index 344dc6ed2a97b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.MulticastOptionListener/CPP/listener.cpp +++ /dev/null @@ -1,130 +0,0 @@ - - -// -// This program contains snippets for the following members: -// 1) System::Net::Sockets::MulticastOption; -// 2) System::Net::Sockets::MulticastOption.MulticastOption(IPAddress, IPAddress); -// 3) System::Net::Sockets::MulticastOption.Group; -// 4) System::Net::Sockets::MulticastOption.LocalAddress; -// -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; - -// This program shows how to use the MultiCastOption type. In particular, -// it shows how to use the MultiCastOption(IPAddress, IPAddress) constructor, -// You need to use this constructor, in the case of multihomed host (i.e., -// a host with more than one network card). With the first parameter you -// specify the multicast group address, with the second you specify the -// local address of one of the network cards you want to use for the data -// exchange. -// You must run this program in conjunction with the sender program as -// follows: -// Open a console window and run the listener from the command line. -// In another console window run the sender. In both cases you must specify -// the local IPAddress to use. To obtain this address run the ipconfig from -// the command line. -// -public ref class TestMulticastOption -{ -private: - static IPAddress^ mcastAddress; - static int mcastPort; - static Socket^ mcastSocket; - static MulticastOption^ mcastOption; - - // - static void MulticastOptionProperties() - { - Console::WriteLine( "Current multicast group is: {0}", mcastOption->Group ); - Console::WriteLine( "Current multicast local address is: {0}", mcastOption->LocalAddress ); - } - - - // - static void StartMulticast() - { - try - { - mcastSocket = gcnew Socket( AddressFamily::InterNetwork,SocketType::Dgram,ProtocolType::Udp ); - Console::Write( "Enter the local IP Address: " ); - IPAddress^ localIPAddr = IPAddress::Parse( Console::ReadLine() ); - - //IPAddress localIP = IPAddress::Any; - EndPoint^ localEP = dynamic_cast(gcnew IPEndPoint( localIPAddr,mcastPort )); - mcastSocket->Bind( localEP ); - - // - // Define a MuticastOption object specifying the multicast group - // address and the local IPAddress. - // The multicast group address is the same one used by the server. - mcastOption = gcnew MulticastOption( mcastAddress,localIPAddr ); - mcastSocket->SetSocketOption( SocketOptionLevel::IP, SocketOptionName::AddMembership, mcastOption ); - - // - } - catch ( Exception^ e ) - { - Console::WriteLine( e ); - } - - } - - static void ReceiveBrodcastMessages() - { - bool done = false; - array^bytes = gcnew array(100); - IPEndPoint^ groupEP = gcnew IPEndPoint( mcastAddress,mcastPort ); - EndPoint^ remoteEP = dynamic_cast(gcnew IPEndPoint( IPAddress::Any,0 )); - try - { - while ( !done ) - { - Console::WriteLine( "Waiting for Multicast packets......." ); - Console::WriteLine( "Enter ^C to terminate." ); - mcastSocket->ReceiveFrom( bytes, remoteEP ); - Console::WriteLine( "Received broadcast from {0} :\n {1}\n", groupEP, Encoding::ASCII->GetString( bytes, 0, bytes->Length ) ); - } - mcastSocket->Close(); - } - catch ( Exception^ e ) - { - Console::WriteLine( e ); - } - - } - - -public: - static void Main() - { - - // Initialize multicast address group and multicast port. - // Both address and port are selected from the allowed sets as - // defined in the related RFC documents. These are the same values - // used by the sender. - mcastAddress = IPAddress::Parse( "224.168.100.2" ); - mcastPort = 11000; - - // Start a multicast group. - StartMulticast(); - - // Display multicast option properties. - MulticastOptionProperties(); - - // Receive brodcast messages. - ReceiveBrodcastMessages(); - } - -}; - -int main() -{ - TestMulticastOption::Main(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.MulticastOptionSender/CPP/sender.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.MulticastOptionSender/CPP/sender.cpp deleted file mode 100644 index 9b92d3984aa1a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.MulticastOptionSender/CPP/sender.cpp +++ /dev/null @@ -1,107 +0,0 @@ - - -// -// This program contains snippets for the following members: -// 1) System::Net::Sockets::MulticastOption; -// -// -#using - -using namespace System; -using namespace System::Net::Sockets; -using namespace System::Net; -using namespace System::Text; - -// This is an auxiliary program to be used in conjunction with a listener -// program. -// You must run this program as follows: -// Open a console window and run the listener from the command line. -// In another console window run the sender. In both cases you must specify -// the local IPAddress to use. To obtain this address run the ipconfig -// from the command line. -// -ref class TestMulticastOption -{ -private: - static IPAddress^ mcastAddress; - static int mcastPort; - static Socket^ mcastSocket; - static void JoinMulticast() - { - try - { - - // Create multicast socket. - mcastSocket = gcnew Socket( AddressFamily::InterNetwork,SocketType::Dgram,ProtocolType::Udp ); - - // Get the local IP address used by the listener and the sender to - // exchange data in a multicast fashion. - Console::Write( "\nEnter local IPAddress for sending multicast packets: " ); - IPAddress^ localIPAddr = IPAddress::Parse( Console::ReadLine() ); - - // Create an IPEndPoint Object*. - IPEndPoint^ IPlocal = gcnew IPEndPoint( localIPAddr,0 ); - - // Bind this end point to the multicast socket. - mcastSocket->Bind( IPlocal ); - - // Define a MuticastOption Object* specifying the multicast group - // address and the local IPAddress. - // The multicast group address is the same one used by the listener. - MulticastOption^ mcastOption; - mcastOption = gcnew MulticastOption( mcastAddress,localIPAddr ); - mcastSocket->SetSocketOption( SocketOptionLevel::IP, SocketOptionName::AddMembership, mcastOption ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\n {0}", e ); - } - - } - - static void BrodcastMessage( String^ message ) - { - IPEndPoint^ endPoint; - try - { - - //Send multicast packets to the listener. - endPoint = gcnew IPEndPoint( mcastAddress,mcastPort ); - mcastSocket->SendTo( ASCIIEncoding::ASCII->GetBytes( message ), endPoint ); - Console::WriteLine( "Multicast data sent....." ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\n {0}", e ); - } - - mcastSocket->Close(); - } - - -public: - static void main() - { - - // Initialize multicast address group and multicast port. - // Both address and port are selected from the allowed sets as - // defined in the related RFC documents. These are the same values - // used by the sender. - mcastAddress = IPAddress::Parse( "224.168.100.2" ); - mcastPort = 11000; - - // Join the listener multicast group. - JoinMulticast(); - - // Broadcast message to the listener. - BrodcastMessage( "Hello multicast listener." ); - } - -}; - -int main() -{ - TestMulticastOption::main(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.Socket.BeginConnect/CPP/beginconnect.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.Socket.BeginConnect/CPP/beginconnect.cpp deleted file mode 100644 index 258a49ca83553..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.Socket.BeginConnect/CPP/beginconnect.cpp +++ /dev/null @@ -1,140 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Text; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Threading; -ref class ConnectTester -{ -public: - - // - static ManualResetEvent^ allDone = gcnew ManualResetEvent( false ); - - // handles the completion of the prior asynchronous - // connect call. the socket is passed via the objectState - // paramater of BeginConnect(). - static void ConnectCallback1( IAsyncResult^ ar ) - { - allDone->Set(); - Socket^ s = dynamic_cast(ar->AsyncState); - s->EndConnect( ar ); - } - - - // - // - // Asynchronous connect using the host name, resolved via - // IPAddress - static void BeginConnect1( String^ host, int port ) - { - array^IPs = Dns::GetHostAddresses( host ); - Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - allDone->Reset(); - Console::WriteLine( "Establishing Connection to {0}", host ); - s->BeginConnect( IPs[ 0 ], port, gcnew AsyncCallback( ConnectCallback1 ), s ); - - // wait here until the connect finishes. - // The callback sets allDone. - allDone->WaitOne(); - Console::WriteLine( "Connection established" ); - } - - - // - // - // Asynchronous connect, using DNS.ResolveToAddresses - static void BeginConnect2( String^ host, int port ) - { - array^IPs = Dns::GetHostAddresses( host ); - Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - allDone->Reset(); - Console::WriteLine( "Establishing Connection to {0}", host ); - s->BeginConnect( IPs, port, gcnew AsyncCallback( ConnectCallback1 ), s ); - - // wait here until the connect finishes. The callback - // sets allDone. - allDone->WaitOne(); - Console::WriteLine( "Connection established" ); - } - - - // - // - // Asynchronous connect using host name (resolved by the - // BeginConnect call.) - static void BeginConnect3( String^ host, int port ) - { - Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - allDone->Reset(); - Console::WriteLine( "Establishing Connection to {0}", host ); - s->BeginConnect( host, port, gcnew AsyncCallback( ConnectCallback1 ), s ); - - // wait here until the connect finishes. The callback - // sets allDone. - allDone->WaitOne(); - Console::WriteLine( "Connection established" ); - } - - - // - // - // Synchronous connect using IPAddress to resolve the - // host name. - static void Connect1( String^ host, int port ) - { - array^IPs = Dns::GetHostAddresses( host ); - Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - Console::WriteLine( "Establishing Connection to {0}", host ); - s->Connect( IPs[ 0 ], port ); - Console::WriteLine( "Connection established" ); - } - - - // - // - // Synchronous connect using Dns.ResolveToAddresses to - // resolve the host name. - static void Connect2( String^ host, int port ) - { - array^IPs = Dns::GetHostAddresses( host ); - Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - Console::WriteLine( "Establishing Connection to {0}", host ); - s->Connect( IPs, port ); - Console::WriteLine( "Connection established" ); - } - - - // - // - // Synchronous connect using host name (resolved by the - // Connect call.) - static void Connect3( String^ host, int port ) - { - Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - Console::WriteLine( "Establishing Connection to {0}", host ); - s->Connect( host, port ); - Console::WriteLine( "Connection established" ); - } - - // -}; - - -[STAThread] -int main() -{ - ConnectTester::BeginConnect1( "127.0.0.1", 80 ); - ConnectTester::BeginConnect2( "localhost", 80 ); - ConnectTester::BeginConnect3( "localhost", 80 ); - ConnectTester::Connect1( "127.0.0.1", 80 ); - ConnectTester::Connect2( "127.0.0.1", 80 ); - ConnectTester::Connect3( "localhost", 80 ); - Console::WriteLine( "hit any key" ); - Console::Read(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.Socket/CPP/socket.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.Socket/CPP/socket.cpp deleted file mode 100644 index 00514470652d0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.Socket/CPP/socket.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/** -* File name:socket.cs. -* This example creates a Socket connection to the server specified by the user, -* using port 80. Once the connection has been established it asks the server for -* the content of its home page. If no server name is passed as argument to this -* program, it uses the current host name as default server. -* */ -// -#using - -using namespace System; -using namespace System::Text; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Collections; -Socket^ ConnectSocket( String^ server, int port ) -{ - Socket^ s = nullptr; - IPHostEntry^ hostEntry = nullptr; - - // Get host related information. - hostEntry = Dns::Resolve( server ); - - // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid - // an exception that occurs when the host IP Address is not compatible with the address family - // (typical in the IPv6 case). - IEnumerator^ myEnum = hostEntry->AddressList->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - IPAddress^ address = safe_cast(myEnum->Current); - IPEndPoint^ endPoint = gcnew IPEndPoint( address,port ); - Socket^ tmpS = gcnew Socket( endPoint->AddressFamily,SocketType::Stream,ProtocolType::Tcp ); - tmpS->Connect( endPoint ); - if ( tmpS->Connected ) - { - s = tmpS; - break; - } - else - { - continue; - } - } - - return s; -} - -// This method requests the home page content for the specified server. -String^ SocketSendReceive( String^ server, int port ) -{ - String^ request = String::Concat( "GET / HTTP/1.1\r\nHost: ", server, "\r\nConnection: Close\r\n\r\n" ); - array^bytesSent = Encoding::ASCII->GetBytes( request ); - array^bytesReceived = gcnew array(256); - String^ strRetPage = ""; - - // Create a socket connection with the specified server and port. - Socket^ s = ConnectSocket( server, port ); - if ( s == nullptr ) - return ("Connection failed"); - - // Send request to the server. - s->Send( bytesSent, bytesSent->Length, static_cast(0) ); - - // Receive the server home page content. - int bytes = 0; - strRetPage = String::Concat( "Default HTML page on ", server, ":\r\n" ); - do - { - bytes = s->Receive( bytesReceived, bytesReceived->Length, static_cast(0) ); - strRetPage = String::Concat( strRetPage, Encoding::ASCII->GetString( bytesReceived, 0, bytes ) ); - } - while ( bytes > 0 ); - - s->Dispose(); - - return strRetPage; -} - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - String^ host; - int port = 80; - if ( args->Length == 1 ) - - // If no server name is passed as argument to this program, - // use the current host name as default. - host = Dns::GetHostName(); - else - host = args[ 1 ]; - - String^ result = SocketSendReceive( host, port ); - Console::WriteLine( result ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.Socketgenerics/CPP/sendgeneric.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.Socketgenerics/CPP/sendgeneric.cpp deleted file mode 100644 index b06fa3e3760af..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.Socketgenerics/CPP/sendgeneric.cpp +++ /dev/null @@ -1,175 +0,0 @@ -#using - -using namespace System; -using namespace System::Collections::Generic; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::Threading; - -namespace SocketExample -{ - ref class TestClass - { - public: - - static void SyncSendAndReceive(String^ host, int port) - { - // - Encoding^ asciiEncoding = Encoding::ASCII; - - // Create the TCP Socket. - IPHostEntry^ hostEntry = Dns::Resolve(host); - IPEndPoint^ endPoint = gcnew IPEndPoint( - hostEntry->AddressList[0], port); - - Socket^ tcpSocket = gcnew Socket( - AddressFamily::InterNetwork, SocketType::Stream, - ProtocolType::Tcp); - - tcpSocket->Connect(endPoint); - - // Build the buffers to be sent. - List >^ buffers = - gcnew List >(2); - - buffers->Add(ArraySegment( - asciiEncoding->GetBytes(""))); - - buffers->Add(ArraySegment( - asciiEncoding->GetBytes(""))); - - // Send the data. - tcpSocket->Send(buffers); - // - - // - - // Build the buffers for the receive. - List >^ receiveBuffers = - gcnew List >(2); - - array^ bigBuffer = gcnew array(1024); - - // Specify the first buffer segment (2 bytes, starting - // at the 4th element of bigBuffer) - receiveBuffers->Add(ArraySegment(bigBuffer, 4, 2)); - - // Specify the second buffer segment (500 bytes, starting - // at the 20th element of bigBuffer) - receiveBuffers->Add( - ArraySegment(bigBuffer, 20, 500)); - - tcpSocket->Receive(receiveBuffers); - - Console::WriteLine("{0}", - asciiEncoding->GetString(bigBuffer)); - // - } - - static void AsyncSendAndReceive(String^ host, int port) - { - // - Encoding^ asciiEncoding = Encoding::ASCII; - - // Create the TCP Socket. - IPHostEntry^ hostEntry = Dns::Resolve(host); - IPEndPoint^ endPoint = gcnew IPEndPoint( - hostEntry->AddressList[0], port); - - Socket^ tcpSocket = gcnew Socket( - AddressFamily::InterNetwork, SocketType::Stream, - ProtocolType::Tcp); - - tcpSocket->Connect(endPoint); - - // Build the buffers to be sent. - List >^ buffers = - gcnew List >(2); - - buffers->Add(ArraySegment( - asciiEncoding->GetBytes(""))); - - buffers->Add(ArraySegment( - asciiEncoding->GetBytes(""))); - - // Create delegate instance for the callback function - AsyncCallback^ sendCallback = - gcnew AsyncCallback(SendCallback); - - // Send the data. - allDone->Reset(); - tcpSocket->BeginSend(buffers, SocketFlags::None, - sendCallback, (Object^)tcpSocket); - allDone->WaitOne(); - - // done - Console::WriteLine("Data sent"); - // - - // - - // Build the buffers for the receive. - List >^ receiveBuffers = - gcnew List >(2); - - array^ bigBuffer = gcnew array(1024); - - // Specify the first buffer segment (2 bytes, starting - // at the 6th element of bigBuffer) - receiveBuffers->Add(ArraySegment(bigBuffer, 6, 2)); - - // Specify the second buffer segment (500 bytes, starting - // at the 10th element of bigBuffer) - receiveBuffers->Add( - ArraySegment(bigBuffer, 10, 500)); - - // Create delegate instance for the callback function - AsyncCallback^ receiveCallback = - gcnew AsyncCallback(ReceiveCallback); - - // Receive the data. - allDone->Reset(); - tcpSocket->BeginReceive( - receiveBuffers, SocketFlags::None, - receiveCallback, (Object^)tcpSocket); - - allDone->WaitOne(); - - Console::WriteLine("Data received:"); - Console::WriteLine("{0}", - asciiEncoding->GetString(bigBuffer)); - // - } - - private: - - static ManualResetEvent^ allDone = - gcnew ManualResetEvent(false); - - static void SendCallback(IAsyncResult^ result) - { - allDone->Set(); - Socket^ sendSocket = (Socket^)result->AsyncState; - sendSocket->EndSend(result); - } - - static void ReceiveCallback(IAsyncResult^ result) - { - allDone->Set(); - Socket^ receiveSocket = (Socket^)result->AsyncState; - receiveSocket->EndReceive(result); - } - }; -} - -int main() -{ - Console::WriteLine("starting synchronous test"); - SocketExample::TestClass::SyncSendAndReceive("localhost", 80); - Console::WriteLine("starting asynchronous test"); - SocketExample::TestClass::AsyncSendAndReceive("localhost", 80); - Console::WriteLine("ending tests"); - - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpClient/CPP/tcpclient.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpClient/CPP/tcpclient.cpp deleted file mode 100644 index bb8d01bc621ef..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpClient/CPP/tcpclient.cpp +++ /dev/null @@ -1,112 +0,0 @@ -// System.Net.Sockets.TcpClient main functionality. - -/** -* This program shows how to use the TcpClient -* It creates a TcpClient that connects to a TcpServer listening on the specified port -* (13000). When connecting to the server it forwards a message, as specified in -* the input parameter. -* To run this program at the command line you enter: -* cs_tcpclient serverName S"My message" -* Where the serverName is the name on which the server is running. -* For this program to work you need to have the TcpServer running in another -* console window. -* To avoid permission settings you can run this console application and the related -* TcpServer from your hard disk and not from a shared location on the network. -**/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::Security::Permissions; - -/** -* The following function creates a TcpClient that connects to a -* TcpServer listening on the specified port (13000). -* When connecting to the server it forwards a message, as specified in -* the input parameter. -**/ -// -void Connect( String^ server, String^ message ) -{ - try - { - // Create a TcpClient. - // Note, for this client to work you need to have a TcpServer - // connected to the same address as specified by the server, port - // combination. - Int32 port = 13000; - TcpClient^ client = gcnew TcpClient( server,port ); - - // Translate the passed message into ASCII and store it as a Byte array. - array^data = Text::Encoding::ASCII->GetBytes( message ); - - // Get a client stream for reading and writing. - // Stream stream = client->GetStream(); - - NetworkStream^ stream = client->GetStream(); - - // Send the message to the connected TcpServer. - stream->Write( data, 0, data->Length ); - - Console::WriteLine( "Sent: {0}", message ); - - // Receive the TcpServer::response. - - // Buffer to store the response bytes. - data = gcnew array(256); - - // String to store the response ASCII representation. - String^ responseData = String::Empty; - - // Read the first batch of the TcpServer response bytes. - Int32 bytes = stream->Read( data, 0, data->Length ); - responseData = Text::Encoding::ASCII->GetString( data, 0, bytes ); - Console::WriteLine( "Received: {0}", responseData ); - - // Close everything. - client->Close(); - } - catch ( ArgumentNullException^ e ) - { - Console::WriteLine( "ArgumentNullException: {0}", e ); - } - catch ( SocketException^ e ) - { - Console::WriteLine( "SocketException: {0}", e ); - } - - Console::WriteLine( "\n Press Enter to continue..." ); - Console::Read(); -} -// - -void main( int argc, char *argv[] ) -{ - // Parse arguments - String^ server; - String^ message; - if ( argc < 3 ) - { - message = "This is a test!"; - if ( argc == 1 ) - { - server = "localhost"; - } - else - { - server = gcnew String(argv[ 1 ]); - } - } - else - { - message = gcnew String(argv[ 2 ]); - server = gcnew String(argv[ 1 ]); - } - - // Connect to server - Connect( server, message ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpClient1/CPP/newtcpclient.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpClient1/CPP/newtcpclient.cpp deleted file mode 100644 index 1fc0dcb58d787..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpClient1/CPP/newtcpclient.cpp +++ /dev/null @@ -1,131 +0,0 @@ - - -// This is the main project file for VC++ application project -// generated using an Application Wizard. -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Threading; - -ref class TcpClientExamples -{ -public: - - // - static void GetAvailable( TcpClient^ t ) - { - // Find out how many bytes are ready to be read. - Console::WriteLine( "Available value is {0}", t->Available.ToString() ); - ; - } - // - - // - static void GetConnected( TcpClient^ t ) - { - // Find out whether the socket is connected to the remote - // host. - Console::WriteLine( "Connected value is {0}", t->Connected.ToString() ); - ; - } - // - - // - static void GetSetExclusiveAddressUse( TcpClient^ t ) - { - // Don't allow another process to bind to this port. - t->ExclusiveAddressUse = true; - Console::WriteLine( "ExclusiveAddressUse value is {0}", t->ExclusiveAddressUse.ToString() ); - ; - } - // - - // - static void DoConnect( String^ host, int port ) - { - // Connect to the specified host. - TcpClient^ t = gcnew TcpClient( AddressFamily::InterNetwork ); - array^IPAddresses = Dns::GetHostAddresses( host ); - Console::WriteLine( "Establishing Connection to {0}", host ); - t->Connect( IPAddresses, port ); - Console::WriteLine( "Connection established" ); - } - // - - // - static ManualResetEvent^ connectDone = gcnew ManualResetEvent( false ); - static void ConnectCallback( IAsyncResult^ ar ) - { - connectDone->Set(); - TcpClient^ t = safe_cast(ar->AsyncState); - t->EndConnect( ar ); - } - // - - // - static void DoBeginConnect1( String^ host, int port ) - { - // Connect asynchronously to the specifed host. - TcpClient^ t = gcnew TcpClient( AddressFamily::InterNetwork ); -// IPAddress^ remoteHost = gcnew IPAddress( host ); - array^ remoteHost = Dns::GetHostAddresses( host ); - connectDone->Reset(); - Console::WriteLine( "Establishing Connection to {0}", host ); - t->BeginConnect( remoteHost, port, gcnew AsyncCallback( &ConnectCallback ), t ); - - // Wait here until the callback processes the connection. - connectDone->WaitOne(); - Console::WriteLine( "Connection established" ); - } - // - - // - // Connect asynchronously to the specifed host. - static void DoBeginConnect2( String^ host, int port ) - { - TcpClient^ t = gcnew TcpClient( AddressFamily::InterNetwork ); - array^remoteHost = Dns::GetHostAddresses( host ); - connectDone->Reset(); - Console::WriteLine( "Establishing Connection to {0}", host ); - t->BeginConnect( remoteHost, port, gcnew AsyncCallback( &ConnectCallback ), t ); - - // Wait here until the callback processes the connection. - connectDone->WaitOne(); - Console::WriteLine( "Connection established" ); - } - // - - // - // Connect asynchronously to the specifed host. - static void DoBeginConnect3( String^ host, int port ) - { - TcpClient^ t = gcnew TcpClient( AddressFamily::InterNetwork ); - connectDone->Reset(); - Console::WriteLine( "Establishing Connection to {0}", host ); - t->BeginConnect( host, port, gcnew AsyncCallback( &ConnectCallback ), t ); - - // Wait here until the callback processes the connection. - connectDone->WaitOne(); - Console::WriteLine( "Connection established" ); - } - // -}; - -int main() -{ - TcpClient^ t; - - // The TCP socket. - t = gcnew TcpClient( "localhost",80 ); - TcpClientExamples::GetConnected( t ); - TcpClientExamples::GetAvailable( t ); - TcpClientExamples::GetSetExclusiveAddressUse( t ); - TcpClientExamples::DoConnect( "127.0.0.1", 80 ); - TcpClientExamples::DoBeginConnect1( "127.0.0.1", 80 ); - TcpClientExamples::DoBeginConnect2( "127.0.0.1", 80 ); - TcpClientExamples::DoBeginConnect3( "127.0.0.1", 80 ); - Console::WriteLine( "enter to exit" ); - Console::Read(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpListener/CPP/tcpserver.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpListener/CPP/tcpserver.cpp deleted file mode 100644 index 9687b62e453ae..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpListener/CPP/tcpserver.cpp +++ /dev/null @@ -1,226 +0,0 @@ - - -// System.Net.Sockets.TcpListener -/** -* This program shows how to use the TcpListener class. -* It creates a TcpListener that listen on the specified port (13000). -* To run this program at the command line you enter: -* cs_tcpserver -* Any TcpClient that wants to use this server -* has to explicitly connect to an address obtained by the combination of -* the sever on which this TcpServer is runnig and the port 13000. -* This TcpServer simply echoes back the message sent by the TcpClient, after -* translating it into uppercase. -* To avoid permission settings you can run this console application and the related -* TcpClient from your hard disk and not from a shared location on the network. -**/ -// -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::Threading; -void main() -{ - try - { - - // Set the TcpListener on port 13000. - Int32 port = 13000; - IPAddress^ localAddr = IPAddress::Parse( "127.0.0.1" ); - - // TcpListener* server = new TcpListener(port); - TcpListener^ server = gcnew TcpListener( localAddr,port ); - - // Start listening for client requests. - server->Start(); - - // Buffer for reading data - array^bytes = gcnew array(256); - String^ data = nullptr; - - // Enter the listening loop. - while ( true ) - { - Console::Write( "Waiting for a connection... " ); - - // Perform a blocking call to accept requests. - // You could also use server.AcceptSocket() here. - TcpClient^ client = server->AcceptTcpClient(); - Console::WriteLine( "Connected!" ); - data = nullptr; - - // Get a stream Object* for reading and writing - NetworkStream^ stream = client->GetStream(); - Int32 i; - - // Loop to receive all the data sent by the client. - while ( i = stream->Read( bytes, 0, bytes->Length ) ) - { - - // Translate data bytes to a ASCII String*. - data = Text::Encoding::ASCII->GetString( bytes, 0, i ); - Console::WriteLine( "Received: {0}", data ); - - // Process the data sent by the client. - data = data->ToUpper(); - array^msg = Text::Encoding::ASCII->GetBytes( data ); - - // Send back a response. - stream->Write( msg, 0, msg->Length ); - Console::WriteLine( "Sent: {0}", data ); - } - - // Shutdown and end connection - client->Close(); - } - } - catch ( SocketException^ e ) - { - Console::WriteLine( "SocketException: {0}", e ); - } - - Console::WriteLine( "\nHit enter to continue..." ); - Console::Read(); -} - - -// -ref class tcplistener -{ -public: - - // - static void GetSetExclusiveAddressUse( TcpListener^ t ) - { - - // Set Exclusive Address Use for the underlying socket. - t->ExclusiveAddressUse = true; - Console::WriteLine( "ExclusiveAddressUse value is {0}", t->ExclusiveAddressUse ); - } - - - // - // - static void DoStart( TcpListener^ t, int backlog ) - { - - // Start listening for client connections with the specified - // backlog. - t->Start( backlog ); - Console::WriteLine( "started listening" ); - } - - - // - // - // Thread signal. - static ManualResetEvent^ clientConnected = gcnew ManualResetEvent( false ); - - // Accept one client connection asynchronously. - static void DoBeginAcceptSocket( TcpListener^ listener ) - { - - // Set the event to nonsignaled state. - clientConnected->Reset(); - - // Start to listen for connections from a client. - Console::WriteLine( "Waiting for a connection..." ); - - // Accept the connection. - // BeginAcceptSocket() creates the accepted socket. - listener->BeginAcceptSocket( gcnew AsyncCallback( &tcplistener::DoAcceptSocketCallback ), listener ); - - // Wait until a connection is made and processed before - // continuing. - clientConnected->WaitOne(); - } - - - // Process the client connection. - static void DoAcceptSocketCallback( IAsyncResult^ ar ) - { - - // Get the listener that handles the client request. - TcpListener^ listener = dynamic_cast(ar->AsyncState); - - // Get the client socket. - Socket^ clientSocket = listener->EndAcceptSocket( ar ); - - // Process the connection here. (Add the client to a server - // table, read data, etc.) - Console::WriteLine( "Client connected completed" ); - - // Signal the calling thread to continue. - clientConnected->Set(); - } - - - // - // - // Thread signal. - static ManualResetEvent^ tcpClientConnected = gcnew ManualResetEvent( false ); - - // Accept one client connection asynchronously. - static void DoBeginAcceptTcpClient( TcpListener^ listener ) - { - - // Set the event to nonsignaled state. - tcpClientConnected->Reset(); - - // Start to listen for connections from a client. - Console::WriteLine( "Waiting for a connection..." ); - - // Accept the connection. - // BeginAcceptSocket() creates the accepted socket. - listener->BeginAcceptTcpClient( gcnew AsyncCallback( &tcplistener::DoAcceptTcpClientCallback ), listener ); - - // Wait until a connection is made and processed before - // continuing. - tcpClientConnected->WaitOne(); - } - - - // Process the client connection. - static void DoAcceptTcpClientCallback( IAsyncResult^ ar ) - { - - // Get the listener that handles the client request. - TcpListener^ listener = dynamic_cast(ar->AsyncState); - - // Get the new TcpClient. - TcpClient^ client = listener->EndAcceptTcpClient( ar ); - - // Process the connection here. (Add the client to a server - // table, read data, etc.) - Console::WriteLine( "Client connected completed" ); - - // Signal the calling thread to continue. - tcpClientConnected->Set(); - } - - // -}; - -/*int main() -{ - TcpListener* listener = new TcpListener( - Dns::GetLocalHostAddresses()[0], - 4242); - - tcplistener::GetSetExclusiveAddressUse(listener); - - // Start listening for client connections. - tcplistener::DoStart(listener, 20); - - // Accept client connections asynchronously - tcplistener::DoBeginAcceptSocket(listener); - tcplistener::DoBeginAcceptTcpClient(listener); - - Console::WriteLine("hit any key"); - Console::Read(); - return 0; -}*/ diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpListener1/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpListener1/cpp/makefile deleted file mode 100644 index 8af38f517cc3a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpListener1/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -System.Net.Sockets.TcpListener1.exe : tcpserver.cpp - cl /clr:pure /FeSystem.Net.Sockets.TcpListener1.exe tcpserver.cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpListener1/cpp/tcpserver.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpListener1/cpp/tcpserver.cpp deleted file mode 100644 index 58dab91d42375..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.TcpListener1/cpp/tcpserver.cpp +++ /dev/null @@ -1,154 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Threading; - -namespace TcpListenerExample -{ - public ref class TcpServer - { - // - public: - static void GetSetExclusiveAddressUse(TcpListener^ listener) - { - // Set Exclusive Address Use for the underlying socket. - listener->ExclusiveAddressUse = true; - Console::WriteLine("ExclusiveAddressUse value is {0}", - listener->ExclusiveAddressUse); - } - // - - // - public: - static void DoStart(TcpListener^ listener, int backlog) - { - // Start listening for client connections with the - // specified backlog. - listener->Start(backlog); - Console::WriteLine("Started listening"); - } - // - - // - // Thread signal. - public: - static ManualResetEvent^ ClientConnected; - - // Accept one client connection asynchronously. - public: - static void DoBeginAcceptSocket(TcpListener^ listener) - { - // Set the event to nonsignaled state. - ClientConnected->Reset(); - - // Start to listen for connections from a client. - Console::WriteLine("Waiting for a connection..."); - - // Accept the connection. - // BeginAcceptSocket() creates the accepted socket. - listener->BeginAcceptSocket( - gcnew AsyncCallback(DoAcceptSocketCallback), listener); - // Wait until a connection is made and processed before - // continuing. - ClientConnected->WaitOne(); - } - - // Process the client connection. - public: - static void DoAcceptSocketCallback(IAsyncResult^ result) - { - // Get the listener that handles the client request. - TcpListener^ listener = (TcpListener^) result->AsyncState; - - // End the operation and display the received data on the - //console. - Socket^ clientSocket = listener->EndAcceptSocket(result); - - // Process the connection here. (Add the client to a - // server table, read data, etc.) - Console::WriteLine("Client connected completed"); - - // Signal the calling thread to continue. - ClientConnected->Set(); - } - // - - // - // Thread signal. - public: - static ManualResetEvent^ TcpClientConnected; - - // Accept one client connection asynchronously. - public: - static void DoBeginAcceptTcpClient(TcpListener^ listener) - { - // Set the event to nonsignaled state. - TcpClientConnected->Reset(); - - // Start to listen for connections from a client. - Console::WriteLine("Waiting for a connection..."); - - // Accept the connection. - // BeginAcceptSocket() creates the accepted socket. - listener->BeginAcceptTcpClient( - gcnew AsyncCallback(DoAcceptTcpClientCallback), - listener); - - // Wait until a connection is made and processed before - // continuing. - TcpClientConnected->WaitOne(); - } - - // Process the client connection. - public: - static void DoAcceptTcpClientCallback(IAsyncResult^ result) - { - // Get the listener that handles the client request. - TcpListener^ listener = (TcpListener^) result->AsyncState; - - // End the operation and display the received data on - // the console. - TcpClient^ client = listener->EndAcceptTcpClient(result); - - // Process the connection here. (Add the client to a - // server table, read data, etc.) - Console::WriteLine("Client connected completed"); - - // Signal the calling thread to continue. - TcpClientConnected->Set(); - - } - // - - public: - static void Main() - { - ClientConnected = gcnew ManualResetEvent(false); - - TcpClientConnected = gcnew ManualResetEvent(false); - - TcpListener^ listener = gcnew TcpListener( - Dns::GetHostAddresses(Dns::GetHostName())[0], 4242); - - GetSetExclusiveAddressUse(listener); - - // Start listening for client connections. - DoStart(listener, 20); - - // Accept one client connection asynchronously - DoBeginAcceptSocket(listener); - DoBeginAcceptTcpClient(listener); - - Console::WriteLine("Hit any key"); - Console::Read(); - } - }; -} - -[STAThread] -int main() -{ - TcpListenerExample::TcpServer::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.UdpClient.JoinMulticastGroup/CPP/joinmulticastgroup.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.UdpClient.JoinMulticastGroup/CPP/joinmulticastgroup.cpp deleted file mode 100644 index dd99994781123..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.UdpClient.JoinMulticastGroup/CPP/joinmulticastgroup.cpp +++ /dev/null @@ -1,326 +0,0 @@ - - -// File name:multicastOperations.cs -// This example shows how to join a multicast group and perform a muticast -// data exchange. The OriginatorClient Object* starts the conversation while -// the TargetClient responds. The two helper objects Receive and Send -// perform the actual data exchange. -// Note. This program cannot be build with the current VS build version. -// Build it via command line. Rubuild it in VS when a suitable version is -// available. -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::IO; -using namespace System::Threading; - -// The following Receive class is used by both the ClientOriginator and -// the ClientTarget class to receive data from one another.. -public ref class Receive -{ -public: - - // The following static method performs the actual data - // exchange. In particular, it performs the following tasks: - // 1)Establishes a communication endpoint. - // 2)Receive data through this end point on behalf of the - // caller. - // 3) Returns the received data in ASCII format. - static String^ ReceiveUntilStop( UdpClient^ c ) - { - String^ strData = ""; - String^ Ret = ""; - ASCIIEncoding^ ASCII = gcnew ASCIIEncoding; - - // Establish the communication endpoint. - IPEndPoint^ endpoint = gcnew IPEndPoint( IPAddress::IPv6Any,50 ); - while ( !strData->Equals( "Over" ) ) - { - array^data = c->Receive( endpoint ); - strData = ASCII->GetString( data ); - Ret = String::Concat( Ret, strData, "\n" ); - } - - return Ret; - } - -}; - - -// The following Send class is used by both the ClientOriginator and -// ClientTarget classes to send data to one another. -public ref class Send -{ -private: - static array^greetings = {'H','e','l','l','o',' ','T','a','r','g','e','t','->'}; - static array^nice = {'H','a','v','e',' ','a',' ','n','i','c','e',' ','d','a','y','->'}; - static array^eom = {'O','v','e','r'}; - static array^tGreetings = {'H','e','l','l','o',' ','O','r','i','g','i','n','a','t','o','r','!'}; - static array^tNice = {'Y','o','u',' ','t','o','o','->'}; - -public: - - // The following static method sends data to the ClientTarget on - // behalf of the ClientOriginator. - static void OriginatorSendData( UdpClient^ c, IPEndPoint^ ep ) - { - Console::WriteLine( gcnew String( greetings ) ); - c->Send( GetByteArray( greetings ), greetings->Length, ep ); - Thread::Sleep( 1000 ); - Console::WriteLine( gcnew String( nice ) ); - c->Send( GetByteArray( nice ), nice->Length, ep ); - Thread::Sleep( 1000 ); - Console::WriteLine( gcnew String( eom ) ); - c->Send( GetByteArray( eom ), eom->Length, ep ); - } - - - // The following static method sends data to the ClientOriginator on - // behalf of the ClientTarget. - static void TargetSendData( UdpClient^ c, IPEndPoint^ ep ) - { - Console::WriteLine( gcnew String( tGreetings ) ); - c->Send( GetByteArray( tGreetings ), tGreetings->Length, ep ); - Thread::Sleep( 1000 ); - Console::WriteLine( gcnew String( tNice ) ); - c->Send( GetByteArray( tNice ), tNice->Length, ep ); - Thread::Sleep( 1000 ); - Console::WriteLine( gcnew String( eom ) ); - c->Send( GetByteArray( eom ), eom->Length, ep ); - } - - -private: - - // Internal utility - static array^ GetByteArray( array^ChArray ) - { - array^Ret = gcnew array(ChArray->Length); - for ( int i = 0; i < ChArray->Length; i++ ) - Ret[ i ] = (Byte)ChArray[ i ]; - return Ret; - } - -}; - - -// The ClientTarget class is the receiver of the ClientOriginator -// messages. The StartMulticastConversation method contains the -// logic for exchanging data between the ClientTarget and its -// counterpart ClientOriginator in a multicast operation. -public ref class ClientTarget -{ -private: - static UdpClient^ m_ClientTarget; - static IPAddress^ m_GrpAddr; - -public: - - // The following StartMulticastConversation method connects the UDP - // ClientTarget with the ClientOriginator. - // It performs the following main tasks: - // 1)Creates a UDP client to receive data on a specific port and using - // IPv6 addresses. The port is the same one used by the ClientOriginator - // to define its communication endpoint. - // 2)Joins or creates a multicast group at the specified address. - // 3)Defines the endpoint port to send data to the ClientOriginator. - // 4)Receives data from the ClientOriginator until the end of the - // communication. - // 5)Sends data to the ClientOriginator. - // Note this method is the counterpart of the - // ClientOriginator::ConnectOriginatorAndTarget(). - static void StartMulticastConversation() - { - String^ Ret; - - // Bind and listen on port 1000. Specify the IPv6 address family type. - m_ClientTarget = gcnew UdpClient( 1000,AddressFamily::InterNetworkV6 ); - - // Join or create a multicast group - m_GrpAddr = IPAddress::Parse( "FF01::1" ); - - // Use the overloaded JoinMulticastGroup method. - // Refer to the ClientOriginator method to see how to use the other - // methods. - m_ClientTarget->JoinMulticastGroup( m_GrpAddr ); - - // Define the endpoint data port. Note that this port number - // must match the ClientOriginator UDP port number which is the - // port on which the ClientOriginator is receiving data. - IPEndPoint^ ClientOriginatordest = gcnew IPEndPoint( m_GrpAddr,2000 ); - - // Receive data from the ClientOriginator. - Ret = Receive::ReceiveUntilStop( m_ClientTarget ); - Console::WriteLine( "\nThe ClientTarget received: \n\n {0}\n", Ret ); - - // Done receiving, now respond to the ClientOriginator. - // Wait to make sure the ClientOriginator is ready to receive. - Thread::Sleep( 2000 ); - Console::WriteLine( "\nThe ClientTarget sent:\n" ); - Send::TargetSendData( m_ClientTarget, ClientOriginatordest ); - - // Exit the multicast conversation. - m_ClientTarget->DropMulticastGroup( m_GrpAddr ); - } - -}; - - -// The following ClientOriginator class starts the multicast conversation -// with the ClientTarget class.. -// It performs the following main tasks: -// 1)Creates a socket and binds it to the port on which to communicate. -// 2)Specifies that the connection must use an IPv6 address. -// 3)Joins or create a multicast group. -// Note that the multicast address ranges to use are specified -// in the RFC#2375. -// 4)Defines the endpoint to send the data to and starts the -// client target (ClientTarget) thread. -public ref class ClientOriginator -{ -private: - static UdpClient^ clientOriginator; - static IPAddress^ m_GrpAddr; - static IPEndPoint^ m_ClientTargetdest; - static Thread^ m_t; - -public: - - // The ConnectOriginatorAndTarget method connects the - // ClientOriginator with the ClientTarget. - // It performs the following main tasks: - // 1)Creates a UDP client to receive data on a specific port - // using IPv6 addresses. - // 2)Joins or create a multicast group at the specified address. - // 3)Defines the endpoint port to send data to on the ClientTarget. - // 4)Starts the ClientTarget thread that also creates the ClientTarget Object*. - // Note this method is the counterpart of the - // ClientTarget::StartMulticastConversation(). - static bool ConnectOriginatorAndTarget() - { - try - { - - // - // Bind and listen on port 2000. This constructor creates a socket - // and binds it to the port on which to receive data. The family - // parameter specifies that this connection uses an IPv6 address. - clientOriginator = gcnew UdpClient( 2000,AddressFamily::InterNetworkV6 ); - - // Join or create a multicast group. The multicast address ranges - // to use are specified in RFC#2375. You are free to use - // different addresses. - // Transform the String* address into the internal format. - m_GrpAddr = IPAddress::Parse( "FF01::1" ); - - // Display the multicast address used. - Console::WriteLine( "Multicast Address: [ {0}]", m_GrpAddr ); - - // - // Exercise the use of the IPv6MulticastOption. - Console::WriteLine( "Instantiate IPv6MulticastOption(IPAddress)" ); - - // Instantiate IPv6MulticastOption using one of the - // overloaded constructors. - IPv6MulticastOption^ ipv6MulticastOption = gcnew IPv6MulticastOption( m_GrpAddr ); - - // Store the IPAdress multicast options. - IPAddress^ group = ipv6MulticastOption->Group; - __int64 interfaceIndex = ipv6MulticastOption->InterfaceIndex; - - // Display IPv6MulticastOption properties. - Console::WriteLine( "IPv6MulticastOption::Group: [ {0}]", group ); - Console::WriteLine( "IPv6MulticastOption::InterfaceIndex: [ {0}]", interfaceIndex ); - - // - // - // Instantiate IPv6MulticastOption using another - // overloaded constructor. - IPv6MulticastOption^ ipv6MulticastOption2 = gcnew IPv6MulticastOption( group,interfaceIndex ); - - // Store the IPAdress multicast options. - group = ipv6MulticastOption2->Group; - interfaceIndex = ipv6MulticastOption2->InterfaceIndex; - - // Display the IPv6MulticastOption2 properties. - Console::WriteLine( "IPv6MulticastOption::Group: [ {0} ]", group ); - Console::WriteLine( "IPv6MulticastOption::InterfaceIndex: [ {0} ]", interfaceIndex ); - - // Join the specified multicast group using one of the - // JoinMulticastGroup overloaded methods. - clientOriginator->JoinMulticastGroup( (int)interfaceIndex, group ); - - // - // Define the endpoint data port. Note that this port number - // must match the ClientTarget UDP port number which is the - // port on which the ClientTarget is receiving data. - m_ClientTargetdest = gcnew IPEndPoint( m_GrpAddr,1000 ); - - // - // Start the ClientTarget thread so it is ready to receive. - m_t = gcnew Thread( gcnew ThreadStart( ClientTarget::StartMulticastConversation ) ); - m_t->Start(); - - // Make sure that the thread has started. - Thread::Sleep( 2000 ); - return true; - } - catch ( Exception^ e ) - { - Console::WriteLine( "[ClientOriginator::ConnectClients] Exception: {0}", e ); - return false; - } - - } - - - // The SendAndReceive performs the data exchange - // between the ClientOriginator and the ClientTarget classes. - static String^ SendAndReceive() - { - String^ Ret = ""; - - // - // Send data to ClientTarget. - Console::WriteLine( "\nThe ClientOriginator sent:\n" ); - Send::OriginatorSendData( clientOriginator, m_ClientTargetdest ); - - // Receive data from ClientTarget - Ret = Receive::ReceiveUntilStop( clientOriginator ); - - // Stop the ClientTarget thread - m_t->Abort(); - - // Abandon the multicast group. - clientOriginator->DropMulticastGroup( m_GrpAddr ); - - // - return Ret; - } - -}; - - -//This is the console application entry point. -int main() -{ - - // Join the multicast group. - if ( ClientOriginator::ConnectOriginatorAndTarget() ) - { - - // Perform a multicast conversation with the ClientTarget. - String^ Ret = ClientOriginator::SendAndReceive(); - Console::WriteLine( "\nThe ClientOriginator received: \n\n {0}", Ret ); - } - else - { - Console::WriteLine( "Unable to Join the multicast group" ); - } -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.UdpClient/CPP/newudpclient.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.UdpClient/CPP/newudpclient.cpp deleted file mode 100644 index 30d3d0da5b033..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.UdpClient/CPP/newudpclient.cpp +++ /dev/null @@ -1,88 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -ref class UdpClientExamples -{ -public: - - // - static void GetAvailable( UdpClient^ u ) - { - // Get the number of bytes available for reading. - Console::WriteLine( "Available value is {0}", u->Available ); - } - // - - // - static void GetSetDontFragment( UdpClient^ u ) - { - // Set the don't fragment flag for packets emanating from - // this client. - u->DontFragment = true; - Console::WriteLine( "DontFragment value is {0}", u->DontFragment ); - } - // - - // - static void GetSetEnableBroadcast( UdpClient^ u ) - { - // Set the Broadcast flag for this client. - u->EnableBroadcast = true; - Console::WriteLine( "EnableBroadcast value is {0}", u->EnableBroadcast ); - } - // - - // - static void GetSetExclusiveAddressUse( UdpClient^ u ) - { - // Don't allow another client to bind to this port. - u->ExclusiveAddressUse = true; - Console::WriteLine( "ExclusiveAddressUse value is {0}", u->ExclusiveAddressUse ); - } - // - - // - static void GetSetTtl( UdpClient^ u ) - { - // Set the Time To Live (TTL) for this client. - u->Ttl = 42; - Console::WriteLine( "Ttl value is {0}", u->Ttl ); - } - // - - // - // Subscribe to a multicast group. - static void DoJoinMulticastGroup( UdpClient^ u, String^ mcast, String^ local ) - { - array^ multicastAddress = Dns::GetHostAddresses( mcast ); - - u->JoinMulticastGroup( multicastAddress[0] ); - Console::WriteLine( "Joined multicast Address {0}", multicastAddress ); - } - // - - // - static void GetSetMulticastLoopback( UdpClient^ u ) - { - // Deliver multicast packets back to the sending client. - u->MulticastLoopback = true; - Console::WriteLine( "MulticastLoopback value is {0}", u->MulticastLoopback ); - } - // -}; - -int main() -{ - UdpClient^ u = gcnew UdpClient( 4242 ); - UdpClientExamples::GetAvailable( u ); - UdpClientExamples::GetSetDontFragment( u ); - UdpClientExamples::GetSetEnableBroadcast( u ); - UdpClientExamples::GetSetExclusiveAddressUse( u ); - UdpClientExamples::GetSetTtl( u ); - UdpClientExamples::DoJoinMulticastGroup( u, "224.1.1.1", "172.30.186.134" ); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.UdpClient1/cpp/asyncudp.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.UdpClient1/cpp/asyncudp.cpp deleted file mode 100644 index e6554acb19660..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.UdpClient1/cpp/asyncudp.cpp +++ /dev/null @@ -1,261 +0,0 @@ -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::Threading; - -public ref class UdpClientExample -{ - // -private: - static int listenPort = 13000; - -public: - value struct UdpState - { - public: - UdpClient^ udpClient; - IPEndPoint^ ipEndPoint; - }; - - static bool isMessageReceived; - - static void ReceiveCallback(IAsyncResult^ asyncResult) - { - UdpClient^ udpClient = - ((UdpState)(asyncResult->AsyncState)).udpClient; - IPEndPoint^ ipEndPoint = - ((UdpState)(asyncResult->AsyncState)).ipEndPoint; - - array^ receiveBytes = - udpClient->EndReceive(asyncResult, ipEndPoint); - String^ receiveString = - Encoding::ASCII->GetString(receiveBytes); - - Console::WriteLine("Received: {0}", receiveString); - isMessageReceived = true; - } - - static void ReceiveMessages() - { - // Receive a message and write it to the console. - IPEndPoint^ ipEndPoint = gcnew IPEndPoint(IPAddress::Any, listenPort); - UdpClient^ udpClient = gcnew UdpClient(ipEndPoint); - - UdpState^ udpState = gcnew UdpState(); - udpState->ipEndPoint = ipEndPoint; - udpState->udpClient = udpClient; - - Console::WriteLine("listening for messages"); - udpClient->BeginReceive(gcnew AsyncCallback(ReceiveCallback), - udpState); - - // Do some work while we wait for a message. For this example, - // we'll just sleep - while (!isMessageReceived) - { - Thread::Sleep(100); - } - } - // - - // -public: - static bool isMessageSent; - - static void SendCallback(IAsyncResult^ asyncResult) - { - UdpClient^ udpClient = (UdpClient^)asyncResult->AsyncState; - - Console::WriteLine("number of bytes sent: {0}", - udpClient->EndSend(asyncResult)); - isMessageSent = true; - } - // - - // -public: - static void SendMessage1(String^ server, String^ message) - { - // create the udp socket - UdpClient^ udpClient = gcnew UdpClient(); - - udpClient->Connect(server, listenPort); - array^ sendBytes = Encoding::ASCII->GetBytes(message); - - // send the message - // the destination is defined by the call to .Connect() - udpClient->BeginSend(sendBytes, sendBytes->Length, - gcnew AsyncCallback(SendCallback), udpClient); - - // Do some work while we wait for the send to complete. For - // this example, we'll just sleep - while (!isMessageSent) - { - Thread::Sleep(100); - } - } - // - - // -public: - static void SendMessage2(String^ server, String^ message) - { - // create the udp socket - UdpClient^ udpClient = gcnew UdpClient(); - array^ sendBytes = Encoding::ASCII->GetBytes(message); - - // resolve the server name - IPHostEntry^ resolvedServer = Dns::GetHostEntry(server); - - IPEndPoint^ ipEndPoint = - gcnew IPEndPoint(resolvedServer->AddressList[0], listenPort); - - // send the message - // the destination is defined by the IPEndPoint - udpClient->BeginSend(sendBytes, sendBytes->Length, ipEndPoint, - gcnew AsyncCallback(SendCallback), udpClient); - - // Do some work while we wait for the send to complete. For - // this example, we'll just sleep - while (!isMessageSent) - { - Thread::Sleep(100); - } - } - // - - // -public: - static void SendMessage3(String^ server, String^ message) - { - // create the udp socket - UdpClient^ udpClient = gcnew UdpClient(); - - array^ sendBytes = Encoding::ASCII->GetBytes(message); - - // send the message - // the destination is defined by the server name and port - udpClient->BeginSend(sendBytes, sendBytes->Length, server, listenPort, - gcnew AsyncCallback(SendCallback), udpClient); - - // Do some work while we wait for the send to complete. For - // this example, we'll just sleep - while (!isMessageSent) - { - Thread::Sleep(100); - } - } - // - -}; - -int main(array^ args) -{ - // Parse arguments - String^ server = ""; - String^ message = "This is a test!"; - bool isServer; - int sendMethod = 1; // n called SendMessagen - - if (args->Length == 0) - { - server = "localhost"; - isServer = false; - } - else if (args->Length == 1) - { - if (args[0] == "s") - { - isServer = true; - } - else - { - isServer = false; - } - } - else if (args->Length == 2) - { - if (args[0] == "s") - { - isServer = true; - } - else - { - isServer = false; - } - server = args[1]; - } - else if (args->Length == 3) - { - if (args[0] == "s") - { - isServer = true; - } - else - { - isServer = false; - } - server = args[1]; - message = args[2]; - } - else if (args->Length == 4) - { - if (args[0] == "s") - { - isServer = true; - } - else - { - isServer = false; - } - server = args[1]; - message = args[2]; - - try - { - sendMethod = Convert::ToInt32(args[3]); - } - catch (System::ArgumentNullException^ ex) - { - Console::WriteLine(ex->Message); - } - catch (System::FormatException^ ex) - { - Console::WriteLine(ex->Message); - } - catch (System::OverflowException^ ex) - { - Console::WriteLine(ex->Message); - } - } - else - { - Console::WriteLine( - "Usage: asyncudp [s|c] [host name] [message] [send method]"); - return 0; - } - - if (isServer) - { - UdpClientExample::ReceiveMessages(); - } - else - { - switch (sendMethod) - { - case 1: - UdpClientExample::SendMessage1(server, message); - break; - case 2: - UdpClientExample::SendMessage2(server, message); - break; - case 3: - UdpClientExample::SendMessage3(server, message); - break; - } - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.UdpClient1/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.UdpClient1/cpp/makefile deleted file mode 100644 index f37b3cc52039e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Net.Sockets.UdpClient1/cpp/makefile +++ /dev/null @@ -1,2 +0,0 @@ -System.Net.Sockets.UdpClient1.exe: asyncudp.cpp - cl /clr:pure /FeSystem.Net.Sockets.UdpClient1.exe asyncudp.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.ActivatedClientTypeEntry/CPP/activatedclienttypeentry_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.ActivatedClientTypeEntry/CPP/activatedclienttypeentry_client.cpp deleted file mode 100644 index 69d3a8ab9a839..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.ActivatedClientTypeEntry/CPP/activatedclienttypeentry_client.cpp +++ /dev/null @@ -1,56 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -static void main() -{ - // Register TCP Channel. - ChannelServices::RegisterChannel( gcnew TcpChannel ); - - // - // Create activated client type entry. - ActivatedClientTypeEntry^ activatedClientTypeEntry = gcnew ActivatedClientTypeEntry( HelloServer::typeid, "tcp://localhost:8082" ); - - // - // Register type on client to activate it on the server. - RemotingConfiguration::RegisterActivatedClientType( activatedClientTypeEntry ); - - // Activate a client activated object type. - HelloServer^ helloServer = gcnew HelloServer( "ParameterString" ); - - // - // Print the object type. - Console::WriteLine( "Object type of client activated object: {0}", activatedClientTypeEntry->ObjectType->ToString() ); - - // - // - // Print the application URL. - Console::WriteLine( "Application url where the type is activated: {0}", activatedClientTypeEntry->ApplicationUrl->ToString() ); - - // - // - // Print the string representation of the type entry. - Console::WriteLine( "Type and assembly name and application URL of the remote object: {0}", activatedClientTypeEntry->ToString() ); - - // - // Print a blank line. - Console::WriteLine(); - - // Check that server was located. - if ( !helloServer ) - { - Console::WriteLine( "Could not locate server" ); - } - else - { - Console::WriteLine( "Calling remote object" ); - Console::WriteLine( helloServer->HelloMethod( "Bill" ) ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.ActivatedClientTypeEntry/CPP/activatedclienttypeentry_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.ActivatedClientTypeEntry/CPP/activatedclienttypeentry_server.cpp deleted file mode 100644 index a394900be3c4b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.ActivatedClientTypeEntry/CPP/activatedclienttypeentry_server.cpp +++ /dev/null @@ -1,19 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -void main() -{ - ChannelServices::RegisterChannel( gcnew TcpChannel( 8082 ) ); - RemotingConfiguration::RegisterActivatedServiceType( HelloServer::typeid ); - Console::WriteLine( "Press enter to stop this process" ); - Console::ReadLine(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.ActivatedClientTypeEntry/CPP/activatedclienttypeentry_share.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.ActivatedClientTypeEntry/CPP/activatedclienttypeentry_share.cpp deleted file mode 100644 index ba2e8f35ea83e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.ActivatedClientTypeEntry/CPP/activatedclienttypeentry_share.cpp +++ /dev/null @@ -1,21 +0,0 @@ - -// -using namespace System; -public ref class HelloServer: public MarshalByRefObject -{ -public: - HelloServer( String^ myString ) - { - Console::WriteLine( "HelloServer activated" ); - Console::WriteLine( "Paramater passed to the constructor is {0}", myString ); - } - - String^ HelloMethod( String^ myName ) - { - Console::WriteLine( "HelloMethod : {0}", myName ); - return String::Format( "Hi there {0}", myName ); - } - -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.ActivatedClientTypeEntry/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.ActivatedClientTypeEntry/CPP/makefile deleted file mode 100644 index 10e3c2609ac63..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.ActivatedClientTypeEntry/CPP/makefile +++ /dev/null @@ -1,13 +0,0 @@ -all : activatedclienttypeentry_server.exe activatedclienttypeentry_client.exe - - -activatedclienttypeentry_server.exe : activatedclienttypeentry_server.cpp activatedclienttypeentry_share.dll - cl /clr:pure activatedclienttypeentry_server.cpp - -activatedclienttypeentry_client.exe : activatedclienttypeentry_client.cpp activatedclienttypeentry_share.dll - cl /clr:pure activatedclienttypeentry_client.cpp - -activatedclienttypeentry_share.dll : activatedclienttypeentry_share.cpp - cl /LD /clr:pure activatedclienttypeentry_share.cpp - - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Activation.UrlAttribute/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Activation.UrlAttribute/CPP/client.cpp deleted file mode 100644 index b590a6fac71ef..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Activation.UrlAttribute/CPP/client.cpp +++ /dev/null @@ -1,47 +0,0 @@ - - -// -#using -#using -#using "RemoteObject.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Activation; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -[STAThread] -int main() -{ - - // Report initial status. - Console::WriteLine( "Client starting." ); - - // Register TCP channel. - ChannelServices::RegisterChannel( gcnew TcpChannel ); - - // - // Create UrlAttribute. - UrlAttribute^ attribute = gcnew UrlAttribute( "tcp://localhost:1234/RemoteApp" ); - Console::WriteLine( "UrlAttribute value: {0}", attribute->UrlValue ); - - // - array^activationAttributes = {attribute}; - - // Use UrlAttribute to register for client activated remote object. - RemotingConfiguration::RegisterActivatedClientType( RemoteObject::typeid, "tcp://localhost:1234/RemoteApp" ); - - // Activate remote object. - Console::WriteLine( "Activating remote object." ); - RemoteObject ^ obj = dynamic_cast(Activator::CreateInstance( RemoteObject::typeid, nullptr, activationAttributes )); - - // Invoke a method on it. - Console::WriteLine( "Invoking Hello() on remote object." ); - obj->Hello(); - - // Inform user of termination. - Console::WriteLine( "Terminating client." ); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Activation.UrlAttribute/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Activation.UrlAttribute/CPP/makefile deleted file mode 100644 index 648abbbb6893d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Activation.UrlAttribute/CPP/makefile +++ /dev/null @@ -1,13 +0,0 @@ -all : server.exe client.exe - - -Server.exe : Server.cpp remoteobject.dll - cl /clr:pure Server.cpp - -client.exe : client.cpp remoteobject.dll - cl /clr:pure client.cpp - -remoteobject.dll : remoteobject.cpp - cl /LD /clr:pure remoteobject.cpp - - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Activation.UrlAttribute/CPP/remoteobject.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Activation.UrlAttribute/CPP/remoteobject.cpp deleted file mode 100644 index 9ce57af4de150..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Activation.UrlAttribute/CPP/remoteobject.cpp +++ /dev/null @@ -1,27 +0,0 @@ - -// -using namespace System; -using namespace System::Security; -using namespace System::Security::Permissions; - -[assembly:AllowPartiallyTrustedCallersAttribute]; -public ref class RemoteObject: public MarshalByRefObject -{ -public: - RemoteObject() - { - - // Report object construction to server's console. - Console::WriteLine( "You have called the constructor." ); - } - - void Hello() - { - - // Report method invocation to server's console. - Console::WriteLine( "You have called Hello()." ); - } - -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Activation.UrlAttribute/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Activation.UrlAttribute/CPP/server.cpp deleted file mode 100644 index d6e404eb60d68..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Activation.UrlAttribute/CPP/server.cpp +++ /dev/null @@ -1,35 +0,0 @@ - - -// -#using -#using -#using "RemoteObject.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -[STAThread] -int main() -{ - - // Report status to user. - Console::WriteLine( "Server starting." ); - - // Register the TCP channel. - ChannelServices::RegisterChannel( gcnew TcpChannel( 1234 ) ); - - // Set application name. - RemotingConfiguration::ApplicationName = "RemoteApp"; - - // Register object for client activated remoting. - RemotingConfiguration::RegisterActivatedServiceType( RemoteObject::typeid ); - - // Wait until termination. - Console::WriteLine( "Press enter to end." ); - Console::ReadLine(); - Console::WriteLine( "Terminating server." ); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/client.cpp deleted file mode 100644 index 7fd2481de4696..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/client.cpp +++ /dev/null @@ -1,68 +0,0 @@ - -/// Class: System.Runtime.Remoting.Channels.Http.HttpClientChannel -/// 10 class - client -/// 40 class - server -/// 30 class - remotable object -/// 21 #ctor(IDictionary,IClientChannelSinkProvider) -/// 22 #ctor(string,sinkProvider) -/// 11 CreateMessageSink -/// 12 Item -/// 12 Keys -/// 13 Parse -// -#using -#using -#using "common.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -void main() -{ - // Create the channel. - HttpClientChannel^ clientChannel = gcnew HttpClientChannel; - - // Register the channel. - ChannelServices::RegisterChannel( clientChannel ); - - // Register as client for remote object. - WellKnownClientTypeEntry^ remoteType = gcnew WellKnownClientTypeEntry( RemoteObject::typeid,L"http://localhost:9090/RemoteObject.rem" ); - RemotingConfiguration::RegisterWellKnownClientType( remoteType ); - - // - // Create a message sink. - String^ objectUri; - System::Runtime::Remoting::Messaging::IMessageSink^ messageSink = clientChannel->CreateMessageSink( L"http://localhost:9090/RemoteObject.rem", nullptr, objectUri ); - Console::WriteLine( L"The URI of the message sink is {0}.", objectUri ); - if ( messageSink != nullptr ) - { - Console::WriteLine( L"The type of the message sink is {0}.", messageSink->GetType() ); - } - // - - // - // Display the channel's properties using Keys and Item. - for each(String^ key in clientChannel->Keys) - { - Console::WriteLine("clientChannel[{0}] = <{1}>", key, clientChannel[key]); - } - // - - // - // Parse the channel's URI. - String^ objectUrl = L"http://localhost:9090/RemoteObject.rem"; - String^ channelUri = clientChannel->Parse( objectUrl, objectUri ); - Console::WriteLine( L"The object URL is {0}.", objectUrl ); - Console::WriteLine( L"The object URI is {0}.", objectUri ); - Console::WriteLine( L"The channel URI is {0}.", channelUri ); - // - - // Create an instance of the remote object. - RemoteObject^ service = gcnew RemoteObject; - - // Invoke a method on the remote object. - Console::WriteLine( L"The client is invoking the remote object." ); - Console::WriteLine( L"The remote object has been called {0} times.", service->GetCount() ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/client2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/client2.cpp deleted file mode 100644 index 82c72ff9ce5d0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/client2.cpp +++ /dev/null @@ -1,93 +0,0 @@ - -/// x broken -/// + done -/// 9 number of snippet -/// Need snippets: -/// 21 #ctor(IDictionary,IClientChannelSinkProvider) -/// 22 #ctor(string,sinkProvider) -/// 11 CreateMessageSink -/// 12 Item -/// 12 Keys -/// 13 Parse -#using -#using -#using "common.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -static HttpClientChannel^ Ctor1() -{ - - // - // Create a client channel. - System::Collections::Hashtable^ properties = gcnew System::Collections::Hashtable; - properties->default[ L"port" ] = 9090; - IClientChannelSinkProvider^ sinkProvider = nullptr; - HttpClientChannel^ clientChannel = gcnew HttpClientChannel( properties,sinkProvider ); - - // - return clientChannel; -} - -static HttpClientChannel^ Ctor2() -{ - - // - // Create a client channel. - String^ name = L"RemotingClient"; - IClientChannelSinkProvider^ sinkProvider = nullptr; - HttpClientChannel^ clientChannel = gcnew HttpClientChannel( name,sinkProvider ); - - // - return clientChannel; -} - -static void Register( HttpClientChannel^ channel ) -{ - - // Register the channel. - ChannelServices::RegisterChannel( channel ); - - // Register as client for remote object. - WellKnownClientTypeEntry^ remoteType = gcnew WellKnownClientTypeEntry( - RemoteObject::typeid, L"http://localhost:9090/RemoteObject.rem" ); - RemotingConfiguration::RegisterWellKnownClientType( remoteType ); -} - -static void InvokeRemoteObject( RemoteObject^ service ) -{ - - // Invoke a method on the remote object. - Console::WriteLine( L"The client is invoking the remote object." ); - Console::WriteLine( L"The remote object has been called {0} times.", service->GetCount() ); -} - -void main() -{ - array^args = Environment::GetCommandLineArgs(); - - // Create the channel. - HttpClientChannel^ clientChannel = nullptr; - String^ overload = args[ 1 ]; - if ( overload->Equals( L"1" ) ) - clientChannel = Ctor1(); - else - if ( overload->Equals( L"2" ) ) - clientChannel = Ctor2(); - else - throw gcnew Exception( String::Format( L"Argument {0} was invalid.", args[ 1 ] ) ); - - - - // Register the channel and the client. - Register( clientChannel ); - - // Create an instance of the remote object. - RemoteObject^ service = gcnew RemoteObject; - - // Invoke a method on the remote object. - InvokeRemoteObject( service ); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/common.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/common.cpp deleted file mode 100644 index 48993e10a85db..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/common.cpp +++ /dev/null @@ -1,22 +0,0 @@ -// -#using -using namespace System; -using namespace System::Runtime::Remoting; - -// Remote object. -public ref class RemoteObject: public MarshalByRefObject -{ -private: - static int callCount = 0; - -public: - int GetCount() - { - Console::WriteLine( L"GetCount was called." ); - callCount++; - return (callCount); - } - -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/makefile deleted file mode 100644 index ab032f3a76441..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/makefile +++ /dev/null @@ -1,15 +0,0 @@ -all : server.exe client.exe client2.exe - - -server.exe : server.cpp common.dll - cl /clr:pure server.cpp - -client.exe : client.cpp common.dll - cl /clr:pure client.cpp - -client2.exe : client2.cpp common.dll - cl /clr:pure client2.cpp - -common.dll : common.cpp - cl /clr:pure /LD common.cpp - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/server.cpp deleted file mode 100644 index 644ca673c785e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpClientChannel/CPP/server.cpp +++ /dev/null @@ -1,26 +0,0 @@ -// -#using -#using -#using "common.dll" -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; - -void main() -{ - // Create the server channel. - HttpServerChannel^ serverChannel = gcnew HttpServerChannel( 9090 ); - - // Register the server channel. - ChannelServices::RegisterChannel( serverChannel ); - - // Expose an object for remote calls. - RemotingConfiguration::RegisterWellKnownServiceType( RemoteObject::typeid, L"RemoteObject.rem", WellKnownObjectMode::Singleton ); - - // Wait for the user prompt. - Console::WriteLine( L"Press ENTER to exit the server." ); - Console::ReadLine(); - Console::WriteLine( L"The server is exiting." ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/client.cpp deleted file mode 100644 index 0bc567804aaa2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/client.cpp +++ /dev/null @@ -1,31 +0,0 @@ -// -#using -#using -#using "common.dll" -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; - -void main() -{ - // Create the channel. - HttpClientChannel^ channel = gcnew HttpClientChannel; - - // Register the channel. - ChannelServices::RegisterChannel( channel ); - - // Register as client for remote object. - WellKnownClientTypeEntry^ remoteType = gcnew WellKnownClientTypeEntry( - RemoteObject::typeid,L"http://localhost:9090/RemoteObject.rem" ); - RemotingConfiguration::RegisterWellKnownClientType( remoteType ); - - // Create an instance of the remote object. - RemoteObject^ service = gcnew RemoteObject; - - // Invoke a method on the remote object. - Console::WriteLine( L"The client is invoking the remote object." ); - Console::WriteLine( L"The remote object has been called {0} times.", service->GetCount() ); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/common.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/common.cpp deleted file mode 100644 index db03ebf8070f4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/common.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// -using namespace System; -using namespace System::Runtime::Remoting; - -// Remote object. -public ref class RemoteObject: public MarshalByRefObject -{ -private: - static int callCount = 0; - -public: - int GetCount() - { - callCount++; - return (callCount); - } - -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/makefile deleted file mode 100644 index 5a7420094c8c5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/makefile +++ /dev/null @@ -1,15 +0,0 @@ -all : server.exe client.exe server2.exe - - -server.exe : server.cpp common.dll - cl /clr:pure server.cpp - -client.exe : client.cpp common.dll - cl /clr:pure client.cpp - -server2.exe : server2.cpp common.dll - cl /clr:pure server2.cpp - -common.dll : common.cpp - cl /clr:pure /LD common.cpp - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/server.cpp deleted file mode 100644 index 52710e3ce2a52..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/server.cpp +++ /dev/null @@ -1,91 +0,0 @@ -/// Class: System.Runtime.Remoting.Channels.Http.HttpServerChannel -/// 20 class - server -/// 30 class - client -/// 40 class - remotable object -/// 12 ctor(IDictionary,IServerChannelSinkProvider) -/// 13 ctor(string,int) -/// 14 ctor(string,int,IServerChannelSinkProvider) -/// 21 ChannelScheme -/// 23 ChannelSinkChain -/// 22 GetChannelUri() -/// 25 Parse() -/// 24 WantsToListen -/// ! Ctor() -/// ! AddHookChannelUri -/// ! Item -/// ! Keys -/// ! StartListening -/// ! StopListening -/// Bug Notes [01-26-04][Mon] -/// AddHookChannelUri does not pick up port. -/// Ctor() would be usable if AddHookChannelUri could be -/// used to set the port later. Since it can't Ctor() is -/// also unusable. Items and Keys are unimplemented. While -/// StopListening works, StartListening does not restart -/// listening -- client fails. These two are likely to be -/// used as a pair and are therefore unusable. -// -#using -#using -#using "common.dll" -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; - -int main() -{ - // Create the server channel. - HttpServerChannel^ serverChannel = gcnew HttpServerChannel( 9090 ); - - // Register the server channel. - ChannelServices::RegisterChannel( serverChannel ); - - // - // Display the channel's scheme. - Console::WriteLine( L"The channel scheme is {0}.", serverChannel->ChannelScheme ); - - // - // - // Display the channel's URI. - Console::WriteLine( L"The channel URI is {0}.", serverChannel->GetChannelUri() ); - - // - // Expose an object for remote calls. - RemotingConfiguration::RegisterWellKnownServiceType( - RemoteObject::typeid, L"RemoteObject.rem", WellKnownObjectMode::Singleton ); - - // - // Get the channel's sink chain. - IServerChannelSink^ sinkChain = serverChannel->ChannelSinkChain; - Console::WriteLine( L"The type of the server channel's sink chain is {0}.", sinkChain->GetType() ); - - // - // - // See if the channel wants to listen. - bool wantsToListen = serverChannel->WantsToListen; - Console::WriteLine( L"The value of WantsToListen is {0}.", wantsToListen ); - - // - // - // Parse the channel's URI. - array^ urls = serverChannel->GetUrlsForUri( L"RemoteObject.rem" ); - if ( urls->Length > 0 ) - { - String^ objectUrl = urls[ 0 ]; - String^ objectUri; - String^ channelUri = serverChannel->Parse( objectUrl, objectUri ); - Console::WriteLine( L"The object URI is {0}.", objectUri ); - Console::WriteLine( L"The channel URI is {0}.", channelUri ); - Console::WriteLine( L"The object URL is {0}.", objectUrl ); - } - - - // - // Wait for the user prompt. - Console::WriteLine( L"Press ENTER to exit the server." ); - Console::ReadLine(); - Console::WriteLine( L"The server is exiting." ); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/server2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/server2.cpp deleted file mode 100644 index 845f7224e298a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Http.HttpServerChannel/CPP/server2.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/// Legend: -/// - Bugs -/// x Done -/// Work in progress -/// Snippets needed: -/// - Ctor() -/// x Ctor(IDictionary,IServerChannelSinkProvider) -/// x Ctor(string,int) -/// x Ctor(string,int,IServerChannelSinkProvider) -#using -#using -#using "common.dll" -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; - -static HttpServerChannel^ Ctor2() -{ - // - System::Collections::Hashtable^ properties = gcnew System::Collections::Hashtable; - properties->default[ L"port" ] = 9090; - IServerChannelSinkProvider^ sinkProvider = nullptr; - HttpServerChannel^ serverChannel = gcnew HttpServerChannel( properties,sinkProvider ); - - // - return serverChannel; -} - -// Broken. -static HttpServerChannel^ Ctor1() -{ - // - HttpServerChannel^ serverChannel = gcnew HttpServerChannel; - serverChannel->AddHookChannelUri( L"http://localhost:9090" ); - - // - // return serverChannel; - // Return good channel until fix. - return Ctor2(); -} - -static HttpServerChannel^ Ctor3() -{ - // - String^ name = L"RemotingServer"; - int port = 9090; - HttpServerChannel^ serverChannel = gcnew HttpServerChannel( name,port ); - - // - return serverChannel; -} - -static HttpServerChannel^ Ctor4() -{ - - // - String^ name = L"RemotingServer"; - int port = 9090; - IServerChannelSinkProvider^ sinkProvider = nullptr; - HttpServerChannel^ serverChannel = gcnew HttpServerChannel( - name,port,sinkProvider ); - - // - return serverChannel; -} - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - HttpServerChannel^ serverChannel = nullptr; - String^ overload = args[ 1 ]; - if ( overload->Equals( L"1" ) ) serverChannel = Ctor1(); - else if ( overload->Equals( L"2" ) ) serverChannel = Ctor2(); - else if ( overload->Equals( L"3" ) ) serverChannel = Ctor3(); - else if ( overload->Equals( L"4" ) ) serverChannel = Ctor4(); - else throw gcnew Exception( String::Format( - L"Argument {0} was invalid.", args[ 1 ] ) ); - - // Register the server channel. - ChannelServices::RegisterChannel( serverChannel ); - - // Display the channel's URI. - Console::WriteLine( L"The URI of the channel is {0}.", - serverChannel->GetChannelUri() ); - - // Expose an object for remote calls. - RemotingConfiguration::RegisterWellKnownServiceType( - RemoteObject::typeid, L"RemoteObject.rem", - WellKnownObjectMode::Singleton ); - - // Wait for the user prompt. - Console::WriteLine( L"Press ENTER to exit the server." ); - Console::ReadLine(); - Console::WriteLine( L"The server is exiting." ); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/client.cpp deleted file mode 100644 index 4c49318b1c7a3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/client.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// -#using -#using -#using "common.dll" -using namespace System; -using namespace System::Runtime::Remoting::Channels::Ipc; - -void main() -{ - - // - // Create the channel. - IpcChannel^ channel = gcnew IpcChannel; - - // - // Register the channel. - System::Runtime::Remoting::Channels::ChannelServices::RegisterChannel(channel); - - // Register as client for remote object. - System::Runtime::Remoting::WellKnownClientTypeEntry^ remoteType = gcnew - System::Runtime::Remoting::WellKnownClientTypeEntry( - RemoteObject::typeid,L"ipc://localhost:9090/RemoteObject.rem" ); - System::Runtime::Remoting::RemotingConfiguration::RegisterWellKnownClientType(remoteType); - - // - // Create a message sink. - String^ objectUri; - System::Runtime::Remoting::Messaging::IMessageSink^ messageSink = channel->CreateMessageSink( - L"ipc://localhost:9090/RemoteObject.rem", nullptr, objectUri ); - Console::WriteLine( L"The URI of the message sink is {0}.", objectUri ); - if ( messageSink != nullptr ) - { - Console::WriteLine( L"The type of the message sink is {0}.", messageSink->GetType() ); - } - - - // - // Create an instance of the remote object. - RemoteObject^ service = gcnew RemoteObject; - - // Invoke a method on the remote object. - Console::WriteLine( L"The client is invoking the remote object." ); - Console::WriteLine( L"The remote object has been called {0} times.", service->GetCount() ); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/common.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/common.cpp deleted file mode 100644 index 8143f1ac9c196..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/common.cpp +++ /dev/null @@ -1,21 +0,0 @@ - -// -using namespace System; - -// Remote object. -public ref class RemoteObject: public MarshalByRefObject -{ -private: - static int callCount = 0; - -public: - int GetCount() - { - Console::WriteLine( L"GetCount has been called." ); - callCount++; - return (callCount); - } - -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/makefile deleted file mode 100644 index 5a7420094c8c5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/makefile +++ /dev/null @@ -1,15 +0,0 @@ -all : server.exe client.exe server2.exe - - -server.exe : server.cpp common.dll - cl /clr:pure server.cpp - -client.exe : client.cpp common.dll - cl /clr:pure client.cpp - -server2.exe : server2.cpp common.dll - cl /clr:pure server2.cpp - -common.dll : common.cpp - cl /clr:pure /LD common.cpp - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/server.cpp deleted file mode 100644 index fb005b99e6481..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/server.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/// Class: System.Runtime.Remoting.Channels.Ipc.IpcChannel -/// 10 class - Server.cs -/// 20 class - Client.cs -/// 30 class - Common.cs -/// 21 #ctor() -/// 11 #ctor(string) -/// 41 #ctor(IDictionary,IClientChannelSinkProvider,IServerChannelSinkProvider) -/// 15 ChannelData -/// 12 ChannelName -/// 13 ChannelPriority -/// 22 CreateMessageSink() -/// 19 GetUrlsForUri() -/// 19 Parse() -/// ! StartListening() -/// ! StopListening() -// -#using -#using -#using "common.dll" -using namespace System; -using namespace System::Runtime::Remoting::Channels::Ipc; - -void main() -{ - // - // Create the server channel. - IpcChannel^ serverChannel = gcnew IpcChannel( L"localhost:9090" ); - // - - // Register the server channel. - System::Runtime::Remoting::Channels::ChannelServices::RegisterChannel( serverChannel ); - - // - // Show the name of the channel. - Console::WriteLine( L"The name of the channel is {0}.", serverChannel->ChannelName ); - // - - // - // Show the priority of the channel. - Console::WriteLine( L"The priority of the channel is {0}.", serverChannel->ChannelPriority ); - // - - // - // Show the URIs associated with the channel. - System::Runtime::Remoting::Channels::ChannelDataStore^ channelData = (System::Runtime::Remoting::Channels::ChannelDataStore^)serverChannel->ChannelData; - for each (String^ uri in channelData->ChannelUris) - { - Console::WriteLine("The channel URI is {0}.", uri); - } - // - - // Expose an object for remote calls. - System::Runtime::Remoting::RemotingConfiguration::RegisterWellKnownServiceType( - RemoteObject::typeid,L"RemoteObject.rem", - System::Runtime::Remoting::WellKnownObjectMode::Singleton); - - // - // Parse the channel's URI. - array^ urls = serverChannel->GetUrlsForUri( L"RemoteObject.rem" ); - if ( urls->Length > 0 ) - { - String^ objectUrl = urls[ 0 ]; - String^ objectUri; - String^ channelUri = serverChannel->Parse( objectUrl, objectUri ); - Console::WriteLine( L"The object URI is {0}.", objectUri ); - Console::WriteLine( L"The channel URI is {0}.", channelUri ); - Console::WriteLine( L"The object URL is {0}.", objectUrl ); - } - // - - // Wait for the user prompt. - Console::WriteLine( L"Press ENTER to exit the server." ); - Console::ReadLine(); - Console::WriteLine( L"The server is exiting." ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/server2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/server2.cpp deleted file mode 100644 index 3bd26211f01cc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcChannel/CPP/server2.cpp +++ /dev/null @@ -1,43 +0,0 @@ -/// Class: System.Runtime.Remoting.Channels.Ipc.IpcChannel -/// 41 #ctor(IDictionary,IClientChannelSinkProvider,IServerChannelSinkProvider) -#using -#using -#using "common.dll" -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Ipc; - -void main() -{ - - // - // Create the server channel. - System::Collections::IDictionary^ properties = gcnew System::Collections::Hashtable; - properties->default[ L"name" ] = L"ipc"; - properties->default[ L"priority" ] = L"20"; - properties->default[ L"portName" ] = L"localhost:9090"; - IpcChannel^ serverChannel = gcnew IpcChannel( properties,nullptr,nullptr ); - - // - // Register the server channel. - ChannelServices::RegisterChannel( serverChannel ); - - // Expose an object for remote calls. - RemotingConfiguration::RegisterWellKnownServiceType( - RemoteObject::typeid, L"RemoteObject.rem", WellKnownObjectMode::Singleton ); - - // Show the URIs associated with the channel. - ChannelDataStore^ channelData = dynamic_cast(serverChannel->ChannelData); - System::Collections::IEnumerator^ myEnum = channelData->ChannelUris->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - String^ uri = safe_cast(myEnum->Current); - Console::WriteLine( L"The channel URI is {0}.", uri ); - } - - Console::WriteLine( L"Press ENTER to exit the server." ); - Console::ReadLine(); - Console::WriteLine( L"The server is exiting." ); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/client.cpp deleted file mode 100644 index 83717776b8bce..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/client.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/// Class: System.Runtime.Remoting.Channels.Ipc.IpcClientChannel -/// 41 #ctor(IDictionary,IClientChannelSinkProvider) -/// 42 #ctor(String,IClientChannelSinkProvider) -/// 21 ChannelName -/// 23 ChannelPriority -/// 22 CreateMessageSink(String,Object,String@) -/// 24 Parse(String,String@) -#using -#using -#using "common.dll" -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Ipc; - -void main() -{ - - // Create the channel. - IpcClientChannel^ clientChannel = gcnew IpcClientChannel; - - // Register the channel. - System::Runtime::Remoting::Channels::ChannelServices::RegisterChannel(clientChannel); - - // - // Show the name of the channel. - Console::WriteLine( L"The name of the channel is {0}.", clientChannel->ChannelName ); - - // - // - // Show the priority of the channel. - Console::WriteLine( L"The priority of the channel is {0}.", clientChannel->ChannelPriority ); - - // - // Register as client for remote object. - WellKnownClientTypeEntry^ remoteType = gcnew WellKnownClientTypeEntry( - RemoteObject::typeid,L"ipc://localhost:9090/RemoteObject.rem" ); - System::Runtime::Remoting::RemotingConfiguration::RegisterWellKnownClientType(remoteType); - - // - // Create a message sink. - String^ messageSinkUri; - Messaging::IMessageSink^ messageSink = clientChannel->CreateMessageSink( - L"ipc://localhost:9090/RemoteObject.rem", nullptr, messageSinkUri ); - Console::WriteLine( L"The URI of the message sink is {0}.", messageSinkUri ); - if ( messageSink != nullptr ) - { - Console::WriteLine( L"The type of the message sink is {0}.", messageSink->GetType() ); - } - - - // - // - // Parse the object URL. - String^ objectUrl = L"ipc://localhost:9090/RemoteObject.rem"; - String^ objectUri; - String^ channelUri = clientChannel->Parse( objectUrl, objectUri ); - Console::WriteLine( L"The object URL is {0}.", objectUrl ); - Console::WriteLine( L"The object URI is {0}.", objectUri ); - Console::WriteLine( L"The channel URI is {0}.", channelUri ); - - // - // Create an instance of the remote object. - RemoteObject^ service = gcnew RemoteObject; - - // Invoke a method on the remote object. - Console::WriteLine( L"The client is invoking the remote object." ); - Console::WriteLine( L"The remote object has been called {0} times.", service->GetCount() ); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/client2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/client2.cpp deleted file mode 100644 index 8b87bbee8c227..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/client2.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/// Class: System.Runtime.Remoting.Channels.Ipc.IpcClientChannel -/// 41 #ctor(IDictionary,IClientChannelSinkProvider) -/// 42 #ctor(String,IClientChannelSinkProvider) -/// 21 ChannelName -/// 23 ChannelPriority -/// 22 CreateMessageSink(String,Object,String@) -/// 24 Parse(String,String@) -#using -#using -#using "common.dll" -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Ipc; - -static IpcClientChannel^ Ctor1() -{ - // - // Create the client channel. - System::Collections::IDictionary^ properties = gcnew System::Collections::Hashtable; - properties->default[ L"name" ] = L"ipc client"; - properties->default[ L"priority" ] = L"1"; - IClientChannelSinkProvider^ sinkProvider = nullptr; - IpcClientChannel^ clientChannel = gcnew IpcClientChannel( properties,sinkProvider ); - // - - return clientChannel; -} - -static IpcClientChannel^ Ctor2() -{ - // - // Create the client channel. - String^ name = L"ipc client"; - IClientChannelSinkProvider^ sinkProvider = nullptr; - IpcClientChannel^ clientChannel = gcnew IpcClientChannel( name,sinkProvider ); - // - - return clientChannel; -} - -void main() -{ - array^args = Environment::GetCommandLineArgs(); - - // Create the client channel. - IpcClientChannel^ clientChannel = nullptr; -// if ( false ) {} -// else - if ( args[ 1 ]->Equals( L"1" ) ) - clientChannel = Ctor1(); - else - if ( args[ 1 ]->Equals( L"2" ) ) - clientChannel = Ctor2(); - else - throw gcnew ApplicationException( L"Invalid argument." ); - - // Register the channel. - ChannelServices::RegisterChannel( clientChannel ); - - // Register as client for remote object. - WellKnownClientTypeEntry^ remoteType = gcnew WellKnownClientTypeEntry( - RemoteObject::typeid,L"ipc://localhost:9090/RemoteObject.rem" ); - RemotingConfiguration::RegisterWellKnownClientType( remoteType ); - - // Create an instance of the remote object. - RemoteObject^ service = gcnew RemoteObject; - - // Invoke a method on the remote object. - Console::WriteLine( L"The client is invoking the remote object." ); - Console::WriteLine( L"The remote object has been called {0} times.", service->GetCount() ); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/common.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/common.cpp deleted file mode 100644 index 5cd87ac3b0217..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/common.cpp +++ /dev/null @@ -1,19 +0,0 @@ - -using namespace System; - -// Remote object. -public ref class RemoteObject: public MarshalByRefObject -{ -private: - static int callCount = 0; - -public: - int GetCount() - { - Console::WriteLine( L"GetCount has been called." ); - callCount++; - return (callCount); - } - -}; - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/makefile deleted file mode 100644 index ab032f3a76441..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/makefile +++ /dev/null @@ -1,15 +0,0 @@ -all : server.exe client.exe client2.exe - - -server.exe : server.cpp common.dll - cl /clr:pure server.cpp - -client.exe : client.cpp common.dll - cl /clr:pure client.cpp - -client2.exe : client2.cpp common.dll - cl /clr:pure client2.cpp - -common.dll : common.cpp - cl /clr:pure /LD common.cpp - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/server.cpp deleted file mode 100644 index c0e876d4fb37a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcClientChannel/CPP/server.cpp +++ /dev/null @@ -1,27 +0,0 @@ - -#using -#using -#using "common.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Ipc; -void main() -{ - - // Create the server channel. - IpcChannel^ serverChannel = gcnew IpcChannel( L"localhost:9090" ); - - // Register the server channel. - ChannelServices::RegisterChannel( serverChannel ); - - // Expose an object for remote calls. - RemotingConfiguration::RegisterWellKnownServiceType( RemoteObject::typeid, L"RemoteObject.rem", WellKnownObjectMode::Singleton ); - - // Wait for the user prompt. - Console::WriteLine( L"Press ENTER to exit the server." ); - Console::ReadLine(); - Console::WriteLine( L"The server is exiting." ); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/client.cpp deleted file mode 100644 index 08f6b1e8cfc3b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/client.cpp +++ /dev/null @@ -1,44 +0,0 @@ -// -#using -#using -#using "common.dll" -using namespace System; -using namespace System::Runtime::Remoting::Channels::Ipc; - -void main() -{ - // - // Create the channel. - IpcChannel^ channel = gcnew IpcChannel; - // - - // Register the channel. - System::Runtime::Remoting::Channels::ChannelServices::RegisterChannel(channel); - - // Register as client for remote object. - System::Runtime::Remoting::WellKnownClientTypeEntry^ remoteType = - gcnew System::Runtime::Remoting::WellKnownClientTypeEntry( - RemoteObject::typeid,L"ipc://localhost:9090/RemoteObject.rem" ); - System::Runtime::Remoting::RemotingConfiguration::RegisterWellKnownClientType(remoteType); - - // - // Create a message sink. - String^ objectUri; - System::Runtime::Remoting::Messaging::IMessageSink^ messageSink = - channel->CreateMessageSink( L"ipc://localhost:9090/RemoteObject.rem",nullptr,objectUri ); - Console::WriteLine( L"The URI of the message sink is {0}.",objectUri ); - if ( messageSink != nullptr ) - { - Console::WriteLine( L"The type of the message sink is {0}.",messageSink->GetType() ); - } - // - - // Create an instance of the remote object. - RemoteObject^ service = gcnew RemoteObject; - - // Invoke a method on the remote object. - Console::WriteLine( L"The client is invoking the remote object." ); - Console::WriteLine( L"The remote object has been called {0} times.",service->GetCount() ); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/common.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/common.cpp deleted file mode 100644 index cef9f0974ffe2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/common.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// -using namespace System; - -// Remote object. -public ref class RemoteObject: public MarshalByRefObject -{ -private: - static int callCount = 0; - -public: - int GetCount() - { - Console::WriteLine( L"GetCount has been called." ); - callCount++; - return (callCount); - } - -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/makefile deleted file mode 100644 index 5a7420094c8c5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/makefile +++ /dev/null @@ -1,15 +0,0 @@ -all : server.exe client.exe server2.exe - - -server.exe : server.cpp common.dll - cl /clr:pure server.cpp - -client.exe : client.cpp common.dll - cl /clr:pure client.cpp - -server2.exe : server2.cpp common.dll - cl /clr:pure server2.cpp - -common.dll : common.cpp - cl /clr:pure /LD common.cpp - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/server.cpp deleted file mode 100644 index 81cd95206cbe2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/server.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/// Class: System.Runtime.Remoting.Channels.Ipc.IpcServerChannel -/// 41 #ctor(IDictionary,IServerChannelSinkProvider) -/// 42 #ctor(String,String) -/// 43 #ctor(String,String,IServerChannelSinkProvider) -/// 15 ChannelData -/// 12 ChannelName -/// 13 ChannelPriority -/// 19 GetUrlsForUri -/// 19 Parse(String,String@) -/// ! StartListening(Object) -/// ! StopListening(Object) -#using -#using -#using "common.dll" -using namespace System; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Ipc; - -void main() -{ - // Create the server channel. - IpcServerChannel^ serverChannel = gcnew IpcServerChannel( L"localhost:9090" ); - - // Register the server channel. - System::Runtime::Remoting::Channels::ChannelServices::RegisterChannel( serverChannel ); - - // - // Show the name of the channel. - Console::WriteLine( L"The name of the channel is {0}.",serverChannel->ChannelName ); - // - - // - // Show the priority of the channel. - Console::WriteLine( L"The priority of the channel is {0}.",serverChannel->ChannelPriority ); - // - - // - // Show the URIs associated with the channel. - System::Runtime::Remoting::Channels::ChannelDataStore^ channelData = - static_cast - (serverChannel->ChannelData); - System::Collections::IEnumerator^ myEnum = channelData->ChannelUris->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - String^ uri = safe_cast( myEnum->Current ); - Console::WriteLine( L"The channel URI is {0}.",uri ); - } - // - - // Expose an object for remote calls. - System::Runtime::Remoting::RemotingConfiguration:: - RegisterWellKnownServiceType( - RemoteObject::typeid,L"RemoteObject.rem", - System::Runtime::Remoting::WellKnownObjectMode::Singleton ); - - // - // Parse the channel's URI. - array^urls = serverChannel->GetUrlsForUri( L"RemoteObject.rem" ); - if ( urls->Length > 0 ) - { - String^ objectUrl = urls[ 0 ]; - String^ objectUri; - String^ channelUri = serverChannel->Parse( objectUrl,objectUri ); - Console::WriteLine( L"The object URI is {0}.",objectUri ); - Console::WriteLine( L"The channel URI is {0}.",channelUri ); - Console::WriteLine( L"The object URL is {0}.",objectUrl ); - } - // - - // Wait for the user prompt. - Console::WriteLine( L"Press ENTER to exit the server." ); - Console::ReadLine(); - Console::WriteLine( L"The server is exiting." ); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/server2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/server2.cpp deleted file mode 100644 index 41624295c7542..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Ipc.IpcServerChannel/CPP/server2.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/// Class: System.Runtime.Remoting.Channels.Ipc.IpcServerChannel -/// 41 #ctor(IDictionary,IServerChannelSinkProvider) -/// 42 #ctor(String,String) -/// 43 #ctor(String,String,IServerChannelSinkProvider) -#using -#using -#using "common.dll" -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Ipc; - -static IpcServerChannel^ Ctor1() -{ - // - // Create the server channel. - System::Collections::IDictionary^ properties = gcnew System::Collections::Hashtable; - properties->default[ L"name" ] = L"ipc"; - properties->default[ L"priority" ] = L"20"; - properties->default[ L"portName" ] = L"localhost:9090"; - IpcServerChannel^ serverChannel = gcnew IpcServerChannel( properties, nullptr ); - - // - return serverChannel; -} - -static IpcServerChannel^ Ctor2() -{ - // - // Create the server channel. - String^ name = L"ipc"; - String^ portName = L"localhost:9090"; - IpcServerChannel^ serverChannel = gcnew IpcServerChannel( name,portName ); - - // - return serverChannel; -} - -static IpcServerChannel^ Ctor3() -{ - // - // Create the server channel. - String^ name = L"ipc"; - String^ portName = L"localhost:9090"; - IServerChannelSinkProvider^ sinkProvider = nullptr; - IpcServerChannel^ serverChannel = gcnew IpcServerChannel( name,portName,sinkProvider ); - - // - return serverChannel; -} - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - - // Create the server channel. - IpcServerChannel^ serverChannel = nullptr; - if ( false ) {} - else if ( args[ 1 ]->Equals( L"1" ) ) serverChannel = Ctor1(); - else if ( args[ 1 ]->Equals( L"2" ) ) serverChannel = Ctor2(); - else if ( args[ 1 ]->Equals( L"3" ) ) serverChannel = Ctor3(); - else throw gcnew ApplicationException( L"Invalid argument." ); - - // Register the server channel. - ChannelServices::RegisterChannel( serverChannel ); - - // Expose an object for remote calls. - RemotingConfiguration::RegisterWellKnownServiceType( - RemoteObject::typeid, L"RemoteObject.rem", - WellKnownObjectMode::Singleton ); - - // Show the URIs associated with the channel. - ChannelDataStore^ channelData = static_cast(serverChannel->ChannelData); - System::Collections::IEnumerator^ myEnum = channelData->ChannelUris->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - String^ uri = static_cast(myEnum->Current); - Console::WriteLine( L"The channel URI is {0}.", uri ); - } - - // Wait for the user prompt. - Console::WriteLine( L"Press ENTER to exit the server." ); - Console::ReadLine(); - Console::WriteLine( L"The server is exiting." ); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel/CPP/client.cpp deleted file mode 100644 index 5318cdac4b1c4..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel/CPP/client.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Security::Permissions; - -int main(array^ args) -{ - // - // Create the channel. - TcpChannel^ clientChannel = gcnew TcpChannel(); - // - - // Register the channel. - ChannelServices::RegisterChannel(clientChannel, false); - - // Register as client for remote object. - WellKnownClientTypeEntry^ remoteType = gcnew WellKnownClientTypeEntry( - RemoteObject::typeid,"tcp://localhost:9090/RemoteObject.rem"); - RemotingConfiguration::RegisterWellKnownClientType(remoteType); - - // - // Create a message sink. - String^ objectUri; - System::Runtime::Remoting::Messaging::IMessageSink^ messageSink = - clientChannel->CreateMessageSink( - "tcp://localhost:9090/RemoteObject.rem", nullptr, - objectUri); - Console::WriteLine("The URI of the message sink is {0}.", - objectUri); - if (messageSink != nullptr) - { - Console::WriteLine("The type of the message sink is {0}.", - messageSink->GetType()->ToString()); - } - // - - // Create an instance of the remote object. - RemoteObject^ service = gcnew RemoteObject(); - - // Invoke a method on the remote object. - Console::WriteLine("The client is invoking the remote object."); - Console::WriteLine("The remote object has been called {0} times.", - service->GetCount()); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel/CPP/common.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel/CPP/common.cpp deleted file mode 100644 index a84a5d0ff0770..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel/CPP/common.cpp +++ /dev/null @@ -1,25 +0,0 @@ - -// -using namespace System; -using namespace System::Runtime::Remoting; - -// Remote object. -public ref class RemoteObject: public MarshalByRefObject -{ -private: - int callCount; - -public: - RemoteObject() - : callCount( 0 ) - {} - - int GetCount() - { - callCount++; - return (callCount); - } - -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel/CPP/makefile deleted file mode 100644 index 1f6757e44dcf6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: client.exe server.exe - -server.exe: server.cpp common.dll - cl /clr:pure server.cpp - -client.exe: client.cpp common.dll - cl /clr:pure client.cpp - -common.dll: common.cpp - cl /clr:pure /LD common.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel/CPP/server.cpp deleted file mode 100644 index 5fbb4596bd1ad..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel/CPP/server.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/// class: System.Runtime.Remoting.Channels.Tcp.TcpChannel -// -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Security::Permissions; - -[SecurityPermission(SecurityAction::Demand)] -int main(array^ args) -{ - // - // Create the server channel. - TcpChannel^ serverChannel = gcnew TcpChannel(9090); - // - - // Register the server channel. - ChannelServices::RegisterChannel(serverChannel); - - // - // Show the name of the channel. - Console::WriteLine("The name of the channel is {0}.", - serverChannel->ChannelName); - // - - // - // Show the priority of the channel. - Console::WriteLine("The priority of the channel is {0}.", - serverChannel->ChannelPriority); - // - - // - // Show the URIs associated with the channel. - ChannelDataStore^ data = (ChannelDataStore^) serverChannel->ChannelData; - for each (String^ uri in data->ChannelUris) - { - Console::WriteLine("The channel URI is {0}.", uri); - } - // - - // Expose an object for remote calls. - RemotingConfiguration::RegisterWellKnownServiceType( - RemoteObject::typeid, "RemoteObject.rem", - WellKnownObjectMode::Singleton); - - // - // Parse the channel's URI. - array^ urls = serverChannel->GetUrlsForUri("RemoteObject.rem"); - if (urls->Length > 0) - { - String^ objectUrl = urls[0]; - String^ objectUri; - String^ channelUri = serverChannel->Parse(objectUrl, objectUri); - Console::WriteLine("The object URL is {0}.", objectUrl); - Console::WriteLine("The object URI is {0}.", objectUri); - Console::WriteLine("The channel URI is {0}.", channelUri); - } - // - - // Wait for the user prompt. - Console::WriteLine("Press ENTER to exit the server."); - Console::ReadLine(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel2/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel2/CPP/client.cpp deleted file mode 100644 index 5cf5fe50fba83..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel2/CPP/client.cpp +++ /dev/null @@ -1,36 +0,0 @@ - - -#using -#using -#using "common.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - // Create the channel. - TcpChannel^ clientChannel = gcnew TcpChannel; - - // Register the channel. - ChannelServices::RegisterChannel( clientChannel ); - - // Register as client for remote object. - WellKnownClientTypeEntry^ remoteType = gcnew WellKnownClientTypeEntry( RemoteObject::typeid,"tcp://localhost:9090/RemoteObject.rem" ); - RemotingConfiguration::RegisterWellKnownClientType( remoteType ); - - // Create a message sink. - String^ objectUri; - System::Runtime::Remoting::Messaging::IMessageSink^ messageSink = clientChannel->CreateMessageSink( "tcp://localhost:9090/RemoteObject.rem", nullptr, objectUri ); - Console::WriteLine( "The URI of the message sink is {0}.", objectUri ); - Console::WriteLine( "The type of the message sink is {0}.", messageSink->GetType() ); - - // Create an instance of the remote object. - RemoteObject^ service = gcnew RemoteObject; - - // Invoke a method on the remote object. - Console::WriteLine( "The client is invoking the remote object." ); - Console::WriteLine( "The remote object has been called {0} times.", service->GetCount() ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel2/CPP/common.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel2/CPP/common.cpp deleted file mode 100644 index 4459e19adc891..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel2/CPP/common.cpp +++ /dev/null @@ -1,24 +0,0 @@ - -using namespace System; -using namespace System::Runtime::Remoting; - -// Remote object. -public ref class RemoteObject: public MarshalByRefObject -{ -private: - int callCount; - -public: - RemoteObject() - : callCount( 0 ) - {} - - int GetCount() - { - callCount++; - return (callCount); - } - -}; - - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel2/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel2/CPP/makefile deleted file mode 100644 index 1f6757e44dcf6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel2/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: client.exe server.exe - -server.exe: server.cpp common.dll - cl /clr:pure server.cpp - -client.exe: client.cpp common.dll - cl /clr:pure client.cpp - -common.dll: common.cpp - cl /clr:pure /LD common.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel2/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel2/CPP/server.cpp deleted file mode 100644 index f4d15c4f152c3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpChannel2/CPP/server.cpp +++ /dev/null @@ -1,54 +0,0 @@ - - -#using -#using -#using "common.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - // - // Specify the properties for the server channel. - System::Collections::IDictionary^ dict = gcnew System::Collections::Hashtable; - dict[ "port" ] = 9090; - dict[ "authenticationMode" ] = "IdentifyCallers"; - - // Set up the server channel. - TcpChannel^ serverChannel = gcnew TcpChannel( dict,nullptr,nullptr ); - ChannelServices::RegisterChannel( serverChannel ); - // - - // Show the name and priority of the channel. - Console::WriteLine( "The name of the channel is {0}.", serverChannel->ChannelName ); - Console::WriteLine( "The priority of the channel is {0}.", serverChannel->ChannelPriority ); - - // Show the URIs associated with the channel. - ChannelDataStore^ data = dynamic_cast(serverChannel->ChannelData); - for each (String^ uri in data->ChannelUris) - { - Console::WriteLine("The channel URI is {0}.", uri); - } - - // Expose an object for remote calls. - RemotingConfiguration::RegisterWellKnownServiceType( RemoteObject::typeid, "RemoteObject.rem", WellKnownObjectMode::Singleton ); - - // Parse the channel's URI. - array^urls = serverChannel->GetUrlsForUri( "RemoteObject.rem" ); - if ( urls->Length > 0 ) - { - String^ objectUrl = urls[ 0 ]; - String^ objectUri; - String^ channelUri = serverChannel->Parse( objectUrl, objectUri ); - Console::WriteLine( "The object URL is {0}.", objectUrl ); - Console::WriteLine( "The object URI is {0}.", objectUri ); - Console::WriteLine( "The channel URI is {0}.", channelUri ); - } - - // Wait for the user prompt. - Console::WriteLine( "Press enter to terminate the server." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpClientChannel/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpClientChannel/CPP/client.cpp deleted file mode 100644 index 83994f5bc7fb3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpClientChannel/CPP/client.cpp +++ /dev/null @@ -1,57 +0,0 @@ - - -// class: System.Runtime.Remoting.Channels.Tcp.TcpClientChannel -// client.cs: -// Ctor(string, IClientChannelSinkProvider) -// CreateMessageSink -// Parse -// -#using -#using -#using "common.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -int main() -{ - - // - // Create the channel. - TcpClientChannel^ clientChannel = gcnew TcpClientChannel( "Client",nullptr ); - - // - // Register the channel. - ChannelServices::RegisterChannel( clientChannel ); - - // Register as client for remote object. - WellKnownClientTypeEntry^ remoteType = gcnew WellKnownClientTypeEntry( RemoteObject::typeid,"tcp://localhost:9090/RemoteObject.rem" ); - RemotingConfiguration::RegisterWellKnownClientType( remoteType ); - - // - // Create a message sink. - String^ objectUri; - System::Runtime::Remoting::Messaging::IMessageSink^ messageSink = clientChannel->CreateMessageSink( "tcp://localhost:9090/RemoteObject.rem", nullptr, objectUri ); - Console::WriteLine( "The URI of the message sink is {0}.", objectUri ); - Console::WriteLine( "The type of the message sink is {0}.", messageSink->GetType() ); - - // - // - // Parse the channel's URI. - String^ objectUrl = "tcp://localhost:9090/RemoteObject.rem"; - String^ channelUri = clientChannel->Parse( objectUrl, objectUri ); - Console::WriteLine( "The object URL is {0}.", objectUrl ); - Console::WriteLine( "The object URI is {0}.", objectUri ); - Console::WriteLine( "The channel URI is {0}.", channelUri ); - - // - // Create an instance of the remote object. - RemoteObject^ service = gcnew RemoteObject; - - // Invoke a method on the remote object. - Console::WriteLine( "The client is invoking the remote object." ); - Console::WriteLine( "The remote object has been called {0} times.", service->GetCount() ); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpClientChannel/CPP/common.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpClientChannel/CPP/common.cpp deleted file mode 100644 index a84a5d0ff0770..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpClientChannel/CPP/common.cpp +++ /dev/null @@ -1,25 +0,0 @@ - -// -using namespace System; -using namespace System::Runtime::Remoting; - -// Remote object. -public ref class RemoteObject: public MarshalByRefObject -{ -private: - int callCount; - -public: - RemoteObject() - : callCount( 0 ) - {} - - int GetCount() - { - callCount++; - return (callCount); - } - -}; - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpClientChannel/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpClientChannel/CPP/makefile deleted file mode 100644 index 1f6757e44dcf6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpClientChannel/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: client.exe server.exe - -server.exe: server.cpp common.dll - cl /clr:pure server.cpp - -client.exe: client.cpp common.dll - cl /clr:pure client.cpp - -common.dll: common.cpp - cl /clr:pure /LD common.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpClientChannel/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpClientChannel/CPP/server.cpp deleted file mode 100644 index 265a1ceabc0ce..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpClientChannel/CPP/server.cpp +++ /dev/null @@ -1,45 +0,0 @@ - - -// -#using -#using -#using "common.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -int main() -{ - - // Create the server channel. - TcpChannel^ serverChannel = gcnew TcpChannel( 9090 ); - - // Register the server channel. - ChannelServices::RegisterChannel( serverChannel ); - - // Show the name of the channel. - Console::WriteLine( "The name of the channel is {0}.", serverChannel->ChannelName ); - - // Show the priority of the channel. - Console::WriteLine( "The priority of the channel is {0}.", serverChannel->ChannelPriority ); - - // Show the URIs associated with the channel. - ChannelDataStore^ data = dynamic_cast(serverChannel->ChannelData); - System::Collections::IEnumerator^ myEnum = data->ChannelUris->GetEnumerator(); - while ( myEnum->MoveNext() ) - { - String^ uri = safe_cast(myEnum->Current); - Console::WriteLine( "The channel URI is {0}.", uri ); - } - - - // Expose an object for remote calls. - RemotingConfiguration::RegisterWellKnownServiceType( RemoteObject::typeid, "RemoteObject.rem", WellKnownObjectMode::Singleton ); - - // Wait for the user prompt. - Console::WriteLine( "Press enter to terminate the server." ); - Console::ReadLine(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.2/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.2/CPP/client.cpp deleted file mode 100644 index 1e675f10b9462..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.2/CPP/client.cpp +++ /dev/null @@ -1,30 +0,0 @@ - - -#using -#using -#using "common.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -int main() -{ - // Create the channel. - TcpClientChannel^ channel = gcnew TcpClientChannel; - - // Register the channel. - ChannelServices::RegisterChannel( channel ); - - // Register as client for remote object. - WellKnownClientTypeEntry^ remoteType = gcnew WellKnownClientTypeEntry( Remotable::typeid,"tcp://localhost:9090/Remotable.rem" ); - RemotingConfiguration::RegisterWellKnownClientType( remoteType ); - - // Create an instance of the remote object. - Remotable^ service = gcnew Remotable; - - // Invoke a method on the remote object. - Console::WriteLine( "The client is invoking the remote object." ); - Console::WriteLine( "The remote object has been called {0} times.", service->GetCount() ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.2/CPP/common.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.2/CPP/common.cpp deleted file mode 100644 index 48eb499c2abd1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.2/CPP/common.cpp +++ /dev/null @@ -1,21 +0,0 @@ - -using namespace System; -using namespace System::Runtime::Remoting; - -// Remote object. -public ref class Remotable: public MarshalByRefObject -{ -private: - int callCount; - -public: - Remotable() - : callCount( 0 ) - {} - - int GetCount() - { - callCount++; - return (callCount); - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.2/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.2/CPP/makefile deleted file mode 100644 index 1f6757e44dcf6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.2/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: client.exe server.exe - -server.exe: server.cpp common.dll - cl /clr:pure server.cpp - -client.exe: client.cpp common.dll - cl /clr:pure client.cpp - -common.dll: common.cpp - cl /clr:pure /LD common.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.2/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.2/CPP/server.cpp deleted file mode 100644 index 3f6748f6f9690..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.2/CPP/server.cpp +++ /dev/null @@ -1,44 +0,0 @@ - - -/// Snippets needed: -/// 21 Ctor(string, int) -#using -#using -#using "common.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; -int main() -{ - // - // Create the server channel. - TcpServerChannel^ channel = gcnew TcpServerChannel( "Server Channel",9090 ); - - // - // Register the server channel. - ChannelServices::RegisterChannel( channel ); - - // Expose an object for remote calls. - RemotingConfiguration::RegisterWellKnownServiceType( Remotable::typeid, "Remotable.rem", WellKnownObjectMode::Singleton ); - - // Display the channel's URI. - Console::WriteLine( "The channel URI is {0}.", channel->GetChannelUri() ); - - // Parse the channel's URI. - array^urls = channel->GetUrlsForUri( "Remotable.rem" ); - if ( urls->Length > 0 ) - { - String^ objectUrl = urls[ 0 ]; - String^ objectUri; - String^ channelUri = channel->Parse( objectUrl, objectUri ); - Console::WriteLine( "The object URI is {0}.", objectUri ); - Console::WriteLine( "The channel URI is {0}.", channelUri ); - Console::WriteLine( "The object URL is {0}.", objectUrl ); - } - - // Wait for the user prompt. - Console::WriteLine( "Press enter to terminate the server." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel/CPP/client.cpp deleted file mode 100644 index 010cf8b521a31..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel/CPP/client.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#using -#using -#using "common.dll" -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -void main() -{ - // Create the channel. - TcpClientChannel^ channel = gcnew TcpClientChannel; - - // Register the channel. - ChannelServices::RegisterChannel( channel ); - - // Register as client for remote object. - WellKnownClientTypeEntry^ remoteType = gcnew WellKnownClientTypeEntry( - RemoteObject::typeid,L"tcp://localhost:9090/RemoteObject.rem" ); - RemotingConfiguration::RegisterWellKnownClientType( remoteType ); - - // Create an instance of the remote object. - RemoteObject^ service = gcnew RemoteObject; - - // Invoke a method on the remote object. - Console::WriteLine( L"The client is invoking the remote object." ); - Console::WriteLine( L"The remote object has been called {0} times.", - service->GetCount() ); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel/CPP/common.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel/CPP/common.cpp deleted file mode 100644 index 89de31f37b950..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel/CPP/common.cpp +++ /dev/null @@ -1,17 +0,0 @@ -using namespace System; -using namespace System::Runtime::Remoting; - -// Remote object. -public ref class RemoteObject: public MarshalByRefObject -{ -private: - static int callCount = 0; - -public: - int GetCount() - { - callCount++; - return (callCount); - } - -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel/CPP/makefile deleted file mode 100644 index 620d747fa8219..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel/CPP/makefile +++ /dev/null @@ -1,12 +0,0 @@ -all : server.exe client.exe - - -server.exe : server.cpp common.dll - cl /clr:pure server.cpp - -client.exe : client.cpp common.dll - cl /clr:pure client.cpp - -common.dll : common.cpp - cl /clr:pure /LD common.cpp - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel/CPP/server.cpp deleted file mode 100644 index f7e0ccdcfef49..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Channels.Tcp.TcpServerChannel/CPP/server.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/// Class: System.Runtime.Remoting.Channels.Tcp.TcpServerChannel -/// 21 Ctor(string, int, IServerChannelSinkProvider) -/// 22 GetChannelUri(); -/// 23 Parse(); -/// ! Ctor(string, int) -#using -#using -#using "common.dll" -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Tcp; - -void main() -{ - // - // Create the server channel. - TcpServerChannel^ channel = gcnew TcpServerChannel( - L"Server Channel",9090,nullptr ); - // - - // Register the server channel. - ChannelServices::RegisterChannel( channel ); - - // Expose an object for remote calls. - RemotingConfiguration::RegisterWellKnownServiceType( - RemoteObject::typeid, L"RemoteObject.rem", - WellKnownObjectMode::Singleton ); - - // - // Display the channel's URI. - Console::WriteLine( L"The channel URI is {0}.", - channel->GetChannelUri() ); - // - - // - // Parse the channel's URI. - array^urls = channel->GetUrlsForUri( L"RemoteObject.rem" ); - if ( urls->Length > 0 ) - { - String^ objectUrl = urls[ 0 ]; - String^ objectUri; - String^ channelUri = channel->Parse( objectUrl, objectUri ); - Console::WriteLine( L"The object URI is {0}.", objectUri ); - Console::WriteLine( L"The channel URI is {0}.", channelUri ); - Console::WriteLine( L"The object URL is {0}.", objectUrl ); - } - // - - // Wait for the user prompt. - Console::WriteLine( L"Press ENTER to exit the server." ); - Console::ReadLine(); - Console::WriteLine( L"The server is exiting." ); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Lifetime/CPP/client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Lifetime/CPP/client.cpp deleted file mode 100644 index e3b283e04255f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Lifetime/CPP/client.cpp +++ /dev/null @@ -1,52 +0,0 @@ - - -// -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Lifetime; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -public ref class MyClientSponsor: public MarshalByRefObject, public ISponsor -{ -private: - DateTime lastRenewal; - -public: - MyClientSponsor() - { - Console::WriteLine( "Activating client..." ); - lastRenewal = DateTime::Now; - } - - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual TimeSpan Renewal( ILease^ lease ) - { - Console::WriteLine( "Renewing a lease for 4 seconds." ); - Console::WriteLine( "Time since last renewal: {0}", (DateTime::Now - lastRenewal) ); - lastRenewal = DateTime::Now; - return TimeSpan::FromSeconds( 4 ); - } -}; - -int main() -{ - ChannelServices::RegisterChannel( gcnew HttpChannel( 0 ) ); - RemotingConfiguration::RegisterActivatedClientType( ClientActivatedType::typeid, "http://localhost:8080" ); - ClientActivatedType ^ CAObject = gcnew ClientActivatedType; - ILease^ serverLease = dynamic_cast(RemotingServices::GetLifetimeService( CAObject )); - MyClientSponsor^ sponsor = gcnew MyClientSponsor; - serverLease->Register( sponsor ); - - // Call same method on the Object* - Console::WriteLine( "Client-activated Object*: {0}", CAObject->RemoteMethod( "Bob" ) ); - Console::WriteLine( "Press Enter to end the client application domain." ); - Console::ReadLine(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Lifetime/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Lifetime/CPP/makefile deleted file mode 100644 index 3091512feda81..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Lifetime/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: client.exe server.exe - -server.exe: server.cpp service.dll - cl /clr:pure server.cpp - -client.exe: client.cpp service.dll - cl /clr:pure client.cpp - -service.dll: service.cpp - cl /clr:pure /LD service.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Lifetime/CPP/server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Lifetime/CPP/server.cpp deleted file mode 100644 index 4c0cf07dc06ac..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Lifetime/CPP/server.cpp +++ /dev/null @@ -1,29 +0,0 @@ - - -// -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Runtime::Remoting::Lifetime; - -int main() -{ - LifetimeServices::LeaseTime = TimeSpan::FromSeconds( 5 ); - LifetimeServices::LeaseManagerPollTime = TimeSpan::FromSeconds( 3 ); - LifetimeServices::RenewOnCallTime = TimeSpan::FromSeconds( 2 ); - LifetimeServices::SponsorshipTimeout = TimeSpan::FromSeconds( 1 ); - ChannelServices::RegisterChannel( gcnew HttpChannel( 8080 ) ); - RemotingConfiguration::RegisterActivatedServiceType( ClientActivatedType::typeid ); - Console::WriteLine( "The server is listening. Press Enter to exit...." ); - Console::ReadLine(); - Console::WriteLine( "GC'ing." ); - GC::Collect(); - GC::WaitForPendingFinalizers(); - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Lifetime/CPP/service.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Lifetime/CPP/service.cpp deleted file mode 100644 index d62c5857225bd..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Lifetime/CPP/service.cpp +++ /dev/null @@ -1,191 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting::Lifetime; - -public ref class MyLease: public MarshalByRefObject, public ILease -{ -private: - ILease^ baseLease; - -public: - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - MyLease( ILease^ oldLease ) - { - Console::WriteLine( "Constructing MyLease." ); - if ( oldLease == nullptr ) - Console::WriteLine( "CRUD!" ); - - baseLease = oldLease; - } - - - property TimeSpan CurrentLeaseTime - { - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual TimeSpan get() - { - TimeSpan time = baseLease->CurrentLeaseTime; - Console::WriteLine( "The CurrentLeaseTime property returned {0}.", time.Milliseconds ); - return time; - } - - } - - property LeaseState CurrentState - { - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual LeaseState get() - { - LeaseState state = baseLease->CurrentState; - Console::WriteLine( "The CurrentState property returned {0}.", state ); - return state; - } - - } - - - property TimeSpan InitialLeaseTime - { - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual TimeSpan get() - { - TimeSpan time = baseLease->InitialLeaseTime; - Console::WriteLine( "The InitialLeaseTime property returned {0}.", time.Milliseconds ); - return time; - } - - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual void set( TimeSpan value ) - { - baseLease->InitialLeaseTime = value; - Console::WriteLine( "The InitialLeaseTime property was set to {0}.", value.Milliseconds ); - } - - } - - property TimeSpan RenewOnCallTime - { - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual TimeSpan get() - { - TimeSpan time = baseLease->RenewOnCallTime; - Console::WriteLine( "The RenewOnCallTime property returned {0}.", time.Milliseconds ); - return time; - } - - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual void set( TimeSpan value ) - { - Console::WriteLine( "The RenewOnCallTime property was set to {0}.", value.Milliseconds ); - baseLease->RenewOnCallTime = value; - } - - } - - property TimeSpan SponsorshipTimeout - { - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual TimeSpan get() - { - TimeSpan time = baseLease->SponsorshipTimeout; - Console::WriteLine( "The SponsorshipTimeout property returned {0}.", time.Milliseconds ); - return time; - } - - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual void set( TimeSpan value ) - { - Console::WriteLine( "The SponsorshipTimeout property was set to {0}.", value.Milliseconds ); - baseLease->SponsorshipTimeout = value; - } - - } - - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual void Register( ISponsor^ sponsor ) - { - Console::WriteLine( "The sponsor {0} has been registered with the current lease.", sponsor ); - baseLease->Register( sponsor ); - } - - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual void Register( ISponsor^ sponsor, TimeSpan renewalTime ) - { - Console::WriteLine( "The sponsor {0} has been registered with the current lease for {0} milliseconds...", sponsor, renewalTime.Milliseconds ); - baseLease->Register( sponsor, renewalTime ); - } - - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual TimeSpan Renew( TimeSpan renewalTime ) - { - Console::WriteLine( "The lease has been renewed for {0} milliseconds...", renewalTime.Milliseconds ); - return baseLease->Renew( renewalTime ); - } - - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual void Unregister( ISponsor^ sponsor ) - { - Console::WriteLine( "The sponsor {0} has been unregistered from the current lease.", sponsor ); - baseLease->Unregister( sponsor ); - } - -}; - - -public ref class ClientActivatedType: public MarshalByRefObject -{ -public: - - // the lease settings for this Object* - [System::Security::Permissions::SecurityPermissionAttribute - (System::Security::Permissions::SecurityAction::LinkDemand, - Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] - virtual Object^ InitializeLifetimeService() override - { - ILease^ lease = gcnew MyLease( dynamic_cast(MarshalByRefObject::InitializeLifetimeService()) ); - return lease; - } - - String^ RemoteMethod( String^ name ) - { - - // announce to the server that we've been called. - Console::WriteLine( "ClientActivatedType::RemoteMethod called by {0}", name ); - - // report our client identity name - return String::Format( "Hello, {0}!", name ); - } - -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.SoapMethodAttribute/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.SoapMethodAttribute/CPP/demo.cpp deleted file mode 100644 index f1a1fd691e985..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.SoapMethodAttribute/CPP/demo.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.SoapMethodAttribute -/// 100 class -/// 110 ResponseXmlElementName -/// 110 ResponseXmlNamespace -/// 110 ReturnXmlElementName -/// 110 SoapAction -/// 110 XmlNamespace -/// ! #ctor cannot be snippeted because attribute is not constructed -/// using new, but rather implicitly constructed through an attribute -/// tag. -/// -/// ! UseAttribute cannot be snippeted because exception is thrown. -// -#using -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata; - -namespace ExampleNamespace -{ - public ref class ExampleClass - { - public: - // - [SoapMethod( - ResponseXmlElementName="ExampleResponseElement", - ResponseXmlNamespace= - "http://example.org/MethodResponseXmlNamespace", - ReturnXmlElementName="HelloMessage", - SoapAction="http://example.org/ExampleSoapAction#GetHello", - XmlNamespace="http://example.org/MethodCallXmlNamespace")] - String^ GetHello( String^ name ) - { - return String::Format( L"Hello, {0}", name ); - } - // - }; - -} - -int main() -{ - - // Get the method info object for the GetHello method. - System::Reflection::MethodBase^ getHelloMethod = - ExampleNamespace::ExampleClass::typeid->GetMethod( L"GetHello" ); - - // Print the XML namespace for the invocation of this method. - String^ methodCallXmlNamespace = - System::Runtime::Remoting::SoapServices::GetXmlNamespaceForMethodCall( - getHelloMethod ); - Console::WriteLine( L"The XML namespace for the response of the method " - L"GetHello in ExampleClass is {0}.", methodCallXmlNamespace ); - - // Print the XML namespace for the response of this method. - String^ methodResponseXmlNamespace = - System::Runtime::Remoting::SoapServices::GetXmlNamespaceForMethodCall( - getHelloMethod ); - Console::WriteLine( L"The XML namespace for the invocation of the method " - L"GetHello in ExampleClass is {0}.", methodResponseXmlNamespace ); - - // Print the SOAP action for this method. - String^ getHelloSoapAction = - System::Runtime::Remoting::SoapServices::GetXmlNamespaceForMethodCall( - getHelloMethod ); - Console::WriteLine( L"The SOAP action for the method " - L"GetHello in ExampleClass is {0}.", getHelloSoapAction ); -} -// \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapAnyUri/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapAnyUri/CPP/demo.cpp deleted file mode 100644 index 58dea74626683..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapAnyUri/CPP/demo.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapAnyUri -/// 10 class -/// 21 #ctor() -/// 22 #ctor(string) -/// 13 GetXsdType() -/// 11 Parse() -/// 12 ToString() -/// 14 Value -/// 16 XsdType -/// -/// Bugs in SoapAnyUri: None found. -// -#using -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD formatted string to create a SoapAnyUri object. - String^ xsdAnyUri = L"http://localhost:8080/WebService"; - SoapAnyUri^ anyUri = SoapAnyUri::Parse( xsdAnyUri ); - // - - // - // Print the value of the SoapAnyUri object in XSD format. - Console::WriteLine( L"The SoapAnyUri object in XSD format is {0}.", anyUri ); - // - - // - // Print the XSD type string of the SoapAnyUri object. - Console::WriteLine( L"The XSD type of the SoapAnyUri " - L"object is {0}.", anyUri->GetXsdType() ); - // - - // - // Print the value of the SoapAnyUri object. - Console::WriteLine( L"The value of the SoapAnyUri object is {0}.", anyUri->Value ); - - // - // - // Print the XSD type string of the SoapAnyUri class. - Console::WriteLine( L"The XSD type of the SoapAnyUri class " - L"is {0}.", SoapAnyUri::XsdType ); - // - - return 1; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapAnyUri/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapAnyUri/CPP/demo2.cpp deleted file mode 100644 index c8ca68e2b1e78..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapAnyUri/CPP/demo2.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(string) -#using -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -static void Ctor1() -{ - // - // Create a SoapAnyUri object. - SoapAnyUri^ anyUri = gcnew SoapAnyUri; - anyUri->Value = L"http://localhost:8080/WebService"; - Console::WriteLine( L"The value of the SoapAnyUri object is {0}.", anyUri ); - // -} - -static void Ctor2() -{ - // - // Create a SoapAnyUri object. - String^ anyUriValue = L"http://localhost:8080/WebService"; - SoapAnyUri^ anyUri = gcnew SoapAnyUri( anyUriValue ); - Console::WriteLine( L"The value of the SoapAnyUri object is {0}.", anyUri ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapBase64Binary/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapBase64Binary/CPP/demo.cpp deleted file mode 100644 index e73224d01e0bd..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapBase64Binary/CPP/demo.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapBase64Binary -/// 10 class -/// 21 #ctor() -/// 22 #ctor(byte[]) -/// 13 GetXsdType() -/// 11 Parse() -/// 12 ToString() -/// 14 Value -/// 16 XsdType -/// Bugs in SoapBase64Binary: -/// No bugs were detected. -// -#using -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD formatted string to create a SoapBase64Binary object. - // The string "AgMFBws=" is byte[]{ 2, 3, 5, 7, 11 } expressed in - // Base 64 format. - String^ xsdBase64Binary = L"AgMFBws="; - SoapBase64Binary^ base64Binary = SoapBase64Binary::Parse( xsdBase64Binary ); - // - - // - // Print the value of the SoapBase64Binary object in XSD format. - Console::WriteLine( L"The SoapBase64Binary object in XSD format is {0}.", - base64Binary ); - // - - // - // Print the XSD type string of the SoapBase64Binary object. - Console::WriteLine( L"The XSD type of the SoapBase64Binary " - L"object is {0}.", base64Binary->GetXsdType() ); - // - - // - // Print the value of the SoapBase64Binary object. - Console::Write( L"base64Binary.Value contains:" ); - for ( int i = 0; i < base64Binary->Value->Length; ++i ) - { - Console::Write( L" {0}", base64Binary->Value[ i ] ); - - } - Console::WriteLine(); - // - - // - // Print the XSD type string of the SoapBase64Binary class. - Console::WriteLine( L"The XSD type of the class SoapBase64Binary " - L"is {0}.", SoapBase64Binary::XsdType ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapBase64Binary/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapBase64Binary/CPP/demo2.cpp deleted file mode 100644 index 296902a8a0e8d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapBase64Binary/CPP/demo2.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(DateTime) -#using -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -static void Ctor1() -{ - // - // Create a SoapBase64Binary object. - SoapBase64Binary^ base64Binary = gcnew SoapBase64Binary; - base64Binary->Value = gcnew array(7){ - 2,3,5,7,11,0,5 - }; - Console::WriteLine( L"The SoapBase64Binary object is {0}.", - base64Binary ); - // -} - -static void Ctor2() -{ - // - // Create a SoapBase64Binary object. - array^bytes = gcnew array(5){ - 2,3,5,7,11 - }; - SoapBase64Binary^ base64Binary = gcnew SoapBase64Binary( bytes ); - Console::WriteLine( L"The SoapBase64Binary object is {0}.", - base64Binary ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDate/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDate/CPP/demo.cpp deleted file mode 100644 index 7f234a9eb5ac3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDate/CPP/demo.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/// Need snippets: -/// 10 class -/// 21 #ctor() -/// 22 #ctor(DateTime) -/// 23 #ctor(DateTime,int) -/// 13 GetXsdType -/// 11 Parse -/// 15 Sign -/// 12 ToString -/// 14 Value -/// 16 XsdType - -// -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD date to create a SoapDate object. - String^ xsdDate = "2003-02-04"; - SoapDate^ date = SoapDate::Parse( xsdDate ); - // - - // - // Serialize a DateTime object as an XSD date string. - Console::WriteLine( "The date in XSD format is {0}.", - date ); - // - - // - // Print out the XSD type string of this particular SoapDate object. - Console::WriteLine( "The XSD type of the SoapDate instance is {0}.", - date->GetXsdType() ); - // - - // - // Print out the value of the SoapDate object. - Console::WriteLine( "The value of the SoapDate instance is {0}.", - date->Value ); - // - - // - // Print out the sign of the SoapDate object. - Console::WriteLine( "The sign of the SoapDate instance is {0}.", - date->Sign ); - // - - // - // Print out the XSD type string of the SoapDate class. - Console::WriteLine( "The XSD type of SoapDate is {0}.", - SoapDate::XsdType ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDate/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDate/CPP/demo2.cpp deleted file mode 100644 index 668a507b945fa..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDate/CPP/demo2.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(DateTime) -/// 23 #ctor(DateTime,int) - -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -void Ctor1() -{ - // - // Create a SoapDate object. - SoapDate^ date = gcnew SoapDate; - date->Value = DateTime::Now; - Console::WriteLine( "The date is {0}.", date ); - // -} - -void Ctor2() -{ - // - // Create a SoapDate object. - SoapDate^ date = gcnew SoapDate( DateTime::Now ); - Console::WriteLine( "The date is {0}.", date ); - // -} - -void Ctor3() -{ - // - // Create a SoapDate object with a positive sign. - SoapDate^ date = gcnew SoapDate( DateTime::Now,1 ); - Console::WriteLine( "The date is {0}.", date ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); - Ctor3(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDateTime/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDateTime/CPP/demo.cpp deleted file mode 100644 index 413b5d7bcba3b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDateTime/CPP/demo.cpp +++ /dev/null @@ -1,34 +0,0 @@ - -/// Need snippets: -/// ! #ctor -/// x Parse -/// x ToString -/// x XsdType -/// -/// Bug report: -/// Constructor unusable since all methods are static. -// -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; -int main() -{ - - // - // Parse an XSD dateTime to create a DateTime object. - String^ xsdDateTime = "2003-02-04T13:58:59.9999999+03:00"; - DateTime dateTime = SoapDateTime::Parse( xsdDateTime ); - - // - // - // Serialize a DateTime object as an XSD dateTime string. - Console::WriteLine( "The date in XSD format is {0}.", SoapDateTime::ToString( dateTime ) ); - - // - // - // Print out the XSD type string of the SoapDateTime class. - Console::WriteLine( "The XSD type of SoapDateTime is {0}.", SoapDateTime::XsdType ); - - // -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDay/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDay/CPP/demo.cpp deleted file mode 100644 index 176bd8d588a57..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDay/CPP/demo.cpp +++ /dev/null @@ -1,61 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDay -/// Need snippets: -/// 10 class -/// 21 #ctor() -/// 22 #ctor(DateTime) -/// 13 GetXsdType() -/// 11 Parse() -/// 12 ToString() -/// 14 Value -/// 16 XsdType -/// -/// Bugs: -/// -/// 1. Documentation bug: according to the XML spec and the code -/// SoapDay.Parse(string) should accept the format "---ddzzz" and -/// "---dd"; the documentation states that SoapDay.Parse(string) -/// accepts "ddzzz" (which it does not). For gDay examples, see -/// http://books.xmlschemata.org/relaxng/ch17-77066.html. -/// 2. Documentation bug: zzz cannot be in this format "08:00". It -/// must equal "Z" or it must be in one of these formats: "+08:00" -/// or "-08:00". Without the leading "+" or "-" sign Parse(string) -/// fails. - -// -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD gDay to create a SoapDay object. - // The time zone of this object is +08:00. - String^ xsdDay = "---30+08:00"; - SoapDay^ day = SoapDay::Parse( xsdDay ); - // - - // - // Display the day in XSD format. - Console::WriteLine( "The day in XSD format is {0}.", - day ); - // - - // - // Display the XSD type string of this particular SoapDay object. - Console::WriteLine( "The XSD type of the SoapDay instance is {0}.", - day->GetXsdType() ); - // - - // - // Display the value of the SoapDay object. - Console::WriteLine( "The value of the SoapDay instance is {0}.", - day->Value ); - // - - // - // Display the XSD type string of the SoapDay class. - Console::WriteLine( "The XSD type of the class SoapDay is {0}.", - SoapDay::XsdType ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDay/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDay/CPP/demo2.cpp deleted file mode 100644 index e070d48be1075..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDay/CPP/demo2.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(DateTime) - -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -void Ctor1() -{ - // - // Create a SoapDay object. - SoapDay^ day = gcnew SoapDay; - day->Value = DateTime::Now; - Console::WriteLine( "The day is {0}.", day ); - // -} - -void Ctor2() -{ - // - // Create a SoapDay object. - SoapDay^ day = gcnew SoapDay( DateTime::Now ); - Console::WriteLine( "The day is {0}.", day ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDuration/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDuration/CPP/demo.cpp deleted file mode 100644 index cb673df07d3df..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDuration/CPP/demo.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapDuration -/// 10 class -/// ! #ctor -/// 11 Parse() -/// 12 ToString() -/// 13 XsdType -/// -/// Bug report: -/// The constructor is unusable since all methods are static. -// -#using -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD duration to create a TimeSpan object. - // This is a duration of 2 years, 3 months, 9 days, 12 hours, - // 35 minutes, 20 seconds, and 10 milliseconds. - String^ xsdDuration = L"P2Y3M9DT12H35M20.0100000S"; - TimeSpan timeSpan = SoapDuration::Parse( xsdDuration ); - Console::WriteLine( L"The time span contains {0} days.", - timeSpan.Days ); - Console::WriteLine( L"The time span contains {0} hours.", - timeSpan.Hours ); - Console::WriteLine( L"The time span contains {0} minutes.", - timeSpan.Minutes ); - Console::WriteLine( L"The time span contains {0} seconds.", - timeSpan.Seconds ); - // - - // - // Serialize a TimeSpan object as an XSD duration string. - // This object represents a time span of 399 days, 12 hours, - // 35 minutes, 20 seconds, and 10 milliseconds. - TimeSpan duration = TimeSpan(399,12,35,20,10); - Console::WriteLine( L"The duration in XSD format is {0}.", - SoapDuration::ToString( duration ) ); - // - - // - // Print the XSD type string of the SoapDuration class. - Console::WriteLine( L"The XSD type of SoapDuration is {0}.", - SoapDuration::XsdType ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapHexBinary/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapHexBinary/CPP/demo.cpp deleted file mode 100644 index f07c6ddafe81d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapHexBinary/CPP/demo.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapHexBinary -/// 10 class -/// 21 #ctor() -/// 22 #ctor(byte[]) -/// 13 GetXsdType() -/// 11 Parse() -/// 12 ToString() -/// 14 Value -/// 16 XsdType -/// Bugs in SoapHexBinary: -/// No bugs were detected. -// -#using -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD formatted string to create a SoapHexBinary object. - String^ xsdHexBinary = L"3f789ABC"; - SoapHexBinary^ hexBinary = SoapHexBinary::Parse( xsdHexBinary ); - // - - // - // Print the value of the SoapHexBinary object in XSD format. - Console::WriteLine( L"The SoapHexBinary object in XSD format is {0}.", - hexBinary ); - // - - // - // Print the XSD type string of this particular SoapHexBinary object. - Console::WriteLine( L"The XSD type of the SoapHexBinary object is {0}.", - hexBinary->GetXsdType() ); - // - - // - // Print the value of the SoapHexBinary object. - Console::Write( L"hexBinary.Value contains:" ); - for ( int i = 0; i < hexBinary->Value->Length; ++i ) - { - Console::Write( L" {0}", hexBinary->Value[ i ] ); - - } - Console::WriteLine(); - // - - // - // Print the XSD type string of the SoapHexBinary class. - Console::WriteLine( L"The XSD type of the class SoapHexBinary is {0}.", - SoapHexBinary::XsdType ); - // -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapHexBinary/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapHexBinary/CPP/demo2.cpp deleted file mode 100644 index dc7d28b8f1a34..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapHexBinary/CPP/demo2.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(DateTime) -#using -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -static void Ctor1() -{ - // - // Create a SoapHexBinary object. - SoapHexBinary^ hexBinary = gcnew SoapHexBinary; - hexBinary->Value = gcnew array(5){ - 2,3,5,7,11 - }; - Console::WriteLine( L"The SoapHexBinary object is {0}.", hexBinary ); - // -} - -static void Ctor2() -{ - // - // Create a SoapHexBinary object. - array^ bytes = gcnew array(5){ - 2,3,5,7,11 - }; - SoapHexBinary^ hexBinary = gcnew SoapHexBinary( bytes ); - Console::WriteLine( L"The SoapHexBinary object is {0}.", hexBinary ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapInteger/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapInteger/CPP/demo.cpp deleted file mode 100644 index fb6f8987512f3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapInteger/CPP/demo.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapInteger -/// 10 class -/// 21 #ctor() -/// 22 #ctor(decimal) -/// 13 GetXsdType() -/// 11 Parse() -/// 12 ToString() -/// 14 Value -/// 16 XsdType -/// Bugs in SoapInteger: -/// No bugs were detected. -// -#using -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD formatted string to create a SoapInteger object. - String^ xsdIntegerString = L"-13"; - SoapInteger^ xsdInteger = SoapInteger::Parse( xsdIntegerString ); - // - - // - // Print the value of the SoapInteger object in XSD format. - Console::WriteLine( L"The SoapInteger object in XSD format is {0}.", - xsdInteger ); - // - - // - // Print the XSD type string of the SoapInteger object. - Console::WriteLine( L"The XSD type of the SoapInteger " - L"object is {0}.", xsdInteger->GetXsdType() ); - // - - // - // Print the value of the SoapInteger object. - Console::WriteLine( L"The value of the SoapInteger object is {0}.", - xsdInteger->Value ); - // - - // - // Print the XSD type string of the SoapInteger class. - Console::WriteLine( L"The XSD type of the SoapInteger class is {0}.", - SoapInteger::XsdType ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapInteger/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapInteger/CPP/demo2.cpp deleted file mode 100644 index 1ce5d78cc1e4c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapInteger/CPP/demo2.cpp +++ /dev/null @@ -1,36 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(DateTime) -#using -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -static void Ctor1() -{ - // - // Create a SoapInteger object. - SoapInteger^ xsdInteger = gcnew SoapInteger; - xsdInteger->Value = -14; - Console::WriteLine( L"The value of the SoapInteger object is {0}.", - xsdInteger ); - // -} - -static void Ctor2() -{ - // - // Create a SoapInteger object. - Decimal decimalValue = -14; - SoapInteger^ xsdInteger = gcnew SoapInteger( decimalValue ); - Console::WriteLine( L"The value of the SoapInteger object is {0}.", - xsdInteger ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonth/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonth/CPP/demo.cpp deleted file mode 100644 index 93620f32b0bd0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonth/CPP/demo.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonth -/// 10 class -/// 21 #ctor() -/// 22 #ctor(DateTime) -/// 13 GetXsdType() -/// 11 Parse() -/// 12 ToString() -/// 14 Value -/// 16 XsdType -/// -/// Bugs in SoapMonth: -/// -/// 1. SoapMonth.Parse interprets timezone inconsistently: The -/// following both reduce the month by 1. Either they should not -/// alter the month. Or the first one should reduce but the second -/// one should not: -/// SoapMonth.Parse("--02--+08:00").ToString() // Prints "--01--". -/// SoapMonth.Parse("--02---07:00").ToString() // Prints "--01--". -/// -/// 2. SoapMonth.Parse throws exception when the timezone is "Z": -/// SoapMonth.Parse throws the following exception, -/// System.FormatException: String was not recognized as a valid DateTime. -/// when invoked as follows, -/// SoapMonth.Parse("--02--Z"); // Throws exception. -/// It fails to correctly interpret Z as the current timezone. -/// -/// 3. SoapMonth.Parse documentation incorrect: The documentation -/// states that Parse can accept months formatted as "05", "01". -/// This is incorrect. The acceptable formats (according to the code -/// and according to the XML spec) are: "--MM--" and "--MM--zzz". - -// -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD gMonth to create a SoapMonth object. - // The timezone of this object is +08:00. - String^ xsdMonth = "--02--+08:00"; - SoapMonth^ month = SoapMonth::Parse( xsdMonth ); - // - - // - // Print the month in XSD format. - Console::WriteLine( "The month in XSD format is {0}.", - month ); - // - - // - // Print the XSD type string of this particular SoapMonth object. - Console::WriteLine( "The XSD type of the SoapMonth instance is {0}.", - month->GetXsdType() ); - // - - // - // Print the value of the SoapMonth object. - Console::WriteLine( "The value of the SoapMonth instance is {0}.", - month->Value ); - // - - // - // Print the XSD type string of the SoapMonth class. - Console::WriteLine( "The XSD type of the class SoapMonth is {0}.", - SoapMonth::XsdType ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonth/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonth/CPP/demo2.cpp deleted file mode 100644 index b8fcf45cfc378..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonth/CPP/demo2.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(DateTime) - -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -void Ctor1() -{ - // - // Create a SoapMonth object. - SoapMonth^ month = gcnew SoapMonth; - month->Value = DateTime::Now; - Console::WriteLine( "The month is {0}.", month ); - // -} - -void Ctor2() -{ - // - // Create a SoapMonth object. - SoapMonth^ month = gcnew SoapMonth( DateTime::Now ); - Console::WriteLine( "The month is {0}.", month ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonthDay/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonthDay/CPP/demo.cpp deleted file mode 100644 index cef26ec71c249..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonthDay/CPP/demo.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonthDay -/// 10 class -/// 21 #ctor() -/// 22 #ctor(DateTime) -/// 13 GetXsdType() -/// 11 Parse() -/// 12 ToString() -/// 14 Value -/// 16 XsdType -/// Bugs in SoapMonthDay: -/// 1. SoapMonthDay.Parse throws exception when the time zone is "Z": -/// SoapMonthDay.Parse throws the following exception, -/// System.FormatException: String was not recognized -/// as a valid DateTime. -/// when invoked as follows, -/// SoapMonthDay.Parse("--02--Z"); // Throws exception. -/// It fails to correctly interpret "Z" as the current time zone. -/// -/// 2. SoapMonthDay.Parse documentation incorrect: The documentation -/// does not state how to compose a SoapMonthDay for Parse. It also -/// incorrectly states that "08:00" is a valid time zone (this should -/// be "+08:00"). -// -#using -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD gMonthDay to create a SoapMonthDay object. - // Parse the representation for February 21, in the UTC+8 time zone. - String^ xsdMonthDay = L"--02-21+08:00"; - SoapMonthDay^ monthDay = SoapMonthDay::Parse( xsdMonthDay ); - // - - // - // Print the monthDay in XSD format. - Console::WriteLine( L"The SoapMonthDay object in XSD format is {0}.", - monthDay ); - // - - // - // Print the XSD type string of this particular SoapMonthDay object. - Console::WriteLine( L"The XSD type of the SoapMonthDay object is {0}.", - monthDay->GetXsdType() ); - // - - // - // Print the value of the SoapMonthDay object. - Console::WriteLine( L"The value of the SoapMonthDay object is {0}.", - monthDay->Value ); - // - - // - // Print the XSD type string of the SoapMonthDay class. - Console::WriteLine( L"The XSD type of the class SoapMonthDay is {0}.", - SoapMonthDay::XsdType ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonthDay/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonthDay/CPP/demo2.cpp deleted file mode 100644 index f0109194443c6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapMonthDay/CPP/demo2.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(DateTime) -#using -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -static void Ctor1() -{ - // - // Create a SoapMonthDay object. - SoapMonthDay^ monthDay = gcnew SoapMonthDay; - monthDay->Value = DateTime::Now; - Console::WriteLine( L"The SoapMonthDay object is {0}.", monthDay ); - // -} - -static void Ctor2() -{ - // - // Create a SoapMonthDay object. - SoapMonthDay^ monthDay = gcnew SoapMonthDay( DateTime::Now ); - Console::WriteLine( L"The SoapMonthDay object is {0}.", monthDay ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNegativeInteger/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNegativeInteger/CPP/demo.cpp deleted file mode 100644 index 3dd233fe9fd65..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNegativeInteger/CPP/demo.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNegativeInteger -/// 10 class -/// 21 #ctor() -/// 22 #ctor(Decimal) -/// 13 GetXsdType() -/// 11 Parse() -/// 12 ToString() -/// 14 Value -/// 16 XsdType -/// Bugs in SoapNegativeInteger: -/// No bugs were detected. -// -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD formatted string to create a SoapNegativeInteger - // object. - String^ xsdIntegerString = L"-13"; - SoapNegativeInteger^ xsdInteger = SoapNegativeInteger::Parse( - xsdIntegerString ); - // - - // - // Print the value of the SoapNegativeInteger object in XSD format. - Console::WriteLine( L"The SoapNegativeInteger object in XSD format is {0}.", - xsdInteger ); - // - - // - // Print the XSD type string of the SoapNegativeInteger object. - Console::WriteLine( L"The XSD type of the SoapNegativeInteger " - L"object is {0}.", xsdInteger->GetXsdType() ); - // - - // - // Print the value of the SoapNegativeInteger object. - Console::WriteLine( L"The value of the SoapNegativeInteger " - L"object is {0}.", xsdInteger->Value ); - // - - // - // Print the XSD type string of the SoapNegativeInteger class. - Console::WriteLine( L"The XSD type of the SoapNegativeInteger class " - L"is {0}.", SoapNegativeInteger::XsdType ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNegativeInteger/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNegativeInteger/CPP/demo2.cpp deleted file mode 100644 index bc37451f56c7d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNegativeInteger/CPP/demo2.cpp +++ /dev/null @@ -1,35 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(DateTime) -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; -static void Ctor1() -{ - // - // Create a SoapNegativeInteger object. - SoapNegativeInteger^ xsdInteger = gcnew SoapNegativeInteger; - xsdInteger->Value = -14; - Console::WriteLine( L"The value of the SoapNegativeInteger object is {0}.", - xsdInteger ); - // -} - -static void Ctor2() -{ - // - // Create a SoapNegativeInteger object. - Decimal decimalValue = -14; - SoapNegativeInteger^ xsdInteger = gcnew SoapNegativeInteger( - decimalValue ); - Console::WriteLine( L"The value of the SoapNegativeInteger object is {0}.", - xsdInteger ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonNegativeInteger/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonNegativeInteger/CPP/demo.cpp deleted file mode 100644 index bfe4587163d48..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonNegativeInteger/CPP/demo.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonNegativeInteger -/// 10 class -/// 21 #ctor() -/// 22 #ctor(Decimal) -/// 13 GetXsdType() -/// 11 Parse() -/// 12 ToString() -/// 14 Value -/// 16 XsdType -/// Bugs in SoapNonNegativeInteger: -/// No bugs were detected. -// -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD formatted string to create a SoapNonNegativeInteger - // object. - String^ xsdIntegerString = L"+13"; - SoapNonNegativeInteger^ xsdInteger = SoapNonNegativeInteger::Parse( - xsdIntegerString ); - // - - // - // Print the value of the SoapNonNegativeInteger object - // in XSD format. - Console::WriteLine( - L"The SoapNonNegativeInteger object in XSD format is {0}.", - xsdInteger ); - // - - // - // Print the XSD type string of the SoapNonNegativeInteger object. - Console::WriteLine( L"The XSD type of the SoapNonNegativeInteger " - L"object is {0}.", xsdInteger->GetXsdType() ); - // - - // - // Print the value of the SoapNonNegativeInteger object. - Console::WriteLine( L"The value of the SoapNonNegativeInteger " - L"object is {0}.", xsdInteger->Value ); - // - - // - // Print the XSD type string of the SoapNonNegativeInteger class. - Console::WriteLine( L"The XSD type of the SoapNonNegativeInteger class " - L"is {0}.", SoapNonNegativeInteger::XsdType ); - // -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonNegativeInteger/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonNegativeInteger/CPP/demo2.cpp deleted file mode 100644 index 073b01560aa9a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonNegativeInteger/CPP/demo2.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(DateTime) -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -static void Ctor1() -{ - // - // Create a SoapNonNegativeInteger object. - SoapNonNegativeInteger^ xsdInteger = gcnew SoapNonNegativeInteger; - xsdInteger->Value = +14; - Console::WriteLine( L"The value of the SoapNonNegativeInteger object is {0}.", xsdInteger ); - // -} - -static void Ctor2() -{ - // - // Create a SoapNonNegativeInteger object. - Decimal decimalValue = +14; - SoapNonNegativeInteger^ xsdInteger = gcnew SoapNonNegativeInteger( decimalValue ); - Console::WriteLine( L"The value of the SoapNonNegativeInteger object is {0}.", xsdInteger ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonPositiveInteger/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonPositiveInteger/CPP/demo.cpp deleted file mode 100644 index 2c51262dccaa5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonPositiveInteger/CPP/demo.cpp +++ /dev/null @@ -1,53 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonPositiveInteger -/// 10 class -/// 21 #ctor() -/// 22 #ctor(Decimal) -/// 13 GetXsdType() -/// 11 Parse() -/// 12 ToString() -/// 14 Value -/// 16 XsdType -/// Bugs in SoapNonPositiveInteger: -/// No bugs were detected. -// -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD formatted string to create a SoapNonPositiveInteger - // object. - String^ xsdIntegerString = L"-13"; - SoapNonPositiveInteger^ xsdInteger = - SoapNonPositiveInteger::Parse( xsdIntegerString ); - // - - // - // Print the value of the SoapNonPositiveInteger object - // in XSD format. - Console::WriteLine( L"The SoapNonPositiveInteger object in XSD format is {0}.", - xsdInteger ); - // - - // - // Print the XSD type string of the SoapNonPositiveInteger object. - Console::WriteLine( L"The XSD type of the SoapNonPositiveInteger object is {0}.", - xsdInteger->GetXsdType() ); - // - - // - // Print the value of the SoapNonPositiveInteger object. - Console::WriteLine( L"The value of the SoapNonPositiveInteger object is {0}.", - xsdInteger->Value ); - // - - // - // Print the XSD type string of the SoapNonPositiveInteger class. - Console::WriteLine( L"The XSD type of the SoapNonPositiveInteger class is {0}.", - SoapNonPositiveInteger::XsdType ); - // -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonPositiveInteger/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonPositiveInteger/CPP/demo2.cpp deleted file mode 100644 index 1ab5dc805a149..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNonPositiveInteger/CPP/demo2.cpp +++ /dev/null @@ -1,36 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(DateTime) -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -static void Ctor1() -{ - // - // Create a SoapNonPositiveInteger object. - SoapNonPositiveInteger^ xsdInteger = gcnew SoapNonPositiveInteger; - xsdInteger->Value = -14; - Console::WriteLine( L"The value of the SoapNonPositiveInteger object is {0}.", - xsdInteger ); - // -} - -static void Ctor2() -{ - // - // Create a SoapNonPositiveInteger object. - Decimal decimalValue = -14; - SoapNonPositiveInteger^ xsdInteger = gcnew SoapNonPositiveInteger( - decimalValue ); - Console::WriteLine( L"The value of the SoapNonPositiveInteger object is {0}.", - xsdInteger ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNormalizedString/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNormalizedString/CPP/demo.cpp deleted file mode 100644 index 8b481e05ce000..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNormalizedString/CPP/demo.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNormalizedString -/// 10 class -/// 21 #ctor() -/// 22 #ctor(string) -/// 13 GetXsdType() -/// 11 Parse() -/// 12 ToString() -/// 14 Value -/// 16 XsdType -// -/// Bugs in SoapNormalizedString: None found. -/// -// -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -static void TestParse( String^ testString ) -{ - try - { - // - // Parse the test string. - SoapNormalizedString^ normalized = SoapNormalizedString::Parse( - testString ); - // - - // Report that the parse succeeded if no exception was thrown. - Console::WriteLine( L"Parse succeeded on the string \"{0}\".", - testString ); - - // - // Print the string representation of the object. - Console::WriteLine( L"The normalized value of this string is \"{0}\".", - normalized ); - // - - // - // Print the XSD type of the object. - Console::WriteLine( L"The XSD type of the SoapNormalizedString object is {0}.", - normalized->GetXsdType() ); - // - - // - // Print the value of the SoapNormalizedString object. - Console::WriteLine( L"The value of the SoapNormalizedString object is \"{0}\".", - normalized->Value ); - // - } - catch ( System::Runtime::Remoting::RemotingException^ e ) - { - // Report the details of the exception that was thrown. - Console::WriteLine( L"Parse failed on the string \"{0}\".", - testString ); - Console::WriteLine( e->Message ); - } -} - -int main() -{ - // Create strings to test the Parse method. - String^ stringWithSpaces = L"one two"; - String^ stringWithSpacesAndTabs = L"one two\t"; - String^ stringWithSpacesAndLineFeed = L"one two\n"; - String^ stringWithSpacesAndCarriageReturn = L"one two\r"; - - // Test the Parse method with each string. - TestParse( stringWithSpaces ); - TestParse( stringWithSpacesAndTabs ); - TestParse( stringWithSpacesAndLineFeed ); - TestParse( stringWithSpacesAndCarriageReturn ); - - // - // Print the XSD type string of the SoapNormalizedString class. - Console::WriteLine( L"The XSD type of the SoapNormalizedString class is {0}.", - SoapNormalizedString::XsdType ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNormalizedString/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNormalizedString/CPP/demo2.cpp deleted file mode 100644 index 1641c8861fe05..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapNormalizedString/CPP/demo2.cpp +++ /dev/null @@ -1,36 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(string) -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -static void Ctor1() -{ - // - // Create a SoapNormalizedString object. - SoapNormalizedString^ normalized = gcnew SoapNormalizedString; - normalized->Value = L"one two"; - Console::WriteLine( L"The value of the SoapNormalizedString object is {0}.", - normalized ); - // -} - -static void Ctor2() -{ - // - // Create a SoapNormalizedString object. - String^ testString = L"one two"; - SoapNormalizedString^ normalized = gcnew SoapNormalizedString( - testString ); - Console::WriteLine( L"The value of the SoapNormalizedString object is {0}.", - normalized ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapPositiveInteger/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapPositiveInteger/CPP/demo.cpp deleted file mode 100644 index 38f2440c82706..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapPositiveInteger/CPP/demo.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapPositiveInteger -/// 10 class -/// 21 #ctor() -/// 22 #ctor(Decimal) -/// 13 GetXsdType() -/// 11 Parse() -/// 12 ToString() -/// 14 Value -/// 16 XsdType -/// Bugs in SoapPositiveInteger: -/// No bugs were detected. -// -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD formatted string to create a SoapPositiveInteger - // object. - String^ xsdIntegerString = L"+13"; - SoapPositiveInteger^ xsdInteger = - SoapPositiveInteger::Parse( xsdIntegerString ); - // - - // - // Print the value of the SoapPositiveInteger object in XSD format. - Console::WriteLine( L"The SoapPositiveInteger object in XSD format is {0}.", - xsdInteger ); - // - - // - // Print the XSD type string of the SoapPositiveInteger object. - Console::WriteLine( L"The XSD type of the SoapPositiveInteger " - L"object is {0}.", xsdInteger->GetXsdType() ); - // - - // - // Print the value of the SoapPositiveInteger object. - Console::WriteLine( L"The value of the SoapPositiveInteger object is {0}.", - xsdInteger->Value ); - // - - // - // Print the XSD type string of the SoapPositiveInteger class. - Console::WriteLine( L"The XSD type of the SoapPositiveInteger class " - L"is {0}.", SoapPositiveInteger::XsdType ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapPositiveInteger/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapPositiveInteger/CPP/demo2.cpp deleted file mode 100644 index 1992569528ae8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapPositiveInteger/CPP/demo2.cpp +++ /dev/null @@ -1,35 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(DateTime) -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -static void Ctor1() -{ - // - // Create a SoapPositiveInteger object. - SoapPositiveInteger^ xsdInteger = gcnew SoapPositiveInteger; - xsdInteger->Value = 14; - Console::WriteLine( L"The value of the SoapPositiveInteger object is {0}.", - xsdInteger ); - // -} - -static void Ctor2() -{ - // - // Create a SoapPositiveInteger object. - Decimal decimalValue = 14; - SoapPositiveInteger^ xsdInteger = gcnew SoapPositiveInteger( decimalValue ); - Console::WriteLine( L"The value of the SoapPositiveInteger object is {0}.", - xsdInteger ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapQName/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapQName/CPP/demo.cpp deleted file mode 100644 index 4e39d11bf3f5b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapQName/CPP/demo.cpp +++ /dev/null @@ -1,73 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapQName -/// 10 class -/// 21 #ctor() -/// 22 #ctor(string) -/// 23 #ctor(string,string) -/// 24 #ctor(string,string,string) -/// 13 GetXsdType() -/// 17 Key -/// 18 Name -/// 19 Namespace -/// 11 Parse() -/// 12 ToString() -/// 16 XsdType -/// -/// Bugs in SoapQName: -/// 1. SoapQName.Namespace is not used anywhere. The field exists but has -/// no clear purpose. It cannot be parsed. -/// 2. SoapQName.Name cannot contain a ':', however, this is not validated -/// in the code anywhere. SoapQName.Parse("a:b:c").Name results in "b:c", -/// which is an invalid name. -// -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD formatted string to create a SoapQName object. - String^ xsdQName = L"tns:SomeName"; - SoapQName^ qName = SoapQName::Parse( xsdQName ); - // - - // - // Print the value of the SoapQName object in XSD format. - Console::WriteLine( L"The SoapQName object in XSD format is {0}.", qName ); - // - - // - // Print the XSD type string of the SoapQName object. - Console::WriteLine( L"The XSD type of the SoapQName " - L"object is {0}.", qName->GetXsdType() ); - // - - // - // Print the XSD type string of the SoapQName class. - Console::WriteLine( L"The XSD type of the SoapQName class " - L"is {0}.", SoapQName::XsdType ); - // - - // Create a QName object. - SoapQName^ soapQNameInstance = gcnew SoapQName( - L"tns",L"SomeName",L"http://example.org" ); - - // - // Print the key the SoapQName object. - Console::WriteLine( L"The key of the SoapQName object is {0}.", - soapQNameInstance->Key ); - // - - // - // Print the name of the SoapQName object. - Console::WriteLine( L"The name of the SoapQName " - L"object is {0}.", soapQNameInstance->Name ); - // - - // - // Print the namespace of the SoapQName class. - Console::WriteLine( L"The namespace for this instance of SoapQName is {0}.", - soapQNameInstance->Namespace ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapQName/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapQName/CPP/demo2.cpp deleted file mode 100644 index 7c2359708b8cf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapQName/CPP/demo2.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(string) -/// 23 #ctor(string,string) -/// 24 #ctor(string,string,string) -#using -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -static void Ctor1() -{ - // - // Create a SoapQName object. - SoapQName^ qName = gcnew SoapQName; - Console::WriteLine( - L"The value of the SoapQName object is \"{0}\".", qName ); - // -} - -static void Ctor2() -{ - // - // Create a SoapQName object. - String^ name = L"SomeName"; - SoapQName^ qName = gcnew SoapQName( name ); - Console::WriteLine( - L"The value of the SoapQName object is \"{0}\".", qName ); - // -} - -static void Ctor3() -{ - // - // Create a SoapQName object. - String^ key = L"tns"; - String^ name = L"SomeName"; - SoapQName^ qName = gcnew SoapQName( key,name ); - Console::WriteLine( - L"The value of the SoapQName object is \"{0}\".", qName ); - // -} - -static void Ctor4() -{ - // - // Create a SoapQName object. - String^ key = L"tns"; - String^ name = L"SomeName"; - String^ namespaceValue = L"http://example.org"; - SoapQName^ qName = gcnew SoapQName( - key,name,namespaceValue ); - Console::WriteLine( - L"The value of the SoapQName object is \"{0}\".", qName ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); - Ctor3(); - Ctor4(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapTime/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapTime/CPP/demo.cpp deleted file mode 100644 index 1192e22eec0a2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapTime/CPP/demo.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapTime -/// Need snippets: -/// 10 class -/// 21 #ctor() -/// 22 #ctor(DateTime) -/// 13 GetXsdType -/// 11 Parse -/// 12 ToString -/// 14 Value -/// 16 XsdType -/// -/// Bugs: -/// -/// Parse should take upto 9 digits in fractional seconds, but only -/// accepts up to 7. Also it only parses the first three, and ignores -/// the others (fractional second digits). - -// -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD gTime to create a SoapTime object. - // The timezone of this object is the current timezone. - String^ xsdTime = "12:13:14.123Z"; - SoapTime^ time = SoapTime::Parse( xsdTime ); - // - - // - // Display the time in XSD format. - Console::WriteLine( "The time in XSD format is {0}.", - time ); - // - - // - // Display the XSD type string of this particular SoapTime object. - Console::WriteLine( "The XSD type of the SoapTime instance is {0}.", - time->GetXsdType() ); - // - - // - // Display the value of the SoapTime object. - Console::WriteLine( "The value of the SoapTime instance is {0}.", - time->Value ); - // - - // - // Display the XSD type string of the SoapTime class. - Console::WriteLine( "The XSD type of the class SoapTime is {0}.", - SoapTime::XsdType ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapTime/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapTime/CPP/demo2.cpp deleted file mode 100644 index 315eb68d5654c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapTime/CPP/demo2.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(DateTime) - -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -void Ctor1() -{ - // - // Create a SoapTime object. - SoapTime^ time = gcnew SoapTime; - time->Value = DateTime::Now; - Console::WriteLine( "The time is {0}.", time ); - // -} - -void Ctor2() -{ - // - // Create a SoapTime object. - SoapTime^ time = gcnew SoapTime( DateTime::Now ); - Console::WriteLine( "The time is {0}.", time ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYear/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYear/CPP/demo.cpp deleted file mode 100644 index 0c90607a48622..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYear/CPP/demo.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/// Need snippets: -/// 10 class -/// 21 #ctor() -/// 22 #ctor(DateTime) -/// 23 #ctor(DateTime,int) -/// 13 GetXsdType -/// 11 Parse -/// 15 Sign -/// 12 ToString -/// 14 Value -/// 16 XsdType - -// -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD date to create a SoapYear object. - String^ xsdDate = "2003"; - SoapYear^ date = SoapYear::Parse( xsdDate ); - // - - // - // Serialize a DateTime object as an XSD date string. - Console::WriteLine( "The date in XSD format is {0}.", - date ); - // - - // - // Print out the XSD type string of this particular SoapYear object. - Console::WriteLine( "The XSD type of the SoapYear instance is {0}.", - date->GetXsdType() ); - // - - // - // Print out the value of the SoapYear object. - Console::WriteLine( "The value of the SoapYear instance is {0}.", - date->Value ); - // - - // - // Print out the sign of the SoapYear object. - Console::WriteLine( "The sign of the SoapYear instance is {0}.", - date->Sign ); - // - - // - // Print out the XSD type string of the SoapYear class. - Console::WriteLine( "The XSD type of SoapYear is {0}.", - SoapYear::XsdType ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYear/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYear/CPP/demo2.cpp deleted file mode 100644 index aa3c6d2fbc14d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYear/CPP/demo2.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(DateTime) -/// 23 #ctor(DateTime,int) - -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; -void Ctor1() -{ - // - // Create a SoapYear object. - SoapYear^ date = gcnew SoapYear; - date->Value = DateTime::Now; - Console::WriteLine( "The date is {0}.", date ); - // -} - -void Ctor2() -{ - // - // Create a SoapYear object. - SoapYear^ date = gcnew SoapYear( DateTime::Now ); - Console::WriteLine( "The date is {0}.", date ); - // -} - -void Ctor3() -{ - // - // Create a SoapYear object with a positive sign. - SoapYear^ date = gcnew SoapYear( DateTime::Now,1 ); - Console::WriteLine( "The date is {0}.", date ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); - Ctor3(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYearMonth/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYearMonth/CPP/demo.cpp deleted file mode 100644 index 0479bd8049dc2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYearMonth/CPP/demo.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/// Class: System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYearMonth -/// Need snippets: -/// 10 class -/// 21 #ctor() -/// 22 #ctor(DateTime) -/// 23 #ctor(DateTime,int) -/// 13 GetXsdType -/// 11 Parse -/// 15 Sign -/// 12 ToString -/// 14 Value -/// 16 XsdType - -// -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; - -int main() -{ - // - // Parse an XSD gYearMonth to create a SoapYearMonth object. - // The timezone of this object is -08:00. - String^ xsdYearMonth = "2003-11-08:00"; - SoapYearMonth^ yearMonth = SoapYearMonth::Parse( xsdYearMonth ); - // - - // - // Display the yearMonth in XSD format. - Console::WriteLine( "The yearMonth in XSD format is {0}.", - yearMonth ); - // - - // - // Display the XSD type string of this particular SoapYearMonth object. - Console::WriteLine( "The XSD type of the SoapYearMonth instance is {0}.", - yearMonth->GetXsdType() ); - // - - // - // Display the value of the SoapYearMonth object. - Console::WriteLine( "The value of the SoapYearMonth instance is {0}.", - yearMonth->Value ); - // - - // - // Display the sign of the SoapYearMonth object. - Console::WriteLine( "The sign of the SoapYearMonth instance is {0}.", - yearMonth->Sign ); - // - - // - // Display the XSD type string of the SoapYearMonth class. - Console::WriteLine( "The XSD type of the class SoapYearMonth is {0}.", - SoapYearMonth::XsdType ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYearMonth/CPP/demo2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYearMonth/CPP/demo2.cpp deleted file mode 100644 index 208e3500ca959..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.Metadata.W3cXsd2001.SoapYearMonth/CPP/demo2.cpp +++ /dev/null @@ -1,41 +0,0 @@ -/// Need snippets: -/// 21 #ctor() -/// 22 #ctor(DateTime) -/// 23 #ctor(DateTime,int) - -using namespace System; -using namespace System::Runtime::Remoting::Metadata::W3cXsd2001; -void Ctor1() -{ - // - // Create a SoapYearMonth object. - SoapYearMonth^ year = gcnew SoapYearMonth; - year->Value = DateTime::Now; - Console::WriteLine( "The year is {0}.", year ); - // -} - -void Ctor2() -{ - // - // Create a SoapYearMonth object. - SoapYearMonth^ year = gcnew SoapYearMonth( DateTime::Now ); - Console::WriteLine( "The year is {0}.", year ); - // -} - -void Ctor3() -{ - // - // Create a SoapYearMonth object with a positive sign. - SoapYearMonth^ year = gcnew SoapYearMonth( DateTime::Now,1 ); - Console::WriteLine( "The year is {0}.", year ); - // -} - -int main() -{ - Ctor1(); - Ctor2(); - Ctor3(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.RemotingServices/CPP/remotingservicessample.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.RemotingServices/CPP/remotingservicessample.cpp deleted file mode 100644 index 8df0b7dcb4725..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.RemotingServices/CPP/remotingservicessample.cpp +++ /dev/null @@ -1,232 +0,0 @@ - - -// C:\Program Files\Microsoft::NET\FrameworkSDK\Samples\technologies\remoting\advanced\customproxies -// -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Messaging; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Reflection; -// - -// -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Runtime::Remoting::Lifetime; -using namespace System::Runtime::Remoting::Proxies; -// - -// -using namespace System::Runtime::Remoting::Channels::Http; -using namespace System::Net; -using namespace System::IO; -using namespace System::Security::Permissions; -// - -// -public ref class HelloServer: public MarshalByRefObject -{ -public: - HelloServer() - { - Console::WriteLine( "HelloServer activated." ); - } - - [OneWay] - void SayHelloToServer( String^ name ) - { - Console::WriteLine( "Client invoked SayHelloToServer(\" {0}\").", name ); - } - - // - // IsOneWay: Note the lack of the OneWayAttribute adornment on this method. - [SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::Infrastructure)] - String^ SayHelloToServerAndWait( String^ name ) - { - Console::WriteLine( "Client invoked SayHelloToServerAndWait(\" {0}\").", name ); - Console::WriteLine( "Client waiting for return? {0}", RemotingServices::IsOneWay( MethodBase::GetCurrentMethod() ) ? (String^)"No" : "Yes" ); - return String::Format( "Hi there, {0}.", name ); - } - // -}; -// - -// -// An instance of ClientApp will call an instance of this class remotely. -public ref class TcpServerApp -{ -public: - [SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::Infrastructure)] - TcpServerApp() - { - // Register a class over TCP at tcp://localhost:8085/HttpHelloServer. - const String^ myObjectUri = "TcpHelloServer"; - const int myPort = 8085; - TcpChannel^ myTcpChannel = gcnew TcpChannel( myPort ); - ChannelServices::RegisterChannel( myTcpChannel ); - RemotingConfiguration::RegisterWellKnownServiceType( HelloServer::typeid, const_cast(myObjectUri), WellKnownObjectMode::Singleton ); - // - - // - Console::WriteLine( "Server type: {0}", RemotingServices::GetServerTypeForUri( const_cast(myObjectUri) ) ); - // - - // - Console::WriteLine( "Press Enter to stop the demo." ); - Console::ReadLine(); - } - -}; -// - -// -public ref class HttpServerApp -{ -public: - [SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::Infrastructure)] - HttpServerApp() - { - // Marshal an Object* over HTTP at http://localhost:8090/HttpHelloServer. - const String^ myObjectUri = "HttpHelloServer"; - const int myPort = 8090; - HttpChannel^ myHttpChannel = gcnew HttpChannel( myPort ); - ChannelServices::RegisterChannel( myHttpChannel ); - MarshalByRefObject^ myMbro = dynamic_cast(Activator::CreateInstance( HelloServer::typeid )); - RemotingServices::SetObjectUriForMarshal( myMbro, const_cast(myObjectUri) ); - ObjRef^ myObjRef = RemotingServices::Marshal( myMbro ); - Console::WriteLine( "Press Enter to stop the demo." ); - Console::ReadLine(); - HelloServer^ umObj = dynamic_cast(RemotingServices::Unmarshal( myObjRef )); - RemotingServices::Disconnect( myMbro ); - } -}; -// - -// -// An instance of this class will call an instance of ServerApp remotely. -[SecurityPermissionAttribute(SecurityAction::Demand, Flags=SecurityPermissionFlag::Infrastructure)] -public ref class TcpClientApp -{ -public: - TcpClientApp() - { - const String^ myHelloServerUrl = "tcp://localhost:8085/TcpHelloServer"; - HelloServer^ obj = static_cast(RemotingServices::Connect( HelloServer::typeid, const_cast(myHelloServerUrl) )); - // - - // - //GetRealProxy, GetObjectUri, GetEnvoyChainForProxy - RealProxy^ proxy = RemotingServices::GetRealProxy( obj ); - Console::WriteLine( "Real proxy type: {0}", proxy->GetProxiedType() ); - Console::WriteLine( "Object URI: {0}", RemotingServices::GetObjectUri( obj ) ); - IMessageSink^ msgSink = RemotingServices::GetEnvoyChainForProxy( obj )->NextSink; - // - - // - //IsTransparentProxy, IsObjectOutOfAppDomain, IsObjectOutOfContext - Console::WriteLine( "Proxy transparent? {0}", RemotingServices::IsTransparentProxy( obj ) ? (String^)"Yes" : "No" ); - Console::WriteLine( "Object outside app domain? {0}", RemotingServices::IsObjectOutOfAppDomain( obj ) ? (String^)"Yes" : "No" ); - Console::WriteLine( "Object [Out] of* context? {0}", RemotingServices::IsObjectOutOfContext( obj ) ? (String^)"Yes" : "No" ); - // - - // - //GetLifetimeService - ILease^ lease = dynamic_cast(RemotingServices::GetLifetimeService( obj )); - Console::WriteLine( "Object lease time remaining: {0}.", lease->CurrentLeaseTime ); - // - - // - String^ twoWayMethodArg = "John"; - Console::WriteLine( "Invoking SayHelloToServerAndWait(\" {0}\").", twoWayMethodArg ); - Console::WriteLine( "Server returned: {0}", obj->SayHelloToServerAndWait( twoWayMethodArg ) ); - // - - // - String^ oneWayMethodArg = "Mary"; - Console::WriteLine( "Invoking SayHelloToServer(\" {0}\").", oneWayMethodArg ); - obj->SayHelloToServer( oneWayMethodArg ); - // - - // - } - // - - // -}; -// - -// -public ref class HttpClientApp -{ -public: - HttpClientApp() - { - const String^ myHelloServerUrl = "http://localhost:8090/HttpHelloServer"; - - // Output the WSDL for the marshalled Object*. - WebClient^ myWebClient = gcnew WebClient; - Stream^ myStream = myWebClient->OpenRead( String::Format( "{0}?wsdl", const_cast(myHelloServerUrl) ) ); - int b = myStream->ReadByte(); - while ( b != -1 ) - { - char p[2] = {(char)b}; - Console::Write( p ); - b = myStream->ReadByte(); - } - } - -}; -// - -// -int main() -{ - array^args = Environment::GetCommandLineArgs(); - // - - bool isServer = false; - if ( args->Length > 1 ) - if ( args[ 1 ]->ToLower()->Equals( "s" ) ) - isServer = true; - - if ( !isServer ) - { - Console::WriteLine( "Run this program in another window, \npassing the letter 's' as an argument.\nPress Enter here when the server has been activated." ); - Console::ReadLine(); - Console::WriteLine( "Running TCP client." ); - } - - // - if ( isServer ) - { - gcnew TcpServerApp; - } - else - { - gcnew TcpClientApp; - } - // - - if ( !isServer ) - { - Console::WriteLine( "\nPress Enter in the other window to continue to the next demo.\nThen press Enter here." ); - Console::ReadLine(); - } - - // - if ( isServer ) - { - gcnew HttpServerApp; - } - else - { - gcnew HttpClientApp; - } - // - - // - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.SoapServices/CPP/demo.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.SoapServices/CPP/demo.cpp deleted file mode 100644 index dcfbf9f217f27..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Runtime.Remoting.SoapServices/CPP/demo.cpp +++ /dev/null @@ -1,371 +0,0 @@ -/// Class: System.Runtime.Remoting.SoapServices -/// 100 class -/// 101 CodeXmlNamespaceForClrTypeNamespace() -/// 102 DecodeXmlNamespaceForClrTypeNamespace() -/// 150 GetInteropFieldTypeAndNameFromXmlAttribute() -/// 150 GetInteropFieldTypeAndNameFromXmlElement() -/// 160 GetInteropTypeFromXmlElement() -/// 160 GetInteropTypeFromXmlType() -/// 140 GetSoapActionFromMethodBase() -/// 140 GetTypeAndMethodNameFromSoapAction() -/// 103 GetXmlElementForInteropType() -/// 105 GetXmlNamespaceForMethodCall() -/// 105 GetXmlNamespaceForMethodResponse() -/// 104 GetXmlTypeForInteropType() -/// 106 IsClrTypeNamespace() -/// 140 IsSoapActionValidForMethodBase() -/// 120 PreLoad(Assembly) -/// 121 PreLoad(Type) -/// 180 RegisterInteropXmlElement() -/// 190 RegisterInteropXmlType() -/// 170 RegisterSoapActionForMethodBase(MethodBase) -/// 170 RegisterSoapActionForMethodBase(MethodBase,String) -/// 130 XmlNsForClrType -/// 131 XmlNsForClrTypeWithAssembly -/// 132 XmlNsForClrTypeWithNs -/// 133 XmlNsForClrTypeWithNsAndAssembly -// -#using -using namespace System; -using namespace System::Runtime::Remoting; - -namespace ExampleNamespace -{ - [System::Runtime::Remoting::Metadata::SoapTypeAttribute( - XmlElementName="ExampleClassElementName", - XmlNamespace="http://example.org/ExampleXmlNamespace", - XmlTypeName="ExampleXmlTypeName", - XmlTypeNamespace="http://example.org/ExampleXmlTypeNamespace")] - public ref class ExampleClass - { - public: - - // A field that will be serialized as an XML element. - [System::Runtime::Remoting::Metadata::SoapField( - XmlElementName="ExampleFieldElementName", - XmlNamespace="http://example.org/ExampleFieldNamespace")] - String^ ExampleFieldUsingElement; - - // A field that will be serialized as an XML attribute. - [System::Runtime::Remoting::Metadata::SoapField( - XmlElementName="ExampleFieldAttributeName", - XmlNamespace="http://example.org/ExampleAttributeNamespace", - UseAttribute=true)] - String^ ExampleFieldUsingAttribute; - - [System::Runtime::Remoting::Metadata::SoapMethod( - SoapAction="http://example.org/ExampleSoapAction#GetHello")] - String^ GetHello( String^ name ) - { - return String::Format( L"Hello, {0}", name ); - } - - }; - -} - -[System::Security::Permissions::SecurityPermissionAttribute( -System::Security::Permissions::SecurityAction::LinkDemand, -Flags=System::Security::Permissions::SecurityPermissionFlag::Infrastructure)] -int main() -{ - // - // Convert a CLR namespace and assembly name into an XML namespace. - String^ xmlNamespace = SoapServices::CodeXmlNamespaceForClrTypeNamespace( - L"ExampleNamespace", L"AssemblyName" ); - Console::WriteLine( L"The name of the XML namespace is {0}.", xmlNamespace ); - // - - // - // Extract a CLR namespace and assembly name from an XML namespace. - String^ typeNamespace; - String^ assemblyName; - SoapServices::DecodeXmlNamespaceForClrTypeNamespace( - xmlNamespace,typeNamespace,assemblyName ); - Console::WriteLine( L"The name of the CLR namespace is {0}.", typeNamespace ); - Console::WriteLine( L"The name of the CLR assembly is {0}.", assemblyName ); - // - - // - // Get the XML element name and the XML namespace for - // an Interop type. - String^ xmlElement; - bool isSoapTypeAttribute = SoapServices::GetXmlElementForInteropType( - ExampleNamespace::ExampleClass::typeid,xmlElement,xmlNamespace ); - - // Print whether the requested value was flagged - // with a SoapTypeAttribute. - if ( isSoapTypeAttribute ) - { - Console::WriteLine( L"The requested value was flagged " - L"with the SoapTypeAttribute." ); - } - else - { - Console::WriteLine( L"The requested value was not flagged " - L"with the SoapTypeAttribute." ); - } - - // Print the XML element and the XML namespace. - Console::WriteLine( L"The XML element for the type " - L"ExampleNamespace.ExampleClass is {0}.", xmlElement ); - Console::WriteLine( L"The XML namespace for the type " - L"ExampleNamespace.ExampleClass is {0}.", xmlNamespace ); - // - - // - // Get the XML type name and the XML type namespace for - // an Interop type. - String^ xmlTypeName; - String^ xmlTypeNamespace; - isSoapTypeAttribute = SoapServices::GetXmlTypeForInteropType( ExampleNamespace::ExampleClass::typeid,xmlTypeName,xmlTypeNamespace ); - - // Print whether the requested value was flagged - // with a SoapTypeAttribute. - if ( isSoapTypeAttribute ) - { - Console::WriteLine( L"The requested value was flagged " - L"with the SoapTypeAttribute." ); - } - else - { - Console::WriteLine( L"The requested value was not flagged " - L"with the SoapTypeAttribute." ); - } - - // Print the XML type name and the XML type namespace. - Console::WriteLine( L"The XML type for the type " - L"ExampleNamespace.ExampleClass is {0}.", xmlTypeName ); - Console::WriteLine( L"The XML type namespace for the type " - L"ExampleNamespace.ExampleClass is {0}.", xmlTypeNamespace ); - // - - // - // Print the XML namespace for a method invocation and its - // response. - System::Reflection::MethodBase^ getHelloMethod = - ExampleNamespace::ExampleClass::typeid->GetMethod( L"GetHello" ); - String^ methodCallXmlNamespace = - SoapServices::GetXmlNamespaceForMethodCall( getHelloMethod ); - String^ methodResponseXmlNamespace = - SoapServices::GetXmlNamespaceForMethodResponse( getHelloMethod ); - Console::WriteLine( L"The XML namespace for the invocation of the method " - L"GetHello in ExampleClass is {0}.", methodResponseXmlNamespace ); - Console::WriteLine( L"The XML namespace for the response of the method " - L"GetHello in ExampleClass is {0}.", methodCallXmlNamespace ); - // - - // - // Determine whether an XML namespace represents a CLR namespace. - String^ clrNamespace = SoapServices::XmlNsForClrType; - if ( SoapServices::IsClrTypeNamespace( clrNamespace ) ) - { - Console::WriteLine( L"The namespace {0} is a CLR namespace.", - clrNamespace ); - } - else - { - Console::WriteLine( L"The namespace {0} is not a CLR namespace.", - clrNamespace ); - } - // - - // - // Print the XML namespace for the CLR types. - Console::WriteLine( L"The XML namespace for the CLR types " - L"is {0}.", SoapServices::XmlNsForClrType ); - // - - // - // Print the XML namespace for the CLR types - // that have an assembly but no common language runtime namespace. - Console::WriteLine( L"The XML namespace for the CLR types " - L"that have an assembly but no namespace, is {0}.", - SoapServices::XmlNsForClrTypeWithAssembly ); - // - - // - // Print the XML namespace for the CLR types - // that are a part of the Mscorlib.dll. - Console::WriteLine( L"The XML namespace for the CLR types " - L"that are part of the Mscorlib.dll, is {0}.", - SoapServices::XmlNsForClrTypeWithNs ); - // - - // - // Print the XML namespace for the CLR types - // that have both an assembly and a common language runtime - // namespace. - Console::WriteLine( L"The XML namespace for the CLR types " - L"that have both an assembly and a namespace, is {0}.", - SoapServices::XmlNsForClrTypeWithNsAndAssembly ); - // - - // - // Get the SOAP action for the method. - System::Reflection::MethodBase^ getHelloMethodBase = - ExampleNamespace::ExampleClass::typeid->GetMethod( L"GetHello" ); - String^ getHelloSoapAction = - SoapServices::GetSoapActionFromMethodBase( getHelloMethodBase ); - Console::WriteLine( L"The SOAP action for the method " - L"ExampleClass.GetHello is {0}.", getHelloSoapAction ); - bool isSoapActionValid = - SoapServices::IsSoapActionValidForMethodBase( - getHelloSoapAction, getHelloMethodBase ); - if ( isSoapActionValid ) - { - Console::WriteLine( L"The SOAP action, {0}, " - L"is valid for ExampleClass.GetHello", getHelloSoapAction ); - } - else - { - Console::WriteLine( L"The SOAP action, {0}, " - L"is not valid for ExampleClass.GetHello", getHelloSoapAction ); - } - - // Register the SOAP action for the GetHello method. - SoapServices::RegisterSoapActionForMethodBase( getHelloMethodBase ); - - // Get the type and the method names encoded into the SOAP action. - String^ encodedTypeName; - String^ encodedMethodName; - SoapServices::GetTypeAndMethodNameFromSoapAction( - getHelloSoapAction,encodedTypeName,encodedMethodName ); - Console::WriteLine( L"The type name encoded in this SOAP action is {0}.", - encodedTypeName ); - Console::WriteLine( L"The method name encoded in this SOAP action is {0}.", - encodedMethodName ); - // - - // - // Get the name and the type of the field using its XML - // element name and its XML namespace. For this query to work, - // the containing type must be preloaded, and the XML element - // name and the XML namespace must be explicitly declared on - // the field using a SoapFieldAttribute. - // Preload the containing type. - SoapServices::PreLoad( ExampleNamespace::ExampleClass::typeid ); - - // Get the name and the type of a field that will be - // serialized as an XML element. - Type^ containingType = ExampleNamespace::ExampleClass::typeid; - String^ xmlElementNamespace = L"http://example.org/ExampleFieldNamespace"; - String^ xmlElementName = L"ExampleFieldElementName"; - Type^ fieldType; - String^ fieldName; - SoapServices::GetInteropFieldTypeAndNameFromXmlElement( - containingType,xmlElementName,xmlElementNamespace,fieldType,fieldName ); - Console::WriteLine( L"The type of the field is {0}.", fieldType ); - Console::WriteLine( L"The name of the field is {0}.", fieldName ); - - // Get the name and the type of a field that will be - // serialized as an XML attribute. - String^ xmlAttributeNamespace = - L"http://example.org/ExampleAttributeNamespace"; - String^ xmlAttributeName = L"ExampleFieldAttributeName"; - SoapServices::GetInteropFieldTypeAndNameFromXmlAttribute( - containingType,xmlAttributeName,xmlAttributeNamespace,fieldType,fieldName ); - Console::WriteLine( L"The type of the field is {0}.", fieldType ); - Console::WriteLine( L"The name of the field is {0}.", fieldName ); - // - - // - String^ interopTypeXmlElementName = L"ExampleClassElementName"; - String^ interopTypeXmlNamespace = L"http://example.org/ExampleXmlNamespace"; - Type^ interopType = SoapServices::GetInteropTypeFromXmlElement( - interopTypeXmlElementName, interopTypeXmlNamespace ); - Console::WriteLine( L"The interop type is {0}.", interopType ); - String^ interopTypeXmlTypeName = L"ExampleXmlTypeName"; - String^ interopTypeXmlTypeNamespace = - L"http://example.org/ExampleXmlTypeNamespace"; - interopType = SoapServices::GetInteropTypeFromXmlType( - interopTypeXmlTypeName,interopTypeXmlTypeNamespace ); - Console::WriteLine( L"The interop type is {0}.", interopType ); - // - - // - // Get the method base object for the GetHello method. - System::Reflection::MethodBase^ methodBase = - ExampleNamespace::ExampleClass::typeid->GetMethod( L"GetHello" ); - - // Print its current SOAP action. - Console::WriteLine( L"The SOAP action for the method " - L"ExampleClass.GetHello is {0}.", - SoapServices::GetSoapActionFromMethodBase( methodBase ) ); - - // Set the SOAP action of the GetHello method to a new value. - String^ newSoapAction = L"http://example.org/ExampleSoapAction#NewSoapAction"; - SoapServices::RegisterSoapActionForMethodBase( methodBase, newSoapAction ); - Console::WriteLine( L"The SOAP action for the method " - L"ExampleClass.GetHello is {0}.", - SoapServices::GetSoapActionFromMethodBase( methodBase ) ); - - // Reset the SOAP action of the GetHello method to its default - // value, which is determined using its SoapMethod attribute. - SoapServices::RegisterSoapActionForMethodBase( methodBase ); - Console::WriteLine( L"The SOAP action for the method " - L"ExampleClass.GetHello is {0}.", - SoapServices::GetSoapActionFromMethodBase( methodBase ) ); - // - - // - // Register all types in the assembly with the SoapType attribute. - System::Reflection::Assembly^ executingAssembly = - System::Reflection::Assembly::GetExecutingAssembly(); - SoapServices::PreLoad( executingAssembly ); - // - - // - // Register a specific type with the SoapType attribute. - Type^ exampleType = ExampleNamespace::ExampleClass::typeid; - SoapServices::PreLoad( exampleType ); - // - - // - // Get the currently registered type for the given XML element - // and namespace. - String^ registeredXmlElementName = L"ExampleClassElementName"; - String^ registeredXmlNamespace = - L"http://example.org/ExampleXmlNamespace"; - Type^ registeredType = - SoapServices::GetInteropTypeFromXmlElement( - registeredXmlElementName, registeredXmlNamespace ); - Console::WriteLine( L"The registered interop type is {0}.", - registeredType ); - - // Register a new type for the XML element and namespace. - SoapServices::RegisterInteropXmlElement( - registeredXmlElementName,registeredXmlNamespace,String::typeid ); - - // Get the currently registered type for the given XML element - // and namespace. - registeredType = SoapServices::GetInteropTypeFromXmlElement( - registeredXmlElementName,registeredXmlNamespace ); - Console::WriteLine( L"The registered interop type is {0}.", - registeredType ); - // - - // - // Get the currently registered type for the given XML element - // and namespace. - String^ registeredXmlTypeName = L"ExampleXmlTypeName"; - String^ registeredXmlTypeNamespace = - L"http://example.org/ExampleXmlTypeNamespace"; - registeredType = SoapServices::GetInteropTypeFromXmlType( - registeredXmlTypeName, registeredXmlTypeNamespace ); - Console::WriteLine( L"The registered interop type is {0}.", - registeredType ); - - // Register a new type for the XML element and namespace. - SoapServices::RegisterInteropXmlType( registeredXmlTypeName, - registeredXmlTypeNamespace,String::typeid ); - - // Get the currently registered type for the given XML element - // and namespace. - registeredType = SoapServices::GetInteropTypeFromXmlType( - registeredXmlTypeName,registeredXmlTypeNamespace ); - Console::WriteLine( L"The registered interop type is {0}.", - registeredType ); - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/System.Web.Services.Protocols.WebClientProtocol constructor/CPP/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/System.Web.Services.Protocols.WebClientProtocol constructor/CPP/class1.cpp deleted file mode 100644 index fda8e86ad0163..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/System.Web.Services.Protocols.WebClientProtocol constructor/CPP/class1.cpp +++ /dev/null @@ -1,28 +0,0 @@ -#using -#using -#using - -using namespace System; -using namespace System::Diagnostics; -using namespace System::Xml::Serialization; -using namespace System::Web::Services::Protocols; -using namespace System::Web::Services; - -int main(){} - -// This class derives from System::Web::Services::Protocols.WebClientProtocol -// as if the user implemented their own protocol. -// It demonstrates the use of WebClientProtocol's constructor. - -// -[System::Web::Services::WebServiceBindingAttribute(Name="Service1Soap", - Namespace="http://tempuri.org/")] -ref class TempConvertService: public System::Web::Services::Protocols::WebClientProtocol -{ -public: - TempConvertService() : WebClientProtocol() - { - // Rest of class initialization. - } - // -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/TcpChannel.GetUrlsForUri/CPP/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/TcpChannel.GetUrlsForUri/CPP/class1.cpp deleted file mode 100644 index 864f52557568e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/TcpChannel.GetUrlsForUri/CPP/class1.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// -#using -#using -#using "Service.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Collections; - -int main() -{ - // Create a remotable object. - TcpChannel^ tcpChannel = gcnew TcpChannel( 8085 ); - WellKnownServiceTypeEntry^ WKSTE = - gcnew WellKnownServiceTypeEntry( HelloService::typeid, - "Service", - WellKnownObjectMode::Singleton ); - RemotingConfiguration::RegisterWellKnownServiceType( WKSTE ); - - RemotingConfiguration::ApplicationName = "HelloServer"; - - // Print out the urls for the HelloServer. - array^ urls = tcpChannel->GetUrlsForUri( "HelloServer" ); - - for each ( String^ url in urls ) - { - System::Console::WriteLine( "{0}", url ); - } - return 0; -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/TcpChannel.GetUrlsForUri/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/TcpChannel.GetUrlsForUri/CPP/makefile deleted file mode 100644 index f326ce956a05c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/TcpChannel.GetUrlsForUri/CPP/makefile +++ /dev/null @@ -1,8 +0,0 @@ -all : class1.exe - - -class1.exe : class1.cpp Service.dll - cl /clr:pure /Zi /nologo class1.cpp - -Service.dll : Service.cpp - cl /clr:pure /Zi /nologo /LD Service.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/TcpChannel.GetUrlsForUri/CPP/service.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/TcpChannel.GetUrlsForUri/CPP/service.cpp deleted file mode 100644 index 5cf56738d9e18..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/TcpChannel.GetUrlsForUri/CPP/service.cpp +++ /dev/null @@ -1,27 +0,0 @@ -using namespace System; - -public ref class HelloService: public MarshalByRefObject -{ -private: - static int n_instances; - -public: - HelloService() - { - n_instances++; - Console::WriteLine( "" ); - Console::WriteLine( "HelloService activated - instance # {0}.", n_instances ); - } - - ~HelloService() - { - Console::WriteLine( "HelloService instance {0} destroyed.", n_instances ); - n_instances--; - } - - String^ HelloMethod( String^ name ) - { - Console::WriteLine( "HelloMethod called on HelloService instance {0}.", n_instances ); - return String::Format( "Hi there {0}.", name ); - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/TcpListener_Pending_LocalEndPoint/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/TcpListener_Pending_LocalEndPoint/CPP/source.cpp deleted file mode 100644 index a2417ed5c5552..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/TcpListener_Pending_LocalEndPoint/CPP/source.cpp +++ /dev/null @@ -1,44 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::Threading; - -void main() -{ - const int portNumber = 13; - - // - try - { - // Use the Pending method to poll the underlying socket instance for client connection requests. - TcpListener^ tcpListener = gcnew TcpListener( portNumber ); - tcpListener->Start(); - - if ( !tcpListener->Pending() ) - { - Console::WriteLine( "Sorry, no connection requests have arrived" ); - } - else - { - //Accept the pending client connection and return a TcpClient object^ initialized for communication. - TcpClient^ tcpClient = tcpListener->AcceptTcpClient(); - - // Using the RemoteEndPoint property. - Console::WriteLine( "I am listening for connections on {0} on port number {1}", - IPAddress::Parse( ( (IPEndPoint^)(tcpListener->LocalEndpoint) )->Address->ToString() ), - ( (IPEndPoint^)(tcpListener->LocalEndpoint) )->Port ); - // - - //Close the tcpListener and tcpClient instances - tcpClient->Close(); - } - tcpListener->Stop(); - } - catch ( Exception^ e ) - { - Console::WriteLine( e->ToString() ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/TcpServerChannel.GetUrlsForUri/CPP/class1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/TcpServerChannel.GetUrlsForUri/CPP/class1.cpp deleted file mode 100644 index 5d26295d74509..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/TcpServerChannel.GetUrlsForUri/CPP/class1.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// -#using -#using -#using "service.dll" - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels::Tcp; -using namespace System::Collections; - -int main() -{ - // Create a remotable object. - TcpServerChannel^ tcpChannel = gcnew TcpServerChannel( 8085 ); - - WellKnownServiceTypeEntry^ WKSTE = - gcnew WellKnownServiceTypeEntry( HelloService::typeid, - "Service", - WellKnownObjectMode::Singleton ); - RemotingConfiguration::RegisterWellKnownServiceType( WKSTE ); - - RemotingConfiguration::ApplicationName = "HelloServer"; - - // Print out the urls for the HelloServer. - array^ urls = tcpChannel->GetUrlsForUri( "HelloServer" ); - - for each ( String^ url in urls ) - { - System::Console::WriteLine( "{0}", url ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/TcpServerChannel.GetUrlsForUri/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/TcpServerChannel.GetUrlsForUri/CPP/makefile deleted file mode 100644 index d78435d4b9ca1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/TcpServerChannel.GetUrlsForUri/CPP/makefile +++ /dev/null @@ -1,7 +0,0 @@ -all: class1.exe - -class1.exe: class1.cpp service.dll - cl /clr:pure class1.cpp - -service.dll: service.cpp - cl /clr:pure /LD service.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/TcpServerChannel.GetUrlsForUri/CPP/service.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/TcpServerChannel.GetUrlsForUri/CPP/service.cpp deleted file mode 100644 index 5cf56738d9e18..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/TcpServerChannel.GetUrlsForUri/CPP/service.cpp +++ /dev/null @@ -1,27 +0,0 @@ -using namespace System; - -public ref class HelloService: public MarshalByRefObject -{ -private: - static int n_instances; - -public: - HelloService() - { - n_instances++; - Console::WriteLine( "" ); - Console::WriteLine( "HelloService activated - instance # {0}.", n_instances ); - } - - ~HelloService() - { - Console::WriteLine( "HelloService instance {0} destroyed.", n_instances ); - n_instances--; - } - - String^ HelloMethod( String^ name ) - { - Console::WriteLine( "HelloMethod called on HelloService instance {0}.", n_instances ); - return String::Format( "Hi there {0}.", name ); - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/UnreferencedObject Event Example/CPP/unrefobj.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/UnreferencedObject Event Example/CPP/unrefobj.cpp deleted file mode 100644 index 0f5bd7c779933..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/UnreferencedObject Event Example/CPP/unrefobj.cpp +++ /dev/null @@ -1,90 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Text; -using namespace System::Xml; -using namespace System::Xml::Serialization; -using namespace System::Xml::Schema; - -ref class Vehicle; - -[SoapInclude(Vehicle::typeid)] -public ref class Vehicle -{ -public: - String^ licenseNumber; -}; - - -// You must use the SoapIncludeAttribute to inform the XmlSerializer -// that the Vehicle type should be recognized when deserializing. - -[SoapInclude(Vehicle::typeid)] -public ref class Group -{ -public: - String^ GroupName; - Vehicle^ GroupVehicle; -}; - -public ref class Run -{ -public: - void DeserializeObject( String^ filename ) - { - // Create an instance of the XmlSerializer class. - XmlTypeMapping^ myMapping = ((gcnew SoapReflectionImporter)->ImportTypeMapping( Group::typeid )); - XmlSerializer^ mySerializer = gcnew XmlSerializer( myMapping ); - mySerializer->UnreferencedObject += gcnew UnreferencedObjectEventHandler( this, &Run::Serializer_UnreferencedObject ); - - // Reading the file requires an XmlTextReader. - XmlTextReader^ reader = gcnew XmlTextReader( filename ); - reader->ReadStartElement(); - - // Deserialize and cast the object. - Group^ myGroup; - myGroup = dynamic_cast(mySerializer->Deserialize( reader )); - reader->ReadEndElement(); - reader->Close(); - } - -private: - void Serializer_UnreferencedObject( Object^ /*sender*/, UnreferencedObjectEventArgs^ e ) - { - Console::WriteLine( "UnreferencedObject:" ); - Console::WriteLine( "ID: {0}", e->UnreferencedId ); - Console::WriteLine( "UnreferencedObject: {0}", e->UnreferencedObject ); - Vehicle^ myVehicle = dynamic_cast(e->UnreferencedObject); - Console::WriteLine( "License: {0}", myVehicle->licenseNumber ); - } -}; - -int main() -{ - Run^ test = gcnew Run; - test->DeserializeObject( "UnrefObj.xml" ); -} - -// The file named S"UnrefObj.xml" should contain this XML: -// -// -// -// -// ABCD -// -// -// 1234 -// -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/UriBuilderSample/cpp/main.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/UriBuilderSample/cpp/main.cpp deleted file mode 100644 index d4b536a14d2aa..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/UriBuilderSample/cpp/main.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#using -#pragma region^ Using directives - -using namespace System; -using namespace System::Collections::Generic; -using namespace System::Text; - -#pragma endregion - -int main() -{ - // - UriBuilder^ baseUri = gcnew UriBuilder - ("http://www.contoso.com/default.aspx?Param1=7890"); - String^ queryToAppend = "param2=1234"; - if (baseUri->Query != nullptr && baseUri->Query->Length > 1) - { - baseUri->Query = baseUri->Query->Substring(1)+ "&" + queryToAppend; - } - - else - { - baseUri->Query = queryToAppend; - } - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/UriBuilderSample/cpp/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/UriBuilderSample/cpp/makefile deleted file mode 100644 index 3e6fc62975f01..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/UriBuilderSample/cpp/makefile +++ /dev/null @@ -1,3 +0,0 @@ -UriBuilderSample.exe: main.cpp - cl /FeUriBuilderSample.exe /clr:pure main.cpp - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient/CPP/webclient.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClient/CPP/webclient.cpp deleted file mode 100644 index 13f395578e459..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient/CPP/webclient.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; -using namespace System::Collections::Specialized; - -int main() -{ - // - try - { - // Download the data to a buffer. - WebClient^ client = gcnew WebClient; - - array^ pageData = client->DownloadData( "http://www.contoso.com" ); - String^ pageHtml = Encoding::ASCII->GetString( pageData ); - Console::WriteLine( pageHtml ); - - // Download the data to a file. - client->DownloadFile( "http://www.contoso.com", "page.htm" ); - - // Upload some form post values. - NameValueCollection^ form = gcnew NameValueCollection; - form->Add( "MyName", "MyValue" ); - array^ responseData = client->UploadValues( "http://www.contoso.com/form.aspx", form ); - } - catch ( WebException^ webEx ) - { - Console::WriteLine( webEx->ToString() ); - if ( webEx->Status == WebExceptionStatus::ConnectFailure ) - { - Console::WriteLine( "Are you behind a firewall? If so, go through the proxy server." ); - } - } - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClientAuthentication/CPP/webclientauth.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClientAuthentication/CPP/webclientauth.cpp deleted file mode 100644 index 36fa4c4787334..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClientAuthentication/CPP/webclientauth.cpp +++ /dev/null @@ -1,27 +0,0 @@ - - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; - -// -int main() -{ - try - { - WebClient^ client = gcnew WebClient; - client->Credentials = CredentialCache::DefaultCredentials; - array^pageData = client->DownloadData( "http://www.contoso.com" ); - String^ pageHtml = Encoding::ASCII->GetString( pageData ); - Console::WriteLine( pageHtml ); - } - catch ( WebException^ webEx ) - { - Console::Write( webEx ); - } - -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_BaseAddress_ResponseHeaders/CPP/webclient_baseaddress_responseheaders.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_BaseAddress_ResponseHeaders/CPP/webclient_baseaddress_responseheaders.cpp deleted file mode 100644 index 20b89ad7be49b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_BaseAddress_ResponseHeaders/CPP/webclient_baseaddress_responseheaders.cpp +++ /dev/null @@ -1,67 +0,0 @@ -// System::Net::WebClient::BaseAddress; System::Net::WebClient::ResponseHeaders - -/*This program demonstrates the 'BaseAddress' and 'ResponseHeaders' property of 'WebClient' class. -It accepts the base Uri from the user and assigns it to the 'BaseAddress' property of the -'WebClient' class.It then invokes 'DownloadFile' for the specific web page requested by the -user. WebClient internally combines the 'BaseAddress' and specific page name to retrieve the page. - -The 'ResponseHeaders' property is a 'WebHeaderCollection' that contains the -header information of the response received from the server.This is displayed to the console. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { - Console::Write( "\nPlease enter a Url {e.g. : http://www.microsoft.com}" ); - String^ hostUri = Console::ReadLine(); - Console::Write( "\nPlease enter the specific web page you require {e.g. : windows/default.asp} : " ); - String^ uriSuffix = Console::ReadLine(); - -// - // Create a new WebClient instance. - WebClient^ myWebClient = gcnew WebClient; - - // Set the BaseAddress of the Web Resource in the WebClient. - myWebClient->BaseAddress = hostUri; - Console::WriteLine( "Downloading from {0}/ {1}", hostUri, uriSuffix ); - Console::WriteLine( "\nPress Enter key to continue" ); - Console::ReadLine(); - - // Download the target Web Resource into a Byte array. - array^ myDatabuffer = myWebClient->DownloadData( uriSuffix ); - - // Display the downloaded data. - String^ download = Encoding::ASCII->GetString( myDatabuffer ); - Console::WriteLine( download ); - Console::WriteLine( "Download of {0}{1} was successful.", myWebClient->BaseAddress, uriSuffix ); -// - -// - // Obtain the WebHeaderCollection instance containing the header name/value pair from the response. - WebHeaderCollection^ myWebHeaderCollection = myWebClient->ResponseHeaders; - Console::WriteLine( "\nDisplaying the response headers\n" ); - - // Loop through the ResponseHeaders and display the header name/value pairs. - for ( int i = 0; i < myWebHeaderCollection->Count; i++ ) - { - Console::WriteLine( "\t{0} = {1}", myWebHeaderCollection->GetKey( i ), - myWebHeaderCollection->Get( i ) ); - } -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "The following WebException was raised: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following Exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_DownloadData/CPP/webclient_downloaddata.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_DownloadData/CPP/webclient_downloaddata.cpp deleted file mode 100644 index d306a8cb394bc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_DownloadData/CPP/webclient_downloaddata.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// System::Net::WebClient::DownloadData; System::Net::WebClient::WebClient - -/* -This program demonstrates the 'DownloadData' method and 'WebClient()' constructor of 'WebClient' class. -It creates a URI to access a web resource. The Uri can point -to any text or binary web resource, like images etc. The 'DownloadData' method then downloads -the required text/html homepage into a Byte array. The downloaded data is displayed on the Console. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// -// - Console::Write( "\nPlease enter a URI (e.g. http://www.contoso.com): " ); - String^ remoteUri = Console::ReadLine(); - - // Create a new WebClient instance. - WebClient^ myWebClient = gcnew WebClient; - // Download home page data. - Console::WriteLine( "Downloading {0}", remoteUri ); - // Download the Web resource and save it into a data buffer. - array^ myDataBuffer = myWebClient->DownloadData( remoteUri ); - - // Display the downloaded data. - String^ download = Encoding::ASCII->GetString( myDataBuffer ); - Console::WriteLine( download ); - - Console::WriteLine( "Download successful." ); -// -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "Download failed!!! WebException : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following general exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_DownloadFile/CPP/webclient_downloadfile.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_DownloadFile/CPP/webclient_downloadfile.cpp deleted file mode 100644 index f7dd44ee87f33..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_DownloadFile/CPP/webclient_downloadfile.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// System::Net::WebClient::DownloadFile - -/* -This program demonstrates the 'DownloadFile' method of 'WebClient' class. -It creates a URI to access a web resource at 'http://www.microsoft.com'. The Uri can point -to any text or binary web resource, like images etc. The 'DownloadFile' method then downloads -the target web resource which is a combination of the Uri and the actual web resource required, -into the current filesystem folder with a specified name. -Information regarding the sucess or failure of this operation is displayed on the console. -*/ - -#using -#using - -using namespace System; -using namespace System::Net; -using namespace System::Windows::Forms; - -int main() -{ - try - { -// - String^ remoteUri = "http://www.contoso.com/library/homepage/images/"; - String^ fileName = "ms-banner.gif", ^myStringWebResource = nullptr; - // Create a new WebClient instance. - WebClient^ myWebClient = gcnew WebClient; - // Concatenate the domain with the Web resource filename. - myStringWebResource = String::Concat( remoteUri, fileName ); - Console::WriteLine( "Downloading File \"{0}\" from \"{1}\" .......\n\n", fileName, myStringWebResource ); - // Download the Web resource and save it into the current filesystem folder. - myWebClient->DownloadFile( myStringWebResource, fileName ); - Console::WriteLine( "Successfully Downloaded File \"{0}\" from \"{1}\"", fileName, myStringWebResource ); - Console::WriteLine( "\nDownloaded file saved in the following file system folder:\n\t {0}", Application::StartupPath ); -// - } - catch ( WebException^ e ) - { - // Display the exception. - Console::WriteLine( "Download failed!!! WebException : {0}", e->Message ); - } - catch ( Exception^ e ) - { - // Display the exception. - Console::WriteLine( "The following general exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_OpenRead/CPP/webclient_openread.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_OpenRead/CPP/webclient_openread.cpp deleted file mode 100644 index d2ddda3c6cd1d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_OpenRead/CPP/webclient_openread.cpp +++ /dev/null @@ -1,49 +0,0 @@ -// System::Net::WebClient::OpenRead - -/* -This program demonstrates the 'OpenRead' method of 'WebClient' class. -It creates a URI to access a web resource. It then invokes 'OpenRead' tp obtain a 'Stream' -instance which is used to retrieve the web page data. The data read from the stream is then -displayed on the console. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; - -int main() -{ - try - { - Console::Write( "\nPlease enter a URI (e.g. http://www.contoso.com): " ); - String^ uriString = Console::ReadLine(); - -// - // Create a new WebClient instance. - WebClient^ myWebClient = gcnew WebClient; - // Download home page data. - Console::WriteLine( "Accessing {0} ...", uriString ); - // Open a stream to point to the data stream coming from the Web resource. - Stream^ myStream = myWebClient->OpenRead( uriString ); - - Console::WriteLine( "\nDisplaying Data :\n" ); - StreamReader^ sr = gcnew StreamReader( myStream ); - Console::WriteLine( sr->ReadToEnd() ); - - // Close the stream. - myStream->Close(); -// - } - catch ( WebException^ e ) - { - // Display the exception. - Console::WriteLine( "Webresource access failed!!! WebException : {0}", e->Message ); - } - catch ( Exception^ e ) - { - // Display the exception. - Console::WriteLine( "The following general exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_OpenWrite/CPP/webclient_openwrite.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_OpenWrite/CPP/webclient_openwrite.cpp deleted file mode 100644 index d2973d8873298..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_OpenWrite/CPP/webclient_openwrite.cpp +++ /dev/null @@ -1,56 +0,0 @@ -// System::Net::WebClientOpenWrite(String, String) - -/* -This program demonstrates the 'OpenWrite(String, String)' method of S"WebClient" class. -It accepts an Uri and some String* content to be posted to the Uri. The -program makes a call to 'OpenWrite(String, String)' method and obtains a S"Stream" instance -This stream is used to post data to the site. - -Note : Behaviour of this program may not be the same with all other sites. Also certain -sites would not accept S"Post" method thereby leading to an error.It is advisable -to construct a site using files accompanying this and provide -url name of this site to the program. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; - -int main() -{ - try - { -// - String^ uriString; - Console::Write( "\nPlease enter the URI to post data to: " ); - uriString = Console::ReadLine(); - Console::WriteLine( "\nPlease enter the data to be posted to the URI {0}:", uriString ); - String^ postData = Console::ReadLine(); - // Apply ASCII encoding to obtain an array of bytes . - array^ postArray = Encoding::ASCII->GetBytes( postData ); - - // Create a new WebClient instance. - WebClient^ myWebClient = gcnew WebClient; - - Console::WriteLine( "Uploading to {0} ...", uriString ); - Stream^ postStream = myWebClient->OpenWrite( uriString, "POST" ); - postStream->Write( postArray, 0, postArray->Length ); - - // Close the stream and release resources. - postStream->Close(); - Console::WriteLine( "\nSuccessfully posted the data." ); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } - -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_OpenWrite2/CPP/webclient_openwrite2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_OpenWrite2/CPP/webclient_openwrite2.cpp deleted file mode 100644 index 31de18430dc23..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_OpenWrite2/CPP/webclient_openwrite2.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// System::Net::WebClient::OpenWrite(String) - -/* -This program demonstrates the 'OpenWrite(String)' method of S"WebClient" class. -It accepts an Uri and some String* content to be posted to the Uri. The -program makes a call to 'OpenWrite(String)' method and obtains a S"Stream" instance -This stream is used to post data to the site. - -Note : Behaviour of this program may not be the same with all other sites. Also certain -sites would not accept S"Post" method thereby leading to an error.It is advisable -to construct a site using files accompanying this and provide -url name of this site to the program. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; - -int main() -{ - try - { -// - String^ uriString; - Console::Write( "\nPlease enter the URI to post data to: " ); - uriString = Console::ReadLine(); - Console::WriteLine( "\nPlease enter the data to be posted to the URI {0}:", uriString ); - String^ postData = Console::ReadLine(); - // Apply Ascii Encoding to obtain an array of bytes. - array^ postArray = Encoding::ASCII->GetBytes( postData ); - - // Create a new WebClient instance. - WebClient^ myWebClient = gcnew WebClient; - - // postStream implicitly sets HTTP POST as the request method. - Console::WriteLine( "Uploading to {0} ...", uriString ); - Stream^ postStream = myWebClient->OpenWrite( uriString ); - - postStream->Write( postArray, 0, postArray->Length ); - - // Close the stream and release resources. - postStream->Close(); - - Console::WriteLine( "\nSuccessfully posted the data." ); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_QueryString/CPP/webclient_querystring.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_QueryString/CPP/webclient_querystring.cpp deleted file mode 100644 index 9d13d718d71ba..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_QueryString/CPP/webclient_querystring.cpp +++ /dev/null @@ -1,65 +0,0 @@ -// System::Net::WebClient::QueryString - -/*This program demonstrates the 'QueryString' property of 'WebClient' class. -It accepts a search phrase as user input and invokes the search of www.google.com for -the user-entered search-phrase, using the 'QueryString' property of WebClient. The result is -then saved into the current -filesystem folder as 'searchresult.htm'. -*/ - -#using - -using namespace System; -using namespace System::Collections::Specialized; -using namespace System::Net; - -int main() -{ - try - { -// - String^ uriString = "http://www.contoso.com/search"; - // Create a new WebClient instance. - WebClient^ myWebClient = gcnew WebClient; - // Create a new NameValueCollection instance to hold the QueryString parameters and values. - NameValueCollection^ myQueryStringCollection = gcnew NameValueCollection; - Console::Write( "Enter the word(s), separated by space character to search for in {0}: ", uriString ); - // Read user input phrase to search for at uriString. - String^ searchPhrase = Console::ReadLine(); - if ( searchPhrase->Length > 1 ) - { - // Assign the user-defined search phrase. - myQueryStringCollection->Add( "q", searchPhrase ); - } - else - { - // If error, default to search for 'Microsoft'. - myQueryStringCollection->Add( "q", "Microsoft" ); - } - // Assign auxilliary parameters required for the search. - Console::WriteLine( "Searching {0} .......", uriString ); - // Attach QueryString to the WebClient. - myWebClient->QueryString = myQueryStringCollection; - // Download the search results Web page into 'searchresult.htm' for inspection. - myWebClient->DownloadFile( uriString, "searchresult.htm" ); - Console::WriteLine( "\nDownload of {0} was successful. Please see 'searchresult.htm' for results.", uriString ); -// - // Get the collection of Headers sent back in response to the WebClient request. - WebHeaderCollection^ myWebHeaderCollection = myWebClient->ResponseHeaders; - Console::WriteLine( "\nDisplaying Response Headers\n" ); - // Loop through the ResponseHeader collection and display the Headers as name/value pairs. - for ( int i = 0; i < myWebHeaderCollection->Count; i++ ) - { - // Display the Headers as 'Name = Value' pairs. - Console::WriteLine( "\t {0} = {1}", myWebHeaderCollection->GetKey( i ), myWebHeaderCollection->Get( i ) ); - } - } - catch ( WebException^ e ) - { - Console::WriteLine( "The following WebException was raised: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following Exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UpLoadData2/CPP/webclient_uploaddata2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UpLoadData2/CPP/webclient_uploaddata2.cpp deleted file mode 100644 index 8d8aa1b36a2a0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UpLoadData2/CPP/webclient_uploaddata2.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// System::Net::WebClient::UploadData(String, Byte->Item[]) - -/* -This program demonstrates the 'UploadData(String, Byte->Item[])' method of S"WebClient" class. -It accepts an Uri and some String* content to be posted to the Uri. This String* is posted to the Uri -provided as input using the 'UploadData(String, Byte->Item[])' method. The custom made site responds back -with whatever was posted to it. The contents of the response are displayed to the console. - -Note : The results described were obtained using a custom made site. This behaviour may not be the -same with all other sites. Also certain sites would not accept "Post" method thereby leading to -an error.It is advisable to construct a site using files accompanying this and provide -url name of this site to the program. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// - Console::Write( "\nPlease enter the URI to post data to: " ); - String^ uriString = Console::ReadLine(); - // Create a new WebClient instance. - WebClient^ myWebClient = gcnew WebClient; - Console::WriteLine( "\nPlease enter the data to be posted to the URI {0}:", uriString ); - String^ postData = Console::ReadLine(); - // Apply ASCII Encoding to obtain the String* as a Byte array. - array^ postArray = Encoding::ASCII->GetBytes( postData ); - Console::WriteLine( "Uploading to {0} ...", uriString ); - myWebClient->Headers->Add( "Content-Type", "application/x-www-form-urlencoded" ); - - //UploadData implicitly sets HTTP POST as the request method. - array^responseArray = myWebClient->UploadData( uriString, postArray ); - - // Decode and display the response. - Console::WriteLine( "\nResponse received was: {0}", Encoding::ASCII->GetString( responseArray ) ); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UpLoadData_Headers/CPP/webclient_uploaddata_headers.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UpLoadData_Headers/CPP/webclient_uploaddata_headers.cpp deleted file mode 100644 index af0b76ef722a0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UpLoadData_Headers/CPP/webclient_uploaddata_headers.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// System::Net::WebClient::UplodaData(String, String, Byte->Item[]); System::Net::WebClient::Headers - -/* -This program demonstrates the 'UploadData(String, String, Byte->Item[])' method and 'Headers' property of -'WebClient' class.It accepts an Uri and some String* content to be posted to the Uri. This String* -is posted to the Uri provided as input using the 'UploadData(String, String, Byte->Item[])' method. -The 'Headers' property is used to set the S"Content-Type" header to S"application/x-www-form-urlencoded". -The custom made site responds back with whatever was posted to it. -The contents of the response are displayed to the console. - -Note : The results described were obtained using a custom made site. This behaviour may not be the -same with all other sites. Also certain sites would not support the S"Post" method thereby leading to -an error.It is advisable to construct a site using files accompanying this and provide -url name of this site to the program. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// -// - String^ uriString; - Console::Write( "\nPlease enter the URI to post data to {for example, http://www.contoso.com}: " ); - uriString = Console::ReadLine(); - - // Create a new WebClient instance. - WebClient^ myWebClient = gcnew WebClient; - Console::WriteLine( "\nPlease enter the data to be posted to the URI {0}:", uriString ); - String^ postData = Console::ReadLine(); - myWebClient->Headers->Add( "Content-Type", "application/x-www-form-urlencoded" ); - - // Displays the headers in the request - Console::Write( "Resulting Request Headers: "); - Console::WriteLine(myWebClient->Headers); - - // Apply ASCII Encoding to obtain the String^ as a Byte array. - array^ byteArray = Encoding::ASCII->GetBytes( postData ); - Console::WriteLine( "Uploading to {0} ...", uriString ); - // Upload the input String* using the HTTP 1.0 POST method. - array^responseArray = myWebClient->UploadData( uriString, "POST", byteArray ); - // Decode and display the response. - Console::WriteLine( "\nResponse received was {0}", - Encoding::ASCII->GetString( responseArray ) ); -// -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UpLoadFile/CPP/webclient_uploadfile.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UpLoadFile/CPP/webclient_uploadfile.cpp deleted file mode 100644 index bf0fee1422ef6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UpLoadFile/CPP/webclient_uploadfile.cpp +++ /dev/null @@ -1,56 +0,0 @@ - - -// System::Net::WebClient::UploadFile(String, String) -/* -This program demonstrates the 'UploadFile(String, String)' method of S"WebClient" class. -It accepts an Uri and the path of a file to be uploaded to the Uri. This file is uploaded to the Uri -provided as input using the 'UploadFile(String, String)' method. The custom made site responds back -with whatever was posted to it. Thus the contents of the file are displayed to the console. - -Note : The results described were obtained using a custom made site. This behaviour may not be the -same with all other sites. Also certain sites would not accept S"Post" method thereby leading to -an error.It is advisable to construct a site using files accompanying this and provide -url name of this site to the program. -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; - -public class WebClient_UploadFile -{ -public: - int main() - { - try - { - // - Console::Write( "\nPlease enter the URI to post data to : " ); - String^ uriString = Console::ReadLine(); - - // Create a new WebClient instance. - WebClient^ myWebClient = gcnew WebClient; - Console::WriteLine( "\nPlease enter the fully qualified path of the file to be uploaded to the URI" ); - String^ fileName = Console::ReadLine(); - Console::WriteLine( "Uploading {0} to {1} ...", fileName, uriString ); - - // Upload the file to the URI. - // The 'UploadFile(uriString, fileName)' method implicitly uses HTTP POST method. - array^responseArray = myWebClient->UploadFile( uriString, fileName ); - - // Decode and display the response. - Console::WriteLine( "\nResponse Received::The contents of the file uploaded are: \n {0}", - System::Text::Encoding::ASCII->GetString( responseArray ) ); - // - } - catch ( WebException^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UpLoadFile2/CPP/webclient_uploadfile2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UpLoadFile2/CPP/webclient_uploadfile2.cpp deleted file mode 100644 index 817d269e4d658..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UpLoadFile2/CPP/webclient_uploadfile2.cpp +++ /dev/null @@ -1,55 +0,0 @@ - - -// System::Net::WebClient::UploadFile(String, String, String) -/* -This program demonstrates the 'UploadFile(String, String, String)' method of S"WebClient" class. -It accepts an Uri and the path of a file to be uploaded to the Uri. This file is uploaded to the Uri -provided as input using the 'UploadFile(String, String, String)' method. The custom made site responds back -with whatever was posted to it. Thus the contents of the file are displayed to the console. - -Note : The results described were obtained using a custom made site. This behaviour may not be the -same with all other sites. Also certain sites would not accept S"Post" method thereby leading to -an error.It is advisable to construct a site using files accompanying this and provide -url name of this site to the program. -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Text; - -public class WebClient_UploadFile { - public: - int main() - { - try - { - // - Console::Write( "\nPlease enter the URL to post data to : " ); - String^ uriString = Console::ReadLine(); - - // Create a new WebClient instance. - WebClient^ myWebClient = gcnew WebClient; - Console::WriteLine - ("\nPlease enter the fully qualified path of the file to be uploaded to the URL" ); - String^ fileName = Console::ReadLine(); - Console::WriteLine( "Uploading {0} to {1} ...", fileName, uriString ); - - // Upload the file to the URL using the HTTP 1.0 POST. - array^responseArray = myWebClient->UploadFile( uriString, "POST", fileName ); - - // Decode and display the response. - Console::WriteLine( "\nResponse Received::The contents of the file uploaded are: \n {0}", - System::Text::Encoding::ASCII->GetString( responseArray )); - // - } - catch ( WebException^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UploadValues/CPP/webclient_uploadvalues.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UploadValues/CPP/webclient_uploadvalues.cpp deleted file mode 100644 index 4e12d33bf883b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UploadValues/CPP/webclient_uploadvalues.cpp +++ /dev/null @@ -1,68 +0,0 @@ -// System::Net::WebClient::UploadValues(String, NameValueCollection) - -/* -This program demonstrates the 'UploadValues(String, NameValueCollection)' method of S"WebClient" class. -It accepts an Uri::Forms a 'NameValueCollection' instance using -a set of pre-defined name-value pairs. These are posted to the Uri provided as input using the -'UploadValues(String, NameValueCollection)'method. The custom made site responds back -with whatever was posted to it. This is displayed to the console. - -Note : The results described were obtained using a custom made site. This behaviour may not be the -same with all other sites. Also certain sites would not accept S"Post" method thereby leading to -an error.It is advisable to construct a site using files accompanying this and provide -url name of this site to the program. -*/ - -#using - -using namespace System; -using namespace System::Collections::Specialized; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// - Console::Write( "\nPlease enter the URI to post data to: " ); - String^ uriString = Console::ReadLine(); - - // Create a new WebClient instance. - WebClient^ myWebClient = gcnew WebClient; - - // Create a new NameValueCollection instance to hold some custom parameters to be posted to the URL. - NameValueCollection^ myNameValueCollection = gcnew NameValueCollection; - - Console::WriteLine( "Please enter the following parameters to be posted to the URL" ); - Console::Write( "Name: " ); - String^ name = Console::ReadLine(); - - Console::Write( "Age: " ); - String^ age = Console::ReadLine(); - - Console::Write( "Address: " ); - String^ address = Console::ReadLine(); - - // Add necessary parameter/value pairs to the name/value container. - myNameValueCollection->Add( "Name", name ); - myNameValueCollection->Add( "Address", address ); - myNameValueCollection->Add( "Age", age ); - - Console::WriteLine( "\nUploading to {0} ...", uriString ); - // 'The Upload(String, NameValueCollection)' implicitly method sets HTTP POST as the request method. - array^ responseArray = myWebClient->UploadValues( uriString, myNameValueCollection ); - - // Decode and display the response. - Console::WriteLine( "\nResponse received was :\n {0}", Encoding::ASCII->GetString( responseArray ) ); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UploadValues2/CPP/webclient_uploadvalues2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UploadValues2/CPP/webclient_uploadvalues2.cpp deleted file mode 100644 index 716679a190930..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebClient_UploadValues2/CPP/webclient_uploadvalues2.cpp +++ /dev/null @@ -1,68 +0,0 @@ -// System::Net::WebClient::UploadValues(String, String, NameValueCollection) - -/* -This program demonstrates the 'UploadValues(String, String, NameValueCollection)' method of S"WebClient" class. -It accepts an Uri::Forms a 'NameValueCollection' instance using -a set of pre-defined name-value pairs. These are posted to the Uri provided as input using the -'UploadValues(String, String, NameValueCollection)'method. The custom made site responds back -with whatever was posted to it. This is displayed to the console. - -Note : The results described were obtained using a custom made site. This behaviour may not be the -same with all other sites. Also certain sites would not accept S"Post" method thereby leading to -an error.It is advisable to construct a site using files accompanying this and provide -url name of this site to the program. -*/ - -#using - -using namespace System; -using namespace System::Collections::Specialized; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// - Console::Write( "\nPlease enter the URL to post data to: " ); - String^ uriString = Console::ReadLine(); - - // Create a new WebClient instance. - WebClient^ myWebClient = gcnew WebClient; - - // Create a new NameValueCollection instance to hold some custom parameters to be posted to the URL. - NameValueCollection^ myNameValueCollection = gcnew NameValueCollection; - - Console::WriteLine( "Please enter the following parameters to be posted to the URI" ); - Console::Write( "Name: " ); - String^ name = Console::ReadLine(); - - Console::Write( "Age: " ); - String^ age = Console::ReadLine(); - - Console::Write( "Address: " ); - String^ address = Console::ReadLine(); - - // Add necessary parameter/value pairs to the name/value container. - myNameValueCollection->Add( "Name", name ); - myNameValueCollection->Add( "Address", address ); - myNameValueCollection->Add( "Age", age ); - Console::WriteLine( "\nUploading to {0} ...", uriString ); - - // Upload the NameValueCollection. - array^ responseArray = myWebClient->UploadValues( uriString, "POST", myNameValueCollection ); - - // Decode and display the response. - Console::WriteLine( "\nResponse received was :\n {0}", Encoding::ASCII->GetString( responseArray ) ); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "The following exception was raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor1/CPP/webexception_constructor1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor1/CPP/webexception_constructor1.cpp deleted file mode 100644 index 431b3d41063be..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor1/CPP/webexception_constructor1.cpp +++ /dev/null @@ -1,63 +0,0 @@ -// System::Net::WebException::WebException(); - -/* -This program demonstrates the 'WebException()' constructor of 'WebException' class. -It creates a 'HttpConnect' Object* and calls the 'ConnectHttpServer' method with an invalid 'URL'. -When the method tries to establish a socket connection to that address an exception is thrown.In -the 'catch' block a new 'WebException' Object* is created and thrown to the caller.That exception -is caught in the calling method and the error message is dispalyed to the console. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; - -public ref class HttpConnect -{ -public: - void ConnectHttpServer( String^ connectUri ) - { -// - try - { - // A 'Socket' object has been created. - Socket^ httpSocket = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp ); - - - // The IPaddress of the unknown uri is resolved using the 'Dns::Resolve' method. - - IPHostEntry^ hostEntry = Dns::Resolve( "http://www.contoso.com" ); - - IPAddress^ serverAddress = hostEntry->AddressList[ 0 ]; - IPEndPoint^ endPoint = gcnew IPEndPoint( serverAddress, 80 ); - httpSocket->Connect( endPoint ); - Console::WriteLine( "Connection created successfully" ); - httpSocket->Close(); - } - catch ( SocketException^ e ) - { - String^ exp = e->Message; - // Throw the WebException with no parameters. - throw gcnew WebException; - } -// - } -}; - -int main() -{ - try - { - HttpConnect^ myHttpConnect = gcnew HttpConnect; - // If the Uri is valid then 'ConnectHttpServer' method will connect to the server. - myHttpConnect->ConnectHttpServer( "www.contoso.com" ); - } - catch ( WebException^ e ) - { - Console::WriteLine( "The Exception is: {0}", e->Message ); - Console::WriteLine( "The Exception is: Unable to Contact the server" ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor2/CPP/webexception_constructor2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor2/CPP/webexception_constructor2.cpp deleted file mode 100644 index 30f09111b53dc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor2/CPP/webexception_constructor2.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// System::Net::WebException::WebException(String); - -/* -This program demonstrates the 'WebException(String)' constructor of 'WebException' class. -It creates a 'HttpConnect' Object* and calls the 'ConnectHttpServer' method with invalid 'URL'. -When the method tries to establish a socket connection to that address an exception is thrown.In -the 'catch' block a new 'WebException' Object* is created with a message(specific to the present -situatuation) and thrown to the caller.That exception is caught in the calling method and the -error message is dispalyed on the console. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; - -public ref class HttpConnect -{ -public: - void ConnectHttpServer( String^ connectUri ) - { -// - try - { - // A 'Socket' object has been created. - Socket^ httpSocket = gcnew Socket( AddressFamily::InterNetwork, SocketType::Stream, ProtocolType::Tcp ); - - // The IPaddress of the unknown uri is resolved using the 'Dns::Resolve' method. - IPHostEntry^ hostEntry = Dns::Resolve( connectUri ); - - IPAddress^ serverAddress = hostEntry->AddressList[ 0 ]; - IPEndPoint^ endPoint = gcnew IPEndPoint( serverAddress, 80 ); - httpSocket->Connect( endPoint ); - Console::WriteLine( "Connection created successfully" ); - httpSocket->Close(); - } - catch ( SocketException^ e ) - { - Console::WriteLine( "\nException thrown.\nThe Original Message is: {0}", e->Message ); - - // Throw the 'WebException' object with a message string specific to the situation. - throw gcnew WebException( "Unable to locate the Server with 'www.contoso.com' Uri." ); - } -// - } -}; - -int main() -{ - try - { - HttpConnect^ myHttpConnect = gcnew HttpConnect; - // If the Uri is valid then 'ConnectHttpServer' method will connect to the server. - myHttpConnect->ConnectHttpServer( "www.contoso.com" ); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nThe New Message is: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor3/CPP/webexception_constructor3.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor3/CPP/webexception_constructor3.cpp deleted file mode 100644 index 2514b0a0bda70..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor3/CPP/webexception_constructor3.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// System::Net::WebException::WebException(String, WebExceptionStatus); - -/* -This program demonstrates the 'WebException(String, WebExceptionStatus)' constructor of 'WebException' class. -It creates a 'HttpConnect' Object* and calls the 'ConnectHttpServer' method with invalid 'URL'. -When the method tries to establish a socket connection to that address an exception is thrown and -in the 'catch' block a new 'WebException' Object* is created and thrown.That exception is caught -in the calling method and the error message is displayed on the console. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; - -public ref class HttpConnect -{ -public: - void ConnectHttpServer( String^ connectUri ) - { -// - try - { - // A 'Socket' object has been created. - Socket^ httpSocket = gcnew Socket( AddressFamily::InterNetwork, SocketType::Stream, ProtocolType::Tcp ); - - // The IPaddress of the unknown uri is resolved using the 'Dns::Resolve' method. - - IPHostEntry^ hostEntry = Dns::Resolve( "http://www.contoso.com" ); - - IPAddress^ serverAddress = hostEntry->AddressList[ 0 ]; - IPEndPoint^ endPoint = gcnew IPEndPoint( serverAddress, 80 ); - httpSocket->Connect( endPoint ); - Console::WriteLine( "Connection created successfully" ); - httpSocket->Close(); - } - catch ( SocketException^ e ) - { - Console::WriteLine( "\nException thrown.\nThe Original Message is: {0}", e->Message ); - // Throw the 'WebException' object with a message string and message status specific to the situation. - throw gcnew WebException( "Unable to locate the Server with 'www.contoso.com' Uri.", WebExceptionStatus::NameResolutionFailure ); - } -// - } -}; - -int main() -{ - try - { - HttpConnect^ myHttpConnect = gcnew HttpConnect; - // If the Uri is valid then 'ConnectHttpServer' method will connect to the server. - myHttpConnect->ConnectHttpServer( "www.contoso.com" ); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nThe New Message is: {0}", e->Message ); - Console::WriteLine( "\nThe Status is : {0}", e->Status ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor4/CPP/webexception_constructor4.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor4/CPP/webexception_constructor4.cpp deleted file mode 100644 index 5bd7d8b032185..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor4/CPP/webexception_constructor4.cpp +++ /dev/null @@ -1,64 +0,0 @@ -// System::Net::WebException::WebException(String, InnetException); - -/* -This program demonstrates the 'WebException(String, InnerException)' constructor of 'WebException' class. -It creates a 'HttpConnect' Object* and calls the 'ConnectHttpServer' method with invalid 'URL'. -When the method tries to establish a socket connection to that address an exception is thrown and -in the 'catch' block a new 'WebException' Object* is created and thrown.That exception is caught -in the calling method and the error message is displayed on the console. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; - -public ref class HttpConnect -{ -public: - void ConnectHttpServer( String^ connectUri ) - { -// - try - { - // A 'Socket' object has been created. - Socket^ httpSocket = gcnew Socket( AddressFamily::InterNetwork, SocketType::Stream, ProtocolType::Tcp ); - - // The IPaddress of the unknown uri is resolved using the 'Dns::Resolve' method. - - IPHostEntry^ hostEntry = Dns::Resolve( connectUri ); - - IPAddress^ serverAddress = hostEntry->AddressList[ 0 ]; - IPEndPoint^ endPoint = gcnew IPEndPoint( serverAddress, 80 ); - httpSocket->Connect( endPoint ); - Console::WriteLine( "Connection created successfully" ); - httpSocket->Close(); - } - catch ( SocketException^ e ) - { - Console::WriteLine( "\nException thrown.\nThe Original Message is: {0}", e->Message ); - // Throw the 'WebException' object with a message string specific to the situation; - // and the 'InnerException' that actually led to this exception. - throw gcnew WebException( "Unable to locate the Server with 'www.contoso.com' Uri.", e ); - } -// - } -}; - -int main() -{ - try - { - HttpConnect^ myHttpConnect = gcnew HttpConnect; - - // If the Uri is valid then 'ConnectHttpServer' method will connect to the server. - myHttpConnect->ConnectHttpServer( "www.constoso.com" ); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nThe New Message is: {0}", e->Message ); - Console::WriteLine( "\nThe Inner Exception is : {0}", e->InnerException ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor5/CPP/webexception_constructor5.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor5/CPP/webexception_constructor5.cpp deleted file mode 100644 index a8b0b156c3d28..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Constructor5/CPP/webexception_constructor5.cpp +++ /dev/null @@ -1,117 +0,0 @@ -// System::Net::WebException::WebException(String, InnerException, Status, WebResponse); - -/* -This program demonstrates the 'WebException(String, InnerException, Status, WebResponse)' constructor of -'WebException' class. -A 'HttpConnect' class is defined which extends the 'WebResponse' class. Then a 'HttpConnect' Object* is -created by taking an uri(intranet) from the user as input and 'ConnectHttpServer' method is called to connect -the InternetServer at the specified 'URL'. It asks for a file named 'nhjj.htm' , gets the response from the -InternetServer and checks the status of the response. If status is '404 File not Found' a 'WebResponse' Object* -is created and then a new 'WebException' Object* is created and thrown.That exception is caught in the calling -method and the error message along with the response obtained from the InternetServer is displayed to the -console. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Net::Sockets; -using namespace System::Text; -using namespace System::IO; - -public ref class HttpConnect: public WebResponse -{ -public: - Stream^ getStream; - - // Default constructor. - HttpConnect() - { - getStream = nullptr; - } - - // Constructor accepting stream as a parameter. - HttpConnect( Stream^ getStream ) - { - this->getStream = getStream; - } - - // Override 'GetResponseStream' method of the 'WebResponse' class. - virtual Stream^ GetResponseStream() override - { - return getStream; - } - - void ConnectHttpServer( String^ connectUri ) - { -// - // Send the data. - Encoding^ ASCII = Encoding::ASCII; - String^ requestPage = String::Concat( "GET /nhjj.htm HTTP/1.1\r\nHost: ", connectUri, "\r\nConnection: Close\r\n\r\n" ); - array^ byteGet = ASCII->GetBytes( requestPage ); - array^ recvBytes = gcnew array(256); - - // Create an 'IPEndPoint' object. - - IPHostEntry^ hostEntry = Dns::Resolve( connectUri ); - IPAddress^ serverAddress = hostEntry->AddressList[ 0 ]; - IPEndPoint^ endPoint = gcnew IPEndPoint( serverAddress,80 ); - - // Create a 'Socket' object for sending data. - Socket^ connectSocket = gcnew Socket( AddressFamily::InterNetwork, SocketType::Stream, ProtocolType::Tcp ); - - // Connect to host using 'IPEndPoint' object. - - connectSocket->Connect( endPoint ); - - // Sent the 'requestPage' text to the host. - connectSocket->Send( byteGet, byteGet->Length, (SocketFlags)(0) ); - - // Receive the information sent by the server. - Int32 bytesReceived = connectSocket->Receive( recvBytes, recvBytes->Length, (SocketFlags)(0) ); - String^ headerString = ASCII->GetString( recvBytes, 0, bytesReceived ); - - // Check whether 'status 404' is there or not in the information sent by server. - if ( headerString->IndexOf( "404" ) != -1 ) - { - bytesReceived = connectSocket->Receive( recvBytes, recvBytes->Length, (SocketFlags)(0) ); - MemoryStream^ memoryStream = gcnew MemoryStream( recvBytes ); - getStream = (System::IO::Stream^)(memoryStream); - - // Create a 'WebResponse' object - WebResponse^ myWebResponse = (WebResponse^)(gcnew HttpConnect( getStream )); - Exception^ myException = gcnew Exception( "File Not found" ); - - // Throw the 'WebException' object with a message string, message status, InnerException and WebResponse - throw gcnew WebException( "The Requested page is not found.",myException,WebExceptionStatus::ProtocolError,myWebResponse ); - } - - connectSocket->Close(); -// - } -}; - -int main() -{ - try - { - Console::WriteLine( "Please give any Intranet Site Address (eg:manjeera.wipro.com)" ); - String^ uriConnect = Console::ReadLine(); - HttpConnect^ myHttpConnect = gcnew HttpConnect; - myHttpConnect->ConnectHttpServer( uriConnect ); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nThe WebException is : {0}", e->Message ); - Console::WriteLine( "\nThe status of the WebException is : {0}", e->Status ); - Console::WriteLine( "\nThe Inner Exception is :' {0}'", e->InnerException ); - Console::WriteLine( "\nThe Web Response is:\n" ); - StreamReader^ readStream = gcnew StreamReader( e->Response->GetResponseStream() ); - Console::WriteLine( readStream->ReadToEnd() ); - } - catch ( Exception^ e ) - { - Console::WriteLine( e ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Status_Response/CPP/webexception_status_response.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Status_Response/CPP/webexception_status_response.cpp deleted file mode 100644 index a74ca8330a13f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebException_Status_Response/CPP/webexception_status_response.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* This program demonstrates the S"Status" and the S"Response" property of S"WebException" class. -It tries to access an invalid site and displays the status code and status description of the -resultant exception that is raised. -*/ - -#using - -using namespace System; -using namespace System::Net; - -int main() -{ -// -// - try - { - // Create a web request for an unknown server (this raises the WebException). - HttpWebRequest^ myHttpWebRequest = (HttpWebRequest^)(WebRequest::Create( "http://unknown.unknown.com" )); - - // Get the associated response for the above request. - HttpWebResponse^ myHttpWebResponse = (HttpWebResponse^)(myHttpWebRequest->GetResponse()); - myHttpWebResponse->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "This program is expected to throw WebException on successful run." + - "\n\nException Message : " + e->Message ); - if ( e->Status == WebExceptionStatus::ProtocolError ) - { - Console::WriteLine( "Status Code: {0}", ( (HttpWebResponse^)(e->Response) )->StatusCode ); - Console::WriteLine( "Status Description: {0}", ( (HttpWebResponse^)(e->Response) )->StatusDescription ); - } -// - } - catch ( Exception^ e ) - { - Console::WriteLine( e->Message ); - } -// -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_Add/CPP/webheadercollection_add.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_Add/CPP/webheadercollection_add.cpp deleted file mode 100644 index 69020651232b7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_Add/CPP/webheadercollection_add.cpp +++ /dev/null @@ -1,67 +0,0 @@ - - -/* This program demonstrates the S"Add" method of S"WebHeaderCollection" class. -It uses the S"Add" method of S"WebHeaderCollection" class to add the 'Accept-Language' header in the request. -The 'Accept-Language' header is used in a request to specify the language preferences of the user. The server -can use the language preferences specified to generate output for that particular language. -*/ -#using - -using namespace System; -using namespace System::Net; -void printHeaders( WebHeaderCollection^ headers ) -{ - Console::WriteLine( "Printing Headers : " ); - if ( headers->Count == 0 ) - Console::WriteLine( "\tNo Headers to Display" ); - - for ( int i = 0; i < headers->Count; i++ ) - Console::WriteLine( "\t {0} : {1}", headers->AllKeys[ i ], headers[ i ] ); -} - -int main() -{ - // - try - { - //Create a web request for S"www.msn.com". - HttpWebRequest^ myHttpWebRequest = dynamic_cast(WebRequest::Create( "http://www.msn.com" )); - - //Get the headers associated with the request. - WebHeaderCollection^ myWebHeaderCollection = myHttpWebRequest->Headers; - Console::WriteLine( "Configuring Webrequest to accept Danish and English language using 'Add' method" ); - - //Add the Accept-Language header (for Danish) in the request. - myWebHeaderCollection->Add( "Accept-Language:da" ); - - //Include English in the Accept-Langauge header. - myWebHeaderCollection->Add( "Accept-Language:en;q=0.8" ); - - //Get the associated response for the above request. - HttpWebResponse^ myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - - //Print the headers for the request. - printHeaders( myWebHeaderCollection ); - myHttpWebResponse->Close(); - } - //Catch exception if trying to add a restricted header. - catch ( ArgumentException^ e ) - { - Console::WriteLine( e->Message ); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException is thrown. \nMessage is : {0}", e->Message ); - if ( e->Status == WebExceptionStatus::ProtocolError ) - { - Console::WriteLine( "Status Code : {0}", (dynamic_cast(e->Response))->StatusCode ); - Console::WriteLine( "Status Description : {0}", (dynamic_cast(e->Response))->StatusDescription ); - Console::WriteLine( "Server : {0}", (dynamic_cast(e->Response))->Server ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception is thrown. Message is : {0}", e->Message ); - } - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_GetValues_1/CPP/webheadercollection_getvalues_1.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_GetValues_1/CPP/webheadercollection_getvalues_1.cpp deleted file mode 100644 index 096efbded87f8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_GetValues_1/CPP/webheadercollection_getvalues_1.cpp +++ /dev/null @@ -1,58 +0,0 @@ - - -/* -This program demonstrate's the 'GetValues(String*)' method of 'WebHeaderCollection' class. - -The program creates a 'HttpWebRequest' Object* from the specified URL and gets the response from it. The -headers of the response is assigned to a 'WeHeaderCollection' Object* and all the values associated with -the corresponding headers in the response are displayed to the console. -*/ -#using - -using namespace System; -using namespace System::Net; -int main() -{ - try - { - // - // Create a web request for S"www.msn.com". - HttpWebRequest^ myHttpWebRequest = dynamic_cast(WebRequest::Create( "http://www.msn.com" )); - myHttpWebRequest->Timeout = 1000; - - // Get the associated response for the above request. - HttpWebResponse^ myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - - // Get the headers associated with the response. - WebHeaderCollection^ myWebHeaderCollection = myHttpWebResponse->Headers; - for ( int i = 0; i < myWebHeaderCollection->Count; i++ ) - { - String^ header = myWebHeaderCollection->GetKey( i ); - array^values = myWebHeaderCollection->GetValues( header ); - if ( values->Length > 0 ) - { - Console::WriteLine( "The values of {0} header are : ", header ); - for ( int j = 0; j < values->Length; j++ ) - Console::WriteLine( "\t {0}", values[ j ] ); - } - else - Console::WriteLine( "There is no value associated with the header" ); - } - myHttpWebResponse->Close(); - // - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException raised : {0}", e->Message ); - if ( e->Status == WebExceptionStatus::ProtocolError ) - { - Console::WriteLine( "Status Code : {0}", (dynamic_cast(e->Response))->StatusCode ); - Console::WriteLine( "Status Description : {0}", (dynamic_cast(e->Response))->StatusDescription ); - Console::WriteLine( "Server : {0}", (dynamic_cast(e->Response))->Server ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "\n Exception raised : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_IsRestricted/CPP/webheadercollection_isrestricted.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_IsRestricted/CPP/webheadercollection_isrestricted.cpp deleted file mode 100644 index 842da2d6a2171..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_IsRestricted/CPP/webheadercollection_isrestricted.cpp +++ /dev/null @@ -1,49 +0,0 @@ - - -/*This program demonstrates the S"IsRestricted" method of S"WebHeaderCollection". -It checks if the first header returned in the response is a restricted header or not. -*/ -#using - -using namespace System; -using namespace System::Net; -int main() -{ - // - try - { - // Create a web request for S"www.msn.com". - HttpWebRequest^ myHttpWebRequest = dynamic_cast(WebRequest::Create( "http://www.msn.com" )); - - // Get the associated response for the above request. - HttpWebResponse^ myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - - // Get the headers associated with the response. - WebHeaderCollection^ myWebHeaderCollection = myHttpWebResponse->Headers; - for ( int i = 0; i < myWebHeaderCollection->Count; i++ ) - { - // Check if the first response header is restriced. - if ( WebHeaderCollection::IsRestricted( dynamic_cast(myWebHeaderCollection->AllKeys[ i ]) ) ) - Console::WriteLine( "' {0}' is a restricted header", myWebHeaderCollection->AllKeys[ i ] ); - else - Console::WriteLine( "' {0}' is not a restricted header", myWebHeaderCollection->AllKeys[ i ] ); - } - myHttpWebResponse->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException is thrown.\nMessage is: {0}", e->Message ); - if ( e->Status == WebExceptionStatus::ProtocolError ) - { - Console::WriteLine( "Status Code : {0}", (dynamic_cast(e->Response))->StatusCode ); - Console::WriteLine( "Status Description : {0}", (dynamic_cast(e->Response))->StatusDescription ); - Console::WriteLine( "Server : {0}", (dynamic_cast(e->Response))->Server ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception is thrown. Message is : {0}", e->Message ); - } -// -} - diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_Remove/CPP/webheadercollection_remove.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_Remove/CPP/webheadercollection_remove.cpp deleted file mode 100644 index c8286d49cd483..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_Remove/CPP/webheadercollection_remove.cpp +++ /dev/null @@ -1,79 +0,0 @@ - - -/* -This program demonstrates the S"Remove" method of S"WebHeaderCollection" class. -It uses the S"Remove" method of S"WebHeaderCollection" to remove the 'Cache-Control' header from the request. -The 'Cache-Control' header is used to specify the directive that must be followed by all caching mechanisms -in the Request-Response chain. The 'no-cache' directive indicates that the caching mechanism must not resend -the cached response for a previous request with->Item[Out] validating* from the origin server (HTTP version 1.1, RFC2616, -Sec 14.9) -*/ -#using - -using namespace System; -using namespace System::Net; -void printHeaders( WebHeaderCollection^ headers ) -{ - if ( headers->Count == 0 ) - Console::WriteLine( "\tNo Headers to Display" ); - - for ( int i = 0; i < headers->Count; i++ ) - Console::WriteLine( "\t {0} : {1}", headers->AllKeys[ i ], headers[ i ] ); -} - -int main() -{ - // - try - { - // Create a web request for S"www.msn.com". - HttpWebRequest^ myHttpWebRequest = dynamic_cast(WebRequest::Create( "http://www.msn.com" )); - - // Get the headers associated with the request. - WebHeaderCollection^ myWebHeaderCollection = myHttpWebRequest->Headers; - - // Set the Cache-Control header. - myWebHeaderCollection->Set( "Cache-Control", "no-cache" ); - - // Get the associated response for the above request. - HttpWebResponse^ myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - - // Print the headers of the request to console. - Console::WriteLine( "Print request headers after adding Cache-Control for first request:" ); - printHeaders( myHttpWebRequest->Headers ); - - // Remove the Cache-Control header for the new request. - myWebHeaderCollection->Remove( "Cache-Control" ); - - // Get the response for the new request. - myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - - // Print the headers of the new request with->Item[Out] the* Cache-Control header. - Console::WriteLine( "Print request headers after removing Cache-Control for the new request:" ); - printHeaders( myHttpWebRequest->Headers ); - myHttpWebResponse->Close(); - } - // Catch exception if trying to remove a restricted header. - catch ( ArgumentException^ e ) - { - Console::WriteLine( "Error : Trying to remove a restricted header" ); - Console::WriteLine( "ArgumentException is thrown. Message is : {0}", e->Message ); - } - catch ( WebException^ e ) - { - Console::WriteLine( "WebException is thrown. Message is : {0}", e->Message ); - if ( e->Status == WebExceptionStatus::ProtocolError ) - { - Console::WriteLine( "Status Code : {0}", (dynamic_cast(e->Response))->StatusCode ); - Console::WriteLine( "Status Description : {0}", (dynamic_cast(e->Response))->StatusDescription ); - Console::WriteLine( "Server : {0}", (dynamic_cast(e->Response))->Server ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception is thrown. Message is : {0}", e->Message ); - } - - - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_Set/CPP/webheadercollection_set.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_Set/CPP/webheadercollection_set.cpp deleted file mode 100644 index 08a56e07a73cc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebHeaderCollection_Set/CPP/webheadercollection_set.cpp +++ /dev/null @@ -1,65 +0,0 @@ - - -/* This program demonstrates the S"Set" method of S"WebHeaderCollection" class. -It sets the value of the 'Cache-Control' header in the request to S"no-cache". The 'Cache-Control' header -is used to specify the directive that must be followed by all caching mechanisms in the Request-Response chain. -The 'no-cache' directive indicates that the caching mechanism must not resend the cached response for a -previous request with->Item[Out] validating* from the origin server (HTTP version 1.1, RFC2616, Sec 14.9). -*/ -#using - -using namespace System; -using namespace System::Net; -void PrintHeaders( WebHeaderCollection^ headers ) -{ - Console::WriteLine( "Printing Headers : " ); - if ( headers->Count == 0 ) - Console::WriteLine( "\tNo Headers to Display" ); - - for ( int i = 0; i < headers->Count; i++ ) - Console::WriteLine( "\t {0} : {1}", headers->AllKeys[ i ], headers[ i ] ); -} - -int main() -{ - // - try - { - // Create a web request for S"www.msn.com". - HttpWebRequest^ myHttpWebRequest = dynamic_cast(WebRequest::Create( "http://www.msn.com" )); - - // Get the headers associated with the request. - WebHeaderCollection^ myWebHeaderCollection = myHttpWebRequest->Headers; - - // Set the Cache-Control header in the request. - myWebHeaderCollection->Set( "Cache-Control", "no-cache" ); - - // Get the associated response for the above request. - HttpWebResponse^ myHttpWebResponse = dynamic_cast(myHttpWebRequest->GetResponse()); - Console::WriteLine( "Headers after 'Set' method is used on Cache-Control :" ); - - // Print the headers for the request. - PrintHeaders( myWebHeaderCollection ); - myHttpWebResponse->Close(); - } - // Catch exception if trying to set a restricted header. - catch ( ArgumentException^ e ) - { - Console::WriteLine( "ArgumentException is thrown. Message is : {0}", e->Message ); - } - catch ( WebException^ e ) - { - Console::WriteLine( "WebException is thrown. Message is : {0}", e->Message ); - if ( e->Status == WebExceptionStatus::ProtocolError ) - { - Console::WriteLine( "Status Code : {0}", (dynamic_cast(e->Response))->StatusCode ); - Console::WriteLine( "Status Description : {0}", (dynamic_cast(e->Response))->StatusDescription ); - Console::WriteLine( "Server : {0}", (dynamic_cast(e->Response))->Server ); - } - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception is thrown. Message is : {0}", e->Message ); - } - // -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_Accept/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_Accept/CPP/source.cpp deleted file mode 100644 index f4e56ffd6bfad..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_Accept/CPP/source.cpp +++ /dev/null @@ -1,52 +0,0 @@ -// System::Net::WebPermissionAttribute::Connect;System::Net::WebPermissionAttribute::Accept; - -/* -* Demonstrate how to use the WebPermissionAttribute to specify the Accept property. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::IO; - -public ref class WebPermissionAttribute_AcceptConnect -{ -// -public: - // Deny access to a specific resource by setting the Accept property. - [method:WebPermission(SecurityAction::Deny,Accept="http://www.contoso.com/Private.htm")] - - static void CheckAcceptPermission( String^ uriToCheck ) - { - WebPermission^ permissionToCheck = gcnew WebPermission; - permissionToCheck->AddPermission( NetworkAccess::Accept, uriToCheck ); - permissionToCheck->Demand(); - } - - static void demoDenySite() - { - // Pass the security check when accessing allowed resources. - CheckAcceptPermission( "http://www.contoso.com/" ); - Console::WriteLine( "Public page has passed Accept permission check" ); - - try - { - // Throw a SecurityException when trying to access not allowed resources. - CheckAcceptPermission( "http://www.contoso.com/Private.htm" ); - Console::WriteLine( "This line will not be printed" ); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "Exception trying to access private resource: {0}", e->Message ); - } - } -// -}; - -int main() -{ - WebPermissionAttribute_AcceptConnect::demoDenySite(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_AcceptConnect/CPP/webpermissionattribute_acceptconnect.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_AcceptConnect/CPP/webpermissionattribute_acceptconnect.cpp deleted file mode 100644 index 05d097162a976..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_AcceptConnect/CPP/webpermissionattribute_acceptconnect.cpp +++ /dev/null @@ -1,46 +0,0 @@ -// System::Net::WebPermissionAttribute::Connect;System::Net::WebPermissionAttribute::Accept; - -// Demonstrate how to use the WebPermissionAttribute to specify an allowable ConnectPattern. - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::IO; - -public ref class WebPermissionAttribute_AcceptConnect -{ -// -// -public: - // Deny access to a specific resource by setting the ConnectPattern property. - [method:WebPermission(SecurityAction::Deny,ConnectPattern="http://www.contoso.com/")] - - void Connect() - { - // Create a Connection. - HttpWebRequest^ myWebRequest = (HttpWebRequest^)(WebRequest::Create( "http://www.contoso.com" )); - Console::WriteLine( "This line should never be printed" ); - } -// -// -}; - -int main() -{ - try - { - WebPermissionAttribute_AcceptConnect^ myWebAttrib = gcnew WebPermissionAttribute_AcceptConnect; - myWebAttrib->Connect(); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "Security Exception raised: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_AcceptPattern/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_AcceptPattern/CPP/source.cpp deleted file mode 100644 index fd594b719b182..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_AcceptPattern/CPP/source.cpp +++ /dev/null @@ -1,54 +0,0 @@ -// System::Net::WebPermissionAttribute::Connect;System::Net::WebPermissionAttribute::Accept; - -/* -This program demonstrates the 'Connect' and 'Accept' properties of the class 'WebPermissionAttribute'. -The program uses declarative security for calling the code in 'Connect' method. -By using the 'Accept' and 'Connect' properties of 'WebPermissionAttribute' accept and connect access -has been given to the uri www.contoso.com. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::IO; -using namespace System::Text::RegularExpressions; - -public ref class WebPermissionAttribute_AcceptConnect -{ -// -public: - [method:WebPermission(SecurityAction::Deny,AcceptPattern="http://www\\.contoso\\.com/Private/.*")] - static void CheckAcceptPermission( String^ uriToCheck ) - { - WebPermission^ permissionToCheck = gcnew WebPermission; - permissionToCheck->AddPermission( NetworkAccess::Accept, uriToCheck ); - permissionToCheck->Demand(); - } - - static void demoDenySite() - { - // Passes a security check. - CheckAcceptPermission( "http://www.contoso.com/Public/page.htm" ); - Console::WriteLine( "Public page has passed Accept permission check" ); - - try - { - // Throws a SecurityException. - CheckAcceptPermission( "http://www.contoso.com/Private/page.htm" ); - Console::WriteLine( "This line will not be printed" ); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "Expected exception: {0}", e->Message ); - } - } -// -}; - -int main() -{ - WebPermissionAttribute_AcceptConnect::demoDenySite(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_Connect/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_Connect/CPP/source.cpp deleted file mode 100644 index d369bcc8ee1b3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_Connect/CPP/source.cpp +++ /dev/null @@ -1,50 +0,0 @@ -// System::Net::WebPermissionAttribute::Connect;System::Net::WebPermissionAttribute::connect; - -// Demonstrate how to use the WebPermissionAttribute Connect property. - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::IO; - -public ref class WebPermissionAttribute_Connect -{ -// -public: - // Set the WebPermissionAttribute Connect property. - [method:WebPermission(SecurityAction::Deny,Connect="http://www.contoso.com/Private.htm")] - - static void demoDenySite() - { - //Pass the security check. - CheckConnectPermission( "http://www.contoso.com/Public.htm" ); - Console::WriteLine( "Public page has passed connect permission check" ); - - try - { - //Throw a SecurityException. - CheckConnectPermission( "http://www.contoso.com/Private.htm" ); - Console::WriteLine( "This line will not be printed" ); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "Expected exception {0}", e->Message ); - } - } - - static void CheckConnectPermission( String^ uriToCheck ) - { - WebPermission^ permissionToCheck = gcnew WebPermission; - permissionToCheck->AddPermission( NetworkAccess::Connect, uriToCheck ); - permissionToCheck->Demand(); - } -// -}; - -int main() -{ - WebPermissionAttribute_Connect::demoDenySite(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_ConnectPattern/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_ConnectPattern/CPP/source.cpp deleted file mode 100644 index 648da93ee852a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_ConnectPattern/CPP/source.cpp +++ /dev/null @@ -1,51 +0,0 @@ -// System::Net::WebPermissionAttribute::Connect;System::Net::WebPermissionAttribute::Connect; - -// Demonstrate how to use the WebPermissionAttribute ConnectPattern property. - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::IO; -using namespace System::Text::RegularExpressions; - -public ref class WebPermissionAttribute_Connect -{ -// -public: - // Set the WebPermissionAttribute ConnectPattern property. - [WebPermission(SecurityAction::Deny,ConnectPattern="http://www\\.contoso\\.com/Private/.*")] - - static void CheckConnectPermission( String^ uriToCheck ) - { - WebPermission^ permissionToCheck = gcnew WebPermission; - permissionToCheck->AddPermission( NetworkAccess::Connect, uriToCheck ); - permissionToCheck->Demand(); - } - - static void demoDenySite() - { - //Pass the security check. - CheckConnectPermission( "http://www.contoso.com/Public/page.htm" ); - Console::WriteLine( "Public page has passed Connect permission check" ); - - try - { - //Throw a SecurityException. - CheckConnectPermission( "http://www.contoso.com/Private/page.htm" ); - Console::WriteLine( "This line will not be printed" ); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "Expected exception {0}", e->Message ); - } - } -}; -// - -int main() -{ - WebPermissionAttribute_Connect::demoDenySite(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_Constructor/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_Constructor/CPP/source.cpp deleted file mode 100644 index 8606c8f6c7832..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermissionAttribute_Constructor/CPP/source.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// System::Net::WebPermissionAttribute::Connect;System::Net::WebPermissionAttribute::Accept; - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::IO; - -public ref class WebPermissionAttribute_AcceptConnect -{ -// -public: - // Set the declarative security for the URI. - [WebPermission(SecurityAction::Deny,Connect="http://www.contoso.com/")] - void Connect() - { - // Throw an exception. - try - { - HttpWebRequest^ myWebRequest = dynamic_cast(WebRequest::Create( "http://www.contoso.com/" )); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception : {0}", e ); - } -// - } -}; - -int main() -{ - try - { - WebPermissionAttribute_AcceptConnect^ myWebAttrib = gcnew WebPermissionAttribute_AcceptConnect; - myWebAttrib->Connect(); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "Security Exception raised: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_AcceptConnectList/CPP/webpermission_acceptconnectlist.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_AcceptConnectList/CPP/webpermission_acceptconnectlist.cpp deleted file mode 100644 index df7946668831b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_AcceptConnectList/CPP/webpermission_acceptconnectlist.cpp +++ /dev/null @@ -1,99 +0,0 @@ - - -// System::Net::WebPermission::ConnectList;System::Net::WebPermission::AcceptList; -/** -* This program demonstrates the use of the ConnectList and AcceptList WebPermission -* class prerties. -* It first creates a WebPermission object with Permissionstate set to None and then -* sets the Connect and Accept access right to some predefined URLs. -* The using the AcceptList and ConnectList properties it displays the URLs that have -* the Accept and Connect permission set, respectively. -*/ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Collections; - -class WebPermission_AcceptConnectList -{ -public: - void DisplayAcceptConnect() - { - // Create a 'WebPermission' object with permission state set to 'None'. - WebPermission^ myWebPermission1 = gcnew WebPermission( PermissionState::None ); - - // Allow 'Connect' access right to first set of URL's. - myWebPermission1->AddPermission( NetworkAccess::Connect, "http://www.contoso.com" ); - myWebPermission1->AddPermission( NetworkAccess::Connect, "http://www.adventure-works.com" ); - myWebPermission1->AddPermission( NetworkAccess::Connect, "http://www.alpineskihouse.com" ); - - // Allow 'Accept' access right to second set of URL's. - myWebPermission1->AddPermission( NetworkAccess::Accept, "http://www.contoso.com" ); - myWebPermission1->AddPermission( NetworkAccess::Accept, "http://www.adventure-works.com" ); - myWebPermission1->AddPermission( NetworkAccess::Accept, "http://www.alpineskihouse.com" ); - - // Check whether all callers higher in the call stack have been granted the permission or not. - myWebPermission1->Demand(); - Console::WriteLine( "The Attributes, Values and Children of the 'WebPermission' object are :\n" ); - - // Display the Attributes, Values and Children of the XML encoded instance. - PrintKeysAndValues( myWebPermission1->ToXml()->Attributes, myWebPermission1->ToXml()->Children ); - - // - // Gets all URIs with Connect permission. - IEnumerator^ myEnum = myWebPermission1->ConnectList; - Console::WriteLine( "\nThe URIs with Connect permission are :\n" ); - while ( myEnum->MoveNext() ) - { - Console::WriteLine( "\tThe URI is : {0}", myEnum->Current ); - } - // - - // - // Get all URI's with Accept permission. - IEnumerator^ myEnum1 = myWebPermission1->AcceptList; - Console::WriteLine( "\n\nThe URIs with Accept permission are :\n" ); - while ( myEnum1->MoveNext() ) - { - Console::WriteLine( "\tThe URI is : {0}", myEnum1->Current ); - } - // - } - -private: - void PrintKeysAndValues( Hashtable^ myHashtable, IEnumerable^ myList ) - { - // Get the enumerator that can iterate through Hashtabel. - IDictionaryEnumerator^ myEnumerator = myHashtable->GetEnumerator(); - Console::WriteLine( "\t-Attribute-\t-Value-" ); - while ( myEnumerator->MoveNext() ) - Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value ); - - Console::WriteLine(); - IEnumerator^ myEnumerator1 = myList->GetEnumerator(); - Console::WriteLine( "The Children are : \n" ); - while ( myEnumerator1->MoveNext() ) - Console::Write( myEnumerator1->Current ); - } - -}; - -int main() -{ - try - { - WebPermission_AcceptConnectList * myWebPermission_AcceptConnectList = new WebPermission_AcceptConnectList; - myWebPermission_AcceptConnectList->DisplayAcceptConnect(); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "SecurityException : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Constructor4/CPP/webpermission_constructor4.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Constructor4/CPP/webpermission_constructor4.cpp deleted file mode 100644 index 7ecf4f0e7a0ec..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Constructor4/CPP/webpermission_constructor4.cpp +++ /dev/null @@ -1,80 +0,0 @@ -// System::Net::WebPermission::WebPermission(NetworkAccess, Regex); - -/* -This program demonstrates the 'WebPermission(NetworkAccess, Regex)' constructor of 'WebPermission' class. -First a 'Regex' Object* is created that will accept all the urls which is having the hostfragment of -'www.contoso.com'.Then a 'WebPermission' Object* created by passing the 'NetworkAccess' permission and -'Regex' Object* as parameters. It checks the 'WebPermission' for all the url's having the host fragment -as 'www.contoso.com'. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Text::RegularExpressions; -using namespace System::Collections; - -class WebPermission_regexConstructor -{ -public: - void CreateRegexConstructor() - { -// - // Create an instance of 'Regex' that accepts all URL's containing the host - // fragment 'www.contoso.com'. - Regex^ myRegex = gcnew Regex( "http://www.contoso.com/.*" ); - - // Create a WebPermission that gives the permissions to all the hosts containing - // the same fragment. - WebPermission^ myWebPermission = gcnew WebPermission( NetworkAccess::Connect,myRegex ); - - // Checks all callers higher in the call stack have been granted the permission. - myWebPermission->Demand(); -// - - Console::WriteLine( "Attribute and Values of WebPermission are : \n" ); - // Display the Attributes, Values and Children of the XML encoded copied instance. - PrintKeysAndValues( myWebPermission->ToXml()->Attributes, myWebPermission->ToXml()->Children ); - } - -private: - void PrintKeysAndValues( Hashtable^ myHashtable, IEnumerable^ myList ) - { - // Get the enumerator that can iterate through Hashtable. - IDictionaryEnumerator^ myEnumerator = myHashtable->GetEnumerator(); - Console::WriteLine( "\t-ATTRIBUTES-\t-VALUE-" ); - while ( myEnumerator->MoveNext() ) - { - Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value ); - } - - Console::WriteLine(); - - IEnumerator^ myEnumerator1 = myList->GetEnumerator(); - Console::WriteLine( "\nThe Children are : " ); - while ( myEnumerator1->MoveNext() ) - { - Console::Write( "\t {0}", myEnumerator1->Current ); - } - } -}; - -int main() -{ - try - { - WebPermission_regexConstructor * myWebPermissionRegex = new WebPermission_regexConstructor; - myWebPermissionRegex->CreateRegexConstructor(); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "SecurityException raised: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Copy/CPP/webpermission_copy.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Copy/CPP/webpermission_copy.cpp deleted file mode 100644 index 8b3e407874a8f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Copy/CPP/webpermission_copy.cpp +++ /dev/null @@ -1,91 +0,0 @@ -// System::Net::WebPermission::WebPermission(PermissionState);System::Net::WebPermission::Copy; - -/** -* This program demonstrates the WebPermission(PermissionState) constructor and -* Copy method of the WebPermission class . -* It creates a WebPermission instance with Permissionstate set to None and -* sets the access right to one pair of URLs. -* Then it uses the Copy method to create another instance of WebPermission class -* Finally, the attributes , values and childrens of both the XML encoded instances -* are displayed. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Collections; - -public ref class CopyWebPermission -{ -public: - void CreateCopy() - { -// - // Create a WebPermission instance. - WebPermission^ myWebPermission1 = gcnew WebPermission( PermissionState::None ); - - // Allow access to the first set of URL's. - myWebPermission1->AddPermission( NetworkAccess::Connect, "http://www.microsoft.com/default.htm" ); - myWebPermission1->AddPermission( NetworkAccess::Connect, "http://www.msn.com" ); - - // Check whether all callers higher in the call stack have been granted the permissionor not. - myWebPermission1->Demand(); -// - -// - // Create another WebPermission instance that is the copy of the above WebPermission instance. - WebPermission^ myWebPermission2 = (WebPermission^)(myWebPermission1->Copy()); - - // Check whether all callers higher in the call stack have been granted the permissionor not. - myWebPermission2->Demand(); -// - - Console::WriteLine( "The Attributes and Values are :\n" ); - // Display the Attributes, Values and Children of the XML encoded instance. - PrintKeysAndValues( myWebPermission1->ToXml()->Attributes, myWebPermission1->ToXml()->Children ); - Console::WriteLine( "\nCopied Instance Attributes and Values are:\n" ); - - // Display the Attributes, Values and Children of the XML encoded copied instance. - PrintKeysAndValues( myWebPermission2->ToXml()->Attributes, myWebPermission2->ToXml()->Children ); - } - -private: - void PrintKeysAndValues( Hashtable^ myHashtable, IEnumerable^ myList ) - { - // Gets the enumerator that can iterate through Hashtable. - IDictionaryEnumerator^ myEnumerator = myHashtable->GetEnumerator(); - Console::WriteLine( "\t-KEY-\t-VALUE-" ); - while ( myEnumerator->MoveNext() ) - { - Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value ); - } - Console::WriteLine(); - - IEnumerator^ myEnumerator1 = myList->GetEnumerator(); - Console::WriteLine( "The Children are: " ); - while ( myEnumerator1->MoveNext() ) - { - Console::Write( "\t {0}", myEnumerator1->Current ); - } - } -}; - -int main() -{ - try - { - CopyWebPermission^ myCopyWebPermission = gcnew CopyWebPermission; - myCopyWebPermission->CreateCopy(); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "SecurityException: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_FromToXml/CPP/webpermission_fromtoxml.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_FromToXml/CPP/webpermission_fromtoxml.cpp deleted file mode 100644 index ea42dec4dbce6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_FromToXml/CPP/webpermission_fromtoxml.cpp +++ /dev/null @@ -1,76 +0,0 @@ -// System::Net::WebPermission::ToXml;System::Net::WebPermission::FromXml; - -/** -* This program shows the use of the ToXml and FromXml methods of the WebPermission class. -* It creates a WebPermission instance with the Permissionstate set to None and -* displays the attributes and the values of the XML encoded instance . -* Then a SecurityElement instance is created and it's attributes are -* set. -* Finally, using the FromXml method the WebPermission instance is reconstructed from -* the above SecurityElement instance and the attributes are displayed. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Collections; -public ref class WebPermission_FromToXml -{ -public: - void CallXml() - { -// - // Create a WebPermission without permission on the protected resource - WebPermission^ myWebPermission1 = gcnew WebPermission( PermissionState::None ); - - // Create a SecurityElement by calling the ToXml method on the WebPermission - // instance and display its attributes (which hold the XML encoding of - // the WebPermission). - Console::WriteLine( "Attributes and Values of the WebPermission are:" ); - myWebPermission1->ToXml(); - - // Create another WebPermission with no permission on the protected resource - WebPermission^ myWebPermission2 = gcnew WebPermission( PermissionState::None ); - - //Converts the new WebPermission from XML using myWebPermission1. - myWebPermission2->FromXml( myWebPermission1->ToXml() ); -// - - Console::WriteLine( "The Attributes and Values of 'WebPermission' instance after reconstruction are: \n" ); - // Display the Attributes and values of the XML encoded instances. - PrintKeysAndValues( myWebPermission2->ToXml()->Attributes ); - } - -private: - void PrintKeysAndValues( Hashtable^ myHashtable ) - { - // Get the enumerator to iterate through Hashtable. - IDictionaryEnumerator^ myEnumerator = myHashtable->GetEnumerator(); - Console::WriteLine( "\t-KEY-\t-VALUE-" ); - while ( myEnumerator->MoveNext() ) - { - Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value ); - } - Console::WriteLine(); - } -}; - -int main() -{ - try - { - WebPermission_FromToXml^ myWebPermission_FromToXml = gcnew WebPermission_FromToXml; - myWebPermission_FromToXml->CallXml(); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "SecurityException : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Intersect/CPP/webpermission_intersect.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Intersect/CPP/webpermission_intersect.cpp deleted file mode 100644 index 692f71b9feaed..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Intersect/CPP/webpermission_intersect.cpp +++ /dev/null @@ -1,104 +0,0 @@ -// System::Net::WebPermission::WebPermission(); -// System::Net::WebPermission->AddPermission(NetworkAccess, stringuri); -// System::Net::WebPermission::Intersect; - -/** -* This program shows the use of the WebPermission() constructor, the AddPermission, -* and Intersect' methods of the WebPermission' class. -* It first creates two WebPermission objects with no arguments, with each of them -* setting the access rights to one pair of URLs. -* Then it displays the attributes , values and childrens of the XML encoded instances. -* Finally, it creates a third WebPermission Object* using the logical intersection of the -* first two objects. It does so by using the Intersect method. -* It then displays the attributes , values and childrens of the related XML encoded -* instances. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Collections; - -class WebPermissionIntersect -{ -public: - void CreateIntersect() - { -// - // Create two WebPermission instances. - WebPermission^ myWebPermission1 = gcnew WebPermission; - WebPermission^ myWebPermission2 = gcnew WebPermission; - -// - // Allow access to the first set of resources. - myWebPermission1->AddPermission( NetworkAccess::Connect, "http://www.contoso.com/default.htm" ); - myWebPermission1->AddPermission( NetworkAccess::Connect, "http://www.adventure-works.com/default.htm" ); - - // Check whether if the callers higher in the call stack have been granted - // access permissions. - myWebPermission1->Demand(); -// - - // Allow access right to the second set of resources. - myWebPermission2->AddPermission( NetworkAccess::Connect, "http://www.alpineskihouse.com/default.htm" ); - myWebPermission2->AddPermission( NetworkAccess::Connect, "http://www.baldwinmuseumofscience.com/default.htm" ); - myWebPermission2->Demand(); - -// - // Display the attributes , values and childrens of the XML encoded instances. - Console::WriteLine( "Attributes and values of first 'WebPermission' instance are :" ); - PrintKeysAndValues( myWebPermission1->ToXml()->Attributes, myWebPermission2->ToXml()->Children ); - - Console::WriteLine( "\nAttributes and values of second 'WebPermission' instance are : " ); - PrintKeysAndValues( myWebPermission2->ToXml()->Attributes, myWebPermission2->ToXml()->Children ); - -// - // Create a third WebPermission instance via the logical intersection of the previous - // two WebPermission instances. - WebPermission^ myWebPermission3 = (WebPermission^)(myWebPermission1->Intersect( myWebPermission2 )); - - Console::WriteLine( "\nAttributes and Values of the WebPermission instance after the Intersect are:\n" ); - Console::WriteLine( myWebPermission3->ToXml() ); -// - } - -private: - void PrintKeysAndValues( Hashtable^ myHashtable, IEnumerable^ myList ) - { - // Get the enumerator that can iterate through Hashtable. - IDictionaryEnumerator^ myEnumerator = myHashtable->GetEnumerator(); - Console::WriteLine( "\t-KEY-\t-VALUE-" ); - while ( myEnumerator->MoveNext() ) - { - Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value ); - } - Console::WriteLine(); - - IEnumerator^ myEnumerator1 = myList->GetEnumerator(); - Console::WriteLine( "The Children are : " ); - while ( myEnumerator1->MoveNext() ) - { - Console::Write( "\t {0}", myEnumerator1->Current ); - } - } -}; - -int main() -{ - try - { - WebPermissionIntersect * myWebPermissionIntersect = new WebPermissionIntersect; - myWebPermissionIntersect->CreateIntersect(); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "SecurityException: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_IsSubset/CPP/webpermission_issubset.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_IsSubset/CPP/webpermission_issubset.cpp deleted file mode 100644 index b2aed826d7b53..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_IsSubset/CPP/webpermission_issubset.cpp +++ /dev/null @@ -1,109 +0,0 @@ -// System::Net::WebPermission->AddPermission(NetworkAccess, regex); -// System::Net::WebPermission::IsSubsetOf; - -/** -* This program shows how to use the AddPermission(NetworkAccess, regex) and -* IsSubset methods of WebPermission class. -* It creates two WebPermission instances with the Connect access rights for the -* specified URIs. -* For the first WebPermission instance, a Connect access right is given to the -* URLs with the host fragment www.microsoft.com. This is done by using -* the AddPermission(NetworkAccess, regex) method. -* Then, a third WebPermission instance is created with the Connect access right to -* the URLs of the first and second WebPermission instances. -* Finally, the attributes, values and children of that instance are displayed. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Collections; -using namespace System::Text::RegularExpressions; - -class WebPermissionIsSubset -{ -public: - void CheckSubset() - { -// - // Create a WebPermission. - WebPermission^ myWebPermission1 = gcnew WebPermission; - - // Allow Connect access to the specified URLs. - myWebPermission1->AddPermission( NetworkAccess::Connect, gcnew Regex( "http://www\\.contoso\\.com/.*", - (RegexOptions)(RegexOptions::Compiled | RegexOptions::IgnoreCase | RegexOptions::Singleline) ) ); - - myWebPermission1->Demand(); -// - - // Create another WebPermission with the specified URL. - WebPermission^ myWebPermission2 = gcnew WebPermission( NetworkAccess::Connect,"http://www.contoso.com" ); - // Check whether all callers higher in the call stack have been granted the permission. - myWebPermission2->Demand(); - -// - WebPermission^ myWebPermission3 = nullptr; - - // Check which permissions have the Connect access to more number of URLs. - if ( myWebPermission2->IsSubsetOf( myWebPermission1 ) ) - { - Console::WriteLine( "\n WebPermission2 is the Subset of WebPermission1\n" ); - myWebPermission3 = myWebPermission1; - } - else if ( myWebPermission1->IsSubsetOf( myWebPermission2 ) ) - { - Console::WriteLine( "\n WebPermission1 is the Subset of WebPermission2" ); - myWebPermission3 = myWebPermission2; - } - else - { - // Create the third permission. - myWebPermission3 = (WebPermission^)(myWebPermission1->Union( myWebPermission2 )); - } -// - - // Prints the attributes, values and children of XML encoded instances. - Console::WriteLine( "\nAttributes and Values of third WebPermission instance are : " ); - PrintKeysAndValues( myWebPermission3->ToXml()->Attributes, myWebPermission3->ToXml()->Children ); - } - -private: - void PrintKeysAndValues( Hashtable^ myHashtable, IEnumerable^ myList ) - { - // Get the enumerator that can iterate through Hashtable. - IDictionaryEnumerator^ myEnumerator = myHashtable->GetEnumerator(); - Console::WriteLine( "\t-KEY-\t-VALUE-" ); - while ( myEnumerator->MoveNext() ) - { - Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value ); - } - Console::WriteLine(); - - IEnumerator^ myEnumerator1 = myList->GetEnumerator(); - Console::WriteLine( "The Children are : " ); - while ( myEnumerator1->MoveNext() ) - { - Console::Write( "\t {0}", myEnumerator1->Current ); - } - } -}; - -int main() -{ - try - { - WebPermissionIsSubset * myWebPermissionIsSubset = new WebPermissionIsSubset; - myWebPermissionIsSubset->CheckSubset(); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "SecurityException: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_IsSubset2/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_IsSubset2/CPP/source.cpp deleted file mode 100644 index 5f132c99a7c7c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_IsSubset2/CPP/source.cpp +++ /dev/null @@ -1,41 +0,0 @@ -// System::Net::WebPermission->AddPermission(NetworkAccess, regex);System::Net::WebPermission::IsSubsetOf; - -/** -* This program shows the use of the AddPermission(NetworkAccess, regex) and -* IsSubset methods of the WebPermission class. -* It creates two WebPermission instances with the Connect access rights for the specified -* URIs. The second URI being a subset of the first one. -* Then the IsSubsetOf method is called to verify that the second URI is indeed a subset -* of the firts one. The result of the call to the IsSubsetOf is then displayed. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Collections; -using namespace System::Text::RegularExpressions; - -static void myIsSubsetExample() -{ -// - // Create the target permission. - WebPermission^ targetPermission = gcnew WebPermission; - targetPermission->AddPermission( NetworkAccess::Connect, gcnew Regex( "www\\.contoso\\.com/Public/.*" ) ); - - // Create the permission for a URI matching target. - WebPermission^ connectPermission = gcnew WebPermission; - connectPermission->AddPermission( NetworkAccess::Connect, "www.contoso.com/Public/default.htm" ); - - //The following statement prints true. - Console::WriteLine( "Is the second URI a subset of the first one?: {0}", connectPermission->IsSubsetOf( targetPermission ) ); -// -} - -int main() -{ - // Verify that the second URI is a subset of the first one. - myIsSubsetExample(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Regex/CPP/regex.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Regex/CPP/regex.cpp deleted file mode 100644 index ccc6b05561465..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Regex/CPP/regex.cpp +++ /dev/null @@ -1,50 +0,0 @@ -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Text::RegularExpressions; -using namespace System::Collections; - -void MySample() -{ -// - // Create a Regex that accepts all URLs containing the host fragment www.contoso.com. - Regex^ myRegex = gcnew Regex( "http://www\\.contoso\\.com/.*" ); - - // Create a WebPermission that gives permissions to all the hosts containing the same host fragment. - WebPermission^ myWebPermission = gcnew WebPermission( NetworkAccess::Connect,myRegex ); - - //Add connect privileges for a www.adventure-works.com. - myWebPermission->AddPermission( NetworkAccess::Connect, "http://www.adventure-works.com" ); - - //Add accept privileges for www.alpineskihouse.com. - myWebPermission->AddPermission( NetworkAccess::Accept, "http://www.alpineskihouse.com/" ); - - // Check whether all callers higher in the call stack have been granted the permission. - myWebPermission->Demand(); - - // Get all the URIs with Connect permission. - IEnumerator^ myConnectEnum = myWebPermission->ConnectList; - Console::WriteLine( "\nThe 'URIs' with 'Connect' permission are :\n" ); - while ( myConnectEnum->MoveNext() ) - { - Console::WriteLine( "\t{0}", myConnectEnum->Current ); - } - - // Get all the URIs with Accept permission. - IEnumerator^ myAcceptEnum = myWebPermission->AcceptList; - Console::WriteLine( "\n\nThe 'URIs' with 'Accept' permission is :\n" ); - - while ( myAcceptEnum->MoveNext() ) - { - Console::WriteLine( "\t{0}", myAcceptEnum->Current ); - } -// -} - -int main() -{ - MySample(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Union/CPP/webpermission_union.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Union/CPP/webpermission_union.cpp deleted file mode 100644 index 9610688f60842..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebPermission_Union/CPP/webpermission_union.cpp +++ /dev/null @@ -1,92 +0,0 @@ -// System::Net::WebPermission::WebPermission(NetworkAccess, uriString);System::Net::WebPermission::Union; - -/** -* This program shows the use of the WebPermission(NetworkAccess access, String* uriString) -* constructor and Union method of the WebPermission' class. -* It creates two instance of the WebPermission class with the specified access -* rights to the predefined URIs. -* It displays the attributes , values and childrens of those XML encoded -* instances. -* Then, using the Union method, it creates a third WebPermission instance -* via a logical union of the first two. -* Finally, it displays the attributes , values and childrens of those XML encoded -* instances. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Collections; - -public ref class WebPermissionUnion -{ -public: - void CreateUnion() - { -// - // Create a WebPermission::instance. - WebPermission^ myWebPermission1 = gcnew WebPermission( NetworkAccess::Connect,"http://www.contoso.com/default.htm" ); - myWebPermission1->Demand(); -// - - // Create another WebPermission instance. - WebPermission^ myWebPermission2 = gcnew WebPermission( NetworkAccess::Connect,"http://www.adventure-works.com" ); - myWebPermission2->Demand(); - - // Print the attributes, values and childrens of the XML encoded instances. - Console::WriteLine( "Attributes and values of the first WebPermission are : " ); - PrintKeysAndValues( myWebPermission1->ToXml()->Attributes, myWebPermission1->ToXml()->Children ); - - Console::WriteLine( "\nAttributes and values of the second WebPermission are : " ); - PrintKeysAndValues( myWebPermission2->ToXml()->Attributes, myWebPermission2->ToXml()->Children ); - -// - // Create another WebPermission that is the Union of previous two WebPermission - // instances. - WebPermission^ myWebPermission3 = (WebPermission^)(myWebPermission1->Union( myWebPermission2 )); - Console::WriteLine( "\nAttributes and values of the WebPermission after the Union are : " ); - // Display the attributes, values and children. - Console::WriteLine( myWebPermission3->ToXml() ); -// - } - -private: - void PrintKeysAndValues( Hashtable^ myHashtable, IEnumerable^ myList ) - { - // Get the enumerator that can iterate through Hashtable. - IDictionaryEnumerator^ myEnumerator = myHashtable->GetEnumerator(); - Console::WriteLine( "\t-KEY-\t-VALUE-" ); - while ( myEnumerator->MoveNext() ) - { - Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value ); - } - - Console::WriteLine(); - IEnumerator^ myEnumerator1 = myList->GetEnumerator(); - Console::WriteLine( "The Children are : " ); - while ( myEnumerator1->MoveNext() ) - { - Console::Write( "\t {0}", myEnumerator1->Current ); - } - } -}; - -int main() -{ - try - { - WebPermissionUnion^ myWebPermissionUnion = gcnew WebPermissionUnion; - myWebPermissionUnion->CreateUnion(); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "SecurityException: {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_BeginGetRequest/CPP/webrequest_begingetrequest.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_BeginGetRequest/CPP/webrequest_begingetrequest.cpp deleted file mode 100644 index c6e380e0a44f1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_BeginGetRequest/CPP/webrequest_begingetrequest.cpp +++ /dev/null @@ -1,92 +0,0 @@ - - -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; -using namespace System::Threading; -public ref class RequestState -{ -public: - - // This class stores the request state of the request. - WebRequest^ request; - RequestState() - { - request = nullptr; - } - -}; - -ref class WebRequest_BeginGetRequeststream -{ -public: - static ManualResetEvent^ allDone = gcnew ManualResetEvent( false ); - static void ReadCallback( IAsyncResult^ asynchronousResult ) - { - RequestState^ myRequestState = dynamic_cast(asynchronousResult->AsyncState); - WebRequest^ myWebRequest = myRequestState->request; - - // End of the Asynchronus request. - Stream^ streamResponse = myWebRequest->EndGetRequestStream( asynchronousResult ); - - // Create a string that is to be posted to the uri. - Console::WriteLine( "Please enter a string to be posted:" ); - String^ postData = Console::ReadLine(); - - // Convert the string into a Byte array. - array^byteArray = Encoding::UTF8->GetBytes( postData ); - - // Write data to the stream. - streamResponse->Write( byteArray, 0, postData->Length ); - streamResponse->Close(); - allDone->Set(); - } - -}; - -int main() -{ - - // - // Create a new request to the mentioned URL. - WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com" ); - - // Create an instance of the RequestState and assign 'myWebRequest' to its request field. - RequestState^ myRequestState = gcnew RequestState; - myRequestState->request = myWebRequest; - myWebRequest->ContentType = "application/x-www-form-urlencoded"; - - // Set the 'Method' prperty to 'POST' to post data to a Uri. - myRequestState->request->Method = "POST"; - - // - // Start the Asynchronous 'BeginGetRequestStream' method call. - IAsyncResult^ r = dynamic_cast(myWebRequest->BeginGetRequestStream( gcnew AsyncCallback( WebRequest_BeginGetRequeststream::ReadCallback ), myRequestState )); - WebRequest_BeginGetRequeststream::allDone->WaitOne(); - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - Console::WriteLine( "The String* entered has been posted." ); - Console::WriteLine( "Please wait for the response..." ); - Stream^ streamResponse = myWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "The contents of the HTML page are " ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - - streamResponse->Close(); - streamRead->Close(); - - // Release the HttpWebResponse Resource. - myWebResponse->Close(); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_BeginGetResponse/CPP/webrequest_begingetresponse.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_BeginGetResponse/CPP/webrequest_begingetresponse.cpp deleted file mode 100644 index f9ea0d0ee1580..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_BeginGetResponse/CPP/webrequest_begingetresponse.cpp +++ /dev/null @@ -1,173 +0,0 @@ - - -// System::Net::WebRequest::BeginGetResponse System::Net::WebRequest::EndGetResponse -/* -* This program demonstrates BeginGetResponse and EndGetResponse methods of -* WebRequest Class::A new WebRequest object is created to the mentioned Uri. -* An Asynchronous call is started for response from the Uri using BeginGetResponse -* method of WebRequest class. -* The asynchronous response is ended by the EndGetResponse method of the -* WebRequest class. The page at the requested Uri is finally displayed. -*/ -// -// -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; -using namespace System::Threading; -public ref class RequestState -{ -private: - - // This class stores the state of the request. - literal int BUFFER_SIZE = 1024; - -public: - StringBuilder^ requestData; - array^bufferRead; - WebRequest^ request; - WebResponse^ response; - Stream^ responseStream; - RequestState() - { - bufferRead = gcnew array(BUFFER_SIZE); - requestData = gcnew StringBuilder( "" ); - request = nullptr; - responseStream = nullptr; - } - -}; - -ref class WebRequest_BeginGetResponse -{ -public: - static ManualResetEvent^ allDone = gcnew ManualResetEvent( false ); - literal int BUFFER_SIZE = 1024; - static void RespCallback( IAsyncResult^ asynchronousResult ) - { - try - { - - // Set the State of request to asynchronous. - RequestState^ myRequestState = dynamic_cast(asynchronousResult->AsyncState); - WebRequest^ myWebRequest1 = myRequestState->request; - - // End the Asynchronous response. - myRequestState->response = myWebRequest1->EndGetResponse( asynchronousResult ); - - // Read the response into a 'Stream' object. - Stream^ responseStream = myRequestState->response->GetResponseStream(); - myRequestState->responseStream = responseStream; - - // Begin the reading of the contents of the HTML page and print it to the console. - IAsyncResult^ asynchronousResultRead = responseStream->BeginRead( myRequestState->bufferRead, 0, BUFFER_SIZE, gcnew AsyncCallback( ReadCallBack ), myRequestState ); - } - catch ( WebException^ e ) - { - Console::WriteLine( "WebException raised!" ); - Console::WriteLine( "\n {0}", e->Message ); - Console::WriteLine( "\n {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - - } - - static void ReadCallBack( IAsyncResult^ asyncResult ) - { - try - { - - // Result state is set to AsyncState. - RequestState^ myRequestState = dynamic_cast(asyncResult->AsyncState); - Stream^ responseStream = myRequestState->responseStream; - int read = responseStream->EndRead( asyncResult ); - - // Read the contents of the HTML page and then print to the console. - if ( read > 0 ) - { - myRequestState->requestData->Append( Encoding::ASCII->GetString( myRequestState->bufferRead, 0, read ) ); - IAsyncResult^ asynchronousResult = responseStream->BeginRead( myRequestState->bufferRead, 0, BUFFER_SIZE, gcnew AsyncCallback( ReadCallBack ), myRequestState ); - } - else - { - Console::WriteLine( "\nThe HTML page Contents are: " ); - if ( myRequestState->requestData->Length > 1 ) - { - String^ sringContent; - sringContent = myRequestState->requestData->ToString(); - Console::WriteLine( sringContent ); - } - Console::WriteLine( "\nPress 'Enter' key to continue........" ); - responseStream->Close(); - allDone->Set(); - } - } - catch ( WebException^ e ) - { - Console::WriteLine( "WebException raised!" ); - Console::WriteLine( "\n {0}", e->Message ); - Console::WriteLine( "\n {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - - } - -}; - -int main() -{ - try - { - - // Create a new webrequest to the mentioned URL. - WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com" ); - - // Please, set the proxy to a correct value. - WebProxy^ proxy = gcnew WebProxy( "myproxy:80" ); - proxy->Credentials = gcnew NetworkCredential( "srikun","simrin123" ); - myWebRequest->Proxy = proxy; - - // Create a new instance of the RequestState. - RequestState^ myRequestState = gcnew RequestState; - - // The 'WebRequest' object is associated to the 'RequestState' object. - myRequestState->request = myWebRequest; - - // Start the Asynchronous call for response. - IAsyncResult^ asyncResult = dynamic_cast(myWebRequest->BeginGetResponse( gcnew AsyncCallback( WebRequest_BeginGetResponse::RespCallback ), myRequestState )); - WebRequest_BeginGetResponse::allDone->WaitOne(); - - // Release the WebResponse resource. - myRequestState->response->Close(); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "WebException raised!" ); - Console::WriteLine( "\n {0}", e->Message ); - Console::WriteLine( "\n {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - -} - -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_ContentType/CPP/webrequest_contenttype.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_ContentType/CPP/webrequest_contenttype.cpp deleted file mode 100644 index c42e50f8358ff..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_ContentType/CPP/webrequest_contenttype.cpp +++ /dev/null @@ -1,95 +0,0 @@ -/* System::Net::WebRequest::ContentType System::Net::WebRequest::ContentLength System::Net::WebRequest::GetRequestStream -This program demonstrates 'GetRequestStream' method , 'ContentLength' and 'ContentType' properties of - 'WebRequestClass'. -A new 'WebRequest' Object* is created and the method used for sending data is set to 'POST' method by setting -The 'Method' property to 'POST'.The 'ContentType' property is set to 'application/x-www-form-urlencoded'. -The 'ContentLength' property is set to the length of the Byte stream to be posted. A new 'Stream' Object* is -obtained from the 'GetRequestStream' method of the 'WebRequest' class.Data to be posted is requested from -the user and is posted using the stream Object*.The HTML contents of the page are then displayed to the -console after the Posted data is accepted by the URL. - -Note: This program POSTs data to the Uri: http://www20.Brinkster::com/codesnippets/next.asp -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// -// -// - // Create a new request to the mentioned URL. - WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com " ); - - // Set the 'Method' property of the myWebrequest to POST. - myWebRequest->Method = "POST"; - - // Create a new string object to POST data to the above url. - Console::WriteLine( "\nThe value of 'ContentLength' property before sending the data is {0}", myWebRequest->ContentLength ); - Console::WriteLine( "\nPlease enter the data to be posted to (http://www.contoso.com/codesnippets/next.asp) Uri" ); - String^ inputData = Console::ReadLine(); - String^ postData = String::Concat( "firstone= ", inputData ); - ASCIIEncoding^ encoding = gcnew ASCIIEncoding; - array^ byteArray = encoding->GetBytes( postData ); - -// - // Set the 'ContentType' property of the WebRequest. - myWebRequest->ContentType = "application/x-www-form-urlencoded"; - - // Set the 'ContentLength' property of the WebRequest. - myWebRequest->ContentLength = byteArray->Length; - Stream^ newStream = myWebRequest->GetRequestStream(); - newStream->Write( byteArray, 0, byteArray->Length ); - - // Close the Stream object. - newStream->Close(); - - // Assign the response object of 'WebRequest' to a 'WebResponse' variable. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); -// -// -// -// - - Console::WriteLine( "\nThe value of ContentLength property after sending the data is {0}", myWebRequest->ContentLength ); - Console::WriteLine( "\nThe String* entered has been succesfully posted to the Uri." ); - Console::WriteLine( "\nPlease wait for the response......." ); - Stream^ streamResponse = myWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "\nThe contents of the Html page are : \n" ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::WriteLine( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - streamRead->Close(); - streamResponse->Close(); - - // Release the resources of response Object*. - myWebResponse->Close(); - Console::WriteLine( "\nPress 'Enter' Key to Continue........." ); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "WebException raised!" ); - Console::WriteLine( "\n {0}", e->Message ); - Console::WriteLine( "\n {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_Create/CPP/webrequest_create.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_Create/CPP/webrequest_create.cpp deleted file mode 100644 index ff1aa9ebfe6c7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_Create/CPP/webrequest_create.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/*System::Net::WebRequest::Create(Uri) - -This program demonstrates the 'Create(Uri)' method of the 'WebRequest' class. -A new 'Uri' object is created to the specified Uri. -A new 'WebRequest' object is created to the 'specified' Uri by passing the 'Uri' object as parameter. -The response is obtained . -The HTML contents of the page of the requested Uri are displayed to the console. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; - -int main() -{ - try - { -// - // Create a new 'Uri' object with the specified string. - Uri^ myUri = gcnew Uri( "http://www.contoso.com" ); - // Create a new request to the above mentioned URL. - WebRequest^ myWebRequest = WebRequest::Create( myUri ); - // Assign the response object of 'WebRequest' to a 'WebResponse' variable. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); -// - - Stream^ streamResponse = myWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "\nThe contents of HTML Page are : \n" ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - streamResponse->Close(); - streamRead->Close(); - // Release the WebResponse Resource. - myWebResponse->Close(); - Console::WriteLine( "\nPress 'Enter' key to continue................." ); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Caught!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException Caught!" ); - Console::WriteLine( "Source : {0} ", e->Source ); - Console::WriteLine( "Message : {0} ", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_Headers/CPP/webrequest_headers.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_Headers/CPP/webrequest_headers.cpp deleted file mode 100644 index 39527d5bcdde3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_Headers/CPP/webrequest_headers.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/*System::Net::WebRequest::Headers -* This program demonstrates the 'Headers' property of 'WebRequest' Class. -A new 'WebRequest' Object* is created.The (name, value) collection of the HTTP Headers are displayed to the -console.The contents of the HTML page of the requested URI are displayed to the console. */ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// - // Create a new request to the mentioned URL. - WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com" ); - - // Assign the response object of 'WebRequest' to a 'WebResponse' variable. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - - // Release the resources of response object. - myWebResponse->Close(); - Console::WriteLine( "\nThe HttpHeaders are \n {0}", myWebRequest->Headers ); -// - - Console::WriteLine( "\nPress Enter Key to Continue........." ); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "Exception raised!" ); - Console::WriteLine( "\n {0}", e->Message ); - Console::WriteLine( "\n {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception raised!" ); - Console::WriteLine( "Source : {0} ", e->Source ); - Console::WriteLine( "Message : {0} ", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_PreAuthenticate/CPP/webrequest_preauthenticate.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_PreAuthenticate/CPP/webrequest_preauthenticate.cpp deleted file mode 100644 index 1776e52a3d1ea..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_PreAuthenticate/CPP/webrequest_preauthenticate.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/* -System::Net::WebRequest::PreAuthenticate, System::Net::WebRequest::Credentials -This program demonstrates the 'PreAuthenticate' and 'NetworkCredential' properties of the WebRequest Class. -The PreAuthenticate Property has a default value set to False. -This is set to True and new NetwrokCredential object is created with UserName and Password. -This NetworkCredential Object associated to the WebRequest Object to be able to authenticate the requested Uri -To check the validity of this program, please try with some authenticated sites with appropriate credentials -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -void GetPage( String^ url ) -{ - try - { -// -// - // Create a new webrequest to the mentioned URL. - WebRequest^ myWebRequest = WebRequest::Create( url ); - - // Set 'Preauthenticate' property to true. Credentials will be sent with the request. - myWebRequest->PreAuthenticate = true; - - Console::WriteLine( "\nPlease enter your credentials for the requested Url" ); - Console::WriteLine( "UserName" ); - String^ UserName = Console::ReadLine(); - Console::WriteLine( "Password" ); - String^ Password = Console::ReadLine(); - - // Create a New 'NetworkCredential' object. - NetworkCredential^ networkCredential = gcnew NetworkCredential( UserName,Password ); - - // Associate the 'NetworkCredential' object with the 'WebRequest' object. - myWebRequest->Credentials = networkCredential; - - // Assign the response object of 'WebRequest' to a 'WebResponse' variable. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); -// -// - - // Read the 'Response' into a Stream object and then print to the console. - Stream^ streamResponse = myWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "\nThe contents of the Html page of the requested Uri are : " ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - streamResponse->Close(); - streamRead->Close(); - - // Release the HttpWebResponse Resource. - myWebResponse->Close(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException is raised. " ); - Console::WriteLine( "\nMessage: {0} ", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException is raised. " ); - Console::WriteLine( "\nMessage: {0} ", e->Message ); - } - -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease type the url which requires authentication as command line parameter" ); - Console::WriteLine( "Example:WebRequest_PreAuthenticate http://www.microsoft.com" ); - } - else - { - GetPage( args[ 1 ] ); - } - - Console::WriteLine( "\nPress any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_Proxy/CPP/webrequest_proxy.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_Proxy/CPP/webrequest_proxy.cpp deleted file mode 100644 index 6781c2fe11402..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_Proxy/CPP/webrequest_proxy.cpp +++ /dev/null @@ -1,108 +0,0 @@ -/*System::Net::WebRequest::Proxy -This program demonstrates the 'Proxy' property of the 'WebRequest' class. -A WebRequest Object* is created and a new Proxy Object is created. -The Proxy Object is assigned the 'Proxy' Property of the WebRequest Object and then printed to the console, this is the default Proxy setting. -New Proxy address and the credentials are requested from the User. -A new Proxy Object* is then constructed from the inputs. -Then the 'Proxy' property of the request is associated with the new Proxy Object* constructed*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// - // Create a new request to the mentioned URL. - WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com" ); - - WebProxy^ myProxy = gcnew WebProxy; - // Obtain the Proxy Prperty of the Default browser. - myProxy = (WebProxy^)(myWebRequest->Proxy); - - // Print myProxy address to the console. - Console::WriteLine( "\nThe actual default Proxy settings are {0}", myProxy->Address ); - try - { - Console::WriteLine( "\nPlease enter the new Proxy Address to be set " ); - Console::WriteLine( "The format of the address should be http://proxyUriAddress:portaddress" ); - Console::WriteLine( "Example:http://proxyadress.com:8080" ); - String^ proxyAddress; - proxyAddress = Console::ReadLine(); - - if ( proxyAddress->Length == 0 ) - { - myWebRequest->Proxy = myProxy; - } - else - { - Console::WriteLine( "\nPlease enter the Credentials" ); - Console::WriteLine( "Username:" ); - String^ username; - username = Console::ReadLine(); - Console::WriteLine( "\nPassword:" ); - String^ password; - password = Console::ReadLine(); - - // Create a new Uri object. - Uri^ newUri = gcnew Uri( proxyAddress ); - - // Associate the new Uri object to the myProxy object. - myProxy->Address = newUri; - - // Create a NetworkCredential object and is assign to the Credentials - // property of the Proxy object. - myProxy->Credentials = gcnew NetworkCredential( username,password ); - myWebRequest->Proxy = myProxy; - } - Console::WriteLine( "\nThe Address of the new Proxy settings are {0}", myProxy->Address ); - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - - // Print the HTML contents of the page to the console. - Stream^ streamResponse = myWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "\nThe contents of the Html pages are :" ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - - // Close the Stream object. - streamResponse->Close(); - streamRead->Close(); - - // Release the HttpWebResponse Resource. - myWebResponse->Close(); - Console::WriteLine( "\nPress any key to continue........." ); - Console::Read(); - } - catch ( UriFormatException^ e ) - { - Console::WriteLine( "\nUriFormatException is thrown->Message is {0}", e->Message ); - Console::WriteLine( "\nThe format of the myProxy address you entered is invalid" ); - Console::WriteLine( "\nPress any key to continue........." ); - Console::Read(); - } -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException is raised. " ); - Console::WriteLine( "\nMessage: {0} ", e->Message ); - Console::WriteLine( "\nStatus: {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException is raised. " ); - Console::WriteLine( "\nMessage: {0} ", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_RequestUri1/CPP/webrequest_requesturi.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_RequestUri1/CPP/webrequest_requesturi.cpp deleted file mode 100644 index f763b367eb0c5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_RequestUri1/CPP/webrequest_requesturi.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/*System::Net::WebRequest::RequestUri -* This program demonstrates the 'RequestUri' property of the 'WebRequest' Class -Here the 'RequestUri' property displays the request Uri name to the console. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// - // Create a new WebRequest object to the mentioned URL. - WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com" ); - Console::WriteLine( "\nThe Uri requested is {0}", myWebRequest->RequestUri); - // Assign the response object of 'WebRequest' to a 'WebResponse' variable. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - // Get the stream containing content returned by the server. - Stream^ streamResponse = myWebResponse->GetResponseStream(); - Console::WriteLine("\nThe Uri that responded to the request is '{0}'",myWebResponse->ResponseUri); - StreamReader^ reader = gcnew StreamReader(streamResponse); - // Read the content. - String^ responseFromServer = reader->ReadToEnd(); - // Display the content. - Console::WriteLine("\nThe HTML Contents received:"); - Console::WriteLine (responseFromServer); - // Cleanup the streams and the response. - reader->Close(); - streamResponse->Close(); - myWebResponse->Close(); -// - } - catch ( WebException^ e ) - { - Console::WriteLine("\nWebException is raised. "); - Console::WriteLine("\nThe Error Message is {0} ", e->Message); - Console::WriteLine("\nStatus: {0}", e->Status); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException is raised " ); - Console::WriteLine( "\nMessage: {0} ", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_Timeout/CPP/webrequest_timeout.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_Timeout/CPP/webrequest_timeout.cpp deleted file mode 100644 index 519c8be578ec3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebRequest_Timeout/CPP/webrequest_timeout.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/*System::Net::WebRequest::Time->Item[Out] ** This program demonstrates the 'Timeout' property of the WebRequest Class. -A new 'WebRequest' Object* is created .The default value of the 'Timeout' property is printed to the console. -It is then set to a value and displayed to the console. If the 'Timeout' property is set to a value less than -the time required to get the response an Exception is raised.'Timeout' property measures the time in -Milliseconds. -*/ - -#using - -using namespace System; -using namespace System::IO; -using namespace System::Net; -using namespace System::Text; - -int main() -{ - try - { -// - // Create a new WebRequest Object to the mentioned URL. - WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com" ); - Console::WriteLine( "\nThe Timeout time of the request before setting is : {0} milliseconds", myWebRequest->Timeout ); - - // Set the 'Timeout' property in Milliseconds. - myWebRequest->Timeout = 10000; - - // This request will throw a WebException if it reaches the timeout limit - // before it is able to fetch the resource. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); -// - - // Print the Timeout time to the console. - Console::WriteLine( "\nThe Time->Item[Out] time* of the request after setting the time is : {0} milliseconds", myWebRequest->Timeout ); - Console::WriteLine( "\nPress any Key to Continue..........." ); - Console::Read(); - // Print the HTML contents of the page to the console. - Stream^ streamResponse = myWebResponse->GetResponseStream(); - StreamReader^ streamRead = gcnew StreamReader( streamResponse ); - array^ readBuff = gcnew array(256); - int count = streamRead->Read( readBuff, 0, 256 ); - Console::WriteLine( "\nThe contents of the Html page of the requested Url are :" ); - while ( count > 0 ) - { - String^ outputData = gcnew String( readBuff,0,count ); - Console::Write( outputData ); - count = streamRead->Read( readBuff, 0, 256 ); - } - streamResponse->Close(); - streamRead->Close(); - // Release the HttpWebResponse Resource. - myWebResponse->Close(); - Console::WriteLine( "\nPress any Key to Continue..........." ); - Console::Read(); - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException is raised " ); - Console::WriteLine( "\nMessage: {0} ", e->Message ); - Console::WriteLine( "\nStatus: {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nException is raised " ); - Console::WriteLine( "\nMessage: {0} ", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_Close/CPP/webresponse_close.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_Close/CPP/webresponse_close.cpp deleted file mode 100644 index b8b8c49e8675b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_Close/CPP/webresponse_close.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// System::Net::WebResponse::Close -/*This program demonstrates the 'Close' method of 'WebResponse' Class. -It takes an URL from console and creates a 'WebRequest' Object* for the Url::It then gets back -the response Object* from the Url. The response Object* can be processed as desired. -The program then closes the response Object* and releases resources associated with it. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; - -void GetPage( String^ url ) -{ - try - { -// - // Create a 'WebRequest' object with the specified url. - WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com" ); - // Send the 'WebRequest' and wait for response. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - - // Process the response here. - Console::WriteLine( "\nResponse Received::Trying to Close the response stream.." ); - // Release resources of response Object*. - myWebResponse->Close(); - Console::WriteLine( "\nResponse Stream successfully closed" ); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\r\nWebException Raised::Status is: {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised->Message is: {0}", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease type the Url as command line parameter" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "WebResponse_Close http://dotnet.microsoft.com/" ); - } - else - { - GetPage( args[ 1 ] ); - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_ContentLength_Type/CPP/webresponse_contentlength_type.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_ContentLength_Type/CPP/webresponse_contentlength_type.cpp deleted file mode 100644 index 8e70c11388632..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_ContentLength_Type/CPP/webresponse_contentlength_type.cpp +++ /dev/null @@ -1,59 +0,0 @@ -// System::Net::WebResponse::ContentLength;System::Net::WebResponse::ContentType - -/* This program demonstrates the 'ContentLength' and 'ContentType' property of 'WebResponse' class -It creates a web request and queries for a response.It then prints the content length and content type -of the entity body in the response onto the console */ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; - -void GetPage( String^ url ) -{ - try - { -// -// - // Create a 'WebRequest' with the specified url. - WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com" ); - - // Send the 'WebRequest' and wait for response. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - - // Display the content length and content type received as headers in the response object. - Console::WriteLine( "\nContent length : {0}, Content Type : {1}", myWebResponse->ContentLength, myWebResponse->ContentType ); - - // Release resources of response object. - myWebResponse->Close(); -// -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException raised. Status is: {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised->Message is: {0}", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the Url as command line parameter:" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "WebResponse_ContentLength_Type http://dotnet.microsoft.com/" ); - } - else - { - GetPage( args[ 1 ] ); - } - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_GetResponseStream/CPP/webresponse_getresponsestream.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_GetResponseStream/CPP/webresponse_getresponsestream.cpp deleted file mode 100644 index b1e2cd254c7e3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_GetResponseStream/CPP/webresponse_getresponsestream.cpp +++ /dev/null @@ -1,81 +0,0 @@ -// System::Net::WebResponse::GetResponseStream - -/* This program demonstrates the 'GetResponseStream' method of the 'WebResponse' class. -It creates a web request and queries for a response. It then gets the response stream . This response stream -is piped to a higher level stream reader. The reader reads 256 characters at a time , writes them into a String* and then displays the String* in the console. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; - -void getPage( String^ url ) -{ - try - { -// - // Create a 'WebRequest' object with the specified url. - WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com" ); - - // Send the 'WebRequest' and wait for response. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - - // Obtain a 'Stream' object associated with the response object. - Stream^ ReceiveStream = myWebResponse->GetResponseStream(); - - Encoding^ encode = System::Text::Encoding::GetEncoding( "utf-8" ); - - // Pipe the stream to a higher level stream reader with the required encoding format. - StreamReader^ readStream = gcnew StreamReader( ReceiveStream,encode ); - Console::WriteLine( "\nResponse stream received" ); - array^ read = gcnew array(256); - - // Read 256 charcters at a time. - int count = readStream->Read( read, 0, 256 ); - Console::WriteLine( "HTML...\r\n" ); - - while ( count > 0 ) - { - // Dump the 256 characters on a string and display the string onto the console. - String^ str = gcnew String( read,0,count ); - Console::Write( str ); - count = readStream->Read( read, 0, 256 ); - } - - Console::WriteLine( "" ); - // Release the resources of stream object. - readStream->Close(); - - // Release the resources of response object. - myWebResponse->Close(); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Raised::Status is: {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised->Message is: {0}", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease enter the Url as command line parameter:" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "WebResponse_GetResponseStream http://dotnet.microsoft.com/" ); - } - else - { - getPage( args[ 1 ] ); - } - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_Headers/CPP/webresponse_headers.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_Headers/CPP/webresponse_headers.cpp deleted file mode 100644 index 22e623e03213f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_Headers/CPP/webresponse_headers.cpp +++ /dev/null @@ -1,64 +0,0 @@ - - -// System::Net::WebResponse::Headers -/* This program demonstrates the 'Headers' property of the 'WebResponse' class. -It creates a web request and queries for a response.It then prints out all the response -headers (name -value pairs) onto the console */ -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; - -void GetPage( String^ url ) -{ - try - { - // - // Create a 'WebRequest' object with the specified url. - WebRequest^ myWebRequest = WebRequest::Create( "http://www.contoso.com" ); - - // Send the 'WebRequest' and wait for response. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - - // Display all the Headers present in the response received from the URl. - Console::WriteLine( "\nThe following headers were received in the response" ); - - // Display each header and its key , associated with the response object. - for ( int i = 0; i < myWebResponse->Headers->Count; ++i ) - Console::WriteLine( "\nHeader Name: {0}, Header value : {1}", myWebResponse->Headers->Keys[ i ], myWebResponse->Headers[ i ] ); - - // Release resources of response object. - myWebResponse->Close(); - - // - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException Raised::Status is : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised.Message is : {0}", e->Message ); - } - -} - -int main() -{ - array^args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease type the Url as command line parameter" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "WebResponse_Headers http://dotnet.microsoft.com/" ); - } - else - { - GetPage( args[ 1 ] ); - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_ResponseUri/CPP/webresponse_responseuri.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_ResponseUri/CPP/webresponse_responseuri.cpp deleted file mode 100644 index 05f3759415e3e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebResponse_ResponseUri/CPP/webresponse_responseuri.cpp +++ /dev/null @@ -1,67 +0,0 @@ -// System::Net::WebResponse::ResponseUri - -/* This program demonstrates the 'ResponseUri' property of the 'WebResponse' class -It creates a web request and queries for a response.It then compares the ResponseUri value to the actual Url -value to see if the original request was redirected*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::IO; -using namespace System::Text; - -void GetPage( String^ url ) -{ - try - { -// - Uri^ ourUri = gcnew Uri( url ); - - // Create a 'WebRequest' object with the specified url. - WebRequest^ myWebRequest = WebRequest::Create( url ); - - // Send the 'WebRequest' and wait for response. - WebResponse^ myWebResponse = myWebRequest->GetResponse(); - - // Use "ResponseUri" property to get the actual Uri from where the response was attained. - if ( ourUri->Equals( myWebResponse->ResponseUri ) ) - { - Console::WriteLine( "\nRequest Url : {0} was not redirected", url ); - } - else - { - Console::WriteLine( "\nRequest Url : {0} was redirected to {1}", url, myWebResponse->ResponseUri ); - } - - // Release resources of response object. - myWebResponse->Close(); -// - } - catch ( WebException^ e ) - { - Console::WriteLine( "\nWebException is raised->Status is : {0}", e->Status ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "\nThe following Exception was raised->Message is: {0}", e->Message ); - } -} - -int main() -{ - array^ args = Environment::GetCommandLineArgs(); - if ( args->Length < 2 ) - { - Console::WriteLine( "\nPlease type the Url as command line parameter" ); - Console::WriteLine( "Example:" ); - Console::WriteLine( "WebResponse_ResponseUri http://www.microsoft.com" ); - } - else - { - GetPage( args[ 1 ] ); - } - - Console::WriteLine( "Press any key to continue..." ); - Console::ReadLine(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebServices_Description_Importer/CPP/import.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebServices_Description_Importer/CPP/import.cpp deleted file mode 100644 index 624ea9b6f2ed0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebServices_Description_Importer/CPP/import.cpp +++ /dev/null @@ -1,63 +0,0 @@ - - -// -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::CodeDom; -using namespace System::CodeDom::Compiler; - -int main() -{ - // Get a WSDL file describing a service. - ServiceDescription^ description = ServiceDescription::Read( "service.wsdl" ); - - // - // Initialize a service description importer. - ServiceDescriptionImporter^ importer = gcnew ServiceDescriptionImporter; - importer->ProtocolName = "Soap12"; // Use SOAP 1.2. - importer->AddServiceDescription( description, nullptr, nullptr ); - // - - // - // Report on the service descriptions. - Console::WriteLine( "Importing {0} service descriptions with {1} associated schemas.", importer->ServiceDescriptions->Count, importer->Schemas->Count ); - // - - // - // Generate a proxy client. - importer->Style = ServiceDescriptionImportStyle::Client; - // - - // - // Generate properties to represent primitive values. - importer->CodeGenerationOptions = System::Xml::Serialization::CodeGenerationOptions::GenerateProperties; - // - - // Initialize a Code-DOM tree into which we will import the service. - CodeNamespace^ nmspace = gcnew CodeNamespace; - CodeCompileUnit^ unit = gcnew CodeCompileUnit; - unit->Namespaces->Add( nmspace ); - - // - // Import the service into the Code-DOM tree. This creates proxy code - // that uses the service. - ServiceDescriptionImportWarnings warning = importer->Import(nmspace,unit); - if ( warning == (ServiceDescriptionImportWarnings)0 ) - { - // Generate and print the proxy code in C#. - CodeDomProvider^ provider = CodeDomProvider::CreateProvider( "CSharp" ); - ICodeGenerator^ generator = provider->CreateGenerator(); - generator->GenerateCodeFromCompileUnit( unit, Console::Out, gcnew CodeGeneratorOptions ); - } - else - { - // Print an error message. - Console::WriteLine( warning ); - } - // -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WebServices_HttpBinding/CPP/httpbinding.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WebServices_HttpBinding/CPP/httpbinding.cpp deleted file mode 100644 index 4d69d267acb71..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WebServices_HttpBinding/CPP/httpbinding.cpp +++ /dev/null @@ -1,151 +0,0 @@ - - -//System.Web.Services.HttpBinding;System.Web.Services.HttpBinding.Verb; -//System.Web.Services.HttpAddressBinding; -//System.Web.Services.HttpAddressBinding.Location; -/* - The following example demonstrates the 'HttpBinding()' constructor - and 'Verb' property of class 'HttpBinding' and 'HttpAddressBinding() - 'constructor and 'Location' property of class 'HttpAddressBinding'. - It creates a 'ServiceDescription' instance by using the - static read method of 'ServiceDescription' by passing the - 'AddNumbers1.wsdl' name as an argument.It creates a 'Binding' - object and adds that binding object to 'ServiceDescription'. - It adds the 'PortType',Messages to the 'ServiceDescription' object. - Finally it writes the 'ServiceDescrption' as a WSDL file with name - 'AddNumbers.wsdl. - */ -#using -#using -#using - -using namespace System; -using namespace System::Web::Services::Description; -using namespace System::Collections; -using namespace System::Xml; - -int main() -{ - ServiceDescription^ myDescription = ServiceDescription::Read( "AddNumbers1.wsdl" ); - - // Create the 'Binding' object. - Binding^ myBinding = gcnew Binding; - myBinding->Name = "Service1HttpPost"; - XmlQualifiedName^ qualifiedName = gcnew XmlQualifiedName( "s0:Service1HttpPost" ); - myBinding->Type = qualifiedName; - - // - // - // Create the 'HttpBinding' object. - HttpBinding^ myHttpBinding = gcnew HttpBinding; - myHttpBinding->Verb = "POST"; - - // Add the 'HttpBinding' to the 'Binding'. - myBinding->Extensions->Add( myHttpBinding ); - // - // - - // Create the 'OperationBinding' object. - OperationBinding^ myOperationBinding = gcnew OperationBinding; - myOperationBinding->Name = "AddNumbers"; - HttpOperationBinding^ myOperation = gcnew HttpOperationBinding; - myOperation->Location = "/AddNumbers"; - - // Add the 'HttpOperationBinding' to 'OperationBinding'. - myOperationBinding->Extensions->Add( myOperation ); - - // Create the 'InputBinding' object. - InputBinding^ myInput = gcnew InputBinding; - MimeContentBinding^ postMimeContentbinding = gcnew MimeContentBinding; - postMimeContentbinding->Type = "application/x-www-form-urlencoded"; - myInput->Extensions->Add( postMimeContentbinding ); - - // Add the 'InputBinding' to 'OperationBinding'. - myOperationBinding->Input = myInput; - - // Create the 'OutputBinding' object. - OutputBinding^ myOutput = gcnew OutputBinding; - MimeXmlBinding^ postMimeXmlbinding = gcnew MimeXmlBinding; - postMimeXmlbinding->Part = "Body"; - myOutput->Extensions->Add( postMimeXmlbinding ); - - // Add the 'OutPutBinding' to 'OperationBinding'. - myOperationBinding->Output = myOutput; - - // Add the 'OperationBinding' to 'Binding'. - myBinding->Operations->Add( myOperationBinding ); - - // Add the 'Binding' to 'BindingCollection' of 'ServiceDescription'. - myDescription->Bindings->Add( myBinding ); - - // Create a 'Port' object. - Port^ postPort = gcnew Port; - postPort->Name = "Service1HttpPost"; - postPort->Binding = gcnew XmlQualifiedName( "s0:Service1HttpPost" ); - - // - // - // Create the 'HttpAddressBinding' object. - HttpAddressBinding^ postAddressBinding = gcnew HttpAddressBinding; - postAddressBinding->Location = "http://localhost/Service1.asmx"; - - // Add the 'HttpAddressBinding' to the 'Port'. - postPort->Extensions->Add( postAddressBinding ); - // - // - - // Add the 'Port' to 'PortCollection' of 'ServiceDescription'. - myDescription->Services[ 0 ]->Ports->Add( postPort ); - - // Create a 'PortType' object. - PortType^ postPortType = gcnew PortType; - postPortType->Name = "Service1HttpPost"; - Operation^ postOperation = gcnew Operation; - postOperation->Name = "AddNumbers"; - OperationMessage^ postInput = dynamic_cast(gcnew OperationInput); - postInput->Message = gcnew XmlQualifiedName( "s0:AddNumbersHttpPostIn" ); - OperationMessage^ postOutput = dynamic_cast(gcnew OperationOutput); - postOutput->Message = gcnew XmlQualifiedName( "s0:AddNumbersHttpPostOut" ); - postOperation->Messages->Add( postInput ); - postOperation->Messages->Add( postOutput ); - - // Add the 'Operation' to 'PortType'. - postPortType->Operations->Add( postOperation ); - - // Adds the 'PortType' to 'PortTypeCollection' of 'ServiceDescription'. - myDescription->PortTypes->Add( postPortType ); - - // Create the 'Message' object. - Message^ postMessage1 = gcnew Message; - postMessage1->Name = "AddNumbersHttpPostIn"; - - // Create the 'MessageParts'. - MessagePart^ postMessagePart1 = gcnew MessagePart; - postMessagePart1->Name = "firstnumber"; - postMessagePart1->Type = gcnew XmlQualifiedName( "s:string" ); - MessagePart^ postMessagePart2 = gcnew MessagePart; - postMessagePart2->Name = "secondnumber"; - postMessagePart2->Type = gcnew XmlQualifiedName( "s:string" ); - - // Add the 'MessagePart' objects to 'Messages'. - postMessage1->Parts->Add( postMessagePart1 ); - postMessage1->Parts->Add( postMessagePart2 ); - - // Create another 'Message' object. - Message^ postMessage2 = gcnew Message; - postMessage2->Name = "AddNumbersHttpPostOut"; - MessagePart^ postMessagePart3 = gcnew MessagePart; - postMessagePart3->Name = "Body"; - postMessagePart3->Element = gcnew XmlQualifiedName( "s0:int" ); - - // Add the 'MessagePart' to 'Message' - postMessage2->Parts->Add( postMessagePart3 ); - - // Add the 'Message' objects to 'ServiceDescription'. - myDescription->Messages->Add( postMessage1 ); - myDescription->Messages->Add( postMessage2 ); - - // Write the 'ServiceDescription' as a WSDL file. - myDescription->Write( "AddNumbers.wsdl" ); - Console::WriteLine( "WSDL file with name 'AddNumber.Wsdl' file created Successfully" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownClientTypeEntry_Client/CPP/WellKnownClientTypeEntry_Server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownClientTypeEntry_Client/CPP/WellKnownClientTypeEntry_Server.cpp deleted file mode 100644 index 9888745c042c9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownClientTypeEntry_Client/CPP/WellKnownClientTypeEntry_Server.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// This is the server program for the 'WellKnownClientTypeEntry_Client.cpp' program. - -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; - -using namespace System::Runtime::Remoting::Channels::Http; - -public ref class MyServer -{ -public: - static void Run() - { - ChannelServices::RegisterChannel(gcnew HttpChannel(8086)); - // Record the 'HelloServer' type as 'Singleton' well-known type. - WellKnownServiceTypeEntry^ myWellKnownServiceTypeEntry= - gcnew WellKnownServiceTypeEntry(HelloServer::typeid, - "SayHello", - WellKnownObjectMode::Singleton); - RemotingConfiguration::RegisterWellKnownServiceType( - myWellKnownServiceTypeEntry); - Console::WriteLine("Started the Server, Hit to exit..."); - Console::ReadLine(); - } -}; - -int main() -{ - MyServer::Run(); -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownClientTypeEntry_Client/CPP/WellKnownClientTypeEntry_Share.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownClientTypeEntry_Client/CPP/WellKnownClientTypeEntry_Share.cpp deleted file mode 100644 index a0d437c05ba2a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownClientTypeEntry_Client/CPP/WellKnownClientTypeEntry_Share.cpp +++ /dev/null @@ -1,16 +0,0 @@ -using namespace System; - -public ref class HelloServer : public MarshalByRefObject -{ -public: - HelloServer() - { - Console::WriteLine("The hashcode of servicing object:"+this->GetHashCode()); - } -public: - String^ HelloMethod(String^ name) - { - Console::WriteLine("'HelloServer.HelloMethod' method is called by : {0}", name); - return "Hi! " + name + " is calling 'HelloServer.HelloMethod' method. "; - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownClientTypeEntry_Client/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownClientTypeEntry_Client/CPP/makefile deleted file mode 100644 index 3901d52a9e4c8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownClientTypeEntry_Client/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: WellKnownClientTypeEntry_Server.exe WellKnownClientTypeEntry_Client.exe - -WellKnownClientTypeEntry_Server.exe: WellKnownClientTypeEntry_Server.cpp WellKnownClientTypeEntry_Share.dll - cl /clr:pure WellKnownClientTypeEntry_Server.cpp - -WellKnownClientTypeEntry_Client.exe: WellKnownClientTypeEntry_Client.cpp WellKnownClientTypeEntry_Share.dll - cl /clr:pure WellKnownClientTypeEntry_Client.cpp - -WellKnownClientTypeEntry_Share.dll: WellKnownClientTypeEntry_Share.cpp - cl /clr:pure /LD WellKnownClientTypeEntry_Share.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownClientTypeEntry_Client/CPP/wellknownclienttypeentry_client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownClientTypeEntry_Client/CPP/wellknownclienttypeentry_client.cpp deleted file mode 100644 index e970f19660974..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownClientTypeEntry_Client/CPP/wellknownclienttypeentry_client.cpp +++ /dev/null @@ -1,43 +0,0 @@ - - -// System.Runtime.Remoting.WellKnownClientTypeEntry -/* -The following example demonstrates the 'WellKnownClientTypeEntry' class. -It registers a 'HttpChannel' object with the channel services. Then registers the 'HelloServer' -type as well known type with the Remoting Infrastructure at the client end and activates the -remote object. It displays the properties of the 'WellKnownClientTypeEntry' object holding the -values for the above well-known type and makes few method calls on the remote object. -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; - -int main() -{ - // Create a 'HttpChannel' object and register with channel services. - ChannelServices::RegisterChannel( gcnew HttpChannel ); - Console::WriteLine( " Start calling from Client One......." ); - WellKnownClientTypeEntry^ myWellKnownClientTypeEntry = gcnew WellKnownClientTypeEntry( HelloServer::typeid,"http://localhost:8086/SayHello" ); - myWellKnownClientTypeEntry->ApplicationUrl = "http://localhost:8086/SayHello"; - RemotingConfiguration::RegisterWellKnownClientType( myWellKnownClientTypeEntry ); - - // Get the proxy object for the remote object. - HelloServer^ myHelloServerObject = gcnew HelloServer; - - // Retrieve an array of object types registered on the - // client end as well-known types. - array^myWellKnownClientTypeEntryCollection = RemotingConfiguration::GetRegisteredWellKnownClientTypes(); - Console::WriteLine( "The Application Url to activate the Remote Object :{0}", myWellKnownClientTypeEntryCollection[ 0 ]->ApplicationUrl ); - Console::WriteLine( "The 'WellKnownClientTypeEntry' object :{0}", myWellKnownClientTypeEntryCollection[ 0 ] ); - - // Make remote method calls. - for ( int i = 0; i < 5; i++ ) - Console::WriteLine( myHelloServerObject->HelloMethod( " Client One" ) ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownServiceTypeEntry_Server/CPP/WellKnownServiceTypeEntry_Client.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownServiceTypeEntry_Server/CPP/WellKnownServiceTypeEntry_Client.cpp deleted file mode 100644 index 1992406adc918..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownServiceTypeEntry_Server/CPP/WellKnownServiceTypeEntry_Client.cpp +++ /dev/null @@ -1,32 +0,0 @@ -// This is the client program for the 'WellKnownServiceTypeEntry_Server.cs' program. - -using namespace System; -using namespace System::Runtime::Remoting; -#using -#using - -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; - -public ref class MyClient -{ -public: - static void Run() - { - ChannelServices::RegisterChannel(gcnew HttpChannel()); - Console::WriteLine(" Start calling from Client One......."); - WellKnownClientTypeEntry^ myWellKnownClientTypeEntry = - gcnew WellKnownClientTypeEntry(HelloServer::typeid, - "http://localhost:8086/SayHello"); - myWellKnownClientTypeEntry->ApplicationUrl="http://localhost:8086/SayHello"; - RemotingConfiguration::RegisterWellKnownClientType(myWellKnownClientTypeEntry); - HelloServer^ myHelloServerObject = gcnew HelloServer(); - for (int i = 0; i < 5; i++) - Console::WriteLine(myHelloServerObject->HelloMethod(" Client One")); - } -}; - -int main() -{ - MyClient::Run(); -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownServiceTypeEntry_Server/CPP/WellKnownServiceTypeEntry_Share.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownServiceTypeEntry_Server/CPP/WellKnownServiceTypeEntry_Share.cpp deleted file mode 100644 index a0d437c05ba2a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownServiceTypeEntry_Server/CPP/WellKnownServiceTypeEntry_Share.cpp +++ /dev/null @@ -1,16 +0,0 @@ -using namespace System; - -public ref class HelloServer : public MarshalByRefObject -{ -public: - HelloServer() - { - Console::WriteLine("The hashcode of servicing object:"+this->GetHashCode()); - } -public: - String^ HelloMethod(String^ name) - { - Console::WriteLine("'HelloServer.HelloMethod' method is called by : {0}", name); - return "Hi! " + name + " is calling 'HelloServer.HelloMethod' method. "; - } -}; diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownServiceTypeEntry_Server/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownServiceTypeEntry_Server/CPP/makefile deleted file mode 100644 index a509a8a038aa7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownServiceTypeEntry_Server/CPP/makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: WellKnownServiceTypeEntry_Server.exe WellKnownServiceTypeEntry_Client.exe - -WellKnownServiceTypeEntry_Server.exe: WellKnownServiceTypeEntry_Server.cpp WellKnownServiceTypeEntry_Share.dll - cl /clr:pure WellKnownServiceTypeEntry_Server.cpp - -WellKnownServiceTypeEntry_Client.exe: WellKnownServiceTypeEntry_Client.cpp WellKnownServiceTypeEntry_Share.dll - cl /clr:pure WellKnownServiceTypeEntry_Client.cpp - -WellKnownServiceTypeEntry_Share.dll: WellKnownServiceTypeEntry_Share.cpp - cl /clr:pure /LD WellKnownServiceTypeEntry_Share.cpp diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownServiceTypeEntry_Server/CPP/wellknownservicetypeentry_server.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownServiceTypeEntry_Server/CPP/wellknownservicetypeentry_server.cpp deleted file mode 100644 index afa2f82f1c46e..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/WellKnownServiceTypeEntry_Server/CPP/wellknownservicetypeentry_server.cpp +++ /dev/null @@ -1,41 +0,0 @@ - - -// System.Runtime.Remoting.WellKnownServiceTypeEntry -/* -The following example demonstrates the 'WellKnownServiceTypeEntry' class. -It registers a 'HttpChannel' object with the channel services. Then registers the 'HelloServer' -type as well known type with the Remoting Infrastructure at the service end . It displays the -properties of the 'WellKnownServiceTypeEntry' object holding the values for the above well-known -type . -*/ -// -#using -#using -#using - -using namespace System; -using namespace System::Runtime::Remoting; -using namespace System::Runtime::Remoting::Channels; -using namespace System::Runtime::Remoting::Channels::Http; - -int main() -{ - // Create a 'HttpChannel' object and register it with the - // channel services. - ChannelServices::RegisterChannel( gcnew HttpChannel( 8086 ) ); - - // Record the 'HelloServer' type as 'Singleton' well-known type. - WellKnownServiceTypeEntry^ myWellKnownServiceTypeEntry = gcnew WellKnownServiceTypeEntry( HelloServer::typeid,"SayHello",WellKnownObjectMode::Singleton ); - - // Register the remote object as well-known type. - RemotingConfiguration::RegisterWellKnownServiceType( myWellKnownServiceTypeEntry ); - - // Retrieve object types registered on the service end - // as well-known types. - array^myWellKnownServiceTypeEntryCollection = RemotingConfiguration::GetRegisteredWellKnownServiceTypes(); - Console::WriteLine( "The 'WellKnownObjectMode' of the remote object : {0}", myWellKnownServiceTypeEntryCollection[ 0 ]->Mode ); - Console::WriteLine( "The 'WellKnownServiceTypeEntry' object: {0}", myWellKnownServiceTypeEntryCollection[ 0 ] ); - Console::WriteLine( "Started the Server, Hit to exit..." ); - Console::ReadLine(); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XMLAttributeAttribute_ctr1_2/CPP/xmlAttributeAttribute_ctr1_2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XMLAttributeAttribute_ctr1_2/CPP/xmlAttributeAttribute_ctr1_2.cpp deleted file mode 100644 index f12a596e77001..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XMLAttributeAttribute_ctr1_2/CPP/xmlAttributeAttribute_ctr1_2.cpp +++ /dev/null @@ -1,100 +0,0 @@ - - -// System.Xml.Serialization.XmlAttributeAttribute.XmlAttributeAttribute() -// System.Xml.Serialization.XmlAttributeAttribute.XmlAttributeAttribute(String) -/* The following example demonstrates the constructor of XmlAttributeAttribute . -* This sample serializes a class named 'Student'.The StudentName property is -* serialized as an XML attribute.It also serializes a class named 'Book' -*/ -// -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -// This is the class that will be serialized. -public ref class Student -{ -public: - String^ StudentName; - int StudentNumber; -}; - -public ref class Book -{ -public: - String^ BookName; - int BookNumber; -}; - -void SerializeObject( String^ studentFilename, String^ bookFilename ) -{ - XmlSerializer^ mySerializer; - TextWriter^ writer; - - // Create the XmlAttributeOverrides and XmlAttributes objects. - XmlAttributeOverrides^ myXmlAttributeOverrides = gcnew XmlAttributeOverrides; - XmlAttributes^ myXmlAttributes = gcnew XmlAttributes; - - /* Create an XmlAttributeAttribute set it to - the XmlAttribute property of the XmlAttributes object.*/ - XmlAttributeAttribute^ myXmlAttributeAttribute = gcnew XmlAttributeAttribute; - myXmlAttributeAttribute->AttributeName = "Name"; - myXmlAttributes->XmlAttribute = myXmlAttributeAttribute; - - // Add to the XmlAttributeOverrides. Specify the member name. - myXmlAttributeOverrides->Add( Student::typeid, "StudentName", myXmlAttributes ); - - // Create the XmlSerializer. - mySerializer = gcnew XmlSerializer( Student::typeid,myXmlAttributeOverrides ); - writer = gcnew StreamWriter( studentFilename ); - - // Create an instance of the class that will be serialized. - Student^ myStudent = gcnew Student; - - // Set the Name property, which will be generated as an XML attribute. - myStudent->StudentName = "James"; - myStudent->StudentNumber = 1; - - // Serialize the class, and close the TextWriter. - mySerializer->Serialize( writer, myStudent ); - writer->Close(); - - // Create the XmlAttributeOverrides and XmlAttributes objects. - XmlAttributeOverrides^ myXmlBookAttributeOverrides = gcnew XmlAttributeOverrides; - XmlAttributes^ myXmlBookAttributes = gcnew XmlAttributes; - - /* Create an XmlAttributeAttribute set it to - the XmlAttribute property of the XmlAttributes object.*/ - XmlAttributeAttribute^ myXmlBookAttributeAttribute = gcnew XmlAttributeAttribute( "Name" ); - myXmlBookAttributes->XmlAttribute = myXmlBookAttributeAttribute; - - // Add to the XmlAttributeOverrides. Specify the member name. - myXmlBookAttributeOverrides->Add( Book::typeid, "BookName", myXmlBookAttributes ); - - // Create the XmlSerializer. - mySerializer = gcnew XmlSerializer( Book::typeid,myXmlBookAttributeOverrides ); - writer = gcnew StreamWriter( bookFilename ); - - // Create an instance of the class that will be serialized. - Book^ myBook = gcnew Book; - - // Set the Name property, which will be generated as an XML attribute. - myBook->BookName = ".NET"; - myBook->BookNumber = 10; - - // Serialize the class, and close the TextWriter. - mySerializer->Serialize( writer, myBook ); - writer->Close(); -} - -int main() -{ - SerializeObject( "Student.xml", "Book.xml" ); -} -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XMLRootAttribute_Constructor/CPP/xmlrootattribute_constructor.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XMLRootAttribute_Constructor/CPP/xmlrootattribute_constructor.cpp deleted file mode 100644 index a12e4ff3e02c7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XMLRootAttribute_Constructor/CPP/xmlrootattribute_constructor.cpp +++ /dev/null @@ -1,76 +0,0 @@ -// System::Xml::Serialization::XmlRootAttribute.XmlRootAttribute(String*) - -/* The following example demonstrates the constructor -'XmlRootAttribute(String*)' of class 'XmlRootAttribute'. -This program demonstrates 'Student' class to -which the 'XmlRootAttribute(String*)' constructor has been applied. -*/ - -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -// This is the class that is the default root element. -public ref class Student -{ -public: - String^ Name; -}; - -public ref class XMLRootAttributeClass -{ -// -public: - void SerializeOrder( String^ filename ) - { - // Create an XmlSerializer instance using the method below. - XmlSerializer^ myXmlSerializer = CreateOverrider(); - - // Create the object, and set its Name property. - Student^ myStudent = gcnew Student; - myStudent->Name = "Student class1"; - - // Serialize the class, and close the TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - myXmlSerializer->Serialize( writer, myStudent ); - writer->Close(); - } - - // Return an XmlSerializer to the root serialization. - XmlSerializer^ CreateOverrider() - { - // Create an XmlAttributes to the default root element. - XmlAttributes^ myXmlAttributes = gcnew XmlAttributes; - - // Create an XmlRootAttribute overloaded constructer - // and set its namespace. - XmlRootAttribute^ myXmlRootAttribute = - gcnew XmlRootAttribute( "OverriddenRootElementName" ); - myXmlRootAttribute->Namespace = "http://www.microsoft.com"; - - // Set the XmlRoot property to the XmlRoot object. - myXmlAttributes->XmlRoot = myXmlRootAttribute; - XmlAttributeOverrides^ myXmlAttributeOverrides = - gcnew XmlAttributeOverrides; - - // Add the XmlAttributes object to the XmlAttributeOverrides object - myXmlAttributeOverrides->Add( Student::typeid, myXmlAttributes ); - - // Create the Serializer, and return it. - XmlSerializer^ myXmlSerializer = gcnew XmlSerializer( - Student::typeid, myXmlAttributeOverrides ); - return myXmlSerializer; - } -// -}; - -int main() -{ - XMLRootAttributeClass^ myXMLRootAttributeClass = - gcnew XMLRootAttributeClass; - myXMLRootAttributeClass->SerializeOrder( - "XMLRootAttributeConstructor.xml" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XMLRootAttribute_ElementName/CPP/xmlrootattribute_elementname.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XMLRootAttribute_ElementName/CPP/xmlrootattribute_elementname.cpp deleted file mode 100644 index c87e784d7f0a7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XMLRootAttribute_ElementName/CPP/xmlrootattribute_elementname.cpp +++ /dev/null @@ -1,74 +0,0 @@ -// System::Xml::Serialization::XmlRootAttribute.ElementName - -// The following example demonstrates the property -// 'ElementName' of class 'XmlRootAttribute'. -// This program demonstrates 'Student' class to -// which the 'ElementName' property has been applied. - -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -// This is the class that is the default root element. -public ref class Student -{ -public: - String^ Name; -}; - -public ref class XMLRootAttributeClass -{ -// -public: - void SerializeOrder( String^ filename ) - { - // Create an XmlSerializer instance using the method below. - XmlSerializer^ myXmlSerializer = CreateOverrider(); - - // Create the object, and set its Name property. - Student^ myStudent = gcnew Student; - myStudent->Name = "Student class1"; - - // Serialize the class, and close the TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - myXmlSerializer->Serialize( writer, myStudent ); - writer->Close(); - } - - // Return an XmlSerializer to the root serialization. - XmlSerializer^ CreateOverrider() - { - // Create an XmlAttributes to the default root element. - XmlAttributes^ myXmlAttributes = gcnew XmlAttributes; - - // Create an XmlRootAttribute and set its element name and namespace. - XmlRootAttribute^ myXmlRootAttribute = gcnew XmlRootAttribute; - myXmlRootAttribute->ElementName = "OverriddenRootElementName"; - myXmlRootAttribute->Namespace = "http://www.microsoft.com"; - - // Set the XmlRoot property to the XmlRoot object. - myXmlAttributes->XmlRoot = myXmlRootAttribute; - XmlAttributeOverrides^ myXmlAttributeOverrides = - gcnew XmlAttributeOverrides; - - // Add the XmlAttributes object to the XmlAttributeOverrides object. - myXmlAttributeOverrides->Add( Student::typeid, myXmlAttributes ); - - // Create the Serializer, and return it. - XmlSerializer^ myXmlSerializer = gcnew XmlSerializer( - Student::typeid, myXmlAttributeOverrides ); - return myXmlSerializer; - } -// -}; - -int main() -{ - XMLRootAttributeClass^ myXMLRootAttributeClass = - gcnew XMLRootAttributeClass; - myXMLRootAttributeClass->SerializeOrder( - "XMLRootAttributeConstuctor.xml" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XMLTypeAttribute1_2/CPP/xmltypeattribute1_2.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XMLTypeAttribute1_2/CPP/xmltypeattribute1_2.cpp deleted file mode 100644 index df16b69569b7d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XMLTypeAttribute1_2/CPP/xmltypeattribute1_2.cpp +++ /dev/null @@ -1,77 +0,0 @@ - - -// System::Xml::Serialization::XmlTypeAttribute.XmlTypeAttribute() -// System::Xml::Serialization::XmlTypeAttribute.XmlTypeAttribute(String*) -// The following example demonstrates the contructors 'XmlTypeAttribute()' -// and 'XmlTypeAttribute(String*)' of class 'XmlTypeAttribute'. -// This program demonstrates 'Person' and 'Address' classes to -// which the 'XmlTypeAttribute' has been applied.This sample then -// serializes an Object* of class 'Person' into an XML document. -// -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; -public ref class Address -{ -public: - String^ state; - String^ zip; -}; - -public ref class Person -{ -public: - String^ personName; - Address^ address; -}; - -public ref class PersonTypeAttribute -{ -public: - XmlSerializer^ CreateOverrider() - { - XmlAttributeOverrides^ personOverride = gcnew XmlAttributeOverrides; - XmlAttributes^ personAttributes = gcnew XmlAttributes; - XmlTypeAttribute^ personType = gcnew XmlTypeAttribute; - personType->TypeName = "Employee"; - personType->Namespace = "http://www.microsoft.com"; - personAttributes->XmlType = personType; - XmlAttributes^ addressAttributes = gcnew XmlAttributes; - - // Create 'XmlTypeAttribute' with 'TypeName' as an argument. - XmlTypeAttribute^ addressType = gcnew XmlTypeAttribute( "Address" ); - addressType->Namespace = "http://www.microsoft.com"; - addressAttributes->XmlType = addressType; - personOverride->Add( Person::typeid, personAttributes ); - personOverride->Add( Address::typeid, addressAttributes ); - XmlSerializer^ myXmlSerializer = gcnew XmlSerializer( Person::typeid,personOverride ); - return myXmlSerializer; - } - - void SerializeObject( String^ filename ) - { - XmlSerializer^ myXmlSerializer = CreateOverrider(); - Address^ myAddress = gcnew Address; - myAddress->state = "AAA"; - myAddress->zip = "11111"; - Person^ myPerson = gcnew Person; - myPerson->personName = "Smith"; - myPerson->address = myAddress; - - // Serialize to a file. - TextWriter^ writer = gcnew StreamWriter( filename ); - myXmlSerializer->Serialize( writer, myPerson ); - } -}; - -int main() -{ - PersonTypeAttribute^ myPersonTypeAttribute = gcnew PersonTypeAttribute; - myPersonTypeAttribute->SerializeObject( "XmlType.xml" ); -} -// -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XmlAnyAttributeAttribute Example/CPP/source.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XmlAnyAttributeAttribute Example/CPP/source.cpp deleted file mode 100644 index 5c3508dc8e833..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XmlAnyAttributeAttribute Example/CPP/source.cpp +++ /dev/null @@ -1,59 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::IO; -using namespace System::Xml::Serialization; -using namespace System::Xml; - -public ref class Group -{ -public: - String^ GroupName; - - // The UnknownAttributes array will be used to collect all unknown - // attributes found when deserializing. - - [XmlAnyAttributeAttribute] - array^XAttributes; -}; - -void SerializeObject( String^ filename, Object^ g ) -{ - XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid ); - TextWriter^ writer = gcnew StreamWriter( filename ); - ser->Serialize( writer, g ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid ); - - // A FileStream is needed to read the XML document. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Group^ g = safe_cast(ser->Deserialize( fs )); - fs->Close(); - - // Write out the data, including unknown attributes. - Console::WriteLine( g->GroupName ); - Console::WriteLine( "Number of unknown attributes: {0}", g->XAttributes->Length ); - for ( IEnumerator ^ e = g->XAttributes->GetEnumerator(); e->MoveNext(); ) - { - XmlAttribute^ xAtt = safe_cast(e->Current); - Console::WriteLine( "{0}: {1}", xAtt->Name, xAtt->InnerXml ); - } - SerializeObject( "AttributesAdded.xml", g ); -} - -int main() -{ - // Deserialize the file containing unknown attributes. - DeserializeObject( "UnknownAttributes.xml" ); -} - -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XmlAnyAttributeAttribute_ctor Example/CPP/anyattover.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XmlAnyAttributeAttribute_ctor Example/CPP/anyattover.cpp deleted file mode 100644 index 31e83e6251914..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XmlAnyAttributeAttribute_ctor Example/CPP/anyattover.cpp +++ /dev/null @@ -1,58 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::IO; -using namespace System::Xml::Serialization; -using namespace System::Xml; -public ref class Group -{ -public: - String^ GroupName; - - // The Things array will be used to collect all unknown - // attributes found when deserializing. - array^Things; -}; - -XmlSerializer^ CreateOverrideSerializer(); -void DeserializeObject( String^ filename ) -{ - // Use the CreateOverrideSerializer to return an instance - // of the XmlSerializer customized for overrides. - XmlSerializer^ ser = CreateOverrideSerializer(); - - // A FileStream is needed to read the XML document. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Group^ g = safe_cast(ser->Deserialize( fs )); - fs->Close(); - Console::WriteLine( g->GroupName ); - Console::WriteLine( g->Things->Length ); - for ( IEnumerator ^ e = g->Things->GetEnumerator(); e->MoveNext(); ) - { - XmlAttribute^ xAtt = safe_cast(e->Current); - Console::WriteLine( "{0}: {1}", xAtt->Name, xAtt->InnerXml ); - } -} - -XmlSerializer^ CreateOverrideSerializer() -{ - // Override the Things field to capture all - // unknown XML attributes. - XmlAnyAttributeAttribute^ myAnyAttribute = gcnew XmlAnyAttributeAttribute; - XmlAttributeOverrides^ xOverride = gcnew XmlAttributeOverrides; - XmlAttributes^ xAtts = gcnew XmlAttributes; - xAtts->XmlAnyAttribute = myAnyAttribute; - xOverride->Add( Group::typeid, "Things", xAtts ); - return gcnew XmlSerializer( Group::typeid,xOverride ); -} - -int main() -{ - DeserializeObject( "UnknownAttributes.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XmlAnyElementAttribute Example/CPP/anyelement.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XmlAnyElementAttribute Example/CPP/anyelement.cpp deleted file mode 100644 index 9915009fc75f1..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XmlAnyElementAttribute Example/CPP/anyelement.cpp +++ /dev/null @@ -1,117 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Text; -using namespace System::IO; -using namespace System::Xml::Serialization; -using namespace System::Xml; -using namespace System::Xml::Schema; - -[XmlRoot(Namespace="http://www.cohowinery.com")] -public ref class Group -{ -public: - String^ GroupName; - - // This is for serializing Employee elements. - - [XmlAnyElement(Name="Employee")] - array^UnknownEmployees; - - // This is for serializing City elements. - - [XmlAnyElement - (Name="City", - Namespace="http://www.cpandl.com")] - array^UnknownCity; - - // This one is for all other unknown elements. - - [XmlAnyElement] - array^UnknownElements; -}; - -void SerializeObject( String^ filename ) -{ - XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid ); - - // Create an XmlNamespaces to use. - XmlSerializerNamespaces^ namespaces = gcnew XmlSerializerNamespaces; - namespaces->Add( "c", "http://www.cohowinery.com" ); - namespaces->Add( "i", "http://www.cpandl.com" ); - Group^ myGroup = gcnew Group; - - // Create arrays of arbitrary XmlElement objects. - // First create an XmlDocument, used to create the - // XmlElement objects. - XmlDocument^ xDoc = gcnew XmlDocument; - - // Create an array of Employee XmlElement objects. - XmlElement^ El1 = xDoc->CreateElement( "Employee", "http://www.cohowinery.com" ); - El1->InnerText = "John"; - XmlElement^ El2 = xDoc->CreateElement( "Employee", "http://www.cohowinery.com" ); - El2->InnerText = "Joan"; - XmlElement^ El3 = xDoc->CreateElement( "Employee", "http://www.cohowinery.com" ); - El3->InnerText = "Jim"; - array^employees = {El1,El2,El3}; - myGroup->UnknownEmployees = employees; - - // Create an array of City XmlElement objects. - XmlElement^ inf1 = xDoc->CreateElement( "City", "http://www.cpandl.com" ); - inf1->InnerText = "Tokyo"; - XmlElement^ inf2 = xDoc->CreateElement( "City", "http://www.cpandl.com" ); - inf2->InnerText = "New York"; - XmlElement^ inf3 = xDoc->CreateElement( "City", "http://www.cpandl.com" ); - inf3->InnerText = "Rome"; - array^cities = {inf1,inf2,inf3}; - myGroup->UnknownCity = cities; - XmlElement^ xEl1 = xDoc->CreateElement( "bld" ); - xEl1->InnerText = "42"; - XmlElement^ xEl2 = xDoc->CreateElement( "Region" ); - xEl2->InnerText = "West"; - XmlElement^ xEl3 = xDoc->CreateElement( "type" ); - xEl3->InnerText = "Technical"; - array^elements = {xEl1,xEl2,xEl3}; - myGroup->UnknownElements = elements; - - // Serialize the class, and close the TextWriter. - TextWriter^ writer = gcnew StreamWriter( filename ); - ser->Serialize( writer, myGroup, namespaces ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid ); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Group^ myGroup; - myGroup = safe_cast(ser->Deserialize( fs )); - fs->Close(); - for ( int i = 0; i < myGroup->UnknownEmployees->Length; ++i ) - { - XmlElement^ xEmp = myGroup->UnknownEmployees[ i ]; - Console::WriteLine( "{0}: {1}", xEmp->LocalName, xEmp->InnerText ); - } - for ( int i = 0; i < myGroup->UnknownCity->Length; ++i ) - { - XmlElement^ xCity = myGroup->UnknownCity[ i ]; - Console::WriteLine( "{0}: {1}", xCity->LocalName, xCity->InnerText ); - } - for ( int i = 0; i < myGroup->UnknownElements->Length; ++i ) - { - XmlElement^ xEmp = myGroup->UnknownElements[ i ]; - Console::WriteLine( "{0}: {1}", xEmp->LocalName, xEmp->InnerText ); - } -} - -int main() -{ - SerializeObject( "AnyElementArray.xml" ); - DeserializeObject( "AnyElementArray.xml" ); - Console::WriteLine( "Done" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XmlArrayItemAttribute Example/CPP/arrayitem.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XmlArrayItemAttribute Example/CPP/arrayitem.cpp deleted file mode 100644 index 9787259757cea..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XmlArrayItemAttribute Example/CPP/arrayitem.cpp +++ /dev/null @@ -1,107 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Collections; -using namespace System::Xml; -using namespace System::Xml::Serialization; -using namespace System::IO; -using namespace System::Xml::Schema; -public ref class Item -{ -public: - String^ ItemID; - Item(){} - - Item( String^ id ) - { - ItemID = id; - } -}; - -public ref class NewItem: public Item -{ -public: - String^ Category; - NewItem(){} - - NewItem( String^ id, String^ cat ) - { - ItemID = id; - Category = cat; - } -}; - -public ref class PurchaseOrder -{ -public: - - [XmlArrayItem(DataType="gMonth", - ElementName="MyMonths", - Namespace="http://www.cohowinery.com")] - array^Months; - - [XmlArrayItem(Item::typeid),XmlArrayItem(NewItem::typeid)] - array^Items; - - [XmlArray(IsNullable=true)] - [XmlArrayItem(String::typeid), - XmlArrayItem(Double::typeid), - XmlArrayItem(NewItem::typeid)] - array^Things; -}; - -void SerializeObject( String^ filename ) -{ - // Create an instance of the XmlSerializer class; - // specify the type of object to serialize. - XmlSerializer^ serializer = gcnew XmlSerializer( PurchaseOrder::typeid ); - TextWriter^ writer = gcnew StreamWriter( filename ); - - // Create a PurchaseOrder and set its properties. - PurchaseOrder^ po = gcnew PurchaseOrder; - array^months = {"March","May","August"}; - po->Months = months; - array^items = {gcnew Item( "a1" ),gcnew NewItem( "b1","book" )}; - po->Items = items; - array^things = {"String",2003.31,gcnew NewItem( "Item100","book" )}; - po->Things = things; - - // Serialize the purchase order, and close the TextWriter. - serializer->Serialize( writer, po ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - // Create an instance of the XmlSerializer class; - // specify the type of object to be deserialized. - XmlSerializer^ serializer = gcnew XmlSerializer( PurchaseOrder::typeid ); - - // A FileStream is needed to read the XML document. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - - // Declare an object variable of the type to be deserialized. - PurchaseOrder^ po; - - /* Use the Deserialize method to restore the object's state with - data from the XML document. */ - po = safe_cast(serializer->Deserialize( fs )); - for ( int i = 0; i < po->Months->Length; ++i ) - Console::WriteLine( po->Months[ i ] ); - for ( int i = 0; i < po->Items->Length; ++i ) - Console::WriteLine( po->Items[ i ]->ItemID ); - for ( int i = 0; i < po->Things->Length; ++i ) - Console::WriteLine( po->Things[ i ] ); -} - -int main() -{ - // Read and write purchase orders. - SerializeObject( "ArrayItemEx.xml" ); - DeserializeObject( "ArrayItemEx.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XmlAttributes.XmlAnyElements/CPP/xmlanyover.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XmlAttributes.XmlAnyElements/CPP/xmlanyover.cpp deleted file mode 100644 index 37278b0a8b3ae..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XmlAttributes.XmlAnyElements/CPP/xmlanyover.cpp +++ /dev/null @@ -1,71 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; -using namespace System::Xml; -public ref class Group -{ -public: - String^ GroupName; - - [XmlAnyElement] - array^Things; -}; - -void SerializeObject( String^ filename ); -void DeserializeObject( String^ filename ); -XmlSerializer^ CreateOverrideSerializer(); -int main() -{ - // 1 Run this and create the XML document. - // 2 Add new elements to the XML document. - // 3 Comment out the next line, and uncomment - // the DeserializeObject line to deserialize the - // XML document and see unknown elements. - SerializeObject( "UnknownElements.xml" ); - - // DeserializeObject(S"UnknownElements.xml"); -} - -void SerializeObject( String^ filename ) -{ - XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid ); - TextWriter^ writer = gcnew StreamWriter( filename ); - Group^ g = gcnew Group; - g->GroupName = "MyGroup"; - ser->Serialize( writer, g ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlSerializer^ ser = CreateOverrideSerializer(); - - // A FileStream is needed to read the XML document. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Group^ g = safe_cast(ser->Deserialize( fs )); - fs->Close(); - Console::WriteLine( g->GroupName ); - Console::WriteLine( g->Things->Length ); - for ( int i = 0; i < g->Things->Length; ++i ) - { - XmlElement^ xelement = safe_cast(g->Things[ i ]); - Console::WriteLine( "{0}: {1}", xelement->Name, xelement->InnerXml ); - } -} - -XmlSerializer^ CreateOverrideSerializer() -{ - XmlAnyElementAttribute^ myAnyElement = gcnew XmlAnyElementAttribute; - XmlAttributeOverrides^ xOverride = gcnew XmlAttributeOverrides; - XmlAttributes^ xAtts = gcnew XmlAttributes; - xAtts->XmlAnyElements->Add( myAnyElement ); - xOverride->Add( Group::typeid, "Things", xAtts ); - return gcnew XmlSerializer( Group::typeid,xOverride ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XmlAttributes.Xmlns property example/CPP/xmlns.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XmlAttributes.Xmlns property example/CPP/xmlns.cpp deleted file mode 100644 index a86b3632f0694..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XmlAttributes.Xmlns property example/CPP/xmlns.cpp +++ /dev/null @@ -1,86 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml; -using namespace System::Xml::Serialization; -public ref class Student -{ -public: - - [XmlAttributeAttribute] - String^ Name; - - [XmlNamespaceDeclarationsAttribute] - XmlSerializerNamespaces^ myNamespaces; -}; - -void SerializeStudent( String^ filename ); -void DeserializeStudent( String^ filename ); -int main() -{ - SerializeStudent( "Student.xml" ); - DeserializeStudent( "Student.xml" ); -} - -void SerializeStudent( String^ filename ) -{ - XmlAttributes^ atts = gcnew XmlAttributes; - - // Set to true to preserve namespaces, - // or false to ignore them. - atts->Xmlns = true; - XmlAttributeOverrides^ xover = gcnew XmlAttributeOverrides; - - // Add the XmlAttributes and specify the name of the element - // containing namespaces. - xover->Add( Student::typeid, "myNamespaces", atts ); - - // Create the XmlSerializer using the - // XmlAttributeOverrides object. - XmlSerializer^ xser = gcnew XmlSerializer( Student::typeid,xover ); - Student^ myStudent = gcnew Student; - XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces; - ns->Add( "myns1", "http://www.cpandl.com" ); - ns->Add( "myns2", "http://www.cohowinery.com" ); - myStudent->myNamespaces = ns; - myStudent->Name = "Student1"; - FileStream^ fs = gcnew FileStream( filename,FileMode::Create ); - xser->Serialize( fs, myStudent ); - fs->Close(); -} - -void DeserializeStudent( String^ filename ) -{ - XmlAttributes^ atts = gcnew XmlAttributes; - - // Set to true to preserve namespaces, or false to ignore them. - atts->Xmlns = true; - XmlAttributeOverrides^ xover = gcnew XmlAttributeOverrides; - - // Add the XmlAttributes and specify the name of the - // element containing namespaces. - xover->Add( Student::typeid, "myNamespaces", atts ); - - // Create the XmlSerializer using the - // XmlAttributeOverrides object. - XmlSerializer^ xser = gcnew XmlSerializer( Student::typeid,xover ); - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Student^ myStudent; - myStudent = safe_cast(xser->Deserialize( fs )); - fs->Close(); - - // Use the ToArray method to get an array of - // XmlQualifiedName objects. - array^qNames = myStudent->myNamespaces->ToArray(); - for ( int i = 0; i < qNames->Length; i++ ) - { - Console::WriteLine( "{0}:{1}", qNames[ i ]->Name, qNames[ i ]->Namespace ); - - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XmlChoiceIdentifierAttribute Example/CPP/choice.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XmlChoiceIdentifierAttribute Example/CPP/choice.cpp deleted file mode 100644 index 51329745b7a77..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XmlChoiceIdentifierAttribute Example/CPP/choice.cpp +++ /dev/null @@ -1,131 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Xml::Serialization; -using namespace System::IO; - -[XmlType(IncludeInSchema=false)] - -public enum class ItemChoiceType -{ - None, Word, Number, DecimalNumber -}; - -public enum class MoreChoices -{ - None, Item, Amount, Temp -}; - -public ref class Choices -{ -public: - - // The MyChoice field can be set to any one of - // the types below. - - [XmlChoiceIdentifier("EnumType")] - [XmlElement("Word",String::typeid)] - [XmlElement("Number",Int32::typeid)] - [XmlElement("DecimalNumber",Double::typeid)] - Object^ MyChoice; - - // Don't serialize this field. The EnumType field - // contains the enumeration value that corresponds - // to the MyChoice field value. - - [XmlIgnore] - ItemChoiceType EnumType; - - // The ManyChoices field can contain an array - // of choices. Each choice must be matched to - // an array item in the ChoiceArray field. - - [XmlChoiceIdentifier("ChoiceArray")] - [XmlElement("Item",String::typeid)] - [XmlElement("Amount",Int32::typeid)] - [XmlElement("Temp",Double::typeid)] - array^ManyChoices; - - // TheChoiceArray field contains the enumeration - // values, one for each item in the ManyChoices array. - - [XmlIgnore] - array^ChoiceArray; -}; - -void SerializeObject( String^ filename ); -void DeserializeObject( String^ filename ); -int main() -{ - SerializeObject( "Choices.xml" ); - DeserializeObject( "Choices.xml" ); -} - -void SerializeObject( String^ filename ) -{ - XmlSerializer^ mySerializer = gcnew XmlSerializer( Choices::typeid ); - TextWriter^ writer = gcnew StreamWriter( filename ); - Choices^ myChoices = gcnew Choices; - - // Set the MyChoice field to a string. Set the - // EnumType to Word. - myChoices->MyChoice = "Book"; - myChoices->EnumType = ItemChoiceType::Word; - - // Populate an object array with three items, one - // of each enumeration type. Set the array to the - // ManyChoices field. - array^strChoices = {"Food",5,98.6}; - myChoices->ManyChoices = strChoices; - - // For each item in the ManyChoices array, add an - // enumeration value. - array^ itmChoices = {MoreChoices::Item,MoreChoices::Amount,MoreChoices::Temp}; - myChoices->ChoiceArray = itmChoices; - mySerializer->Serialize( writer, myChoices ); - writer->Close(); -} - -void DeserializeObject( String^ filename ) -{ - XmlSerializer^ ser = gcnew XmlSerializer( Choices::typeid ); - - // A FileStream is needed to read the XML document. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Choices^ myChoices = safe_cast(ser->Deserialize( fs )); - fs->Close(); - - // Disambiguate the MyChoice value using the enumeration. - if ( myChoices->EnumType == ItemChoiceType::Word ) - { - Console::WriteLine( "Word: {0}", myChoices->MyChoice->ToString() ); - } - else - if ( myChoices->EnumType == ItemChoiceType::Number ) - { - Console::WriteLine( "Number: {0}", myChoices->MyChoice->ToString() ); - } - else - if ( myChoices->EnumType == ItemChoiceType::DecimalNumber ) - { - Console::WriteLine( "DecimalNumber: {0}", myChoices->MyChoice->ToString() ); - } - - // Disambiguate the ManyChoices values using the enumerations. - for ( int i = 0; i < myChoices->ManyChoices->Length; i++ ) - { - if ( myChoices->ChoiceArray[ i ] == MoreChoices::Item ) - Console::WriteLine( "Item: {0}", myChoices->ManyChoices[ i ] ); - else - if ( myChoices->ChoiceArray[ i ] == MoreChoices::Amount ) - Console::WriteLine( "Amount: ", myChoices->ManyChoices[ i ]->ToString() ); - if ( myChoices->ChoiceArray[ i ] == MoreChoices::Temp ) - Console::WriteLine( "Temp: {0}", myChoices->ManyChoices[ i ]->ToString() ); - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerialization_IXmlSerializable/CPP/makefile b/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerialization_IXmlSerializable/CPP/makefile deleted file mode 100644 index 3d8d5b129d1e0..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerialization_IXmlSerializable/CPP/makefile +++ /dev/null @@ -1,9 +0,0 @@ -all: Reader.exe Writer.exe -Reader.exe: Reader.cpp Person.dll - cl /clr:pure Reader.cpp -Writer.exe: Writer.cpp Person.dll - cl /clr:pure Writer.cpp -Person.dll: Person.cpp - cl /LD /clr:pure Person.cpp -clean: - del *.exe diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerialization_IXmlSerializable/CPP/person.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerialization_IXmlSerializable/CPP/person.cpp deleted file mode 100644 index 61dea2ac4264f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerialization_IXmlSerializable/CPP/person.cpp +++ /dev/null @@ -1,58 +0,0 @@ - - -// -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Xml::Schema; -using namespace System::Xml::Serialization; -public ref class Person: public IXmlSerializable -{ -private: - - // Private state - String^ personName; - -public: - - // Constructors - Person( String^ name ) - { - personName = name; - } - - Person() - { - personName = nullptr; - } - - // Xml Serialization Infrastructure - // - virtual void WriteXml( XmlWriter^ writer ) - { - writer->WriteString( personName ); - } - // - - // - virtual void ReadXml( XmlReader^ reader ) - { - personName = reader->ReadString(); - } - // - - // - virtual XmlSchema^ GetSchema() - { - return nullptr; - } - // - - // Print - virtual String^ ToString() override - { - return (personName); - } -}; -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerialization_IXmlSerializable/CPP/reader.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerialization_IXmlSerializable/CPP/reader.cpp deleted file mode 100644 index f5ab5ef1cb045..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerialization_IXmlSerializable/CPP/reader.cpp +++ /dev/null @@ -1,19 +0,0 @@ - - -// -#using -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; - -int main() -{ - XmlSerializer^ serializer = gcnew XmlSerializer( Person::typeid ); - FileStream^ file = gcnew FileStream( "test.xml",FileMode::Open ); - Person^ aPerson = dynamic_cast(serializer->Deserialize( file )); - Console::WriteLine( aPerson ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerialization_IXmlSerializable/CPP/writer.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerialization_IXmlSerializable/CPP/writer.cpp deleted file mode 100644 index 35d2a29a53238..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerialization_IXmlSerializable/CPP/writer.cpp +++ /dev/null @@ -1,22 +0,0 @@ - - -// -#using -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Xml::Serialization; - -int main() -{ - // Create a person object. - Person ^ fred = gcnew Person( "Fred Flintstone" ); - - // Serialize the object to a file. - XmlTextWriter^ writer = gcnew XmlTextWriter( "test.xml", nullptr ); - XmlSerializer^ serializer = gcnew XmlSerializer( Person::typeid ); - serializer->Serialize( writer, fred ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerializer.UnknownElement Example/CPP/unknownelement.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerializer.UnknownElement Example/CPP/unknownelement.cpp deleted file mode 100644 index 22cef24ad7a88..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerializer.UnknownElement Example/CPP/unknownelement.cpp +++ /dev/null @@ -1,56 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; -using namespace System::Xml; -using namespace System::Xml::Schema; - -public ref class Group -{ -public: - String^ GroupName; -}; - -public ref class Test -{ -private: - void Serializer_UnknownElement( Object^ sender, XmlElementEventArgs^ e ) - { - Console::WriteLine( "Unknown Element" ); - Console::Write( "\t {0}", e->Element->Name ); - Console::WriteLine( " {0}", e->Element->InnerXml ); - Console::WriteLine( "\t LineNumber: {0}", e->LineNumber ); - Console::WriteLine( "\t LinePosition: {0}", e->LinePosition ); - Group^ x = dynamic_cast(e->ObjectBeingDeserialized); - Console::WriteLine( x->GroupName ); - Console::WriteLine( sender ); - } - -public: - void DeserializeObject( String^ filename ) - { - XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid ); - - // Add a delegate to handle unknown element events. - ser->UnknownElement += gcnew XmlElementEventHandler( this, &Test::Serializer_UnknownElement ); - - // A FileStream is needed to read the XML document. - FileStream^ fs = gcnew FileStream( filename,FileMode::Open ); - Group^ g = dynamic_cast(ser->Deserialize( fs )); - fs->Close(); - } -}; - -int main() -{ - Test^ t = gcnew Test; - - // Deserialize the file containing unknown elements. - t->DeserializeObject( "UnknownElements.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerializerNameSpaces_Constructor/CPP/xmlserializernamespaces_constructor.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerializerNameSpaces_Constructor/CPP/xmlserializernamespaces_constructor.cpp deleted file mode 100644 index e453759982a28..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XmlSerializerNameSpaces_Constructor/CPP/xmlserializernamespaces_constructor.cpp +++ /dev/null @@ -1,79 +0,0 @@ -// System::Xml::Serialization::XmlSerializerNamespaces.constructor - -// The following example demonstrates the constructor of class -// XmlSerializerNamespaces. This sample serializes an Object* of 'MyPriceClass' -// into an XML document. - -#using -#using - -using namespace System; -using namespace System::Xml; -using namespace System::Xml::Serialization; -using namespace System::IO; - -public ref class MyPriceClass -{ -public: - [XmlAttributeAttribute] - String^ Units; - Decimal Price; -}; - -public ref class MyBook -{ -public: - String^ BookName; - String^ Author; - MyPriceClass^ BookPrice; - String^ Description; -}; - -public ref class MyMainClass -{ -// -public: - void CreateBook( String^ filename ) - { - try - { - // Create instance of XmlSerializerNamespaces and add the namespaces. - XmlSerializerNamespaces^ myNameSpaces = gcnew XmlSerializerNamespaces; - myNameSpaces->Add( "BookName", "http://www.cpandl.com" ); - - // Create instance of XmlSerializer and specify the type of object - // to be serialized. - XmlSerializer^ mySerializerObject = - gcnew XmlSerializer( MyBook::typeid ); - - TextWriter^ myWriter = gcnew StreamWriter( filename ); - // Create object to be serialized. - MyBook^ myXMLBook = gcnew MyBook; - - myXMLBook->Author = "XMLAuthor"; - myXMLBook->BookName = "DIG THE XML"; - myXMLBook->Description = "This is a XML Book"; - - MyPriceClass^ myBookPrice = gcnew MyPriceClass; - myBookPrice->Price = (Decimal)45.89; - myBookPrice->Units = "$"; - myXMLBook->BookPrice = myBookPrice; - - // Serialize the object. - mySerializerObject->Serialize( myWriter, myXMLBook, myNameSpaces ); - myWriter->Close(); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception: {0} occurred", e->Message ); - } - } -// -}; - -int main() -{ - MyMainClass^ myMain = gcnew MyMainClass; - // Create the XML document. - myMain->CreateBook( "myBook.xml" ); -} diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/XmlTypeMapping Example/CPP/mapping.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/XmlTypeMapping Example/CPP/mapping.cpp deleted file mode 100644 index 8f321e5bf2479..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/XmlTypeMapping Example/CPP/mapping.cpp +++ /dev/null @@ -1,67 +0,0 @@ - - -// -#using -#using - -using namespace System; -using namespace System::IO; -using namespace System::Xml::Serialization; -using namespace System::Collections; -using namespace System::Xml; -using namespace System::Text; - -public ref class Thing -{ -public: - String^ ThingName; -}; - -[SoapType("TheGroup","http://www.cohowinery.com")] -public ref class Group -{ -public: - String^ GroupName; - array^Things; - - [SoapElement(DataType="language")] - static String^ Lang = "en"; - - [SoapElement(DataType="integer")] - String^ MyNumber; - - [SoapElement(DataType="duration")] - static String^ ReDate = "8/31/01"; -}; - -void GetMap( String^ filename ) -{ - // Create an XmlSerializer instance. - SoapReflectionImporter^ sri = gcnew SoapReflectionImporter; - XmlTypeMapping^ map = sri->ImportTypeMapping( Group::typeid ); - Console::WriteLine( "ElementName: {0}", map->ElementName ); - Console::WriteLine( "Namespace: {0}", map->Namespace ); - Console::WriteLine( "TypeFullName: {0}", map->TypeFullName ); - Console::WriteLine( "TypeName: {0}", map->TypeName ); - XmlSerializer^ ser = gcnew XmlSerializer( map ); - Group^ xGroup = gcnew Group; - xGroup->GroupName = "MyCar"; - xGroup->MyNumber = "5454"; - xGroup->Things = gcnew array(2); // {new Thing(), new Thing()}; - xGroup->Things[ 0 ] = gcnew Thing; - xGroup->Things[ 1 ] = gcnew Thing; - - // To write the outer wrapper, use an XmlTextWriter. - XmlTextWriter^ writer = gcnew XmlTextWriter( filename,Encoding::UTF8 ); - writer->Formatting = Formatting::Indented; - writer->WriteStartElement( "wrapper" ); - ser->Serialize( writer, xGroup ); - writer->WriteEndElement(); - writer->Close(); -} - -int main() -{ - GetMap( "MyMap.xml" ); -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Remoting/dnspermission_union_intersect/CPP/dnspermission_union_intersect.cpp b/samples/snippets/cpp/VS_Snippets_Remoting/dnspermission_union_intersect/CPP/dnspermission_union_intersect.cpp deleted file mode 100644 index a1d62acbb7b93..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Remoting/dnspermission_union_intersect/CPP/dnspermission_union_intersect.cpp +++ /dev/null @@ -1,97 +0,0 @@ -/* -This program demonstrates the 'Intersect' and 'Union' methods of 'DnsPermission' class. -It creates a 'DnsPermission' instance that is the Union/Intersection of current permission -instance and specified permission instance. -*/ - -#using - -using namespace System; -using namespace System::Net; -using namespace System::Security; -using namespace System::Security::Permissions; -using namespace System::Collections; - -public ref class DnsPermissionExample -{ -private: - DnsPermission^ dnsPermission1; - DnsPermission^ dnsPermission2; - - // -private: - void MyUnion() - { - // Create a DnsPermission instance that is the union of the current DnsPermission - // instance and the specified DnsPermission instance. - DnsPermission^ permission = dynamic_cast(dnsPermission1->Union( dnsPermission2 )); - // Print the attributes and the values of the union instance of DnsPermission. - PrintKeysAndValues( permission->ToXml()->Attributes ); - } - - // -public: - void useDns() - { - // Create a DnsPermission instance. - dnsPermission1 = gcnew DnsPermission( PermissionState::Unrestricted ); - dnsPermission2 = gcnew DnsPermission( PermissionState::None ); - // Check for permission. - dnsPermission1->Demand(); - dnsPermission2->Demand(); - Console::WriteLine( "Attributes and Values of first DnsPermission instance :" ); - PrintKeysAndValues( dnsPermission1->ToXml()->Attributes ); - Console::WriteLine( "Attributes and Values of second DnsPermission instance :" ); - PrintKeysAndValues( dnsPermission2->ToXml()->Attributes ); - Console::WriteLine( "Union of both instances : " ); - MyUnion(); - Console::WriteLine( "Intersection of both instances : " ); - MyIntersection(); - } - -private: - void PrintKeysAndValues( Hashtable^ myList ) - { - // Get the enumerator that can iterate through the hash tabble. - IDictionaryEnumerator^ myEnumerator = myList->GetEnumerator(); - Console::WriteLine( "\t-KEY-\t-VALUE-" ); - while ( myEnumerator->MoveNext() ) - { - Console::WriteLine( "\t {0}:\t {1}", myEnumerator->Key, myEnumerator->Value ); - } - Console::WriteLine(); - } - // - - // Create a DnsPermission instance that is the intersection of current - // DnsPermission instance and the specified DnsPermission instance. - void MyIntersection() - { - DnsPermission^ permission = dynamic_cast(dnsPermission1->Intersect( dnsPermission2 )); - // Print the attributes and the values of the intersection instance of - // DnsPermission. - PrintKeysAndValues( permission->ToXml()->Attributes ); - } - // -}; - -int main() -{ - try - { - DnsPermissionExample^ dnsPermissionExampleObj = gcnew DnsPermissionExample; - dnsPermissionExampleObj->useDns(); - } - catch ( SecurityException^ e ) - { - Console::WriteLine( "SecurityException caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } - catch ( Exception^ e ) - { - Console::WriteLine( "Exception caught!!!" ); - Console::WriteLine( "Source : {0}", e->Source ); - Console::WriteLine( "Message : {0}", e->Message ); - } -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/BitMapMetadata/CPP/BitmapMetadata.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/BitMapMetadata/CPP/BitmapMetadata.cpp deleted file mode 100644 index 93100c5d8ddec..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/BitMapMetadata/CPP/BitmapMetadata.cpp +++ /dev/null @@ -1,92 +0,0 @@ -//BitmapMetadata.cpp file - -using namespace System; -using namespace System::IO; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; -using namespace System::Windows::Media::Imaging; -using namespace System::Threading; -using namespace System::Security; - - -namespace SDKSample { - - public ref class app : Application { - - private: Window^ mainWindow; - - protected: virtual void OnStartup (StartupEventArgs^ e) override - { - Application::OnStartup(e); - CreateAndShowMainWindow(); - }; - - private: void CreateAndShowMainWindow () - { - - // Create the application's main window - mainWindow = gcnew Window(); - mainWindow->Title = "Image Metadata"; - - // - Stream^ pngStream = gcnew FileStream("smiley.png", FileMode::Open, FileAccess::ReadWrite, FileShare::ReadWrite); - PngBitmapDecoder^ pngDecoder = gcnew PngBitmapDecoder(pngStream, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default); - BitmapFrame^ pngFrame = pngDecoder->Frames[0]; - InPlaceBitmapMetadataWriter^ pngInplace = pngFrame->CreateInPlaceBitmapMetadataWriter(); - if (pngInplace->TrySave() == true) - { - pngInplace->SetQuery("/Text/Description", "Have a nice day."); - } - pngStream->Close(); - // - - // Draw the Image - Image^ myImage = gcnew Image(); - myImage->Source = gcnew BitmapImage(gcnew System::Uri("smiley.png", UriKind::Relative)); - myImage->Stretch = Stretch::None; - myImage->Margin = System::Windows::Thickness(20); - - // - - // Add the metadata of the bitmap image to the text block. - TextBlock^ myTextBlock = gcnew TextBlock(); - myTextBlock->Text = "The Description metadata of this image is: " + pngInplace->GetQuery("/Text/Description")->ToString(); - // - - // Define a StackPanel to host Controls - StackPanel^ myStackPanel = gcnew StackPanel(); - myStackPanel->Orientation = Orientation::Vertical; - myStackPanel->Height = 200; - myStackPanel->VerticalAlignment = VerticalAlignment::Top; - myStackPanel->HorizontalAlignment = HorizontalAlignment::Center; - - // Add the Image and TextBlock to the parent Grid - myStackPanel->Children->Add(myImage); - myStackPanel->Children->Add(myTextBlock); - - // Add the StackPanel as the Content of the Parent Window Object - mainWindow->Content = myStackPanel; - mainWindow->Show(); - }; - }; - - // Define a static entry class - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () - { - SDKSample::app^ app = gcnew SDKSample::app(); - app->Run(); - }; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -void main () -{ - return SDKSample::EntryClass::Main(); -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/BitMapMetadata/CPP/bitmapmetadata.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/BitMapMetadata/CPP/bitmapmetadata.vcxproj deleted file mode 100644 index 74b2f3f4b0298..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/BitMapMetadata/CPP/bitmapmetadata.vcxproj +++ /dev/null @@ -1,123 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21125.1 - .\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/BitMapMetadata/CPP/smiley.png b/samples/snippets/cpp/VS_Snippets_Wpf/BitMapMetadata/CPP/smiley.png deleted file mode 100644 index 1e0b9496cad2e2133d1edb7c4d3511a059772473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4599 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 -#using -#using -#using -#using -#using -#using -#using -#using */ -namespace SDKSample { - ref class app; - ref class EntryClass; -} - -using namespace System; -using namespace System::Collections::Generic; -using namespace System::IO; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; -using namespace System::Windows::Media::Imaging; -using namespace System::Threading; - -namespace SDKSample { - - public ref class app : Application { - - private: System::Windows::Window^ mainWindow; - - protected: virtual void OnStartup (System::Windows::StartupEventArgs^ e) override ; - - private: void CreateAndShowMainWindow () ; - }; - - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () ; - }; -} - diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/BmpBitmapDecoderEncoder/CPP/anotherfile.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/BmpBitmapDecoderEncoder/CPP/anotherfile.cpp deleted file mode 100644 index 9c9135fadd295..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/BmpBitmapDecoderEncoder/CPP/anotherfile.cpp +++ /dev/null @@ -1,134 +0,0 @@ -using namespace System; -using namespace System::Collections::Generic; -using namespace System::IO; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; -using namespace System::Windows::Media::Imaging; -using namespace System::Threading; -using namespace System::Security; - -namespace SDKSample { - - public ref class app : Application { - - private: System::Windows::Window^ mainWindow; - - protected: virtual void OnStartup (System::Windows::StartupEventArgs^ e) override - { - Application::OnStartup(e); - CreateAndShowMainWindow(); - }; - - private: void CreateAndShowMainWindow () - { - // Create the application's main window - mainWindow = gcnew System::Windows::Window(); - mainWindow->Title = "BMP Imaging Sample"; - ScrollViewer^ mySV = gcnew ScrollViewer(); - - // - int width = 128; - int height = width; - int stride = width / 8; - array^ pixels = gcnew array(height * stride); - - List^ colors = gcnew List(); - colors->Add(Colors::Red); - colors->Add(Colors::Blue); - colors->Add(Colors::Green); - BitmapPalette^ myPalette = gcnew BitmapPalette(colors); - - // Creates a new empty image with the pre-defined palette - - // - BitmapSource^ image = BitmapSource::Create( - width, - height, - 96, - 96, - PixelFormats::Indexed1, - myPalette, - pixels, - stride); - // - - // - FileStream^ stream = gcnew FileStream("new.bmp", FileMode::Create); - BmpBitmapEncoder^ encoder = gcnew BmpBitmapEncoder(); - TextBlock^ myTextBlock = gcnew TextBlock(); - myTextBlock->Text = "Codec Author is: " + encoder->CodecInfo->Author->ToString(); - encoder->Frames->Add(BitmapFrame::Create(image)); - encoder->Save(stream); - // - - // - - // - - // Open a Stream and decode a BMP image - Stream^ imageStreamSource = gcnew FileStream("tulipfarm.bmp", FileMode::Open, FileAccess::Read, FileShare::Read); - BmpBitmapDecoder^ decoder = gcnew BmpBitmapDecoder(imageStreamSource, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default); - BitmapSource^ bitmapSource = decoder->Frames[0]; - - // Draw the Image - Image^ myImage = gcnew Image(); - myImage->Source = bitmapSource; - myImage->Stretch = Stretch::None; - myImage->Margin = System::Windows::Thickness(20); - // - - // - - // Open a Uri and decode a BMP image - System::Uri^ myUri = gcnew System::Uri("tulipfarm.bmp", UriKind::RelativeOrAbsolute); - BmpBitmapDecoder^ decoder2 = gcnew BmpBitmapDecoder(myUri, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default); - BitmapSource^ bitmapSource2 = decoder2->Frames[0]; - - // Draw the Image - Image^ myImage2 = gcnew Image(); - myImage2->Source = bitmapSource2; - myImage2->Stretch = Stretch::None; - myImage2->Margin = System::Windows::Thickness(20); - // - - // Define a StackPanel to host the decoded BMP images - StackPanel^ myStackPanel = gcnew StackPanel(); - myStackPanel->Orientation = Orientation::Vertical; - myStackPanel->VerticalAlignment = VerticalAlignment::Stretch; - myStackPanel->HorizontalAlignment = HorizontalAlignment::Stretch; - - // Add the Image and TextBlock to the parent Grid - myStackPanel->Children->Add(myImage); - myStackPanel->Children->Add(myImage2); - myStackPanel->Children->Add(myTextBlock); - - // Add the StackPanel as the Content of the Parent Window Object - mySV->Content = myStackPanel; - mainWindow->Content = mySV; - mainWindow->Show(); - } - - - }; - - - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () - { - SDKSample::app^ app = gcnew SDKSample::app(); - app->Run(); - }; - }; - -} - - -[System::STAThreadAttribute()] -void main () -{ - return SDKSample::EntryClass::Main(); -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/BmpBitmapDecoderEncoder/CPP/anotherproject.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/BmpBitmapDecoderEncoder/CPP/anotherproject.vcxproj deleted file mode 100644 index 1f985d5f281be..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/BmpBitmapDecoderEncoder/CPP/anotherproject.vcxproj +++ /dev/null @@ -1,97 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {6900EB9F-8008-437C-BB1E-3C7C06662F84} - v4.0 - ManagedCProj - AnotherProject - - - - Application - true - Unicode - - - Application - true - Unicode - - - - - - - - - - - - - true - .\ - - - false - - - - Level3 - ProgramDatabase - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - true - - - true - - - - - - - - - Level3 - ProgramDatabase - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - true - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/BmpBitmapDecoderEncoder/CPP/anotherproject.vcxproj.filters b/samples/snippets/cpp/VS_Snippets_Wpf/BmpBitmapDecoderEncoder/CPP/anotherproject.vcxproj.filters deleted file mode 100644 index aad46846bb3f6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/BmpBitmapDecoderEncoder/CPP/anotherproject.vcxproj.filters +++ /dev/null @@ -1,32 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} - rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms - - - - - Source Files - - - - - Header Files - - - - - Resource Files - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/BmpBitmapDecoderEncoder/CPP/tulipfarm.bmp b/samples/snippets/cpp/VS_Snippets_Wpf/BmpBitmapDecoderEncoder/CPP/tulipfarm.bmp deleted file mode 100644 index a3f88f4d09ad712fb5ba5a035e8ac50b66693f3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 921654 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

xvVjJNon5dFA!SU(1+7^M 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℞ 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%0Dn>H?1|NIP}Fv$?iDX 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

3|$bimeVK>8CAL>LjbhsN>6BGR^-71xjruDPk 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%0A+KW8`bJGS_HM$Camf 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 z zvq1iB%TEwk2(mcpC_W7uPw@|rM?-yk<9ouc-y>y+|EDt-*8+uY3vIdV(k6oQ$KTXU zV}?N6V*>@%`BF*Zr1h|G`4e z&!}(bPCxnRBILTor{J!p$j9g9#Won`3p>(==gPYE@cM0br0~+Ir}8Uc&H3YqO?Qe# zv`hpW0xhfM@U%`%fHFzL3&dG9Oj=e5PW8!;tgDa<*`MowcRBam|0wGEir=qWpjQlk ze%Hin&I;%qB(uOjMG|!7P3Iq*RmCEuD!^R|Q|Bs%_bRmg8QsM)ypNj~;rH7O6I(%+ ze`gP1q2;H$KJoO4x<28$!jBL|``=Hr#W_sYEl@as3;HaYbwb?hiWoaPr03)Xav9lq z8QEf;Saw-iAviwuCm<3}7oY}?VP)=)D$ZZCmxPF1T;2=6sba{)!c0=3@gfW#J%4i3 z#IwE1!8{`&PpbMLa~&AF_Gg^GB3J*0{N=J#$bv&3XG~{Y4+U`+eDMVlYNO(>me*Xt z7OfC-{^}k_R}8q?VS&FFjtUh%$t>_skpwov_!NpAeiiv_`TyVE87Mcd!cg@8Kl9DL*Rj7PHfuYW)Jn*~gLer1(6H-qySYOZ%an$H(W zJ5n&sKZvu)p64s18|^U)^v37ryh9aw)1CHH&kxAIguN6@<3Eq*Fg>+CMT>bpDeBDi zZ&8*Q&?Y+53 zJ0yR#CYu)Xd{P`o^0z2UjPX$Ze*AbTzGlhuz4^_2z6f@ukfMUupPvM;n}^vOpPLCE zRp`w{+7J1wHQBV7=ab?%lD|b+!i;0rpO@H>5US5Fsdir|!Z#Vo-@kWTq=!^~Jx=<1 zE2Pcqzdt{J4=Kr6eg-K8`RG
se&~c7F3fON#>0dXm2>J|*m>FdVdDdfunO{JT8) zl>7~Y;G_+K-({u1$X?6+M-n+Z3&S(WcE{fNXgyyR_p%H9RquS4qjM@)=acVysMmsX{kv9Ut}^-ieoeDd&#z)Wv7Rr& z-=*;9pUYnsbN%ZB&^#e`wjwubWrdw?;qGC)=uJwE^F^v5|AJj9q?+XK5|)+qKGL&j zCx45wOkpH{$=_cv|99f);r(RTl})b$Cx24}3WlUG9F}2v%85t4V0}K%^>0~$DNvj4 z0@g3`cOw2StKfm}e+2}M1utFdQw%}?>Qa#EAag;{P)iL zkLCpNVf^iV-k+{txAZ1e?QPEI4`$zM$oWif|8@PvqVq*cb%)@3p7Dr9+vn~$M@@Z$C7_41a&W*s@} zavnTrU2_)uQNy=WpWf?fk}ewaiPY~cRL-v!;-m_Ko&jF()XjW%P1waE#~4;v+STJ# zzh0#4(=wm{`Fm6%eT;U=-{5iF34&q%4&;`uU7n4+V-pXWTB zhwqh)m(DQcZ{+C5a~8Eo{_439W+8tgC*9+Y&d=ZJRnJG{ua%O|<>zet{bnxt z>xyPgw`0%8bblVwLjLwpuaK+B-zBAU{kt=eVs<|*e-{uBKYzS1b7KTYt+>K;z`3Ry z`KvWCw~)VRf;8I6U-GvxRA#6~{?0H8sSg8)blpXhh5Xf;m|Mu-o%8V^{-VbyN1x|Q zKIi&(XCTGwF5{&$$+7tsz(uY$INcYeHmKXzQo{m&mK zf3Ha4#jZ!^*mxKYy!wvAyxaNQF|@lpkL>c6p5L18(_9|mT6=P9<)+TcN0CWp-4^2G zx=y7m`3il%`TBY-zrcOLm9|C8Z#u>N-)>_Fv#WB1r)SWncMEKx{) z&}pr>J{rz%a0r&Xq~1~g&u-83pKUWN9(25!Scc=%X&^*T^0zp1H}hK=z6r|Y@2|q5 zV^dFPgU){BFVb+2J=1@-&9HdT@n&Kf=I@>{t?VoF zm;5cNB>HguThyo5xT)uXNbPF6_rRU%59`_3AMvlVUl4!6c~@iqS52#J|pd}dQb^C8cFE`Hd}ge-@q6vm!D{zmJsUe9{&n^ve;YNls7C(U+;Bwx zT0|rHd-dj*(=bUs_wK(pk)8DEbvvwQV?*Mf{B2asryBW7{_gq#j89l@gP7~zF%mhA zm*jKu*F@oAJsVpW|Kx9@Vm{T#U-FmyEhxa>KX)Y@$>-#6mu{%?u%5_aW*7hDZ>CJ} z=FWA5Rd2)MLC2ekCG7fh<9Laly}y5k-08d@7WLEH-WZTTp8|-pWoD!Q-fEyfr@3D{ ztpC|?m~ZwDoKyW_JsbNY{&n`__rEI*XIY=Fy0m?5aG-KnJm`2cv5>#sU~Tl@7<&?L z_va_%@8IkPdfJ~qm;*O+*cdz5s1k4FZ=+)MYCuo&m;BwnrnH7~J=aLs?`F=R zoat<}IXqsvhjoiphciE6{jVS0{!g>xI%;!R&&Cdmf4%zP`gf%vuRoK&FwT>oaujBNrvx&EyMVMXd;Ju5!fABlhRcP)!5lfUHe-4xcuSu9!P$o#tJ z%XU6|)b(%nhv)Kt!v(iZ6>3tIgqf>+QdHeJeqB`We=` z{#F$uf5~6+*I@mdffDeJ{JjgdYHGTxDf#^Ve8&F#f&8s2&^Tl=UX9O(9sYewy|?<) z#{NfDdpiDl$AdoKGqHrlr;b=!)(YtOnbVR*9ph&`h%7&?0^VS4ynZO%K=sdJmjkI6 zYv4qjw`dT`TO}5@Wt!plt`IB z{f4Z|v(xx`yJh@zjWR1gssb4o%r_A?QA4QyS?uVzGQ05i?fv8R=bzWh^7?ptO|Mio z!?9B$W&WHbAvle%w_C=~B=N&;9IHUa1@leBP1F#oe-=ABuFQVV--Wpge3y6f*Gz$9 z=a+Zu-k@~yPyTub2K}Exfs700n~0mJAyoe?c63~so%}t;?3llkPJHxsOa9IuTI^v` z0R2B+uQ - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21125.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/CanvasAttachedProperties/CPP/CanvasAttachedProps.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/CanvasAttachedProperties/CPP/CanvasAttachedProps.cpp deleted file mode 100644 index 2aac3c70079f2..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/CanvasAttachedProperties/CPP/CanvasAttachedProps.cpp +++ /dev/null @@ -1,95 +0,0 @@ -//CanvasAttachedProps.cpp file - -using namespace System; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; -using namespace System::Threading; - -namespace SDKSample { - - public ref class app : Application { - - private: - Window^ mainWindow; - - protected: - virtual void OnStartup (StartupEventArgs^ e) override - { - Application::OnStartup(e); - CreateAndShowMainWindow(); - }; - - private: - void CreateAndShowMainWindow () - { - // - - // Create the application's main window - mainWindow = gcnew System::Windows::Window(); - mainWindow->Title = "Canvas Attached Properties Sample"; - - // Add a Border - Border^ myBorder = gcnew Border(); - myBorder->HorizontalAlignment = HorizontalAlignment::Left; - myBorder->VerticalAlignment = VerticalAlignment::Top; - myBorder->BorderBrush = Brushes::Black; - myBorder->BorderThickness = System::Windows::Thickness(2); - - // Create the Canvas - Canvas^ myCanvas = gcnew Canvas(); - myCanvas->Background = Brushes::LightBlue; - myCanvas->Width = 400; - myCanvas->Height = 400; - - // Create the child Button elements - Button^ myButton1 = gcnew Button(); - Button^ myButton2 = gcnew Button(); - Button^ myButton3 = gcnew Button(); - Button^ myButton4 = gcnew Button(); - - // Set Positioning attached properties on Button elements - Canvas::SetTop(myButton1, 50); - myButton1->Content = "Canvas.Top=50"; - Canvas::SetBottom(myButton2, 50); - myButton2->Content = "Canvas.Bottom=50"; - Canvas::SetLeft(myButton3, 50); - myButton3->Content = "Canvas.Left=50"; - Canvas::SetRight(myButton4, 50); - myButton4->Content = "Canvas.Right=50"; - - // Add Buttons to the Canvas' Children collection - myCanvas->Children->Add(myButton1); - myCanvas->Children->Add(myButton2); - myCanvas->Children->Add(myButton3); - myCanvas->Children->Add(myButton4); - - // Add the Canvas as the lone Child of the Border - myBorder->Child = myCanvas; - - // Add the Border as the Content of the Parent Window Object - mainWindow->Content = myBorder; - mainWindow->Show(); - - // - }; - }; - - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () - { - SDKSample::app^ app = gcnew SDKSample::app(); - app->Run(); - }; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -void main () -{ - return SDKSample::EntryClass::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/DiagnoseProblematicPrintJob/CPP/Program.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/DiagnoseProblematicPrintJob/CPP/Program.cpp deleted file mode 100644 index 22572e527cd05..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/DiagnoseProblematicPrintJob/CPP/Program.cpp +++ /dev/null @@ -1,345 +0,0 @@ -//Program.cpp file -using namespace System; -using namespace System::Collections::Generic; -using namespace System::Text; -using namespace System::Printing; -using namespace System::IO; - -namespace DiagnoseProblematicPrintJob { - - // - private ref class TimeConverter { - - internal: - static DateTime ConvertToLocalHumanReadableTime (Int32 timeInMinutesAfterUTCMidnight) - { - // Construct a UTC midnight object. - // Must start with current date so that the local Daylight Savings system, if any, will be taken into account. - DateTime utcNow = DateTime::UtcNow; - DateTime utcMidnight = DateTime(utcNow.Year, utcNow.Month, utcNow.Day, 0, 0, 0, DateTimeKind::Utc); - - // Add the minutes passed into the method in order to get the intended UTC time. - Double minutesAfterUTCMidnight = ((Double)timeInMinutesAfterUTCMidnight); - DateTime utcTime = utcMidnight.AddMinutes(minutesAfterUTCMidnight); - - // Convert to local time. - DateTime localTime = utcTime.ToLocalTime(); - - return localTime; - }; - }; - // - - private ref class TroubleSpotter { - - internal: - // - // Check for possible trouble states of a print job using its properties - static void SpotTroubleUsingProperties (PrintSystemJobInfo^ theJob) - { - if (theJob->IsBlocked) - { - Console::WriteLine("The job is blocked."); - } - if (theJob->IsCompleted || theJob->IsPrinted) - { - Console::WriteLine("The job has finished. Have user recheck all output bins and be sure the correct printer is being checked."); - } - if (theJob->IsDeleted || theJob->IsDeleting) - { - Console::WriteLine("The user or someone with administration rights to the queue has deleted the job. It must be resubmitted."); - } - if (theJob->IsInError) - { - Console::WriteLine("The job has errored."); - } - if (theJob->IsOffline) - { - Console::WriteLine("The printer is offline. Have user put it online with printer front panel."); - } - if (theJob->IsPaperOut) - { - Console::WriteLine("The printer is out of paper of the size required by the job. Have user add paper."); - } - - if (theJob->IsPaused || theJob->HostingPrintQueue->IsPaused) - { - HandlePausedJob(theJob); - //HandlePausedJob is defined in the complete example. - } - - if (theJob->IsPrinting) - { - Console::WriteLine("The job is printing now."); - } - if (theJob->IsSpooling) - { - Console::WriteLine("The job is spooling now."); - } - if (theJob->IsUserInterventionRequired) - { - Console::WriteLine("The printer needs human intervention."); - } - }; - // - - // - // Check for possible trouble states of a print job using the flags of the JobStatus property - static void SpotTroubleUsingJobAttributes (PrintSystemJobInfo^ theJob) - { - if ((theJob->JobStatus & PrintJobStatus::Blocked) == PrintJobStatus::Blocked) - { - Console::WriteLine("The job is blocked."); - } - if (((theJob->JobStatus & PrintJobStatus::Completed) == PrintJobStatus::Completed) - || - ((theJob->JobStatus & PrintJobStatus::Printed) == PrintJobStatus::Printed)) - { - Console::WriteLine("The job has finished. Have user recheck all output bins and be sure the correct printer is being checked."); - } - if (((theJob->JobStatus & PrintJobStatus::Deleted) == PrintJobStatus::Deleted) - || - ((theJob->JobStatus & PrintJobStatus::Deleting) == PrintJobStatus::Deleting)) - { - Console::WriteLine("The user or someone with administration rights to the queue has deleted the job. It must be resubmitted."); - } - if ((theJob->JobStatus & PrintJobStatus::Error) == PrintJobStatus::Error) - { - Console::WriteLine("The job has errored."); - } - if ((theJob->JobStatus & PrintJobStatus::Offline) == PrintJobStatus::Offline) - { - Console::WriteLine("The printer is offline. Have user put it online with printer front panel."); - } - if ((theJob->JobStatus & PrintJobStatus::PaperOut) == PrintJobStatus::PaperOut) - { - Console::WriteLine("The printer is out of paper of the size required by the job. Have user add paper."); - } - if (((theJob->JobStatus & PrintJobStatus::Paused) == PrintJobStatus::Paused) - || - ((theJob->HostingPrintQueue->QueueStatus & PrintQueueStatus::Paused) == PrintQueueStatus::Paused)) - { - HandlePausedJob(theJob); - //HandlePausedJob is defined in the complete example. - } - - if ((theJob->JobStatus & PrintJobStatus::Printing) == PrintJobStatus::Printing) - { - Console::WriteLine("The job is printing now."); - } - if ((theJob->JobStatus & PrintJobStatus::Spooling) == PrintJobStatus::Spooling) - { - Console::WriteLine("The job is spooling now."); - } - if ((theJob->JobStatus & PrintJobStatus::UserIntervention) == PrintJobStatus::UserIntervention) - { - Console::WriteLine("The printer needs human intervention."); - } - }; - // - - // - static void HandlePausedJob (PrintSystemJobInfo^ theJob) - { - // If there's no good reason for the queue to be paused, resume it and - // give user choice to resume or cancel the job. - Console::WriteLine("The user or someone with administrative rights to the queue" + "\nhas paused the job or queue." + "\nResume the queue? (Has no effect if queue is not paused.)" + "\nEnter \"Y\" to resume, otherwise press return: "); - String^ resume = Console::ReadLine(); - if (resume == "Y") - { - theJob->HostingPrintQueue->Resume(); - - // It is possible the job is also paused. Find out how the user wants to handle that. - Console::WriteLine("Does user want to resume print job or cancel it?" + "\nEnter \"Y\" to resume (any other key cancels the print job): "); - String^ userDecision = Console::ReadLine(); - if (userDecision == "Y") - { - theJob->Resume(); - } else - { - theJob->Cancel(); - } - } - }; - // - - // - static void ReportQueueAndJobAvailability (PrintSystemJobInfo^ theJob) - { - if (!(ReportAvailabilityAtThisTime(theJob->HostingPrintQueue) && ReportAvailabilityAtThisTime(theJob))) - { - if (!ReportAvailabilityAtThisTime(theJob->HostingPrintQueue)) - { - Console::WriteLine("\nThat queue is not available at this time of day." + "\nJobs in the queue will start printing again at {0}", TimeConverter::ConvertToLocalHumanReadableTime(theJob->HostingPrintQueue->StartTimeOfDay).ToShortTimeString()); - // TimeConverter class is defined in the complete sample - } - if (!ReportAvailabilityAtThisTime(theJob)) - { - Console::WriteLine("\nThat job is set to print only between {0} and {1}", TimeConverter::ConvertToLocalHumanReadableTime(theJob->StartTimeOfDay).ToShortTimeString(), TimeConverter::ConvertToLocalHumanReadableTime(theJob->UntilTimeOfDay).ToShortTimeString()); - } - Console::WriteLine("\nThe job will begin printing as soon as it reaches the top of the queue after:"); - if (theJob->StartTimeOfDay > theJob->HostingPrintQueue->StartTimeOfDay) - { - Console::WriteLine(TimeConverter::ConvertToLocalHumanReadableTime(theJob->StartTimeOfDay).ToShortTimeString()); - } else - { - Console::WriteLine(TimeConverter::ConvertToLocalHumanReadableTime(theJob->HostingPrintQueue->StartTimeOfDay).ToShortTimeString()); - } - - } - }; - // - - - // - static Boolean ReportAvailabilityAtThisTime (PrintQueue^ pq) - { - Boolean available = true; - if (pq->StartTimeOfDay != pq->UntilTimeOfDay) - { - DateTime utcNow = DateTime::UtcNow; - Int32 utcNowAsMinutesAfterMidnight = (utcNow.TimeOfDay.Hours * 60) + utcNow.TimeOfDay.Minutes; - - // If now is not within the range of available times . . . - if (!((pq->StartTimeOfDay < utcNowAsMinutesAfterMidnight) && (utcNowAsMinutesAfterMidnight < pq->UntilTimeOfDay))) - { - available = false; - } - } - return available; - }; - // - - - // - static Boolean ReportAvailabilityAtThisTime (PrintSystemJobInfo^ theJob) - { - Boolean available = true; - if (theJob->StartTimeOfDay != theJob->UntilTimeOfDay) - { - DateTime utcNow = DateTime::UtcNow; - Int32 utcNowAsMinutesAfterMidnight = (utcNow.TimeOfDay.Hours * 60) + utcNow.TimeOfDay.Minutes; - - // If "now" is not within the range of available times . . . - if (!((theJob->StartTimeOfDay < utcNowAsMinutesAfterMidnight) && (utcNowAsMinutesAfterMidnight < theJob->UntilTimeOfDay))) - { - available = false; - } - } - return available; - } - // - - }; - - - private ref class Program { - - public: - static void Main (array^ args) - { - // Obtain a list of print servers. - Console::Write("Enter path and file name of CRLF-delimited list of print servers" + "\n(press Return for default \"C:\\PrintServers.txt\"): "); - String^ pathToListOfPrintServers = Console::ReadLine(); - if (pathToListOfPrintServers == "") - { - pathToListOfPrintServers = "C:\\PrintServers.txt"; - } - StreamReader^ fileOfPrintServers = gcnew StreamReader(pathToListOfPrintServers); - - // Obtain the username of the person with the problematic print job. - Console::Write("\nEnter username of person that submitted print job" + "\n(press Return for the current user {0}: ", Environment::UserName); - String^ userName = Console::ReadLine(); - if (userName == "") - { - userName = Environment::UserName; - } - - // Prompt user to determine the method that will be used to read the queue status. - Console::Write("\nEnter \"Y\" to check the problematic job using its JobStatus attributes." + "\nOtherwise, press Return and the job will be checked using its specific properties: "); - String^ useAttributesResponse = Console::ReadLine(); - - // Create list of all jobs submitted by user. - String^ line; - Boolean atLeastOne = false; - String^ jobList = "\n\nAll print jobs submitted by the user are listed here:\n\n"; - while ((line = fileOfPrintServers->ReadLine()) != nullptr) - { - PrintServer^ myPS = gcnew PrintServer(line, PrintSystemDesiredAccess::AdministrateServer); - PrintQueueCollection^ myPrintQueues = myPS->GetPrintQueues(); - - // - for each (PrintQueue^ pq in myPrintQueues) - { - pq->Refresh(); - PrintJobInfoCollection^ jobs = pq->GetPrintJobInfoCollection(); - for each (PrintSystemJobInfo^ job in jobs) - { - // Since the user may not be able to articulate which job is problematic, - // present information about each job the user has submitted. - if (job->Submitter == userName) - { - atLeastOne = true; - jobList = jobList + "\nServer:" + line; - jobList = jobList + "\n\tQueue:" + pq->Name; - jobList = jobList + "\n\tLocation:" + pq->Location; - jobList = jobList + "\n\t\tJob: " + job->JobName + " ID: " + job->JobIdentifier; - } - } - } - // - } - - fileOfPrintServers->Close(); - - if (!atLeastOne) - { - jobList = "\n\nNo jobs submitted by " + userName + " were found.\n\n"; - Console::WriteLine(jobList); - } else - { - jobList = jobList + "\n\nIf multiple jobs are listed, use the information provided" + " above and by the user to identify the job needing diagnosis.\n\n"; - Console::WriteLine(jobList); - // - // When the problematic print job has been identified, enter information about it. - Console::Write("\nEnter the print server hosting the job (including leading slashes \\\\): " + "\n(press Return for the current computer \\\\{0}): ", Environment::MachineName); - String^ pServer = Console::ReadLine(); - if (pServer == "") - { - pServer = "\\\\" + Environment::MachineName; - } - Console::Write("\nEnter the print queue hosting the job: "); - String^ pQueue = Console::ReadLine(); - Console::Write("\nEnter the job ID: "); - Int16 jobID = Convert::ToInt16(Console::ReadLine()); - - // Create objects to represent the server, queue, and print job. - PrintServer^ hostingServer = gcnew PrintServer(pServer, PrintSystemDesiredAccess::AdministrateServer); - PrintQueue^ hostingQueue = gcnew PrintQueue(hostingServer, pQueue, PrintSystemDesiredAccess::AdministratePrinter); - PrintSystemJobInfo^ theJob = hostingQueue->GetJob(jobID); - - if (useAttributesResponse == "Y") - { - TroubleSpotter::SpotTroubleUsingJobAttributes(theJob); - // TroubleSpotter class is defined in the complete example. - } else - { - TroubleSpotter::SpotTroubleUsingProperties(theJob); - } - - TroubleSpotter::ReportQueueAndJobAvailability(theJob); - // - } - Console::WriteLine("\nPress Return to end."); - Console::ReadLine(); - }; - }; - -} - -//Entry Point: -int main (array^ args) -{ - DiagnoseProblematicPrintJob::Program::Main(args); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/DiagnoseProblematicPrintJob/CPP/diagnoseproblematicprintjob.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/DiagnoseProblematicPrintJob/CPP/diagnoseproblematicprintjob.vcxproj deleted file mode 100644 index d3327709232b8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/DiagnoseProblematicPrintJob/CPP/diagnoseproblematicprintjob.vcxproj +++ /dev/null @@ -1,131 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21208.0 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Console - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/DockPanelOvwSample/CPP/DockPanel_Ovw_Sample.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/DockPanelOvwSample/CPP/DockPanel_Ovw_Sample.cpp deleted file mode 100644 index 8979de0de5163..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/DockPanelOvwSample/CPP/DockPanel_Ovw_Sample.cpp +++ /dev/null @@ -1,123 +0,0 @@ -//DockPanel_Ovw_Sample.cpp file - -using namespace System; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; -using namespace System::Windows::Shapes; -using namespace System::Threading; - -namespace SDKSample { - - public ref class app : Application { - - private: - Window^ mainWindow; - - protected: - virtual void OnStartup (StartupEventArgs^ e) override - { - Application::OnStartup(e); - CreateAndShowMainWindow(); - }; - - private: - void CreateAndShowMainWindow () - { - // - - // Create the application's main window - mainWindow = gcnew Window(); - mainWindow->Title = "DockPanel Sample"; - - // Create the DockPanel - DockPanel^ myDockPanel = gcnew DockPanel(); - myDockPanel->LastChildFill = true; - - // Define the child content - Border^ myBorder1 = gcnew Border(); - myBorder1->Height = 25; - myBorder1->Background = Brushes::SkyBlue; - myBorder1->BorderBrush = Brushes::Black; - myBorder1->BorderThickness = Thickness(1); - DockPanel::SetDock(myBorder1, Dock::Top); - TextBlock^ myTextBlock1 = gcnew TextBlock(); - myTextBlock1->Foreground = Brushes::Black; - myTextBlock1->Text = "Dock = Top"; - myBorder1->Child = myTextBlock1; - - Border^ myBorder2 = gcnew Border(); - myBorder2->Height = 25; - myBorder2->Background = Brushes::SkyBlue; - myBorder2->BorderBrush = Brushes::Black; - myBorder2->BorderThickness = Thickness(1); - DockPanel::SetDock(myBorder2, Dock::Top); - TextBlock^ myTextBlock2 = gcnew TextBlock(); - myTextBlock2->Foreground = Brushes::Black; - myTextBlock2->Text = "Dock = Top"; - myBorder2->Child = myTextBlock2; - - Border^ myBorder3 = gcnew Border(); - myBorder3->Height = 25; - myBorder3->Background = Brushes::LemonChiffon; - myBorder3->BorderBrush = Brushes::Black; - myBorder3->BorderThickness = Thickness(1); - DockPanel::SetDock(myBorder3, Dock::Bottom); - TextBlock^ myTextBlock3 = gcnew TextBlock(); - myTextBlock3->Foreground = Brushes::Black; - myTextBlock3->Text = "Dock = Bottom"; - myBorder3->Child = myTextBlock3; - - Border^ myBorder4 = gcnew Border(); - myBorder4->Width = 200; - myBorder4->Background = Brushes::PaleGreen; - myBorder4->BorderBrush = Brushes::Black; - myBorder4->BorderThickness = Thickness(1); - DockPanel::SetDock(myBorder4, Dock::Left); - TextBlock^ myTextBlock4 = gcnew TextBlock(); - myTextBlock4->Foreground = Brushes::Black; - myTextBlock4->Text = "Dock = Left"; - myBorder4->Child = myTextBlock4; - - Border^ myBorder5 = gcnew Border(); - myBorder5->Background = Brushes::White; - myBorder5->BorderBrush = Brushes::Black; - myBorder5->BorderThickness = Thickness(1); - TextBlock^ myTextBlock5 = gcnew TextBlock(); - myTextBlock5->Foreground = Brushes::Black; - myTextBlock5->Text = "This content will Fill the remaining space"; - myBorder5->Child = myTextBlock5; - - // Add child elements to the DockPanel Children collection - myDockPanel->Children->Add(myBorder1); - myDockPanel->Children->Add(myBorder2); - myDockPanel->Children->Add(myBorder3); - myDockPanel->Children->Add(myBorder4); - myDockPanel->Children->Add(myBorder5); - - // Add the parent Canvas as the Content of the Window Object - mainWindow->Content = myDockPanel; - mainWindow->Show(); - - // - }; - }; - - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () - { - SDKSample::app^ app = gcnew SDKSample::app(); - app->Run(); - }; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -void main () -{ - return SDKSample::EntryClass::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/DockPanelOvwSample/CPP/dockpanel_ovw_sample.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/DockPanelOvwSample/CPP/dockpanel_ovw_sample.vcxproj deleted file mode 100644 index 9f1e7fd1db03d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/DockPanelOvwSample/CPP/dockpanel_ovw_sample.vcxproj +++ /dev/null @@ -1,123 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21125.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/EnumerateSubsetOfPrintQueues/CPP/Program.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/EnumerateSubsetOfPrintQueues/CPP/Program.cpp deleted file mode 100644 index f559468cac9f8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/EnumerateSubsetOfPrintQueues/CPP/Program.cpp +++ /dev/null @@ -1,44 +0,0 @@ -//Program.cpp file - -using namespace System; -using namespace System::Collections::Generic; -using namespace System::Text; -using namespace System::Printing; -using namespace System::Collections; - -namespace EnumerateSubsetOfPrintQueues { - - private ref class Program { - - public: - static void Main (array^ args) - { - // - // Specify that the list will contain only the print queues that are installed as local and are shared - array^ enumerationFlags = {EnumeratedPrintQueueTypes::Local,EnumeratedPrintQueueTypes::Shared}; - - LocalPrintServer^ printServer = gcnew LocalPrintServer(); - - //Use the enumerationFlags to filter out unwanted print queues - PrintQueueCollection^ printQueuesOnLocalServer = printServer->GetPrintQueues(enumerationFlags); - - Console::WriteLine("These are your shared, local print queues:\n\n"); - - for each (PrintQueue^ printer in printQueuesOnLocalServer) - { - Console::WriteLine("\tThe shared printer " + printer->Name + " is located at " + printer->Location + "\n"); - } - Console::WriteLine("Press enter to continue."); - Console::ReadLine(); - // - }; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -int main (array^ args) -{ - EnumerateSubsetOfPrintQueues::Program::Main(args); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/EnumerateSubsetOfPrintQueues/CPP/enumeratesubsetofprintqueues.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/EnumerateSubsetOfPrintQueues/CPP/enumeratesubsetofprintqueues.vcxproj deleted file mode 100644 index 4c1138eccdf6a..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/EnumerateSubsetOfPrintQueues/CPP/enumeratesubsetofprintqueues.vcxproj +++ /dev/null @@ -1,131 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21208.0 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Console - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/GifBitmapDecoderEncoder/CPP/GifEncoderDecoder.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/GifBitmapDecoderEncoder/CPP/GifEncoderDecoder.cpp deleted file mode 100644 index 4c510d2b162ed..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/GifBitmapDecoderEncoder/CPP/GifEncoderDecoder.cpp +++ /dev/null @@ -1,133 +0,0 @@ -//GifEncoderDecoder.cpp file - -using namespace System; -using namespace System::Collections::Generic; -using namespace System::IO; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; -using namespace System::Windows::Media::Imaging; -using namespace System::Threading; -using namespace System::Security; - - -namespace SDKSample { - - public ref class app : Application { - - private: System::Windows::Window^ mainWindow; - - protected: virtual void OnStartup (System::Windows::StartupEventArgs^ e) override - { - Application::OnStartup(e); - CreateAndShowMainWindow(); - }; - - - private: - [SecuritySafeCritical] - void CreateAndShowMainWindow () - { - // Create the application's main window - mainWindow = gcnew System::Windows::Window(); - mainWindow->Title = "GIF Imaging Sample"; - ScrollViewer^ mySV = gcnew ScrollViewer(); - - // - int width = 128; - int height = width; - int stride = width / 8; - array^ pixels = gcnew array(height * stride); - - // Define the image palette - - BitmapPalette^ myPalette = BitmapPalettes::WebPalette; - - // Creates a new empty image with the pre-defined palette - - // - BitmapSource^ image = BitmapSource::Create( - width, - height, - 96, - 96, - PixelFormats::Indexed1, - myPalette, - pixels, - stride); - // - - // - FileStream^ stream = gcnew FileStream("new.gif", FileMode::Create); - GifBitmapEncoder^ encoder = gcnew GifBitmapEncoder(); - TextBlock^ myTextBlock = gcnew TextBlock(); - myTextBlock->Text = "Codec Author is: " + encoder->CodecInfo->Author->ToString(); - encoder->Frames->Add(BitmapFrame::Create(image)); - encoder->Save(stream); - // - - // - - // - - // Open a Stream and decode a GIF image - Stream^ imageStreamSource = gcnew FileStream("tulipfarm.gif", FileMode::Open, FileAccess::Read, FileShare::Read); - GifBitmapDecoder^ decoder = gcnew GifBitmapDecoder(imageStreamSource, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default); - BitmapSource^ bitmapSource = decoder->Frames[0]; - - // Draw the Image - Image^ myImage = gcnew Image(); - myImage->Source = bitmapSource; - myImage->Stretch = Stretch::None; - myImage->Margin = System::Windows::Thickness(20); - // - - // - - // Open a Uri and decode a GIF image - System::Uri^ myUri = gcnew System::Uri("tulipfarm.gif", UriKind::RelativeOrAbsolute); - GifBitmapDecoder^ decoder2 = gcnew GifBitmapDecoder(myUri, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default); - BitmapSource^ bitmapSource2 = decoder2->Frames[0]; - - // Draw the Image - Image^ myImage2 = gcnew Image(); - myImage2->Source = bitmapSource2; - myImage2->Stretch = Stretch::None; - myImage2->Margin = System::Windows::Thickness(20); - // - - // Define a StackPanel to host the decoded GIF images - StackPanel^ myStackPanel = gcnew StackPanel(); - myStackPanel->Orientation = Orientation::Vertical; - myStackPanel->VerticalAlignment = VerticalAlignment::Stretch; - myStackPanel->HorizontalAlignment = HorizontalAlignment::Stretch; - - // Add the Image and TextBlock to the parent Grid - myStackPanel->Children->Add(myImage); - myStackPanel->Children->Add(myImage2); - myStackPanel->Children->Add(myTextBlock); - - // Add the StackPanel as the Content of the Parent Window Object - mySV->Content = myStackPanel; - mainWindow->Content = mySV; - mainWindow->Show(); - }; - }; - - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () { - SDKSample::app^ app = gcnew SDKSample::app(); - app->Run(); - }; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -void main () -{ - return SDKSample::EntryClass::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/GifBitmapDecoderEncoder/CPP/gifencoderdecoder.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/GifBitmapDecoderEncoder/CPP/gifencoderdecoder.vcxproj deleted file mode 100644 index 88bb58890774c..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/GifBitmapDecoderEncoder/CPP/gifencoderdecoder.vcxproj +++ /dev/null @@ -1,126 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21125.1 - .\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/GifBitmapDecoderEncoder/CPP/tulipfarm.gif b/samples/snippets/cpp/VS_Snippets_Wpf/GifBitmapDecoderEncoder/CPP/tulipfarm.gif deleted file mode 100644 index def1be66323b9726d602e12fa0559cea5b548972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170770 zcmeFYhgTEL`#zjbXdzTXPv`;EL=ZzY2|b{Oh=4&bND(O#KoJ2kl`bFx0-^?#Dr%&O ziV%u)FenQ42uc$b6%`SAUOwM{;~VLSZl{JRF5bp{y|&B>exdnFilX#^B)?Yd98z!D6sjJPM27Ja57p z4+r3p@c#jW#A7gc3?7e1;jK}4GS(V{w8m`aKw0Cl*7!}s+8R%`CZnv$*4E@rgJw;! zCIbLu0Gx~jkda6-216#J$Yd;;f~5f96eN;@K~XSR3dWj(M^W%t3f`JR##6{N3YkvX z%tOIbC}awSMxkup22*J96gv5TCOw#jMAFC@8W~Tc;Au2GjZUM{Aq@ThoYE;YI)zTBVd*q$Ivr1^lj-zeIz5LTOy2bRKQlO<9-K@M z&Y?%<1jFIMaAYtF6^z*gHW*Kdgrg!+s7MSp5|59>lOyr8NV0V#nG#8+M^aFc6l^5L zI+Biwq~jy$^vGaJWH2u>lKy{)kBp~8#`7ZM3nP>1k;%dF0C+qc6_45kHXe(O$K&Ji zrPlltCQP^bcCh*BvS~4D=jHf4)DamAdG6kDVu}-E0 zC)47S>EzA#P7Wq-`c97DL~?R`Ve+OAUQRNvJUJ(l2S@RcSRMw;!{T{(G7nGV;psdI zmPfJXQG$7NJdYmCOAhAoa(FqxyqtJm&dnSoHV043Ayab5^c)H$hZ3Aai_f9sbLf=K zPnHu*&IzXE1jpwDZ@Q=C#K-5vC+G0Wb8?b%HhmP9=aeTGlIexy;6e($kQQG^rxylO z3geRtb9jY0Hw(+l3(H%|$@KE_=GFXvO!yxs`u}JAKSumNM*RPk5%3MbKWQyDp`eQkS2jH~Agt&~N9t3`-R@LA z%0^j4ydJo7tv?U#n589sN0)Q~>?Py9kY_k}5r=OqKixP>D#J$iy&i0;d3=?~mHBzB zv6gg=;6JN1)V$zyaql(CWy((diF!Zlz^(J&7oRsUwxs?fST($8(mNM-K%;5N(+E6cg%La zKlXUbSn1iYx9f^q7|j1FRsw^Q7OXT#4V@w0jfR)Se6E9i zNLO`n8$YQ%?K5@$opnh`;j_?8#@U($6Y+_kv2$$mUF$Pu@nVX-#!`PF2RG8>cxn#y2e&>2tR~es+Ia z;2!jXR+&cDsN4MqSGH7n?*3dubDodv`+A$)gN7+%U2D1xhN)?$H>L{)(HHq|tj(&Q zw0wF}#UT3_Jb1d$7q*x2+@m6?=!@)=yD1TgM^YjlB_B_Lf!iZ50hLSU0`G(FHS}Ht zYAjSfHO*4FGfvJ5uMq2$)Hdtn$t^UjU2mu!!rry}QX5}J2pxH_wkS-k)kqJnuQ**J z99c{XV?KB_bgGW@$Er+R^&-jb%ZT&Y z$cae#));Q)KhYF(DSB(=Kt#^Bp-8h=2^&LElhHfgncX!{l(=V(9B$#-Tw1+ja$%{q zPh0a!-AI*B&DVm_qn^R z)w{#4-gQbiI9=mj^JkLXwAak!#S#CgZ+Fh@Yd3kBaQkM$O2pkW;Z4}N3lA$F$Ll_H zm^%B;zJiyguh~wEu7|(;weNM}#`^B#os($L0gjc$?H0R5 z%b)c8h5IeKQ0*wPQ~k5}nYVRk z_pAIW9@u5v+HmH}gXv#uzIO{k&Cj|mO}{ON-fYUmNB;!BFD&`ttiIz`Lg0rZ3IV8+ zYd42IQ0C(wQBHP~v1ab4qA-rLeLbLU=6Tn-Q#6j0lDdOJ&Pi^d!Kn;9>bv<~gO}x5 zeg>8^ACKmYUYb%U`go^6^>*U(f|=F0@JGK(zMlRVS*22Ux5usEc4#_CYnyxBa3|k9 z>DP^SD1NEO%*}#}Ve7iHdk>m~C|$@NEYx~SsdL-Yii_OOm5f9+4aUFtR`{E2AoJJ+ zdvj;nv23k#Gega{Id_ywenu8!^V}VK_PDzuHhNXbWvAQ5ituzx?@L=;v5nxHGlEYn zDMHG(tYgCIijI=BoedR;B)Rbfa(VTi+Kk==t^Kmwsr7=0S$0)H2Ud6W* zu2@)JG7ZXV$o2VFY%*FWc_KyoGPu8n?Rac(e%IjXK$QZ=n;4nWW2JW6T4;9<2Dk(M z*vL1^mKTouewp$XseD(k1uOgQ({mwmevX}TAnzr~*40i(*O)v<@(j(tiOD%6g({Sz zsZUoHIk5sBOz1T;1@E}p(Nyqc|2x|vch_5K9+8EG*jIg%6oj1`$&_%l6`fM zG-uBHvbovJU$>5&aL|hf0f<_FW}wZ%AAhQo0eR zg!(#5;wIaUrBJ(f2eqbPQmxO}pO0tjqh7Z5S@u?ZjthC9^|J4W&2;(Pu{rgz`H~-( z$AO5X+hDCZfGciH7Qyrkes^1((AnjMu)WRIURjRo#yqV1;`iezGLJBCuvam1r3l&c zh!j}6m9 z20@*uYtWF+73CZt@{TV%Zx45aFg z6@KbLz9~I97|B1a``%yonb=8%Au$Rtz&N{1hGNkXY#PPJv$HPeYZsMaI)~bYG z422*gh3^1`CDy5B7Gl;2F~1!BpHIw5m*elA$Kc?{*TUrI4_2=qk`P`! z$2$A`um+s*lFJWDWa|!utsr-Yz!TkSd0?wBk}CTPmtJ&nhkqD*YjD`aZ0L7M)Hg}g z#usGR5g6x$pTai*;>1z;SYt$z%c*%0;$H&%<+EUyUBHF8Oa)1D$0>jo6=duRGNgir zcL9gCWGUbP^TxogQ-E%%6lGjo1uEs98&Hb~Y(%9f;lOo%z_DF0D$du|C8B8(Sd$P@ z`zyJE0ML?TUGY12Wi_+ODp}|oxF|t9`w2D{%G{91JYSX>s@@?Ri%7SMKAgrslt$lH`x7Kcru4Cdtpf@FrA42pi9WF_ z`e}7I>r^`UmqSisc+_l|3YLEqmY9oDh@Xuztwnq%DjZ5ns(QxzCggmy+F(jtxJQk> zLeq~sm>>$~qovK{}K`$YGVMuWf;=O3kLGXpA~=jRrnN8{Ia;Xi;6f_ zdOXya`FHl>$v+oOYm03%5ND1ZkMBo(A|9U&MuK5n|<4%KIPniu;@38T{yz2{5U#*TBNEfWHhUUVLK9$G>3PI1>Kt@cUeJjY32yqmrXfq;> zaX|UyocUAd6vO~|Kz3I@uqHf9iwL@&n5}D^eGirO$T+2WKDl$lExQw*bKeB0d+LlS z?ux6`*^&9oN7g_H6Y%L^%8Ne$h~V;qR2*hk>aRaJlZ4dCj1wM{Da)?8@2QCIf*nP_ z*|(ReA%pqJr3u!h7ZR;5hPyKpU6my)1kS{x)@X&8|Z zG*~QGS82LddeFKOey~(}u=pgl(tutW($6t4WuB^wF-M&`omqKAni+QY!gx{9_O(jL zDa4A9w+!I^XOuZ@bbP=1CIYZ+oRjJ${}oprHLeWbb!{j8TIipc&_C3ugT+Ayi?6E7 zHAt!@2?8{|dhJ(rIQSIx`7#Zj9%+kT4X6xe2#uC zmvRm8yOJ?j2z9U8FH^PekBnnxf}=ZEKu0iL3Xh*IvUV%7s4I3$Dp_~ANL!3~%7h2! zL!6g=oqdxX5>7Prr?~c)_tvK9-c1qLWmhDoLK&A8M1XJZfJeWxRhZd7vDwW7mm9;g z`VXdn1?2-W+5Oh%I(EhB_LpldCpS*Ts-m-{#mU1mSLLYy2paI|-jxpDl<#Y?OQoqD zTdrP1Wr0Ljz~U=Q?to7(u3|+ew&X)@v7#4{Tq6CV1)(;ozu0uBHu{CoM5ZoasCdn& zE^4ucye5+&sg@e5&R|wYWx}N*u1RGzn%vl^4msLr{-Bz5hqMV^mo+>F=Ea(>v@xGBNJgwUa7~7OKdLjoZ!cgdS|nKsK5sSNlI` zF_vxh_YZI;24qNN3}qV|1TB%Wt?1##BR5*NM>Z<(t51HaF_Nu0Sy#2Y= zhMRMfYWW)1*axen4&KR)NJw9+EjnEzA6n#{R8^aFk#)Z<*tF5Yzb4wY(LAe#d#Taa z_QWw9%y}-=n2|M=enN_QVoK_=@$Yio-wlr`+49JgHJOy#iRH_G9^8{nF_nrF4P^Ja zT^?9`ASb#!DU~zmpQ2y$piip3-T!Lm#)DfBQPyJ>G zDHU?7=J73G$oe|i86XC0Z}ukf>+P4E7-E8zSStF)%c)ea^&~R}Gi43-ea zsSF5p*;i_h*g?1v5R4m_+5<8ECl>xr+ARd_76xpegSssH8nedl4_-q2OS-)aLNlMZ zwMD#V^69NPD0Ml`*#4=Ulf>)FYqlR=KLyt+f{}4AqhEag?D&d(=hc*4^c6 zG92{Tf9{u@`*XSmQ%pr*BPs~b0^3oczAP|-3ALs|@n{fU0Mfz%9a*r|iz1(q?#O)D zG2z6q4RMdtdQXV3JAwrd5sjy(09|*TwR4GdqQc+!Dz4-so=apqL^6vHhda=@oP3#t zkKnu5Gb4TxqP6z%+6Fmf);DZiTQb0O5-_|7m|VErId^kq5rCN+d24>N<5QNDpaG`y zzS-mPqTJ&*!wn0Q4mm= z^VaGX$Q>7Qloiqh%iSF~>#Pzr)Gj+>l@V40V`|sPzFZ_yTRMu5={5yJeR;cIu3(D5B*i z$bKxMt^{l-1Zxw|oY}V6u{3<+QdXVGQq-5=@>?fHRyWJ}_#Sr3`7?NQ^^%>-TmbcB z?^v+gmpMBsh{T-f@cbAif(9}c`BZoV5$^gtuC+MemedDPUGn|9fOI>Edp?A67xbp( ziL?D#I|-PR3r*Jfru6ldEeo7*1+19&E$Iq0ARlUnj+gkQX4^;JmEKtF`g2K-8X=$m zy{ZpbRsFrYE@J!P2tCnvLox8~XhdpYglSEL{6eb{!AhoT;!s~k zzSC3gJxCGx0R|QxJRKMrc@2P#b==Dsoy2DSwFlgudiNi_L&Kr`z4T>J$C9z{nPQF&gF@%JK7)XFhM4+*8_R!sr7U&!_5u`u_ zrH%pR1rgn+|2(9FEO2w4La4tO;wc6b#b8?`M6hqw0sz?qfY>fWJ$_!P-QEu}I} zB5M>^gTp|!rz@*wed-VcswS@wvH83_xvk<7RQF?8G4*dr5p3nKmN65|2b zgaEj+U?h^=z6Sch>X2G)^w=?(CM$Nlrz1Od>jfx97NQ)+YJeaSO*bI2R%TyV;JwS| z0U(X#9PZP-$Z3c{PXtHW$ORn)QLutzxX6T;L7CZW;nOntE)244S&1Jw-?#1h$_1XKfX{*VJ5zDL&Qz7 ze@(`&Mm4>jd^Pf8?CfuQ*d!rw{fBk}gTq7Gp@A9NNl3lsyDsxVY3gtF*w7_cMhsSA zY8d))f5#LC{?Too^}tADBUptJ_vgUm;lZljLSo;UM4ya`7bkta1*AutM3*^JQ5nb< zKQq_>0XzBsx>U}tUcD=ELVBMFR;pwPu=iU?;o;c|Y@DPG?shBv+^~xA1Vg-+kahV^ zRH&_^v&D*Y<|QCi9e?QkSll={bg4mo)DLD^4D3DbU8!jdd4#-oNA9>cSzUm0)`3XL z2Qs#1I37wHFEDAng}oLXY^$*=F)Sxkt0z0q!vER*YM0yYd$zO?`fzFZyFp0(m{vmC z)~JeeN5b_rr%E(U(%AAuwH~#Ei9XzSAGrYJHPjO6gC(`}1zK zN9Z)YNH1BZh{oJhIYTSAgRV!yX_~zm5R=zoZb!6w&I@oM21`h3n$wZk`vAT+Zv*R0 z?WJWsICMyB2`M!k6cl$*1XjC#(0ZFnu5@Qr9z?lMVE6MGGi;QLc#w9+2MzXpAyEFJ{V3`1DHa#F@ff6IAk{%10zBzW!F@| zyJhe5?J_V5e_oSyw+-=9T$--}qd~hb_d?Hxk+6rlKnmr9T(jCjX>z{amW~&+iI(OB z-zkzRqvomUhh~}G&Z2jw~!riE7pTpV9rif{-hOPhFv-?D{1Ji5YsH$v9d@a3BsG$DM^$F-Ij_g=p2 zYJL0=q`K`=dfzve^w{fYgImm(c8A`#y@@`gmV5LKVf|_O-g;x=4~aqU^9$G3A;TVT z{yzS-c%j30s#|r*o%R%msrb=ci!zZ(ONpy`NOB_`ZWZ&OwwVI2*qF0T20T{rU^PQWj*&l3b#EQqNO&`TIdH9msz9neLsr#p*f>JOCPs9_%YjSGhZM06Jkwh zE?2zFwZ3$3)S8MdKC?XEP?kID-x_}ueVL{sc~KWj04n@i;wlSX+z6~{DsR!ax9ei= zV?C3d#Xs}YZ5b7^X+31`)F_Tlp+M>(jC>$L#L*sMK#Wi%WTFHT`uk&51wI_>eC6ZcSmcl~4U++bU{_myq-sN$c_?#x0LTxwMpI08xpD*vlGRFms7|nhYi&uq zuz1?usE`3emvs5*jd9gi%B0cN%RVv=+^VIi`#;q7d_RFSOq`Y^`Z(z9y}T4+`!u)q ztQAmva|HO*#Bj(f^-u(p$eAeYgX~Gy-n(^6XwBdD#K7Cy6QhS#uB$zKN^na;6dVV+ z9X%O;d#0(X#pd@;i==q$9<0wy?z7QM#u%l_)GoUJ_x6+&)jfYhQo)Zu8uhn2()bHyC5(&rJnQ5o;#t)n>1Moy>J(eeV*! zT70hgyX_Ngx%{h$c`kkB)0F3d`Xkm-vEm+uh*9wNd6L5Q#0}#shqGw&l`7XwpgXSb zlbLt?4>8c$qkU_8rY+;$pQ-_lLHTW|-q`=vUZ;2JfG}t6%k?yB1{}A12V_vnLCBg~ zh%L9~$$X2BunD3suYo}O1 zPA_7y`Xn>QZ3J}v;Ga65{r4}$Y27xfuUMeP3-5k~@)Z+qIgn?p zD7b&UsmZ{y-61*K#!P<7OJ3Qn8@qDuY3)W6ww&D8W7*hb+ndcEBiaspvTV(IV6(ru zv#DwN=>wY|4+ikImch1<?wvJ5Aaj#PV&$f%LMQVk z3zEgd{yR-H^G60FpkKq_nnnxVeCO?AsJ#hf(J}2)Hn?b!GbAm0L!&;lkxOOmriuCc z@*(s4ce}&+)Kz}xi*$oHn{Y`cTmu}~00;3S4(7H)oZWaHEdJqnxA^&i!#G~vitW^35AlP@ zcewtZnG@-C{dKZ-#k70%ciWqBruQE-c?{c%o0_+#*jYt3ZH*k-dA*Uc-*k_6i{k}~ zhlgbYZF8o~wmJEME$>0!(|W=PTM6E=*VC?*H-tYlypPvDnB1ay!mifb!eU~mA*$VS z-TmQ%=0{CivE_D>8Q>lZ$9rbL&KZ_(zd~=^8tu`WOvu|Ri^oDsys{(*#zu3HQ*t3^E2V*w%x;vVHEeK%edA@X2S|kAGhyz=ch_l*Z5ooD+;)WY) z&tNW(pW6;IFyR^l(#R|*MjrBwEL1eRJfH|f`DtH?YR1}G-dTFk@weXb?}N_d5whKb z(bJyQppI6LcI~$NuM{m@Zjc94EUC#(wtpWyPTpzZWY^NvC^%u~{Ml4^-_GU7AVSz= z|Ef_5ZSNO#-_zOU{)k77l8%sTbM;gCT`{oQ!fuC?ZNcz%k7m;$%pTkJeL7;W&cOc5 zT2116PMUV*uT!+BmgNW$Fb2X~ehLoA-;9Hyi!*#$ZC~g~Scn@x7&-QOWlsR(`u87c zlJdu=%%NYe?+HtBa9`fTG}wLg(C(h|kh3YSi*o#Z$l9fuF=`w4)S13h8*gACQ)!Ei z{lOW}e@uYg(Yueyh~t-d$5%#aiLhgD9@7$^pIqrnc?f2%@B4Yf`FG0WA5O5NcF;iN z?gHbH;MG{}B+_w0!@nVVDw&J9(S7Dxo)YvEd|U<;Ec7&r*Y zQo5d z9Nq~uyvAwo3rj$UY-2RKoX`XcisVO(gmRQu&+@{BV}!+24`Y@Gvcc2tu*|Dgcny0Xn`d6ioyo z^MUFD_U(ssg8_ot{7$4$5tILFhXCdb2Wc?F)HZ`*L?rbo=b3am|w zT!m#DNcpk67;PU5Hng(!1wa`9`)C^f%1ICo$+eiux^`~YR#v8V8yhPCKeG=oMP(T= zuNdO)?Mx1kb`YAYrhXPYy+B7!?i>=X4Ki2Q9$G>Kt`}RJ3+pa zUyWJq-!s#MU#U?-u@%rjm9{HF6X()19ls5A_UG^pUfSsyY_zFG4b^FVxWL2sblT?k z)0RQose6+`s@)jXXL~vB`=5XM%cHeHfBfj9B~E_gP7?AV3kIDhbGZB9d>SEgsi*P6 zzsIKvJ8awRbQqr|4La#PoVj^G)OsTVr)8g*7Ck>n!@ae+QEewQjj_ZQnF4R+>#Z&I z5dwE_#E*byS2#DOjPb>g?QmIx^Ns8DVCK4meYgX0ne%fR_^rOl6#nQ;Be-~oW5+lg zrd0cddt@B(0vZVW`a#oQa!D<$`YZVHiJa(9pPYYPa-|J`UMkj}y}y-4;D=_wjuQCa zW}!w`jO}ZwfDgN!kEh3=Ab0|Y(=Z-`PWKQIgiMeH9AZ(+D~@_u9P)Ap8p1$=GyuTO z_S|B%2doYlx+P;jsk#?gPk_*rWY$85srg;R|Lj08%UfBI6i@2&iy)Gv94yCg7O)&F@O&S|_gT0t9Fh z0+jNBX|h?GC3QA_Aaq8Y$!UN53$_^v2xkG*Q9ynN&?Yh9LIQYK2FHpCA+Ug`O${*d zF@f4KweFxF*sr?`Jl1WC4t(z4+Xwzq-;3A!S-7JY@0wH?ZSMxvnB@dDH?}|cbwQp# zerxwPE!bJ}mf%Ug#I|$#Z*$c3!$tL=pS?S56W^Ix);;#d_H1Bonb-ajSd3~9bp9LW zteRRWF|f=sEv(HuGis|J&mr~t`D?uRvFYpYIa={V2?$RNA&O6{nGI0F z`4rq{=mAo1ggel0+DVi}g80@V~kTA3rQUf&b zd)4ynqo%g3D&h5YskA@>w{9oo-d1;{m~hXTQ(46J-2mvhj)%H1A&eE`TH-yi)r#)82vX$5EynHw5Z_M^kEhJVLuxW%h8QmDtj87Feu zW4vzc1Y@BvJPL$CLCAhIGL`QkfK?mv0>@sS3S4`1Dhwk8s0dl=%vb}sRmLTt(keh! zz*1NRRHS7qW&o>&Agrv+wdIw%L_o!HuX6tb2qB>D99w?b8pBYK_p?DsSl=_UH~+0+ zqD8w5aL;cuGa(SwcJ`?}TN{v}XnV^KSn1ebq)B)yI$zn_SGX%?mQeO|;Hi*PYI+uM`-%7SkSIDY`$ib68s0Fac6J>;$J_ z4BT?yNAxl>w2hdO0TQJ^+cuyb^z6c;@La9f@A(l?)_L1#C7;8`rgx5M+h6^X*jn#8 z8EzlF`%HbgR15->bY%fs{zw*m%P!-}bde0Qju5-@fmDxyUED^#R08zI{;u1f#FOC0 zgVN>DVQm=;Pn;Dl?yrYSlk`5g=j*e#1=#944X9gWss!vXaCsz$+?!i?Z^Gj|hBSii zku$W!I4SRej6;Q*v)b4*T1lh2t)4I0V>X~ja6LXk)ME}ENkzeDb8cXdR%@x1z!U8$u(>S+dz zSCOa7)PXWspG=Uv8kNC@9w}E0*Gu~l4y#T>Rl2F~am(!9@)sitMxM&-GLf|u^+V-X zM_HT_-6t%b9-Hu91k;+rGE(XF`Q32cLZp+78k*V#Kccn_kk+9IScN)n*-sJB0!i1k zt+_9z(+zNc*is0l&^ODXmkE|5ED0y!o{+9dIWi&0NEW*ya#F^QY<8f&xLBy_nNb{g zLwP=e0Y>cd!}H~F?M!g5#rS(SqjOQyeOkWl72mY1CIr3m=(~zg{hWdEG)J2yBw5bN z1jBdNFtY?9bwP@baI0Pcq{oUU03(S!+zR~Qhx1T`Q^0wy*Ib z(Y-R=pl5;fGPoc#Rtj5GL@U*CIPKNyMFbY?^gVqd$TBo^uB&9*!2GD1LM*ySN>b>2 zCfmRdcT)--;CFH;K9EV$`j7}f$e~Fr>P_UhH_iQ&V^o(jI;nxY$4o?Z9NYO2^?fEU zbR8s6-T`_40cqQ~+{GsqVm=rOP23IPh9dw-N@zwG6vfWyN>{FUeqaL#HxT-P@>2UK zKpC|Z!9(OuF43^z&uA@K{X!WVk`=YM8mKo>ThP4}YI4L{S|z8x^5ZyK$pD@mIwh}nhO6OZ!?_zG(YF{d+uTj0 zR_Y+RCJzGd|7gp_ut;zNF~Elg>H=~BkQE>a=2}u%+799Ed{&dP3ha_w;X~9n7sqY! z_LA{4c;KE1lsUyUD|t> z3#s!*Du~jLv>ht4{n0b(*Yk6?>=md8L)c*a)NmjLIYgDgAX$EVOYisc5m94Ec5Sbr zr|Y?x6G+y?4;Iptbd{pgy}=3~fN=xgNa32}K zhN78z8i(d{6qo=ARZQG*CeJ16=6N}KAx4IY1uD1^Wfteyvf=w+dp)~yzBhBwsUj!c zsQ|tDSb6f&HYZzhm(Qrvrs`YKcsSG$#zj}FDSiT(bPXUt zpz%uOG0bws*FDmnuGGSukW)NVV7=TzU4{CMkc@wq$0_fW9lal<8ym9#!hh-XmntJPNGQv zah4Cl4giFro~5g>K;V#!!!=bf2Sc!>y>$a->+z8}tDAPFQFK3lRWl24J8 zVdV5(%@v4i!XC8}D%6nBq_FT2v89#CH(w&c1;dW$?~DvPR;9w}c}MMAL{K>Sh}2>? zTUBj(%w~eEu(~!$Tm(p&wRb6=^K;UF&43y~Zl>SX=n^BJ6ljK{kM1Juu*6tFO+}bd zUolC}Wf`EAx4AC4_9(nwG>?n|7*`{@C5oH`3U{ZzUET zg$#%qn)Hx|HgGl=lslSnKG2*BDtrP(c02T-EJLro_;)IssLDmH?ax%H6@g9Me9Vqo zf@N2RJof8-(zs{&%ILF6QrDXZt{01^UUKXf?d6g9+ZuMz{kI!;g1k!MuMF>x{o)8I z0L<3iwYI}7t?TcWzYiwF>;9+FW!aKKh z8z~sR{97wr_T3E{XX!O$E95i9((SwIBE#}ybOqwSO0c$$Vy2hfw2YwENvBQBGb^zk z_AG&1h&%#4_pM8QWdev$vmfe(GA3Dn>(Ed+dv3OIIo{7}n);^6B}YsvxW^DlCoECbfB zC=ZCGuZ){o_d!;`v$wxiFPU&^UnbLu%pdgR|0EE`co6iQ@u^@gd zsX{=&c~*y<=XYrm6ba~G$i?Jrk=<%~3BT z%Aj7UOA6J+3OOw@2TlXNlt?KN#uWjMW+jg5*D2@xay2gR6R+mW)Dq7afaHoudWS%m zTH?}XbIBM=7OJIDb!K8^H{eTS>H}_B40wP%Nd^Ek6_E|YDf*8*PK=7A4zaeVzmcxX z?}!@AEDsJj!17_AN0xx?%6ece>8G!=P-om^axxo`Gd>?Hz=g%&M3z6EGD;N%1j){v z(S|1iKyKNyr$ye{EHHzy`v5>H{E6ZkRC;+o(uZ}xdPs5hS>wSEx^Je={Zo{(1b{7x zU^`Luz3U!UvW5p)9iFP|a8h723zCn@Yzcw6iC|RGq1ON{)?tHij{XE`TOw#{I7jOc zP}dK5b-YW}grt9t*tQ%<=|v-!We=k@q!++ZM}VxP%3^L2n9is_i6IE%oZ63o20~nkJ+%^azOuK;(#2 zU%!;Md}>()KpLoDZRtu!ANrS1)PDs1NzFvE#-qF*XQjX~r5OQUM480%9bO_I#lT}# z2LOQ?NWX$F=ZMhx_dW+yh0x<0+hcbbr z&~Sd_qZF!$U1oVS6{(;UI3QOmgCqc78ETaZd}^E~(E!Kb1u3P0$t*GP#lL~h4fbHp zYqf~cy=JxD7orqCo@1SXlJpgW)sAEQ4T+GPp)7F`o$r=PC4x`@P{a8U3@g9DUEQ1p zIWY*%JfNsiAY<4)TH3YK&RwQfakKi2bs^<@hx0s-1@Fk*R8h_bcySYy7~to8Um^=V^0IfHJmMIK(~7NV%@JURi3T^ z>zzL9or>_CT49%(CF%To_BZX)^Ik7|i6DbSj^c|1v*C?{uEwxKG%(7D1^!9FJZBXioXD3Z2+(Df$$unbPB3G z^(}BI1kQ5WxICfntRUU4;l81W4Kk8i65TxBMafq})E0IgBB_c=2E^`$F_NZdjyX$L zTae>9!gilvjcIuj{>hD|L}rKk7LBkF0m}9-Sh5noG&owk^6BikY10*sX$Je8C|zbk zoSmP44Na_UcMZLx$E(cE9`Q*TaK#;wsb-Q4aR<~JUgZcfI#S;F$a`K91|-dAr~|+_ z1L>JJ&vOeiM?U(-CuwDgSxYNaRP(g_y~%RI6;$+wLiTl4_&R*&hnv>kT)E368RDSg zp>A{`NvSqE4V@j;qLH2mfB@#CEW^(p;-Ca>XP|z^iq!l9kg_WS@@$3T*FH(&V?QBp zc0sgvrbO%IgLi7V8%`Krfw)(N4^>Cyjuj2ct%J;)kDyTG(m;@BH${67%Sayi1$Pnr z0Rt2nNHOv>Ml4$KPEW5QFtAGrQai&Q$nXxuEqE5u+=YpnIq!Lhwlc^_#XtChmMK6xAutUX z^iNzQm2p9~jVMQ8z;GfEQ}nUnV0V7O&hrAP!dZDIU~lbkgx2?>uV|NhFra}M+4DNjQ~HDZzBy-4Yd;Gw4AzCc|?UJfb0rUhD+ag^up2e0wQ0e zprKaTq9J{ph#UN-f^@+>B36H^_0UO&2`=m90B53~`2@gG3kAN~19!jlb5q#DlR)Is zWYIwF`+%tlJuew1a6>6E-%jna3~uPQy^_4&0Vs1(vH2)S`}4(>?Kr}LH<+#{_gd7U z?(MJh^XJ`iKI}d1mIoyO;N=HE-fBfBj$X_e&lxTDJDItCIO|J8rm_h+MaXJG`UDxW zk^>w|%dlqaSH75VCXeT;uVgA$4d$It=&XuY3>@EHlB@TjAAVw5odMUr1EYUIta(#4RMws@tT5eoxArtzOYP;rmy*qD zueL=+2F|R1yLGT-+aO$JsPmsriZxsL^_Ejw`*cx}x)PGM9~;r$g%5ZsZ{D?~LDy|_ z;3($cEW6Ex8$0zkr9h`{eL}arJJ4W)t+O7ZBiR&|~g~s}7MBuu{k^5!{Parv8ss6Kv(!K(z*HlTgV#h}* z^RL+^&Zb)+xvxWB+#)OMtaRxBMpUDK65`7xTvy{y(L*Ez*8-`Nmq*IE-QW}H&-VxG ze-rnbX|a`64|Qn`)O!xFwLHsU50tgrfI~P4wn{^q@nnYn)~8DW|HSV~e*RR1hr)&} zDRp2BDTv4w<#$+yC3wBv+{=?(KBFi{-idpLY+h;47hk4k{+e>TIF*$7IL@y(mE-l1D?y9tYOW8&5I<4sQcNq*gU8yxZFSA5C z&4h^AIeY(%oA&VoLHM^}!!moPoltPLu1t%R0a5z@Au3x6{ysm911T=X%UT&*&yWQ3JyWmIxsOq^G|w)#EGQKRqXM37zCki3 z2iB%#KjG%O&mr*Y7ZTE+3c%qgh(s_(@_;T#*j?}ff;EBb_%UR93dLnel#^Wh)s`P} z!l8)fAzE<@UIOtK@yzhnBol!siEi49k*!QV27R0koY=fv?+D~P;Iy(bHpscg#rf(< z$qj*tW8To6ZiDlJfl%XHB^f52R-(-+U4S#9Lee!yhFlTs z@63rui|IX&tyZ~=`-@e-;m;6r=zJL9iA7N*FHpTi#G!wB2#L@KBH3l#47AU$L}fxq z+_xu)NDpI4JL;2(7Iy<45GNN7v&^V}DlTao**8J+fn@Nw)hpePsX<7dx>)3&(0)ub z2C@m-u;TkKrYXEU`i6iZ>ZG8&_KMx(`;-x+q_oLi@N>m%5saJ-oOi*LjfYPQCs#K} zhVh_IM=s+v(q;wF*y`7K4fDWsF4-cGDCu2Yj*fc?6Yw^AB!}meXW!#kN?VSSx(_2e z6r7p`}sk>2K`KL3psOX#%M{;EXyCoQa^hfb?dzCY2x!)dY#w zmd6QP;ibZZG2mhiCo2@mn757q;SdA)ujoCV)xG_!!+i z1ZxTA6l`{_&Icw*t1$_!7xp=Kle|OR3{zp2nxq-_ zU}`wjs0q4<^;;9`1$rJYaTFnD;YOYK?nJeay;Ri!j4!YR2&pZz?98|s*FBUe8IBKE zkc{jZ%mhZk4`dwtV`{l{nfadYGdRW(Eq99|Yq)ea2^8MVri6@4vC=l(ue@a@YU4x# zB>fj4&=3GLy8>{8TN$&L#X%Ga7MAJktPc(>+_l)4vpAR^LoI@9LP$_t{vcau$8CW_ zhJ`npBASa*LZArNl^JwkIf2B7LO63C;H&~MgOh9toeIjTjRd0d*6h zd>$wacTB3PIHdv4XTZ;Oo2jTt!=#I{iOpn^AiD38wNzZ#D^zPY1k2; zFV7D!=IrQo78yIpLIH;*(oBd|s`#cj)-vdc5@UpZmk^?_08*@KTvNJJi#k9-6&la; zl(NDK2{Sg&5+I^vi#ja_&Wf#eGf1#XhH|V@zmv!$I!@9oy5p1HcmLLdRf%Zc=I> z5$u^UVW#kqBHHR4hADxwz1E=D+S$M~8~wTM=6H&A_G5B=6yG5qiX!F+5X@B$WFx9v z#Gl~FEkXwf&E5L54nRhyb4xO4TE}(vA!9aI7$DxV^IKuI15jrBLI7MQroVH`q$AJXsb)ELmq0EoTny4$XqEq*Ps(}#;10oRAh4hC zTv(7W9LPz4lVGRKijd+dfIKS(kXsLo@`%Z>DU*f@EzblVyDeI5KV=ea-#UrrqaYXY zrk#u37TRqwIcEBA;jE-ohMEsDu3|h!|FQ!aQXt&k6p77tA{3qi;K1U}pp>eC;vqo( zd}`jQaQ$Z>DQh~sOcA^t5~8We%3A&Busn;Wl+EL^zq0aD z>Dk~Q%Y*~C4Xs+1XB6i3vqEs79kPF(H%Ch(2Z=TlR>22?Ip%OM)5Q!*6Tdt^hf;{A3_-@x&)qL1j(u`=W!f}8P*9#J_P*%u%%;VYqT6Rem#CRApn-q zW7WQgtQya0?brud+k(C3xg^Ejrd#f$B6BJzsv3jr*UpY2T!V)fyg^23Ps0P_e8A#U zoe)%qhVrRuW1dSWs=_9xa?tVi*UWm#JqCeIAQNP_Eeq`&s=C<&43iZxPWvt2nDpgF z7NSxm~SBA`MeBB^#c)ds*ydm>b>A#>~&|zH2es6uSIJEfA@Ev|49AfV4 zLl!(hRoXQUz+RjF479_7_P1OTv=c~NwcL=Cs#WaaOWEl$8!$_enRrEgPDDpN)yu(* zcvDn(!UR)r?6r$JlgrCIkN5&pAzWaST8@L^{6n!gv>Z7kPyy!4fC})yqUo2D*uY}+ z$OFGZIYe!rHLzj_j~@4w8wJgVL$v5nFPuy`3Kob83Z#LQ8XzXL=L#DhuoO+58TTaf zEhR=K9tXq&`q$)vzJ3jT)hCHGs1J^PyMgc;pyG=Q*Z)su|0%R%7t-@4a z1z(xwU9M0@5RQ$l9%m{;emxh#b_h}ow2+}?UUhhnQ5}A!wWWRdj&b-2(J6~Y9V;kC z0+y_Bv7t;qwNZDqQCSHBK!OH@&;W4aCnY-gES70B%oVg70%^6o0)SW{)av=m_g9A#@01(=a!j|P>?#=^8ri)s~l)dKu zJMb8nX1kT`7be&rW#^zo((<#Y*tuc_S4Op7k=wFFrkwvC21-_f&Z14~>4^M~dfOny zgQ=h-Kg8xZI+{E&0aaX4=A;d&=o7a&TcNz|5NVkMZ2t08^1{gWwU>J5n zc*Y`<36`OGngGTDn~VpFu)UVQ3Vza_D40Yna+#>@19#G8Cw zzZMqx#YqYUhWG)s0=+CUVR4M_BB%*G=PwDri-+&RTc2rFfR<4xkjp-Jz(ltmb)g6l z`JJLcAcTpLLWrj945EpENp+HCR4tKr6BqIw%;ryEhv!_iz?~$SI0X|qN@*=jdydH3 z0K@ImYm>^C05WqhoXtgzOe;;XAfxZHus?H%ZPYDJ$dNOHG1b?XtMzbqRxL(_8x$1ttAis6Wv$0ifw9$RC!n?HcRNZnC%U@nwQ=a{ca9HLg{a0N^c!K!>gRI} zO-aKFugM#jOlf3*N!So@Cx5%qyjp{}1IydtL!IYiwhk1E@r>E7o{h-FFIx_Z!lI zCMZuB4f?U2*PzH3Aa}L&j8+mDM+`zpYJAo3aSb3Db~>{+645h3rje%c9^)FxkiR@Q zbFMn};|Y_5XgXA;#>t}I;<&{qXu|j0fnn}=4ceALM3ZDNZJTHcbjlZecn-J5A#%%!5v(o>WRhpsp@6|cb0 z7S?5Fs|968+K~ZthoaOmC=~Le1H%LKM?rG;xK`-x^lyw(3++xErxn0IIeUQ#LIz9o zkKIe2{kAeIh#M2o8v#KZ>*_mX5GD1=Yc$^AD&9>3ua?{;YXFqQC@rJcYD`Ln`Kp@W zfUh=ozD!W@`)g%1b`M3FjhT28lQjf*3atp?{CFz*vI>f8pRy@;I(!jMraU zNJ3g`U1mFd<{^%ekHY=;%@kNX49m0$=}y&ONArvMAO=1XtXPH47mFhF@5e)tgb3-F zZ%TF(2wl@HfYPLtGwE>iK%}w2kYH`0;>E)-%IXSi8G_$kI4vy-lDX+PEThIN%kWTA?7lNOHQ|%V8WbCHC+SIbFSIQp2s@ zds!KF;3sE6@aEjoF7i{9Hv!k{pj{G#d`UuqK0;E1ydsf8Og|(|7NQfO+p1W;`yHr- zn-v;tuVv`IVqExq=HD;+NzCkdVwB7+S;VaCx8o3*Xk1g#F#)$eM7Q{y<=6=Da>(wt zd^dK=Fosqr$0)SIfv`A`K0ppfNC`yoUS@o$c7!JoZY0nkM_{&Sx=d^n@)C_l+stc+ z&Wn**U7-~l(4(E{hYwD z9aMyZDWk+);ioQ{S8F%aYUxl709c|Oh9NdQ<3Ge`z0z7pMa8S+>kxYBC?2=3c_;@&(fHnk4J1Z# zmA84YQL1m6s-H()#dOKr(~j8^0ebo)*ZH;Ya#MvwkOQ)V{7wmoZ5+Rb&xI8lVm1{} zjAM&tDD>j=tLHB&O#my#ue9&mR2O773$VM5u*%4`7C1j&-d!6SNJnNz3I%`=0s3^v z9#~Or;qn(5NCJUFA`|bX0{{L&d#|-#A}Fbtg~B80rX!~=wDb>RtWaCAn#bD zLT3VKVMWR!Tc5k#1XAQD36LEBDZqAMbSQmV%!d~vjXA=`^_oyWl&Nc8-f*&cI4-hAahx1GQ)&B^;|-4SD8C4mzMzuV&nm3Ct)9K z!oVYmpk?#wzLmwXt9fhhulO^*z@J`vQ_tNHsL*Von$QL+YfuOb41Mi4J~E`v9HN;$ zRfnXiS8rT@P=fBAg#C1kWo`#q*565jSQt_?1ZtiWHrm&Syws`)#Q6PkB%8M%5H%Cf z${4W*aF){lnV=TV+z4wMKaBiYh>tDtH(|d?l#vg`(DbuEMl1T5riaUQ5RyXod7Rm_ zepsbmL4`XRjw=9^K!H|%BJ-N_vFbQu6A9wxN@g59T*PJkyi$ z$4r_3tmvEOfLo_&U>hPknRs%EGU2w`Sho=_K>{KfKs!1l?pLHUfuobg{fmZdmef&V z2<821_!bFBUh#@Hxo$svDZTZ2)cONs7ps{<&e{+n!d94l6Y2qaNu;Rw4)U&2=^08qwv04lO zvR#tqkdtX^eJBrx_}qBi8YGh$B6WgWRb=wLLl#UlxUf*Q3pg~Kj*vp(aHI_iC%3qM zf|V5zl)?>{z$!5SAPa;5pFR#Z2qbf#Fv*5jNsoZoID~?uNv4PzkK1Aqp=OrIGG&`c zD!zKezTV@3#K*qalu1Dq_eKr12A|pMyh4 zl%|r^@&N&y#;WJ%qa3RtS&MddwAVh>Bf<0XzBd>+-?aQ=QTeGc__61z}js3F`Z8IgL*hrH=}B$+B~G2xRYl??Yy zm&p~WzV`0@4e11>P%GaowE?(aw#Mu-BU^bTU6!b-kx-FwO0UE(-=y08UA~3XQ9Fz@qY zQH4CG(hS8U|L5$AB}vEcgJ{=utaff1Hhb(83B{iEJHGK&`|);lA=*=^RF5puR99+~ z>C@n*fexxsR6uO!#Y{~GG~NF7qmE(-S_x`xm+GO_h_578+~t>Qe$y<@r+1?D#!Z`d z4R;>wv@|IvW;VCqJ4P#2hBRBZCUlIg)aAKGmh3h??>rUukc`X>EiKOd5ZZBRs#&df zbKv*+Vme=o&x5rGx)B3Dzr-RR|C$wL{*A!OA1DN({yRju={-fCNiY+BNnE>2mm{adH`?4o-FuJ0WTgHD7+PjjD3sH}mTQQLQeHjwvHnobGsL@a!t4L6YO{ar3CQ(a8rr5_h~}X@90>zTNq| z+`xT9p}t(_Mu_nGv(@mHyPa#H!{r|;7`aW}!}}%)Utc?tuV~Gqr(5^>hIZ}tA9r3yVDv}mwFCUAe{%*Tz zL42)GaPFN4uP@OhE5DXK>t;rvR!;|g^_QEZ|PWQ9A!_I-9b&qOk@T7VS7YaqBJppZVMSZV%Cve@e zx%DKH625otWwzo_sWSIfb+e6cBkvkdKb|9~iEm1m-%^28S$R)XKmRzP*v1QU40`#z zVjGj%|63#`-33vasdm=roBVxz@UY~E-JL11F=Xa%%Enq*XAQ#X@IM*xPiNE zw?aPDvAX4U-eWlt7ftK;D<*BP@i><*7Hw;MjgdXJbZxS}JaPj3?N*C=p?VoM``yW{ zM#J*Sr=c-oTkFg06A@CG>B3ZrZ7FjNm(S6O=tH4K&yvAYyfFbERwT2S)|QBs4{4;{ zm(1tNQ@o)Xg}=%cPp{vW?s^-Y`AKtC%}>|j)uV_@7yoQnUOr2|SXvMiA(N{Oofk?>$#=2ic>L#{VnfKeG+j@ANz1gOfVFm zgK(%tN2eTXc#hTndXZk7S(v)$J%H?R*pC;?`gquI&*wPOn^ zM|?i|+x=Vj$J6t|(CBaDM%|B{uDfK{3BJ0Ij6bHCN`CfOwHKUr4>OE!&~@DoG+I4d zYUp~)J&y2+FJX+$M7u6=RK<_~w98Ah&_jo(0aj0MJ7nrKHnnU;INcX}ei`<>@Ugkd zhD6#u;*l`IyGw0RJu0PFY^*c=^4heH|{NXR)!q_JKYcEgk#7W&m=Z2(9?Un3s zW^-)J+%ZPk_MWb9kiyES{C-nvf#}MjgU54!m-i=)PBUZ2bXqoK_K=T84R7*>7j2E+ zZu<9i^GB10&ku4e!MVrf?U(d{1?GPOa~PNw&mfy3YmF=QfU3#!_NA%FcM-%O!ktR7 zdc^hqRQazba>oUh21$7}_GQfQop&qG_d*PIdGiv8tCD-zw9~VWk(WkHrQUR=8Ei^N zUOjYKEj$j%_+$_Tkmp<#4;sz zJlLMSdYhY2bank(^ku`fYf+c4i?4mb^=PgC-A~BxT|3BUGuZqX86&(dWxJ!-y?XaB zYWVcpZeUN(JD>gN@nL4pKAXWlFLwf6^2A}|xB-*p+P2QMs)u#I`G-7`y*4a3z|)Q% zV?e#{&>_l=M0V^P5gg45Rhjf)n|u&|Z4#$nd#XySF}J|_%NYhXjlZsGEZGjsm1s3I z^&g(Je1gG(-cs@hf2^p%{GJ~7a;JV8mCn6*Bqh-=JibpllN8hX>gWku^1-!aWE}1E z+5toN*-Pnb?^WI$g>`=V{HowuLOWP$^US$JQeJLsk)PNS>tEW)=j8bON~t3To6&*e zKU?k2n_F6Hg(^)aqoIB^u~$js(a}OKwVIlILBuv^sRJ5vfx+?f5n=!ZPoZ6C!EkLb zID#$0O;I1iH<2Z)8}_`y?`J`=D1B62VLOC91; zH-l0S*-l*v;yykKO8p?rc__%aL`+%Y;XJq;PY}6$7=3*ke11&!Bz?hGR3Lqm_u^~b zizySK@h_x_Dd*Q*Tx$ezrK3(_+fip<#((LIFbuGJxgESvneE zyhY+ZQ!Urg5h{7}Y~0eh2aO?DUl1<4hCHgXKo?z%eSW&B`wUr2DvilK0+$*qk}QT#RzjBqT*Izkqja-4G&jgfQ1PlMgo8h0~7>Y-NatyCxFmA;`eue z{0snu&bm(ib_7tdB6A%84wZlcxLD;QfB*(4lrQ#x_o{p}5RHKZGY~1L*wS0EiU%=l zJjYk`CV+w{^1DWI(JhcL0mvT>l-9k9&WGR$Tw4s}2LN{r8}}0NLMspQ0Ci$H(B2&E zqE>IH+i(MW`-Z`!3poA8-lcf|go{>};}$O?2NjXHu4~hlNnw|eTg2pHwj}Gxi?&yg zDovNXF2{{^WKT1*58dqbU)XwdML4)e6~W@aZ_{irw7k7EC#WRzp(~<_= zBe#X(jNRiHf!DS!MH-DGE7{|mc91b4#e<61tec8lU)`Q{kE~$7qo0OMo4okp*exea zIMP@+-m~e_+s?Rso}{JA$#vFcp}8fCk4$MZe%TXbZwVyUNMoPO7>g#$#42xl7$-2*^bo7Lv|5N{nW zKRQL8#na)*%p<_BW!kq1vOFHxXbeKbtI+9HvW+vL%togR!{R%G@uykkegv&b+#IYz9Y0ci-v_x)A@q zJ}UUa*4)*ol9YiT^+&pOfoSB;_U%tUlJ&a^r-bVmsA6)@)%!nheupMK8NY3Cx%lAa z#mS7@8+hcIpQ)=mx1xg^;xjADf29r{Aj0aAlh(;EZzpa3xO2c07xS_-_EkwuX7a(0 zBC_5sa$>{1x#XzyN|w!gHoY>=vmsuu?rcd)E3S1sv$7S?93Rp;<9RDyjB~2A@^w&2 zrC9StvDWD2mdMh|sgVU9QR&XpoT}MWs=;Gx zHnD&oSODbUAvYdi^7}q`4q*EGAq1EAPUH#~y#tx}kOL7bpqu*+UMP%#C`?_UvNi1h zQm2B7KmBN8GOmd?-u8euOf}r#y+TN8Ye)k>` zeoefNw%e7u+C^P$8SCjvl{Wz=lacOV&*zwBU`R3mF-QMD`-oX!7d+v0T zKJ@1G-W}#>ZAJCYBYH!6TB~;JL(yr8h$hwBrQzaf9c~vsvfZniy0!GH{^?XxxynF4 zTkpL1y~^gwmCTmErAZ@V$bQSD?}-iLX}?LdXo-0kOS=?6`ov4dhEHY zK!umU;-Ff&74g4HgCJ$rREQ?eQO(uU!HENWW&*fyAWfTx!pcCwUsYV5fPx=1E87B{ zmOPbJ02Bq}VgL#)$v>2?NM~2s_tFlPIv}VAkU3UO03dU2#8&(Phu8y|uo~k(0ORQq z*Q)?4+mRC-BZzj86%m$3gx9Wi&F=PPOm`noi1!rRw)L#`wqm-IRk{a>aEeMdHLNwN zbu3=BJDoNbRyIEMYb;@HJbrI1d2jrp-2}O1Y{IrJ>`yO4Z!9ruJVjzWyR0|+^y6z; zoyvB5jtVG=zHVKX0WE==^?EtziVN2igk z+uzcY_j>|km5@vAPk)>pm=o{aI`_0Zv-e5q?BTDL=X(9urV*xiNZFs%#NVUo434KO z$$h&V*IH(7az0KY!p^%z4vE$sWWqOliZc|JF|H&HR>?+LFJc&O5i5Y;nXCD4s zjr8dUeZL6iwK;@)7`Sf`!{paHB`Pw!GGU5-+{|pR4y1P5!jgI$nZV!^aw zD0modDL``RLO;x(xD=7I6eTgyD)F+W6_$>Jh33CZr@^jWdl|nrn*3*KV0DrzemAWh zc9U_T)sFSdmjO9T$=6<9USA41xs=QGDr9{r=`JRSETXTP9;|@4l&lB|vx4yn9OhSql=q9jk??Tl3 z1es`%E*-2(c;m|QQrp2YbAZ3sSe)(k_Dtkk)Y-R0*#mVb$?lKOwFO=^gY(pn6 z1VYr%HGHoCSS1LW0d66tAKvF?(vx3HAi=7nKdx}^_5?H|Mlc%07Ybs-gM@k>=$s>e zUZx#3=4qBb=gO}-wMP3a@=#T&`c(GwAMl6h{wkU5yc5^*v_1~&cy_Q*RxqAy#QDHJ zyaQ*Kd*<}Qu}O9=E~&=u&X#v%jqz!K@;Df}7N$rKQ)%B;+5yWb#zuQXROoN}mR?7x zL5wgvMgUgmxlK}on9Rj0DegognT8DLYo%C@910c-NtAjYsRlVqn`5o|n9f1d2Ifo{ z(DSsplnSUJX4i}UzWO!v`~k!SwVM*jOqqqIMDE^K`;d|x+m8J3Pz};I3q4POJsjA5 zSOI+!2`kTiZ_3#1dHuex?Zb@Jhw`?)aM}ez%|a^BDNsgbwjK_*M4?GViYYg~jGWYji1qk-!t-{L>vHw18 zB0p?afc|mwm{9$BADEhP@}9PoK z`O*qfc8$^MqeFKTgEhRAN2W!kjRWB^CVpcpov6gx5}@xGd;RgL6r#S*204RY(S>oc zz_&efIK|eBfZp7FjpRpKQ4@WKQjqdOzqMl$q7Y+ziqYEYBphV{0*@9czdanb+*H*Gt6&F5CS>fkjfQqU%@zwxn2T60~mcO!-bd3j5Y{UV|w)s_=fSa&lP$+o7cnTjaPWn05ZG#!|sjeC)?qI&JGWQbv&d> znRly08a`^}UC8_9vJ(5UxHH4)^hZBWee4VEHeDAa`Qq=kqymDlX4Amch|*_h4jGBbXqoP-ig=k+fE!W*@<#Rw>Xnrm9+ zHK{7Uwu`Ud?(pcK&ZU(-{;ms=G$H(kb*%>;evmZjHl}b2P2j*Z)AXwF$CLZw%zM@V zeaHtau8+helt3qOiM#=PVbg)fQlJd^YQ2=N`RGQhRb&A9tA@JCaXkPgi_9cB|UO+mOR5`1uunhM$wB>P}Xy>CeJ5 z6%eZnTrxGU9xSkcrV<|WqGLyk$$%n%yH^3iHnZcS++LTg1BJbmCgnxFqIsdm{(qib zuP&h~ZCo~l^Lq1QNr?lxp*HLn(ihQyoi9;eZJWSSda3Vk}wjj-AQ#z-LGt#WE zU>sYkVds-=S!yDBJdLqXQ=8=SqdAGMU|=feC%N3}3vY}C%d0*DPDji=FYcAF{O_7B zGBVp#oW2);$x^oSgI_FuL{Lyqzd!BzpirdWe+wHsZ|lcXQ@jFzDuq_rdP>Ri(W2|s z$6h_XXi<&4L^nP4m6(RbNOKpon;P7s&+2bVBi$#+QePO)RF|c>_aWwn9HnRUF|E$- zbjl;CEoB7;iQ{K&@QDY+woF46o}YhSn4cHL~cN?zow2pux}3P{h1 zB)M?`M{KPN&Zx1d&?%WSNVG|r%H9H!bJ!$0mLRdo03cm)vyKIsWoQvaHW?mcHn&j< z|Is1D<9K3_J=8BB9j(pg_Y~;oY}2@xY9qW-r>mk+TyDS<72pAMwQq3U|GI>7}RdKfQ z*i>@m?404IaTVt%MY06XmNEvcIPeDxLKjJU9L^q0uy7{;ox5Q? zdafJPQ4x>kU$lWMz9+R=JxcLljllyk%J(WB{dXb4nA3}4QZx_!uVBe$N=L}V^7^BD zAwRq8s%)m4a!2p^#UrZSaktFxj#A6NI6IA0MdRP{EWW{5R@rem2)5B(&7FI@9o|^^Q~v9D8l|%s)bF zv%+G{@$AcB@T0^veOtW%q$=w^`4A{Hx^|fhIwI z7d%<2gdu0b9OMi&2idbrb0dAoeH46)q1|J4Z6viM1+yjHAP+}dXFc!v(<1${nVoA( z@NV!o6@@-q)HgS4ZclV78Sv+<0|UfmHy4#GEb6VD`$eb>Lpdp7T(6n#I+zmBrWVxf zD)@@T-{=ZbK$Sy&N1E97NL(x~^XKpam>@#8cvztUWKm|2j|xc5X!z+azH7`LhzAi2 zAaJW^0`n=4_U*Mhyp7K2byMq_LcY~Q%1d>+uHeXi{WeZFhFm3%6DgD!YsBZlw}TrQ z3odUqaZab}kldF-7c)`GPKN!5EfG0xcJ7{wRczO)HBY{O-tc|Qx%Uq;UB4FzJ!!fg&F1M=`;9SQBHUcr z#yGRT2Mp{pGUx^ypi)?ppc4xE2-_NYXFN;VM zz-BxGlTg7@eAv^d;GPa1G8+U)iUvueNZca4y^P1{caFO(gaHTEtPtusv+fZ_j&awXGAR-(dRm-E%DGQMKDeU;N=VgxBXeS_z8h%M>m&2aM> zZT<<8#U}9mbjRwuzAE>U+-UyX~QyH~L1WAB~>Q^;#vla+==<4ZI2Kk6G=o+%$7I>~p7%Ov&a_ zF?nB6hSt{HR)2cm1RHE%^i>;+Y}T6O9L=PU4?0y3bRzdybn7W=>+v*9dgj5+5zV|+ z1`s)s?YP#2B^v!%H9D^ZJ&(mXF`$4$#p6{YfEUi`h;=FiOG>qT;%jxj8+sjrv$mQz zb1E1(WzmB4w+oXj)ALj9dqyWojYth#BQw&ylXS$o*@!e#V;V>(IT z$&#r`(hMmn`^jmzHh52w`A5-Uf}C_n{ynXIY)W^+rGETlgC zGc>E+nJ1(f3LXbToWw<`(7}gBfTAZsN0!7xqagUCbGMND*mKgz(XXTPTHcVWqa0@a%`dSDH{w` zBO0WrM6vCL#U4Qk2lE%0^B0KEWevcZtY$nGjSo_t;LO`EIo2R|oNqdHi`E-Z=s;$k8i~R*H``)A%t{pD| zBvhUsnhnhWsUCu=Od=C!cCL8Q;UsCaS3l78rrD-)z$E4Lk)lJfe!yFDCIAB2gkEQz z$M=b|)o(5(2!4k9;}VoJ1svCE1%Da)A_ZoSGibE(XFfStoBea+iEp>nFBPbF$?UfU ziZd>im#Y=p|75Gy$Vp@#vgh#c1_ZoFp^I7lIt|NSY|(G0eERe9y3O46zNYkVH-CR< z2(n5k$N>|>C%}D1Ia?_K3~10?6KS`e?^=^Ud817N%L<+sGk~(T?c|tnH741HrPTsp z8iHgEKxz~%m1PYorcZizQ!l_NvNRG3Lp8%vY*}V)`Xp`9+8jeM#!&9n!A`hB(ApFY zELqkH;?Yet!&6c196XIwvxE6=ZHVT?xk?F&ra7ohdsX)TLBwMXB2?DZ$&}_~%COds zNKvaxb!((z@*m)^6dX1M#{}c)VEuNIBpjkPM-t92Qnp%GAyQR>S;M4(v0mqvDf5)M z(-VIT^fpO+B1=shM5}&hn{|WfBK>BBo0IMM`nUDB<%S2cE-sw2PA&seEeqDI&Lg#! zZ`MhzzDpCEqXv$%4mpojy3x`YlDaXRIiX)8vxKENyqYG(OoP0gg=8kkYM7gYHyjLj z$Pyx?fYq!_3<--tO3hIM@N+>}7(~K7)eN@R3%*irbRL)L$9!_7|4GK4`@R{>fZ+hp zPobAGzAZv2iw^r`FaP#J5hqjdbaIjg;d{LI|CowSOvTEr6zAyFpo7$agVbQWwd;{zaVs^LmRkQ8 z7K=$^DYF(Zsxg4dGAk{Uv4!0bLNL^XWtO(Dn03QKaZnW~S+?;UAAqEYho}{=(fn66 zSgJ4q$l?rTF<>60Ep8gi2L+;N|ARus8mSk$Q*U>83grXOj;+XgcvgA^h8}FTn3Ep& zLqb_fZo-PjvZp2suRKOMn*&zE;A;*#Y#xoN6@AnhE{OCIIcT1Aa&A7ymxb3tPSGgJ z?PT$8py_?GZVCBqHz=5*B5`oz>Jm_bSYk%HBc4D}rjfmsiA#5fjt$Cs$FP20PP}f`ApKrfRy`oSq7hL%ZtXMLKC*6>t?>UC zZ~8{;RhNC8m@4rvD7y8dSS%D!JB#L_W0|vw{fr<2G)lxBx()*sEz9g%`X5oVHXW=F z99W;G$*L(ol2VU*p-%bKZ&~2qcb@2eH}W&X1vN50EmBVDtR~W(rAH4yh5ftp}kc3m3($)6*exRf7kNIwC^a0W4s}BM_*F1vRA~TbmMq zC^-4iS9UQRiMKnzEA{i8ZtBT|tjU}~A zf0I;%mYTy!r7t`2z!ILijlfDJlY|^osxc_lw`296RIS14cT>;SSfsALUZ4=D>KuhFXaqRSx=7-!G{9 zN#kMVuqnUFrsK!fx03% zgc7`d{vSp69@p~!#Q}WxTWeeEwyxIwO6x`?eYbVLU|m!Q>ptnS5|Z%QTD9&MrAb&< zMN$bxe7B0ODAG-sN|KO-T)y+$@1Onqc|7*HzR&xd=L^T(9r#;68r*pqz*E6G9=t!N zqSV%tqy)lSG8K#x{lcT5&J141%RQYNq52Fk0hL(y{IhQ$M~~^}+Tdxb4AEyKUNcCl z{b$DFx>$)Ido20g+6HMn$GHrLs5OW&DXZt~pgZqp9w5V-{w9%b|0cKiDU-l*{U_H0 zVUI6?^-Bl1m^eTq} zBncP;hFgY8Tf=ecWONOE_ z`%%3LJI;R5K}A*;d+0_B5@8s3O<%Wiis1?kh5@~Yac#IOV3c{DEQvW?U^$PB;W7>7 zZFq^jisaxGJydzf;e7kD(&9M_An+N661+btTeo~IskhR0&pNF<45R}i?$B?HB4v{N zGIh#fer{?U0mlVz6D)h|{G%>Qv57^DZa_-kuYl16j1B^=F%nFJ>ld~3;PfRTaZAr0 z<}ylimGZAyw(3WC)A8G2I#L<*$~S{4+7a$L zOs1$v-hbpvziz(IYQJWjheC#Opi8Zbr+3Jghnj)r$r(6*hNG+J&&QM=oP&g!-sfkN z?2J{)7rG}5|5xOy8U(H%PcRaQoY9th?`9C-tFnf4yLli3|6teKyp%+V%KQo_$`S1odVOiD`qat7|$eI2&;i!2j7adi1s65w)UtaM=C zeCwd~Wqm}jNn>r2s&^xA<53e=yziOq`%$AAv#A}`UIyP1butN#wIV3mhm_=HFcz|! zFXZfZ&bOZzJPRi%$5OZ_^+%*6USkv`bd#!kZ!|(x7a|TtYdu{t z_+px&`4oT^SHxrVKZ;gTLUY?M|D>U*XK6D3k(h+mshEy-!%B2>VPsDYD1WIc>w@(mL0&vP6TxVAZjB3+%N`7 z*;K4YH|7$uJ9^1cj2gU*(OWcgPD?s=nRxCBb_a@13I=$A0kc@`K?U1p8b4q+2sTD` zFB@i{>3lx?+|mPs)Dayu5C{6U^NfH2f~olop?6Fw;%Dmgk8=PYOt5bSl>)(#Wn4Oj zj+W-NS7QWUpfNBp6jKDk$kOm|Bmjz80m*?lF#O1zZ0~%BjnI3nO(Q%RK;#z8a(z_ZYH=+tt7J%Rcp(v;8au=SgGdJ1S1jUk;Mw}x{wBYJUi*2#Cs4J!=7gNZ2N-C4i*0WXO?}1RHQ>;0dGaPjj8kC-o}~BfxSa z7JB+>V*2WHp4!M~`oX0q#P*`QWL6?t#~6)c6VkCPKwoJ}1hFc*u3?@6)ffS+64`K6 z4;2{%ID3W>(upBeB0CZNI=MIF!mvoRRoJcaYXn}otRFJ-hWm)+*m?ftFm>(@L|Xtt zCUk>w0RU8MsYN0CqX?7CcG0U?&d#1;!Z4j2mnAAvC)Zln-}o{yS#kiM*#D2za)2J| znPqsJ7HV*uV|7TB8EYDfA>XAvhyg)afoH<0b~Um&YA|kQ@Ve3p2)S7T{yTErL1d35 zgGON&XJit}I%p@>2qyKjxg!@1;+b|(g_{_2iMP(o@S+GVMBWF}H{2r9WA?04DS3~l zSBZ*$EsfmLf;D9khyg-R>k3~_Ll4>y7L`Lrm~1~?MulwN-3M7N2r)8-lDqV&udTlA z*y%&eAJN~V!s8(BU!0I7B0%6H+0II7)TaEkdwN(}AnVubjEiI#xDAcY7G6L^Qvbnm zs35o?mT)`^f+Pz;EUk-}U@HGm2t?(do8+k0T9McG9G6H2%zhJxO3`I`D`Qlvc$6m3 zDl*-|H2o_-D^N}x0zX!=;c^7kV*1EVIGqjQ6;QX;=oS}KJ-RLWtN2EYqwR`GAo4nN%jN4cMp~y0w8~CgefE{)46@qXi8b%ucrM@hNG~NZ{ zVklX>eOP4CGHBls**GlgJY8R?ddYYNgqa*D4wV!NE)P~I0lCO?ce(>43^*gcD&RbE z!lHZxMwv9iGMR626`~BfxDN{~I;&tqN*p9${W=%rnj3_>8`)L(AXK*IA~nn2v0Jf{ z1=G_6rxgQ4eDW>9gDcDoGpzM~|2=e1Y&Xxz{7re;pO|YAE0+|~K#)CkD9>ajyu{HT zN|AuDDk7j~FY}59;a@dh3HaCX*QqLZ2JEyuFB)%PvRPRrTeOh%AgcuN2!sO6cbk-l` z>9Wxb;mj&ur96Tl7Yst{gZ}G1kkz!OBjtknu8B|mn#6$q)+2mEDex<~5ai28c9p-m zrn0OL`1a>Ch!ogWMJw4AMZiV#=au@R7Br`sG5+70Cwe`^ps5OJ_jETpn@}kx z+lkZvaP8TFx&n@(OPOM=_W2amVS7!T4t#lw=8!y5t`?s?#)p%#*VdJ}$!PLLF;WQ> zNzs8r$T3~aV9I37`-7ElV3xW~@7>4cj{nFoicx}a2tN7^HXv1`DOGMJ`a_vcaY%a0-=OpH^SRBqT$4x!nL zX&N1z&(FmgvAgACNy^4x9FW(&NL5UuJ=E+kZW_mR0rF!2ktIT~swyJ(W%cI>K8jKp z%E&GN;qlDZfr^qS!1JV|G(%weKk}rn3UaX+M%Yu8NX2%{T?+sqn=Y)|YG5jTC*K2o z#xAH7fEP){hKQAl{3{=U-95mXGZ*^Flkxx<`4~hP1~|sWa-R6S7SDif9)#KpFeOdQ zQ;$o%S~0#Jc21(O9FDF&H!*+EHVv8=z{l77s+1@}OjjF`gYh?@`80z(9L14#Nl9e5OLQD0)=4afQ#~MBw1Res;x2jznM1;I%hzxy z6h}vC-_}YoU&-TBS~kL-Mgj>=&1awK&-vHDGqXR}?S*{ zC_Un7U@QZAdmiQ0CvSYK(52;X5LE1f&LVkY1R$oo-rqF79Pt%)d0NhQAFmRuQ_0aG z(++)lJ!DUu5ceG=(sdkZ?Q9RjYiCJ$92Cb(4cn~-<91e2L&~U!5MVA$!Qz)PS`)}; z$Ymwh(Bi3=)+KgPZ|t0?hILfT!wvJ1#MYwR?L|W>lUPN;)4XEuWx>#+6)K_q!Ig8Q zWBl9-%u{I7+ZM7P2Ezb~QI~k^&wsgaenl5`Z_lg?5o^CUIjtvl@{=D9eBVi)|N8&Vs>VJPtv`IxBn^MwB zl2csiRTk)LuJ~yXrpmU{d>^VQcW^Y=q{=C(9JcO3>ABO!QEuAa^WV;#M%L&V$p&66mGGx1>Vfn*FBnxW;5;4(DW)g~H}kdzsazKXU1bjJe4Y(0qXlHs3IXcTe1`5Hh5^iLLrIT?fTpW< zF~L=o^9MgUkkdMf$_kl1GsgHlGjI*Q5w!*o?LERRiI5hJ^NWXm2?(f4Dvx!jV-kk% z#VHc1_zN_(N$e+hw_5DDnMJTf)&=0~-Sn zvcyFt5276bUPjAqP5MR`h!NFvdEe`!GH^7&LVty(wfKtiTrBfpHODxGYCK}FmE8Ss<~A(iV}?Im_x4U zX&cn&m5JnwKo^elh+P2hX883b1vpQH2!Pr8a+I;>?r7$=uJn3l3Y4%@da|NFQ?cXD z=d#ccbJLTLI7(NhYK%$!oqGEF+Shp z=wU8BJ$SZuWasWG>R$!Zr&Il<*egxEu=!6_<+bjwzN4o&Q~^crWGX%eqVoJ?)#;0? zj=aZn?atQcoz2GHRivPHf0>@~GPiHDs>~=wPAFXN5#B@?8I+oX`!%@ZNH7vLeS$}a)=yy1wGAc8pz^~6v1Mv-3> zwF--;)%@%nK)dNz?FMKXBQ(pGqB}}V6vX#}8@PsKI34y0N?M(Xbwt*p!Av<+?z2a9Y>;OyYcOcAc?mydrox*lzp+ z>EpNe^*MPZA<+fgKS^z?UEy8ZfFyXLHMO&C0{?F;gtWqA{WP9?g>9M`o3<&_ryCT- zZf)mU^d8PwR3)`~whx1}O}Rplv+mfyc8QLTuwIT>$d{aNmD+|>brqZxX^yLSc96Il ze<8Ml!MDxXU5vB$XN!ZHJpxUss+;=%`ix)T8xye<_+nmiY6Ah}Yzrhk4TPrg3+zGZ z7@;Z*#ZbN+`$-g;7Vnu>yHgIKaC3~0q)@@U4KEa8j)pEK?X#ScF%k;samNTPmo z&3Y9TPSJpmfU+IpIdWdQSgsBMq9b5c`FLPjP-&db1D-}m1{EGc+;#KzJV;qerT#q* zz?L5y*6dWAIY^H2ZNl!nwOtw41y*ifar;A5?5|Y<6zgKRwSh}+E_uK2gEh<{8vWoq z+Id#nX^`>jo?FCjFg4{ds#3dHdBnnEkt_Y=s;1ab@@E-PVP92QZdFX3!OMVJbrb+x=RD*{Bq`R*&iSvs(E+-nRAGNWebm5ygJ0MgD-;eT%vZ`vXqN z$laYkbSm_kz@6;+6xcTkAAJ(x8(27ZTi7{NyO@fy;a$JIB=3l&cdXnVoUi*@B6HW7 zpBmrVvpWP}ordnSm%tlWJ=Cz`_oYR}(V?>T~tiIt|cQUr}A!Ihxp8M3^DOP=Z^}dgTo277yZV0C>0v(JRt_FVbk| zc;87-Eal-sT;iRFI|B1I8=S%MX^kE`6w~AcT(F`!Z39d;A0~FK{IH!aD9xuj$Ex|J z<`F$gx`LZkq-J0ZvQW8;W9fUs71S%wfy7OwRO#>vG#rxiRsb%Hudu<1Ap{^immEDt z-lSy>EDNp^uau|I^RPRU0{g_boJF9u>~<8ac!c%knyVDPe({u>% z3hrNL_8`>s*mjd5nqf9cCpJW^h<;LL7BJtR*dE}eZ4ID~ztPoqMU$<0Fi*?$3^;}y zHB5fPN$)ek*!HeatEk*wZO2%Y0@Mv9Pl+|IYHJ@X)6#J(U8L#4kU0Bwh8RmnuOVaJ_2Msm=we z6x-<{8?~o$s(%_YvJTuY0MnhMVbZI;DlG?;$_6ve;jK_gs z7EFuD2*Wuvjd*641f1l+aJ)aFefXmzG_*-IBP>T_e?K+-)bE>B2n{>FIS;GC1UT@` zl4DS$6NG!`-uI=efm%R+OO0A=HTgk!H0rUTW>ZHV&W%(Ysj^4As>jy{d^Q}T$?txX zuWtBEG^Jj@Vwzi9%c#!LY65EHw@mieDs0zIY;W^9B&xE~h*7rI)9zTwbs$GT?3f14 zEwdO+NyD7{mX#wlv1ZAFaI$7Y0}UgUVF|xqIbUX_WkRrmJM8ohM8F~#VzhOUunP3fkPU*MxeYw^n1^@u6|B?zKSNQz0?QKv z_6sB)#n_lL_udHr)#Ncq{uxSCz;bJzQV}P!@Ph*vF>vOQ2j6R0r%!XjE?vzI3A2RF z63a=91=Lz@@*P8y1Dm*wE2b0Dx~Ku&ozbBm7{q0>QETw=mK zSk(&o>uOk)5kO=fipJ{XXe_K`9v+Q=qD;j2^rxHfY@Q_%MT?=ga7d+Y$eS_UDiy+X zZGeW|w(hS@ODCB9fhFY*>G{$b=}*mN8$+{$p4bc*=Y4PFm?L7P;d-9)bZvNW1q~Gf z+VZcfPW-9!P}w1j?L4Xw7A*taRwEDt(KSRopoC>Ipa-H%t^lh_x)(O)=Fg z)=G;oBH7Y6M!=W@kar@ML(D7{vHqY;eT0TfX7}2?AGz)RKm@m&q{#%yT)#*|jLCUQ$`53_IsoSBlZWx?tD> zv_s1q~-R$PR@qUk%rtH5YXJ-yVV<&FFv zCjI0ffoEmML35vhmDxhVVom89}Oc>QNrxjW2<@mIN5SxIiPAa?GyKV(x*C3FO4er$~xs|r|qurY~=4vishqw~CizxzUy#{hdT3u~eoz54d%V9l+%gHc*9S=qs2+CU&b-y@M z329U1-8=vTP97XaCmU7rhX(o9HD3<0;Ufj5Eb3$8YCm zuD(7B*=uhNN>|U3Wm|HYkeraqK~apts5dV$bVo2uLGbdOiyTic7~O1L(Qo|^VZ;5X z0q40x&rxzKI)fz=5Ly~cJRBQA4-$`{KvUrrRFDUwjT>fSzpJp1~KBkQD%KJ+8uq z$F2M1Ghi@-PO;|dt4u&F+1%tqz7LOG8J1suD{K}jXzP5wBKq~zq_9bd^wNtDyrz&m zTeRt+o{gcNo6vqW0@?heoHb}jhWWUW!SVVxV{^m(=KCFmQy9@ak?El1j7Z3RK@`y| zy6+haAx^!{9{s__5Vw&C#6MK9&=d{*G;gkZg3Ck=Qn8Zmc^MRzjB_AR<;3qcHSs(J z*sSIn3&0sp)zy2&f(B4guXN#?sPI!Pw^XJ>*u3{1g14v-y-{>^3>)f0d$Cr*ertD;2@cK7_V#c z>Q(r`Ct+?PFp3(gB1<*e2_Z8fPC^KamAQl821K0g$cBaiFRW(ACkuN`o#Sy{>12!=5$%+m)TOc3vtNBFdn2Wf{^>V$wHV6 z9~<|8%ckOq>4-<~1Y=%vPv@mx1+LAebT_M6Q~{PwJ=kdYFcoKJ-!>=lsr4k`{+2r1 zDQ1{8Q0rmUYXN>XG+$#-)Gsnz5XM9XH#S{L)E+%#R?W&*dED3yN4B(X)G`S=%hzWE8#dgiY|6zIvG|al zHi8i3C`&&P3ngI-UxS_j}3nG{f1QE~94PgrK*Wo&LVSeUe zP}ubYd{n8rELw>wlNEI~P$6qYh&rA`5>Q%8_|yVRbakGN=t{^RR9|-*8W|#DGpV zWhQn!KjS^r620B0WDQD)6V!GXoDnfcnVP=#(wP1P#%0P_Y&{e};l z_Qf*wl>=lkS{4GVH>=^Ue#SPRLp&VQVr`}UexI&SX?VnAvUTkXKmF6+UBWfPpiARm zM+nqp%iX0`O3WO1$=KA2YIPKVQSx9CC8nkVE(9nagZtYErS4h)xJfrCU=A)5ai2yS zuGPWQ1`sLKCu!~oKZ%})$T}ucO$^g_fa(=A=|(iarF@^FT7?LbtoSVR>N?B4*Cr+- zLzKrNi;h66Reg>ER+>60x9Z559%O7xnKW~+SLDOV>;qnnpIn-%yqv9;`gLM@{CM3u zw_4g#3vcZy7zohgTpB&^M(}(1t?kd?l*^f29zw`;Mw&N(n)MMoU0vf8@3#znf4nd#i()$4fZv$bU|VZ&y<9h;2*@k1zx zWDR~c46bo3V1-fA)R@TLQ;kkuw1}LI@AQOvNyA_hPajSb{fKl_g(OUeH?Wu+EyH!s z3Ijn8vX|fbo(g;0e8qw*99p37++k+?J523e%oUY)U1@FIO4SU*HW%3LR4u)`$#jg; z?Z-a4f#C@M%nYv^;FL zt3tJQ=j?`1k-@K4R;7VKrYUSB|CHl5>ve9UI<%2)>0~aq&-vNugLJ55c(k6mA5~ov zBGIpI3T^6s)bZXnT<8x%Ab8zOrR4L~VaPk?A&U`)^}^?pfcxF`I+cM*e_*K02Jid~ z3zo=rX90|te~PDzh>@6nv^h{@94|%L_8HFUW5QgK-S_fLJRD(L?18{`NWOf9IPjTmNtmpK853b>;PY1gtVCWvUG|S4 zn*ro13lSd)s~@pA>Ad;S^~f>@Jt`L-K!$T%EGp^O9p`tw`nIk1<86$Jy1c=!>cZs^ zGR21#lI_uKOtvprb?_4EEIc3wS06p+limqI?#VXXPft+HGTNO83kD@gR|M;i4-F}W z6$~5N9d7h7Gqz(w2|ZF>zC8G81Y(Q_;TAzyceN)v5LiPfOHMD2o*5ZzAPZ7#kUu9% z=!J!4Z;CRiVeL7?AN*DKh!{0X6d7t#X&L|+CE0B7HlHD(Y*vJ97Gfk zn5MhJv-2|a96MYsxt6aM>(u>m7ZY$yL}J>t11i+OJ&&Cu40N z!Qh4P%!)Xtf=9Zs-iW;qO#MEO&QS03st@?woU&pq(P5>jIH z(hr!2*~yjzx;Un%%bd;58(?#OpqB`7g<3gy@FI!xx0=a9)P)p0SG<1CYR{5>3V<~2 z8;=&ja3W`y8W;Vq7aw3(9D0P=+$G&iAI#jseSNh}GUTsZpl$p+@PA42MPknOU-WY$niYWyZZ+be(yo@$j&XYAf+#i7H(#QEAr&ZZR!0! zNZ@m%PR(k;lZjXeOd8gs{Q#ca#0&o5Yz#7*?iZ*-4bsC9A*|*Ks$r?Hv?)n}-LCM| zC*PNUE4gqQRKvXW!&lpN#jzmVgNcT*YigJ{I}XLncQc*rG~#ZItM9wx(I>dx-_lwT z(Nz&4L|T!uFM2%isyD9(v_0LiT+zKh^d)Y0;^w)X(x-uf=V7ZxC-i&DnsC=c+b5px+!>5J)&TAp@*?Bls z#r~3ndgd;Aw@x(Ev|SRYt_yQ}#;oo(B)Cz+Mc3WQYLH=UF&N6!l?)i$* zyG&o---v=$2JYV<9)HE6Y=H?g ztOmP(WQ6v{)kKros`l*uqO8jqtaD$tQxgyJuc zjdi{xO+DKpX;0L19f%;R_$_F^5kpXNyN>xWY3Z4H3ObHy)FLv3udszF>L<;*@--}! z4u9Vx1VK>6_OYN`fKDJ%ta@8Qp;h@BS-#e?d=XAMRz_%yfR6M;HmJ|AdzAbnvVeE& zb41TU?WSaBd4ijGL}|+!wQ|RX5s*uwBL{$>ZBXA7<+Yzu$99>CkBs^L`^Js#dQ`_i z6`pXUjC!1N98k^Qx*PE-2%r1|6cL*t6w4}CqnU<2PkqznEjxroN=faOS$c>2ecw9o z*mfjXPL>~E57?0#U>x0D_R=W4bsmU!K1Ih!sGKmOBS9IkG9XFnlK@RljRi`VPk#lJ z)@)kJK0^qR$O52}?5fdvNgbAb#I5}x7{NM#0zq1% zzB~;HIxeY0{QlUtVZXHY>Zd!)w?4$*`LE0DbJyDVq0jf$7p{K3|L40|LYEX_z9NFD z#;%A_MolZ-*e$Z8zF&^!UwV~-mUs55L^sKLPme8s=_7xTYx(C(L9ErlQi0~`AnsC{ zRhMzka`TYMgtWU{l%^N= z?RjwYwVMxoZ^%)`=$GZbk4KcpeV+>Szt=j=G8+Egz5U7Zx2L;q$8GsH;q|rKFOQ#? z`SHr}U&kL$1H!TEZ}>*d>m!Hz?ybJ|do6!_GVh1k`knCfmuvG$?ys6hD?eyCh->`K z*WYGc(!RBHWCPY=II}0@&c6-shV17pj=jA7X~&OOKVOIY7g#*H_+lo0<(tEfuaBr( z@2`IyasD^$^WXuWW2+DF7i~Z1ncX`+{3!kPf8XZ*zHs(&sKg+V|hJO7E)v;NQ0R_2$VjsEZKtAj@gWwurNGzWn#8EgcivR>D-2 zE`E_tSdKSZuwu7LL{dZgi}#=RY3pBjD^pxnGZPiRA`Y zGE2|DzRT@%{`s*mqqt_zdZke-ar1Dtsn7IMEUN{*w31^#Jo~eP-y^rD@WkHAH@|KL z_l}q-oFMod_|nqhypd~}{)w)Qy1eN6Eb@ARu}{s~6=SQWsvSrC4^@5HbKB*$Wz*?Y zC0%56M?WR?Q&4WxP>Um--J6fDrd##C)lgIOVYGcY`*tq0 z3u0&0qeCn_*>&I#-?(ev(n@Swla}3S`v=&C<}`(wT8B4=Zpdk3W|h8yqviV{(q`+5 z%=wr0#rEz8qrM16)}n_Y0`J6AD+M7g)zcwUt|xWZgr{6074E+GOgTEr>{ry)k@wtz z`t9JP^FB|WFHaJ}KHo{c#naUu2HYs1JZtpXcSD(~!>|A>CqL0|Y?_A6% z&-SDHSFeYG-eK$tcD_Km!=nCK#}(!DyfcUPS=vq9!(dNiFKBOz%=W5I9m%Wg3jfC1 z{k-1G@9Mncf^*rP&hI+0RiGnOSbjX5_P!%uV! z`6E8oj&E;H`r5EN8HWouKN6#TW7;|V;&_+Mk@u{+oF{A5<${`q36gw{i)NFJ4XGy!GR) zW&D@v7s*MR^W85RXWo4=dp_)2rN8Z!jJgvp*VWbXJM&sBvi9s(ivH0yb@Clqv6A7R zLlh`tuky`&#-GoAz3003!${PJakaYv*M7-w8dw{8H}iesmb3JF!H2=uPG86G{{pq` z|6Q@@=0DyUHqP{#dKYZ?>_+YLNXzdrL1DRj?C%hqUb$TVHHmzBRA_r+`GBhVLEMd? z&KrsgI}-1N9&P;9%8iWiPRxs#c(wV7jKUJFq5SuQ^e~kW#IX8L?z81nc z|JrTm;n6(p!xglRp>s~Z9uAwoPkk=cd~4|}cr^EbGT4Bg8ZxmT?AvY%(7c0xT9?rvNNz|Eexs`&C!!NK}E&3(z2e^;!Hw?)5KnLTx&Q}W_f z=Sat3%-RL>(MR)+R59%|Dqx}tf@7VnP^%3*=T{&Y5l{?H2 z|NSq*bOIN<{AvR&@%974q2RYUpILW~$4dkIRm=My*8hHN<~jB-@N25hMpMgiAq4tv)`HRn37b(JN_+*bF2P{xe`wcxwm4>@ju(WC!>zKY(Aih zN=r2kAx#{8+?V#)=-4I!pKqL&+mP0~<>bHwKl?0q`^qP1($19->Z9ux*S6$jbgy%`iXk!N6-*a7EXuuBwXalY+}{hN{4 z8_fzk#xH1y9U7O(l_$l>LTgs`X1nY~RcQ{@n04}9w(5`k3n}^UE+;BQJKpxls#z?& z)Nr&iC8omtw4ZUFWMb<`$0^74T|OQh#qWpXjd&}_JknHVa9OruBV{;qFKO{Wd{EX? zqYRZJhh9Y|eND>S9bFRlE;V{fqV8hWT=|I;h|}LuIZx_~3MUJ!)(iNg?81~nkG`M{ z$KrAfkDbaaIH=j+!d_W?PVF;6<|qiXUdcHq-XM zKP|YO6O+k05`CH-9O|B#Q>MHF-caOB%CR|EP-%DO_4kBJKSHHOPCpm-j(yL!RpZaO zANvX5J^;8yGH#J6Kg*PHhxm2s0aK|-$_IXdyZy;LyHc0NqH2?n@6;gggK<(Oo@W%x zaW7}OpEo*~s9}G;igb$BpYpu6G-`Lr>}0lmebP3A$OBVBql=C%?ir14MczHB;LE4( zbr#P&5B9e^qo7s{e&+x0M7}g5|CCW-x**GZDy73N`9tSEuaxA-pp-ZKGm$1IBcYvW`x4AEQMP|}X$h;s`MuD3QFsWIl7c+HVIq2ROOi{cFb7q75?Qy+qax>M z`WCxvJH8O>a7^c2=^-P*C03D=``M_dgl@aA1n1VrB7=gE6@ya&L9}?n|=wJ&Fvc#Nv9Gf8{yV$*Lu6(6%I{s&Y{fH;*M0n>twR> zb_oI3M3zSmT@@`s_fcTZMX)Fd+>-*6v4HX?P)$tvXM`+{>M`eERjhH|>TZWQO!_Ln z;_~q-EkVQ3(d?rqDmLb(1LwJ!rZ+6Ea_9D3W=}NqqAz!-Hl!TQ51OcKFfOl0)V`Pb zzLhTtqN@xE+?foM?F^VvVEepbE)u8{ z1r~M}12K)fj;=fHP~gov>~PG2lAD(KqAN4C!D=u5JNe!hri>59euwx!*&V*o?0oB7 zu0Z|FPpj-_zwb$YcV(I0pWS-zdrS9}hU{G8zld<}m_1)WvK_0QcZ6QLIqsbZCpC-3 zuaob+^)6ic-L;_6VZ_g$JBMEvb-mHJ|H%DD2Ig|Xc+!Q6^4}T{!2T^Gr2qH~xiOWH8* z69NB8geywxdA0TaPx5(7@1Duu_s;ta{G-{s$mlJ`_P%SueE~f5n{+!%{ zpxErzf$kMHevOTP?T!CJ#jgSQU3vITd)taUi(SrN3{M;GZ?apWwx0Dwxl;a5cpH-Y zRDnL3^sU8!91VfcDUY-$GW+so1_8G!I$CaWR&5%;Op#}%LR3Z4ho(%3rv$S`zW+yJ zN$bMpr{M}?d+b8+%aZ=rTYF2e_~MY>S!%EAFwP|ehrag&@u+8oI`Cg!&$i_!(x#zL z1nl*d5kdAjVbh4KU2?+r!W=|w*Vb8yxI4wU}X@WZu zCx2pl?~#4DtbK!3KEheaWZ}KZsyv)TgnP@zl}R6siK)-eKN?%NZ+*+am387ih=%SC z4{i8*@tnZx!uL&oR;HI$r+=6~J7^sabcBC?<`?RSUu5D|B>4A5xTQAy2lg{r3aBfg z>1BvQZ#S4o1yB3|;n|Or8IbXP=5#V_zeW>d1*%GTWJY*oB!sw75Z?LcKCxwopAh`S za9be%h@fsQ54G4J`bn@V6(&=kXEg3t{W<4ij)&~OSI&Q~>Wp6jBu-d-fINQ>=_6d~wTa^=FR41olXgs|ZJ#{#=vCoHT){BzpUR$h0M2dr-sGVkIqiY>7e&jgx#;foaO!x|PpZp_3$|Gfvx;#VS*+wvu@={4O^E~eVo4d1GPqbEE zj{bQ_-*?vqK)jLkza!(8K=^Y5W1^fHC!lXM4YYm_Vn~H~0*LFPbN}b*i|VdZdd3gk zTVvw6>G&Tl_}eo>-?}B5_of;izmc@y)Sc!EFU*p!y|URqsH8o(d3or*4}MwrWPRjJ zl54SkRy&B5@%{JZ#`hJegD11yx`&*y|J{|I<1OI$N8dKuxA9%k(_8V%_VLX5CXJzF zE-C+bZ|V-D)sdxZ9_5!U<)p*bC$h^u@TK?a%vvCdBa23i&)+tU&1pR{l`(mYg_un* zpM88L`~reeUZO0(7GV(O5pcpV_=x5c10m@7KFDjW$1ZHtI8**j5e@*Zx-ua$Ecx*8 zVygDo_eYDbPlB-tko9d~Q^x;k_&0>!%QF?TQefhXS|87T;SHVZy=wm-hr(RVLpNrn$p1n@Fx5?>^W7p8#`?3q?+z0Yg-1bQq z&F`U?UTwU1Z}RHB&Zgci#^)<=5j{VKq$A%tPKkoGEOt414yqPj$u2Q99{wll;tAHN zPLraX&nF6Uzd<8UIZHFGIDePJdeS`B5|3^;fAQ}JyA9{{Rew=5JLZ269z8u^sySj9 zf9~B%&p)w)UxZI2z?6i2)l~xhH2hGpXf^I4k-p9RZ#-BJ^m61skUT+Op0R@Z=cOhC zjQDpU7N@SkP>GW+JoHmAWq{W=!kQWK;~>=9OR&13S8`$N(bcGjhl4DPww_pBzQ*hORDUmNwy=Ip}d2_+6?>5`#gy+XM-kx~FZ53fJ;rYnVkzK=CQ;CLq zt|t!G@6@{V=U{t7%ws2a)weTk+R>xG{8U~4N70!_L-qfEd^Tgoj4?B|Noa<_*!Nu; zW5}L;%QBXbWJ`s%+3ZUQA<0(RvlNmv)?^E*BsA8DN>ZtB`TXX0&OP_sbI-khyzl$m z_kG>>`}ur4)7o@H6Pq_*6e|3wHmxEazd2E&{ynmyGH+%ejevX_=<*RC2FEIB5hCTqjZ(U`h z96ISNuw*Hh4wlAq7+_*N7YH|~DQCk~NEHycbORZLw7<-yAQenvsDcMBtN4DT{lE?o zMYQT=BY193KAj=_GK3G_$xY!i-k{TA3gsI8Ahj_^fPg~zE*)mQT^yKOPz(;*d)*V+*si_4#*BxI8DfteHmMJB8^!;_IJ zs@7Q!Q+MB>F`=ma61D)bw3#73zRqLg7$aMl*dq;?L1FD+r!Qa=!22Nyf8r8A*x4~4 zmGhF^k06M5mxGlHh-6CFsko_u9=K!d3z%{dZ5xr=p!E&zj;{QqIW3Y>ee9bge6e}? z>FJJKR#n8?H9gjgn(b8P>EKpU)8qBy=6uhac#S@DP_q2i`=W2w=Rb(jOTEmpn)pAm z=i9%P*Wd536bi~WeRKHeudbXUU%t9jUOiJA{8>V^IiVNinn7Ov7^U3u*z~rYbV7Ff z#M_i-jrm4@`cc4S3#n@@g+A45O)I@oUeC3qt95>wt_hAY|0G)6ml;l{ZP=32wT=*zF`(u zuHJ77wa^GB(~k+=-(Re_V9$*HlYFCUWsh`4 zQb+%Z=-vEv-o{^TjCP+qERfFBV2R!SD3JB5H}z8+``clhvT3S`q$MJNm?VPL6-A1* z=HCUc%viZ7O{0d?D`j+xo|trYAC#=$@DgBeocLAw;4pUB`@gQ4=UnT);KqD)Y1$c&BBa5R(VtdxqE4$KE1h4D$8G8 zYNR*S?{(dG>P_FtC0;0%os;&iXNpm!n|NyEo@jz%R5fV8=ZED?#Xei@;t$b9U-{W~ z5nY0<;Dy=@=MMJQg;1L(#U`iB&Pn`rt~=QccM<%hm4tb7KTb2;FJ*m)dFbJgPq1WW z^rQuAbWXJu7OZ*kc3Z-5tR}q0YXW{zLrqsX2k~|=-JJRvQmG6&{4yRS>{<>c4*MKY z09Xll7K0?0$sgQ;v7Am)s5#R51@f|13-b*&&}a_5rjkJyT})AmYS5Q z%-uQtom`HKIvaW^bA9vYL8*0vKr>6QU%yJ%Ze^|6BQ~YF^qC+UCjE~Xc z=B`B2c4Ks>%A6^;_Sc~BqwtI==GpDOuEE|>MWf$`$D<8xdA{yC_?FDVo}b9gH}P@1Ot(e zA1ht~1c@F#jx27pEPoVq;}a~T@~iHHjN7-sA;Imy@{Kc^b+Wg94b93gz|1AJZryq5 z1F#!(PA-O8Pxg ztdntG@NBx#`@0i*dNPuCcy+DuJK=)pc;k)up{R>pi=sbc2NBZ(EAQ_Ck2gOs@1#un z>(BmhzjEo~!q)`lMb4l0npN3rzXP{=e*OM=v{~+2s!nDF%vBjAfnubZOWqP~()igT z>;LtNc~9l!`JT4T#(zF9|M%zH)u{Co2ipRd{<|lyL$Eg-H2Z$_AyfCWB2-R^^6cYi zg%qn?Z{7UEkOfcEK`>*Zkz2TcT=5EwWo2%6MO8zakx^d#h*E=ig{;tAq9Aa6Z~O(b)P40PV;i;+S<_3`~haNur{^t>Rbj_K7DZyfkd^ zsL82}o`sC=%}YnGe1AH0i=;i!6FAzD_{7BLj0ruX|5L2S2Fvu)_ecFz`Xi%HhfemG zqakJxVV(SL-JPRUJL>vLFjb^yku_kEN&TQ~{$d5cV5_G!MzyIPK-z#wvq}$?KqNH8 zwmVs8uV4RiN93!15rpDvy)NOi>yr^UL<#baRn;g9e5soZ>AquF6l9&!N8 z>GLY#I5D1XF$uJi5`;1-IzysLQ-USt^#s3Sb_@j6M}mqzS1QpH_|#`Hu14%YDt{b_ z|BUBzUXwp=4xZlOOONFftm_QVIqn`WVP*iX-30L*c}iOV;SIXT&STVOjs^>RC>TIG zP4CdUC8VQTU0+pcn_ISF-C%FD@9Ib}kq?$}>0~KOs z#nQC`n~|xyj@0fM+ouB~mffS4RESm>wcnN66G83cC3*ypnfnZ0?SHyq+irik!@inI z@&rDJm32~K>ZF=1BdCok=G#@Ioj=F26I)Wf^>L#ualt9)Y5a+tluLB}L|jG!o&R!; z{k8bit6cuY>XfV8@hi>zS7-SXI>%dZ8F2u#zlN~1C!@JUOUal)Uu6h$8J|~yDm>$I z{4mr2=uhWAkISH1ACIw0i6y68r1QrWHNF>_XyMq;vs2Cka&T?QAa;{E4lH#VpcPm( z5R+t}nF_X;WR$1GHMB$*LHSSdk;$w+Yan5=9;1Kii21UTk$VSJ=M%(Dd zt&E0-j$O{Z42)1IMmUaV0=xA%*NkM{E2?-G9B(cDIOq5c*-{f7ftDw3pI*38RBzd- z;IoVc2%yG8U|AAGoeokrFjXgmNkxu|Qs5O^ri_LuDZUY&RI;iJS!tVwOMzAXJycF& z>iGi4XU0S|n4;w+I#ysUGV961S0^G|w3W?xYU zZI9ctly#XlXI;#8UYW~*W$|DtiRmB;G1CA!4os^&oz^UxJoeP(_<2`~oa+nQ8H(>~ z;{uaopIwiQ+fwl}PX=bX_iVc#zUn&gVVOy~A60etTW~vO&#~qklviaE=^zb5h|W&k zc&7WZFoYD=IR2O6v{xsr0WwYk$cYjzC*Xi+>!+Q3xDpeI(B8FAkA3Gs%a+}l{G z!Md5JHb;9j4IqyIH(c^FkTy3w&?#SxS_6re=gIsulk#Y*l-*4J^TQ8XHZ0D=4rPA6 zPW@d$9L7Qe&<)nI4NJMm&vYDzq1?&jA&Gfj0bD8&Gs{pWfc*FKQ|sj9t4NS4)1AZP zYu}IRG?yId#OeoNp7BeIyHu+F2EybkbYljLr|W8 znYA&Zx@V-?NUMu1@%}(q7gN*bBz~ngrCJvKP&Rwj$?lS}xprIkQ?nx1Y4I5qC(z*s zo4poW)|Mw98mG54yD-9!&TS%t^o1ii3yzr!uhtl^et^_xeQLik7IYUz8|Oz)mB^p>4UHS( zm@V=~jrBF}b$j2{&pOZuzxBq&H7Srfy-$0|S7wK)%7zQ5#V5>NE2$hWYWS z->N9{h$ruiZ#~?Xkf7D52pV0Odv%l{5?u`)D3wc)tDnN?EtkM~c()RV-qU2IQAg~~ zV^uS60{me3(}Ld-m@;yR_UZP-%%Fci&rO(Qj-JmpH5H-nyXdO!KJXA%X? zrg-vQQGw`K@!4*y{27Mi)K&jpw+_@Rc!U;7{n9SAuSlSv^>N$VvDtGTE1jkyzHg+AW}>!mT+ zNyCuSJr1w2;xjH!ZSUV~VvahVtHg@#Rl5_>|WJwwC9K=PBJs=(pPsIaSF zm&dWC!4to{#juYXkrU-pJPU zOj2E2XgYt`KmvnuVz`?!9xmmgPUn=>pFTN}=dQ;%vbU-6zUmo+=;Z+PfLfi@1EPl~ z-Sw=nv)ETpC)^Wd|0n9Zy5_rh-ZEHvU3hjrF2rx^ZtJ?>urLgC#Xa<3J?q0gxUNpo zvSPAC)tdJa&Z)S&;nMrS3k$wG3&!deZW2QuWOjg0vMK5d3mY>NGV2rD56=Wl%qwiw zDLg4Ta<5fVlksCAPvsEkxDkMlaT@v0pNI0;%G|sz=o@`+ab3!B%T7||T$f0GZmLRG zN6A$A_b$^{Is61--6)zol9ODD5v@Q&YtR-|${8lP{Q^%geA8w5*3xovxJ^UTISg`q z5}n3CzXJ*ne<38(+zL-i!!UQAXrVe=u^WJEiwr3)P@V<~i`-Dz2@OLrrAQ1sU>Khh zN+5;hKzXwEVFHXTeP+AQ-k z@^n*D)Q@%G|Gs>!j65aU{1yG|Bly3M&oEnJFR?8Lv&jc*@%KWn=zVjCenpOBFMRpx zF3*JiVq8Di5Eo}QW6!Lgza{?PtjxH4eYr^-x9emNz#xYeMu(da$2t~Wd^F-)8 zR=CJd|IeBz-v77Y#|KRRx{ADkcj2=BKNhJZW{j3j+oDr~u60qCdj6U$*>XMuz- zfZZWSLhXlu15eri7zEFsC_t2NB*1!^4v>qQoHGpRAR~e=yetEhwzc-e9PX&dwd~2| zGf>5xrQ1VaU^T1Zon-wR4|@`yh$v#PWM$z}ZQrYaTJyH*dMj*J?+39j_B}Z;Yah86 zKjHh2A4vq82CnT4#k&oCahJAI-pV=kvJ~wVz9kKm@?=U)GNd+u1s=Z(Qn*qEzolqV z@&G0d$Jh&D%F&oocwQ4^B{dkh&epALAl53XI3AEDmJ~h5pI+XUcQI@?4hk z?C-sGU_HG+ z>JkE}Z2XYw{BmSWHt-`I7Y4x6Kx)HZqzv9MlGmkaO!+XTY8Yrggeg4>(nPZ~axTB% z2W#vz?f6`b>I=s-{;p?mOj+A0QznrGfuTf|ibzh)Ob&`j zM21ar0S64Iu$5isWB_O=6K5PfRs`lx$uWrL#VD~-UgVlwD5pN|CywT-n-7r~Rpv;P zlns0PP+n*smWUM7!BA7vs%==Mq~0m~36>O**3kTonTGN*M$afM)u&0zvGd4Qglc|v zP@_!^`aI2wE!@+!7ESN>=!%zv&7ag=eG3(mj>ebfg3~(9tu;_ydQr^BBJxOLZ-F_y zBS;~C(qM_4f(S}@BV{$I8h&5i3c~OXw49!LAXNCeyPe|2D%HL*WK#75$}dFzUOI`d zMiYo8nFSi9XHrszj-4>jd=2J5tiQO2(LH_Qw)N$GyE^dI7l)3g1g)$#l_I7d-g{iwIQ*OJ5&xZv!Njksz0VWf z^EZ|+>2-xAi5czfFJq5|PgQ1I+38%%u-l0V7CxEyj+*ANK_*-cE*Yj~+s)3hQDmQC zs<23MJfE=GL;?XWBEWZ2_-KxmLNVEKct9+8x0w$Y%(Uu*nN7aJwD)w zzs}Thf!Y`R3hZvW=L#(JUb+mN5RazR>Vh=;P; zik1voXMvofSLS24liu?(I-cD^V+G>9ms`%i1>SLs=J4^W%xh5lRkus~h0vFIAeoV)~>sV<7U^X-Z1gfXfq2zVVV#B(epX1^KZ^``q93@PJNFhBgnV_$@9@5j7jyv3~H({ zdfNJ&UP}@#bK>csSVA;Izc?X0o{)5F=;p^suRT?nVuu5sf|2b7UJAGrI+71_9 zQ+?&_3#!mL?|sFMD?YQ-BLS`sGDp0bW(FIn0x=a!3B(cVk+cc5uc~icCbaSHN^83UiQp2E%@>a`pZ}S_@!ph-$IQv;Lum&s2yhUX=XTe~p8a@H}$tycmkc1v?<w@fwUMrgl*{IAd}C4hLvYZhE+X|<>@1IX;}m=M?#!_9JNh`9GaEo&tA#l z8=w*O&XiYgM;i5_Yr|<*t)NPd z8!5iSUybvvhSV;Yr3p>vV4oDNYyab6NgT9qy`T+gKdQBtxccgr&fbKye9L%5qzfW{ z2W)z@=EUyhP^NI^eS?l#&e6X>(Ss+G6uuK1_AWlxg{sI)N2HC?q@+%pEN05fQ5oh5 z?q8WVG?GZvT&LVGedP;r3VI8V9ezLhe(Qx}t^Q`M!`VRXTTeJi_V$eNa~EW*-tN^J z-oQB9aG5oF3l>@v#WQ!cbZghC;Vx$qU-@tYYad%#x)tPRGzJ#b8Q3RlHG92|B(fTU z2M67s0R?3N0M#scB zOKO*%^l6#9+4U(x()(&8eErznya=t;^NUj$5O>f(}PEad?pLbxniOsjj*Ab6kX)x48(BCip7 zb~q;5*c#Pb9;m{`A*%8!MI#-Pc!^qan&?52Be1I7%TiU$n<7nOq=#hoiCodJ$hF6$ zN>&99*N}H_*axJO?tnxe8w?T)Gt*t7PmJ6vXXiUjrI=E`kJiwJY!K;A5=IFlE?-zb z*%6K|BKcTG&cXNmTT2dMMGs%Zu4`*gMogONACgF3KX*fTAvlEiXR?59sgG>jpz4D~ zC&PvmIe$|W&8x(7EiI}m0#bb?OJ3%woz_q6&2;{+awhFy_pX`L7WrgXb!H^=Bw^gW zU8!GWob#wDp%J+{Br0+bV4;5%k?s=>ew@0NteHLK6&5AdHo&pew5*>CLd$l(KF~XT zqTYKZ@PBQc3()YXD<|jI-?X<`eCFkFos2*RJ$hf%81YW^{T!-FtUvlJG2999vd5kK z2$$4)>G0Pe`Z8`%RpZiN#^P>>J}SPsKOL^ZQ&`>P_euqeOWaHuYANdXfIXHn$X?8S zONd%uV;)Fpl`bg{n;=f6nhP70rjV)e2%pKr;#Z|%cRrdSTmR=Oh7*6Hrq{cEOg{<_ zYWbdH{1oniW{!VLRw$AE^zmd3SiDH%d#=muG2!f&Ne}2Or3NC(wT5z;tAUlI0l&m> z%|z=oEJq5>UP{xcDl7%SQk4Ac>D%#;zjkF$`hqx0otN{iTW`bp@XOrM6UB9CcDxBl0h z$W;nDG{S}YUAvWW3dj1*SyS!5IsX0^>RQKZ{-kqR0X~c2;C+r%&$&ByViyzd{9Wa@ zP(A1xpS9X=e?O3_A8uHW2ohm+W@P<*RAuiSQT?o=NAB|(DX~z&n`fSW2zlooI(SEu z*8eB~3`T)F&bn(#nyaSX(xaK{WwO9x{Tc@Nr=noJ;X=J&R_NKnUJUEmxA#xJ-HI+K zKl|gbK#!QF2&?yY;aNV($k!lJFz?Fu$Uv6bWeRcDOlr3Gr>F;U1EjgZRHeTEP6%Lp ze)F4fQ_2Sz^}{3f9fNV#mR?1<#`m2I-v#`w49 zB{9hphufFLYAO=WG7h~7IP%x$@X+z;CEy3H;Nsta*;BLg5MN7sh>;bp2K^iyx*uxpG12NBx!$RcWgQaSemGx5+x|03lCVu~ITB z6|i(_QBOivYykMiU`1DJQLl{tCT;+N22kzBXK2#PgJiWNK&I3rw!tQ|S^(609kOJ0 zjnC)LCXI;fS3vsc?Vr>fKH1M;>Pecb%~GOYyQ|LjQ7xIO%^%=?t3rCgd++)z-hc!H z-#?3auW5CX!qdVD%s;B&K06Jj4&BluuTnra$*p(JnN`PF1W4~4CLs@4YBLnhX>+S^ zmKr`F<_c3pCZK~LN8$#@Y=Zg)!BI=ZKf0w(mK2Pbhtv$?lIT*rFGJZGC)x0JP_t<6 z_9=ETRjSkjiPln)RdqkC?1kdDLi+dd0><4G_E&gwQ!rl4w9Cq3GJABPw+kEd@ZcL$&*=f~2-#pg-m zjUFo+jHHUCS3elr+}_WF!0j1Aa#(6oO)ZmjFPSD)spGK1O`E+kvM4E(Qhxf|4rih0 z-VW!`ZQ^sWoe>mqYy((J^Uk@fk^^=ZuC+bc^YUHC~SXpL-8 zKcQyeh?;3+4o^tOnbfJQ4qM;a5kQB@*9n*jJ)EALOlvC*R}O#`bL|%(z(s?Mwi>16 zF^8I;n@85++bTR$_=p%eJjK8^nK)uos#MuL@WBx_zn^s*86rkgwxwo#P)SW9lx@4! zTGQ_*^aL*bu2lC9TJl=4>OS*CLUy?Ta#bKG{q=qJI$a1|#zd|3tka3`s;4DXL%$&I zzfk?iAi8&zUOLHo2cTcLLeE}Fvf0+flCqp+*@>h#(epwPRYa+kfuG7kp16LaZT5wl zXFd0m50sOcvRN_n3F{mw_O{gO!L|^r$lzX)bTA{O&t7bUA)UjNW>cmLnQCa&DJ^CB zbYE%8rv{nP2&<3GYC!Ug;(6&4$$u@)#yD_EzGl)eC)i-YYDHP}#K)QOjs4B2kh*()_a4Lo8$OMkDf?9NB`s3RR@ntuN67D|J(az0FRmn>OIK8Rg;-KjhXjkxO2@KnBe;OEC@SK0qL zM_gk*;7=)oSw+B80kdJLaDymh9Kbq%$HvZ?;PoJFXsfrd+1g}-F&%-ji>rkrF z)2hJ68t7~Dlc=+b`4q_wGewO?X)BQ8JVV;Cg}A|-!k!iTPi4wkb1DRvqIp)Dcvh+O z)0u8)#P$~?9RR<~xx*cTaV>@Lww^h3l^+5@T%`vQw$g~fv&oU@*%&y$?7>EQZQkIQ zK&x02+k<;Dw&;j2vR}VUjyXKsSNdR;j*bQ*W;M^$d~zxxoSsN)i!eLn87ZH^kZ(`+ z^s#Ckt80TSY~e?@T&+k?P}K+HD{n&H@7W+5AiSZgtb5&&UB_}u)qFr@x~AF@+ce+5 z5LEg4>l1&D^DxpQ)t;DYM<4fWWgUK z%u3wyKXvH+?ZFEh)^^SRh91zhqSt{zOwh_QFsv^-j9EAPrwpR^Y`|v5)0(4^E~oJq z%G;A{>{Ol}+^1KD3H6U7R_N)iD*X9WEB!FKdz_(~w$(4pe9?oXHSHnLSAp*~aL9p~ z0Jr5!Q#79j@bF7AUqg$M=8(13==*4nwTNwMf*yYxFEMjQTFM>Lnv|_kcJ}<5q{=Q{wK%I-Br_Ffgsh#aTEAo)(!2JA?q(l zN6ciWb&`VH33@itA&u1$8J&C9-@8=xU&SVItvj4k!^7`q6^A9k)_)l}h|bds>nc}7 z&Lz$4%!}6k0BvT0^xM^5T%UdN ze5*Yv?qRU)Lv{x&I^(~LCRI#K)-~eKXL9aPfm!9Te9fxL?XP>oKSA=cq2fj#_DG}j zMxSD*A08j#udEj!uBQty5AXnK`~_+3C8*<=gnTm`u20>k|3LjONQDSe(fK3ym&c~> zs`h8f5GgV^3XcL$Abw9v*!;fEe$+&L=($CaJx5?Xupy=%Oi1aq87+H7{ZD>p-oEId zkUiJ($7}ia{!f_?Q$^dqmmBzv-#=Dwd2s*WDwX>*aPjp*`t)q=+m7Boc2*2PZ?wbO z${FzsV^{h$;Z6~JSU>**6@CYh|KXy=|F-_#Gw6D|^&hs=W)U`XfsQ`4peUIS#B>2?rB@fuB%q@9;-o*!hWD1-`A}b#g$COFfDga zo#ZOI=pH*t_R)ie?M;UGK(ACy(akNO8120HmRZTo1Ie+sK4PVw;P{7c z)Ppq@eX87L`?c}l={{Z0pcePz-=x?S66c2^8zlCfsbWwt>&TO1F7)*a~<>N)rvp~a%qOL>@{Y78!volL~ z@2@D9{WdaqYFl+hCTQ@FY3avWdK6qT1Soq2HvrC-erT@vFeXZ!6>>Tr=|L(LR z*=L{#u2VBsZgaETUx2u7C1ZXQDTkH4XNNaWSL?OWS+qN(%^A)G|J=eh+osQ+RG7JX z^p8JdOjs+(GE?Txf#%avK}*;P!x1w<6+RJi<8>4Iky7AQqoj_LIzD zUQZ7N094tmT)#@kP#c z1lr%#RM9hj)3LO>u`FQFIxMTC5>FFVi@&Mlc71BhP5-(};pTSnITvfb99K_ZHQG$A zmbzk-^Moo&tEpH=YO|v&k>*!_pX&aJY#`?D4v}}HP?m)yqBltS-u1o z@dQ+6+Bz}@(YM@sst=I(V2$5LchszdSElJ=sFM(3TL zr!;kG?pm0;%6(IbiEW_OfmgJTkZ6fy<10QEmqU`3DfzhDF$|Qon&$T=^3@IR?f!% z+{9n49g6aP6;#}`8?Ef&TNv>A-<;KpK-on5A8A2sIW0;;1~D-S*}j*gwrFG1v3_5z zC+-x9`k3#)!?gFNGd@TyE+EVIUTj7u9qMkqB;X`+E=8qzNJ)r@b6dX8@3(gs{mO>V zw-A)doKkil-pB|NSZ^@E*@{1RULuU-BN*ujEzB2?F($J{3Yb* zCLcp-3K9F)4jBLg3x?4_I@zHnr(pePUm&jJqQQ!-68Il>&sJt6n0Xu&EB-}XE zVqaT&*sjDUHLz}v=vSt`iGRKJ!AOGpQz zE;NHBVLV-VtrgO$nT5^aSP7-|{%obETrPmnP5)4xEq~R{F#AMOy} zhe_OmSUC2FBu^HS z@%-cLUcqo0_%O8zyt7JP0wcuN_E49T%)`vQrF<-hl_JdyaPdNwZZrK6wNYSyTBHFFCnX|E+?8DmFy1jAq+Sm zag9Nz+kON5Ce5Q;(-(8g(C&J*<$2Q13=H`O$a~bt&f|?6x-OrhGYnwgTPEX(k>Iqd z0I>!TtH3!mM}wXK^|fIn-Rri{OI+h~+l@Z<7{4OMh_MY?=JH*0vaPM&AE*n$hStQ} zz9kO0JL39rI59nhm?2+>08T_qP0sV-0fO(zF5Jm}9VK!3yuasQ{r+07+Ck#adKR|c zdBrhht}@G~h07X`XNi8;N!EAhMI40gQAD3F^@%y!3T72AJ(T$Fg?ol+waEuSv^Bt2 z)V#_;xvXpl7&C?yJ#;q>i;LV-#R|j;n&U5KycPu!ex2KGf(Jmg%Yo<|M{NZI0xYGJqQafF$g8VGejm{7dcQj}C2gn$3DEk6}LCYP^rt z1^{LK4WZgZ5d43J{lYateuRi#0W$5L_8EMjDK`LhzKE%PqJf3-X9&5_0HvyHX-n(wCQ$tOrPFJe!j6@wa zwZ$IlUiH-xo8L4YYRF#tFZR?chb*_qrN&?@anGO`Sd|JpkhCEHY@w;QGUw9;Qa31a zXnUb;0AgBDsZ{RDww)Zi3c+07uLhkYGdxN_Zsip0F84L%R4P|S$dvFd4)~U5j0_Hw zSgfpD#tYd1(Qy^Rab_tLMqpXMAuiv;_H@NvfIDr&(+Y_0=I~-;(OvW@*HfAf1PSK~ zZ2SR1;>%|d=K!5By>%YP66B4BAERtynG7nrg44G6AkV9V!0&i0PF7^P(G906 zaQm*4s|?}-9ggb7 z#pO%6+`T>>&r|>69Z$-bt3RyNO&<0qpF6zs=^%CSxNj>6P1^EYRFEpG!1^eo;|W4T z0JLj>C?Eg^y8+j^S5QMZN@s9NzlqDUCH8|5Ax%ifC8L^GN9VvsWuBh;un)rvCBvq+}^) z&D{xoCL0YhdwLmxed<6o1At6u;+J?4a*@z6Fdvx%8o=;f_ySgn{g|WE83KS6;;T^) z;O&5Y>AZfOZNa||{W=kSr3bY;O=Me(2>wCkb)LnpebDuPy2UdhQLp(#TgQfB)6 zbf0T=bW*U^gc?ZcMV`h%te-nr_9_>cR7pCO)RaR|rk_&mCc9L>RM@6zHOPq&mlWbT zHF3g>^w^j3lguUxkJ`tdsGd+}SAB0;xV#l_#T{a+ys-j`L^kUhkjsXS6XbWiDGc|> zrMFz93sZsLWX($~$mb#%hLhzn8nhiPw6~MymmA-~0^KX*u#zj9#3a|eK5sid?_CaR z8!vF>Ebic;8KV@)BdaPL?WZ}IdFFri{B&KrW=W)-gCu=-x%UIRh(>qSU|ks!Y&xQg z9JC)MR8e)N8k3vNL6*{&*xdZNwvdack72aaKX-yX6|*j2y0hum+lP>gHCe8ku=0NR zOa@M?;>-oh0QlrLvB-e}JQY(~zFG2R*R_1pPwnZ*1hUNB zXbfQT6Kph59%jRZb!Q(v&4pVg2QvYX0rIht8z5eZVM^=D|0!CJIAn{5g@~c=v^}k< z*zV-Q1~}sXHVk*FD3>@}jsQM7=b2Iz=)Tm<>1>n9JWS zdk8V%0;Rct$ry0r33xRC^$CCCE=O>lYaLz732(%-L=vDFM)m9o;mK*B2@F)Rom<>6>=B}W1`2M}s zOB4bY_Vac8GR?pdd@9eTi7XTu&otC{GaaScz(*TstoKP$OFanGf{+0IKXf+gbW1?W zZ$LUJ%b9J<0#E3OZm!6{jskPXbI4KDbt!w76I5=Fd1;HZw1nk>4aVsb2UQYuAUxX% z*-kTV$j!977hIwSo3w(KOu!>2GCMcc*p{1~^bBa)5|%77RTH9!FK|>0gTdh{P5GzF z&9Bp~7+e?|z(=A(6A|#fa&u#Ghzu>Cl?`P&6wJ9~U4C59Qpo3g`WUw2riUhaY1l-^ z30B5kmOwojDL?f5=kg2;j@rh~Ah1!91$9FvGdGUek@?7Yw1Wd5+bKK-1#>Q!_$~Y~ z-+`Dbl4ph&KmQH<_f^N=dIS>>rQRHf#t$4&I8w!U$odS_iYqV@16|*P8gT4WqV7WJ zKxx`8B|-pyVw{4H4_}4`0-%8nf;HvPd>VhAHQc$O*s|lu1G3FUj?|-H#aay*>43|R zYsEc1T>C|#q+ zdxraJY9qef{Dc4A*vxcZ!YLOq6_ZnwQz|tDDjjQ971))Y!zF6VwEC~S6_9ciPLQGZ zV`A72GNL*G%Hp?klp9t}J}%%=#AW}WBLJ57Rg@4u_x%lm3|6=Ty8v1|?R8zCmfD&O za}w1x&Z4K2?x~&>yQjTeet_uWxaimGx*DMOXb93Rezi51Oqo|4zIkuK6tRBD**q=l zaQ?^`{`PXNk{P$X>QM>6@IVzkCy(yJhuCvE+2x4+8}KfAus6yolmqYKoI3>&Qwu=k zh=iIS%Hkm41LQKNa+Bhp>&x#WWi|6d>0R9!n{{HH?2P=49q~OdJkGEamUhg32;J0+ z#NC8S{#hFVho}Aq&z;-OA(t8Jtb}p19O2e?#UObikZrHBm@i;?#SKq#ND?$F5y1}RmZ=7{0KFr^Xb}ojf(5*(bKMv^`CiWV&TcJB(r_#HT^xpg-)_K+Gn;ym1 zEWCqREYa{FPMn4RMUI8Y%+>x*-i?^rWpaT$47&}PXwK=sKm(J$LUjOlTP68*IDCGY z{6%zl2!8ZqzCh>Rk>^g(k#BbIF?^PsUMY!hari4y0MsfCHROSs!wWb!@DT18y#Um` z^82?=?R*e&$aelQA)OnC8#Eh8G!j zOOP~I+9~(HXiVD3OKwbrt%NFhv-mI5E%Q@i6yy?Im7ZOq+3O@dOp+10{F=TVoV0Uu z_ML?gx%WJ`{83vVtDT~$CkpyO|5LNvC<%sG7^CWx5UF&(9Bo8oJniV3Kv*B-i=Fd9 zJlVi6L-TTwHdqz$Wxo9=AL7F4OS|1B{xN8n*;6tH9(a$Jaf@)+!>ZMyp#j13&@=zL z0G*hp1|ZrGXvTeHN_Q2~63bT#5Ix21vf&hka=}XY&Y2o(V~-*)lPm`~{EwLEIW_Wa zJQmy%&cb6#5rwkV*Z}|}aiY`IXEPfBe-mS7@pqZ_?$*VrPXW?=G?Sv&HRkVx`5Y(6 z&Tl(P@fc)Fb~c%>^fB@R3iQS6%*Cmj=cZ(A>7ekd-AVyD)2TU1Jp~;bt18)0S2~|} zZA2uZAf-HHjIlgHM(*B<8Jz&J5f`OsSZgsjJ|>K0f@P7d+NMBpm;IxB<|Tp(;8jN(8>>l|_iF*~RY+S1F*V88WePXc=Z2 z8cVc^Mmtfc;zzwyKIH~0IFuG)S_WED`D_a%wa)E^;p+0m3n@0+8cuzr>uSEuI~*Az z6pk{n(+N)Cx9xX1^vG2C(W}k=;=C{Oia)lC%Zzcy4&F^AWu7TC(6e5ETPTg*R=K;k z_xaNE2h!3CD&E_%&>U%UHQ=sIL5gjmNdn;1i^`9#Yvcl80p4swLYI6-`K2Q*;JG5T}aFCv>0X$3U=w z5kRWUi5fgaPz8|7L4HM0SJ{D3ZVdOdSc- z2b+?@KoIgUAOvzGpEh(T8S?QCfz8wA6Q22)4`WEwo!*#JrKx>q6!N^JZt9HTS;(Qm z=YF7V!-~E{RI@%9roA1?|>Imh%n&8Mnj^G&U!tD*|{0cpDF_K z_S7W^%N~RNH@xe#VU{~gdsPno-N{k6tD-*L2&jXhVVC2{iKQM@CJEj)ak=SzG^Jz9 z!};CG&{NAgDLUAbR{PKOpJhmI3ylG}!6uBIxNzd0Yxvcb{uSsd`L36#%-jvpCC+=@ zZXwP})uF@9NH(y!SpEi^&qVlX8T{RRASrIXHZ6%jndK(GNvHYU5{H*_J4K;RG6c_S zxU^voqsPC{Cfp{AAqh8sv+BVB#+;95eNoQ~bu^kZ+}A3=REx`zx3@hFX-W50%kbDeq2F zTN44P@!lHjQkWQp{tN6&(1LbKlgj3v_K4+Zqv$xIZm}n z8i@U~TIQ0LPV759Xf~sV*Yp>sP4#lg8xSme^g6CD{2n=%Q?%eTcl9zAhWqLEAh8P&l11*lH?y~8EovYV3Mm!aeGU4Lvtd{cl%mRGZYo2+kdcS>!FRe42 z<=4)~G6t@g)K9_dqrQi`g|?VzAL+~v5hC12KgxQiK$>t2<9R`7<6!#2vt1p-Zz;k! zWrEqO43K#sf^m4qKrT#Oo=oP*!m@hjH0TATHEa7VUEC~wpK$Op)t&d<*=bs5Be#j< zf!2~)6mn2hnJRuE3JaGk@)bYH&rwD>1xieKgy*J-f}=|t85LfJ>M|){PoiFj2x75m zDo19S99^@P8P4>=L;mUUVQFRQq-f-TIlaX+E$8_ECY&$2BFJLO0|$=S;*Q;w>4?B< zOB99UONsAaZzn&x$!N}$#5PH6$NO+Wqv>Y%YGlZIo&*tNV2W|$s``c|n-t2orOAr3 zhue3j{gQ%=z6xhYTTq7K7GQ(h-XkVeh?fD>kMX(RgT@pn+Ip$gJtAKDMB^|G;Aggl zBicJX1j2#kH-vZs&3rp#AVo%N!J$ z+&JZW_Y**gr?6#tjA*I*q`D_yG@TS|_?xn2x;R+WYOy~@PM@70w>6=~>}LUQZexst zy|KeK8nChILSj5^y2#OeI%+NOYJn`4xHRyS)}W5fO5|Sud`oL0L|z$5e&J>_wRj3e zhUB6YlWKU?;cX`6yIZN*E#(tl1LVE~m2HO@5$<<=$9mskP3(1z5h9@a`V@DL>2}*? zHT5Oyc3#SRGJVBk0974$A@QqtJGfhJP#w0YvYlF;)$XLZHx!Zk2dnqi?z*)7 zI)Dv*Kp``PbRW(c({%n=?`4~1e;y+ygLE#;0NR;NAn~7PHEH(Zdu~pQ3S-^ej-UA$ zl7T>s7Y%NYcRu3BNPlqfViIz&+}ZkoJSpO=7*eYuhpcy!5wStkj80V1o;LZO$YpuMN2HF6O<*iSFSNi^{Mg?%G_ zsndkw7yptgOjj&KmlL*$u)(9A!iMG-r&OA!UO-Uo%88rS#yN%ebIC~_Qfi&>Q*{Un zhtv(rXghy@dLiO4enoqO6^}SC*sz@xC~$H3HoY_DHwn2?dGAA8%3RlwPuL#=+*Zr? zFL&6t?~dz(tQKo9_Y7vg#BJM5epz(6VAAk?p1aN5FaT3sbiI_2WX+@a`u2eKEb;DO z1oI{U`ehokWvz9_W(aA)uQrn8`W#a=6mm5_$Z0{U2y#*4kDv=yapo{Jn8*Zv(H3`B zbyV7Pa<+*0Cty0;Wkru@XB6vAE(&GKBh0!v6jb9_ShUnn3&kP0MOK7t&DLwqu-`PR z;Er4QGA2U_IS4?uFz9JZCmx3fcj{3G|EM0!AwIRcoWP74{r3l}yWc)374~K+~)Q0u%^==9);Vh*?3g_uvrJr&b=#Vk6L| z-|N=Mq;M!Jk7Wp6QUko1T-D=@^I+iKCmAQX^mTw~w5auTnFW*5|;qA|3X5m&9_gOXb z>&Z%DLn*GEmjy@c`pCQ-=;gow6UOBmS@!M-W^&G+USG(lKGC#bMe^L|P7y4%N13}L zR=d&>fR~+F?NXq0XJ8(HD@qDB1fp0<6gKV(e3xf`0LHCEVz0VoPbNlXX{#6NqiRlK z=1A}&6x&dXHz~05PWhFogVXf*T_S9ifzUKfs8*U(qxgdcLZyMY1>i($qBrRYmD4+S zablKn=KZXJV}qh|Iry!5SRz?2>Xd|`laAIx&?NzM zqb)rq2)rjCcMIity>b^uxE3{&=~1>4G9m!o1k~{{_*uHkefKiWr1O)kmFz^^)61Uj z0ygWjt)u4W-c)4(i+S0XP1US46EMG5C;b`dyfKrRp2-xsM82~CTMCT?NY;1VO8XMy zAM@Ir#r9Ix+h>Z5+&c?nOB|zQ$`T#V#~F`-@srJ;tW!>?l$A800EHytd)P(Q4gXdqc$`{iwPXv2sFkK2@nSZ%A#TgZ( z#Y`;-2Q zmXVaTF1Wi)O1B%FCX70H4toQ{39-0X4Ls*QZ1AyvJn4DvBvzv5Woxj7A}n;4ztn)+ zD#o8bjPG;8)t+Q*7w+4lC00!nsyO&I|LE)Ou*oOfE}(9U5CiFAGY(^FHuHDitMBuV zUMj|{8V`+!y(gL8YiJNnyr;DOI7_z2R){IP0vxRYiraG>&w?e}=#pD*rajWt`Z{gcI?>7kRn#RYxZsSp|5UGY((_qScC|-?q@FlEc@ZVLZx(s>Vj&yc`wz#X^?)OFRg6yvNU{+BZ5(6o3!9#E@ z5bjoChjnmlz4O1F)08As>VFtW5^Wg=VNAhdmoi3@iR zeY%{@i@ew9ys{i%iFku2lYP}tt{rSO4Zr%-^mWX&Onpdjuk4?6-2cAi-fDx`v&!Dy zqshvBy#Yhqcln__UgVl_#cHg(%hQ!_(wC*H)>M6Db+@jnXZ~VTLO1wg4i*4vCjU*k zhwC%<{O9csT5#%%kdFGofu7Iv^9s%|FGG-rz&ORm^ zw@#0}>59uNTIPrZql+<1SIoP&1+z?zSu|~1dN+HUmbMbvG5wT~r{yS7{N#S@HgRS$ zirpf>S6qYFOyk$+@o}HA!f9;we9Q`9?%Mm9MM~#&IZQuo#7Rrn=f2q(A7A}9_TH!> zXNITx*)L~#;FoV~1gFAU7{~a#oTu5)cd*EMnc6RQ?`M{o2AHLx^Ij*$;FF?7;>@DY z+vAqzeYFDPh__6d$+v? z&6RC036WK;K-KmGR3SgY2eWk|g8P&^^pUmEEll`acZ-XbDXrUC81L0p=!s)d?QU_(R}@MH%BqwC2)Oz%3Bx5jBwXdVCy;q(?!(MblznM90{2NKfr;% z=Q6hkmJ^t)%mTPUM6MI}xCj7bI;g}2zT9Wb@Cu8CR7WpC$+M)$&Kkf$3G`20=~-XA z)vBmuW5c~hz}gs;MY~=!D)M2E^^L1%KLMo^au=;FPbn0C6jWQ)x@{KDwjiftQosgCJhG zP?)|6t$kVxo=Su^Ex>ZOVgHW7M~g9F((METu28VssNm)mW6poZ+HNVyDo6=BW6zyd zv8JJUddNBHX1_aFm&lF-=5mxEsPH6?MgOn)MESq0z>SyfL>~A>R(9&+x&O7ZpA9&m zkQ?q|^FrvtgUr{jY;VrOInn5v=dGZ9((#eO*v!N5H{X~Y2R3DBV|dU+(!k~vUZcIuFuE!w{J9xa`)iFH3t=oRFkQFjfl+N>FAt}G~Eu6cOeRL+I zYl74b7$v%uv#-^p#&8GyhoaW|+sxkf7W6rs{xu9yudY45GXCjLX4;P30lI|w{6mwy zhsKN{@Lwp?8T0-*yyVNq^fP`9iBk9Cfc>QzvtfXlF-9&_Pert~Hb%M8l6+re6n>%A zE!)nXUJNTR^AE&{M87Eww>IE`F*=;IxxGN-$CPmg@JC&lsj@#Cxnevc>k zd8hBEiD)NO{EUhTUQ~V37G7cW)Swxq^`H-m^(b8zXuw_l7Z+%lm&m{u7;ryxIBoE{ zTfAA{xY|u{C%Ak0>R%4*u@zuKDUUTE3xP%|bBvu&=N*xxtKA2HPIr{&2?Q*21glX@*Fs&_9oD z>{vv}Qv=MePUU$+Ot+6|*-8Snmig|0vxOnTe%UXz9S#<12M>xz-_u^Fa|``^otzWb zcp1-mA#T<46%EtdmgF!!IJhf0IKg7G6Z8LksV3+@z0ZKpem`4zZ=1Wj_>ppU3-k9M z5m%}!49I`z`kX{qr={r|u)7eVQu~ra&s?dGYB>>=#tE{LcztGa94|&MV|@b?_q{u#nNPfR&q7x}@5 z&jMHvxW_FUUj^vXBmM%6X!%S2(5sUAZ+BSvr-jc4$DYCG=}PcVO7H^^Vef#6i5d7R zPvQsGP7FTYE-3GTzJE7gw?aY9A32e1`}O{~YnG`hx_jbX~YfORz91 zlMLrALpDCp(2@qD8t0y#4wsobqHvHOpHNP5sp(a7tzaz4Iuzv#!Ehq7ikph8jT}`u zd!T7*iT`>X*?fVBVKG$Rh@yl|WNG-Qg_EzKQ{Xg2pU;XBBMTFS-@jo_`VyhaN%vR??gsA*Edn;IT;E_%_q^p5sI=%%&x(!2Snk zGU#H`jAkff68)bM8DeAM*qnsacSq_38np|7;cfuCJXB6YQ$5kgAcV!>Dkyw|TF!`N zq!&}N`A(yDN+-s(cm@{zdp`dlK@P*pVII7b7^_V z$1VHfP~bJR#BX4@?Pkaa^`**y9)q(}=*M@m($KTOGm@vFQ&tu18#hk!I4po_LYu_T z%F5f(smkIvLg`-DCwd9doX;mI94*767a^M-w3Hl-6fuuj@HAYOO(a7iKbS3ek1=_- znE{$bPHT^R4i%uYY-Ahq502fV=E+Q1n!f?Og9tUMMvBSe^q*Bv%j~u>TJV`KvX~<_ zN@Kg>v0a|xItLfkqeGvc*^lOqGHWwLRiMV+_GM;S};VFUk zZc}+E^)u7`G<2gtT4W*e@b-~<-2dZ5T`Q~QZ(m#Z%DQJr?c~QdJwC7Y_h07>Ran&6 z&T{k28I1If!6bsbY2z@rr-HHJ2Ow#`5|-Xkx9$5p_R6+PKQF3F4s10QihbIA5AA7= zBOneoPKt0-u1j^ehf}zPAJ9g+*MDMJ_@@{WvWLxroc>UT&t*R=bn_4y{)6bKaQ8ne z2Fb@CrmR?h+&sB#QAh2VdLCa8MS3tu^x4>O!dODYD1duIovS8RPxE(mWS z=c+DI&Wg)WjuWA4(klM2WidnEVqQBi7!|2@FgA__U#rnA$yOiS=R$D*`*j(xxAJDK&6XkuV`JjYA-0n_6Zct0V2xV%(!z zvEEZCK1Rs1+#)PukNY-V8N6$nc(>KQ&kGI)qz|_6YHEf}am;=YA0h%ygx4&d`iLfH zAdpQay6Wq-hJl<6neh{2YtZ%=@AM$j4S_ns9RCGB4 z_7@XY#EEc7JAnQ3wr$V~knn&pNm)|JOB!WJ?6<$#)IUgqCuI8>A9~#X!Ht;~u$;TL zk&9DCNZ3@d=LxUK4zKw#w{@c8r2?7lpEJc-uYAlmoMxVV;Dh(7xMX9(z_ORPp9>mp zA*{9IS-3LxSBxhuglD|BU9dDf{(OY~;zGB7iUi9^HppKOyZ4-R((lQc4O@C$4-nZi z(S7)Zedk9Ei#WDVrYRPRsg#UeT+yJ5xVn+Q2c6ipa!_?*OMvC7*Zx`kNe{^G_Gb{-L1EV&QVeczGdXgxYBpLbicf6}@NaQXA0wa3Ki zYT*%bV8`ATD>H>Q_O_&c?DrB8AwVGy7P>}UlDH70_BLk-A=cK$iq$}}H6Orh%N~67 zprKNUL2d2RMME$?0BqfB7GVQl)|1Z&+F{*+-bT=^6Yf5Wi_kY3mOJ=!YmoHn-}t4i z{r1)jhiM<#5jFULP5Pn+{rcbyGev($?2mQY{ZDLR?xTYg?NuLk6<>y-fm=BQLWj-^_H`yj`GZrh-C9Z-qw>TEh_?GKFiD$;j zqSi{dop4AZNc&ptpC9@p-+bpOaqVnQ`J7368VGf9x(3)Xysk?lD0>|!3l|>6jWt!A z$CVz(9XeXs{Go|sBkONLG%BzIQ(-RP!ZzUeNAU_vDV1}Q!H1su%DO(j(BKho4%K@_$P&FgQV_C2RTN1el4ES{ua%Wn%St+-K>gytLO5O}TRbeQn3C}% z@{$}`&@?QVD)NoGsG6|CVKm;(&aSCY^rTGAEp0M*b?O|e(hl?8j z-)K{%8o%&I!$fi*k${2hr|J$)T(8mk|6DCqq+@if!z(guf`l?f4kjkyM9{+qdrnQW zlLQVFW3*>Po2z=h1~rSk&z~$i5Dcxoe)%a_%reT931tl{%jRm%9$jCgPJ|;+Gb;jS z-iI3B8E%)R!XE^qdk-y4CjQN+HzprTbb)jh5m!s90cwD6T9YEGy_sC0mI3Wx&oNX zorhkjT#NH<7U#%aA)5%cb7g|meVAEhb6D9Yb=9^;PTYzU!F&a5>v75@6)K3ek*sI( z`6};W$P*wM;|weMYzUSWN0aTY@Jp??kHniuRwR^Nx2QO%zrNtHVh#Z`_vxxzkCF-Y zU-V_anS#|Cmw;(1TglnyPQ=fMQyz%Ponng|?Oqi$T-(qxtCBeA7jAECa8OIC8=Vh5 zPhKmbP^QKEW-JV^S#1hQ{*c6DSn3r>@L*i^6he02_8G^E3p-_AQy8=pMh!+ickY)mh^M2Q+!7=dAFmV2(@`;d>32x*q=&Ue=T`_l zG~5`-4}Fxg;4WmRsxi*H?StQyKYDW{rc=Hqr;N)f**;OSYZ@!$oOzc3z7;iXMCRhh zJPR~^(pKEN548F~@xK$|4jb9(sUm~#&Dj{m!KWTQw*#Tyt1C6)bFtnMzK8g$t}^e} z>b~G{-U{L!ZLhfsFwsBw&IK_uM64RX497o7=cXMk%MKUsbCQ^FSbw~+qfPnXoWsLl zkR`MxDJ6rc7tiUAoo}pCM*&M({a;1RN#)JS>L;G!B0STZ?PD?J7oZZQ?DBQ0o0RFI z0qtS{SmkdML~sF8Y>SGlk7B7IhR^oYQq+fuyanB66G9Vo~z2G zV6@ZQz)5bzEHa|F2M^nJcI16KTw??NFJC&PkJ)rfQ=|PY_L*z^{?dm2M$c4ez3w6I zKceaz68*NWMla6)HhZ!@C=0M{Y}b2mqG$vbXpB+S3T&>_X5`v zL0l_fhdJ{v@!HK9ADd1vI92iOxHKk+V+2$t+SK|Cr&=i~2YoPGo=LsVtB-TStzv=A z!S(-Y!n%|!yHzxMhNLj6!!)oIF(k*9fn>3(Ja83x#-_%`+FpB0rarPY@tX5e>5cPh zin{V}Ybvkv{+j7CQ=Z*3E$Q8SaktiypTRvgY+;>gO-1)!);iV+uJo7L|2JfBb-42F z$idnjN6&i5{0vgR)S@FNz4kfdQw8jsud&^e5ih@%>baobOwnrPe%xl_9g%eBw`N+O zm=`O?&m!WkY2xDEvAcm7yG*m6%#JQhBW=nnf3nYz#Z{C4Po4@n~c zCpLsV67PMas-%j6{Por+1lAe=vWu0k?u1hau-QoEA(i#iW-*3u>6asIPv!njw&=L# z*mBBq+J3PsLsBG z4$!K@lBPW+hzMD$t3xBI#F_-e&qb4m`srNy;2K{#cgOky|RvHdti1+o)2x9 z$UqV)2I3$454$}9SFqh=8qi%T4^CA*dUma}A5^FmvPsBwxPe8JIL35*w7>lVdAXOVhO&7i` ze+lCXW{M6xz8{{G`LM8>igvd|f`0#$x*oSb+9sYU4K>%!*4!qLamRo*EAK~w44!l|+TwW-v2H{lvxUr?P=Vy7l7R$|!d|A$w)t-sO% zN`b1!3v%S;{9F&TcV|M~^Zn4SKm6F85~nKkgN5T?R;JOLSq<*sXIZJ)dB{6Qy5K?@ zr4XP_KnyF4+Z1u(uNpV*{tgkxUaw+zJh}Z?k$cTGS#r`sFKr%PWS1k^8)Tm~MkI|d zYI1m=BhAhINZ4~%j87H+>%)!zBBtr;G`+W@*zoCm&oU2{OGpyr7*JQOy>-e*;+Y znP;DicGui^#5AirM*i<)<*S~hR-f}ILdk`vZlC<+G3w{_zaRlWNl^y*^ZM;`c8Tvk z8$Ouw9O z#6NHUz9kn95khW!8chT(e0w-3Rh}yNSQQo86zOZ91M%INl}Im{Z!Xv-PJxb?=7?jO zwiqF(Hw$K#ESj>{NaG%YS(D=EHDU`Tjl2)MwC)uzsaEVn^fYihm8FBLkF31+YRAP@ zK_WkUU~>nDlzyME7>NxUe!TbfetWBWwo+x;@MOx3XhxV5)@*J2L_B9gQJs23uo1v1 z>T$VIZ)NWon`c=|TN~Fq)y(-oL`psLI(+l)fK6YW1y{1fz*y#0Y9Q{RKEFN6I&ArA z=GYGZ7sWMp3wt>CCC{#zIr#9k>YNwXtOBc^YjuOqi^(q0Pxy^~M-p6(qW<*MN!d`m zt$(B#un6Z{I<3^cql1}O2{xSEM~WS7&+FJpk2LGYb1YebKR-HswB@;h>XKMHu3%<8 ztzA%H6I3wO*=00Jvk!K+gyEGIwz;QsTDW*3LPB>=qm!5L6hA=-PRAtF_+?*H`FwKX zNu5KJ#C)H09FbKw_Y8Dcfy3HzcYjHg!!Vi3-K)n*GXBMP@P=%@Z5?Vs6XelM!8mwj$N@! zHd;|F(ZKY`IoTqop=+M$DH~7Z%`9Jh4Q$X~vI^mFr7h9PE#5}=>x=~Z*O_zstdbCa ztW|(M;ftMR|8t62fI&|&+rnurr6*R9uP&cWc9(?lS??mM&qmi~Z6FWCOJvl!hE*~X z+Y1_SpTg-MU54z>e<*%vNv* z@vFYcVfn$h?HtIQ-swd$26nkvI8g2UyT@UaL?`3wl%HNYMz z1X1*A&i#FlEK+AR!9F4a`I|G=J#H`e0dVj zw22Cls!+W9_vo%iLMxYvBA8w{W*W`l&;miiV!ad*t7Ys71}RsiFgvaPe~l2w8@sjp z9}MTJ!fiWv$@w~Avn)VaK^`iDR>aQ724%j*#iT-3U9DE7vEdje4xJQY@V5C8vCP|8 z0)96O!w%0Pq9G0Ee1ih)YGZ1SW!@z;6=KZf24~Q+S$oY&YEQ?f-`USKPX**Qx*XWa zFphDZ0Ls^ka}vceyD2>(efTLWb05Zx=7bH-8MN3`c*(9wP~z#&Gb=z=+I0$M@d2xJ zOxFEDYbhZArR-Myw*KL(wk@R_qbA8o{Svcm@detJV=!-mx;I1#kWLqn5=G(88Q_g3 zd9K+yNm%!-jOyRyhSXr2x|n))k;fw-CYq)*vt~zEbyOUJR=y@sodXA*6h34507M7C z23!?Hofc<^d+mm1Sf&ht&M}CAYu+)pp@)w?7+`#h8b|j&H*Bw)U2d`YkX#VJPLrQ1Q0W}3CHd;s-s-9 zf}L%FcTcT`k<3H=P=}}(1E!sLWqcH;BN>{5l1P9yYbh>HDBfI&ToaY9=@es)Q*~H< zDXAq{Ee$ytLlp39834KA?{{31XrY6HXtY^`Hby+Ky#ICLiW~RjTfsI>LMmHAmi6*4 zR9%v|ld<@D1kkLWA@9D1R)x%z8W2Y8!KT-^EU-L<(_8c`f8K9g6^I<1lOo?V?jlI< z$a`vYwQ_JHyoi6$x=Anh&denKeVa!uVvkmy4L6oFSvj2$8ucx2L4Z-2jKu~VS6#yv zJ=H?`6{AFJHDs5Xk84dFnqxrm=kw>f{<}@4UVn6vJL^WnU(OhcS_oHzQo75pu0c!J z2PD==Xl);hPwUA0s|17nyPvmVXUA`lY<0TZLs2CwS|V01@bOq@<_#SA5|>NQr)Wk=E5~=j zte1j1?)tZ>aeAG1x3Jpc0%PAcqRPFkVDfm~i=60_D*cA3RD7Hf<;^j8Qm0 zFw_S<+B|EvK7scn?(j`lxsI3>=Y<;zk29Wj)ls+2_!Q;vTsQOY46PPo<~ldwLW;~T(9J%h=6!LYW0GSG99&r6 z%ZVUp(b4r{lSg#rnUcwHK$puH9IsvOf7#o?J(f-e*8g5Rq@z5Rb^w* z<44-pIHEsjPA8jYjz4^_z-Z&+g2b&AfRS8*o4!psU5jV%HwJP)=QrW>>f>i@9&wBm zv=vTg!tGM4t-K_)YIF^w&Pek#>_k7lD>CbfxjTN~P-P66o)AOax8o>Qcv^cS#hL7- zGmDM!8sfPQb0;68|LdQ)czWo6Cx^&|5t9cln;0q;>9-)E_{szYKYGwaMe43tV?pVWk$>Hhbm^^gdm&nDqip_zucs#+7bV2fsDC6h{>FqaeM3Jz< zC%6gJE(h|rT6;h^u}n?2>XSH+>IO39VP&e5wU7CV8f(#thzp=)n#Aru`D;|WNe^gG z<1+_cR%(rlVLDkeAs?d|k3bQJ2M%0$+Gc1~;{|+R}yqo7P#L zl`>;nkYRI9h~i7`A9)XOn`Xzy&J!hH+$+DN0%dpbCdtv8Q&G}t>$XBytVaBr6Fn%1 z>LKsL^GgdyQA;ICx8~$Gym$fOWRW3;3Tn67dDQW#m2oSlURXGuA_s_TCVyr zfb#+dI9e!Iyh|?JthOSB1H0ZS@UZ~aI2#BQ<8rmbSf0&i$&vmcYI}vL>gJ978}ym1 z=*MD3X+%W(C?&a-2I`WjtFIyVEqsX=-WAcXVmj^DO$vLQrA^9wsa*xx+y5N4s}NdtxgFKV04Q_`#Z0NEsO=HmS0$Q3z0wYYaF&A6si&*Z|%i9hfLteg|*= z@hvyOoWLp54ovPU1c;4FyD~Mrvw@^Xjmv&FAnD!d^kO)H_;nv*WF`KX2BIldcrQBa!Tia!r*DFU$;K_R-I`F^* zF>E>LVA{a#)5YaXMJAeKhXAXjZUPkj+>xIL1 z+jwn7`=e0pl$L@HI$r?o!edUK)=`1#Lm$}-cHDZHyKIe0VB`I&hxd9p-9lbWj4&Fr zD=MOG%S}J04AoFO5_P@_piTSaO+t!pNM^zpuE9!{cz*Rh$6xlXT*D3R-#b2`^j0FI4>Mueqa^sj_~qG_;=cY zK6HO{#Dk*^DSWb3F8O+#M+AK=@-{VEZT0y z9{G{7y=A}p?Awf56Ys$|=aI@Ma$`LnJA(G-{-@U~X*MjX!^kL@YC3hZVzK$V2&#@^ z))(%4U^JXH=G8%fV4CTctP?v`4_-$femd&Lto)UAC4SYt?rMMmJq2U6py>!O#b7Me z#;3uH4cccH85KtF_apR6pHi2W0>6kfIfIzU2?ZTmTJj*{0s$hx*|~MeU~5^jIJK0p zrm@b-vlx?Dvzdv*bF|g+d-)7P$~Eom;GLCFs%uw&_OF46n7Sl=%NX(TVyiNVuyn7@ zk4RejpH{Ju!zdUdIBK<1a%Yu}u9q~8i&>B9f1cG2h~%b!B!h*A*91nKB9NjuMMrAX zCaV#ADuBGrAg12b9aPr0i#k!;}73Pqu~l&9k@a_8z)H>pQ3a=tsX-u`E$%d8cjkX z9x!Z$8_HV-GC+m$@ReO(aK9`sYKxNK zL`EO<+_M4+ccQF#ZpDrDv#6<({NI6F$*8KI&*1J3kHT`zL)uo=dJ$iT=e15(Z zfy;};O7FDIB44+aIoJ*pe4+91o8G?~HZzFho5-AGDNP)?MptD6UV4>wDRF(>#YEt} z*`1vlPG(NL&1&8bW^5UwB4jT^8uEg8l#s`d);1|E-(K-*K?&F*=xaDV;suv&GWNRm zT6U>G6VDzz!I`xu<8z;bEG_u1me_tIWmw1LY;b<0U+&&?rSm#`rFl+JF*b95RizdO zUl(6lYhEZ0ahtk&`IgGcVdQIk1x&Rcvsii(wH%7IJpIQn@5Se1i>wN-_}!{{Xq)=M zpLD&N^pi=|aco8T(eXcNXAzf#oKIJyFB6dY*Ui3^J!!rk`40}ig&Z;cM)OxM1&qY@ zsOB!Gn5xP?6s5k&22|0{!+Fo!4}NjC{bQbIM1R-j7Dn99YO#DD(lMkISoDUD!qNxgY6Da zasW(w{y&7c&h$h~c-g(PPDH*Ir`0|gcf1EAELiFHTbi1*ed!0)Li>M;IqRwh#W+6rY(tUNQ6hcnQ0VI$Zb82+@PX_vG*fD0 zeVz=NJ*Ojb)XqlUw*CZBn@}CR#WZy<#ny~CQ7M-+4mBUR_p&xKGMZGS_MUBtSUx(> zPp1p-xo(!*WOe$>|N6uKnh%9Fv)ZmpQ`Ygk+7EFuEtd?8MAN$d6wq~Fih+Uf+lk`F zcl=$kR#2uVfmMBOI4y-3n?diFF0G6AiO$sxD>V!=^C(nDxVXao76_ZVYr?QfL ze$sY+0u(MFA@1TC0D3moM)S@LiNeS$)Qbo8fe;gnqLMh93X#@u1Tja9t@B!Lkt@GS zLwEyY%gxiu|4J=*QATl@D||FDmbv&)@XsOJH?+U5o^1;fZPF@yEb=5^&dAG08YdZ< zy+7a~!RP5=Q;LIoav!lRqTF^t>chVLu#zf^IX?}jW@MG^kKEkuo?p3ksKkQug;MK$ zd8;YIFGp$P(@}iMeg4iiwNlH9u-Q3Zz#=<67ZB_Mx9s__{i?z)>9A&m>RI0wsXVN? z`<{Po!=K$7$3^*<&du>pWnhRQ8dSm9WSb6~N2>vEf>dUZ;r|%ylu{xe3gK7Hej_Xr zf*KP#xdukDVM9|oOpPRvMf8!%>kJ5>kAlpBNiEimRqJFV(}o% zC=@TpBO-=0a@BaX&Uz6+a>iDqaVm~pG^J?6n02Bfr$Urs*i85oTvAvxA;CK&8d~s_ zTMs93u1{1scaYlQO0%!oBbh;nmqzJq;^?lEQnOW(BG_&23}%We2tFHyivS?jPx^l}-vixuqe;+x>I$fUob!ui=>AmQw^kVyHU~ukP2?N~ZS})v> zrEGe@U2MOtb3L4xrOf*y&>Q06$t&`12l%sXYo*uy)$u20yHcg4-EO<6ci1mGPhjKL z3I;7oa`kAGIekVfZ}&pj>vIm6Ocu>)UD<9CYx{oyn?Pj0S%i%_IH5(8H{5W8jW(u> z0(mVpa3Nd_2qcgK3lk8l!(m1G00Om64Mw1V100x)1Uh1&5U`3fy2{Vw?02jY>_Adz5x@q3(1WdU z%WorC0^&lDfe`Fq1|(5m5P+Z{=Wt*IC=^a`g!8rz1xE%afj|VVgMuLJpa&xWf(N$s zf>V)>5m%xEBicZRHaLP7w3x%xQnUfIbSef-R2`RaFb6p>LKBRjgB$iU1>_Cy4Rx@B zj$ETE9moJ#-3fsXtnh|5%%N4(5s(I4Q-j(~Bm^R%P>57Vl(H;I27CjMUhKy$GrDaw z4r4&Wyz;Oflwb!Y(2yica4$;M3kR9BLevZroj1?{FH7K;UN{4q835%)IKc@}Y7&%+ zm7)F&W+=lEd=kPCS_DR70m26oK!F2HWltkh7zh;5vIkJ003))DgIwu^ATVJBFbIJ_ z$i#>_7_mQ8x4oI-QMoDN+!(kEoVl%KBOrZ%iDS-!Oz{7^h z23b;~0u|iQhAGH_N}jm^olX^n-c$(=bfCi{8ZnDTnA9~p^Z*AOwxnM%tpzV|0c+AW zu+8{JFKuAMB8+#C{`hc6qvKKtNN_3CEns;yP?Ze?6u6n8ASxh&9S^fL6r^C}I{rf; z!2v2`k{0<&3sDS#j_A+``DmgIRY+R~Fr$HqEZ_l`!Ri62up0klfCCbU9(WiK*uhc+ zHalvFL8`znhSC76d}10KUo!#@)yyadXp%4kS~I5EFKu`X7DY0(o+(Vki4L&9#F!QX zfef(`R>*(@GT=e=*uZm*XoMW-PzO4|${;v!0Sa}1gBP?QZJ4`)L|BC-+k z7||OgG*>nZniHwYmjDEKHmm(1Q`*EyNB8zG1RrofU^g(D10@A58;DKQ^m34cxL{K} zT~}ZO$bk}Mh$eiqQ@x(ag)9gX2UW;q6iqcWh3E(d)S;4oR0V?<9Hj>|{;*{Vgb);< zSik}&kr|VYSriz}1Oz^5ifnBnJ?YiNB8N+1yNCs?VQm1bHK>9VsDPYI5s63+VFMi? z@rE(&U}sW$4Gw};ffP1v2ToNlmDdOriivO}bR!vqU{kcrSpm&p>e~*M16C##!f zl?ZPF0*vK^W^=lM4~dE^*f0&rteFT@TBNNHgkW31t&&pNP&}u?j|uGKmQaV0Stfv1Uw5_2#Bc|aEen4z^bN}7eyZ)#0J30mJXRlkrxEawm68Q8nxpZ z?@;71xVeD_$bykQE-NP@x=u(|$HM~(SqfDs;&EPc1<0}*22cwA>|!D0fNnST0WlDP zV_x&9##9Q(I-%PRV)H^Bg)55c!NJ{}6Sxm>;4;YS;NzB+6qp?)guViS6C`4TDCDXJ zMnZ@b=+0oXZ8R#?D-UKSwmX>DBr7$ATLRA44%nJ@m+4}?a_HN52j2GY13Kpwu_ zAVDgFifGU{BoDg)NlG9=2N!T_zf76JmqF5yC~_J0$&3XG>OqXW7f}+37zH?KQiqt7 z6{br7a(_H#$XZ5%vmBrV%|Ve8ihK|#VL$^I2tf?h(=-9O%R&u`7VBa&HP_=&Kwkq5 z$p#k!)c01^oO%&5kv@Qqu+;&eo=jN|fPma9aYjyzVSRT}O%q^1dgU_IQxp0)rC8veusa3Y0R=$&E+BM^W>B86)vgnJ+- zDS~53EW`m4U^oCII_hJZdaJiO4=v~@29C%PcYGz1dLMUV?-ptrWBe<}q<^o9o#ERzmG3LJqE&T!>qN^FFI7Cd35Ug1dM3Ur1 z2)4ipvL{YhAcTM*_gLTvjsOYV!UBN8B`m-#Dn zcuR3wWj|a4gn~c|ETU#oU^EKs4*lX$G-a+lYbaL7CiG=JZlE{bK&4`U9@&knjzuD_ z0628uks9P7Z$|iN=&V4?=){BmD53|gm}HNLB59nc4CSD7=HN;UqQ6E?p#VfjI!psv z;6Gvj-yT2%qKNBo;I(uhbN+?{L_h>epaXb7N&*vc)Pt|EkE)!*=wzTzWaH zw}@n5WW_aqPSu z)y}SVqkdk)3hGC6Vn7FYfC(l-*F=C`gaBSlKx1wqB_DtT8sLCl1D~#=09qy}LJtV= zBpyM)Kxx9=hK)TF%gWY~Jsp4m9v}hOY5){R3K&6FCc-lSB?ZJ{BZyK%{00a3CIqwq z2#|tF93%|h5dc$WpeFt%_v~y2lyhVTMS8x|LG%Pff&#|?&?r740lJYih-FD;;6MH1 zttKZrmWpgN;Z-71he%*G^-@5@=~7}#L0N6&OsgGEngQx;&p&SJjiYu5lQTm+28ilQWfVg@RRKw!YhlmN}>3AX&t|GJGTQA0Yv zu=AG1voHe#(kTi`Y7XXrh^C-}A_H1fC+QdfEj}V9%42z!NAs|%p;TstBtli3tRWnN zko<;Yn4<@RprKX;wJ6dCYR(Dfq`Ay!hvtNK$fVKc;B?{(L>lFLn2t%1!YEqMFPV}h zBFBR|2vbgPasD1b>>42!+T>gC?Fdy60@&q)Uh6fQ<~5Qm6Wlcxgv%2+iC#3sSZs?m zaCA@*AnAr;1NMl&kSA5s<}-GbMQA4jjMD~M;8T?Zc5Ean=tQU_R!}0qBqXO>lEqy- z2J2{o1Tdy$HN;MKVAo(ElYWGbROJTTfXXbjxmY7LoJ*@r%+0;D%{5#RbTu z;UJ)!K)@?TLI{vxmc#%a{|+s9s{saN0S3TpMQcviYDs{Cm5!w~mo|>2@`VolJLAPVN75olo+904MVMs6)=J*YqqG9eQbV#OFewQ(R!=UIZSsfF&g0 z05~8fN}vf=7ADTvU0xRJR`w+x$)O71YC=3 z8m^=gt^piiC&hRIETjP%U;$#Sh;S-^FrvU(Vgn=qGvE^rxJaEI&P~#TCYlD=P>7Y9 zBO^KBD1s@iFd_na$;Dp8C`h70OtO`1B5@OO01E)|=F163t zY6Lt6fFm@~uZE^R&<%xX2TOECsfY*;3X3%gtN<&8;V`Z@Y~XJ$a@JVHD1uLKEQo!2 zB?3scWKvAsdda3)Cjnl<%6N#UL!<*mWP)9pd-@XTCb59L&HscWjnLKxIEB*&zy%l% z6EH!BO%bKwKnbF$Qg(3VN+)V?gFT9Jr5AgE2Ux{}clcj;C3{4-z9zdpyYVO}MFS{}fuBm62w(s< zjQ~Q8OEw@}Ox1YchYGk(W;vi{-NfaPrwwpNxY}ej_!u^6;wI{BPKzQ1>_j;XGAOD- zE>Dt&nt~{N8wb=EK#qk_tuQILCq__0W|pKVu49Ho;+QU3SX2k;$VKTa8Sox*U9y&k zFj-TiDUZ|gPD8)}LVzS^mjnucts+O&9*+cO0+J%qO}OlDP9pfsLOY^EsosF9Zh}s0 zFnvB?Sa>Lq_~n4QgGoqS12Vb|Rzs!4i2(>zmunozPz|d({tr{)lM!TC6V4E5hHX>O zLISu2182L`#IQRYL!4ZIa?H9rK2jhub~SEb2?mNJe&wavhfkKHL+}?VeC6gM;0fXI zm?#7#A{?w>0)U%DsDCcmkUAuI2+e6g1%LoMH8XmA5?Pc04j4fe`jv=qCByoI;ZRCC z9Ks5CCWl_A*7(x|(j${zz$K%=A>QB$LW4ngFDFjR2Hb#%g7zRYF$6eGR)11|8iXPY zOH1;{$i1iy7(ot{U^Zm{N6c?&rqX*rgsdKDZpdS@Peik0Ad+}s@9G7UXpy)g0l*@z zJgiyV=;iA8<_h3I+T@@LWZfZND|<+y2U;S+??f*C-YhdOW7Y(PDEy%x)Scbe-QC+A z-rrr`{ej-=-QMpV-}7DH_nqJS-QWKm-~+zj=bhl=-QWuz;SXNn*InQn-r*k};v-(- zC!XRf-r_GF<1=34H=g79{oUCe-a-E38UEut-sDd{<42y}RX*fNUgTH)Z4xj^_}MR0pzWo z;jy0Hwca1Jp5dn+?13KUyZ-9SKI_e%?9X29w;t`ezU0Fm?&DtW=brAL{_VdWKf9%)Z@<*TaOW*W=KJu-8>+xRoyPowu|MZ(a_3K?9UVruN-Rp6m_HEzw;oa?H zANYg+<|AMD8=m+%{`mQR@ISx!nLhcGpY!t_`lo;ImB0C~ANwaB`m=xMkH7MxU+-I= z`|V!hpTGK-fBe%Qo>5V zzk>)9DqP60VM2lqBTAe|v7*I`7!MMJ$Wf!gix3fRG#GN^Lys9#s$9vkrOTHvW6GRK zv!>0MCjAKR-@k9U0v=4baK@{92@9sU*s#r` z2NS3K+Ba_Gx{fnz-pskPXONgZH~#!stkTg|&kAL@7Vgi~r2nFR&3Sfg+Och4)_vP@ z@3VHF7M)BM@9BoT7tRKn{I~Px(4)U@PL#T9x7J}hlxvxKR=&Q64?o&BC)dirrK?}h z-tc$En8`nF%6;y2`1ivfM!7n?dE~*xH{U|Wr8VGJCy57^WI{ElUtQ?sSDI;LAsE_V z+1>PBd-z@G*M3u# z`WRS+L`s-cf)k;K>x1ER+!pEYDO;TxPgz|MqVU|vYl$d=AsAynXw zk{T#kmq!9;>M2x6MwDZuPvNzeq6r4+QgZcOndqy+smWxeeVJNNYg@WjnUW@w zifMn^eHtuQZ3$~EMrVdaU!a=y3TCKBPBj;*u2$=ytg}9d)}jU;N7sT7Hu+zsPHxJf zV5+)DT$G{>SrM@QsrgxMUUaq!=(^ga3m%M!T3cm`OkOpvotxSQZ-V-iNpG!pCM>MJ z`{4`mun`}NFKEfa_3XYbI_s;PJSHhBqus^|Yrog})|!|E;W}fU1XJ9hwjX^-^1=4r ziCdgTnhV;hwfWoecj$gxD1b3Tsk71|3S2O#WBxm{vL9D1p2FlldSksOcfH!O3OQP7 zS-8>+G}1PbEOOM%J~#238hT~&z}^adFvtFK8!gjR*Ztz!?`nOofL6NtXUQfw zd(9}dqt>~!O00%mbGS&i+B4d4%QP`tch}ju=2+MLa^X-qjXIovW8QRV8$VehyrUV) zHQQV-9x(pyjH3+et3BDgEzBPx4)Dx$170!ZKkvP_!9z|9DXG%0uBDz*55;B2SIZuF zwu1*}`f(-elapH0wWA(RdY4N^AK zNpNlgirfUf!@NatFh3c4TKg)uJAkpMgH*C$--NcoAi_{M_uEpKB5aFqhDwk5=nKrg3#aS&tkh>k}9OpYAM&*m=>(fXCl0@<)7jxetvna?iDluDxTp& zkcdmdo$XA8#al^FEo&mA(tt#^r0oxd;~8Prk_R@-SuujGlN==-I5KDr@{brRB(IQE zAP}XjheK;0?*R3~B8Co;K^)*lTGkJTQS+KQp=LI-nJ|4MtRLXqro+ZbtX{T|g4pZS z=mglnw$*ZAzT{g7A^09_eU5*Uq*0C5s4;StFIT_grw0GIK45lmngc;-IK$aZZGJPG z)Es9uTPD$pMzm$>qS*OV*-Os#=9W5IV5s~yuVLjdfE5(sxiB?6%MlH4fwE)z{{A&X zyfIT;MQmOg7rK##igTjeyr@HgI#h`kRhuEwp3hzyQ&>9iXf@I$NtYwf%*8Tt2-M8m zj_0MZF|C+fMcf;QSkshxQjInRUf`Bx!8wBSs78gTMIjngZ!&bK{>TSXzc)Ewme87z zdS*s{=~r{nbB_T1)zowrQZ9yVte~q(N6L08e`<^R9#$zY$N0T30yn{a!|f? zn%|a4Rg$(>Oj^7x74d{$Oj^WYES+RO11jClMmLUToNdlw)iSY@p#dIZ~EeOm>Ry@7Hz3_yqr=blNiccZXzw_&2cfrQI#&QiPqU{sLsjR z+_5ijqCC(5h0K&|eiN`pVemsS>|MIHw!)^Q=tO;b(V$Luwzf>>>s0eNshKZkwPW1v z)&@`29d@}l9H}2^dtzMzGIeXtT2)2LOK8ry&P$op=8|=|v-TLvMTW4Td6Hf3@-)!k z{N{vFOP-#7x5^h*?Ojv*WQy9=ANEkKH^-^xOR|%#(9+b3g^B)Cbat3h42+-n%C#Y^ zZWNQH9PQt*q-8v_E0uR%EY#vj+yL5ljHLFndRt0p2fr23#Wu8sh1$?bqxRX@g!WuH zJyD@bI=q_pX0}aR=EM%TmY{u*fj3EOS)Ecp83Q1FRSj;Owepc5wyjr_>d2T58?pO6 z8}=Hjwv`#l%w(l$sf(@X(jI!rM?SWq>sn>K<`u7zmUcKDzS@K*T*^=0G^aNWtaf{w zrJz>xw==uN3-MXH=?pWMS{*Zg-=!{iXq8q9xt?;%-Sh;v*OjxtE9J{5B}C_oa5PUDw){*T+mubqGsgSuaKR&fmsmCX@YsIuL++MoazXadZ{AVjVP!`P;1ONQR=XAMv-tVoB3E1C z$~H3OtsUM+NB!zkezc^WF5b*z9_kziyS6vJ>8A3Qo&I!U-v3PETy40Q3~aminpMx= z>MA{*2K2g(rg!MkJ5~rfoeS@KW7+onz?8(AzlWpYBaSug+9kBZC@y*KI=JZ$F8DU7 zU*%?R{h`#K{$0mgREs;i>fiTz^HJ(V+4uAB;|AzI=eue$nqG(94mF**44b3#_142jXw{e!Xb>-qRx@Ab$Q+O68NylSc{&MCeT_r=yG;}jHA6b`Z&h~g9=z$_= zO-m+MN7Z?kR%wrxc~+K!EI4}Abah`hgDod1{q-M!B|oJCZZ#+Uf>J%Qbch|rE6>+Ty*6ZHqbYYscfba6B^O|WM}c#ZaWOby zV^>4yrZkgsKNiA-z(PmCV@gnlWJdJuDmyA>=h`acKKNW$PICDaWL;mG@>=i8i zMRI-iih#0wcLR4;m{{8rasudMz<6Ok#cG6ge`7~~#07yi*hl2FEENW2eU~#-wumg) zf!Eks@pjMn&c+Bjv-=#AXilETwPQWkM;MQIR6lX<9l zG8d1t0##%~En_o;d51@Jv=-#_I*No*I9Dpe1t4vcU*AG&sMlFYB}eZwbpQsGVp4c| z)*~+kaC@~i40wYJsg$V1LJ|J8kr7yO9B~wkhE0|Sd39KM7`AZLR%zKNjSc0I2@{Rr zb#>0DlAc$MC7F`i_>6w(P2cEo;n;#!*?lW`ZA`|N#K?;~X-)uhc=7U;?UXOj9s5#dapbi&-~b zCdgeDC7gz4UUvvy)EHiZNs`S-m@Da=%E^(-XqekLjfUxjInkGOnTJ>xlQaoe7qyXD zsEG$jTYE=)W4V4g$vwO0L8_Qy;uM?Uv3!M;iSTz-O_W7+yp6hghzXVmc={jgp zlxb5US~(|J7j@OdX8s&FP3owJN4Id~w|(2>Xvbz@7df5E>7mw0omDrOdq|>o)s5Gg zorzf_vk7exSYD8bZH~!^BsefJH%B#-i#HTw+r%g!M5Ei;C*@goVncVJDPTZHII6dV ztx0LDQJek2npbIjzQRL#F_k?!cU7u;M3R=pfs`4_aAE3M8lg}|m556xerS4d*j0k! z8G6o$k|Iiygc+hE8l81|otlQCrN=UhG@gKpoK#nW)Rtjysdbc@rM}6cVs-ns>KC=txt(JEH+8p zajAMF7(7-w=sKpVDx^VXq&6gHxVWlxA&EX{hm+@B78J9#rIc@3FWc3Ye+ z%a~f|P%cuGn>1#bx`P8&K#B=2lsTz1d9C`vsZ@Ej&Q(7W_q5;TQ%*~L47aii=!sl* zG*i1TD|?L$3x~+LP!DOC{(ukkfDgMdv?U9jC5o3OX`&w5q1f7>2`GBhMzh6ele8+3 zk{PpasjKDaq*-Bv#Jjg*I=J5VZ0~xst7s))n0kX3Uy_7c=NdeQTd4$*belJy-Ft*W zOQfutT*z6ydlnS*dcsh)a!pi(A+Yqmvvf}Cq3>w6#mN>GS+dk)NK zxf*2@dWY=54mtr2)&LH#Pz}DIzzPfw3@pEe`f!7JWX(yKAUdMCOQP?4mUJ|F!V9EI zmxtbodGt$8Rtdj1iMQe@t?ZYz7dFU&Sg7h4sYd5>?F)FF35C#tpx^7IP5Fg~s<7_J zs6vs7f(2*e>Yankoq46YP?ve-3TE>3vz-h!5QK!%>wywxaK*S<;2;iLy#5a801m#u z3afAkhu{idyv4LzzGBM8#H_4!`iFALmw0+{NEUihrdr!}vcr3Mq|8mzrm}MQzQat8 zm*%uNsFmvriKb<;**wCEm}i<9zIumPLMou%=DmK3k0MdBb)0($laM%Sg!+mxZVIK- z>~!?}#*GP|@0W7d(=6YNw3Hi+#L2g;8(!rA4(PDO*5C_=zzUX72pO%>ufPh{pb;_~ z!G+neMr^0U8ow5W!Cz--8_crXJhy@P%q>jEle>a^*sXTLp^sR%A6QW|YQp2YxTKQM zZPuP$7D#0|rHQJV;W?v{8?fz}oBJ8A8F7u1SH#@OvHn}l*fuXO{@0a8DS@8)6;RvM zudJ(+Nf6*L4Xp4A;1CY1a0rDk257L$g`m-eunMdI4x6{RTJ4+?%$Hfcu@fx63^mPi zyAw)h)p41Oh1=IVEvSt-xGWr^0NbN39ao?$%7iS5VG^(KBS=%4JY*JCn_Ql`nU>J2 z(5P9eeWkwjYrHSIh^_3$3HxdRN1FiW)%P5!13kjbOWFFs)|S8u)$j_wfCgTG28DnI zuCNMoT?Cf!3ey0Yl}5&GoZayI$Buc}otv;LUDB1;p<7L9w9L_;rk^%Y{W-am>>(XGaiE|8RL=2g@KsjlNNC*c(pM%GA}!?M{Aytl$NL00pbS++MKUfG`HBkkNvG26jFT?7$CC z38*q{obr3J=&Y!LVublDd7hlrG_Ku$O|l~!ekXn6A&Z@o4&*C2=`mP(nI^Z|O?fC? z&*sRe_wl3FJINxm8mvjBREld#TXO^$G-36;{pbEi-de8EN38@63mCzl-7+6naKK= z*!isEuBRT!-amfnmtJ~teB_=r9egkP6M++;8p$Mc@T;p3%B~2!dbIJ?$3hA>7|w0iwQ5&PV1(w zC4-Hp6FlB@rQ~&e9)(Mity52UQqG*fEId65Ox9(|cti)h_i=3W*#-GXpwJBQ^1aZrH%?f~E z=Y`+{JV5qCFa$}^1w%mgYF`L(y$a$mL@Lg*0sJio3#G)<5I`uA+zkBf9Z^{!dF zHT$j%X|rQrn}r95lqu7rVxK-0|JB)8@?^@DEnmi*S@UMjGZ}wAyi;UPn~!-a7QC2d z%#U^N1_qq?W4~#uQlatkgGj|83{MDIG31GtAwGNz8A7DUm_p&;d7cT^wM)EG4YM{) zTD4uqo5_;(3RY~{uwjG#nh&4Po_c%jgXZ&RuU>ol>%*57FCKmV{bujtRSPYq1gtBv z*mi2FE|}1Isw=Kc0xYfr5%Wv5?nJ||GYvQ7utN_&+)1|3BomRl5Kp|&F%m~C@v!Vb zgYHBbTQrOwbXX}wHy?N?!Uq*jFo7W-k?SH0;)pPgh%sC#=cf=AWUavRQX8zV>{O%B z#0W!c5kdUMyYEXe&m(KT_1cRk9(UqlC!TZSsYjl8&a7un`}*sTzw*F?PoMLWAv2Nng(M9$0AOc zpo0!5QlSGNF9`lp2p)cz2ss~#C`28>nv!c#suJC5D1YFCj?zqdB9FiC%!}{7vFy1@ zJ~`!7^Bi{A(e@l~2{4>q6g9Qd zM&wM{Wd|m>V1fnKY*T|bD^*m=D5Xc7RmSk*gbpT{;D8B$Y_)<5fINW*A9+9ykTfje zsIYu%VwBO=j`BwwblmZWpM@k#pUzU0*(69GH)4nhR-ghwR0DKWs+-iTwkCJ130y=w(@=g!t=Sdr zOzcUM@6I8PZ>5PI^f1$W*rP%XPK#*jF;jcyGaqu9>3G!A2lQeWyAy^Bh4?5NcHZ_c z{)cI2d`CoL5)0NaCDJV&uV95Q!XXHXCD48ss6YoKaDW3;zyx2E)fa`}1r>}T4dS2& z0HcTwbXYEXMVW>Xyf6kInBaXANWle?;0k;2!)6215=#0ZL8bN1c4>;C2HgWgIPnaF zU_n!zY*)c;iA#n^OOrjqWkGD!sZJLBo$0v6EqI`ATkwz*J?f*Me$WFS!x|s}Qv^YS z(XxrR#APmZDK~3$&K0XD#45ZXgbr|^1SUv<2}*DP1{{C`6R5y5J8(=BTtEeAD1`|#dwni*$v0gvgbUI4@B63bA zbecA!CbJRtZkyr=1~?KLjBOZ=z^E5L{~(6Nr#X=N??AR#ykQL!IfOjhum0RP;9!=`kpC;h+& zJ>W5oZ63=!T9Fq}+*Cr|k<(iXb*MHanoxu)RIuW(#zG}p4w)TvvFh*^33-RRbCiR! zQ6ncgF*}W51Y;VSODJcp0gi^2BWmkdhbv9^%9zs4L^TZtx*XHSmIhrb%0~ES|Qp!B#B9INmQ^B z9ic-ztI&mNbDN4qC}$N+(h+Vmumwejg}v3ZgHo8mq+LhU&;brMuA?06fX6yW`&nyP zV;a^Fs6)594s}GYhqPUoq!47&gyBSA`2AI3@aqvA>(h~ zAN7!(fK7>xh9-2RAJ!&=2diKQE4ZN|)z&G0w_$h~ZCez@ok$s~&C$wi)1^G$ANv6h zb+8d0=s5NXsTb2C+bvK@W=(}Q1?7Gr#>YR7Pqy(p&n-pS+mUK3fZ_rp3uVbg=l=F; z9Q6^tts<&|0OlBy@YF)23YdN)PH&>A+@JzAxydDJax1{*WX|sdK3G9R*h#pC5FrU# zCE+^Qu{4KH;}vKC#6^C6p04G?%ybP=5&n*R0qJVL!R z?su+%2J|Zc+gY7^may6k=}0B(P^%#g9^*wvJmjSwd0?xX@@Sf$8CyPO=TauWG7$v- zb@jJ4Mu>iz4Q$+E6K)4N-DmfSTN>rE3CXrXr+V#7qcr!Spv@#Y)ow)sXH6gYMx1C+ z_!mtefeCPc1P2H>;vW$3 zcucJx16m0Rg&Y}Mp4~LF#E@)MB0#X?Yc1LSF1xmuJobCVlE^)=S+lzrclMjR{qJ|b zlg~{Ux{KRi+c9@^CiOi>`KMlHA(RGrm-h$?69R`-@BxgOfE5s&j|rTONjMegJ0MAc zr6MX0_%{-G0K{v6#5*eI%AzddfR9mu;yM86vZD#G0Bc%-SC9vfIJQFI00M}g_c0tA z%ovSHJ$T~5YFa9+LW4sH26?cVc~XgT7%kB0jGXH|&kC&maxfJ;vD-PeZnB5-@e@NK ziMWf9Arn8JP`{bNx^BBVy}&I*VF{y93;iIEHUyKd(2sQ?zipd|)(S%&Ta7H)!abxA zLH)xWk@6 ztXpH}1j1JZ!Q9p~ng_j3u)teA>d7sk@>;B-vSy zpuh*6!6eiv9i&;E6)G36A(Icfuj08xOQRkj@`p?F3rrgfeqg_s_$upYnf`N^d=ii) zYnOSvC$?EcMe#!dArO4>G5)oi5F$Dhdx4LD6bxdKj9<|gkC>SA+r}wD#f-5$)=L7;AvF{$C01C4 z*kc82SjUy150&&sAX^x(I2C&I%$OLEtgxQ&V2iI>$-D@=fK*MjlgX*z$7tKWHB3m7 z;6wt82h>6>k^%?R+Nu#NDUm8E!XhaI;~jS>CmeYT zPL7;TV;MV|oJrQ~{>}jkl%+69nZ%0I{Lb?{O`2S{G>npZ^pBx9AGmV4>|`bOoI|pU zkD<)ZqGXSup^rLo4}IvMGocUY)TE}NIFdp(6vIsw8!eOn|`zxS|3}<#HxAODd14rV0SZY4C;ZVin)GfcP2A2RPAG zJOBcC0LXJ6_es6fTcD3&jzcJiQc|BG&tE!s;`rWT-;5FhNKHB9N66_{EH&!43pcSac>}gf7Tq%L({57RNP_xt6*_|_E+SVnTRi4Mv!Swp=ISDhsmsLS0RB0I zLwJRZfPx<=0#V3XG>ni1S!@%sjxa)hP*$FK9jExuIMJba zkgWb$lPum@nml!=Q|cDqp`e{ny;MR&H6&HmRs?k)UnTx#OEzlf2Zpk&-U%g6x+totFs6a5Prf0Rg-No zPSe>d65`;3ay4>7Kv%Z|B z!_&%HTs$BxDuFY+=Z&VrV^LZ}Jnbbsbp^N)tpI>yE_5A1YqBO4D1 zH~|_o*9RDY9nDY>EdY#3J-<}IqpAQRh!wN~xsaBJ)hfJo82bz3ap*QT(2R}4`QU9MWj0^%5af~ z+c8vdsauGKBz!PVsX3?(=F{)uEHh>Ygc_|tom$dD2X!zhXB|%dA~q~^)F#w&hi&5F z&f?t{t6B<{sA+h$uZ>!$4e75PsbJXM36`(IO04gSF!Oqam-e{_3$!K#;tc+?JSD88 zu3{bjFjNb=rq<^wj;Mh)N2nfD35!{$aT?#5=#Ac8#=03I6Z^cV$s?W!|zpSGUCMS@i8JDna-X z0$L%`RB^Hdz19L*R-1DqVafH4pVx(ci%gU*tQDC1*f z<u_!uYg^Ct0ypXx0)c;0*Q zBZq1m=W9U2Y5$s9-UBV(%V(T3@+w{^{*z`xk3a9B1}&|g+V$RRpCfn%lUkm;d4`f2 zb|9?NlAsj(b~gqGM1TU?`{!T)JXWc}_YoYAImP4JJ39inww&}>B<)xZ=F}$FEqX3o>^NyIfGrw;ZUxe5R?E46fC+#uPWQM5pg~#8 zP#^U;gl$0h+9@=k*l>s%>G5i-CM>%)Flm=r-}Bpx;#(A|lTC`#3&X6To?-(tc2x`c zfX?#a3~1l8)0Wp~_vTZBvap^bEeqSV(_-Y7=B!3`hYOLiS8@F+h z4+j6PEm*Ku2Nxn7 z7|dEjg#r&2l-N*UFmT|4iQ5PcB1UlH#D(05(4@wb6E_~*D6U*cgDnfH3??WEkrNkA z6hZXLm(B?nCNwy3p#+HvB_t$0a9~1(4iik6;2_}v)&~a&JQ&cxL4&JSB^;>0!K_)V z93DuJkhTF^tyizgJ%E*NT&Hr|wtae_gxv#e9|(9*V88>e1O^OH+%+*_tOtrZZ9ss4 zT>=H*3U2JQGUW@RRqXy8Gsc%IbmhdMJICr3Y=i_6a-@CIqd0c#(2;D}apXC8@#Mv` zR}Y`QeDvu3b}6zWIEv9PQWR)y+DwcFWhNZ>YNN!17AbxYb`GZa+9W^HmM(7E^yuOU zYFuC5+V7Fi-@k$=@*zeLVHZ+H5s5cocpbR|k3Gz-Hqdqcaa4{*)}Y4`Ya`Xh9(DtX zbR9?2NH~ypBq{_OimKh<39%wu zFh{<2q<2i7*rY)TMOULj3?2BSknCy6l6D%Il#z4I1yjyCt%>xXN-TNg(L*d5RG*GP zGPE5lMT}9z3jQbPq-UNNNOi$e6O>iK1SOO(K>`ybHG!ZLkd+l?c3B3NWNbO=mQ@pY zAOT!+Nq`imSP3w|U`0Iu*Iko6z(Jx3a3EM)7LYI~U`3IISOJ6$P#Ixd?TVOI4>+oq zWtKt4l>l5_g&6^YHc)|63S2;%XkHYe&PXHGXe4#Fed!!V*@8n5MCFvzT0HnP7!N&V z=H`w|*=k4W3)$Z*hm1i45k(a7!%kA^sZ$3hNHr@5jY|NP2ZC0> z7h7;Kz}4jpU`2rDsA~192WEMSRag{EU_l9MY1IG&h@lFX=Lc-y`R5goKo_hMm@cTQ z%qFH71Azth_yMzC1s7(<+UnS3$yTGyR+)f-d!>-^T;e@CmMHFW+7zO*)q?}tV3iwg^+Y4870z?UtK@{e*gMDzMuJi ze_yZH^Id``P8o9*ZR;fW6KoF(zZM1xJ4AGtY z!eXr3xeq1W(B+fw^;Wcv4_7W>lfC38D?j=Nq5ja4-+4y^IL4L?$aTw5IddJ*%)6

uC$Q%S$&2A$W?z zqL@G(#C)gSlk?4!=l_aM#UteryX>BDp&eCkl@$o0+1H;u> zGzl}O%}hOY1&-vtUq`T)ycDP>U!U_Lp6g!Vq`zcPU0HNr6;;63Kkdv_bT{IA6`9wI zwVcaVA}KW9*tDwNQ8M>nxqS5H1)6FYyvkXaD%32)qT*zUD6=`G*PB>((Ibp@fQF90 zX-R4d4P;KTYzaSnCTOibDop~AQYQ#zX)z!RCvT0zULY;}AvfLzki$o6l%aqW2{>*F z1Hs#vi=NrAALiYvhBm=1?MkJf4;9<)RMmEZ;@D?y#-P)AM%m~Ql^`jT70#k3198h2XJg7kBZuO(q9zb@2{6*aTGxJUCv??W^ zZt|gZhp%eBv)?ZH5i$EWpt5zH1@0fHA@!D51NX2rqgVSdnCx@;HDp!GFoZjBcpZY{ zuuVMsu^xS|X-KR#gZUvf_0RlBX0AO6A$OKAuq|b<&EyuolZ$o zR=uB8=pvV_TvC*AIyg^o0=KJO`{4JqyxVm&v~9 z$>3{_J6+^j++BNHKm8hq=1%j!ClQZ3fnyYBf{gg_)9TOd4{twro#pivw)}mw(8Qr& zHvDJj?Auo=x|jQ>-)-hU+v9@>(}{^vf2! zaE42MM-p#O*V|T?%mzPcWvPG^NABg4l%DL}Ny`M>%Jk}-^_E~yz*B%s$4SW(_g3p9 zUq^TL0m3cF!c1WYpuM+qDI|#Btooj+vsb-aUuz*Opvm5RPbojjpTBMMhePfz@Ajrt zVTW7cT8pTSFHPBC^vHGOvE*uN*E(-C=A%Z2>em?6CnejdE|J$de*ijN zpT}}&Ck)30eBI;M`4-jN7gev>oqqk*fLY{CuEywoa53MHk=IRSq~yNm{R6eOKJnsI7C=b_(OYjN$crZsEVJJCtW$h+cZO((0Y|Mu6~RPjU6Mm6xWb z<#T*%n^F_aE^8zm>u3wN9a>?f7rr}*L#V&tQa`Z#Z}iQYidZ@O+wyJqo4%AARc|Vy zhzqi%t3U9s4<=qIpjL%kVSAd0o{c8GxBbVya{5>Hqpiy zgPz0X-A}p+xlI9gCK})AikBtCEAbANGE9D;9;B48b!S@$#M)W{T?Ah7+H&C|eoUpg zW4WlHJ4f-zJWi3@kfg5r>Mcflz77k#AYtBk0hs|5EAW8pF+9={dNc2^bhymNbgy9k zV+r?Z-{Gy4_a0t_?gY~#!;+Q;tC4NKJoQVS%GS>EBTB<=5B^SnZ73=K{ z&v@)Bf7wg)gi?`ok#(HJno8fgIP;Npz+pLPlnxrRm_rrm$-1mnIlmfsU2a&khI7$d zSgvo8=IwC>WESwPdt768y){*&8_dfi9*;&F35yO2voZ&TM=7g~1K1{@lze3j--gi$ z+GrKc^^L)?faY9xN9~D0r-jQe5QSN%;Tx&k%*(5n7&p6}d6_(2VS-=0#&~axS>sug zx@@nukLXd23n}bZsrU81%NYETxwdb1{%57|BWsMP?6t%MZ3i$H8~I`#4aMtu(1^W= zc#k+5gR%j&s-`rn%Jf3Bu!bh$)slMqtRm_rR)hp4QBWYts?80c^rupWZN&+bd>J$2%bPyo zZU%y+PiWHsKZT4$8K}}18(|(Ln1|+zLZpHR$PrhB6$Ro{JR^&rc4ORJd-GZW9y0Kz zd7fXQXzpKzQ_{BARHTDB*IUUh3RbQXi;yXo^btnO;J7!0YjL-728?rnMmjQ5wLs%< z3=&6~(TK~JgVhkxR*AR{!BjeS?$>^@Y%}R`+Gyj)bkkXj8Kpix{$Ue zvkeEl;#5}P&&7gGw&9gS?t?>2e4Vi#1#HkaHt!otVgQ7#oQzN# z2S#FHN2z#9!nsL>(uF6bt4~T_8Rypx;T5V*1B{x0gD8B`CCp>^2{QerHoynT7a5O&SY(^(7MF*5ig|Q4{Xg`l+_FGE)0B zA*mmr9vh}34~74r8_ReAx?3g#l-KMcl~WAdPAU56l+d4wJ9bx%dl*JKO2(_7gpd4< z7Ou9j1l-=Mzr(#@yuhp>B{QgE7mRXwpl05cFD7HLjrU-0A~q+pNQl5Oyk=JaF_&wOGu~pD~aN=oe(AM9;4*b($`fuU`F|y8 zpCE-U+5m?+!f@C<6aLFRW zv|NcE66X}ugu@9}4)myQoJ`}x9CH8hsqfD|bt=kqEYu6*cX2GAf8B2Waqnxp%jxo} z-Oim-)I#Z;jF|544~KfY&oq>TZhkf1tm%K$EF5(8A7b!d-R_A84REHuXZ`A}SJ!Tx zRWkCv)?eQI!>S<_2Ykc}?lWESQs3A`ZU-$_+9FaDi9HE=1O)@O zCrn}QZMWks1BbweuZ$CvQ}lhT^-2=-Y!be2jm?0@+f!H^1=HaBSPnNJN7n%dgT_&S z&9$S!yNoco;Lh9xC5HqI+qOh=a`KJ4Qg#VaO`|PNXepEr7m7@gnJ#`ra{7I;)x~R5 zRpj0W>IrH@e-HF*I!Tlb6ka+mMzzhnr<3hbQ62Kj(wkQ2uZo1IG zxIpE?4)hpZ>lYem5(1t%*KExr6Gzs>oc<0%`V2P>7$H{=_k1B7TJ8lO8z)B!z2o9jWba7jZU+LS1WJbt=+U^T0h9SHrbT@d$+CQy*et}?3vNJGU zJF;Yp#Ik+Hiab{rol)nUTZG7vZ*!^7h+d6T{f3ni?)xTwM|D@2DM&`_H>`K<%UGY6 z^>4lEsji0#^Ay%lvM`>qFy8Yc+o8A7e^U=HR4a~fD>|+a7Lzt_mJDYLDcS9~V^?Z* z0BbH1K3mhLtrvXhE1Oy@GTjnIV%9#U{3nqJ`Fv1V0d^;n1o83A5}V0|?s>BTW&g|O zJeq~mexZUQB+7nHduVb|e%|B(qEk0+fjMS$WXa7m|5BZ#lfN~_%7jA`3nocGOCj+e zO`;U5=O4o#q|Nv<8_0=stiwuQ)5d;CMPaHOSD)_7##lT$y2vl#&_qkEiQ)Q_&AFJ0 zsnJY%YkBwUXU@tt0m|Vt2*b@S5${^XS|6j69{NM8l_}wSn0>kJ%qL5`S^$^Dc_&Lw zZvOXnT0w@MzQ}Ylw3wZ=x$h%ZvQr*OGVcs0pv%FfTOjDiXQz3IkEwTEHO-J7mUnMh z4DKJU3pZJYV)+LT?HiC+9-Z5C*&Bbfd2-#X1PK#BtyXO3W~FBud?gu{$WLQKc3Z_g zfv|lVM+%lLg(l)Wz~?X^@`3a!jaGZ=p375boK8LV>@_P99Bnm_yPHeGXWA!E@;(S!iF8 z$T(rD0Fv8=2$;Xc^O!Ru>``unh1ty)Z+_i$H5hWma9^26>;rDMsikmwO1S^=hvTGQ z-f+@}C{)}i^XB@H zrr%*U;3Ley5dwS`CN)3PCo}U$uIQ-@6U;>UMD8c~JWSt!t3}?qb6A?vwhMlr+KA11 zOu$|IxLCFDM6}jA)G70XdO{Pr_~Ph(rQs!enf6)$F}T z(j-;RVrW2FQ;?hlo8Ufo^>_*&rDpnO${~ia39XeX%i;;STZ6nD;l^4VZ<5sNsH7%ILw>GMgz`8D zP9<(wp$Bjr79_l~xIJnxk(VlE3vH>bQ-re2UT$oH^Vik4NI0c@Hk6W*E;sC4JuGMC zUrP^y($|IKVSM?!%-|Hwo5ZjTbvkMTg@fQWvZVWKcjI~Fim%W{`o2lR#7*eq>B@au zuS~IYIv8=9&KO9S_^t=clzO=@1wTD%rxRnTB?V)$_ z*yFuYegd9suxU;b&udHc1mvQO64i{^7CSNEEKT>^*E7Q`rQM+g(F-LqidOM= zrLF+ZIeGGt69uhCTNA~mgQ<}4Q=jP#*Z(P{gT-YThHw!mK zu2v7k=KZXVtxX8F+#!%!-l+Rqy*VSjgKvYBj`}6jO>+3G2}{dOPZ`p|WvBX& zz2?*rx-#t6ZmI7cIyW2)3pgQ!z@`#(^!n+st=5Y%qEwm}tg%mO9o9oI$!_Mui~eb8 zV8%Fn2RS|d{*{Dmdbygo%ZV+fkMMh2sPgEc;}jt`x)_q&Uy6w}&SFwznZU9nC#lpE zAk6ds0{QB}Y9wj(OK`Z%D-w$u>5lZ+XtUg_Y~LSs&d^C#pdf2br2!V8xrY81!AD-;$ZI3gA_HHtv<;4d8+H_ld+(sQmt@hTJ*HpjlgKsi zT15yt{1em&1$3;{059>j*6q5}RHD5sNOe-@@~8;1cn_V!V+>5t@X|SV)#qxASvO?9 zMv>KCVu$6WAx{a>EK&XB_%`a=KUqgj+n|r@g9)RfHc^-4K@lnRq*qJB58vw#WF<$k zgnIj_<DONjyP6n{+1#11vT%abD&| zSQhZ1b9Tn%WXncPI2h=xP!frK5o>`7Rl3g>B?S%`v(_nRa={|A$b4Ra3nWv(lXwWZ z!OHqhLpX((01essR_92)Vq8bj2z45>;z^_?$t|X8*^CZyq!>>$I}95YT;1jGLbFIx z_?n-?jd(iIkW(1R#w2LNbf~e2i!iL&f||*3D}O;Hhz!q5I%QyaxFFWh0ZTWXc2jdO zT=N+?qi-U8U$IhN%LAI^xJI7#i|A``lMmsw;t-(nxFr5|gvO;y-Is!P3zq9ZpERx} znJ5X2=AkcG>L*<7DG-q~c$%K|w$AC}D>q4lH8!Kg9k#QTpxl#|2svSe<3WY!3JclZ zkIF8Pg=Tq~w#Jq~uSeZOC32G(*k__*OT61c%)gZkl?r3`w|j&Ar^2p**t$s`HVy*M z*zOJbSo<8g%>#q}Zj>b&KR(u@(oxs3kS%1Gndym?xIvBOlEx!L&kV582L{5KF~Ap& zPrB)J0uIU#JNLUgf%gLiVxqH<{bi(LHa9HDU>O0U4uVteeINa1CDOGzKfz{gsd6gi z@jp@T$EBe}@JP>?84I1{qia#M7)z_~3wmB`K?1S9fd4~T0JF!>gLnWq_*n*uGiVoh zZhjOJHB8DhAj$G>y|<)(RC%&fd9Jo(#scxeje493@q1@gbK#1_-C9#+mv=xOJNHWt z6~}Idm^U0vv_!&V;m0+bINxUc?gCT%G&1)i5VgOQDCR@XG+ZRN_|p=`bjs!pws1TJ zYD-u^C+Ah)3fDps%-g@r&WL7&vNK#7(a6fu`bqh_$ z9J|Yt6#D*cN*Pk>-&Firt)jV5|BvYYlH~9CXO=$8Wp=_rFHaCo!gR)_^gb3IfCuqT zRzc#11eUDO0!U{Y;}j{X6S9QTxb81|F)Td+#7p@hyJM7uD7hniQ=(RpULL3(2fi27 z&?Z_~Hj;)**F}LvE17}|zjM{kUMm5Md_cq0n*7sK`v$vS8nRqG8xGa81=UqLr)YdF zCRq{7gwJkB62EdD|9L$jcx(=ZwVqE9wFPqEX<&+9YKzAYv`7>4`%kY_OIadNEh2q7 zD4EaBv`Z1ug*b?>zDbev@neNsAC;Tm`uO{ER!Pj&9{}$%c55u~cdE87n^m8qAmmNU z9~d@D#JYxzj~Dm()2xXGvRg2K91bfG+oP+fSZq8OfDA8%#ye$n&=o(q#?;9D3V0rh6YL}DSyQ%1?YU<<(G@TrjkbVxLf5JG~PQ6??0jfo7FE14_dtn+51 z6+rz;Cz=hk#(5%)d`5w{Q{d0A$aV(u85&|ngrCGga?_D5`-rwI&U^ryIhvgdkIbjA zKO`ZR)YyizI2m|k2?I$(v3{d-JP(Cqh!A1?n=Z7`6}ry&6mHrypT6rqGGiRnwBA`4 zD98BZLp<=2)9p0!sP;B*Eq{)kNIaGs*LzW?ao$SYXb#PJ!3O=g8Wg%-t(ZJmD?`CK z-M{_fuE|_E=(}|Abh&_lqEe!H{;DdMLfRfNw2aW8tfz8hpg1{Lr>NI>mI;7`npNN+ z8$%$g>gADheMyp?4Ol$lmS{?n=nJqo5%T$^==_W%>YC`x=8whM&p|1&C|0KvpmO5* z%H;zmLEGC|X?2~Zpt+eJR1Vp#jF}AR?)n7*PuZb8=~Hf;$Nb+U%heC`8kOl*2Tjco z_k+WoO=($xaR3)re?1(Fm66BFb2G%HXL_w@AU^=aEFLVJ01l6L>`O8++fj_g>WpW? z>riZ4)RlG;{KVXd+LwPzG!v zE+1prjsa{9RQM5q?U;xVYh!nuQmEf&SAW1cibuZPM;>DrR2|%g8lP#PO;grHVew6%!@@~8Kx-2 z@FQo)u*uYA=fQGZAetB~ypAJUB-mAU*eDOIfe34$fq&81iYXlV6pm;1u$@X+ ztvBpK0A{Rh!6!8{8qJ!a0pQwaZzpm(M8G%iW1;}_`PhY^DA<+5InW7>)DiEV2X9~? zBN_5ZZR}S+J4G>^-&5es5^i9iBW8d~$h5~F(BzZyG%j9Lx)X&5JAykHh@T9E)(`oI zQA%g#&!3RHfR2zS8YhvCr=XpHaFBnD}x^Y{MyAMSo51FNX5{)v#fI8;%gr)=8p@ zsxqyxcYE5r-Pv0iJdX>o5V|@`7j@wkN(>sx!XE-*h6ZG2LQtWQtOv*_iq2~_hz_kH zQ3tZF3DF<|b!fm7Zbw`+*Z^So5AXa>?W{Q#qysphhk@nRYrsXf)_Gg@ZJcCoFK-P_*PBaK*rW>@9RQ@{#>-2IpcH zr=lbB2%Wr3i5P}!G4;Y2>y1rfPDgclejFE41B-Ev{= zat$n5kD+qd_(g*R4iS17wp7!Zly|-G!59Z&kIRjND7Q6faUiY8{5}c3*?f+=cT7Y0 z{<2jD)QHYkS#dSLwg&|J6y46U-p)<=%`OWF#Tzv%HSs%L&Xb-t0ajves35RoUaEOmGqNcC!o0=`9M zMlDiG9ksMI?-o*=h5+8B9fUjIPM#oZvN-M#G=M0!*+n8dKU)h5ShI9n8K|6w5-i!NWkq;cz{l(UMcAPio zL7Km={|CreqBkiFuoZWmf0uQ)Wtle`C?F5y!;`sf26&HoTi)w6o&sh*7Hs|nKwe*K znuu+GKo+vo7mD`k`0BzdH^6E3w#gJIU?M4$QzjA=ClI7B6pDKqEb=s1Umyq96@lxz zF49GQ+Zl!v>cI&W=nM3eb>#sC!f`@r|Mi#-bl7_F9s_u>YrJMa&L$d16C>6ub0pkW z>1We$^!}H7FyuGw`&z6e@DjunQF?I2oM2$A+>=Pd!9H|$OMO6(pG zP5XQ=1Ne$9Bq1$N2^%o01EC>|^lWv$Gf(hMkmI_+`GyhqE44wHwOTk(K_70^f^G59=AL7j5?JsBMW&X%0>A zSV?`3ZuaawUr{ptpH}-%9B6r%_+P2G`YH)?NB``2-)Bhg)v!fA_9bq~xt&23cgQf3dUqDZprtlUV`XnYZ9x1 z$-oWCXZ+|#>*oe~agv;71N?pZ+)}`g#=wuhs~qbz4lGXK8=5<4wf7LfYf<(IC&_Cu z@afiB?vrluH#DbA*{3g*?QC)0vy$9KYaHLO0{KjyZ={dsS3iDXaCkiXbV%Afsm!oA z&Q`$oA)4cML*J!I!ni(jn95k)Q$bPzPdnGo?Yb&6#*^}SMzRyM{C+l~VnXagVUfxe zR#@05H2>K}P>3#z765FI;^bXUY!>EoD1PJhAHA?3^-?jn$r}BJJFh(OjkSKSvumrf z{^6y!o#zdO{?Izh%H}SL@adJl(J$?E?0x!+_*Axd{ugo1@m%YzxURTc?RV~USU!Im zM(&h$?Ktl$6fG%$J@?%d*x~z*S4RK)b+67_#YfI@+^r%Vy`JBn7z*HB7oA0f=bktG zCC-Jtoi%;`b0YTVwa45P@(;0FZ>Iir;+{7E2j`kD zFEtb(1)AKuF^bkdnd%SaFI0yYYWXQY)VMrulRODc6RORj zZthb^@u{#T;y{jR+vaTc{^D4|-NU@eTi@IYOKZ;OE0qWTT01eJZer^WOQcp!wZqnL zbOmf0iDrp!xU~{Kk#Cu2DUUVAeHuuF@rxHX?^~3@dVjyw4P}gmRgLF~62gfuRpam8 z5)XUv3AOg<7W2zTEJLhj_O7WYWbmcA#DmWVBfJ=g3#M_H3~z+I%?lI=E*eV5!bD%t z$Q-vaK;!baHoVj11zWq2vb`yTsAQcmA4GD+=TR9@0{n#_ZEWV8unS3r0bTsG=uHL=tH2QOu&S5V@s6s8IkvJ@uOz?llw2B}shwOzV3#ntjW z{;IWD9)HcaXQ>F|^EyIX#&^DRoq9ZpI?gJw)Hsxpoy4}E(n`i&R(PDmJb;zJ+|#xn zrN%BJtBahjT&XP=m&vLq3fbPYQEY@*Y1)M)?AmuX&E=_282C=AV-=)>yq+<6bM0x# zj{MA~P++m+r8r-04p(1aM;jGiN2I{hAX{G*5C2OY^A0aE^f}abn$k0M7Ezb2RXT2h z5bC5G+8OE|AB`5Bf9!m7zI=Vr%UmYMB>s|k^hz03EbK-0OYcfq)-Z9-Lw*<07`LE< zkgZ$Es{s{(3+7|p!2>3uwrT?=5^ioS#-VO=W+jr980WYA6TU5`5@f-gm;AO{q84b) zUoEDuaM!X;L(MeF;rzCt-UNkT@DIe#ck;C_3HzMN)pnLq=#r9L@}E5;t-^)Rf04I)RDe z(^&~k;&8mzJ;WwkNykAYG$bK{w|GyybSeC{mgp7%6@N-?S1Go6ze z=5txlPaUb_Em$D&t;%)8;*An1DOV)XU&TSa*r1XiJAH zEGXO|2Y*2_Of_=TfbrW#;T%}_>`qR&e(222X}_}WHOfQ3`mDIbB^|G#FNR;9aB9M2 zo*vKD1gBjT)#jUf3P&+OVvJ3ooErIL4=%aILuU0RC7e*_S+RtZ*THLuu3*9aa|7%@ zv)BS;61d~2@t>%3qWQyE6AA7Od0}1y>AwTKH8lLbm03-~&HGII+I=3apsI4La;RKQ z!Hd+o+%oKER^FcvDElLG)ya>fjFn^qlg$PoitpgOHH%P7?X+?>OO%`@E>*$anv)V7bJKCNB% zEQvuU;+Fa=z8dY?hCGjSN1}z>dL`AwK6`hE0gao>)ksO)y2-^ z4Q}(=qjWwdb8_Ci(Sor_2}jhi1nL%GXEKVlW!=igwA+flZ->6y8S(<9GS11! zWyN#nCh*)Py!bb^3G8`d3mQEFyl1-rv#2DqX8>5Gvj)VUF;M5Wh%jk7jx{6{ti*`m z>_S0RPwoS5bKbn!YPPGZ{CAtN-5x*EOjJHI@`e(fChMR|^7+|jczTxL;}nSd!&)cT z_9ek#ypqo3=RAEL@VI8~XZ1Ala?|&2^=u{`${v`)-uu&fN-N_b-@jK)*W9Bu{t25o z&lR1Jco*R%lo&I6PP8>7E)bb8M})5cygAPU<4xpibJG znoL&%o_$@l-wv%LmA5iwYi3#b^24VdYS32`?zThA7F1sWUszK|8tI!Ro)((g7LI7<495oeaod!6A*x9vX?nAh!#}1_DdadFYl9Bd z`wM{_18>!atV1su!U(VfxY^_nu8U&33Qi@r>r%ng-7gS!#^#!j4T%GVHi@;?hZ&*b zrS4*3dIZpWbNq&vc;VMLLOfps9qt+l;&p8|mC@r$bzLc+8pfA>D6VzBF?==EBj4HU zQvVh4XZYr*>HJUqYy=`WPVkXxa?M4~K;g7UbHiOp0j93$CNLy7p4sQ=-nih*Gt@-N ze&~61>*`G0ut)ztC65)CbPG3ik(Q=5)z7iW?YDzXfI~zsQp{9S!Y>_q*+70=LVeK9 z)%(-^`(l2YMFG#BZ${A)nBFGIF!@gs++WX}DG>V^yz_~#szpbb2XXJ1dHK8QffqfEJ%+Cy~!((O@p_iPk%t4 z#{X13FgpFg|F*}0z}=2Ok20ZYzuSqp)AP|TiD9PMC`2~Hq{x&lV=d#kUjQ*l=*=(Z zpjp3Rc{BdQTV+|dTOC6n5im|;!PtE`R~xDKr*k%ilrd|1gK8Rvg+*h{;8OSfz6*~p zo^J4k{hjwzy9l+($~tp5_@K9P2x3Wd#1l@oF zno80Tk43N{Nn?u3(!e4dKcq=W2vvWrWkdtl%0O3t3gk=;^D489jjRe!M3CK#QK8aADM4eGH;5s9Es>jHQB;O_B_| zHIzT(8!TBECFo^p`kdR&_tmw!yacvZvpO%YmMcQ7EMt)17EQ)8sB+(!Uu95d{O#!cS!3Y$X0Y%W;Owg|Kwln?ys(?DM`!-e5 zjJPQ%GGrb_7yJbC8&bP*nHxe4fxD!+qrUiEy2x`q6Z2vFdGO@yaS zsK;#?mNR3T-eY;`xiH~0ZJCD;EDyu}EhL%_3CcrI^+gDd2wJ;f zbw)73KEgs>8lpZ5Hq0tlm)5euSZZRe^aUZh$6;1GC#8wjUWdh92aANt95#V?&Dt`f zi(#&6#51ho+`{6qmhlS9T1wkVYqJgsd*_(DB)Msyh92kUJR5| zcu)9A(RND96A9W%h&<5fRev0zWg%U3jlf9qASCE)C(*JWeBu&mGzqtnwm@I1#%v4eQ6SB8fs*!uBYel1VlB?}L&7<2mv301kFAxq{PNlEevO-3}R z9V+}1>49O^17B*G!R2Q2KnqF#O3!62(YqSDzngKP6&fe`fBtP*)7k=sE0)Pg%Ul(NMJ#JGtwh~whI+b3t>?W5Vs8|Qncx($K)bdSuv{qd z=LM+uV&UZX+8Ky9{*#0#OUjLur!lPP+TY?aVB4gl)TXqe#-5_$K%G+E`qbmD7R#s% z;o_d{uAG4G2ZVa+Z;337cOWdSMYtXrEdiM{7guv+gx3akg&2e(I@NTsVn8_LugDk-oWY+ogbt%`ztF`+56++uVXzowmjPR~j|pvizo z>kKAAjt+LUNXTrfki70*1*z~_&fiT+Vp;^YuU92$W`UFmAPa@Ijd{o$UokV`aD&3o zpNcfyage!SxYkyfwneC67PV@wg`in2`LrYCk`?4(;(8tkO9y}A)5BVO*wG=fYGAfL zjfM1l4rIGB9jr+MUDN{`P@9z7!jy*+^cTT0q>s2_XG|1a)I_Tx3KNcH)#m23HB2| znR)j$i4i;2U%YCfi)w$UOGF`UYi&5xKXDY}1Gy{uE6H)Rb8yZUz9=Y0Zo!C%GoSbw;RH5N7-6kjMVdLq2 zQ$Y^Dw zB-esgSyX|ZVvAYPG|3WdB92xwe#KQ-mU)7!l^W;i#x>Z5Q1ZIf~EQ6WW zN2kl4zyGt3!~SwqlsU{TVqGB-y&9A885f- z${={(uYG!3q)Rz}q8wS0Uoe_v<9$2G?pSi+Sp8*=@MxxR)TO6UVtDU1C(ghd+qAc4(bPfb&%hI4P&tDO}BdHMe0l}>%NVSl}9 z4??<3OyjA>rglNikV#^{iA|*N$RW<=`I5ElesN<%Yo>I%E~Rx)VL|cgbfo_LFLh!> ze_?;(azx3Saz*iGy^^n9H8liKnf{Wp&cwrvo?6SOuNP8pv)R@(NTBnhpFd%a!ZlW| zPZj=L6Hj?oH&i;-f3vU=v3vnmOimw52r4SG>#jJC+Ef>Z{oK5#2nyempz4(@a-|c4 zKYCz3s7tRw%t7*`bwmA`o_AoKfN8~v32?ITz=}luO^H9`GYbb`0;!j?0#-#68Yucw zMP+|WV*AjD?Ah-dMImPE`(FGv8B0Mf*z_?>K)i1=?_1Nvygu6f_6xcG=kxQ=hz3Wtt3G4GM&Nt29 zeK6`LmNH* z4!75Wd+*u#8`xxmKV9po`#rlIQ3RIDk|@s*Yq?bv)mxXGQSjvU)2JbEd5Oe_?C}IE z?}z$JHCteB=ak>L;!?Zf>&@F49OGZtc1lC+?re=c+o>JWs%Z$W37^@PV%h3nDM~{e z8{mI~>?NxEwttd8MTpb~-nR2`|I{G%CG)a)zU{9Yo=3CHo%MsTQ}~hh4HefTKeILt zlT+7u?LdD0^ZoBXy;m163u_oq7Ar$dO}V~%fPYaakrWB&xiE03@8$Sap^_`dr})-+L7);==TrT%K8 z3-CjLlm&_#Ym`%PaADL^7;Tm-f2sT>8xPhkCsfMk#89N99=fu4K``AzR6kT^B+OU+@^D)7ilAr$_-;p%i2m)qqh!XQx>YDT zo4}g?yzoY?$^|L2?a7v~T$*I;-DT0jOYi-rD*Uf9xeXHC;Dgc@sf^T!Kf{vVDm*+- zZ}{M*q+dqy=$dTM%KHENx%sB|YZvp)aX8nzhw0}1%;WGmDU*_a_5FRfzAT(ye9yf7 z-yQMJHdXAGjb7wgaq1`zx0i3dKk%brs4U?*o53~RA1pT4^uO)J;s=25{!_ZQ6F#~( z$U0km`uVp|wK81}?}BTMeF1NSI|MIX&1@Jt8jnA%ygXslC2FNMb627*MLJ!t_Tprp zL{0h-(h&4nmD8|w^h3Lt4XP~hHNh5!lG_6W+{m?ZxR4@jSFzTfW6h=r zp0j4N+{p2?Px|=q>TRH(R2m!5jLUQq^C81z`e?L@%S;N_$a_|!=@fS~z#GP0ut2BKO)+?kMw|v`flcLT< zd74rk{V76`K@+&A)I_al83aw2A%?lrm0{8P6&dOsG-&3?f{SaW*`dZRR!jPyMp+_< zMT+WaaT|aVR2=US>?6s%qI>$2#x$nq^!1bhzsYY>Q=4xHADZ=*i~dtO%lllvxp%Xt zZEu+UzxvZJI7F3C5AeRJ57AeHHS7m|XYPrpjsD{2ne5)@{h->zczdxNbeU+Y~nc$p%povkjf-R|ZG1-6C z)~esKaxWNmVKYPKY%u3-3?tV}Iqg5=?X7iXvrVQhE|y$;=xyb7@w~?oo9R#2g%_F} zXU@S*Pm+mJhvJOx zwH}A=w_9@RH*TSPP#;3~S zd9-8WZxZux8r^_^RY<kTQ)!h~WsSiHH zX>EupH^~|$#JPw)e_c{Ntilo3JAGUJhNMM&z?Jo-ERhJRg!mEmO7dm=T8|uv#rBn6 zglkUxtHaSRFBl=B`12h3k&iGN_9vJU*?6Y+*q~v69?-~FoJxclK;h>vWhEBtTtBq| zL8g5V4m7|(XUkszmaro@~xGTgkjy`4U~eGTCC|BZVYf-ujP5P zQYpW8p*gMwb5S8b7mAIWpDkYHm^ zvLtJEipQUFVbD#B(;maw&V^p6|0y~bN2d4xkMDjnd~Cz!*2dh$T#{S0&226*l1rhv zODakox}9xi=GxpPX@pRTt}4~$eoJ&!Q6oxHA$8QZwC{F2Yr8c=S+vRuQ zn7US)+x6$4Q-V+WW>$AphS(eBV4P-T1F;o|+9QrXieo~M0$1`A9~Y#vYRFtut=R{o zEt|E&i^2uHnD#H0jpi{~k)_tZ9GbSKzu6^H=(2$KcKYh_?(FrI;6eYN$m^wx_3yZ$ zHh+ju-0FVJ#{P$YZQDAKZ|-!3`}@{y>6b6g@Li{mMN%u9-g?q!n&+mI9eXH;KBj%D zo<06`Y-pj>cb`cYU(-7^FOX*Ilc?`*8pzA{pQR}MC3bT-?U_s7Zsm7u4Q5riJowfe5r;B4j+Z`$Xnujo1-=7UPe)+(_WjMUGtp;CooHHf#JuRV%v-4vFU4GN|6RQ1+ zOkP;~s}9rOF1*d)(6MR9nx#Qzm_xaiZiF3N8dUR-XF+7s3{E=VOCAAGwtwo>1+;EM zvjE}x72>HYuTA`$Q6!@d1!rviE*^w9;TW z=#;+l9X#!X^<{gTz+EDfy)W*J9?9_u8pB^HKQ9*|_a-7N1&}kFU#BGGB*ce`g-yW? zsTZMfkq1tq&W7&k%4SS^6}|YXzthp_<7u!{@`d5bbGjqQV(`!^>E^Be2Tu0wad!2B zrOLg7HLr@R3aSh@-`V{^zJJSK_b=R z)oBwLM!LKwExnk!ao9A%g{0&6JnJ_9o~EDO-ajP#o{NkhZBAZu)7S;u?)pG1c4x-~ zHiGSDh#k-K5lo~0cMoP3+%W4_T8n*1MmjqD$jhk$&)YYO%Kr8($T86e;?fV1j-@JJ ze1EXl{KJ52>t$4~?=NnJgQUFKLb^&*0Cr|u&gM)>?(jE_-K0K#6}Uh7v2gpXx~Vsx zh#3PexC3d|Hi>7nKKZmdZcJ5bd2GDj^fs#2Bk>#+i25AUzuIZy>|ypK(Ru2e-HU{6 z$773xh=P6(B~8~H!?aTqCf<(%zm&Ae@xoCD+TMpJ9~7>QKTg~> znAxQM6FL9O&+^La|J^!jtkN8Cc_ZAg>AfC?^q4NxJH@@fpx1Jq8~yhYsC(`*IQPi? zvrAQUPa{`wuI8u09^=)2^Y;_mjxvRx$FDjJT>N(UA~T~Ta6-8J1`+9?XFqNkQKe_* zSmF}3O|V*gsADQ`~d!g4Uqx z#s`k#4qH{kD}8@`;5ES09O4lj9~9=?>#wZHh&uaF1fHAW5eIn|^ZcK3UZgiLaR>S( z*EpgI7a=#ckk#0#S^a$+v7g(z_ld4OgK+RrjUrOmh5InD(jk@wPmtsP_rI;h+8f~J zaP<2Ux+C5-Rr;k!kin;I8K6aW46K(8XQn-|a&NvGlir_qoMsV#vuuOf$Z%<$&6>#2Lf;cFZ9RvwVDhWY3!aZw2G6R55LSYofO$NPe&r;J4FG2Y(rm;!p?*JPSSzzm68p=@5AM3KT zYp#FRybnYUZ8{I_a{5ziLves8g1l`e`1Ap&5l1r(Y>|+!*8*if$bqRKaAFNo$B0;(<#1NU)yX7ep5I*qXnQFbmYEoOU??CAR9bdIB9_lU*WYL_W;0M!%wmGGW&wA2T__d|gzr%QH+34#G z9;QTaoo?O4Kv+0t<&8iiL9ldO$tU#YSd-gC!z_)H##`E;1%HZMLWO~20}g*_Kw8 zBVuk^FYB@mCu^;N2q3U#cXJ@cDF~fugW?-Qg+HyKWDb~2gM#?#7h-%|LC!U=QAI6? zqzMQWC9v&4Z4Wr_InDP6x1=`Gah1LeGT&b+N-W)q%;=H>OpCZ&Ld@ zwTBhmXjt!aoKEnj=e^4+K|+0TnOI^%BXtxrzhl4)t*0Fe$#ZYFozF~n_{-V)(utK=uTfg%`ad)B&L z^Tcde2jo8dpMCflaH&gk>w6f3TN1#&kJ+uUJU_Q?!u=J-<50uiV9{e69VS zZzJcIIH0LyL7o%DMVWsFf-puwDlvkPUs*N|(A~ADYZg!{k;xQ`*gVtL!|K^=CtEti zB+oQ7F)JqpqAuatkOjZnyZ4Xs|N9#@S6&wenB^awIbFhQg-2>jIizmI~vuKj4JP#yfzxK8yFrsvg`(uN2kPA|o3(<`CIs&GZ=cFOO8Ur*2NSQ6UZvE0Hv?Yt(~O{67V zt9f?^KHpXI6_b_FWc4Dzf$kW($xCl4psn(<=kd!|lbjG!MS@R`t=3)-g(Lif=2=nF z)|BXI7wgirz_#Ou2F%V_26kAcyVmR{XJM5HD`&(0)xMp(ULEo{<8c~fOrw+?oGy$T zP;6$HPQ5S*1)~BH#NF)$4!bGhH(Hn8!xb80`8J>+zyYG=0Lf*;Ok5$<$_>`( z{8m@>J+x`6F5nacP5xJJB5B>P z(wh1}tyn3#;sNS3UZ>z69~-NbE&x(LE1Gs+*gOc8>Juiv>R+ZbZqeV zA$qL*;>%{;NJ(Qw8a~ZQwq@}4evy$=Y7O>zN1($PL4$xgZX5?m5>f{;uTL)wIq+ey z9=}D)0h)zclTWJ2L2`B)d#E|)?mn8*Mh@=$42D z)2>3BCkNg!yA6_ji?7=OHtYZ&rQ~xnpyq6dITvas zjbDxDC*R^}S3=Auu1syWPb?rAI7VJhExTyMhV0dP~z{J_>;#wDCUrf@}j z2Hx+Af9joX6Zsea`bMbwe3=>wVyxhubGcSiO+K7SD>}~r1g1Jb$iQ9GOt^iSwQV|P zM*!>)8>ZZdK04}P=Ib6JH8F^ zU_TrA>q}q1COe@5)qdz86n| z3_gnz{cX=VtVD2h-Uj|S8|zag4fwdT#BSK6C#Q$W>!p`2)EY;gu@hk@8Gx3J(7 zsN!$&I(<*WtB;tlLhIjomWhwAT3?@wZgg2Pde+8S01R=1FAcnmUB|OrQu@llD_<~I zEh-!LFRilP3F8-9{mE*ZeoZ4Td%-VwO`%WFGiWkP;ckR9?|@S!#*a-mz;sIRL20F((u$b=Urs{d*+0;;9l3v6>87v;h_FER?Z0NheSHqO zJJ%hNZY8H$thQvxZEOFBo_eV63wK=ipo%T7XKqbjNpWdY`LY8(({ol z(fq-?2Z2n=VN>JzQ)UFRtNaw1(-mS3(?UUOW1KkyLsjVz3W!HY;peh=gtb939{O%{ z=&uB@_1Y0G$afKVp03LOGcVWH-SpPd5VL*xswt z?|KZd#pHN`p;8?Wa$}XyozggWYU}-Lc9blHX4tytl$i%7 zPq0@STMEs$cYf_ieV_YG*V9wyOH22VviXjt@H=V-un1jx;pj=8Yfq%wy0udZYLWqq zdXVKlE0=Y{RP-EuUEUs#K3LeDiT@~~@S%l6I-vK`Vgt{QL;C59A{p2^`l;j5(g_)~ zpVMXRyQ7a;*`L#$t8{+t-->UMy?tKWjFOqlDtM~h`-wMUX?rbFXJ(~Og8U0D!rJT* zf~uq`LUF5XKTXk(Qm9=b^H4>(?s z3~^mH|E^enFbf+$zDF-Lc6o+ZUpY~u`=Xa;V46`G5_{a`T1EDH*)auTcg{9>)*b^v zPzB8{-NX4UK{NTJRNA<^9`{7a-o~=kI?SeLLHZu}=%C`!%@sk+flcQkncJ<(uuqhl z{OV}{D$WFg^{!Z|dSVqf26zw&S*dQM3PCB$Egr?|G0c(1qHa7l(RTxE98zJIW2)1H zfZYi?REbFp^l0}hr9e^mc5WBaXeX6P>jkA7iFgCwxJ}Y$0wdT(_`4Sid%QPzFTA+gx_o-6NCkaXLT!|kf!$H zLc$fd!OLs z&ol8Z#Nbznoa?ua#NAN$2#d}w2%bpds%d1#IHrw(ljvf4SA2G=Bn)e~WC+t>D&|a8 zE=&X28F^)G;Rnwx!|f9qHgSm>@(9ax9cFC%PjnmUA#k*|J$l`_FG(lx7gjX#Q587+B_w@;Y8he%UToG zP}X0ifkVfq{@T;D_+?7we0HF|ICsSZx4t}gB4Rb6=}&P_z}xhYwLv}2u*rZ}y{%f0 z*%|bRq65b0z%~`72vk<#DhQ*qtgpKCnXfldf{6t2owp9~B`@%p39ms0;z_qPP_Lvm zc-kit)RXU>iXohsBbfOxgfE#1^15JLpGC@ z&?{v+QjqX+HCbqj?Lzy}`Ik-=p(1%|VdiLbQFsgLMr4~ zgi`g@gtTB;bTq=*tP5bJLvY?gK90?W6Rlt3QK>NUS{_`3;^sC)hFOns5VmbnB#Q>| zGON>6h>iLtfokgnkq_c46O1B4u%R8xk%;f2)=3AEn59O1$dX}&GlJYEE?lGIxnYk4 zUY%Ntb|&(Se3rnfZ4z{Hv$t-V{fz*}T62e|q~W*nM_1jdQKOosX{AkXR;x+>OyM(-OGTQUbQ`dj4IbGbada(72m;Z6gf9hT?)djR1 z#+6xyz+Z{els*r%l(AZe85=PQkh2^ylqZ(!YIC&M&h;iM-cd1Xd1}+65Jv9%RLcJnLt?QRBI$ zkW8I-G^FV{B1#0GMllA0{g*_={H$8+0XwMYspW#m@Gf9JE3^f}YqPCnz<=AoC@qx8 z&8OONGjJm1RITXaIzJ?b!yt|sUQRBn4L|I{f2bp8Yn3t#ers9zCoWydP^2+d1Vb6{ zt#n0UK}Rqg&`Ja}?8}f_teJ#?=}E~EVyBC3#c?DA1+S`|r^qUVkcU8gQst99pPy)= zkAiOAv{Othhc;%PYqK$5cvJKxR;Zud8p^5ujk;^FQk%hS{>9y4#U$}FtsomgxPOm!oaT}vhqLX zfBrPheN6AG%sr;`HqP~C)3Dk%?^LCK(-U8w>y1$P-ECk2$ks15NcXio{fEh1E^IwN zzj)&Es#Lounsj#zFx8LJA7`cgojL*WKA2sDZ1+30Zu$gq|L~nYGs~y%(N9bztAKpR#iO@w0KXNvDY*0EZM-Ef)LKrK7}7C z%GJJ$@;IC{bwcG_Qlz8~$H+m@#OXphz!ZI8WgkJx+P%4{xz9u%q(L6es(cvWnPd`= zEr(ZK)Xe?cEv`KUp0}ln2aikPlaiB#K9${+hif}Y@_U)JqNvWhf3kFYISBHJOZxGW z0Thc4O$$&nB9o5mLT`D-oRby!1Ks$}%t6@~W6=e4=aP3BWW~tZ9PKSbdyVJ!VW3 zBM+TkPT9SXpF>?!2|Jggn%|G~Vy&CzKdxqTj*B6Y<7EP0luc}R;t%A})oj(H+5gKZ z1y%~FL676+z{b+T&ilI+PGH1NM)V>*12%Xhh5fbO>zB)5diZE!nrCCGjO0*$bV);X z^__ZpcA3jyfk(Xsk?`j8Ql4p4Uyo&^aY`VcDi@-!X1`!ltwaO%Y3be|PxOy3* zWD)5@$iJZzVVM8c(18I^yEfe@qPW4RWemeVU7qZ2!y9}&IIlxmp)Y!Akj2wF!_$Nl z9od?!F)qe|(cZR>`#dOB6UeL|oYUB8piGuc<@hlEt0c}sPP23a9xdl104iv-6an^_3-Awjjh4W{}K_`}Bs1qPS`qHhk_^!oUl!S{+ zr@Q>hLx$4Pp&(2s2>A0B6$FA+QyHOjNT@RA*|{+6BV~{bhkc|@d#6Kv7u2aRNrJKD zM=FUjm63e)B}Vu>T@?i033-Q24pEgpMfA*~Lh&kWUT6nc=LSz_08H)VDX|Ka<=ns0 z!N;mSHP+~VH4zSmGj>PHMxRY#E9r+T`%CBhZRdG0iP^`}Jx$YP;Z@m3OxU$L-V5tG zW4cY8U14Q8+{YWGg$--y&-r~PS9WsY_O#PXEG>!K^7gv4| z+u#Fl;fCh{(=uDCNGWdj*ERazJrYSZ1lsQT3uUBOFSekrbs8AY0po!|^=kb`|7ws4 zA$60Jrm;f@y)rj(g90RJP3gr}ZqECw+W z!RVe|WhowZVglv+PTh`guw-`i1-D{5IGE$!a%H`cI%2f{MdN~<#_QVbib|<;o#kc9g2cyG$sFr`cd$&{Ah09h$LG%$Eq(^C zJihnH^B6&_+@bGtH z)sa1U2zrZORQfm-A~(%z4{E+C8fMN{=sGewlD~?l^gRFnD!{T~6JBW}ZUUKm?8K9u z&G^f1$1(y8X_jQWal=)Gl^Jnf0p>x}?`U+Cb@gz-@R zjGf8wQf1|J6#-Y-mxtQTc*c6vtp6zV8ADwT(i!8an=qWl7nDQ4#urj%-QufVA0+?(6KS|?;chS zTeL%WteQ6Vh1_kU(``)9{xRl%eP>SHJVUdzv~~$%a;)352~syEGFyd^#}ZA;XG}-d z_3`I;xHH|GiKaA%BK#S!CJgScGyDR~BX-u9>B=-XJ#z=nx#@tFW@~2e3P_!ib8&gP z?c5G79p)y5KBaH{-b0EFaoH7mbWRD=Ce;bs&U`ao@u5DOB1Lw%>7IK_&r~umh1^2=CJW z4#aS^<|+slkRa~GuTq7ah)f3|pZy3=jQptcP#dE!eTs4y<58 zc?H2x)Pms@64j+k=Z1_hyHMWVOK@XceIhf^xfR;U8u( zwCDVx|3MAq(JnVpKFo#oPufLOdl)mc_^6-p5hs_eb>xYaTy!iC2;xPPIlt?fl*OH` z+f#pxAP-55G}6IG>Hk!qau=3<0?!_2hznA&y|1EVnkyikMY_gp!;y(;m02EX7OdGL z9B8Az=Tzz9yllUzHhL|P|JVOFh^e{urNI%gqX_aRUnACjpsv>Qbd#U@EQ1V_W9Ast z{4&c)rlKz5997M-Kt&XIDN-cAmUdJx`I%KBi`E9$QI9;ojd&vd%{F=%WwyqLp({4~ zxHcxs*r13Kgx=V)_f7Vu2lI(`hcGm{fY=1Wi)0!%+<<`!AcY5T!Do}qocI-Oz$elG z-6@z3zabzI`E`dvw(g60x>Hjh>YgBVz~(#m0^yt7b-Hi0E?Eo!#TC+N-l)Epy5TxcuIb9XJ#5gfyneC2%)1 zf!LcvD5YQuz;ro>b^X}iFZor$CX*Upq>ou(gDTqVzoFLle^t)%?F$=(LK#5|+*9G?hWE!Gh}Sx|9z|Z7O>z3kNTh7b-fY zEzdG&b;>PY(r-i|dXbMy2q!Ki|9j3um8&vfrK%cxCz(?fJyDx^**M9(&WkP}F|Y#j~}rp<|m+wx#uBbi5;X8?8t^bKOe=Ew^wJX+YV z^U?LDaUnn@*T@mPbB~f&q8fFaJ1~&p!~WWtSmEUf^9<*cO4n~oxT5=a0U(f+FWW?g z;4X(gY~$v{hkWsFb+;wHZ!e~+Dw(^}`y^7v!O*P_tt7Y79>!|A@W0K3-JnzHr;TpR z{ti6z+NA9d&dbh+C<>))3G_+)&1PMw4QA@M{XWSn(r&JB+-%k|wnK4sC~Iv%)zQ^r zkzzFi7I%%qV=B5E-hw82v>R5};lSh=kO|Gf8S;bVa)renFmPC$NR5MbNxIiG&%F6 zNv(eS;YpMBuKH1B?eKRdC%^YSBAADihu^7V_lwLoU#@IW;Mq~Sscq@whmk%ygWIT| z2Unmz<(AA8#S1zHscLb0ThVXAM_Bnt78mXkY<+Qo&=yb17xlSnS)2HGrPZhmL zqNkDjf?wg3OZ>J`3e!PVr^Rb-eADjY3d@K0mzHV_|I)B<5Pat8CfpL&x^%>%3)}) z(=IK;?@K{pc;)*$t~K$q%~y_#kw$cFphK>AqE8#&4s1Uil>UiUxN$|!6#bbrj}nsj zxJu$6bUCa}b`2Zhg#0Om)P}|CtXVQk~(`@KMGVyW+hVPID1@!3Xn;w$ zBdFTNYUo8g#B4MIGTjqbS}Td`QS?6cYjHOURE6)<@TVhEQf)-WU4>tMjwSxPW@> zku6J7zG@)b6l+}rFvqRWk#Ar(cdyOiB9AxR&L>14If`J00iwq^LQJ9{r)B3}0pPJD zfm{kdv=^%Cu@v}1*F_HU&)YCT5s@6^WCSjnIB2Nna=1CiNDOpijgEGJk-DN6;O8a0 zwYr=v4;D9^02v;d*UH80Q@QaWJtnvHUDJCt*4>(!+_#!fCx>*Pyp~JRvAy6W9_v}I~907-L z#(YqAtnyaa%0&YgFxtzF(YY(2z$x-Q?)yU4Maw9aL#zCdFmE@jLK+`;f(uhg0in!_ zXx6A&pP|=JTdG5aoRh;*xF!9|iGT@!weY7(S&vxUi!P5qDANH=IJ@|&a(Xh-dIE%Y zq4NO&7rkAIQug40L*k=M900!00l-iDCl|SWf{*8m`FgY{v~wbh%@vDtEZivZZVZnH z8BpT9gr<82qB}n(@*JyGi9g$=JP@p*t@Fsz(lmdnPF$fapd)*!GWRkzw8RXIpskY= zQRG$PbCjw}VUBOSO$oFrhhrDY9xdoB$(#Y#DZN@96$bSPTwD@S`6Lzcm>j-gjgG2M z@3R$CNY9t#Fnt>M{V_Jg$iXj>%$QV(mpmSmCmi|<)oV&L=zLYmbl6Hitvgnd?L3A& zftu+trZ0C6boAND?{#yTQBIJlX*{OxZNTY@Z27VTliKEbFbz`^RA1+m1|Q$)H3qi$ z)98L}{9Q7L5vHFejovcB#Lu)rpG1LM=%Nr{<_N-l6++yH{+`?F7H>E5I-+#*|Tw4mIg)cW{Hu-F~1DGu+IPBQ5_M+&8VtT0|U|!B+liBok zlkh7pbIqZPcRdW{H~VZx_F<=Io~jL{_py^j-piYVuR^ei-!5Z+>@_AK|N$s`xEzr70AL@PH< z-oH=dN2ur5MuJ0UEh3-^d~pjxpz1P*2yEjal2gW;eDB6Iu#e7}DN!gr)0of0%tNK! zP_+~?(s+Om#54J$A}%swO-Dn-%?fmhKhctdT{#d`J0L-l`cd$2w#Z(mK0!2SP!{l^yO%L3fJk1x(Uq02A0*UV`MkFYveuK|u(=S7a z74%R{6gc0F%EWH1i6O6Jm#NkxQZiF=fJjh70rh(kOmTv$07yjEwQ%E_dNzsaKsJ}F z)P8pdk+xT8>{1(`$&ukhY1SLg))sDb3%T?<4yFEQXuwnQRRb}eYw@ZhBd zt!Q8L@kZMDb6!o+ac^^b19?}68_Xil)JD9-DTe)0hc}IKqUrLvS`-8f^b7*eF$Zx| zdPe4b`?hb8{5rA!tmxNPU5$zkg!xHba9oxw;El~v(ZikQd!9)0Gw+t@8}nfXj&#W1 z%+eZ>ofzW+@>fj(4bbg*5P}rE5yAVdyTnE2OCVd?C}=(I)h&)AK5OQoOZ5~RqwM&6 znB5~|!MYLnpb4dl92m;EQ!UBtq@uj#m=q3%DWOEq)ip|$=jE33Tuiw>%yI$Yro2&$ zp;9kbmhv~Q)FGU@Fqg?z^&B-~ty+hNIg|4=S%RpSn#iSAm!(1tzQG6+rHr9E&>_*$ zP#eknReJLQw{6$tn4?e!#kyecyW~r@?~qElWNNeoDph9c3y_NBp82FrL9VYLvmVr# zZEX^iceZAy^lHa`>Oi*&bM_R7qBKggO{*nrttI4sbinT0+$kZ9fowbs4t;&bXrh>|h|= z*XUb*&uljq><@|aeP9^M?#()7()oH03p0!?l)(Ci1H@c7=7Se%T5Ck6Gb-8H!}0pL ztWDqn`PNvMMRcNsBH1g|Q4~Fr1q2_GNIt#LLs^3Pntaf|-4y(@zUaVX|CX#C7(B^> z&X!|8@{6=kHosoa;ewv)%4x7HHu$*gHG=!Yu z>71&~!htn*@wCF5$ZUB~C#;AK9~>bALK_rIvhKGP2Yb8NWg&&e?)3*5!tdh1Tj}sy zO8zDike;FyAcW|E)?pxUP#r8b2mH(`b}{GdY#>$NgJKtrT=n-2Bu8uM>(eDjVLXlf z=;$AaF-imp@jd)ZBF}9;Pb@)Tb`Yf&G|z ziIMlvfyob;nYszV*uDeGD)}Ckxdj+O0o0BR)u3lNPc)PJR6A@>6b- zCrX^hxY>%!zl4(%23iydZ*ep!D2X%ukCe?yCg1xm4j@?I_(TP;ODkV?BG zEZB%YFnAB!^+kb&HnR%2G4PcO?yBzXY(<6ODE}04et;h9kVm3mr^(!F0qHAP!6@*- zXBgX5LuA1T*uk;60WHIrCj*wJO+(paNb7*XGAu+a_wN)0z5culwBJq7}^J;N+FR0eJJ0beeyu842=TNm9wiY)T|rx zA(pl3>!Xsa%d@-dtpI^!B-ibL4I&KVg?I=Z0(F~G*&W%M7 z=oYqp5COLrLk157Rz9-=e?1K^^@1!Mgj&wf;`$Ue?K{EIu;>|D1RrhDcs5AiaL6rD z&}Vv7{`U}9NoDTRAAa2dx#c7orVGXih0q6sh7W{jIcL)a$-W1<=*wjIK0vjVj;tgj zm~wb!^wYpL`?)UoRx@~Bm-1_=vOtWnOL@k=wU5t!Ru4iZ(V-e-7*%q%(+g@(ZzlIR zw{lX~vT+-GHXU$-`Ef2;xH5WUPQJh&)05FT zkj7&!O4}xoM}oS!r!H*vHCENA-vsg09Q#NZEl?~CoR6of9}kHW2i}!;5KA3>KN3K- zxKN(fgK6z+vwTStwzyRj20>MUu!SJv?;vR%wKV@5Rx}@$(4Y>PE{}hHxR(s9-h{vk zU?cPX+(WyP{R=0aa38qsK)Cx?HwSBF$ymPdYEB;tyrUNOgTR9;u((6}qC@4_bj?A` z%~Ib%tWH-@QdS6LE&-9;w{Xc{j5he26~@+I<&&{3?q5z(h6Qr8&=Rae*LT9fmcAH- zNwKG7I!)8MdGKTSJ_@3&cMXOv25Gln-Tu#98H*WVv(8c*TK!!3DIriw4x*zb-G+1L zj_-~eLQ&LO8%D@n3gIx~#x>2CrEIOmfL=-Q3N>7-j!bYplSmhDr6ULiv=uCNv=89` zF$1L-29D%8T_y1(XV{CO3ck7?DAPa)$xZ)P4+JxkLT0bQOtMm$d^6m2B%N;k{BkFY z47b_%RM1!*?S2M3&+SpENNG-};-XOorX4~R1vuG`vQf@KHi8P9B@+r(dMgLnQD;yN zs#Vl~Kf0nHdhb7$6646P$2!tJL_g)wF)I+*G85GxF=&z~=kCC;G1M2E6f9eC>nB)@ zbn|Nil}fTwiaho0ejNTY-e~;by2Y$h&(YVY9v7~GUC))q_^j`N7)yd7qA_v zAdOZqv8n<>=0tPnc8B&>6w={l-||EAD<$rM79fZVrvN0>5sa5opX(5&Q7#~GwH$kk z3O55O{*C@b?7IGtv;-#vCSQIfhQd+N#Xo0{9n?Y%-CooevL*AH-06hHFP}kiu(oHg zcr46C5~9jnPH7H4Vc7BZU^?lhxXW)Bx8t8K7%Em;X)@xk+x1fc9rU0dM`BPCzT^N% zg@Z?=b(y_r{_pE-$XSlr2_S0wW-|w_p&kbs?{`K}0X0#ux$9upxM)G+(Un`s9@y;! ziR5f5LeCa_AyuhEf=-tptH?_B*AvRk!DppbBQusinaDM+%FqWjy(kThD76<8$_EPS zsO1WC8=_o-PL$?vo`GAu**MZ@mADa+_@%C}Zo>O}@~$0LI?xdm1v-Q+xGa1&8no$%`L+lOj?UMgnO2jmP9)CUgpmubb?6^{j%># z3~XxG`2I9%_a^EzUQ9vOU1#WdItR+MYibGkx7<75$1gqK@;Xx~oeNF6h=xRIYKQQ? z+`%5J)nqnfmtvJh=vX647TmT?4FL)Ll*Ykarx6&;(6{P|AaNM|(=aTNjujM& z-unk9s)jw7^DkA^Ab_*K!%W~a$N%odrlFr+35I<{+^e`h4!wB!B;yfTms3l=syeuJ!k^|(rIdvn`u!Q^9(MGSCQ`O5EWYlr$<@CX zDK3&$nT7Ar0Qy+5|Cf5uRxW&Nqlg0XrM|A-N;hlMw*`Cu_d40a6LdbXH}x#YY{?;> z2Oyis2pbMGG1%C~{^n*f#+94gB1hOu;*WYD1BYyrjO|Xm;Lgmw!?ndmJ@UGSZ^3?pI8M@C&~2@(jqj)EA8o^6`83S@8o)Rk7@B`eMfla~v~ zdptye{}%N>pu(5FKxa;eyGUDfu@J3effGIf*hKOYEY*x09V>;*Tovc`p25zc)|xaQ zfi%Qi-gmbEF)PAh4PsOGZYzz|^{Cpt)oQ z{e*}Mf}>E1apQY0z6R>MCKRF=fq+14K=*DVhJ9e2p)1JEDFgahIb_q|Cm;r&?~mEQ z=T{cZK>Jk5ffg1FC_LA|B2fUQ#I(Sb0M-a-dKv_)BeR2+mM9(~?ajPuC0wlBc$x_%@N+uvWG?Mb45jK5jo} zezG;za_hySA5I6$=S|jYyK|44ANI<8ka1jOSbNm2#Q)IcHzVTgS|H%gDwl&x2vKLFJ@ z#$tM#niW>M>TDAP4&~PqY@$sEl5HQ^H&h?OkTZJJvNa<)MNk!1ZW~m!dKu74?zGr3 zWY)Qg8YnAkT6whjZSto)k}ZcQAeF^ti@6`{P3af--cR<|^S0 zxvwi;hi)7bWwRzO4Cg!*_sNe_#(s&^tOQ=D*_HBOjm|k3oajQM_WS81fGDW>4NMQu%G4gLdbq^MPdI>9qGd^K21q{w_aSiBQ5cg3OG?yU zjA1pVXonr=$Q3v&0KP=GJKhqs!}Xl6X`ms9!33+g$V-qE;WSLBlH3MD>Le>95>^PA z0r@*#m(kz}16u%26K!u%yV?O5S|?xHg*D8V*G6|+2S85rPp^Bz)3%4FLRFk;MV`7x zCsN&Ye3L0Ke9v@IKbbc&?55!?Kw!k7HMO345wlURQ^Lp(x-%ElJ|cAMJ%z8-kI18t zdNrZhUPj4H7hV5y$ZvB+ot^^qtN(pYy(>02vB(r3O!(XV%gP{~kKNx3s!~>c&=!o+ z5-jccDk%`Zh>3+R^M523-FJ)Hn-B|ref-^0R8+$WoAdkId)R?+wB!lOc_3gRP^NZ^+hiFIAxg=f&g&z~O714i2u~B4V&0R0k#HdfM2xc7 zJ~N9Ri`eQo5VUXv6gQQXV3L^YehX#dgU*7evZPQIE(}e!M(MG=+(3o`g&qZ*sF z4b(zX(T5{u6h#a3F1Dy$kqf*lQy+|pZyPR8SKe7xXB3XfDs?5r8WUI`xP_e61d9sB zwu6)dIak%NYEcX@6MtYGM7)tfPYQY?ML48n4vgdXdR1#(U@a-S1fYFOu#gTD!%X3U zto<7E3|0Nx_0voH(YuQh@f~ehpG3+V)4QQcRW!(Z7thr64nB^0IE$VlYuF9Aess8= zH3idGJt=}2>#LzB=rfq2T322A=B)eoYt@ny-8MkR1MY91b{IUvJfa28HsUhKekonp zc&W>;Nk3$=On28;TZxvNO!;7XH^JiB2Aq6!f7D6rS9|&MHPKDl2J*-I9&Li@o&=;_ zlPY>19RfGysT^iMMjcv$_SLa?zB4?{Yhyf>QVC4h&99mPQ7zKIK$c<(n>Ch|5Hv%$ z6Q=A}317D)Pt?PhfUD-nSe9*dZJb%?Kr>hT+__yT;ywuBw-pdfYQ&k)9m?=u?TYEw zbQ1+v zRy58rJGk5Ha2mS{K)2|$9;>Eh*#A*<=6^|L{~y2ivZLq)L2>Qkii(A6YSsYazJ#Wx zW`#>;W<_RYO*NNALsLVuLbF1%(y~I^w3-<(H7hGLD_f?)w8oa1(Y9%t^7G~U5AfiJ zbMC$8yq~YWPw8uQ^4Rs=iHPbni2pc4e2V z`rO#Z>~6tF(338MKtJ-=UswEIdR#M)WiPHxU(wjxwif@^)w%&>odwO(6?v&jyRMMC zhUeU>7-v681+&y1D=-$juJ~}Dni|+H|1;S&e+l?gZHr-c(On*!9Pxpm6bRpj>O5Wu z0isST{}>=6$EJ%i$ySi1Dq)c=O=eICAZ*I~CPMVQ6Yrq5a;J_1v97Ujym7HxR`%Ab zPX!yC-YMMab7ApR`12Cpd~SD&c@FnF0(6%3P&`6+c8lk{M+^PC>2g8a8mDR0G1#D| z9%+m4F+s6!hh$cp*rzO7Me;wg#@lxo%ri>>tZxyYutX`y{0}boe7YW6p7Q+iRwGE9 z{`c7PZSbeI-3TR}9d4?&xx9!Aovr*2v+JxI`Pu8lsL;CSu4>23hg;Zsf%jXCaa@Zh=Ba+c)hav-3*&8>-X34N zZQ?Oh=ltkwf;Ad!Cy z{S`qnK?R9X$8M=9<6_`+F?ChlhsC?>QtWp|6J?e6UFA7a)18W+Y%J#O^XU=Lg{jA6pjei4+FJ5a>S*?J*+>9flC z_l?w|<%jnr7@rOf5v0FlHbfAOAT0_ zF%jV|_ML{>J~+flaG?^fatM2U8oGSlUSJa zD44IpzMb3^UpKa zJg6->pbO7`jta1laQ7^Q%OTU&suoB{%kLMI`?+reeJqZ-BVs6EI(&}@&3t1%>c`=T zJkOxvkEYGE5_jew9yfBRe3Mwz7+$Gy_Y#3mZ*bk4-J`V(V;bpMX~dd8tY8(8h+^9x z2F|SVY%eu^u7D?9F)*uU8N)O^Z zPwNz?k-Gr+)tG`ZDU!^^wI1+1I>p?ppYsh|`q!)V(%PUJFfFAGw3U?QPl8ocC@VU! zObW?_(8uzF_C~-~1=>wRFPpK++QvbC+H9aGg_tZMwqS$P2|>+_H4vnb;B$~#R~Nhj z$+zFipw~l(@YtzjAKRIVu%+uQ#<9Pp;eQs9I1|w$^(!vX@@!e2`5$UNk8DkQ9T8p| z5u<<#i}B%6?Ctao|FlFm*Fy<|I7i1e zLAw@kb?W3cf#E1O7V3EbM`j1@^dl+&^VI@xISpGWihrabD!BBd&Q(qItGq<`T&=G} zK#3~noD8NtcjNe5ugIMQEYELnGXjCNajUeO4%9`^#n9oLWv=&Qqq%-j68ualDLxQJUJk6?fJi*3QlFYW|NA#eF<|mO(~X zv;Cmp&Y)j9lNtwb?LpXlvE6Y!v||jrfM4C0MA*S|==HY(qvr2`?X|3wU(02Cd1fkA zXsJdmK{1uNb#S6IMzhy(Z@R#XNM z^CcHSTg~EHD<~$gpH{d(OR_(;rXmP=((+yII|xz4+ja1 z{Lk~RtTJNDRdY*|L542pnzz?-E83Pf-5cM#x2E9RK4ZgITam({aMfH+n$N69kmoN% zsK+h;R10SzW@n0T_7B;Mw(k!d&kJ}In0Rm%*hD<`>Z#R|++UVa6UUOld5w!LRp8`m z?dP?>Zb;o=Dle7_{hQyYGC=5PGWa47SpOryP|=I9)CJn&D>KQfHTJ$zTF`25tFm=# z7*22bg`wQ^0zKx!0n>{^A~E3EVFU@6P+RM8FRk}ANNB%~T?tFYXwnubty=)qwPP!5 zPv@1>`9T;L34ft>!#eQrOMY3ROJZf=&VUb|(GAs>I&jntw4An?uzR$S&42u(uiEd@33V2~B~amsCuQI;%Maav3$tH*8*1JL_5hUcBzc`TXm+xa4D0 z7WU$WRB_%<*25xes&fm}_ryM$$NJ^B0ITgcyplQqS5?8sAi8-HJVL|Eix~{0FKLF$ z#zQW~BSjxPwz7oM3pdRo!N!pmSi-P$q0Xdc2^-torcbP%#x|{m4$sHuYP?i^j3Xyi zGs(*4`mLp1bJ^p82aVlxauc#I&#fZR3BLGBUHpvOJhwFHcLJnzrmZ-(hhJOkUmKAx ziC-lVwsfs5clFsNSkYyZa5aiS&lXybWBJA_AE0>~T8KGF;$TL}uD*-Yw0So>dMfEv zk!@`xapa2&tZxjPu5K=_9fBpxJL-VSN`Npc5)mZJcbS2#t_@F}!3dYgr4t~{=*d7^ z_#!Bu35h0HzB-Vi13!BQvUuQMOQ8+{NZ|Q5Z9Ng0wA?PL|8aVNlP*a9l2yCJVSx&F za*Msg@ij_+D9K+a3`3SkWF;DjjbGByT-!hfu@)diMi4f($u@{^t_yIlD?OPwb5_v%zjx)joAoBZ#b7TQ24v90?8=meKT8$`{ zd;k*K?$<~U4aO{8;xi|-65>g$y;os;C5!L8hElo6(|^m?8}REIq+XHv} zVP!on&NB1gEg1cYw!!>FPw_ZxLMg(06W4|(?3n~D(H8G)d@h1b3kRcM{QLLfjz7W| zYvR+k#BXh}QHWP{*DuX|u{#T{&(T@?npB?Ug^UzURJL{ap}uqXgf) z?2b-#!%bDq;khr}qOpHrMTKMGB)pD$WIyUoOIjHi>gUSJm;JWorU2Rw{Ynlj$pd2w zdOa#*p#?1L86M@J6L9|^nLNm7fI_=g}1}~ zRhLfvzGn2OSUB6y^#Z-tDZ$+=hT%SX7vxHQrDy?j$<*TTeuApy+S};x-Sl0q305M| zL0sPQ8}PUk@K1n(B^XmNS_+TQ#3L-+uZ~9vS*rP|B0|QrzL=F*2C~dfVgn8L*PLet zBDfNO^lK!pMiPc~#ucM;;vNwA(;++0N6)`nDu(C$6N=f=k`zUMDFv++|i zawwGK2fUM+p*Ac6q~4lp4+UpM1dErz~|M^aS~wBQU9;Y+t`LpoBz2q zzWV3+-!Bm*qM>#B%ONmw-)?`wJ#J%s}+=-lmXoK0LhB$1qEJrt&n@x;8 zl$tn=lZr^Ic{)#Io)pHb{4{7CbT|5^TLD)##8PgkBicry{1iuL9t3s?{4yB$nb+6@ zS)Xk-MLc@H;kUl+SsDKIPfB;plm1UY-%@vDXLnHe>YJmdU#-2g-FutwmK=*y=f1u+ zSd4RNB{pYF2gfolh3-l2h+19!|oBoY#K0ERXZTF>J=ayi19LPOo_733gQ2`;x$bS z@?cCb5BJL}qDOE;2`t~kB>@{(k(%b0oV_;e`y!G^u@f8BR=Dh5>YPPYMBj*5N=@vE z(RTlr_$vF@^;wTMmfd4GE{Gk{z*g95m+X?M^wNoenz9Al!qR5bZ79WhQMv}syNUmgZFYo#%`nfOEYS-BS6nYUaA-bz^#|5VCZ5(rXZ1$Jcnq zwrNIRU#@nTU-Dek(`@snsLG|Ob&T3uM)3~b0y)^QXv(Yj2Xq=wGc7G=`X9Vi@7t<`xvo5s1F08U13hqMryxnJ2olUl z`3V4@3rJ>`P9nsz_uqJHFNJwSB_Jh``Kk+7P7Io32{?9XsTd2(N&%jw7c#F5=?gYJ z*ykp-G9qr3Qb?|Sz`cO*U96Li{=#F@GDIeEuJTi{ea$`6vO3Kl6)0=)a2|8!s-hN43idbn-m-{XYhFXINvxf>&mpwMLJBLT5v0f74`*PL}>FGZ&T-N*8rqN$h;F7JrnE8 zMXTA(yOC1jMFOjIOrZ4XHp)n>0}R3Al?-|dmKIFxO=tC`UsBM#j68^R_V!<=X+zv& zW~{S1eV6wOW44gdC^<*6+EHC|(z8v1vG6>BPLPAwt8>Uvh;)(~HB}(om+&0TCEEwz zZ?AE48h%}_hPdiY!}OijJMQsxN;XFr-+eloS~pWq`c(*E%k0&zq>gEhmks{CTI$k zSN`((qU`seR#gjSpTjSDN-bxA)qK0=?wc-mnK~QGY?L)GhOv30A&oV}Od%urylDk+ zRKux$anZW@PkDn0^GQ54KiZShK4~u)V9Rj`2Q{VsV0HD-LwZbW+{3WLtg`t(h{u(& zJF2>>JcgoAI!4(2td!IH+FWbnjzr(VkixV&1zn*!i?xjHPP^@s#hEZKJ}TnlKNU9a zCsIUqe# zm-?+?Zql2p_+8UWC=p|eBY8ww)v1WN9`#Z@&)jHU(&xz9k3#DN`ZPZwh!u%b;V-6~ ziA3Xbgs|OOTeI!RqX^4)m5UroW61dk!-``TaL3QOOL@L5ccZjsFw@#np(~p!$#7((camkfQ;TtQ;$PaeYCK&$W^cLU_)Yf!R_+1~WC|n^yt&P! zorBEG6WrZV-FixOf#O*`_x4?Ekw>t2jNYM@D}dQ-Y$zhN-mdE`n=-CVo8b|EF=g)+ z9DL|@M#I;KOz|6?Pn!C8G`i+IAy@<24gzT&`Oy) zF~=32b1nxsxG6Q8u>7{{M%y&r)4;bV(Oh@n34%No#pG16y@k2|ZEFDM!<*7?XI`{h zde(PlRq?FKRiy{^tBGR z_?GUO=L?!3THnBRV|a{tgf7!N6PwTw4t_W8m^7*Evj@hp^Ty&|rMh@HN>04+`T}n{ z;ib-{=|NbGdG42fDsvS*3Y5Vvd0=3hG~?@z)x61;fq8J7a_xod4zH0q=e*Jp+jO26 zzwzdwXL+^i>8PkVC`u?vp&pyQ0a^wFxM;MVGbXG<7nSuW;Y`kX%3cPxpx<&BHYEgX^8#IkgHD7SS^B7_N@ZAz4iF=0d5 zB4xJO?A(0FMyJKOb6L4gr?0y>ffb>=-rV>pj7@1>ZHQ8Ma8tS<_N=(;iZ94ZOoA*r z3^%Lpl8Bjbhedj^tz-N}uhczKO1$-A`j>&BJm(FPhfi(i*DGA(s}n#6?jIDf!qsOu zHbvLH;=^bIW=lof@>!1G{{zWEPxa;>#}wYCANqa;di=yl3~@-YsFKKOPehlZy`}!K z61`a#+~u8D=6ulVcgt<>xh;7S_}*u+5!@&#Msup_RIR>RKcPbdRuTUFT?noOgn+uOMQ2FKf>%azn#NB>#2cgDW?|C&Mr%^ttXg= zhe@|R7@4rxZg|{0Qi6xh{$`zWp(F6DZ$L{72#;D}ZIb4#5}0G;_>K5)YCX)KcIv4S zH-2&SKsRMl5(<(}m@PTRP}u!R95@Cs9KcNmhIA|ON?eNDVIbwHjq_zD~_iix`nCDzZVEw z`JSb{_vaYH#Fv+iXGya51B6yB)h&1G zy{}`~?~v`h`=84fnNC}IA8ew}it6T<4v}5&gI16ke&t{2310O6;a4d>NB`~E@Ss)Z zyMf!?q2^$3mN4EH73NQ;B!c(Si01W1d`TIKv5wY(=9()lo_9Qf)5`|78|E*6P4;%t z#SU=ffngs(OTS|>_w&A4Eto_jHcHG484HL~VxzfjK?bFrL_U9PkG-}LW}a+oBX%CE z{zcGk`o`Ja3ECLYO7^h>Of&e6?u#E8tD`!$TZeVvY=nM8aAN)j;e{VnFM`GDZpvf7pO=`lX?(*1>GZPwkuAVwf3$_lXl07l8 zo|u2oTCUd8UuPZe;B#A{w7rYT45RfsRfoq8IfLfy&8AEC7_ zu-vSZGr^X-vQ6<;JnI`S9FSr+p4Ggqo|D{zaOHkF>tG@66Va}bdFoARkVD8`3>&^X z?y#quzK076*HmW@AD~iYjw02T5b4RxFf*4LUa&m24SO@!HQd?8BG)yNCR^luaM6_m z5%0Blk|InK7FFyzJD2O4_xMKWE%}l`j7TewjBfLu!YrDSFCt?9cN*iale>#$=)Un$H{e|qga{W z3z~5~jxqQB9scVnE%`_*-`^jwV@jC@z+u`f7`SLY)kjDNW>1-2_;TUgIH{Y-{dXCe zXU`7iEp$4KQEbFSA)Qe!ZCxdb1c@RRXFzZ_LQ#jO`6EwE}sk?vW= z+UTPms%B&jC4wZQ6B)F07fZBel_zDy^gol1`F$xXn$sxRXDqS$h15~V3ibz% zuA*L>5DWF8G9DM}YJ^^6TWonU`q+^;pnPQkvd_xSPJAZhwb#N{{HAzpWKW1b)S1}~ z(s-XEtd?xFe(BSEiu@ze#4Q%4@ZI67^ztntoaC0F9O zio^fa@)1QW;yAm}%7Yi`9){VZDgVa{KtxC8_+rBmg2lhMLS4UEx+Ag8!MuxTr#xd< zN3~Tt1n%S5W=qk1pe`Ad?jyT~%IADXKd`0#>Fuw3xYXJs$7k&icsRPwofhqe!A?(XI)kQ9`^?1Uq|cw z#24Ij(hjAMLj(A!Nt$xK-Ux`GKkYlzmACn-P~GG?Rg02f~eTZg5d z>Xgvvhc*VYnhexjf`;8EuY6+ivq-Ck!C4E9vP0XlzRQk~r+97aY?h=!AQ^+ovEw&s zxnwg#EnQ;C8csattneUO+OfSo*u#_TjtQPDDQs>;jP&2|_9x?<`L$&G2!tg9X(UWK zP#(ua22NExlUise9QNOF^x-!(66LG(bjqK-R9}qi9dn$o)MnHWH{I=!jD4g{df2Uv zYg^0$FkDzRf8#}c2uo^D^_?nP`2}aTt>eEKf4gGuPg<(|zv$uAr(mb4jHqrT9{VXq z=KB3oNHdtyjZGixacjp43aUr7J11}_FhA<#$Q9b?`yDFx4V#i(4UEk`0|u|yq-zJu=odx`C*|gE;ivu z7Lc$!ZY%jmU&>oq?(k5dsLUUUilRjuPT$8riwe2}xuci`-3#dx*aW2_@-VNn7Fz13 zyF6r*BvC}FsBf4dtj&2)?jhJwoFoPTl zlvhS8yu?*+;!ZF%kbD?>9q?OFC=2F2N@~G`8RTIFKid~zF1N~)y-2~#I7JI)z6uJN zRb%$)K-GvjbyDfcJ+X46%WWBo8$*A2+(I3^7`mtG+`o+n*n2uPd)Grv%wTdTT^0xT zI#V%rB81GM*eSdH)D?x<)_V?1=X%Q1j23j%A=DR342ihev5(J{`=X(sEoDVB_`QfR zb}iR6J=nGFsE5+)t|_^C`!Fm3J;uEJ$A+kH&QLuu2otmQYCXM_{%2Q)9Ym)~60jkd z`yUPNEXDBS!?B3X%{(7&<~~lb16{PwsH#o&X}LmXISxgT#h|5;0Z*m7qCxR%_I=Ch zf1FA2=kDGzo&VOEAfCbn1rfw(O@peE%CiVJJQcQK#nH0=LY!w=GnW`7xv(2w+>LEB z+xxJ~IS{OIF+#K{lgg2N=@9sL_i+1v&DW_`@fp>twn2g~_|(CdVsoq&2_v4)x1`AqB`UoTRH_iZ zl==QC_vS7Q*2$BQvLq%>gp?<#Z2vhP-LOp_$t;UtFr(D2p%ev=Iex+O_ZW8I=^oHq zN2)OwdyCZ}8rdz$>7x*)a5`I6rRDmhcbq)=N4!ZrKmAL`T zgku3^bqyK4a$bS#dtciid+qtN>R(|0Zl;tnO-Tt6AMz|>zqQ%Z395!su$QcBpQ?RdDE;@i_hL|^)m2F|dL zg;rSTPg}r}Y8tgpy@zxmd|s{n9OO-sZ3CsszV^G`vJjZYwBVh4u>K*ekP94KINA<#EoNC7yey9C*vz zPvVmQLII1e_~3jx8Lsn<#`-HQ#NYl-)0A(RKD96aI|azNM0uRn%D+v)72WiI_qc!A z0jBqoJ8xxSW3orgh)0fC{;l79rZ6H@k%eMKQ}P9V@&oQQVWu`RX7n8S!cYb#O!YA8 zeCvOIb}rJ$PdJr@G0XnL`7P|;7k^KlQ74Ou!cqL?PO3ql^w9^_#A{9<%_O2yMOX83 z((J9s!B1rmz`8GPd(_~nQ%nb*nH%wug6D`eRDV#RKlnFZP;o3EI2N0n8yx##%fsCVVH6C|)jf)GFV51C*D9J4^H8g)L;D|x$ zRsbDtlLoP?VZe%jvLrOx`nKG?G$7P~%~UE<|1Pw+Z4z(X4h58vCn0b| zK0!VlvgvtPi_2<@CQr%NNm5_g9wu+w`=T{n5%CBsK^9EvlHc6#z2Uj8v*qO;7zyB^ z%;xajb?n$@@eM7xiZV<8$RZ{v7^r5lB6nz}!9kO@v?D7cePXuX%-mL{;?)}EazZv$ zqA`x^@sz+P(Y01H12vAkEq%z${cxNnz^97I3Ll7X2oMdb!JP7On!kehSk`&lnw9Sw z_e$1PlM-Ca9IjA?lWOdOB-}MGhAUos2d|Icc7MsuYWsxk3SFo0C1uQaMFE;UQEt)W za$rE)Qxa*?477>BGm0B@&ynLD?!L~L&*qzVUWD-RL^JDv0&Ga~%@{SEFO%?>GnMa+jWOX3a?ggBylIz#|Evc zq@oqJ6}lFsb9w#7oKjkis@Htg1!opX0ff&|SXHdfBe23DNoK+hkTi&=a>Wt@L@2r> zAW4*0n-~(PQ6SM@KypCvMg^1aT8yV5ttdd`7_bly&y@60^RsgA23DpdlUQ$4N6Z2z zcZ8eZE+yzh@vs|dE}f_)ft0AM_qPMr#x^Kf6~rWnoRWzG*zbJa6!k?!B}6PBZ=4V# z8hC(O&MYoxMI(CIDGsnv_)~ymvlr2t=sRfZB)i#5Ma;7iT0U_to^tjpk)II}npAEp ztsg6}6-@o1u+8mr#gG|Vq@3WSPBZT3)O++D$r0yKZI-3n-HH^cKjS?Ek>m<-J?5PU#yXmkK@Ei2pIjzaG+C1G%D_ZE=88K(4 zYQYAp1%0E}&HbAt`JJJC;_$Vbhu&f-37$OuO0B1F1byLaAd48J5M>d$I%{a;yU+3K zw77SsiO~G2NV+INDw5)G^l2Rir)Gqk+wH(-#%}zRCzJS={KppsL_GN&ZF)0bzB##N zIb@lo?i`NXx4Cw%)n=nKDt2i)xZCmY`1Di80>jVP!UG8#4HjIT;Shd703V`UpGlL` z()vE1#~+{9kA;18Iz1&NzWKb+;wB5H-=OV(X2GB43CwLJ=*2R9orw^4(ICx)v{@M- zv=VTsedg>TByz|0IO|AT9y-l04e%71`YbrFy-4NKq?>_uUhmsKmn;KJ=`5|fcXw1U zm2)~#nYl_^;U4<#zXK`Kv-NzcuG^BRW?)%u2ytSY1}8Ft0D}ivilpjG1Q1qkaKG3h zB?~Y9d;xRZ50=+d23oxz zQeYRg#5BkH)j`KSmlJz>U7W^A(FQ%GM51tcE|Ggrp(O7NlKnFsKC!8e+Ni=fI**f5 zu7DPSn(Hn+{pHZ^Y>R4L#N7AX&ivF#a@?4}78=GbnwFB{w67Rn3cc}pBLBRUrr09?ZwCMpP1*PWv3#3su2*Ns$qnm8SIiYU%y(+;m!SrGw^3cO{;{6e zkqgpBu|BM^#*Anl)ViGI$>Kh>FoA$q(@#Q9?2%HVd-5gQ0SwQRZ`Fk;IC(6$&4Z@& zkgBX(C*FU|m_ISfP=-m)W8L3MXN42a3}apj!D;Gb(y0Ik$~7dYLpYWE)j72(TIjz{ zf?3we-JP5$^^q{u4o@Vh+uHGj1#CUk!^Mz9C{CDj=+Pn`h6Zo&{q!2VgMA=JGTCq% z7Vnyh@~vIPKkj=rhXR`npKy+O1=N8lQ$Z|_%D4Y3?>N~ly79P{k1xapW+stbTX~|3 zw7u%>5>jy%hAB1VcJ2_$HP4T=6rHH6rn+1`ySLnD~q9cN&G*Owz!SW| zbr|O*(5!>Vbw(rk$%8{9_X$D2-o0n@qlM>!O0f*JJi)aW4xF3qEMT`tDJ>+k;FB4Q z(y1Db-*q^JCld%ztTl>alEu(c>2@nP|tTA>Jm*f;(VXb&>z>aPJP`|ltfx0Y2N6uacOR7 zvYpdgo>{y>8hb!%H?b2~*7W50)1qRz-KYka@TZyWoh~U({TDtOQM#d-!3y_>q1Ublq|6JIIerA%cuY+UW_IE4mZbi61H$*(Hp4?Y%=i&S0qTCazmqH#*nfx9|9o^bxigD4lH9Vr=hvQ})sbJ%=n>Xyt& zc`G#_nok-$X42EEVdne9Lw$KDRuUWE*o1_Yum*At^LD%GfjC zGwI0`59ny3Nlo|qV;Lr1G(pwGuqXw}@>%@H#1-rTVm9O;w?T1liVHiYo-kz%I=At{^^k&?Y< zvjJ9rS^lLSCNM@8+*wL2;w^f;WL?!=`)B10Ht3*aIMC-X)U;)zC|$|eU%iawSz6JhsbB@9ZB>#UVsSG}YgjEMVL=)e;&za@YCc)bw=4pi z!lY)Mybi@pYLz}uizcab$2G>;L7=@2K365R67Si?>@9JN^={(Jt9GjuB3wOB8^%94 z*-UoO*GVji$Shb}H2(J)>$PCG_s3qh0A}DW469yR1z=hVTsTY_Q^|K@_Wnw}C;nKu z^Jn;EFqo~QJdWXAHaMQqAEq&eiM0m2;{@{j5yln$5|)Fd-?C~&2^!QkIaC=<}WbQo3 zHARRh`E!c&L?h6Y!S@a159aY51Ng$BYj9foEIcNCH z@QnICQBj@rM)%&f@rRqb%j6BbvnGd-$1{^ z4@e|M)1&_4O<)PPH1Xt*Jd!3pOQJK6rIL&hXDGxO`at#&Kv3Q(?x3Z=*I5*RKS$#c zHF(ZZ=m-c9Sg~qa2YoU;1xYqkOL967ryM3SM~?k#mGIGpL|r`jxUW#ew-$Bu1Fa;BAvzE$zC z2oGY~yxVVb3j$b9c~u*vG3ZV@@ORAM5>j-)LMbzhKYOke&c9&CVMAL(HP*~=d z9iutme&Iq(!n(buiz>|nq!#pqqHFxs>H0z<>tn`l!j7_f#cYEWkUXtdWolw5<+Q^598xFDHhdX+@ zLbofLK^g2@2}fT3UKRNXH`0MWk)4_Rt(?*ggr=takZS*~=ao@kjrp9op)Zo51Nkvv zs9x%|vv9?(Ork_*;Mp^D{gIDP(;SMH59zk|m0eY1Z%vM8wjUHqQI_N0UvWn_=-$w? z_;EA3z5TZtLcyGObUpyB_bb1xCn3DW{|brEn$=%YDq;o>KPtJ6M|6u8IZLb2W*=Q^ z2!JUdob1u9cIbGWH5x`jzP?riv3$xiAU37O42?|Ib`0%|b-N%qRCLBKXC&KbH(aq- z^u->-xJgjyFhYPbOWli`JorOr!d_Kv(hzU3L0?^3ah*Iu^rgF#z{dJv%(mD6wN;WE zFh?#toCk!5wq9@CA>RasJ6G|Y(ZjYvlS)v&6$qaPTz}dp7@%{=Q@b*6!2I)%ta7i_C0 zh1|?mVH>Vl;#uIqzJt#<3k$5HzJ+Bq+1cpWu z5=uRPU1dlbV)r(`w8rQO7wX$7oT zT18if#Zc0ScQ(Z9uM`4BnmHD(^cm&7e`Fgd@5@psoTMV)>ifsrdIv&xdX2#E@bEiI zdg8jivfIx9i(uI=nNfn~>eWGsv7`ALQOi{$2_@@!|9%7vp9knhz7su>ks@`Np3w<= zJ)3$>4-1iYeYH?=5HU)@&{^u@vYVG@*0N zbTXj7*N3+Z0N4B7(32@|*?hBZlrhEommB#YL-|0O=B*%nch!ML4lZD}Wnr)5oH|m& z=+IwR)?r6uvqwbOb#Ov~rBsx&+v0Ea;NI?ZoAxowd39tOApNH1%YFXx4>Btk&V869 z?;pk@Spw&ez5g%H7VWLaOTpT3lilf;2joXP`pwm4W#kH5bu`&$kL?t3`KPGM$*b>7 z&&9SSE#T{-zHjrj&pDrxO)bNEdt1z-G6`24Q~DorQbgC1|g|5s-mTjGna*&+5P*jeF^Lv zZ%27oGER?k`mUKYn1Rp#dbPB4zYb%H_|p3=#F^(Sz2au4rTEqEsZ5JRtT9E{PYd9~ zwXwI11g0W>fCD;pC%1U=4F%pgrN$%DyLXAzNLq#UWaRctEu(w-IP1>6rnR9F?x1_b z%KE*V70ufpWaJDt7M%M#$vi6QSs&wV{))^SkNa>xU)(Y@(w}JHJ3cFiEEC?+m;6GD zPmdflFY;Zrn}=6CiFk|~6Y*V(gw{rso+5P_vam>z!X?u3O1*UvU-a^>X-}BFdRd6L zG5V|snhSp`w0x5b`f+oM)aG60$8L~RLkg|!u^4Xwkjd0Ix z)#d%kdiu*=+pHF62htCPlpjfsxUt{Dy@zL~9Z2Ss7j@}>|8RqHjzc=xHndBc5^$dQ z+ydfiZ(1;1E8t!$I(%qSRBj|4Dj?Ev$<8UKIq`$|J+G4((no*B-{9}<0rYcNE{%Xv%dy$oUSzuOV%@dkt?bTtu z{ky+U(liVOe~wbRbe9QJo=o7(KCI#g?l4X!d@OXlmTWKN)6=E@&R9KWRK(4i;~GaE zH!c4o_;YNN-^|ZDXrFFlFGWzZ@0N(0uy?*Te&%Bkdi*%9s8=*qogINB-i_)tkId@3r z!owy74!mmHm!#Vr+qU)cCUgT@L#fiy48RZ0V$2W^*9ychkg9_V+vU8unClOw&dN7Y z(kE>wj~z*_0L61^_w0|ugm~%`IsLICC_OsX7#q`}9wRDm*ov1wT;*7~*k)}*_#buh ztz%7(9ygUMf7||1wYw?3kw(MvDzD4>>;6X|q9guEA!c_`Hi-={=!(05GVV;Xaq zF9Tw_b8pSkz0=mGH04Z`)7`8$C{P|$CUgv~XSXMr*it7Xx{63088E93E*cZHyADw7 zxusW>wNgDquxFR5je1NqY^xby`U(b!bl+8pIDu@yoWAr25g>*7#;C~lA!1kV4T@KA zTh`;@$y-DVm*N-bL>q>;(34FxsO!62y*XSEEU5AzRsqmI zVJ5JRKx;+utRe2n!?t&P3F@`G{>3rHgRiOTm4m~+Hyq~q3Zp!xF?w(MqG%JZp>8$G zNo?_ZOc%S_vDMDqLL3(B&3UStLSliY^H{X;{6zL32l7C85Ky{BUDt5SJISYNR7 zP}em(slu_fI5ox^)$sAQu9>~s`H?1dyH6gEkDqmvXrY>rSLpRhZ#7d7S<vNvZRA+nYPqoQ?Lr?IwRPHY_q9DnFqXP+zb!}cJ!n8(=(%GxJ!d=IH8(aRR6;S$= zybLE$1l?13$L$MGbC43|Czl|*jn|JgrMLW5eto?`jB!{$73@({qLwOF=Q@MRyLDHG zCTy|>bzwGz2HndiL1OW5$NY?9xg+hX56AQ7i)~)*1J1X-KilCpmLHFB=kNBeH=(T| z`OR*1q3%D1l-te5-YoZ=?c&R8F0Y;7w#~b0?x#Jj&aI6ke<*dk_YLZ)@Oc#{-9v9m zt;6o_v0g{6SvHbbaqhPcjQ$ZqQ;6V>yl41LsBlhF=@gVB<==YmcQ z5?@*qA0p+H!PEQ-Sddn#urz57Fab-50wN?A=@;1z_+gwO%4kVBUBNS9e>KsPWXc>b zvrLcTCwzHmEWzgg^6@x(ch0T4yAysv>!Mz;E>%ToMml&cbt|2{rj?R z<#yJHN~jZJj5~4LanAf}XE!<1)5TK4tvbS4tJ*HE=k|-agXugiVmai=Apv^zT@=eg zbs}nVJuwbBz}cpaF>FT(Pd|cK^*j#pC7HBn+Rb){F?5rc*{*1VGdW!c659Y`*tFDN z%>vy_YugE)MWLcqgwP}zqtQU{_)_WRGR0rkHeKG!Jx$_$8Mn6GQWj|taI3qY*>j8K zN1o}(am*oOkV;ApShL)IjAx!BI%2NV1^=-o18)b*+=|3tXnLBJY2M;E#Dj2b9X_We z+7aO6GgU<5EoS+=`pCHp(gjvEaQP`?tn;)~Pk#d6HWffoHmRXb!7C?v6@U+I?sa&g zI^%f_*upait{1^&A-XfpNz>*pOU{E9<{Pn$QXR1bby^+Ea+OU2db};hp}>fHxlNk% z;yfT*zG)4niWPs>8B-TfiA~-3;NGod$T-}e{C47L8}B7bCKqTR>sE2nVVP6a zT@gim;bsh7EQP=Bg9xEhWj%-Y{#bd46;OMe;HG_7c^Bsy;I=f-Qw>s{t@RAYQJ2P9 z31B8HBWnSH(-@d&@le49#=Vy|-l7m)b|?RwO;`p9n2o6R-Ln#ls`Newwnt>%9exdq zX}U1V#2v{qf-}hg$-#imbyU^Huq;y?#5W<1+upa$O$=HKhE||4#qxEOv!bZQ2ds%E zc+p{luG1T6PES=GyAd`Lc&{(gqG~E`T|Re#TA{(MJQPlUf_4Pg=tzPuf48N*pz5=j z7UAPOV)w^Gt!2lqo3LS7L)#0=HkJw6R@?9;uuXb*y zV2KVBz0m;Q&aoe4gM^g33Qo>AF={Y-)2&;B7SB~>ob}me|E#hkC?jxQ2EKJkTe$TW z4ah7&iyszVcXk-B2o>$|NdTynMdHJb$UV~WH3BR64rs!k-Cd@}UY-z z?>z0XPI}*yZ)tzYrLjHLR#QT3U$(>V^7APa*Wfy~97(a>#!@D@iuX}I{2xW<;g{6@ z_~CO7hbbZ;D$YRBaPMsexNwF!QnSL5sac_!*}R8gp{e1>(L_^IvqD=oFQ}Q>Qd?%- zE}E5%Th^^^-CKTt{Qd*rCBx6>c|T9QG4uU?sOl>dXCW{)CT5U--5e*Th|0|EGqk&` zM^}ZPKPzi&HuCL{BP%K;ZgpJQ5#D$40nwkHA`S7^ka!uVuBg|`;nV^x73cB53da$`PC|*JLjeYAL(t_NaoMMPY=mho zVQ*9vYVxQx*_KC%RUy*b2LZe)7al(##&5eJL7yvw4JQ7=m}zy)OohFzThIX(+4aA1 zWwHAYHE&xRnJPlo5}DjZzYlNHekjB)Pqwq6kI4hP#0Cd$7B?;c%kEt7EjnCw;7PZ3 zrs9FnW}#(@ButF{$0D zw0l15Z?qRBHKr9Nd7zIp73^_u@*zIDlAiVJrT+Zxu~@y4+{AF%bNwZsRIrr_A-_+3 z?B7%zbpT;LY6G9=|1VGJmny*v`%!*c7uB?r_H87h$Iafex#(n3oifNrIru8rnwH_| zmXTH$VVJ`;oI&(;d%hhyeVFdAjX?&u#AqqLh*QCl>Q4Y(m>2px`Ue7BZHf@Rw~Q6T zm6=^q<{%+tney++)4n3%B;DqwUpC>C5N}q#VZO|j6O303Z0>6Flec-ct6f#0q>Kok zR%L41TH8G21kMibns#i@XxJ4do_w*^%6V$rLL6>N^|@;YHT0bJ*40Bo^82@Dsm$#@ zp_HKwTduVPv(>-^jOLYkUz@?rXMey+fXEpc`L>qG=FH0Ofeba?AwB%dag$xG{NYvx zLw!D3C!m~mEULnAs-hE=ab}^BHJB%uHGgwtydg=<=pa$SK?DqNLWXh>>J4iwy13g% z)I_sWRGlESWX8;EZ}@n+)hm#`SO!^hrs`)eakTPptWvW<6o2d^o3V4cJ4*LLUko{A z!GMkRSM^I!Z42Losg3vTiLM{Yk|^_@?M~S` z*VxFhTk6}CuwZNx55?H1oTY?}zu8GzLudARgyDn9L!Wb=l6nxF$oe=Mj9PnpJ#E@1BbET}krF z#EKph!RQ%C0cOOCDIm*B%+b5BAy?c_bk#CU0m?1l;tQ z>~}WEUYI9*-2PXP5IG@O2>WP5O5CBPGo;5^PN`XMzqp(wG#jOA==+pJDjHWcuO@z3 zwne5s^>dC&)fgU+BXX*C(AI6C0jJ()&DONU$6{O?6M0H_Ie1Pyfd>7hTZ zK01{!()t*@pc}z zo>9@QE_A`7e&mlwtIHU2c!wUY_cqD_z}0I5qhGVaIC}F3?&NYJ;x;S2mjUV88azXS z3F9nM-DJJ`LSRf;FKfZ9Vgyn13cCT~0l+5z=6{OQ%r+SAT84V$Mwn2H^w}*^-y6`C zr=h=qn`<7YA#3h#eB5dcKafu93YlG54#W83Vh#olwbtrIQ8pL%W<{~I2Mcw(?PCNB zu`-Kk$U(I(%jlrK&N!tsnA1`?_b3m%>pM7}2YT_nYR|1*;=iiPIC zROp9U1wI2obsW>V+@VJ|{-kDMiWm!@GYlK^jI)|4K|aP_;Xb<_VrI%jlD}})_=MHO({Edr{fhr1~ze~!BImP16xNwh^ie-G_*>GabLL#m7e2$X% zAf5;f5-%yK6*E-AJ2R?ykwIOrHZqpx5<-ibk`;gO@`8j>IF=IHZ2&Ff{JW#nepOy> z-J@k9BRKDR#l*WH$JP+l%!c1yp%67*p(gTAiS98}>TgS*w?c#EoT36Jg&uB1P2R?( z(58rKF>%|4X8Oyw10dajJAE5m(x36hifwtqkr5PipN}D{aF70a?p_ z{vPud_!hm#IeGx*&kL7yOPPLU)F{rsht&UN*wjDgV3FgFk-8sWvM~%A?ZQX;o{cN=;G@1t;nwXKA7Xk)p^&)t#6sRv3Q*8qkBORtqHOrxA ziz(xyo2M`6wJ8^J~gW80OL#d++& zup107Tx$!q7pb1O&dFAm=W$4!^~QeShWQ9mhp*b% z^LCXnebjJy6AZ1YbHMR??$*X}05If7B;ma@pG|w*1_S|hscYV}U~yOU&|e}TcM6`@ z@Sb{NQI0!Ta-Es2B@*A68cnVL=m|!%axT_>ur`UB$%AFe#ZSvw9sS1fLa|JpBtgs^ zx#3AD!74eevp>U8h)ovmsU9sOpMytEVEK$KCE9Bx4BR#?;k(j6@_rTVT;md;L?MgG z0r2lPIqzt(ex|OJR1mT!e9kNJS)-F13SCm&Z;``%vloKdYvI;6^WKBF^7U^BbBvb< z)QhlH%)*q_b)T|=YzWG{{M)mR^y~(nbruqy*sr~2ZQYw!8nHWUVFn5t5uVYaE&Rqa zbSo5Ae}4Q5@N#;wSmueM;X0mK}YXHF;S zGb7L=!_{Y@-g#g~xX$xP``-{~khV|XDZj8~nJ@WOm7(dH&N~4QBOXnvSDAASt;8gH zb3ZH%tiQKzx;KR<#7++ftrFU@?$!Cd$fyUXitZwx`Oc*0xyIFDkq?fK*AHm6wF^yMtOI^$E^$bGlLMd!dgI?eEDpAY zo^J(wwnaek(102*3ElWLG_t+g%**k8&dV`tLDRAGFLz~y+~5%3Zh>q8h?L)*9FMT;`Smn)SwI=1LiI9ef%isCD+R~Q;IVme5IX5PFam}Z^biIo4j9O?E z-p09gP>9!R3HATkq-J0u5v1$G1oh>fYlHZDwU1x0r(b(oP=%9D=1ER$4a{~qq+Yy! zjXaX}WU)Hn*PRP~!M1jN_9(95=I|}^-9J5TA4UoQ=x##(do#}I8B~_`_h-~}k-D0M zs_GEp>y?*xZf_UY96R*grkjH;iEK$-T2*tiIU(_}o&KD*I_mrk`*TO;4v9_2bR?-p z@_3+v&~jvV7?!P{)7~;^*2_SyIK7H+s?V-11~M*+#G%fHIqAkT975L6jnAhqO;vh6 z<7gCXP7d7DnelZVcw%JBlh|oYq*ienP|wclUlZza-f>R!-witE&$01wF!aw2xOFHS z``HNF8kRvKV~W-1Y}(hQVM&8HDnm@t?a1tcTc&MIf5Qe&84g0Pq;Q?%vXP89p(JM407{^xj=?bQpWpzteHgGc ztup4eoMX)@n|~Xn(Ej!B;FHU~;B!6cBnzUcdAAWgg_=xbQbxj$j&Qc@Q{o*;W2^@w z>P%sxFPW$zN1i?WK^ljonb^;ayZ>?c+F&2Bm-BP|&URAZ)LXEG-6KWLCOA4dAvGN= z`4!w$!^^rksVE#5k{`9_33Q@JNg`+3s9#{%XSbKGfe&btTEh*Sl7i3ku~|xZIQMZ7 z5wv?5+MTf^RZ`{DpJHx=v-*pPXm74A=Iwi99h<91s@ojl7?}UodU6`<>8v{S5Bt)p zNd68uc|P%WM1cLpOcM2Yf*m%C{E7wL!Ax=_&d{!?J&GJ-Uk_f!;O={V%8zCUXeLBW zRHJ|ljf8BXi1f(rw2RP<%1X0Hk>Y_S3*T=a|6Dr?LTEIBF^^Oza$l5U zOkBL)KVqWL0|q@@FIkhCD}mh>;MfAS_zM=@5$;OX{s73lWSr@yFg}5dmrMOlOJFpf z7Tw_%$D?#}!WkVgpQdnnWMd} z!%nqi*MDNAPBe)VhqyjgY?`LCf)F*%6VYR~W5lS)aKZMt5zG|`r zW9p{@^+(2$ew^zS!9Y$tJ1#hLdkiI1|4Bv?%6wT!x>OY~t9YvCe0yv-R%3N(1K%Ybpm&Sk|D{Ja>Ivk(8M09Vl6!;P7++Cx4C%=v~#!jp2s# zvdxq&qB`tpjq#A8hH5)G2m<&E};(9}SXrhGX5Tio3Wlfpuy{vE0 zeAI5K=G_-R?LM)Hzzv2~^Ht|U4Nkls<-qi<0<9y4F z&p0>qAMA=WN~j3cq^>(OT64l;!=Q5Dx(!42rI{()JRZ8~g8Lq$z+v*!NSdregbT=0 zh%w;hzP#Fg_wa?f39*0!1y9re*fbuo<&Vt}%n+k!xPmYfhXe=qZ@-$A9|2O3h-cE3 z#?vox*dchn)oTY%LX1i(=OIQ-T)F?7w9MV68FF{NsjTtSUeh%{3oHH01W%Y$HLxk{ zG0o{W8S{4_7>9EV`)3*Gwo3rjpm9pqn~8{yC@n)1zW}(OrvhlW(cbUD;#of}N)Zg= zA9z$#eumGZZH2>;9FFuUr^?nNy=<#n32Zj3U7~-CYp9*u?bDY|I8xR?dKLSqY{Ie*f{jHyDr4u&Uf;$?r@WAX3H2w! z6|>1$-5Ak0N9hu&Y^6Fx)Z7*6^rE9&+x1!~@9PNKZT60S#eV;gDdoPTCaA@OAx7s^ z`I^Z=yoYt9dEbe28{s4BZ=J^F6Zd>dxzqVS&zYK^^RL+d+dJHGCI)Tdc^NEBk{!PH9~%`l#Am1g>l-xbD)NoM;) z&9{wHEXk*qUp^Gkr4Ea@L5`MonSlknk1@xd&>&svuVFD+j1w>*JlSCrS-`=SaKt3G z&LPb>46@=@V@Dr7Ul#Xf2A+qkYxD;(R&*L`!L_uzDN&bnY2zo~y;Nq{| z0`UR7lll<$tPDQl{RfH)90sqr;_S)&bu>9Jd&QNb;c{1GWnMBE0SXyz>impj^(Id` zBu?yLf_n?s^6XTNZ)3`){hV$(?(GGyg5@{~{#Y&d;S$s&Nb26MFn=b3{mRvy*VHoq zSuNTSp2F?$JaE+cpPDPv`>B&NeU?Rc^ER}~MYjzPlDiV{RX6LOB%8*`-alAZxR)2S zaO)qtg#`Ca!-LjtAdP?JG4HrCeg#h~v0?%O1RN9yh>&sI@0UY-^&}n|ZxriA6T)PHU*mtjJ58_!hKo zVp(P|i78(F{p)9sT`lpxnQOET_8V4XD%M=|t<;N+$>D`WXG(n^G?SuAEDV_1r5=AI zR9&DnW43Tg1K2}3E~*LEyX^|!+hXrcLimYK&sfT6KSjijA=ZhG`+8{#HVAdt@z@>v zig%d$%Nn#d47T-Bs_MGy8SCFBzu2MLD)BIw;ZWD%a9@M)qYVm?7uz6N2;Z7_fEKwu zM2Q$>cokVJnR_~)jQA{Rx&P5j=}KyxnzV;Csoak4?mJpyxzdW68mBL;W8$22ij=U| z6O20Xw&xVdylF@EA|tn`yjXI7|6(#+wAOu5Bs+b$JG2;&Kpm#O! zz_W10o=GTQ4X*Q2@6M7w+))YGZ%p&I*xM%F>JTy^J>a(Vl#)y$l2W}@em+;Nk!dgL9n>^hC&w!W$!S&dkgQL z!Bb({)h>`!$8q~K9)j&4g7|EOpcbt?8Dim%{ox4rjj?;u%r;?SU(3C&tW!bF;$w_aIRt0T(J8ZuhkFWRCVxq3T$#VEHV_VvG#okb=Ouzk9#-j$#bpBg5SqtQIxS!Xazz-ikOXYeeO%xki1byu9$)M*lsoKXNU@-D zQK$Bc5+Nue!7|o}K^7HI6&56+h2Wgc?AVf#S0b9*X1#QXBY;X|6xmc*ac}WvT@2tG zWtoh+x(@XANT9J$zS@s8{k(X`X~+VZFi z?o3sYcZP)*vcT&*3D18!3u~jmi=D&oPYhYK&c5_MDnI4N;l;O%js>_8i zk{kKg-#g71=t2d)l8oLzlNtX{=wBhuk*c(BM$QYHQAvMWzi8nC(z6Etm%d`sfJm}hZ&nVpTINY_+M&RNpu zYyRGyyT2uWuppUBhR;VZ7Vs==$#qkb%yt~5Bq6qHG-lD1AMBa&TV{y48*3HHCqa-` z0Te0iTsLdW#=oz$8bieu$EXq$%{-u}8~d8@RGa&*X-VXd{n+IIeiO&1QH9G_Zsw@M z^flryM$TacsMAzfIEM~b7qWGTsgl0&g^Mneb<7kpXJVJzp$TED%zE>87eu%{U=K|J zOr3^T7#4YKt5oLiEO1WqU+POn=jPJ5tO!?y|FtpT)D2t0*`f^W`lhd3?1MTZ)gezc zyx`G1)I6BS)VB4@puV+aw%saM2|&;$9={(NZnCa9KIHZk*krh-X;W~`^5RMWzYoB+ z^dGsFUNtsOaYx9jWt7Rz!;9v&E*gcM)U1T*WH0S%!hGhUEcEoBGRc zK4ca0QS55aSzxqm4kJQNur!WI>e!NLYx5KdoOJ?;opA1fRR|bHC1;>5Tix~ zsz8@^3+HON9|Ia-2K=5F;3cn)=s)d+gX~1h9Td6(;)?fEmZ)2&*WtE=&yz7P+nrn? zIGh1z0PxT!AbA3QcI?1oyPX$6Az7S1etw#ao18>wK`aBJ`F5$AEg8aX39ti(8VJTZt@4@uY42lJW>#(5`sNtCPDMxg=n4vowU|`YY{4za;y^YYV7H-(o0z2?!0wMtp2?J@Z0mdY@B4x zTy$134U%z4m@W)HnB)$^j@j)OL0th@Y{*UWhp{ zN_bJgSb@N|f-MgGSUgSfH}_v*H9CLE3n|U*C|FhDWF}kw4b|YK^1c*io*b-93o#G; zV!g%#WecR-u!n~pTB@ipAAw)LlVzy?-?F^mJY`K-@aj=G=!S1Ru)6k!u5^dpF++DF zb6j47c`c|N4Qmx{_?>RzRX-QH4kb7>yBaVWoHX$c&H3vdTpGS{BwB?|vAH&_=k#@r zPo~ynejR6d;)S=ty90L$OVm+j zf780?Z@9AWx9+szixj3a^K0UpEKmj$p1umuMs0<@1jeVL5`{*;EQ2DzxBT3J?pFo8LiWabalVsMukfV3VVQeZ9UDdOH5Cqs4t88dSjs;0ylHYC07UE zhPs`%9>$K9*0sFUDR#4tqb(En-%LAye53L2a}Vr;Mo+ETi}DZN7!gEyE{0E`iF`M^ zbOe6ij*}rwhe0S!fLWu2+BZ4GDsW2?7D12?G6IY9t!N@3rp;zLa%X0I6I3_QQB0D-^rv1 z^vXL_xdgo0jLN5EMkW?ek;~QRPh6(07-d>EJ$n@7EZ?sZCX0VsfpV66~5n4H&J!dmq>u5aB%v*~UF9ileqY z*dlNFZI)kI!u82KgL8Mt7Dc%>bFuq`$OZ=eG}m3msuTQyJD~6kD~Q6k@pPNTi5ln3 z$$OEis09eX3k8KMQLSGxKk$_2SP>`Rc0C+___mCCpoJ5Ik^Y%m z$A@D@fYGZty)^=9j~s|i#y>!;e;47)M{nSlJ;i@Ey5$M=t%Q6UAv+;7hBv$y7vSQ{ zYKf1bJVGWV6Ls4X$Z>H(G)uJdn^a2WKmdCA z&Jz$+7>;|0axsUQqxXC{=x6}`k4edWS8=5j8v2fL*jyBTfqEJJ#pv=1LNF993OC(m z)tkIR?fs`|HF9jsv9XqVbZb=LT;wJ3g~Jll?rl!PDDb+3zJze$#Pcpeh_h8mL=G1+ zodY5Z&PFen1bI1im%EFm$Swy4xCy8)UTRht-A|%xXFB;7po_G)#^d1c^VvRgv^I_7 zKMyD!v`-0c=)f`BpKYiEgs*Gk&aYW1AWMK7+Y6nZA@#^*CyOCF#IQi|)3 z2)I@d=V9ol*ycgYx>AVxAKN0hH2?Sipd%L?{->eJK82j@y3Hh0)1aA;Y3rj3fp8qz zmSe%_Nta@5BisElh81@Y`D|?G_rwkC*0<%4;F>{eo&+YbaqcKS#ZA~C69vs_xggb8 zQe^RIYCuk7UB~rsKoFwhw*{~TLIedb;INJOQZ%lb#zsmA)3{0lc9?Q*PJF$>fM$)b zZH6ky3!@C#ZBq$dF=UU)`Rw(36Nlt<=7#7e6v+UJK(Z=P%n4y#F{I^8AQ z4SBOzs;{qa>?U$Ug_cnk$=>sOP{aCHsT;L@luQgBOT+}>C=yu}+2$Ht;E{O)XHgf` zN9y$$rWjv8ET&&It=ni`kqm{lfd) zJ%g~K^ ztzv-g(~;}&(fTZ3s_#M9ElBgX0U)852g;~LB}@!GY=VpFq$<@?tjDZCN(}fz4I20e zAA=CwsFo1I<~Yj5_9A<+X_!`f^}0pwu}WX_=7CE4b|o~lWyQqoynmaulEKnj+yOub z9prCN7%RWGAl5>qop{U#bkVCw-Q3KeZ!<&OR^QvXaC6{p(k1HR*%Ak|V0KpSCiq?) z*!IY*N5&Z8@Q&G3A$N)0C)zb{j~))_$1luM|JCBljLnyAHIX++*~bo_-HoB=Gi8>^ z2gg$kd^RCh7W_S;w};%C+-UvJ#33h)d9g5l&r^;lL(i@lc~O4zQ^$61yCfY-#vK7=WSS5^F3gV8OP(M?ZdSLSf%hO}8(%Tx1r&XhmfomE2! zV6?@%+UIplxyP;ePuEiNNmip@dkZf6{7l{sVoGea^T=xagBazKiuRmiTj_<4R=odB z?&5NPFd*={%@44{QHwMg_+{D_R1ACal@f=e}mCamX`Bx zK3E$z=c0dhBTV6l6CSml&wJu12|hD}nup0qExsMv;lM=`Jn1C08nY}pQx}8`FXcrU zkkM>e0%z3tr2R_=&e<~P5l@mCfxuWYT__Xm4xzUY!`Z=$s*lz6`K9BN7+fB`MfRfu zkNr4OyLzn+s48Wv33Etl zKB2-zSo+`&E}fMaC1j4@5l{I{N``^kG4u_&sbPLw{*K- zPZpGR0azK}&_dy#urDq0z}7dezSkj9~lr1Go|;+cr?Xm0A<#CrD3U zQ9~imc^+exCM2xa9UzJxriMq$-77_dmQMwoaNTL-&QB!R;bv6SbZuY_B~j`#H;;5P zv>=nqYA28G&q-&jx}Mo})jqVD$mo+sHB}2v^o5ioXVosH7h|zr9H{>b2Q4AE9aI3>#z?Gh!}!TV zTw`4dF{&|_eC~V+?4Ohg^4oQuK#n0Oh-tz;Pr-QBfiRylS!6$FY1Q4?es^G))F?z7 z+qD{49vaxN5s=b}MV_b}q}*h5|F%1OQN}gFM#F?rGHx(1n82gp&;D*|%W@Bx5Z@gX zmHJ-s+Uj|U|CIy4@s46rVe*2|4WrU3cuHnhcqFv&OwT-yPIP7F9DNTb0bjeryZF-z z{l#mJ`g^r3KQED0uWAjGM>GfY#XZtX6&x-}p{8+#5H{aaQkPQDVvg&M>h_!3+;fXz zrWI_+Qr4*|_^z*SRxS%DHf)S}Y**9PvE}=O^wvt)+6;ZvLEp=7&Krlu@e!^rjeGu4 z5@F-?W^oue%UR>j@SQN0biXmUQ+}5_s7PQ$2mFgwwcKw6E!wxaGPqh~E7FY8EX}aMvrnuFk7=r|E7;hWC0*H43zV zeSGgQ!4ookk6?pzv!rEe)SZuvQ`?&TJFZkokZczK?hMC=Gt1T z(cZ-r=!vP=wDWvH=DGYg_46I}z9Ol=O8zZH^4lg~sHyqu6KX)ZkERs-{wjh{pi?MC4L%1dc^x?6|Cp*g6%D!FUH5fi_D_cHKY zIudoT{54Ryfk3PqtFMb_+FX5@*}2F}Vfl5o91g^RAoz(cHs#kDG=dcc?FZ%>$Q*HO znV1-Hc<(Hk-f<+hpuu<;xY==}@>BT|rV0OkhfJtHhp!_yo{i;t8Fx8L!*dhYoWw`Sz!hw#{sU3{(tJqpMq!q$pqGH9 zg}^xtP*_$W8vzUyV$<&wb2g(~E*>1+Th=J8Ii@i0BR}l|Z*_E)7N8v2G`nQTa<)z) zU2Mvzn;)3~C{r#+OAa3euC(@X--`OoJHUgPH*^Rxu`y`G(@rhIHvs-5k>eOy;zWk- z>Rn|3S49yODI@yl31XY^^JxWFE2kXySP=6dP`KAr)C3yxt7xOWrsQjWo363TtzXN} z9MzZ}!TW8LRQXA{ZDWLk6BJXN#7!izQ#ao>G)(mHvSajKD@69glKMP-<4FlcV6LB2 zYp=AAyhsByptBHKk?wr5*GT7y7#$EV{fSWdVyjv4aJs}ig1AV-qzX>;jo1E96P7=< zZyjFzz7b@Y?K4r4;Y;B8tz=jsruxaJ32O6y_4h>8o1}*y{JWE=M)>9PtSv?0yRDX@ zXU5eE;L2X*Z=Hsx&5a)A$wGyw=h-|?ZREqoH}R4K;Jdd9TaA<+0~z0q z&A$7_*o$>y$~Tni$8iQvpHbQh4ljm18I3NqWRhLUC3g*xq!C+fNA<32mKI(pLbc}E z6Eh`bJ+V|{?>KMYk11f93K2+%EPW5YNN7vcQyA;uyeDEiA;|Fatan#$8e42OOD{SA zzS_35`@1nLM_T*5r%xa^J&D&F4W9Ob4LU)74vsIb*;-JoPp3(nOmN=^zl_T$Ji~wZ zL?4dgm&Ds*R7~uVEGRp%rBi&hL+Y!N_zS$vXQ|rxlIqEv!+!;wMD)Tpqo9H@WcFh9 zXVH=G{0@8nb_Xvzyxes08$&9+jpha#;-Ce?k~@2K=XHiY8u0ZGcZWX7$&jPIy3g=Y zSp%~d=EPtdgPfzprpb85F#a`XfR+O_Hr+QBf@XsF*>!sv{Hht8r@O35`=Dv_TjMq{ z=~z!0j1qsXm3y1|+xA|x9F{ou-8UuE2LkDjl5wS5_v3pmF1@T6?m2o@_s@LAB*9$t@f9A=nk0TVSCE`)tbr1>=b4wP%_XJ8xH6tK0y zq(e-V><>lkee&RjOq5TDn2ij+8UqIMfxj+Z-;=T2!^?!EG)dQS;l#TtG9C$T?Ra6F zXhHq2z)}JB6+AoSEP@K(xi3f<`YI83c2|=$lyDj)T&fj=MiGWGO^clO&)c%=9Xb zeNper90{L3Ur|cwH|6T`*?;$IHHu#%b?zg-9%I`x2K-Or?F-BHJeHi1h51(kq=G6OpGJ&q! zmDEPD-!pb3uli1f(Id>zy+spxyDI(da1Qf8S8$obHFxXq6VII8gMJ(cyA+e;bD)$u z&#N^~)hj-{sLyP~g^M%ES&&$0@Vx}J;zzgdXuvL8o&}vYbb?rtaL|QmA|2Lymt#Kh z)A(bgLw@4E`Z~e}ylW@Y1xxR=bu?J^ky#lsUuwO)2OLpWV9LPrS08+qgL}W%lD7}v zjPF3xYju&YgHmbbw#4l9dThJIO`uV`WO04k;^0449qX*^%)0(NQG69I*2@hFze_{J zx(9P{!3XM=2%@=Ml7HXl)Hd1iEE(QC^Y;>yf)!AHg>kmwq5d|qJf(5SPhn4vd-r`s z>9HoqFZ-xdk9~4r6HE=0)ki^)2Du$8-cL8YZR;`|Ip>Vw?(5ezG#Y#7e=Bn*yNRtz z#_z=2+i4~HwPLDT{LuEbdF`!6z5SYpFUo{9<&1}mBl_66b}r_N&vuwqx}jLOgoc9h z6$ekPc!#5j@EfL91s)b3ne}jXynnP~6g&0gWW}NIOrPt?#N9tmbN@SPr*88+2pSbN z9Fq}uIg`CIZgA|Y|7ZWaO>{@1F|Ioi<|u+3XWiw(q19(n?=12Zz7s1Yi(RBmFm2I) zaR_dhuqX4-(rVCDJwzBy6p5f4M^$?Ze77WcX=L1$|b8**ZxV1_;2gs z_R;5HK3Ju4fb$A!3UlO|7LM_kcMa=AdaxnSLM2Pr938nP=)T54yt5!o71}e5P6TWD` zUI(LqK9E&hZ%ME1+k2!F?)dddar~*$HyH{a==sGxc0;}|&pbD-2Xq7!Joh@Gb7OPa zlROPzn=Afxv3jtp(nN4jHyn7=$@>q+!=vRyBws*zWvZDXc34s8((a)zPRSidlp{em zYwxV6bqUZ3H%H8mNs>LSv-gggbwCzpNRJ9GES)DhV2bapgc>@v9+QR#nzlCG|I6$G z@(FKKey|65b@JMq&keu*KpJ13n3Ei(D zk6>q~TqD-jtuk$7<06d9(&^E|vd~f2gCDATrpR6p+ffNwsw=wgAHe_sC@RA`+G#rK z&-DX)AzIhu^>cPzvz^!fCx37DgTfDN98EY^X!Gi%!g3MiFdM(O;_79U!mXN7l;bTo zBXx`{igZ*ZUBNw0X(gU*vXVA-Onfhz*Tu%{hsEF32A>;0IMyU)Z$7=>e9)YHIL|3` zew2V!)?S$nq(4|6QtDRv;`xg0)%J5UH)fansu<&&CZ9e zOLsUqL1KI--$n9^V;ZjSzVKTE(J;T#`1_INMsh+2VxS2>PZ9Gkiy_F3pX`4#tGM>1GK6VFgx&Z_GtgOAg`|GUWYnu}p@^OVOCd%}huqy^W$a@tfL z1K^|DQBMz@9@BjRnQzHlKC*q@ganM6HPWvlVq=k&K^H3NrMGj6e?0o9rSKZ_hvM@n z@H(aPL!X{(ca`U@;epwhs~v{aSuh#C{l78L-@xJi#@_m%iUGOa8*lZA&9C+jClr6N zf2StCI7Pvh;rCvhSSmIs4k1^+`tF{dl>h#FdF{`M703fMmeLro2U9^7fNq zz~Xka;9kPNehmMMw&c4f5z`l6^!5}gF8pOc^7nlE^yibw7eLq zH1nQNl`RX7&@)f+Mjn!_hj#axdytEoLn06QuNP)%Ra}Xb;+N5J*rQE`CE55Xw2a0# z#Cn$SN~3i+$tGa^48OW%CKPAR3@gEHLt!$^;{|#6&)^`I77(+f6_CJD2IgVvU5n~? z(4M8-iitTjSKMN-sN_32gNrfot$Q$+daM*fXC^n`s3Cm3m2L5$Dz1%Sz)ZpqztFN8`;8sXh1MaV1Ve|`GXSigilc-O7PXRPg#RZ;!A|kK zLY+fP<}?QzS~8euG%Qe~T6c0Z8>liIQ=hF6mYT0WYkNJ(tPiW&EMGNHzyvgUiTu#WhAg zSAdiMcI7=wA*=*if#aR^6rv`Sr5VSYs` zS-u`fmC}-a(j}-X0cs6Q4MLuv$j{zz;@C<7L{K?vkqUY5Yrc7ry7~o`ljgp9=W-{_ zB#9%^a?x%tb8G8uskW~9?e6B*zmp}1^@fX;i~;?+4c;lqrpbfvFrxu$Q5GVOaZ1)i z2ExUJ`l~>!`=Bt#fR*zeEV31G#H&5ui_-KrsF>l^>+?e&u2Jn&JV|B>d?2#3!FxM3 zI~keIIVKh+OxP%Xf>81CVj7GSDD3{|V`@1V{j5RpB}qSEj18RKYH5&oLx3_W8lGyj zsPg-av+Tje>p3fOPCYJf2!z;G^KU2BGo--Tg@fdkxHyLXwh=@|562bA48up&5YG6) zZe)F0s+vb;1*v^MlTw6Sya7wC!P?6G;-J_Sz@eyy$x$owy=R-@2t7B2Vrk|b0o34h z=w^S8O~TcbWE1yYk1+1D0yKa6&r(XVcgabX^NTT}ZZXZcjcmw(K>g%#kB98GxIbF} zLIuyvfMvit7gvdvW2@mJ1^QAXdo2+;M#oLhYPY`@fvz zUeua6ts0XrM_;xIe)SarOXLt$t>hI2OG<$~;q(b? z(0rTqEcKtitgZdTJh6C99?rF-5@D_>Kwy&S^yfv4 zd{b#moRjE0C2jYf&=-ilNQ*fyXvPGNYN%bWTxQtm_~;1;-=75CRv^5#h?HD<;RS7D zHaj@Nsx{|~;-81TE0PZx7(L+crzk?5Y?2>c@dHo+el3NCLdptgb2U+bz$Z*WTq7rD z=$EaVxu+N(sq@hNp(Z4~vD&E!?ySt0Rjaq^ue)n}>+BmKm1}P(iX7Cm?O2y$l=es# zR*Rr!-ZJm3I}%6k?;zb?in5UFH57{ue^21z_uq$Y=;p>GW`4#AH(u{y01u0eR$|3GNfwB=X>K0yYpAWxvIHJQ?Bae21Jbcth z@@?v=SKro`88!`XG}LW(O8GrKUTuotL>QLBijV$esqt8 z#>=?|w=p+oCe(!Qrt73;DF@NJ*yw@x@#_aI#4&}dEtpC=%RfDUA-tu!Ma^| z9f=T$P)082Iva1cfjiyJes(3DI+zs?Tb86n?DIS+I^~0D=Q%a?vQVaeU2#QH4jgTR z;$LICI(J*0oS7N~GqEt+1nj+h2A)0XO}`f?oFkp6`(!Cih)D@JC}QocL5M;|i6YpEd*p z8u3gOfP{ut|$tyH0qQZ+hiwx8c(*`mu7r>ez-8vu0BFm@u{dbP5&AaZKZ4$0Pr+T%B!X zk~N6dPX@rM?+z=+t|v5(bBI3^L*0{vPgvT=U5mY!@>jhIU*r`7e@;ntT6#jjWXD0| zIfQ(rd;9w2kdiZ){6C7KF4WA&;6ywmx21%kyVQ%*|Bic4A5~)Qqf7}|WY`cF2C?|> z>({Ys_ZGZEeQnX$ZB&MRO3@H>7O~B(dPQMROKZa=3rNKqXvKT+X`NuQ{gU_3_J|sp zy%rPLna{P~{3L~i6DdY^r;qGc!nv7GG)6wT(!5dx%SG^EeoArIP4FCT#Y%kYpW=6Y zAs+0qwSrfh+X}Cb=O^Jn(s06rLxT_Ota_C2+R*d$6^uhGvr?Az$9cm$y(z2?*MHiL zP>&Gh*IUlO-$k|L9TY6aA&GABigPh+?jq@*C&T8?-Hclg>xysu?mE^^iD4rLKG|TG z{VLIwbg16kuVMb*Ir*ob;qU9jrgAa41mD%Pf}Eux<#T=rIOt>seikEI#M#4wf$u|8$__8(=vRP4bRf0 z%TaK%=LQW7`*6^tV@=3=(-~*@;N!LjrX$mTy1uh0_Xr=+0wk4pw9^^@v=#|Hu zMlDwWR1!NSdH(NN;Kc^BG|CNx@oKuirTp1C{dRpU0vvPsU`W?W6HgqnCwKFU{C#>mGpJ@?q$K=YjLiv--qW`TqtOed8v;rjaUo~ zYy@aP3t{+GgWgauoHnD!aA66T(BCB^9SbWdOi`iIlDI=NL65-mD-UxUZKs0b4o=v} zLV0WPj`CE;l4oPEGv1$Cv+2+NNf^jLhAeoUc5=pe`3e znualMhO!MR{ZRw=Kvqe-p% za8r#_V*7GWv@u67>rJEnHv9Q4NuHX^uf@o9?W>0XF)>KzhiC-4_Sz3c_$qv|;!}5q z{4E6bZXTo*xqOBkuAK&PG;P3W9EuAfRiIU}0mE~Q)yi-9Nuz5v*!>{X?IN;YCgT*E zJ?>BtQ$6ZNMD>S#^cyM*sz@ZC_bA}RuW~#Vih_8WGBS2F+~m*-pE{EatF>M`7=_Yd=Xe#zvM^41b5PWl_s{*)mr0dIiA&}}w+ zww;N`&7i`$NE$t+`j)6zu#lB<=f&k8m(uE+LFfve=?m&>q5c7u#>eqRjoSvVaV+UUbiqwbrbl%ErSAHcV&M?Y=PBLK`=Wv zQIIH=X~%WD)T_zTP5#kwa%;h|irEI>IzXfbfs#KM=k328Yzu1{{#9!@_vU=mB3osI zoVtifi8vrHNctipf4~swM)aSB#@Ltx#>%m;(!RL~a{~jM^cq*a#!;a86o;j)Zeugv zz>|SX6CsWQx0@?9T&=BJETO&m(PGu)fC59nz)t(-(ESGvSxc^dJQLbs)z~~7BicY3 ztQ*cA>ph&pdoEX=ZP2M#?&UKf3kZpygj|KCo)b~wGv>f`Ll$F(Y`uI6X#evc|UmXEXSLbY)hH)s3wTCl*S?Um9 zjYd?V!`}xWCLE%jq8>SIJGzX+7Do>`cm zT&D_eLxLNl09p^B@!lz3ja>&3u75S}1Fkfltk}JRz+wC&DfdvFa^q_7^IAsh*4+YO z#pI5em>0*lA2zKaw8_V)h9LgJ_qaY zDoPpkWj@qC>;H|z))sz4;9nA6R5fj+Etzg^ zM8p)Xs26+{82ZzQ&EgXlSGpq5(greZQsnd)7UtQMqd=lLz?nQ8nvV&08>a5VsbuoG^ywsg=9@H6Tc>`}>&z#Xf66SpM)xK_BK*IR0`;lo zJl`E{*NcI))TbDIc--PJI&;g77o+6fl&>G4NbtG9m3xOy+Ne$1JMWQhe+@iViLcua zXm*JmPy@!4AU5?NY-OYe*sw+G@8waTAF-_38(}Ri(V@8j^5;k~7#Y(NJ;9Pc)`K6w z;1u78;Vw2@1w_6kKAozB)u`}AE?d4$A^2BZoelq3QUt@?&qs`*rX!^%27+%cd;a?B zyS>JC)nlg!f3mVCfq|k4g69*zPZm}@y6nHUh*pXt9>37qbaR_y>RHnWEVxhBia}8* zfvd4~^-w&l{A=rAsikus`4Jqpo?X4|C;s@1QNDi?{ZbFRy2!e;1E1y_@ZBFd&v%yB z^+7hR);CzM$*U7-g(bK1k=a>EePcm?DCdugLGrN?pPw5pPG3Gmw+y4kUE!gA{pk0_ z#d7hb@Kk=%4o=- z5KB6o{c37zpx$yU+oh=B6XfyGiVS^PUjgovA)JZ6Mdr(V8J?NT5Cwi_>&njSDdEQb zKxpyKGvf1IU+5@Kj6l{Sh%`tf`sUa4MFsADso_JAQj{u|+q+gtsn+wlCZEDxbztp# z77CBI6UwXu%B!qzMBQG?v`ATSyn8@QTQ)ZyoO~Ld7qv}p1RAY~%68_60#V}}x|3Bz z7X=p4yg18@OLxU2=PgAmm^*3cy|n1FjJa0-vf+BKJN2^#x5U3G``fWQX~S~j&X>x7 z@+Kj$8AI%w2W9qQ)c?9$d1F$_23cTUnKf7hY0Tpo3nSy^#J++{E=i8s>b0&jngRmp7^@@Mzm|dmH!d<0X-}+HqV2JBa3@DGc?LS~0 z-`)dYR`O573{n{2A|XFg*dVZY5E|=dFr(aUyyaC|IIVqmz{Lygpa`M5J|wb@70=zJ zeq{vje&wTLh%ecgA5lnU*sMt6Aeh|{S(#fJWh37x+EG=>CQAm1E%*^(mm_PhWV}@S z2Vp&vv53dYPv%J^!^t1LE#E*#Q9ZuQF1z={mxpz%x#5D^WG6@lxL!wEuRifj=C_ej zRhn9Esx@25=Czc%u75E^A1COJ&UKL7OsnmL-0xsJpC5b5N!(yVnrqi{%`}2u$`MKJ zbL-lUqtmjB`fM^t9%1%Ex<}~`;upyXEA?5dq@#Ueq|DNfGwXhS*L#m}tUwBsS`SUc z^6}R6D6)`#c} zlNo_$dFQM+)C$Hgcb?>x{T+shMA-jZ#uYnFF8IrSFH%Mwhuha~Muof!-+{94Cc(aP v?$N=BzBS%F;?L~`3n;p*-6e(SscJ>IWU7+SbTitle = "JPEG Imaging Sample"; - System::Windows::Controls::ScrollViewer^ mySV = gcnew System::Windows::Controls::ScrollViewer(); - - // - int width = 128; - int height = width; - int stride = width / 8; - array^ pixels = gcnew array(height * stride); - - // Define the image palette - BitmapPalette^ myPalette = BitmapPalettes::Halftone256; - - // Creates a new empty image with the pre-defined palette. - // - BitmapSource^ image = BitmapSource::Create( - width, height, - 96, 96, - PixelFormats::Indexed1, - myPalette, - pixels, - stride); - // - // - - System::IO::FileStream^ stream = gcnew System::IO::FileStream("new.jpg", FileMode::Create); - JpegBitmapEncoder^ encoder = gcnew JpegBitmapEncoder(); - TextBlock^ myTextBlock = gcnew System::Windows::Controls::TextBlock(); - myTextBlock->Text = "Codec Author is: " + encoder->CodecInfo->Author->ToString(); - encoder->FlipHorizontal = true; - encoder->FlipVertical = false; - encoder->QualityLevel = 30; - encoder->Rotation = Rotation::Rotate90; - encoder->Frames->Add(BitmapFrame::Create(image)); - encoder->Save(stream); - // - // - - // - // Open a Stream and decode a JPEG image - Stream^ imageStreamSource = gcnew FileStream("tulipfarm.jpg", FileMode::Open, FileAccess::Read, FileShare::Read); - JpegBitmapDecoder^ decoder = gcnew JpegBitmapDecoder(imageStreamSource, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default); - BitmapSource^ bitmapSource = decoder->Frames[0]; - - // Draw the Image - Image^ myImage = gcnew Image(); - myImage->Source = bitmapSource; - myImage->Stretch = Stretch::None; - myImage->Margin = System::Windows::Thickness(20); - // - - // - // Open a Uri and decode a JPEG image - System::Uri^ myUri = gcnew System::Uri("tulipfarm.jpg", UriKind::RelativeOrAbsolute); - JpegBitmapDecoder^ decoder2 = gcnew JpegBitmapDecoder(myUri, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default); - BitmapSource^ bitmapSource2 = decoder2->Frames[0]; - - // Draw the Image - Image^ myImage2 = gcnew Image(); - myImage2->Source = bitmapSource2; - myImage2->Stretch = Stretch::None; - myImage2->Margin = System::Windows::Thickness(20); - // - - // Define a StackPanel to host the decoded JPEG images - StackPanel^ myStackPanel = gcnew StackPanel(); - myStackPanel->Orientation = Orientation::Vertical; - myStackPanel->VerticalAlignment = VerticalAlignment::Stretch; - myStackPanel->HorizontalAlignment = HorizontalAlignment::Stretch; - - // Add the Image and TextBlock to the parent Grid. - myStackPanel->Children->Add(myImage); - myStackPanel->Children->Add(myImage2); - myStackPanel->Children->Add(myTextBlock); - - // Add the StackPanel as the content of the parent window. - mySV->Content = myStackPanel; - mainWindow->Content = mySV; - mainWindow->Show(); - }; - }; - - private ref class EntryClass { - - public: - [System::STAThreadAttribute()] - static void Main () - { - SDKSample::app^ app = gcnew SDKSample::app(); - app->Run(); - } - ; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -int main(array ^args) -{ - return SDKSample::EntryClass::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/JpegBitmapDecoderEncoder/CPP/jpegencoderdecoder.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/JpegBitmapDecoderEncoder/CPP/jpegencoderdecoder.vcxproj deleted file mode 100644 index f5748c9785958..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/JpegBitmapDecoderEncoder/CPP/jpegencoderdecoder.vcxproj +++ /dev/null @@ -1,129 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {6EFA9BEA-6237-4CCC-BFD8-87EB6499E919} - SDKSample - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21125.1 - .\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/JpegBitmapDecoderEncoder/CPP/tulipfarm.jpg b/samples/snippets/cpp/VS_Snippets_Wpf/JpegBitmapDecoderEncoder/CPP/tulipfarm.jpg deleted file mode 100644 index 2ce60cad09155366d0c4ef18b9e01dedd61a1cb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110238 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 VpZH=N=;(b8{{Z - mainWindow = gcnew Window(); - - // - myBorder = gcnew Border(); - myBorder->Background = Brushes::LightBlue; - myBorder->BorderBrush = Brushes::Black; - myBorder->BorderThickness = Thickness(2); - myBorder->CornerRadius = CornerRadius(45); - myBorder->Padding = Thickness(25); - // - - // Define the Grid. - myGrid = gcnew Grid(); - myGrid->Background = Brushes::White; - myGrid->ShowGridLines = true; - - // Define the Columns. - ColumnDefinition^ myColDef1 = gcnew ColumnDefinition(); - myColDef1->Width = GridLength(1, GridUnitType::Auto); - ColumnDefinition^ myColDef2 = gcnew ColumnDefinition(); - myColDef2->Width = GridLength(1, GridUnitType::Star); - ColumnDefinition^ myColDef3 = gcnew ColumnDefinition(); - myColDef3->Width = GridLength(1, GridUnitType::Auto); - - // Add the ColumnDefinitions to the Grid. - myGrid->ColumnDefinitions->Add(myColDef1); - myGrid->ColumnDefinitions->Add(myColDef2); - myGrid->ColumnDefinitions->Add(myColDef3); - - // Add the first child StackPanel. - StackPanel^ myStackPanel = gcnew StackPanel(); - myStackPanel->HorizontalAlignment = HorizontalAlignment::Left; - myStackPanel->VerticalAlignment = VerticalAlignment::Top; - Grid::SetColumn(myStackPanel, 0); - Grid::SetRow(myStackPanel, 0); - TextBlock^ myTextBlock1 = gcnew TextBlock(); - myTextBlock1->FontSize = 18; - myTextBlock1->HorizontalAlignment = HorizontalAlignment::Center; - myTextBlock1->Margin = Thickness(0, 0, 0, 15); - myTextBlock1->Text = "StackPanel 1"; - // - Button^ myButton1 = gcnew Button(); - myButton1->Margin = Thickness(0, 10, 0, 10); - myButton1->Content = "Button 1"; - Button^ myButton2 = gcnew Button(); - myButton2->Margin = Thickness(0, 10, 0, 10); - myButton2->Content = "Button 2"; - Button^ myButton3 = gcnew Button(); - myButton3->Margin = Thickness(0, 10, 0, 10); - // - TextBlock^ myTextBlock2 = gcnew TextBlock(); - myTextBlock2->Text = "ColumnDefinition.Width = \"Auto\""; - TextBlock^ myTextBlock3 = gcnew TextBlock(); - myTextBlock3->Text = "StackPanel.HorizontalAlignment = \"Left\""; - TextBlock^ myTextBlock4 = gcnew TextBlock(); - myTextBlock4->Text = "StackPanel.VerticalAlignment = \"Top\""; - TextBlock^ myTextBlock5 = gcnew TextBlock(); - myTextBlock5->Text = "StackPanel.Orientation = \"Vertical\""; - TextBlock^ myTextBlock6 = gcnew TextBlock(); - myTextBlock6->Text = "Button.Margin = \"1,10,0,10\""; - myStackPanel->Children->Add(myTextBlock1); - myStackPanel->Children->Add(myButton1); - myStackPanel->Children->Add(myButton2); - myStackPanel->Children->Add(myButton3); - myStackPanel->Children->Add(myTextBlock2); - myStackPanel->Children->Add(myTextBlock3); - myStackPanel->Children->Add(myTextBlock4); - myStackPanel->Children->Add(myTextBlock5); - myStackPanel->Children->Add(myTextBlock6); - - // Add the second child StackPanel. - StackPanel^ myStackPanel2 = gcnew StackPanel(); - myStackPanel2->HorizontalAlignment = HorizontalAlignment::Stretch; - myStackPanel2->VerticalAlignment = VerticalAlignment::Top; - myStackPanel2->Orientation = Orientation::Vertical; - Grid::SetColumn(myStackPanel2, 1); - Grid::SetRow(myStackPanel2, 0); - TextBlock^ myTextBlock7 = gcnew TextBlock(); - myTextBlock7->FontSize = 18; - myTextBlock7->HorizontalAlignment = HorizontalAlignment::Center; - myTextBlock7->Margin = Thickness(0, 0, 0, 15); - myTextBlock7->Text = "StackPanel 2"; - Button^ myButton4 = gcnew Button(); - myButton4->Margin = Thickness(10, 0, 10, 0); - myButton4->Content = "Button 4"; - Button^ myButton5 = gcnew Button(); - myButton5->Margin = Thickness(10, 0, 10, 0); - myButton5->Content = "Button 5"; - Button^ myButton6 = gcnew Button(); - myButton6->Margin = Thickness(10, 0, 10, 0); - myButton6->Content = "Button 6"; - TextBlock^ myTextBlock8 = gcnew TextBlock(); - myTextBlock8->HorizontalAlignment = HorizontalAlignment::Center; - myTextBlock8->Text = "ColumnDefinition.Width = \"*\""; - TextBlock^ myTextBlock9 = gcnew TextBlock(); - myTextBlock9->HorizontalAlignment = HorizontalAlignment::Center; - myTextBlock9->Text = "StackPanel.HorizontalAlignment = \"Stretch\""; - TextBlock^ myTextBlock10 = gcnew TextBlock(); - myTextBlock10->HorizontalAlignment = HorizontalAlignment::Center; - myTextBlock10->Text = "StackPanel.VerticalAlignment = \"Top\""; - TextBlock^ myTextBlock11 = gcnew TextBlock(); - myTextBlock11->HorizontalAlignment = HorizontalAlignment::Center; - myTextBlock11->Text = "StackPanel.Orientation = \"Horizontal\""; - TextBlock^ myTextBlock12 = gcnew TextBlock(); - myTextBlock12->HorizontalAlignment = HorizontalAlignment::Center; - myTextBlock12->Text = "Button.Margin = \"10,0,10,0\""; - myStackPanel2->Children->Add(myTextBlock7); - myStackPanel2->Children->Add(myButton4); - myStackPanel2->Children->Add(myButton5); - myStackPanel2->Children->Add(myButton6); - myStackPanel2->Children->Add(myTextBlock8); - myStackPanel2->Children->Add(myTextBlock9); - myStackPanel2->Children->Add(myTextBlock10); - myStackPanel2->Children->Add(myTextBlock11); - myStackPanel2->Children->Add(myTextBlock12); - - // Add the final child StackPanel. - StackPanel^ myStackPanel3 = gcnew StackPanel(); - myStackPanel3->HorizontalAlignment = HorizontalAlignment::Left; - myStackPanel3->VerticalAlignment = VerticalAlignment::Top; - Grid::SetColumn(myStackPanel3, 2); - Grid::SetRow(myStackPanel3, 0); - TextBlock^ myTextBlock13 = gcnew TextBlock(); - myTextBlock13->FontSize = 18; - myTextBlock13->HorizontalAlignment = HorizontalAlignment::Center; - myTextBlock13->Margin = Thickness(0, 0, 0, 15); - myTextBlock13->Text = "StackPanel 3"; - // - Button^ myButton7 = gcnew Button(); - myButton7->Margin = Thickness(10); - myButton7->Content = "Button 7"; - Button^ myButton8 = gcnew Button(); - myButton8->Margin = Thickness(10); - myButton8->Content = "Button 8"; - Button^ myButton9 = gcnew Button(); - myButton9->Margin = Thickness(10); - myButton9->Content = "Button 9"; - // - TextBlock^ myTextBlock14 = gcnew TextBlock(); - myTextBlock14->Text = "ColumnDefinition.Width = \"Auto\""; - TextBlock^ myTextBlock15 = gcnew TextBlock(); - myTextBlock15->Text = "StackPanel.HorizontalAlignment = \"Left\""; - TextBlock^ myTextBlock16 = gcnew TextBlock(); - myTextBlock16->Text = "StackPanel.VerticalAlignment = \"Top\""; - TextBlock^ myTextBlock17 = gcnew TextBlock(); - myTextBlock17->Text = "StackPanel.Orientation = \"Vertical\""; - TextBlock^ myTextBlock18 = gcnew TextBlock(); - myTextBlock18->Text = "Button.Margin = \"10\""; - myStackPanel3->Children->Add(myTextBlock13); - myStackPanel3->Children->Add(myButton7); - myStackPanel3->Children->Add(myButton8); - myStackPanel3->Children->Add(myButton9); - myStackPanel3->Children->Add(myTextBlock14); - myStackPanel3->Children->Add(myTextBlock15); - myStackPanel3->Children->Add(myTextBlock16); - myStackPanel3->Children->Add(myTextBlock17); - myStackPanel3->Children->Add(myTextBlock18); - - // Add child content to the parent Grid. - myGrid->Children->Add(myStackPanel); - myGrid->Children->Add(myStackPanel2); - myGrid->Children->Add(myStackPanel3); - - // Add the Grid as the lone child of the Border. - myBorder->Child = myGrid; - - // Add the Border to the Window as Content and show the Window. - mainWindow->Content = myBorder; - mainWindow->Title = "Margin, Padding, and Alignment Sample"; - mainWindow->Show(); - // - }; - }; - - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () - { - Margin_Padding_Alignment_Sample::app^ app = gcnew Margin_Padding_Alignment_Sample::app(); - app->Run(); - }; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -void main () -{ - return Margin_Padding_Alignment_Sample::EntryClass::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/MarginPaddingAlignmentSample/CPP/margin_padding_alignment_sample.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/MarginPaddingAlignmentSample/CPP/margin_padding_alignment_sample.vcxproj deleted file mode 100644 index c7ea1dd116812..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/MarginPaddingAlignmentSample/CPP/margin_padding_alignment_sample.vcxproj +++ /dev/null @@ -1,123 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21230.0 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/PlotPanel/CPP/PlotPanel.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/PlotPanel/CPP/PlotPanel.cpp deleted file mode 100644 index c9a768363223d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/PlotPanel/CPP/PlotPanel.cpp +++ /dev/null @@ -1,101 +0,0 @@ -//PlotPanel.cpp file -using namespace System; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Shapes; -using namespace System::Windows::Media; -using namespace System::Threading; - -namespace PlotPanel { - - public ref class app : System::Windows::Application { - - // - public: - ref class PlotPanel : Panel { - - public: - PlotPanel () {}; - - protected: - // Override the default Measure method of Panel - // - virtual Size MeasureOverride(Size availableSize) override - { - Size^ panelDesiredSize = gcnew Size(); - - // In our example, we just have one child. - // Report that our panel requires just the size of its only child. - for each (UIElement^ child in InternalChildren) - { - child->Measure(availableSize); - panelDesiredSize = child->DesiredSize; - } - return *panelDesiredSize ; - } - // - - protected: - virtual System::Windows::Size ArrangeOverride (Size finalSize) override - { - for each (UIElement^ child in InternalChildren) - { - double x = 50; - double y = 50; - child->Arrange(Rect(Point(x, y), child->DesiredSize)); - } - return finalSize; - }; - }; - // - - private: - PlotPanel^ plot1; - Window^ mainWindow; - Shapes::Rectangle^ rect1; - - protected: - virtual void OnStartup (StartupEventArgs^ e) override - { - Application::OnStartup(e); - CreateAndShowMainWindow(); - }; - - private: - void CreateAndShowMainWindow () - { - // Create the application's main window - - mainWindow = gcnew Window(); - plot1 = gcnew PlotPanel(); - plot1->Background = Brushes::White; - - rect1 = gcnew Shapes::Rectangle(); - rect1->Fill = Brushes::CornflowerBlue; - rect1->Width = 200; - rect1->Height = 200; - mainWindow->Content = plot1; - plot1->Children->Add(rect1); - mainWindow->Title = "Custom Panel Sample"; - mainWindow->Show(); - }; - }; - - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () - { - PlotPanel::app^ app = gcnew PlotPanel::app(); - app->Run(); - }; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -void main () -{ - return PlotPanel::EntryClass::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/PlotPanel/CPP/plotpanel.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/PlotPanel/CPP/plotpanel.vcxproj deleted file mode 100644 index 4c075c21996d9..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/PlotPanel/CPP/plotpanel.vcxproj +++ /dev/null @@ -1,123 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21125.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/PngBitmapDecoderEncoder/CPP/PngEncoderDecoder.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/PngBitmapDecoderEncoder/CPP/PngEncoderDecoder.cpp deleted file mode 100644 index 31e7053f823d5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/PngBitmapDecoderEncoder/CPP/PngEncoderDecoder.cpp +++ /dev/null @@ -1,130 +0,0 @@ -//PngEncoderDecoder.cpp file - -using namespace System; -using namespace System::Collections::Generic; -using namespace System::IO; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; -using namespace System::Windows::Media::Imaging; -using namespace System::Threading; -using namespace System::Security; - - -namespace SDKSample { - - public ref class app : Application { - - private: Window^ mainWindow; - - protected: virtual void OnStartup (System::Windows::StartupEventArgs^ e) override - { - Application::OnStartup(e); - CreateAndShowMainWindow(); - }; - - private: void CreateAndShowMainWindow () - { - - // Create the application's main window - mainWindow = gcnew System::Windows::Window(); - mainWindow->Title = "PNG Imaging Sample"; - ScrollViewer^ mySV = gcnew ScrollViewer(); - - // - int width = 128; - int height = 128; - int stride = width; - array^ pixels = gcnew array(height * stride); - - // Define the image palette - BitmapPalette^ myPalette = BitmapPalettes::Halftone256; - - // Creates a new empty image with the pre-defined palette - - // - BitmapSource^ image = BitmapSource::Create(width, - height, - 96, - 96, - PixelFormats::Indexed8, - myPalette, - pixels, - stride); - // - - // - FileStream^ stream = gcnew FileStream("new.png", FileMode::Create); - PngBitmapEncoder^ encoder = gcnew PngBitmapEncoder(); - TextBlock^ myTextBlock = gcnew TextBlock(); - myTextBlock->Text = "Codec Author is: " + encoder->CodecInfo->Author->ToString(); - encoder->Interlace = PngInterlaceOption::On; - encoder->Frames->Add(BitmapFrame::Create(image)); - encoder->Save(stream); - // - - // - - // - - // Open a Stream and decode a PNG image - Stream^ imageStreamSource = gcnew FileStream("smiley.png", FileMode::Open, FileAccess::Read, FileShare::Read); - PngBitmapDecoder^ decoder = gcnew PngBitmapDecoder(imageStreamSource, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default); - BitmapSource^ bitmapSource = decoder->Frames[0]; - - // Draw the Image - Image^ myImage = gcnew Image(); - myImage->Source = bitmapSource; - myImage->Stretch = Stretch::None; - myImage->Margin = System::Windows::Thickness(20); - // - - // - - // Open a Uri and decode a PNG image - System::Uri^ myUri = gcnew System::Uri("smiley.png", UriKind::RelativeOrAbsolute); - PngBitmapDecoder^ decoder2 = gcnew PngBitmapDecoder(myUri, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default); - BitmapSource^ bitmapSource2 = decoder2->Frames[0]; - - // Draw the Image - Image^ myImage2 = gcnew Image(); - myImage2->Source = bitmapSource2; - myImage2->Stretch = Stretch::None; - myImage2->Margin = System::Windows::Thickness(20); - // - - // Define a StackPanel to host the decoded PNG images - StackPanel^ myStackPanel = gcnew StackPanel(); - myStackPanel->Orientation = Orientation::Vertical; - myStackPanel->VerticalAlignment = VerticalAlignment::Stretch; - myStackPanel->HorizontalAlignment = HorizontalAlignment::Stretch; - - // Add the Image and TextBlock to the parent Grid - myStackPanel->Children->Add(myImage); - myStackPanel->Children->Add(myImage2); - myStackPanel->Children->Add(myTextBlock); - - // Add the StackPanel as the Content of the Parent Window Object - mySV->Content = myStackPanel; - mainWindow->Content = mySV; - mainWindow->Show(); - }; - }; - - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () { - SDKSample::app^ app = gcnew SDKSample::app(); - app->Run(); - }; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -void main () -{ - return SDKSample::EntryClass::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/PngBitmapDecoderEncoder/CPP/pngencoderdecoder.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/PngBitmapDecoderEncoder/CPP/pngencoderdecoder.vcxproj deleted file mode 100644 index 160ee1fcda544..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/PngBitmapDecoderEncoder/CPP/pngencoderdecoder.vcxproj +++ /dev/null @@ -1,126 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21125.1 - .\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/PngBitmapDecoderEncoder/CPP/smiley.png b/samples/snippets/cpp/VS_Snippets_Wpf/PngBitmapDecoderEncoder/CPP/smiley.png deleted file mode 100644 index 1e0b9496cad2e2133d1edb7c4d3511a059772473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4599 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 - internal: - // Check for possible trouble states of a printer using its properties - static void SpotTroubleUsingProperties (System::String^% statusReport, System::Printing::PrintQueue^ pq) - { - if (pq->HasPaperProblem) - { - statusReport = statusReport + "Has a paper problem. "; - } - if (!(pq->HasToner)) - { - statusReport = statusReport + "Is out of toner. "; - } - if (pq->IsDoorOpened) - { - statusReport = statusReport + "Has an open door. "; - } - if (pq->IsInError) - { - statusReport = statusReport + "Is in an error state. "; - } - if (pq->IsNotAvailable) - { - statusReport = statusReport + "Is not available. "; - } - if (pq->IsOffline) - { - statusReport = statusReport + "Is off line. "; - } - if (pq->IsOutOfMemory) - { - statusReport = statusReport + "Is out of memory. "; - } - if (pq->IsOutOfPaper) - { - statusReport = statusReport + "Is out of paper. "; - } - if (pq->IsOutputBinFull) - { - statusReport = statusReport + "Has a full output bin. "; - } - if (pq->IsPaperJammed) - { - statusReport = statusReport + "Has a paper jam. "; - } - if (pq->IsPaused) - { - statusReport = statusReport + "Is paused. "; - } - if (pq->IsTonerLow) - { - statusReport = statusReport + "Is low on toner. "; - } - if (pq->NeedUserIntervention) - { - statusReport = statusReport + "Needs user intervention. "; - } - - // Check if queue is even available at this time of day - // The following method is defined in the complete example. - ReportAvailabilityAtThisTime(statusReport, pq); - }; - // - - // - internal: - // Check for possible trouble states of a printer using the flags of the QueueStatus property - static void SpotTroubleUsingQueueAttributes (System::String^% statusReport, System::Printing::PrintQueue^ pq) - { - if ((pq->QueueStatus & PrintQueueStatus::PaperProblem) == PrintQueueStatus::PaperProblem) - { - statusReport = statusReport + "Has a paper problem. "; - } - if ((pq->QueueStatus & PrintQueueStatus::NoToner) == PrintQueueStatus::NoToner) - { - statusReport = statusReport + "Is out of toner. "; - } - if ((pq->QueueStatus & PrintQueueStatus::DoorOpen) == PrintQueueStatus::DoorOpen) - { - statusReport = statusReport + "Has an open door. "; - } - if ((pq->QueueStatus & PrintQueueStatus::Error) == PrintQueueStatus::Error) - { - statusReport = statusReport + "Is in an error state. "; - } - if ((pq->QueueStatus & PrintQueueStatus::NotAvailable) == PrintQueueStatus::NotAvailable) - { - statusReport = statusReport + "Is not available. "; - } - if ((pq->QueueStatus & PrintQueueStatus::Offline) == PrintQueueStatus::Offline) - { - statusReport = statusReport + "Is off line. "; - } - if ((pq->QueueStatus & PrintQueueStatus::OutOfMemory) == PrintQueueStatus::OutOfMemory) - { - statusReport = statusReport + "Is out of memory. "; - } - if ((pq->QueueStatus & PrintQueueStatus::PaperOut) == PrintQueueStatus::PaperOut) - { - statusReport = statusReport + "Is out of paper. "; - } - if ((pq->QueueStatus & PrintQueueStatus::OutputBinFull) == PrintQueueStatus::OutputBinFull) - { - statusReport = statusReport + "Has a full output bin. "; - } - if ((pq->QueueStatus & PrintQueueStatus::PaperJam) == PrintQueueStatus::PaperJam) - { - statusReport = statusReport + "Has a paper jam. "; - } - if ((pq->QueueStatus & PrintQueueStatus::Paused) == PrintQueueStatus::Paused) - { - statusReport = statusReport + "Is paused. "; - } - if ((pq->QueueStatus & PrintQueueStatus::TonerLow) == PrintQueueStatus::TonerLow) - { - statusReport = statusReport + "Is low on toner. "; - } - if ((pq->QueueStatus & PrintQueueStatus::UserIntervention) == PrintQueueStatus::UserIntervention) - { - statusReport = statusReport + "Needs user intervention. "; - } - - // Check if queue is even available at this time of day - // The method below is defined in the complete example. - ReportAvailabilityAtThisTime(statusReport, pq); - }; - // - - // - private: - static void ReportAvailabilityAtThisTime (System::String^% statusReport, System::Printing::PrintQueue^ pq) - { - if (pq->StartTimeOfDay != pq->UntilTimeOfDay) - { - System::DateTime utcNow = DateTime::UtcNow; - System::Int32 utcNowAsMinutesAfterMidnight = (utcNow.TimeOfDay.Hours * 60) + utcNow.TimeOfDay.Minutes; - - // If now is not within the range of available times . . . - if (!((pq->StartTimeOfDay < utcNowAsMinutesAfterMidnight) && (utcNowAsMinutesAfterMidnight < pq->UntilTimeOfDay))) - { - statusReport = statusReport + " Is not available at this time of day. "; - } - } - }; - // - }; - - private ref class Program { - - public: - static void Main (array^ args) - { - // Obtain a list of print servers - Console::Write("Enter path and file name of CRLF-delimited list of print servers: "); - System::String^ pathToListOfPrintServers = Console::ReadLine(); - System::IO::StreamReader^ fileOfPrintServers = gcnew System::IO::StreamReader(pathToListOfPrintServers); - - // Prompt user to determine the method of reading queue status that will be used - Console::Write("Enter \"y\" to check queues using their QueueStatus attributes.\nOtherwise, press Return and they will be checked using their specific properties: "); - System::String^ useAttributesResponse = Console::ReadLine(); - - // - // Survey queue status for every queue on every print server - System::String^ line; - System::String^ statusReport = "\n\nAny problem states are indicated below:\n\n"; - while ((line = fileOfPrintServers->ReadLine()) != nullptr) - { - System::Printing::PrintServer^ myPS = gcnew System::Printing::PrintServer(line, PrintSystemDesiredAccess::AdministrateServer); - System::Printing::PrintQueueCollection^ myPrintQueues = myPS->GetPrintQueues(); - statusReport = statusReport + "\n" + line; - for each (System::Printing::PrintQueue^ pq in myPrintQueues) - { - pq->Refresh(); - statusReport = statusReport + "\n\t" + pq->Name + ":"; - if (useAttributesResponse == "y") - { - TroubleSpotter::SpotTroubleUsingQueueAttributes(statusReport, pq); - // TroubleSpotter class is defined in the complete example. - } else - { - TroubleSpotter::SpotTroubleUsingProperties(statusReport, pq); - } - } - } - fileOfPrintServers->Close(); - Console::WriteLine(statusReport); - Console::WriteLine("\nPress Return to continue."); - Console::ReadLine(); - // - }; - }; - -} - -//Entry Point: -[System::STAThreadAttribute()] -int main (array^ args) -{ - PrinterStatusSurvey::Program::Main(args); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/PrinterStatusSurvey/CPP/printerstatussurvey.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/PrinterStatusSurvey/CPP/printerstatussurvey.vcxproj deleted file mode 100644 index 4ab6335b9cfdf..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/PrinterStatusSurvey/CPP/printerstatussurvey.vcxproj +++ /dev/null @@ -1,127 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21208.0 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Console - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/ScrollViewer/CPP/ScrollViewer_wcp.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/ScrollViewer/CPP/ScrollViewer_wcp.cpp deleted file mode 100644 index 8739a01220b26..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/ScrollViewer/CPP/ScrollViewer_wcp.cpp +++ /dev/null @@ -1,86 +0,0 @@ -//ScrollViewer_wcp.cpp file - -using namespace System; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; -using namespace System::Windows::Shapes; -using namespace System::Threading; - -namespace SDKSample { - - public ref class app : Application { - - private: - ScrollViewer^ myScrollViewer; - StackPanel^ myStackPanel; - Window^ mainWindow; - - protected: - virtual void OnStartup (System::Windows::StartupEventArgs^ e) override - { - Application::OnStartup(e); - CreateAndShowMainWindow(); - }; - - private: - void CreateAndShowMainWindow () - { - // - - // Create the application's main window - mainWindow = gcnew System::Windows::Window(); - mainWindow->Title = "ScrollViewer Sample"; - - // Define a ScrollViewer - myScrollViewer = gcnew ScrollViewer(); - myScrollViewer->HorizontalScrollBarVisibility = ScrollBarVisibility::Auto; - - // Add Layout control - myStackPanel = gcnew StackPanel(); - myStackPanel->HorizontalAlignment = HorizontalAlignment::Left; - myStackPanel->VerticalAlignment = VerticalAlignment::Top; - - TextBlock^ myTextBlock = gcnew TextBlock(); - myTextBlock->TextWrapping = TextWrapping::Wrap; - myTextBlock->Margin = System::Windows::Thickness(0, 0, 0, 20); - myTextBlock->Text = "Scrolling is enabled when it is necessary. Resize the Window, making it larger and smaller."; - - Rectangle^ myRectangle = gcnew Rectangle(); - myRectangle->Fill = Brushes::Red; - myRectangle->Width = 500; - myRectangle->Height = 500; - - // Add child elements to the parent StackPanel - myStackPanel->Children->Add(myTextBlock); - myStackPanel->Children->Add(myRectangle); - - // Add the StackPanel as the lone Child of the Border - myScrollViewer->Content = myStackPanel; - - // Add the Border as the Content of the Parent Window Object - mainWindow->Content = myScrollViewer; - mainWindow->Show(); - - // - }; - }; - - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () - { - SDKSample::app^ app = gcnew SDKSample::app(); - app->Run(); - }; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -void main () -{ - return SDKSample::EntryClass::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/ScrollViewer/CPP/scrollviewer_cpp.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/ScrollViewer/CPP/scrollviewer_cpp.vcxproj deleted file mode 100644 index 46659bd0f7573..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/ScrollViewer/CPP/scrollviewer_cpp.vcxproj +++ /dev/null @@ -1,118 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - ScrollViewer - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30109.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/ShapesProcedural/CPP/ShapesProcedural.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/ShapesProcedural/CPP/ShapesProcedural.cpp deleted file mode 100644 index d45a1b4ef20a8..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/ShapesProcedural/CPP/ShapesProcedural.cpp +++ /dev/null @@ -1,264 +0,0 @@ -//ShapesProcedural.cpp file - -using namespace System; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; -using namespace System::Windows::Shapes; -using namespace System::Threading; - -namespace ShapesProcedural { - - public ref class app : Application { - - private: - Border^ myBorder; - Rectangle^ myRect; - Ellipse^ myEllipse; - Line^ myLine; - Path^ myPath; - Polygon^ myPolygon; - Polyline^ myPolyline; - Grid^ myGrid; - TextBlock^ myTextBlock; - ColumnDefinition^ myColDef1; - ColumnDefinition^ myColDef2; - RowDefinition^ myRowDef; - RowDefinition^ myRowDef1; - RowDefinition^ myRowDef2; - RowDefinition^ myRowDef3; - RowDefinition^ myRowDef4; - RowDefinition^ myRowDef5; - RowDefinition^ myRowDef6; - Window^ myWindow; - - protected: virtual void OnStartup (StartupEventArgs^ e) override - { - Application::OnStartup(e); - CreateAndShowMainWindow(); - }; - - private: void CreateAndShowMainWindow () - { - // Create the application's main window - myWindow = gcnew Window(); - - // Add a Border - myBorder = gcnew Border(); - myBorder->BorderBrush = Brushes::Black; - myBorder->BorderThickness = Thickness(2); - myBorder->Width = 400; - myBorder->Height = 600; - myBorder->Padding = Thickness(15); - myBorder->Background = Brushes::White; - - // Create a Grid to host the Shapes - myGrid = gcnew Grid(); - myGrid->Margin = Thickness(15); - myColDef1 = gcnew ColumnDefinition(); - myColDef1->Width = GridLength(125); - myColDef2 = gcnew ColumnDefinition(); - myColDef2->Width = GridLength(1, GridUnitType::Star); - myGrid->ColumnDefinitions->Add(myColDef1); - myGrid->ColumnDefinitions->Add(myColDef2); - myRowDef = gcnew RowDefinition(); - myRowDef1 = gcnew RowDefinition(); - myRowDef2 = gcnew RowDefinition(); - myRowDef3 = gcnew RowDefinition(); - myRowDef4 = gcnew RowDefinition(); - myRowDef5 = gcnew RowDefinition(); - myRowDef6 = gcnew RowDefinition(); - myGrid->RowDefinitions->Add(myRowDef); - myGrid->RowDefinitions->Add(myRowDef1); - myGrid->RowDefinitions->Add(myRowDef2); - myGrid->RowDefinitions->Add(myRowDef3); - myGrid->RowDefinitions->Add(myRowDef4); - myGrid->RowDefinitions->Add(myRowDef5); - myGrid->RowDefinitions->Add(myRowDef6); - myTextBlock = gcnew TextBlock(); - myTextBlock->FontSize = 20; - myTextBlock->Text = "WPF Shapes Gallery"; - myTextBlock->HorizontalAlignment = HorizontalAlignment::Left; - myTextBlock->VerticalAlignment = VerticalAlignment::Center; - myGrid->Children->Add(myTextBlock); - Grid::SetRow(myTextBlock, 0); - Grid::SetColumnSpan(myTextBlock, 2); - - // - - // Add a Rectangle Element - myRect = gcnew Rectangle(); - myRect->Stroke = Brushes::Black; - myRect->Fill = Brushes::SkyBlue; - myRect->HorizontalAlignment = HorizontalAlignment::Left; - myRect->VerticalAlignment = VerticalAlignment::Center; - myRect->Height = 50; - myRect->Width = 50; - myGrid->Children->Add(myRect); - // - Grid::SetRow(myRect, 1); - Grid::SetColumn(myRect, 0); - TextBlock^ myTextBlock1 = gcnew TextBlock(); - myTextBlock1->FontSize = 14; - myTextBlock1->Text = "A Rectangle Element"; - myTextBlock1->VerticalAlignment = VerticalAlignment::Center; - myGrid->Children->Add(myTextBlock1); - Grid::SetRow(myTextBlock1, 1); - Grid::SetColumn(myTextBlock1, 1); - - // - - // Add an Ellipse Element - myEllipse = gcnew Ellipse(); - myEllipse->Stroke = Brushes::Black; - myEllipse->Fill = Brushes::DarkBlue; - myEllipse->HorizontalAlignment = HorizontalAlignment::Left; - myEllipse->VerticalAlignment = VerticalAlignment::Center; - myEllipse->Width = 50; - myEllipse->Height = 75; - myGrid->Children->Add(myEllipse); - // - Grid::SetRow(myEllipse, 2); - Grid::SetColumn(myEllipse, 0); - TextBlock^ myTextBlock2 = gcnew TextBlock(); - myTextBlock2->FontSize = 14; - myTextBlock2->Text = "An Ellipse Element"; - myTextBlock2->VerticalAlignment = VerticalAlignment::Center; - myGrid->Children->Add(myTextBlock2); - Grid::SetRow(myTextBlock2, 2); - Grid::SetColumn(myTextBlock2, 1); - - // - - // Add a Line Element - myLine = gcnew Line(); - myLine->Stroke = Brushes::LightSteelBlue; - myLine->X1 = 1; - myLine->X2 = 50; - myLine->Y1 = 1; - myLine->Y2 = 50; - myLine->HorizontalAlignment = HorizontalAlignment::Left; - myLine->VerticalAlignment = VerticalAlignment::Center; - myLine->StrokeThickness = 2; - myGrid->Children->Add(myLine); - // - Grid::SetRow(myLine, 3); - Grid::SetColumn(myLine, 0); - TextBlock^ myTextBlock3 = gcnew TextBlock(); - myTextBlock3->FontSize = 14; - myTextBlock3->Text = "A Line Element"; - myTextBlock3->VerticalAlignment = VerticalAlignment::Center; - myGrid->Children->Add(myTextBlock3); - Grid::SetRow(myTextBlock3, 3); - Grid::SetColumn(myTextBlock3, 1); - - // - - //Add the Path Element - myPath = gcnew Path(); - myPath->Stroke = Brushes::Black; - myPath->Fill = Brushes::MediumSlateBlue; - myPath->StrokeThickness = 4; - myPath->HorizontalAlignment = HorizontalAlignment::Left; - myPath->VerticalAlignment = VerticalAlignment::Center; - EllipseGeometry^ myEllipseGeometry = gcnew EllipseGeometry(); - myEllipseGeometry->Center = Point(50, 50); - myEllipseGeometry->RadiusX = 25; - myEllipseGeometry->RadiusY = 25; - myPath->Data = myEllipseGeometry; - myGrid->Children->Add(myPath); - // - Grid::SetRow(myPath, 4); - Grid::SetColumn(myPath, 0); - TextBlock^ myTextBlock4 = gcnew TextBlock(); - myTextBlock4->FontSize = 14; - myTextBlock4->Text = "A Path Element"; - myTextBlock4->VerticalAlignment = VerticalAlignment::Center; - myGrid->Children->Add(myTextBlock4); - Grid::SetRow(myTextBlock4, 4); - Grid::SetColumn(myTextBlock4, 1); - - // - - //Add the Polygon Element - myPolygon = gcnew Polygon(); - myPolygon->Stroke = Brushes::Black; - myPolygon->Fill = Brushes::LightSeaGreen; - myPolygon->StrokeThickness = 2; - myPolygon->HorizontalAlignment = HorizontalAlignment::Left; - myPolygon->VerticalAlignment = VerticalAlignment::Center; - Point Point1 = Point(1, 50); - Point Point2 = Point(10, 80); - Point Point3 = Point(50, 50); - PointCollection^ myPointCollection = gcnew PointCollection(); - myPointCollection->Add(Point1); - myPointCollection->Add(Point2); - myPointCollection->Add(Point3); - myPolygon->Points = myPointCollection; - myGrid->Children->Add(myPolygon); - // - Grid::SetRow(myPolygon, 5); - Grid::SetColumn(myPolygon, 0); - TextBlock^ myTextBlock5 = gcnew TextBlock(); - myTextBlock5->Text = "A Polygon Element"; - myTextBlock5->FontSize = 14; - myTextBlock5->VerticalAlignment = VerticalAlignment::Center; - myGrid->Children->Add(myTextBlock5); - Grid::SetRow(myTextBlock5, 5); - Grid::SetColumn(myTextBlock5, 1); - - // - - // Add the Polyline Element - myPolyline = gcnew Polyline(); - myPolyline->Stroke = Brushes::SlateGray; - myPolyline->StrokeThickness = 2; - myPolyline->FillRule = FillRule::EvenOdd; - Point Point4 = Point(1, 50); - Point Point5 = Point(10, 80); - Point Point6 = Point(20, 40); - PointCollection^ myPointCollection2 = gcnew PointCollection(); - myPointCollection2->Add(Point4); - myPointCollection2->Add(Point5); - myPointCollection2->Add(Point6); - myPolyline->Points = myPointCollection2; - myGrid->Children->Add(myPolyline); - // - Grid::SetRow(myPolyline, 6); - Grid::SetColumn(myPolyline, 0); - TextBlock^ myTextBlock6 = gcnew TextBlock(); - myTextBlock6->FontSize = 14; - myTextBlock6->Text = "A Polyline Element"; - myTextBlock6->VerticalAlignment = VerticalAlignment::Center; - myGrid->Children->Add(myTextBlock6); - Grid::SetRow(myTextBlock6, 6); - Grid::SetColumn(myTextBlock6, 1); - - // Add the Grid to the Window as Content and show the Window - myBorder->Child = myGrid; - myWindow->Content = myBorder; - myWindow->Background = Brushes::LightSlateGray; - myWindow->Title = "Shapes Sample"; - myWindow->Show(); - - }; - }; - - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () - { - ShapesProcedural::app^ app = gcnew ShapesProcedural::app(); - app->Run(); - }; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -void main () -{ - return ShapesProcedural::EntryClass::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/ShapesProcedural/CPP/shapesprocedural.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/ShapesProcedural/CPP/shapesprocedural.vcxproj deleted file mode 100644 index 6a714f7e91ce3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/ShapesProcedural/CPP/shapesprocedural.vcxproj +++ /dev/null @@ -1,123 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21230.0 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/StackPanelOvw4/CPP/StackPanel_Ovw_Sample4.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/StackPanelOvw4/CPP/StackPanel_Ovw_Sample4.cpp deleted file mode 100644 index 76064af559338..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/StackPanelOvw4/CPP/StackPanel_Ovw_Sample4.cpp +++ /dev/null @@ -1,141 +0,0 @@ -//StackPanel_Ovw_Sample4.cpp file - -using namespace System; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; -using namespace System::Windows::Media::Imaging; -using namespace System::Threading; - -namespace SDKSample { - - public ref class app : Application { - - private: - Border^ myBorder; - Grid^ myGrid; - StackPanel^ myStackPanel; - DockPanel^ myDockPanel; - System::Windows::Window^ mainWindow; - - protected: - virtual void OnStartup (System::Windows::StartupEventArgs^ e) override - { - Application::OnStartup(e); - CreateAndShowMainWindow(); - }; - - private: - void CreateAndShowMainWindow () - { - // - - // Create the application's main window - mainWindow = gcnew Window(); - mainWindow->Title = "StackPanel vs. DockPanel"; - - // Add root Grid - myGrid = gcnew Grid(); - myGrid->Width = 175; - myGrid->Height = 150; - RowDefinition^ myRowDef1 = gcnew RowDefinition(); - RowDefinition^ myRowDef2 = gcnew RowDefinition(); - myGrid->RowDefinitions->Add(myRowDef1); - myGrid->RowDefinitions->Add(myRowDef2); - - // Define the DockPanel - myDockPanel = gcnew DockPanel(); - Grid::SetRow(myDockPanel, 0); - - //Define an Image and Source - Image^ myImage = gcnew Image(); - BitmapImage^ bi = gcnew BitmapImage(); - bi->BeginInit(); - bi->UriSource = gcnew System::Uri("smiley_stackpanel.png", UriKind::Relative); - bi->EndInit(); - myImage->Source = bi; - - Image^ myImage2 = gcnew Image(); - BitmapImage^ bi2 = gcnew BitmapImage(); - bi2->BeginInit(); - bi2->UriSource = gcnew System::Uri("smiley_stackpanel.png", UriKind::Relative); - bi2->EndInit(); - myImage2->Source = bi2; - - // - Image^ myImage3 = gcnew Image(); - BitmapImage^ bi3 = gcnew BitmapImage(); - bi3->BeginInit(); - bi3->UriSource = gcnew System::Uri("smiley_stackpanel.PNG", UriKind::Relative); - bi3->EndInit(); - myImage3->Stretch = Stretch::Fill; - myImage3->Source = bi3; - // - - // Add the images to the parent DockPanel - myDockPanel->Children->Add(myImage); - myDockPanel->Children->Add(myImage2); - myDockPanel->Children->Add(myImage3); - - //Define a StackPanel - myStackPanel = gcnew StackPanel(); - myStackPanel->Orientation = Orientation::Horizontal; - Grid::SetRow(myStackPanel, 1); - - Image^ myImage4 = gcnew Image(); - BitmapImage^ bi4 = gcnew BitmapImage(); - bi4->BeginInit(); - bi4->UriSource = gcnew System::Uri("smiley_stackpanel.png", UriKind::Relative); - bi4->EndInit(); - myImage4->Source = bi4; - - Image^ myImage5 = gcnew Image(); - BitmapImage^ bi5 = gcnew BitmapImage(); - bi5->BeginInit(); - bi5->UriSource = gcnew System::Uri("smiley_stackpanel.png", UriKind::Relative); - bi5->EndInit(); - myImage5->Source = bi5; - - Image^ myImage6 = gcnew Image(); - BitmapImage^ bi6 = gcnew BitmapImage(); - bi6->BeginInit(); - bi6->UriSource = gcnew System::Uri("smiley_stackpanel.PNG", UriKind::Relative); - bi6->EndInit(); - myImage6->Stretch = Stretch::Fill; - myImage6->Source = bi6; - - // Add the images to the parent StackPanel - myStackPanel->Children->Add(myImage4); - myStackPanel->Children->Add(myImage5); - myStackPanel->Children->Add(myImage6); - - // Add the layout panels as children of the Grid - myGrid->Children->Add(myDockPanel); - myGrid->Children->Add(myStackPanel); - - // Add the Grid as the Content of the Parent Window Object - mainWindow->Content = myGrid; - mainWindow->Show(); - - // - }; - }; - - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () - { - SDKSample::app^ app = gcnew SDKSample::app(); - app->Run(); - }; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -void main () -{ - return SDKSample::EntryClass::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/StackPanelOvw4/CPP/smiley_stackpanel.PNG b/samples/snippets/cpp/VS_Snippets_Wpf/StackPanelOvw4/CPP/smiley_stackpanel.PNG deleted file mode 100644 index 1e0b9496cad2e2133d1edb7c4d3511a059772473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4599 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 - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21125.1 - .\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/TiffBitmapDecoderEncoder/CPP/TiffEncoderDecoder.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/TiffBitmapDecoderEncoder/CPP/TiffEncoderDecoder.cpp deleted file mode 100644 index 685472dce19dc..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/TiffBitmapDecoderEncoder/CPP/TiffEncoderDecoder.cpp +++ /dev/null @@ -1,130 +0,0 @@ -//TiffEncoderDecoder.cpp file - -using namespace System; -using namespace System::Collections::Generic; -using namespace System::IO; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; -using namespace System::Windows::Media::Imaging; -using namespace System::Threading; -using namespace System::Security; - - -namespace SDKSample { - - public ref class app : Application { - - private: System::Windows::Window^ mainWindow; - - protected: virtual void OnStartup (System::Windows::StartupEventArgs^ e) override - { - Application::OnStartup(e); - CreateAndShowMainWindow(); - }; - - private: void CreateAndShowMainWindow () - { - - // Create the application's main window. - mainWindow = gcnew System::Windows::Window(); - mainWindow->Title = "TIFF Imaging Sample"; - ScrollViewer^ mySV = gcnew ScrollViewer(); - - // - int width = 128; - int height = width; - int stride = width / 8; - array^ pixels = gcnew array(height * stride); - - // Define the image palette. - BitmapPalette^ myPalette = BitmapPalettes::WebPalette; - - // Creates a new empty image with the pre-defined palette. - - // - BitmapSource^ image = BitmapSource::Create(width, - height, - 96, - 96, - PixelFormats::Indexed1, - myPalette, - pixels, - stride); - // - - // - FileStream^ stream = gcnew FileStream("new.tif", FileMode::Create); - TiffBitmapEncoder^ encoder = gcnew TiffBitmapEncoder(); - TextBlock^ myTextBlock = gcnew TextBlock(); - myTextBlock->Text = "Codec Author is: " + encoder->CodecInfo->Author->ToString(); - encoder->Compression = TiffCompressOption::Zip; - encoder->Frames->Add(BitmapFrame::Create(image)); - encoder->Save(stream); - // - - // - - // - // Open a Stream and decode a TIFF image. - Stream^ imageStreamSource = gcnew FileStream("tulipfarm.tif", FileMode::Open, FileAccess::Read, FileShare::Read); - TiffBitmapDecoder^ decoder = gcnew TiffBitmapDecoder(imageStreamSource, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default); - BitmapSource^ bitmapSource = decoder->Frames[0]; - - // Draw the Image. - Image^ myImage = gcnew Image(); - myImage->Source = bitmapSource; - myImage->Stretch = Stretch::None; - myImage->Margin = System::Windows::Thickness(20); - // - - // - - // Open a Uri and decode a TIFF image. - System::Uri^ myUri = gcnew System::Uri("tulipfarm.tif", UriKind::RelativeOrAbsolute); - TiffBitmapDecoder^ decoder2 = gcnew TiffBitmapDecoder(myUri, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default); - BitmapSource^ bitmapSource2 = decoder2->Frames[0]; - - // Draw the Image. - Image^ myImage2 = gcnew Image(); - myImage2->Source = bitmapSource2; - myImage2->Stretch = Stretch::None; - myImage2->Margin = System::Windows::Thickness(20); - // - - // Define a StackPanel to host the decoded TIFF images. - StackPanel^ myStackPanel = gcnew StackPanel(); - myStackPanel->Orientation = Orientation::Vertical; - myStackPanel->VerticalAlignment = VerticalAlignment::Stretch; - myStackPanel->HorizontalAlignment = HorizontalAlignment::Stretch; - - // Add the Image and TextBlock to the parent Grid. - myStackPanel->Children->Add(myImage); - myStackPanel->Children->Add(myImage2); - myStackPanel->Children->Add(myTextBlock); - - // Add the StackPanel as the Content of the Parent Window Object. - mySV->Content = myStackPanel; - mainWindow->Content = mySV; - mainWindow->Show(); - }; - }; - - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () - { - SDKSample::app^ app = gcnew SDKSample::app(); - app->Run(); - }; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -void main () -{ - return SDKSample::EntryClass::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/TiffBitmapDecoderEncoder/CPP/tiffencoderdecoder.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/TiffBitmapDecoderEncoder/CPP/tiffencoderdecoder.vcxproj deleted file mode 100644 index 7c1873181a0b5..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/TiffBitmapDecoderEncoder/CPP/tiffencoderdecoder.vcxproj +++ /dev/null @@ -1,126 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21125.1 - .\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/TiffBitmapDecoderEncoder/CPP/tulipfarm.tif b/samples/snippets/cpp/VS_Snippets_Wpf/TiffBitmapDecoderEncoder/CPP/tulipfarm.tif deleted file mode 100644 index 50746baa7337e95b753c26ca85e73556ba9a1d00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 697320 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≈%bWCg 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�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 diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/WdpBitmapDecoderEncoder/CPP/WDPEncoderDecoder.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/WdpBitmapDecoderEncoder/CPP/WDPEncoderDecoder.cpp deleted file mode 100644 index a50b95e31c532..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/WdpBitmapDecoderEncoder/CPP/WDPEncoderDecoder.cpp +++ /dev/null @@ -1,142 +0,0 @@ -//WDPEncoderDecoder.cpp file - - -using namespace System; -using namespace System::Collections::Generic; -using namespace System::IO; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; -using namespace System::Windows::Media::Imaging; -using namespace System::Threading; -using namespace System::Security; - - -namespace SDKSample { - - public ref class app : Application { - - private: Window^ mainWindow; - - protected: virtual void OnStartup (System::Windows::StartupEventArgs^ e) override - { - Application::OnStartup(e); - CreateAndShowMainWindow(); - }; - - private: void CreateAndShowMainWindow () - { - - // Create the application's main window - mainWindow = gcnew System::Windows::Window(); - mainWindow->Title = "WDP Imaging Sample"; - ScrollViewer^ mySV = gcnew ScrollViewer(); - - // - int width = 128; - int height = width; - int stride = width / 8; - array^ pixels = gcnew array(height * stride); - - // Define the image palette - BitmapPalette^ myPalette = BitmapPalettes::WebPalette; - - // Creates a new empty image with the pre-defined palette - - // - BitmapSource^ image = BitmapSource::Create( - width, - height, - 96, - 96, - PixelFormats::Indexed1, - myPalette, - pixels, - stride); - // - - // - FileStream^ stream = gcnew FileStream("new.wdp", FileMode::Create); - WmpBitmapEncoder^ encoder = gcnew WmpBitmapEncoder(); - TextBlock^ myTextBlock = gcnew TextBlock(); - myTextBlock->Text = "Codec Author is: " + encoder->CodecInfo->Author->ToString(); - encoder->Frames->Add(BitmapFrame::Create(image)); - encoder->Save(stream); - // - - // - - // - - // Open a Stream and decode a WDP image - Stream^ imageStreamSource = gcnew FileStream("tulipfarm.wdp", FileMode::Open, FileAccess::Read, FileShare::Read); - WmpBitmapDecoder^ decoder = gcnew WmpBitmapDecoder(imageStreamSource, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default); - BitmapSource^ bitmapSource = decoder->Frames[0]; - - // Draw the Image - Image^ myImage = gcnew Image(); - myImage->Source = bitmapSource; - myImage->Stretch = Stretch::None; - myImage->Margin = System::Windows::Thickness(20); - // - - // - - // Open a Uri and decode a WDP image - System::Uri^ myUri = gcnew System::Uri("tulipfarm.wdp", UriKind::RelativeOrAbsolute); - WmpBitmapDecoder^ decoder3 = gcnew WmpBitmapDecoder(myUri, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default); - BitmapSource^ bitmapSource3 = decoder3->Frames[0]; - - // Draw the Image - Image^ myImage2 = gcnew Image(); - myImage2->Source = bitmapSource3; - myImage2->Stretch = Stretch::None; - myImage2->Margin = System::Windows::Thickness(20); - // - - // - FileStream^ stream2 = gcnew FileStream("tulipfarm.jpg", FileMode::Open); - JpegBitmapDecoder^ decoder2 = gcnew JpegBitmapDecoder(stream2, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default); - BitmapSource^ bitmapSource2 = decoder2->Frames[0]; - FileStream^ stream3 = gcnew FileStream("new2.wdp", FileMode::Create); - WmpBitmapEncoder^ encoder2 = gcnew WmpBitmapEncoder(); - encoder2->Frames->Add(BitmapFrame::Create(bitmapSource2)); - encoder2->Save(stream3); - // - - // Define a StackPanel to host the decoded WDP images - StackPanel^ myStackPanel = gcnew StackPanel(); - myStackPanel->Orientation = Orientation::Vertical; - myStackPanel->VerticalAlignment = VerticalAlignment::Stretch; - myStackPanel->HorizontalAlignment = HorizontalAlignment::Stretch; - - // Add the Image and TextBlock to the parent Grid - myStackPanel->Children->Add(myImage); - myStackPanel->Children->Add(myImage2); - myStackPanel->Children->Add(myTextBlock); - - // Add the StackPanel as the Content of the Parent Window Object - mySV->Content = myStackPanel; - mainWindow->Content = mySV; - mainWindow->Show(); - }; - }; - - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () - { - SDKSample::app^ app = gcnew SDKSample::app(); - app->Run(); - }; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -void main () -{ - return SDKSample::EntryClass::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/WdpBitmapDecoderEncoder/CPP/tulipfarm.jpg b/samples/snippets/cpp/VS_Snippets_Wpf/WdpBitmapDecoderEncoder/CPP/tulipfarm.jpg deleted file mode 100644 index 2ce60cad09155366d0c4ef18b9e01dedd61a1cb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110238 zcma&N1z1#F_cnfJh8()PhZK=iK#)#}p;JIYN{~+J9y$e-7;nx>vWg4- zv!^uv`wF2__>hCjzt6e2!2A&(v=R>azjkt2hZ<@_dH{T=q>}g5i-&|W59&k+h=@b< zVu1GWe|rBjIH6ubF+7P+i9tq3&}QJm9P$IS4LF1z_Pz%Wy3bCuWaWQa`IpI@$itzS z$hZoCFUSV^Uk%{N#th-}pdZJy|JU^X|NOug!I!@<4c2YQY}>a_^KU<`(?TMMH(DLx z^kR?HLH7{^Og;wBm&uwFWw4=ljZ_o8yR~!td(R)VAma+{e;kJgNiLKG z`}njpfqe<1$feka|Q zUL$!{S`P?FuRu%dA&*!u2E1^hH@VLr)$# z(LwYlT#)RKN1-s__er*Yng3^&EPosIrw3b*IC!gi^S}uG>~qwAO$VYdt}yv8_Tcp4 zs#yY^J)YE1Ltkt-W+xn;(hgvDA|U_!atIkC?Qj2G*0lr-kNR-`X-K)&!?{Ue4B2!S z+#|Im{SQzVc9Q#}GU#DRrWcb{if0#LzhFEeF@Ym~0ybAf_&3^r9PvArDF0(00Wpl- z@Mx$)OBf3F^VhIM2JOYSQ!HL;mGQJP<&30S}15JU}D+cLN1&eI5&F zfuUOk&abc?K!aRi&HYzH4CDfRL`pNjzmNpG1T8E6zeeXj7TP(2a}e%hnf1jo#el9f z^zBRg<3(~B77x&iP(={>-%O&12($m;zy%c;V2pXfzsCgkL&BxeTM?MwQehYV-Hub` zKS=xq$lne7teyT}d{pXNfx&qGHidW6XGj&TFauDt2t)p9{zHL$NwQc`3EHR%AjV*x zG2$Nw_JRJuQc_C-*#83Uf}o&X@JI5*7eNYx{)vv;|F{;!gG8~i9?&doXAlNGOIulw zSCRrU;WsV`zj29`ui8o0%KeKiHaLCo3p)N|OH{J_?@34fo-`P|93b9h|6M|D%Di+Zp_E_;y?c9vb8eH<=c3F7ogKN0^=(#X%nxKIHR|a$-0Y z^di>NM5;3XSO)ohPz^k&S~Ba~NA8KCzK~a84>n?Z^%fQn9A=l_g87%*Y2(m+xMWJ< zRA4-TR3J~+kxcW{o2QfqjbwrHiQwG@Cw6f}YE~GHn0Cy1*|F5Qx@Iruo=RIv^`~e0gqCfm%=aaU9MpfX%;A;Wx zpzHr&4TAieITx3Jy@HJkJ;Wtw1qSe35bBSi5LIOx!iYhsQ2NnuiPXo>!sCV+BZP4S zZKXDoF{HlC+K?BzmKtdw`T%eGzmx`2g4s#oLjJGluqSr09{_~@%|F^dl6&E?{}-&H zcoL$w|FY^Y=U-UTQs7J84e7EJpnco&J<_b~r8OjGjlx`POD$Q4j6_bRP!l7ME5D)fE z$~(U=H7{&Of*z^Uwe-&TN6Rjh?YCag!H|8R5?;vMZ+(mTM~wdonZM%b-=_VIz&{}} z3zFj^ZC+&0J<@jM4AS4^9ZU?pO z5BdPu{L!+%Q3sV;6%Va<;ZtZS;H870c_r)l_%D)4y*j{75`{}u^+oswJ>t8=*yB-5 zSz1pGDkU7i^br~)pdkh^KpDywCRvZzw6#_6PBADG216B0NPiUd?}qU~J+%bM&5P@> zpyRZNU;jrP{-)VKfd1CZe~Zr_cHr=G6#^B(QTqH7ESh*hFRyP_E`G*-ZQGPQ9#%{udd>*4p z4PCpSf>*$rI{Xokn+BRKA+3LDnEW{v0M>Q*62B7zCH&`I@FZKH1c(ov>3eAh1mar?GI(4 zv;Rr$%#=C^<~4Pyy*^x30Hg`@+U?Gwws*-A5ZtavF{zNw)jFtYgZa9s&isR68k^jU zqDdGB%m7x4UD41h@tGypv9BD?orgtD!|T!SSaZWR`&>LaX~ zr;-P~{Xg`-9W?zSM;L@tQT`?mSdYd6!v8pMBi|tb4RtxfPJ$kUPOgDK(?b+9R5^?D z7BM4svdV@#Y89L%WtyzH)8)~SY7$|bv^S*mTYhnrykqL3pp0557aDV`W&Z7|P7`QNf5kf~QBqx2{Kp`e=6L!3MTJ`aczSWC6T zY85!CwA7_|>k$zG!T{lKZ8C8=8k$9H{ps1G4n&!p4w#Q{zi{Pu9o4jea2!?)Ph*5y!8}p0*Tw18l3$vyf3uRC#G6#v^|!HTZ&9C$@Kc5 z25A0;Dcz>wpoD?NqU7tei==ZQz)+bs<0%bl$_Zv~OZ<}nv+zK1cxz0Zh5Gmml#KM9 zoYnm>=Z=$*62x11c<=|Sxe^6I+N+RcJ~8o^9o|E9_k{579}$B zrFQXbERgKW4MQ0cf;Ev~F|DYZ2FXt9E|N$J0nc)Rzr6Z;(Usn38%{vLX`fnnAYm&621HpPwF8ym+M#-X*Zt zmmUtihPB|83I)V!$Z7*aT2a+W3Y?UIw-xcWJzaqHaOPx;{Gd6`iVL3UNK}qEUTzjV zwotRkc|9ctNBvEX?v~uWF52nvml=V~2QCplZQOFPG*BA%ICwF{0{sk=Sx0il3orJI zcM+BGmaMU90wx{C=p#JAWN0gI3)ql~*unsl$-^P+MVhn)VYy5Sd_O%0IFE1kBtHKc zdTQAE&BU0H*k54Kq>K5>6QK8n{El_}PLjKvC;q?>WV9 zes-m9s-?%M>fPgalUL@t*eJdP`pI$bosq7R*?y6avm|aJp^8Qel}6#bjO|FHqigg^ zVk_$w*-GO95|w5c|5f)(PcDnl01(W`0X7n8ppYYmfmX!9V?7h3UfbXiN~|ZA7O$Js zQ(s6T3-7oHF=apXkbPn}c~LJMA`xWkM9`Tc4r)N93?H6WY^7Kta_~uk<2;q3fNbr_ zFUdNRK~h)j8lMsZZ^SlB*mgxgN)J`Qp%)HM0t{_PtAkb`79vG5jO>MAktPC-(gIpw z6!O4kIEhs*680 z<%uCfg7UxX1$N}Rtvp!6((_&!?S&-eMtpAg<@!#6XL#MX)j*ABvt?=NrYB&_DxS?L z;KlZ$a<^~QcP;tNkD86(QjLz?Hf^c7DfW!2N^M8*rtkOXsG!0~7jW zLn(Iz={uy~YxAmbEPqZLLU1%}X^-!dl3S+%RyT&Y_*w$EZ~@WHD0`~NIy|LVQH*r) zN0EyP1}tNN!c+B<3FrVd8Qozz5nCHVc~&Kc*(E@Np8UBaI*QJi8b8c)P$#?(ehKWWKm4*5 zpE^oK_5NpjS|I-d^2kt02;ok+G(O-5k!jS|$&CNLM$et{dm*jh@;+J5hE4eUY9Cd& zI0MLo@E{w)HHgA6{SNze7>UhwqInYeKOf*PozWDYTo)UwXGa4_@@Ih5Du#k!f{_I* zoU{};vt}FzMm{t_l^}9Ef|?Ty(Aae!SrG&aDUAHi06?GS zsdTY8f>f(bm9U`>)rW($KI3^tB zIazXyN#2&BAAHyfSs#M&*$Zcta;C8vm$;U6dovg?U*k?t54L%p_Je2rj^B^n zy?2kF&b8j3tP?AiU^syv4Z1zA&WhzbT|WoNy6gOP;I*}82_y|^ zVI8yYP^p*Q(;G%rn9qlPepP4t|Ek?E>`XNmPPYpjk2; zqQM1^bi5mqB34C1)wXr&fvMV@4=&G6DXK1Nsh#q=)9~w~RcVjHYC8pbQZs~f=%?5}xX$+I>h~w6 zOPb%>IAb7O`ZGVWCS920*Aw{-qo%ILcKUewBxNWn9xE^+SmaL|eTe#WxFcM5;-T+% z!m0I3$qAdZiAD16_@X2#s+eQ+EMqi|hIrPseQ}Lb=tZ}UE&Exs`XLSAAvI2s>hNNs zSOf`|j5u`aPNm>MR6O;>Xwkg^iZT`g`mb15d~2aRb(wg}e_2>uf($Gj6J_lEu0s=xsu{2jHbAdhr zRn^=yqi;oe;|D`0>74No>lq`ss1ba^IH5DXgGZdW6cVZdE;wjXB|%4wq18kMxOnU- zjVv4;+pEIiSQn-(2T*cJNZF3&hTo|>&U|HIUfO;1sPKyoAbg?`^d(WyKPtuK&* zo~Ze6tF?yTV_9|rJ9hiS zE|1q#H;ydSUbNb8#qOFY4@K3o>a$2PM-ct=$3`(&yLo1TY9 z_}Jh(g#OW?hxV6-nd{4hE5|YNM-8L_g=K;1N?e}rpGr7=6gn1<f#zI%7hb8$7-3wkQ2C&oiAjemi!-f>TUR!<$a->ycg%=0bLoI^&q0o(82Jf}7luNIaCm%SUv^dH>8`^TWC<+t~2e*zTShU6QXFo=tPseUmWB=O;uaaw@`z ziyzw3;fOkn!8w_BA>}RO)1*KH+YIZnT2W|f`-oaw31Kt8j3|1SJ8SeAajUTva2{2h zd{$YJ*Lj(Y`W6y6^Fs8G2n27SR#G2+TW77+-iD5Dgvsp=)KKWj-%fu&OiaKGK42m5 zzXK^AmV}ak!T=^$76AX^-dY)#8nf*aT$z&k_N^4ISo@lrz zmMQTZr~!D&wuMXar5}K6UY2k3C$U@x2x1qA^yAqP_KZuzj2S@ElRhdedw9?~i@Y8I zg0$TQXBCdLW6?q-F6e++^t#3ji54V*KemE^C4HXB1?s2Dm_WC6Mz-QHhkFvH^!;{i zRN=@@Z1I)bVA;iLb~4{-^?h?IHEZAE7Phr3Cd+SVVU5mdL;u(V&5;$=pQ4mX8cqbP{R#H3>AB?0d~+f`2Xw2lqxHgNtAQKMQkhA-0-aBS)%qW% z$1?dAzBHyIR!9*XVBr-eAz0lhl(ZbH+;d1S{On#=Y{q#f z9{E}A$^JRO?0@#e`O6~9+PBq`l%=8Rn$}!idycFJNM-w=hPH|fpKqoCv+sNJPK-{< z&w)G(HI&tNx8p={iaV8y3LHYhx1~H`;akz`f~dln%h;<28ZuwX$mJ_ED$*lM zI8jf;7y*C=v35u!N80=K=Fz>eYx`o$-7cGf1%AnKUJrl04wi51dkl}@^^$g-tCf8< z4w+%K+Sbo>jg%Ijbp)#dxi8k^GS`oY>_7MHt!eKJ%RJkgck2*)QPz+6D(LK4)%3He zZ_~26B>a8K^t!=tB6=VcbM__G`<4LFWhc=wmiqn@Q_?U`>uvg!C}=^SR|QvzHu2!* zHd*rPedEIG{vDTF_uGx`)@`7SG?+xnv<%uX>GGY`8qjRc#u=kxGbbEG<{KPJ9zdA@GZR0-VP%j^ghv7%SpNS3)5H&imH9|BbmoA z*VQ`3Qc-P5RyFcHL;N8Bcpa8?7n9CfZyLOcye~sR@JR)lrO0cSmr(|)IJ1TZ;_LHq zp9kd8)lt}cx5M8O9(FK>15J;MN3+Jy&Ver4Ejo1VVy~{h?3lauzH`SsJMWh?XkR3F z40O5{p@hAQkAnk4C1V%3V5IY1ec2hcX7MKvMMbj= z)0~G3#k>)R`z&Wy-^rxw2VXKlE%?r@`S8){p%FcF!Wx@a>~~(3bXg|f)IL53nEc0r z`FP&A+by~0w$1LA$fu(P;ko9w7!2ZhO6SQp1dQCyfnqsK`jTq0n;VX$aiCD?H*yFx z-tue3EwXa&*+IQsR*@6!jfZYr%lAH6EvWqbh<0XbXC%v|DNPjFJkcasy1rh zz4;`#tEFo)jJvO#GKx#zdp#wzibg0j{z{i%Ba1#R75kX_SRtt(bN7HoF|#DGX1v&k zZ##P5S|G!Yn%o$U-i}qpFlK2HeDg;~^eA>eLQEC!3_0QLzKu(thkQ6A{Q(-eSf0pe z-rO|B*36L^Mn1}`Po!{qTOOpCg}g4{h$z_l`ba0*23!im;2q_jqy${@S27|iWok}E zhIYkjkR?AvCn~ICNoRQVuJ71x%Yg;{mZ$_*gfGcWI8@b6@OzMLkd})Q-j1ku#g!RR zOyoz>u;#TOo6T*7!vXp07SYu89Q~2H^O!M{#VZGc(t-s3xaeaqknjinX1F3bWd)|& z)9U^`9@FX!ug?LI0R?=XdzRu6*DLFJ)v@3wqbkSp(SUk!&pS)ibosr)j@2?|@u4^w zGiB;nwW?!QSZ%mN04blVM$@D#F*mm zc9}|il23%tV=_iqI+sRr*(Fsei#wfZ<(%l_RbvTG3L=AFlCv&~ECAI=&}#fFY9^Ro zeDhcCyRzrAo<}2MTfa;TGZ|Clo~ljShEC-%xBg(w9Ejz1qZe%py-5;NaCC-k9K=nc zT+$V+HKO6v|1{oj8V*#kv&BlkZ!M|f-Nes02R5(nxBie=Gk5o+4faWUe(#?9Gycoi zRWp6%+^F&Z`|Eh9z1RJrsKJK?_n!;E{;=<_>1IT z!K*xqzLThPfZ-f4yGEqFe(zxDX+Yf-2O_t<+Xy;c~LC=tH!;mF6&vN#S)`ohQTTPqwp~Y8T$+KNc zn0Q%xlZ){VL4A5}EtrlDb%q1GtdyIU%r%G;KNZqK6vTh5+vz@Q*C@EjHSzQG@Eq`Y zr&N|c(W&^!ih;5KYiED~WNW3TqeJO8@)5HE6Dj)-Zb;FjrZMI8HrY{|JWyu1V^ooo zsXHz|rbi>At$ov1^%u2mg~`Z${4xEvu5~D{rc|GtY?C>E*c`P~1Pi#0nTh|JV#DlLPy^RrVi(|J+wp=S{ zj5;#1*%QRc^EMQSwMp;e3YC0EJq+nO2Usc-;8uZ*0OR9Y54uUw`nzMdlpj?+sMF!E z?V&(FJ_m;1v9+4eS+wj9`^A*Tt5Ms$*RLMqU^{)ykK(%B5}Ns`>sFUV-K*sd?S6Mg zo|!ZTnq(dBTjZFlMX{VhUXjH>uQ$|2sK#2b4H(N<_$uesrit(oN*q!Yc{ zb^ig+_D#NxBArYw_$(<6^Q9flHDBghQ$M%Xw}C>%i*D%ltSG^QA=GYVj43?-HmFgz z%JJLngdScit~he?wv^UF#`<&P?`|ba!ytGY(q~QBLp<2K<=*YV8%ugbXNy%_WNp-n zAxNoN$DKH>v=j7r>M&_8-Og?tN1UoM^Ob*@@cSxcHgj`>C z*Cckbt2{gs8{}+0sa#rvD`p{mO-zUfy^aPJ+M}-a*0GA}p2lhX5JOAB`m=*(QW#5Y zr=$mtq6QlFXy5qbx26y3RU}oj$@fuMYiVYgQ45uwsU2XP?3dGRLH%*8C^pWjDDm15 z5s$ADV3R$lT2jF~a}|#^Y0YqPfqOxFM5OJ;U4-hoyWBdnOCmo>rG5y7i{ck8rigBp zNYLKwS$s_VfM4JoFmyEiY1|{c#esQr+R0%)G^k#W*10bQ7HPIC_aYd6#=b!aC(ABC zBXWVGk1EbOz7<>wi1;?2bP1z%{K{-$QQOZ( zMxe+rL_}7Y%`ilGD^kRBeC-e#XP)$9Wl|6ZC;nl_2rqE8)>6UMu`=i9g9)#cP4|W} znlf07#2eJ8OBqh;#nH%;@~R`sKY5wlBy&dNbILIr$oKhJMii);9e}yX`t56nLetb1 zky-wC=8wRM-k2g$as5G>X7-wo*)*Tn?OVJH{f(P6${`yy8#Nfi_m(lJ_FRjWc+WMN1HFoN80}R=v-djIK6`TETu;Rj}XmOzGp4VCU;z zDx&J>1SvfXAHjmwuYZ8^Lg@BfgFhN0}um4|ni)}EFQ3VL7C@Fr?{%swkQt!kI7b}$i4#re}If}XiY0Em3G6Fa zkn}iu%XE2WZg@@{H>bvOCK6OnJE#S%tHEvC1k`zI#wp| zXW@Dm&MW2b8-Dr5y##5{?N7kC+{O=lL69DH0}@PdI7Rro+DPo}BjnDhy;P zc(Y`=u-Ng+<5T(E)mvm$_82aWa@}{cLFDaoJan{`N=Hx5ftOQ1-fcBxTkcxSNHs6K z@9J2(J6SiXLV29p2w-gBjBr*KC4bGeEDvc~+=*Xep*@vZ78U_T8Scmzob0-6ZxJCZ z=YU^ytL?i9ET6apqZ*A~G%s?ZS!KE?C)$^OzCwjG=0yP6o7e~?{-df&<6^@P1QV&t zJ1M{NZaM9`_oIz*Sn)}7XA@~U#D6pT-YkjgkzVR|lz z=1RV)zMBTe)!;3zU?i`~SeE(f(Abu*evK(O&(=JR8Ao4R%$?2G^?Q<%I;+pSdL~Oc z)$7G1XaSrt255b^1YQvGU=~lHteOvbPp;0ws7ogJZlb4n)+f~?%N?a3;nHN?>s8Cj zxn2A7BwMx`bzJd&^k=uaaQ(P0i{Du4U~V+=p;kK@7-?b9o<6&tx!_6di(~RyHBGF6 z>X&3n4TNo{H*+|s;6rQ9;2`d8c;ALB_F5$)DerX36P}p)b0Fth;GXZ8w;;KCsA>Fk z3kEDx8-{auF(a~J!!l1@H z`##b+s^>YSh4E!on1uNOC_O3MQJZ9l<<`_XQS*0x9}?L!uDu^ALt$`cDL%jdJVfbI zRyuS)=Q>f*cvB~ZV6?vtsn6`Ap5jop55n0*42#?yId9h{Z`C$dzv6tQ&tF(3f#Wc< zKiXc6L;e-Z$RjGXM?7pyR~$O6u5LMyp967W!0fbIHcn$BaT)QGvu=;%Q3|Cy@9LOH zjn|^`$_RUL^Y;{dKUN<#AqCq z@Qc2_$w^6f?(#HuvO~gx5w$26F3xnEVE^esr6IEM@tMPtiTwUectT54T5V_8cEzKo z`@NL)DAt18Ctdba3_{}uP>2$_0}E+|bofM(P-uP)CP}laVg9;Y`71X&VlmDB+u569 z>=HDy)d|@Gm-MuZ-Xcox&BrFAZZ*tYEjE^~S#)q`B%m}|Q^)#-AIK@s5nMv*3WzboEW(7JB%zUPw(_jw4@TP_DRBLp9}25++TS`db!zSq3& z-nX69Pa|VN&86gc>E`(^QW>JF$7?JLwUCsDN2y-flzZ26glllR6BV}^a_VKrecUT`;0g1Hy6KXq94&!6NY;fO_gw8; zA>iIBG#_p+EZyrPLuz)WAGw$_CL79R(e_lT4k%^wcvg!4@gbLNSpQN-5TO;+n>JIH5_p)^dY;qMP1)4YPME1qFRle zLTP}jh-zm`(bKdgUAvC+K!(b%y%jY*`j*n2mYbsaV_$Qe{^>$EE^sH{^Qx6Z*7mYf zwb_R|chYV=fN906k&B{_K9I^R=A~)O1l*>wcq~oe7tJ?4u&$NBb~l!Spl#t;%*EIz zrKiu>)E);)B0x~?Le??jm_4?j^f2@7S6>A#x^yaGxWL z&ZGH$EuLlGOUZZK<#fW#GM$&|g(?%b^j%Ai(@Jaornec*JF~Jqt(1);TZX=7JH6w& zx!ovtulL~H(L?vI1*qwlr~ZNd0dr|R%M#02656_S(aTP*56OH@wKlb!+w6;`ziRf3AIH~QX{*OgE}invP-icI*2~mlzS%>g-<_P)WDM zN6;F*drW)t4*u;++R`G(C+hFJ{PkwJ2@r79j7%e?Ax~WN-ovBikAk%bl5=2IL7vnQ zjjz6{dvG|ortvW22M_)dX1v^|OV8rhgJ1ZcF3IZ?>a9<4vB*I1BhCS0b^08$n++l3 z>8L9n$oB`}!%6k@ErAR{RG%=u;K=F6KwJ4yb#eY#1TdrV{-bkI-x?&u?Wy0mtGM1s zWO!6{^Y^*lP{CYTHrFo)c6JCqUe)v;_gILAG;m`W9twW{_34&oeAMmM&?id@HlLah z$5($KC@;}ubinhCoW#}(M0|sxeEQa*PxcnmGl(8aUWPdmq3>)KX7tUJ^Z)Yox8R9! zXe&IPQ}<`k?xGyxW&JFb>MMrV{Yx_DhHW&%{r%up#O^VgGr4D%{@9TDt2;vqOi=0J z3ZE%&?$SPa!~89MJ=Ogg-Uc3k>hqw4A=TAXi7T;B>BJ>#cI)c@9Vv52G*9+A-4vMri+8)f$1!9$rr89 zMX%9$yRt_{LmBvyt`qaLI2M7{-SAVf*`!Mf5xg~Sq1Pn_qpu%M3o?1pT$>&eKyJ^Z zxiHQPQGZ|K$5sVi$^L$nxwv4l`*_&`Lt*`rAw#toqOMow!n`fH=F6clbuF@4?8v?o;+II{W1t}Gs z%MsE(X=*TYu!3TaA#Og)SW}O`Wv3_a!oRhJ$}n1P*5Fn#(miz#{6*78zR|VY^lB`Y z0Xge1xk4bfOzx8ON`o5GZjy7q(L)aRTaV@|6DtJqaGkVGc&fiwY{OA^MLJ1 zA&|)2a0&NEqJ3rFp(Lzzk7gSCoE|Sh-wAvZE{HDeStAv)(oiTYr@JPcx7OJUZJ#C> z#U3`c-$x>-Z{DSFt&<+!F*&!a*=dteaedu_BvrX%n-AKA0N zr{v~GYArrGJ{!s~7Sm9)6hX5)eD@i;N3NW*_E`#N9*M?r0Nny`br&32NIIt3Cn5tJ z6dqK1I3*I4wu4yuJ5#uP>E?Ojpq=w5!1` z*IP|y2;!?sDFK;~iVokSVa}&>FbzlptzmoYYL}kn&;BgjSutY%2dufx?sJGmkz;q# z7J01^XFa_twdF!7^c9azrG!`SxiwHKH|7|;KZ+>XyK{8!_a#Un6-m^RP2n!DvM+sm zAI{He99R~CD$z#`wcyXk3xvKcQ8yTxyyhOHAg-jZVQp7Q-rugDOU|jmSW0V4h%}mx z7M4u&sW&Y)GmE(KOmt#~oI#q9JG?AClXw(c8kHt1|2}aTc0KgtgZV;@uAY(sE|(TX z+7)u0oH_-D8I7@BrR0{p0ldJU$CS01Y61}EjxCy!Laj@AY|P$W_2uyiV%Po6B0rs>G^VQqiM!NdPJrpoN2yf z%?RM#?XrJ-%l-}^!SKkADVd_8zS1~&da*fN*}6j|-4YpPeuvLlr~PBnB8d_5Wd1Po z=;b-^?As|3kuQ|UxkbaLJgE_dq8v;eOQUA+q*=Mz7R*cu+a-x0mSte@8&D~!~ z=)g{_@ae&w_>Z~ovbM$FbYu4ZDlC$P%>$(*kjV@D8K4)&8 zSUA9=IeXW8FM-QrVewh;9Uo*dQT)a$t(PhU2A0VIzF4EE1m3nbQqF95VEs)Re*9c? zdLGxjAUtL0V2?t&JN|3QHtOJI4)2M5z5QAHYOcgn{tr#xH$Dv+o7q-NkQi1`qxCyB zU$)n}B>QqCFHRiyyxr`O7)?t=+Za^yo5*||kd7Mn7@!?0b7Wtt`xt_1!7*3x>j zAX|kc|9i9su>rY82))x9g$QW#o*q`HcJ_JISNK=_h-cC1$-9cDT?Rac5|sns)1~Jg zpI{#tynMDkgHNK>LTO#3vp$*>RWi#!BSl$P7}{YAe6hA1?<`5L zP^Aud>9`X31v^RT>$4_qrqnGYkenuPST3NjwPn48)RcLb7Ob~yeNp{8Nh z9=dtu{xxZ?9Q1mfiAWK1yR8o@t07=YLj#v9EJrgxE7t-8PO->D!M%sHy-!xp&fMqHg=Y_v<0N=@1Eund}T;$1-J}0$k9BFEV z5s+uznzbz>QbVdL~d`dFm*hczb#mU(1af! zzRI$9p~;<>Yl8`8_0j)&)ihF^EZ{V<@@rC|fz5g`sk0XTtu?LlrITv`q@1kJfa;Y^ zihZOri(QB-f0ZUOYRmdfqBDk5<}!0ZM})C;hDy2mFG*+E^5akB(y^5-7^io{?Q7zZ z`kSyYF|3@hFN;YbuR6<u|8|C69 z5;vqVQre)LKOXl{n}PAA+*!)RA1RSZ@+%t5&bn>RU*ZI{TpC=TSsLmD29L1Nt!yS;b{{HzCDsmRM$|O9@kYvob|TULTfajE^|FiF_)q zp_X5!bH*~p+v4&Sr~e8V^CscTErMCU6WW0-xZ7B`=ft)?xM@D3;v@l2YPTEf@Qa-i zo>@vLvk6JTB5DWJU05$aVEj5PQ=lF1MaT|S?Yd6uaF6WKzoRhQDtBGj-Nf zRzA!+0W5VyA9}V^c4jBl3}}=c&HXSth)pS6@Y6oU;#a#{ z@_IQ@9J7YZz}eELmnnv$WK7xA20D-j>3tMD&gsx-5~};phl;=AtjZ%Wl#=f?x64^; z((3~9)4VDve#x5$G-TeGzfV!B+UyMJXugk;`Y7%aiceW@xY?PHJySd*{le07)%X`S z({$k$N5)MRzkq@SF3X?<2Z>h`2h_uL%^JC7-wUT5yW!QZ5F~nSlpP27@ltk^5}dle zUZyfHmRI+g14tho5EFd-;@qC_`r0*ok!(44o*4DLc}O(oQxks;MYj584iNYuU%yF0 zD>^uQTv(1={zh&OK^0EVLMtZy4fQLv7YbJP#3`moL!S0_0kf>rr@j?NJ0CsSyeI@jI56NT^jcHC_N zW`3=+)=Mg6N#WG9k3_+12U!vBn1}vu3z4X&ST94Fe(@ET3q?@ro6b=?y=lQz=O3^L z=l+coHk7{<5Ke>6+z^5@JwOl~?r3lV5JLMxJhM9CJG3`bYsdXr4 zctgiqQ<)N9+7l-g33Bxj#yblA5pMS*=K_+*pbvODv(i)xUHBj)pRu({l5Qspln3fJ z`A58XXKhckd?_sM3(&Q3WWZ0o(fDYb+r=(|m%C$<39=}|x2<(gvh+)DNM=(?5b_+0 zitLU~z);<)aT?n_0iM{8jIqOMTI*ZyZHhnCO9mPDuE*;!#y7cBQR+o#0LR=q8B$1Q z@r*Ljt^y=awd5~jw88h!l2crIEE|t%r=DwE%1nyqT78yVz*%yAyg0$YG%R%H5aueP1N?ZZZkRAvw}-0 zDyMmEu*KHvV_nOwFV}W7Cj^5Y@#C60DiUmqVTakr;++awL#a!J&+<~DkbdSDNLi*P`uW=t1Gm{F_I)&*0U(Q_9>}>wxw!Mj1 z8k~=x+89dtD8`25IUmt~9=q{K6^Axwj_D8w`z=GWS8NEcsZ@ZuW`1{En~49a_Wt90 zoXrKciJSWH!sv+M&;5-G?LUKk+wIlY(zdHqrkw~kg6vqUsjoj6^l$I7bv5I<8KF?6 zjxVqwzg3_L-WVe#BVF1}pu~6j@=24X#f$oqu2pX@#TMs}q z7+LY+G{hyRuVs$J=2hIP|D}paSl-IN(%CIZD%oa8B6e$t5icp}thk{=7rh>%PUIcP z6`jK48htE)k+5;@^F8|>JxHG<#IkTTen3Lq#yGmrCJE!3?2>?{soS%^OrMZ=<%L2n zO=accesR=LFEY&dYS@hS#J$Di^vi?g8@iW&rnU1BL_lsnfv-nj0op%qfcYhh>su^9AUV?W$2biOI5thr==v`CWyg$?gY!`C^6- zir69~t9U%75L`&7_diht16w-`PI*n8k6`Kvdl+%#;tlh3bW5%e+ykD;p{&_uVvynITUSkadRhR z<5hdJ{!G2H9>0SwD+FH^dVA?^4MXgn>BbL~8r$Qq6_xaHevjy(;$Q(XoQ+%%Xb(24#!5*be%X*$Xd|VqV zIV$J48sq-o?dHXZEf|)rEDilzJ_N{gS;{l}zaD;E}}# z=?o_Df$!}I-|p(ijU_EN`Ro*wzCcLG(N%B0ApFjf;7nhJW zWTYq{`#gN3%Xb`EY&}a-9o#e*Qi1g4b!&dFnUpLCU*lYRYcJOJbOLH&>02vf2Hi>CnZ+o5X3O>dE@Z9gImhTc52_*ZpDr`=}o>c~_Pe>5?pk zTzY3Ez1K+p4*<(RG`}^`2gI(HRSnwKH`Ld$#4DLDtEZc(S{r4hNvl4uE_>Tv3zMn;#&V~7s@LB#ELuz`AG) zRY9Qm;*z}4D74-@+r~CMwfA5rx!ZK4is`06!a@LLKHj3aVDCv|z=esAPu8Cw`cZ!y zJoZyEs=!ryijo3Dk*MSX=TEzyCESY4bekW%{Y~5Ag>LQT`lu$4y>4MBODPq~g+_ca zXGA(@$$OUjd3(O@7g9^ES>|^o$zW>PD}qk}m!>?a-K36~!l%$4Ddw@*?3R|y$rGWX zDR9~bXRi)~SNLPP7r*nMy90k~<;w9alE|?VIgkk-40XZ5X3V;5i6`o9lmb7ejytNg zC8KE|0mPEI9yq1Tka-i+Jr`#3YYo!LZef~;gWRT`)66vvEeR%z>n3epd*b`0+;%&5 z@TYQBqCqC8gDomRGU*u%@;K(XD7S!eW}+L&rjVE?4=im-txvVV9B2p!BZ^g+>ok!` z6m1;8P_I%uV1TYGOo+>^Fx1J`dq0f%Y|e!)I#6~zLH5?P4j>%v7GsHN_2p4s!--@zgL$mBvauzF?>#Cw3pJ&W!v+k3N16ufxgey{$VezkbV>UWF7zuBd( z&ACE>H(k5fuN=Wfq|!5C%}5m^j(GLr`pEgquR}Jrzo}a#w8rZ8?S8IB(9_Lqvdpvq z3b9uN5Cv*+F;W#p`Tc9~Yh9_f@9c0r^|R{|S;K7_IUoYWk8so}{J83kw$?+ck%01V z)yOYV-*4FV;R^e0=Xg=)RqAr3ejm4;6`8&S%IW1Bznxs%ME7FoDx^eQLgW>psVtTG zc<>n6Sd|PN%umhF)E&cf@^3c1y}Tcpa^1)nv5_Q!Xt6G)12qFN_+?Caw{Wbv&(``I)mQ>ZLw6QtqG!--kn|ab+ zq+CbuILHCh9b}dJp3$`LR_kfJ?RJ~BsyLM`uV9XN!+=0wvMUOJ#8=k}R1oE|+O|!K z;>&MKKONiPhD5gPgtWJ}X-T6E0aYsPT7ks%!ytZFZ=1EA>2rQAfM$)EC+?8iy~JuH z3e=Owh{hR%;&0Yp5(dud{x)gix1&ciq%^&@G%2i;T?MrYkKdjbtyIwYXX(383Ep@e zmBK1(((J93Xy3q}@xnIfDtYAbM-}X-soIR6eY}}a@gW&U4xB%RIawuaou=2?EvZTF zK*EF%@x%eBt>lVmWeju^RAMW``A%cufGn7_pm2p?O^VgeEG`B?^8bK)@|k)cRujfKi62SrcHc^*|5fKgpYr0FWrk@DtiPev5R z#v>5!H!u&Ue|pri9Y@?gI04x%jIK4Jl_S|81Tge$>3}0TxMM&{o)o|nXMyF8F5zUj zWept6C|DjEy5n6%`ezpw^4g?x$!PJZ($WT25&MosPFWl^5z}MJ@LYmI1!2SindoUl z_Wik3od*{hoRSz9mSwN=>4@~h6^DTh4mm9M! zyzz^Rm}f!TkzI=NsIMsO(_Un#*tc^XS@2QD{ zW@U{{9Y7$jtqnL~){v}7&Z!b=D$fDoAT*|bh{k_$A=8O;mnim*W`D{elQR(Ef#<-H z!wt)V>7tbyqzYn>P`*DfnfWie2i7EiGg7L?%lz@_<)ODu=OcwS-rxLK=+1p%qt<12Je=;3fSr0lkSkvz$ zi+#E{lW?=UkV_z}jD7NhMz5%*XV($;k{@o4yPe4zJ9oH1$0)?i6{+Y*A9fvkrhjgU z4G4@gPO?EGs4T`>YEUQ%HO`oI?veKBg!`Jo5rP}%f@+NtA*DEfFb0779AECq`*c>% zbGu!}J2!U*<~G#Onx5wYP;2hti2J&e_Qs!R**9-2v5lQzJq$2h)yN##){uLE<~+=|15yi<`-1 zUQx=V=p+q5lgQJN#4XIzsOaEd++SSV?C@ED-I)THmyfZ4Ax%YewS7NrF)wpA6@rR8 zl!CA%f+*w^Fe??VT!-U_T1<@wuWH@P*^41N0EUr}*^YDvm)q|<@+U!6yK9nNOls#f zlmHm~NaB7t;<fd!es(rL>s9~>vSkkD#2pDMVsS#=e9bAu5yN(Eh1! zt7z8NyOjR`PQYsI60!>CkyaER5zO$VF%#UPdSz1nuKAUe^Df=E%sXnOQes(-o(u`j zxth@b0G<-uq0=VVeyw?1O1I~Cc}#4jp_Q4CfOAr;Pa5WH_wyOs-Kv*%&tBU909I`` zR)tr#Rm@f+T{{Slale?z`Y^{}PXC3dl z*H(e4&3 zBU3-=ACgM~$eVT23O8=vz4xz2Gn!v zK=@;(Tgat?I3cu@ndcUts8HJOpI=9gHzj7X3|J`P^XVM@KhK~3nu*;G*C{HSHT_Ys zc3#z^s*_0zmSh|_(uX|%0G6K~U9sP;M>Om;z@y$jP-D5a+;-@!=C+pZ7mC_oDk|WL zgGJ0_MS1?+UiC^XBw+1Po(o|d&vkP=(V2?KN*NF~oj%Y;plO)LiMe!&M_sehJXgs7 z0PVf!XWk~AV2&Bpp6!5b8P`|3p5S;2fO?GU&uO{~nV+vR{{Z_d{R@+9TWi~2EZXndCd|-^84+1BKA`i;v>7Y4Me2N!dD{BRm5JF^n4zB8OI~=70S31fjZh7q8cDXicNIXXX-17Aa-FK z#bLNp6wxM_oQ@!H2MPi+%k--ng*6#5tw8v7t{@Vw78z~QVEH%7$_b-$Q`7Ij5hnVB zXkOZ7J-#v0wF9Rg-+?%sLv~#&B7+-z=-q$E0tcGj9M@K~lQkJv;wmr$4_*K}>B^CN*suNbA~@J}L;QsO8H73wZYSxpNao z+m*8pK~Ubcr2+Wh4K;?zJE})@6P3&}sZziSQ$8P$`UysvE$pU>J3H7Fgk#uAp{JqC zJZGr%6}3!9WJ@D%ma|$T#Hu4vN`jeWO>4^yL#GlO?OSE6L2azy3J>KzOw>G%s+?$H zr4_BWEZUM7^=k*Y4GFL8z?~@dSg-BgCTQhtL8v1tb2)OLBjQdx-n_NrQ>UeEavPfS zL{+*;0!|z(an|30&qNsT`&l}4e@C!?Ipph8VAv_Pt4t4u+ z#?W^PeXp4|&&cd#q)|Ay5P$Ud0;GgL$VpIXUKqmjyIv%%t9(h)Zlc~rkXr(+nV}k7 z9!J}Vo%a^8EcWygUCXqqGi0vbuYw5=ASk9{Q^3bt~4CBo0R%7I!k!nR(ew(IB;zS(w9h5sJU;H7iradDI?6 zpGs zT3njRc85@opmG4$*ZAYQ7Ii9|(7!EO8alV$_Vt?P-2+Uv;7F@de<^$=@NNBP%y;&aQYod$1jiop!qbb|Uf z%~S)aN5|KX*y6oUGrrc{&NX9l?^dzfF?&|Gyo}IlG*)52W^%3_PcoM6>v~8wm-Frd z;Ml^@-P$!Lg@CGqOzB#YQaNOCWp#hCjI2=9ZTpN2%!%!<%}Ll5+h zvVY`*+tV^^3-yq?xcZics`9a`kTcTYnu0w!Vy}4&s#m8ZOSIW0(q>h6whLJXlC8+) zk*-|vgtw7gMu`!wtRSAwb(#sMXhCZ^AtSk{W+=6(Bkf#6?vPotKem%9tYUfKieIRO zjEnhK3hhTu6mSO~qn0cG09M~I_OmU2vY7;q9x)_96&q zymxB`v1NM)zS3cxJu5*`o?!9B{{YanT2zN>>FPT#nfV6a13;UEkUW$#J*%>6q03NO zSBW`}Cyponou$NdF7hW$<{O6TZ#}K{;cRRI@ihaDvHoJb^+e=H^XWgwW)k3>S z!PR&HP|5{4ejG7B^eyv5bY@WAc(%)avIM;CL0vYJfDDnz{SvKsif7l;8mr0w0GY2s zbjYXK_KB_UrMI}58hCzMRBJ=>v8tXUF;Clz>#zA0=}8yu6|>3}vnWBH2`Z!mp94d~ z8TA)4YkIjF6t~%+jJ%O9WAdkoep8Xs{14tea^r_lE+k#lSV1KySub2O^Ztj6NC45kV+Q9rlIN4lGjSRJ(`b(e> zvfg$70Oe~?K&Js;O!LK+>TpFgva;fG_15@oT>wmN88sJ>yIN{5;$G-9Awkii`k(o@7w4Ngt*AMk0 zOB}S`rHW%DZjq$J+=K>SO3_9d;r^(dOqD;8ZjqTSY&Tz{oDa$i7zIvT3n|F@97d?} zBCN>o{#)m7YLdsh-kIz}YpjmsD*;wOAFf*b1rlM(Nt<2D?lm3jZgVx@7+gryA~G&LV3##W@-m&2Gx~Lbm#l=m1=LQ*u&h% zZxoWqH8{u`SC0x2=y4P$U9^a&aFQa1J!7~sWjTBg;f*yMw=TfqPa)pPRI{1%jEIoc zejeay_hGH0isw!7E-bem@L6sm({$(aoK!1%5l@bPW4ga1g~b-imS!nrXuybqCy9wG zL+C$#9dZMfY_7oY)aYkO^n8O1(4ruH@E^ulH0x)B_ZwHDx@B^~DPG zC?DUT%@iP~sN+%g^=crrXx3ArCi;cUuAi7v zypO}}TxM(vuy*uMBKxvXc@x0#^%xLWOK&Vq+o)Yx#=ulp(xVz`GbP%zh{`SonHMCQ zJii>U)C&FT{>I1_wY)d~08RrkqMqbxPZADnJ$Uu&jh@v=q-R$~LAde;@*TA;M8I7_ z+U+M(P}CFw#*wDDolt5S~M%X0DwBQ5!N zl0+!&kef)!Sb>{Ufj_q_dJvkY0?r;}`(3Mk+a04Su-!nU+ZG_Rf<97eMF%Xgjrpg6 zXsmuGsBBjor_kHmZgytn!4;mgrAI0#Q(uNWP4$_^l$YRpAN^+ArXL^Fy>#4|7@EZ) zS$)c>pd(i*@y8;C#Y&dXTS^>JGTc2hYwA+o_~T9**#~4)Yl*=iQ0MME55xR% z*$wn!sZ+>sN_v_r?fiJ{^C|^oECEpe0I;d3pg84M67i^^eGro)`We&#r~+r3`qt0#8xYjK<)=1 z)vv8FGKIQhJUs$}u3u5RZ|)ZNZ&lYM2C@g!T)(Jl8ipm?w%70a5TcXFxv^`wu8rhQ zBf29e1CYp67NN^7c%{oRYL0(_bm7RH_uI0hiwi3&=Okm>&~OLs`}y67SNAWHCCWUC zsP_xzEUiA4ZB~7c5foTk`blJjLH{*9BWt1XT$7o z4aKTaHS#YQMzwYM{{TY3ZO%g^s~g858d$Dhf4hb%?%H_a@-H~YD!-rf82-g|Z0!O@ z;#`~QTzgm^45qZ<(-5~Y=Dtt$EB5g7`LED=UmLx=v}o?E8P)gP`*`@E^`(vM7UtD#8PGV9BmlaGISQ}`O=-rX_>ETeVUOZbZ5AXO-JVyHE6Aar zZ@4rr2yz*DjVDPpr(g2g8`aE9Xu16fx0ZMM)UBMttL^|YjD~d@G9sA4Z>0E{y{cc> zEq3|mQh@{$MAc9%zg_Zs1!&?50*@p>7#yhJuvT2N6s^=}Ekw(9i5J;8ULuyMpl+&N!nN4h-s5 zL1ItLC*;_JD#s?>_Tg&iu3yPpc(8RCpsyw3F~@U2HqK9sICUD7^eKHm8qMd0_5 zNaAG@##9%!3s){LSoZdZJrmkWr%@#G zT(P6?5sw2^wVNSc_#ctlO%#yrvP&G9I=YcnrE?_m;Zsk;61&VLl>^#MaAbe`OLmD1 zwUc&Tz0fD-vL8aV`>|Es*O8mpOU!Qb!@QCUvnJoR%RFmCERiXZP|~E9RU?KG?-6Sj zkbSOvoA?r6!~BBo+(syb?6okz4*zYo6=F6`@rUo%zP-7$;#4Y!B+c#E@f zwm4T5I;&b_z|dDLOYZ!dA$IA1tN9UZyc^4868`}9)-MeK6f|*KWsn0PDPQ#0{@O`m zg6)%S`(MbUzwmE4wz{R3&ojX)`vathN2@acDM7-xF7sN_NT2z#RIFuQI1(W6UnN;& zmOYy0GXCjdXynk(&7&eRDrwf3yY5e#GXDUXb^id2zC@AY{zTp7U8-ZJtxj_pef3O$9z!TgNA z;p3b94qY~Tm=AHXk$th3Rt->d0Gd<^^24nzLG5ll$6!m;QvU!?J6jQ;+$Bf= zAbI>?capu9)0SB1vs&b0o2R*2FOmymA9S!w$QA3I70}KlUcZvMd67 zdwF}PR<^7TwG49BBZ3FSk4q zFJ&ypEjKHvE{1}!+(@82b5&z?KPxSGec0-hQb#+30WrMok?(#;8gOu)5Xxz{pBuMA5dRx;bEhPsvLW1E-2 zjAy9Mgjk&Sgl@rFMy7lTKMLWfP@m*J4?f8pQO`89Jj(BFaFlVzg%~=oUIVYLIkwxm zNvbzf(%x+0ZPn1rc!!Q%N#qbsZvwTV$cuk!G=wI;)@9CvpV;H8dAXccELm3Ml1iAL zOWSybly@D;yPcAtrMx8;ppIsok17wppM!IIeo>;4=`D?jy15gsJR@hnb`sh>-*TFD zxK;!HnkWa4I^%*<+`LqfdwsoeWqpU~hRtC++*l>VQH9XZY6XKF$<#sObFMAayGm6X zEv2UGsh8J2H@3|ja$jv-*)6h$=BKy<@C1%0)QbA$icr$cOt6>8b2j#3IKBTA4n8mV0UP8|vJ`Ue|4$;WH8 ziq<*S$=}$EWVbk+D3r660$+kdDo^?r?XavezHE zk(Hbf+|+|!y)k8Gaeuq$S4F3r5-%Bq*~w~bS4nD7o7|0^7-h%ye%j*g%C)Mmp{kDE z;Z}8V;}A}XAJQ-}BF4_G?@}lMY6=j22k^mJ#p1q1J*|ebXHj@xPHTe2T_4e8`sGAq-A#1bxFwlybDrl`HKOIG1hGn0$?+8$M;I@Yq?! z^}JEXGObiq3Yw`I0xQhos@tU~h;g%?Bnf;?Cy+Gu#w)6SzPf$LO(+Rd&k~^46h&NZ zK4VSe@!D0|);U$1{q-~?513JC2_CqPl%FBew74?Nc&rm!o111wS!hGHjZu;J15b`2 z*^+9h60O;51jbXs?OxtQxVDXC2TjIHrNFHjSOG&r%M+$tihttp(#fskHmD%7xV1z_ zP$P~;I$1_p7biYmzrH$7xnf(TY4ByGzmHj4+88ZN5XS+c2htbal?XMV#!}nO;>#%T zQD%KMSgkHddt^sbNUl);(m96|%y8$HF81@GRR>?%$?)OI%i)WymEKI-?Pvc0`Tb6GD9>bDQKlZWopuZjZMT?o)Xzz zZy1Q}Wy0UosC}z%j_k9PY0}tryG)!99exjPuu*p zgo+7rQoJ(AdJIGDP3GUsq72(F1f6ABpKbb4H zu1JAxC6$wxSQED?{{VJ?Q``uxJ-kL)V|Uu?n`cMZMm!Mdn$96BM5~~ckU|s+mZ!`B z8SugOr1LO)DAtOHaa~$RZxM_OMFi`G5H5ND04SjQ#xMT>Ej-N@!Wk+Y4Z~^=CBwsS zFaT;LLjmiUsKfqR4`pvUtUU&#@;$0VVi_4AeBwe&El(Xhg-=XBF-XqCSYyRlmnO@x6$VlMq+Nddz zu2imh=lk(JIC&M9d5c*usMK54?_r%`l**-)?T; ziWocSpng=vkowRPwG{O~h9jp1z|vjbEpYi17rTb<6iC*$00lpoTT3@8R-pd?3}@7j zBNyGL!Tku*`3~L36r7b^Pa_hNM}MStwe%jAm-d)cm+U)CfO$l1!Q z$_YPxMlXjVi@CR$mlqf4RV3UEyo`hieax&l8u1@*##f;;?vnH)&A5|hvc-B3s{t%b z8{O0?r9L0W5!9C>FZxsDLlavF-C*4kWR-Pjm=NekEk=hfm8Km@av^sKavO&CZda_* z!pQn{y2l!yT~r^mejKrFaxAahuk9kW{{V@l+>InKv*rcJh7llQIXN1$uRQS8B0AFl z07YLyzAfLy)_Gogc;zmw6U-4A-ZnX_9U##3t}j^?*K_?*5Z(Ax6R`f*Yk6o}-ra;| zBdV!Noc(b%krbVOWPXI3&Ev$Qw}C7yZKUmgw+CexKy1#CNT;q?(y}@dofQ;*MqclD z*=D$oOO2M+MT;tk6ggfXRrLxA^urR8Q*Ri<Rc5BOUskK3GA_4;#)EW>$u2kXa z`!Q~dEbQuE;=ToW-z{d3OKo=ZF(#(GPP_RLJY;p^z zYX|wLwf+A9vlV-2(C3!s+?8>uK0V`HsWeG%Z!>_VKq#_T`n|_Lw;XdVowTbXqRedF zRmP@;V%!-6uH3WFP+l?sVh&YO4?6zbb6wo+t45i%t6N#RerG#WyKVgUHe1xc+E~#Y z^r~oc?f0vKMLOlr*BqV7;)HeDmJ~EwOD(Jg@*fP{JbHA7^oA$1dNyS$5Tban*loXHT_d<1^ED13u$vKHGa7LTHUbX$;G+Aalz;2OflW_U%gs zdsFRDzl|I5%QG+I{wW=X=|1K44cltRAT?)4 zufy>@8aBQ9XN5;{VA`RWusX7?Mzp3p$J?#)I@ZR}|c z#O~GReM*-aqH~;V7NmvMk;HwCuk|eZeTS34vP-#OfufIbjmr;u$W()u3RjH?#65+c zD5Q24B>kj#<-LiGvuYMnsFf|`RjNN&*eM?_R5*QwpYC=0I^(%%qE^Z@o%!S{{Y09_UlkyWdv6XX(hz4-KC_`dv0Nrr)iA|$OWk2PFRnz zvrpPqTRREh@#H@q^(?^Zo?CX(t`xjtp|i^@{c!smU+P*rJ+~K*UOyqhy)=E*ZOMd) z3JDYhD*QMRpWli5D}U-jx3^6yudk1g^jqwflOs(k$sFWID2!?MHe3#85%zZf0MzJ> zt2N-hB+bKlFvV7%^1fceuo4&J?H|pTOi$U{{{T{NZS1NwOnH?ro!foEM6Io%gc|A`%@4rhe$wCin&`0_M*?l9 zkV!0h;J6y2HM_QVBE0IX2jfgW&e;^(w@e2o@>wKhidpqqkyzaS03kH3YsU|?wlrAe zh|>9;qzchJ_ju}9)nh9nzwkNq#PscvuEcO@9FHm5;0$edIG`GprHv7T0(!8maXmX^ zbvE&N5a#n+c6pU<m&cwz9V40$|rN(4o%*4@Idx{SkD%F9*< z{{U5ghBMRTQ~rgQnj|jq+Cfh|3YCoDCmwviL6_Gqbw^5ihi`a0hIc zp=~5(l8mYL;f*!tSxVIq{Q~pooWd+1Q*l9 zaO7~+<|E$W!j<&;jwbotf#tc1NaTu%Fa-OSgE9f4{A-Bn%aNb`n59}OkZpI})vn}J zm`59*VD{;t6sfI99<{;Vmm`(;mCl2$yzX}QBHs2eN>JO(%oM3SGf~dCp0P0RT56cY z+vU{B-z^$wp-~cR&>JmGq_sG48Fb@_>WAMd-B|QH)ZbG8eP~ucY=|q|Q_Wk5{{R}| zokK7C&EVcd>&u(>9qp!3B2*b7lBBf;Xy`?2o>Vw%WnX-J8Cm__`9YF6<5^90#7U)V z^9=R=+G2H?OTFBZ%;wJSUBul;mrZWst#xk3jHyPTNd zYqlD}Sk^!ca*lz%>SB6~th=P%DY6#ew<%_m+FUXO_BNeFtwvxl`D>W3t_tfgpK`gw z0t`1-5Jelr?JR6-M${jz3j@cYIHSDGW52wHez?UlNX;e1gJp4KK@O`yM^~p2T&jIC z_cP9+Yj10G<~w>tJar-$Ayz@o znSH-=uIZT{bvlbFk8N^QSN)0kgYg(^M19=(ej~HpM;^2YmmPysrPR`gIyD7G3P_{A{Ku7+c>9q_8^a=iVrmgw zsvFSrt{Tw}^opqNzqU-|cH)WZtrL5cP~@x*c(yFU7aM#?pWl`%vhl_vHEmi3rD4x1 z;!zFpm?%)}?iLD1grrxW&Lr4C4HE8E75cdiO) zIlT>Y^vbx`?adRjN>JqQJAy^@;^m})Nu&}t%1=YYVm{n;Ek}YP3yJ1I`L2@>o-%R- za~b`=3|prXomlcX4>>wr>z=CWrV7+a>n{jhWnZ?^Jt;sq)8WS*Js1`1$Z{x@F%z*8 zEj{EKI6t`O_UAnq60bamL{U85xhV-Cn58Ep@ioSN(C&;hG6N$Z)yq&jT@!RWhgotIod+PNPk3gkZhM%!)}P{nZ>tsPw|2 zI^so=$jxUWy7wvxps6cN`C<}hChp3-V>cazrUH1C?WA1A1y$62{Bl2R@hYhE?snFZ zD{r%zVtDSsXjoAyPNB;nI%6AWNkLDA>DS~*pA>`ExFQ-DN?$65JhY8 z8RNj+b~M|Tr}H(mw7SrLaNU2rUCVcHLoLk#nLrE*fHbgL0mByCcDY70f4A{3Cn&vM z5whC1z1enXcE)DDw~5DQ2SD-BC_=WXkQSL^&WB=>yypd4{Eq8)W#p3dH1XcIFoH5H9Bp!ShY zSZknt(o(}AFP7%f;w>p)K`~sQG-3B-X|qcr(wE31(l^8WzZb&Wsl-cJy@hT3rt zZdqXx)3OMmNk(N4JQezfzqxbJxQg!HdrsBd-KniY=H!Ce(yDlz&kSYNZz8bY+*zDH z(Qk1d)IlMgNT~+8k5T~74yz*O`s2u_p5ENN)RtW!kvvV29}%4~Jyvo@eRzvN0F^E<77J zhC4fHktIiGiM1ohGO4av{uqaI0eg9NxH@_drNjj!CNO6l98+C*g(Z(3gq%lKrgOh? zs!4{~c8_rPB+DrkMuwG<7;+%wMR<%%uJR&V`_GFJuB|(=!F6xiR((+1#KfSe{$)9@ z!}n7Z*U6E0dnqbZW;aNu2#T>FKGX->C3uk9Y7g7v8tRN8xte*F5=j(k8-8L(A^eFI zP%fdCnzu8~wD{r_jVFDsWJvF=o-**yY`P^;Q6h}NI+q?l)kiK_IIdP}Ge; z^Qr#;98;vtKj*n|D!;zkEQ+p@BrbHLR-L&HdI>c+w@sY?0Bq4>Jcvg$a=|BV;-1Nr zkg{c(u%&BEM@_QdY|+Kfk;O0?<2Lu2fitZ_mON^5Bx7H;W%>ns@BOKwxS&~JVcm~a z2t4{!eW}Y2wqv979l7!$GRG87S%2IX%tnA(fa%X8mrQB)r2VXUjmhPA%S{BvjD;Nt z1zVBS2sI}UwI}UYG6>(LAf~R+ImVSVUrhOYaj)64Pqm2}UE+BMYTzkA1wj7*tAQAO zn<4FDPJ?;9OGzVw>Vd7-OENO4WHiWXBoXO_5bB|ZcX)(OdzwGmdeMO9Jw`O4I!crBkY-lTk zRb!-ZBZuRQP`w7pk?Ms;p_=-Rn3@)#+Uh~ta!R4ps%fZWo1;uhIg{gY8CGx^TZFoJ z{6-q6XC^fya?DR^fevb&2mLtLQL2JLZdqB8)DWVKX~PXiJ(ra*ncvH*J0xLw>t=XWBWV{-je zPO;4cDO{A+gmoM+w|*pbV=g1ifpo_(q-+L@kyD?jpd$ylfq2}Eu&EXXx{Bf8NPDX- zLq`Z zjXG#kBdbZbwF_TFJ<$`8GH1f3nAU~lq?KMoxc2MF(IhcRHLSpxZllgNrhL6P;tJ}c zqb=au?(WMNtz8|~jv_jpK%mqDR->;xWz#OL!j(gjc*gap5d*-%h+BainhK6&k?CAb zC=@BdqR!jJHyfmBOwrruWm}ku6i`hAfTWVO%7kT&DvB#^xJ0@>CN0G~!NF1;HIS`E z`I3RS;%aqiZwe$!i^2A*$h5#-Nzemx9D13NTOeppxC8dj30zNsGP8w7M}q9JO&VOK z#4NQ{x{82Il*?K=wqlgZpN@FR#t$<-ic2<`HrvNGizgDTo6W4Qo3}1SYfu_B0eWDx zE+v#L!jCp>A=~V)-aA>Wgg0!U+OSck?O)ARPlSM8Yy(^J)mkLV_JWn zK6$pVK3%yn$?blw2<~m9MYx0w2nqL&gmA7HqX(>o3=%An-K3@o%MDSTBy^#rIOUys zbQqTDfwGL5YbS2)B#tV@D=w$DIR{=fQ<2M#3A*4MWHn^BJ;@=Sc4l#|JC{0{bIePq z*YEh^aV6W6RiVY&-&wmwGS&;jLz3wYUPhUZhJVHrD`wo^0(@IJyR~b$WE#?`BDf$D z0IHLi;avW~R54M{ngbri(tXq5}F!h})0?H5Lp zqX6;IvwVd#k{p4{)Z*&ZF*Tmn>sSq?#1<@6+`B)`Z8!`YN$S9yIzryk^EppRxUeXr z-7F?W?OMHrqJy@@idWZFNUz&0OSfFd{P!H0({H9H($K7AP&;ZGY5hYg@XrkdzTM_H zo<||>G^M@em2Kb3U4s;?kOq5YJ^ z^iA$;?5vs9zUO@mOfJBh-b10B1*bDpo}o(dAL{6szMfnONpkSWX0wnp5k`#EtEr}0 z@%wsWIwn%v+HRyLyxdk$;X6Q|b1AJjajqw#Zk?V(vq`*84yF?&0eI>;51DZ2lm7sT z3f_CAT_u^|9?b_jei%C?(vKsVnpBZwNm*o!f*tcTr2wa(!=hl^Q>sE%76L&vLeZp+ zd38DR`+OQrKIVLm-a960$9mH)knJ8|iu5L!X=L@~$bjt}ipuhr5t@Y+)K}CFopI6A znbjRyegx5NZoPu%xeUJ5n3Iq^j-EK4oQ`NYsS(d^FZk;_$`JlRq4t5qA4&|dzeO52 zG(-}>(ge_4pK~c0oH|H5awM((mqb{US0b!<;n75N6mh93<#vFIgpGh8bLys?#W3ii z)zih1U<)`aG8Zz^lqQCpIe~{o8YdT+?6Cw@jMOU77ap82=%V;>I(d5y*t=fzQUKA- z{M@)>N+TUu;zgDcSR%1#jZM3rW2d1QQ4-oC5t@OiTb4%~Q5orD!V*-sY_Q=f5kP%L z6kLmGkMRBZbpb8Ok{ZYTVJs9yn2$+LNsbGe{k(sIhx;2Ozl5rz1xSjj%*glc@^1 zla*+CVbhTsPS4Y%KnazJ%rG=%=~2rU8dVOhRw)S+$YWAHv#6?9t6)x%ZXjVrbWIf0 zlE>`_*W--|X`(oc2!jGuSWzSkLfUwmj+heIvCJf68ip!UHFNIv{BV?v*O?R;p)QV( zExe|Zk;Xc6&+Ytq?h97d-F}bTcmUkX0xk+l%LjycW z8Hp%VWx}GB&kwEBL_l_hlwND;e;MKvpM%NpuuJk-`aIhU5(0`8}|VE;cFB>*>CQmQ-a5>In=DK4o497&uBsGuz$g znQ8w3Z0@fCn%dPQk}8uPs%lVrngHDBNW?v(d`dlq?jYVNx|>+9qk++ldx$fU5A@O? z!kodcr$L3yq^L#i*E&?Bk7nPcm65jgwvBknata}@%cQjnAN@F6+Q_ckw@y-`P5ld~ zyk_*yEpO!(E~*TX$~6Yh`AUvoAM)s1XdO`Pn9$N661RrpB$IJirbSk^c1o6yGt?Mv&QyU zjV0{~$8f13GPLP+8WI+Stch6t9eK`Lg=WGynRaZ6zuGpLpZiD?|Q z8I=G4LCY7pax^uS_|SVM0br`fP^Y+a z_~IXOg3Q79duz<3x$#>|O~TsNc$aUywqUTz%Shw|4MI+0y=(jHjw$zSXtOb&b(aKe zBJf*FmRF38Y-=J3Ln8`iH6p*=`?1e0{l@ZV9nST0Dhj?cVP$m51*+Y}a0E?mp|rRr znhLcEB+!A^5cd;jG`H8emJ4s=`v#jyHkrxI#B-!)K{=5dQ5~-rJ(xBZQ(8?3yaC^+}vA9t`=k6wPI;T{)*E-Ogd#A$~m2z@&tk@ z0)i;;$Y@r*DUE*I&O3P2j@Qm89)8@a)Jevsr%H-uJ#imybgK~^M|L_$`LiIfp&dpY zBI#f!<|?^K%Ys8Z1k~ljBhwSpB8hSxwz!cao#D8WHgQXsfo24C(s>S}hA+@H)Tx5Q zERhaNiKHMkW=TM!SK4sskyV!iriR{V2CYHpG|UIRbc#`k%;nb(h|v{}2WBS#M3Rhv z0hfbQk@dr%9mbUonoE^5k}x!IWv-wb<6Kc#D6b9oL}bYsDr5t=397f_&l|^XbSt%F znJu81JJzJB%e?}M=hRaa=owAagDubHXpyMeM{8FM@aT}+NOB6wftjc(iqVnp2kzo9 z&_3m&Shk)Q?#BM#>ijs<4F)p4*8!sO%wz-wbx+LKlT-SX^u_u{s`6^I#AaJ|VzR_X za47G>nUXjHYf53!AE8cJyxX#`@0q>QdBW0A^kp(b5Hm*kyCFHwyKmBj5PUfe*v z9D79x(thvd`|uHo4r$B-+?vFqhe52KwChX`oIH-S$2N%>yQx}`tV#Rph!`=Q0@hY^ zMk*UAN3A|_g%J)kI+`@NQz9X(XHn5wfOwE|%L)-rVkB(va1Gn8hGFvx^Y#0Bo|>X- zh74PN-1p@WxU!mM;KxWTe4+h@RGwMv{lrQy4tV zB&aL7lSn@E9%(Q24w%^*DztSS9w5LO5M*0}sp(8fXC7l=qlQu2mWclVEPOQ+P8zx5 znj&STa~(^&&&-ZQ45QtsRf!pT;&eo^NJfxO4ZXsuq?y4f91o>9j5I{0TJsr_H&PJF z!J98iHwsYUq9tog(K1*TaEi~|mO2994NFcQxVKc+)%*x|X)Ue9dVPq%Y8+L%<;w?f zv@YU1e{FFD?;;}^P=*MjHBr;3^u~IPCmK?RP|RgOp-Z%jt*wIQ0OC<{`^FALJXL}Ar*vvektpa^nawX%^-z0q*Zve z#W5KgFsLm-O4mHG&XY0wc{f!;Ce7g@E7geI$KCGen`*oS4GoZWBV9*8*?Np?6zFLi z6QfD5Q)g%4doZ1B(rIk&36RHQa0L#mn5n1~9}HONc3Y}hVUBru`IZ~Mifog@Ek2r; z_5`UUvb!XLu4*(9QJy1#3vWoj8Gb(lCZ0R7v@kT5vdGanN#V939x=na8jOO}QL1_3 zl&doPc)7Qat9~k3CxvYHI)t+~)#=r4@uCRi8PG9s=R8WW7sQpbgsWMX+XsZ~@>^@R zNg}w`!sgCK1r}jk(ZQips+9P1<6e?R@!DIBXzS`E+dk8_rPNmzFAPl1Wmt)FtwEp9 zokt=t)R9+e5XF8N75i1L!3T2c5R=GcSGTv}3{naP1qPBeS631TEP=)2q{UjarR&Vp zTW;m!W>jMlBuj3n4w8OqJplgz-uv;gk=3FQtHTp7r)#^0?mIhFhW5r&^*cv)v`TD$3}knj!{7#vNIW zMZLg~IgDoSTURlyDbFt9#-}{HpOHGo-)OVllEZK@-Q8QNn_Js?7)u(l_Qfcv z)s|o%N*+fSzPR#EgiEEKC`d3jE(qxbNWCuD|k1{em{{Ve< zTt259`;FGkM4mWocH1lMlXd>>W@z?yaxR+2b2S9eFs^2U;f(c5EQ(6wd9rMWZJX)a zaoR)*#1**=SVtua(Uf~Y%!>5u&bpi9@;T)<%)Ro2M%s?)wX~L(wn0pnaOTmcJxZ!| zrw@nYTE$0>AffQh%Xjj5&5rXN?{bl{*!cuQL`4>qj%U&o0n7YGbEW?3FX#))-LBT^ z@vL{dQ+RF8h932G$bs^aQJz(*n&rnS_pF*FB#gbEiTM|g?-y78KQuDh!$~FDt|TZW zkNVM3BpFjapR)=k>n7VduEjQbaa$e6NcYPi!rds8AZBQC9e95nRY#2il6(vO z=I_DxTMGun4Ji^y3qWV@y!vMA^DN}WKut6F||snvb}B;4H{{u zCWZ1UM^2cEnnki&l`t-V#HNn9N&Afj? zL?$`nGr&q6COMd8K*K7Q#Wk60bsVyWSY>oNCV;MF9INm-{>(L!rBYm%3}=y2FuIzB zE2#+_%|C`3$W5$jGUni+VE{l4UN)^O{Yr5f$?GJjI4)(C`@cABofpu2*rJ)5V@o5T zP!vcc`GaKHbk&Z9GodH&CC5V)lEE-WKs$&H8}^)MsG5+aizQP=iLxLXpV@|@H4K#O zxr*jZD%mW{kQM8laMEbhQpwPpYb=lnBMuxMl&MepPJh1&P{vP#AB`=gbW<bjECsTI4CN|M{IrEh6P8ISsL)Z)=u zRFWk~==Un;W zQd>`nB*daLk`^Q;Y64Imgo99UswFyMQftLB!jrm>r+W6up#b!gk;Io=>Ep;*S(Qc9 zNF!X4o-k;%%Q4Ql6d^0bKjd3A4BppLYOHCPAo9fOWtCsR;!ftKgcb_JTu7P87(CGb z05Cp>3W`wb(${d7Psl}{;b=QRhAd86X~$MAA}&isDooWRXm4PKMz=~O$R@qBOw^4c zxpVw+i_EL99zH%q%X?9JBbwgX-7X1M3bX;2I?2d$#>tv!ZzqvEbn$)4!YFT=&rPM? zUsS*C*0d$5R?LhlQ9;tV5@P*2-#1>@(;|1DNN9!NHGB2nU!$gRUnSXb{wY2>?xthh&d(rh{-(7mNsUo_S zYh7JI_Kfi9$mv#POlj%(c;ZFfd?Rq#Y}#AvCTm#MHv1nX~wI-MPtQd;QUEF9L+PB|Ff}D^Lh$_L4b~m*I_7x}6(+lc%ns-R-2wRI=f5mycYFyGf0;sI^-pxrlpZ?J@5{ z2(GB)HKhvIJZ|D`YDzdIg61r#Jg`#P^vxQBT2W0+3bN2J_?%l=6MR;FJYZ1TZtq}2 zNPd7w!7jG)q;};8DHNItH?Qu`5v>_HLMoKU=|NWclI4xFF5|IZxsXVzwYDJpiq{|k zJO@v|88|Z*oN#}S=8ZgzgKdr$yCUKsWV786g;$8Kamg7&%DLD0;h~nSq}z(G)W=!w z7go1Yt>ZnfX_T~z3m{_O%(N8Lr{MOyQIKQi+6O}gv5bY}@Q+KpOj#bpQGr0Vsp z21)*Hmt+P|$s4IygY;8&I~z&XWZ^7)z@+k36kZ-r)U zJEgQbpmmeCBf5N{TD4$Ltv`&Gh0461e5;4+^(*bAbhp2`p4KyV6}`%`HndO)?ksiX z_i(ON#!fAm%29NsYKN|1`t7wZtU{qhEfg!IbkLSz`9KB(kvWcjm3C#!Qkd7&po4pw z-ZhG7TJqcT5?gw*zLIF_`H~uq%NOcb0u{+hs;Y&)-Dz<0mD}BSU8?1qwG*(4Sk<%8 zRInO{r}<(uCQM-SS$dVbr;J_M-@_Dkv+c6nPOWWmr%X*Fng!R(*Dr?*^Oe0EN=r;u zrt62x#|(WB<4Z4EYk|kMC<)pO~gHuX#JUL?(zp0e_rHs{Uw_@+>C1~A z+&4G#ox0j>xu)AZgJwe|sw7|+EL1v%i~`^gIOKVOQdKM0Rv1-~?@943cAqBSpxTy8 z)wK<3nlGXnU1n0jbe()_UIUk(GoPziVx)+82^Y80yuWTbBZ^H#$z$sKpeMvC#_jnWC7vFPI&0hu){y0(;b|j24%NT*U@ndGHo|sN@A6h z*kjidiYZ2YHL2D1abW;90bFnNF%wT8h<&16pKp^c6g}C&r`JvPY#QR#_H5 z%Mua^C)8j{Wxd0z`(u+)jC;A79wQ)sZYyq5Lfo2lBc;4-n)nbXg|Z}Zq5cO8l9MLv zq}da@Hr(bmQ7lA}A{N#Iby5v6s%6yvL+;6JVP`8WbLNsRUvVda#Of{7t~>;adv&;I zpim}!<5H?bl{F!=CZ`mRL^W6DM|jV0Nf46V*|e1=v^<6>934ceu^bl~t`x}THe99v zGSu}TW1`ffawX{*!Sf}v-5ARziS5c&;vr5)npB*|Ib@V1az#6Gz-AlSQCd`in5A{o zBTr0psv6D4ZBe1fqz<5z@5d=GsO3UArhG>+i(qMTPTnYSq(+ZYvjPnnmY&Z-7cwzh zcPLL*D2jC}#*#Tmu4$#~?4@~nj77_pE7Xg~n44={L~Ar;L^K(JIneVtjIols-ekM( zx>^z?eNn(ds|`yVH~qdjk$Yw-86^Qqd!wMq*M$x;jp~yd@^~Fg$l}}= z1k4D5s#{9~lE1esbVXF@TBNxyW!1lrUtQXxM{4VP5}72mRt3yjav)Ti4~89i7L#@I zBaNQ!S17ivIWZZGWrn6f#HlCUqzd94_V^fFZ}KLchVA2uOD7jGH?%0Ik}<$lbmqSd zV^<@V)FhisQR4gb5hc>uGRE#z?f^Zyh7=VvPi0qw{CB*7TIsV zwQk5)U5(1WZ%cnJn$t7Go;0?aHMeQY6^G|SP*>bPhYox8YRO7ccv1Qn z&-!V3J-l~GODl&$(Z#MdjIk95+QpWmsL!4>==)9H+H$v7pPw&>gi_o1KJ~h>iYswt zbrWco*5ZjqUShcrPcfJ6#dh`@M;_m8a!t`!;%q!$#3g;g?_l31NbWmiq;%9CA5{(k zpdjU5c$KtLk=qTEQgp#{YmXo3Yk&M-4&QHo1b1h3v{S6w6<+NtO=@2tLFJhE<&M6Q z*&VerZ}2l#el)8CE!syYj;C+(D`F!p?yA8wVyYjnUPSYrnGb8iIC#zeT#I{O)6Jpg z6GGx?=I%Akq^1Am=*Wo5KbTAhC)zF!d8ucm_1beC?rvzyrQsP4uZ zhf2ucjy!#|>*(pC94$5Ntvz$|$k9KC?7LDW+s@sjp|EygkO^>>7hJ#PP!27H37BykELbua!q&U6*LL zhibTv8Eo%kV*db6p4E!96Dgu;&pL{qOhQpIx}va3l**oeKhU;<`Rpu>td~OS+R=4G zbqF%D$3a3`*E~m6H8Ep)gC_|A2U5B?JI6?X)VgwT!F67ag1n57f7Ny)UmG$ zkMhSq6E`I<5Bn1$+~iBug89}5+NrVnth5!wQ+Zi8?MGF!C9Pb-agi7i@wO zgod3el&36c(iv-gyLME$v$&OKw{($jpd`wU<5ICe&NP#ej4$lu1F?+kcrtr2{Xn6=txU zq_Qe+uQv_HcZ%a{xp1VJg75zTw@LMokfu2hG>)b`^n?l&R30N1 z(-p+dE)Y~tK3;sweZuDBYp{ZQou+H+IQ1Ko-D4tZqUr}vuiPnvyA{NlZX%uzza``K zHTxdR50cn5_R5KUG%>1?G)VISOoOSY73ItD#7l7kA-lAdXk%|YQuAtSjlwOq;$5`L z&v_I+)`FD{sxrIV6;vy&2uY~5 z2h?UUMZ1B{yN$TYtk`VcF?DYeTW(1;tWe6acc);F9WtX9r3WnO!_z0-z?k?+qSAxJc@ude`UjJuOYG4C|RW@9|64Tr{etIf9m0A-$d=?OP+Y5+ALEj@G@EX+b))6UdUGQa*LF?wY~BXk+r+14 zzP&w}w>eY(1=utIuw2o}ty-E*4?5!XQFy$t1;3Q|ZtLSS!@gKT`|i_bJ9~!O7MB+G z?WCDe(1S7z%?|V#BgMNXxm`IL|%hKI9g63@q%Zc+o-RFtn%N+1D`=Z)OR534U zilgaxzzoE)kx)VV`bMbZrC`3UxcpCA$7!ABl~Vqyrqjy*09r1$yC|fycHR=?H)u1} zp=4SuNlirND_@Q)sjLy`ZF>}T>$xf=S~VuH{~8Hlc<+m1;Is`?ekU=(TQJS{F7a~Ps4DF{ZAXx#~}Iqq(h zOm1#;676>D$CyDc<`MqU6du*iwB_rGwYgFj_er7XHtU4;T_%S> zW*O72G}O+SLy0tO;q0Adm2BlgQR8^13-Kxi39n4BO_J?NJg{X@@!QC>MJ2AV^k}7s zmyOr@gHQoZn3*~=p7bYL#-`1@D&lzi`(^#T)!YiMEG3ap-2;(PsDWSos{Q%m(_Yh} z<*UvK(-NNRVB9wep_Odj%uWPH`HHg&5$)tU@TW{;wzDg0hBj@uC0f^!9xoB!thY(* zZgtrRPOEE&6i}=I05=Tll`EDs`)4+93vO*BtNNO4+r}n)2=^Fn>=#K9%p;iswJGij z+D=EP<@j0HXwF+JmS!GR%Z!S9PZZm?3t3FEI^RId zvhDKKVRa+`b%F{wq2c&p2vp9^g+{e1SH%q`%i?wl@>yQO+ib8REu7Kk3hFg(;9@nB zSK7yi-;FdTj)k`BCr0skwU3HtNBJ8|KL_!-_RF>1r)zz}!A!Q>XLAv$JI3hDWC zTK@XS+qa2b#=}%q8c}$2`hQ}!+rzfoPo%lCk}c*)Yb>^cB`Z!K>2_jA9P5@T9kmI! zvy5?g`ruf@vv_RRcNX?=+s}0B8|kVREpP4-5u^spiZ)}0HBn0jZ5wu_EiXPlsLNXH zdsXP32&T5Ww0%tqDP0A$mK6YZ0}9ly!j#62F*+|OHmmZlEVyCmQq_O$>&I)6aCY_w zQJUQzi6A^3NX#EhDH<5cR?^Go=jcCmx87~m^4(h4Snsh!%`!Z7QrQZaoka=h_86~1 zilwdX;*xPjZ7=rWJ+0g~mm7ZHdJ-G!Npp%R0VO+$KyxOQ;4vDgMa|1k+OuudJVvi1 z**7_*9zw0P?|UEtHxv>SlsEfmr%Mym8XQvMp~rSqNy*VZRH?F$ae_O0E3}nwKA92i z(m=8)bV{tX0B9n=F&TU-Nwk!Xt-PUeX{A>_K0OM3%2@692sbE6istyT$0;n`)@<2a zum%3zF_z*~mIWP!tPGMw!95)U5r&D zO!)prQ_1|_b{BTDO=61-$4gzZ9a)UybE=i6%ZdAiObq3?>An<8haXZkw)Ja$EsS?= zN(ef$aN6{xl23*;sgB(DeUwJiF5=dgM^3wEQdCzaLQPlK6?ajKxrSfdmuuwP zrK|xVVp1torPhTd3I1s{143zxdd6#TuKQc21wH=na`!Tuu^IUc}$vUBx7l*~Ki^20hBz^nFO8+h0UJQqgAU;AC>9Tyv%nbu_aVR_XB^ z-FCTmeWfn;o2Lc>(Z>>!wPnvCP%H5t^NAwh;)kt2hUzjptX4}E z^Iw5|Y`aqKPYkle(@PskV>+-@bQv^sq2hY;{Bbm9_aiKtX(#pm!|@iUI}B| zpeAcpVWwS2+7hH`reA8}X;TLoO{J2{0lQm`qV8q3w%k_M{@SZ7H#$Jpri={`bH;a| zn>FR?d8DZ@rso z-e-kEgD)_7baTg#}c0_vLWZnHM{(ny2T;_8B~P$8QqW_U1^^*6qc- z@k>Iic>JQe3G2i5;+Ff8YXa8$yo{Ud+ZNY&+m6{I-|bLJZSNW<4Dd`VMbc}dl`3n< z=axBTyp>%}2fv%brlV}${9nm!ulBneQ*FB0Fa>1-Hh*mkJZKkCVU|ZaSDCDJo8nik zDRDgW%WpRi99td3X4v7_uB{$JdwsV&u`_ESM2G~Q$|*Ghf`@<@iCvb4&U@38QFA|@ zO}_Y*#m&{^_BYd#vq@;%Q|_ zWRq>0T^pseADYofN48Xr7?1{4BO(Z;eTNyj#*VV8uZ8LPm(-6|^9cU{?OQ+Y_w3g@ zO~NY6JT4?slFR>MAj4Hz_2a0#iqaZ(c{>{#&(6u=zS(+U^^CpZ@^P?nxYS zI@^*?mvbU(jORg5Z~p+t8c9NnA6!e_qa1LaFXOhmPxndug393cHf_+MiWnUVhKEx# z79nfxY5}Qp0~yJ|Ci3CT#wieQ{{U0v+_q>oz1Luac9Upk0Nk{KRZ3IXV=+0UGg91v zwv($ z-Mlw?+2tFK*FV+m7w#H6=-3IZSc*}J_h~gFje6(DH?LL?=lN5`N@;A*c^v!XdqlAL z72VV@P1>`So#Zgwu9Mr=gwW6^rAB#k&m9&VsZ0WkM~B&6Zk{W-3s_w*He1kpGKV2z z_L?lJDrnp&2R>YJSw=BREz=$xspXMpfv2;&*!+ibL%uoMu1jcp$dr{814BtxB#-*O z^Vbrz&9_Q|N0mjr*oii~$Vb#h>YhIi1fFYQw|NcD@ogs6 zYjb;ZBdAMwV`(HDs;Yz6uiwl}V>YXo#A1CXEqZQ2zjy zGt(HtvQLjcsT4gI$b5#&Z}DBP#+lQ1zuNSew`mYZ-nGzl#1&AQREjpDa^`WYrxfb` z1eyCE*4^UMW`}9Kyq9fTXuDQdktvc$!vYF-3Dy$7^<|X^=Uqz=FiP4#TfB{|rrY;B zi(A{+i8ixeipO&R2C<3UmO??`?@Ih~oEyP>g%2Rye3IO}gd~$~^4CmLNFG?mbyly; zwcu;R)Erjj%F`b@d3pI0rcG9u31#JT#kEPaMn_^vJJ9zk%@Z0|uyWH{W(`5(Oobv> z6zf{k$hE7A)T<$@t=8q?63Kf108(QLCr2r)flV^1o?S*Lrz%zA(!egn5Kx_t-Df0n<)~%Fj@>w31D?@w;OvjtEZ>pTW(e@Z)UrIjHSPH23qS2QB}wh zPC0$6RP|T#5Dn04`ZF75S5l%d@(5F+YYq;vQRf_S*Z-2D1wz87$);XuLg+J%p+v#G6 zIgqp=MSeW^VeR;O3S-n>3 zUOSg|ZnSI0FXC0%?;~tkEMcw9ocg7PR6gqe0MOjDo;AfGxT7f<)^(Q-1Y7y;WV3^E zK*CsCM0bNq8aVkLlsxD`=TV5cxT#IW=(~zh!~5n~+j#}P=SX+ECW`qKQaXoL>e}Ck zBhwo_)MSe;;~UY__-10R_Djgk>)1Ok*LDlt!6t(iwLdf~O-kK*;|WpXXLb?OgGuto zA5&Z7H#@X&OR%=#a~-`$YT#-*Nu@v_=1nnOmFZ|{l-h4DP7+SF^8C#G?$x+>j^!iD z-TO<@exe!^1j@%U1u{8(v&KzIQ#|NjyBX0VWjWe6`$(aQrMFnnBcySYC7GpB!sn?) z5AmjS>YQ6WxW!(#ib<|D@%Wj`O}}=A;_}kddX5{oSz6vW-&L%j1FK7E&5cG}=}L69 zyGB;6PTHguO@*!cKF4q`V4LcdwA|W&b;qcHS|OfU@y52NT+z{Ibmb~&PM&;F?W~N23q^Hns#w_x z0c2dl14EePJt|E;-MJk0thn6va9uOqpgv zoOWDBMa?e#k4sntx)2^izm5|=l&xMKY9HC{Dz z+vMH5t8v^6bQxk;->A4qyI)ygJEmYWUg99CuuyBusppI(ds95yyX%fvWMMo$TP=d(>gD&V zX(2@R+Q}ha>~3kQ6k(*0Gdj5P^rWvjEDdjO?rEaH=XBrVHam@s5kr3NQf;#PKvs@~ z7DrReY2(206v*Q@x|(jQ0~v0vQ#Lte`iFfzp4r<5-t%RQMH?*{u{UQ$mKibDBNW)$%R(Bf6v z!M=DeQw>b5ZzA%KDBEprEoQji?CpJ*emnRI4MtORSVM(lOg=x&^cO;7~oAnELp4IlRA-64ex3fHR zrh_9RP^rx32chX-OREn|vsmH!lBFs!?yh%;?hfq_Y$A|&7)Oxx}$u>7{*np zO-DUkerz;Cx}@rl=|#v?$=rDDlzS)FPdJxU!|1GP-PnK? zZsdVkH1YsFYsligI5<-%=Ih7SriRbPcds3rW4qfg8d$V|*A|j7E8S2+NgW5N0P?Tn zG18y0FOVWzZaV}Q(M7s#hTR$?6kCnEGiiEINh0xVhf+N`;`-@GrCPjsR8+%x4#~ak z-PvsPTv%P6<)-It8i?jo@~nXXqY6`~spM&j%5!O|RbsFp^sR#P%{MO^wNI5{X){~!*BNjFHFNk=ooQ~B zyJ>NB6iC-^dw+}BL1nmjHv0ZWEC9p0Z1<3anPVymX!RnH6}_ZXjK~M9)wt4%pO7Tl z{;65p?b~+IyLjca=EYhs?l+~HzVgVDqY^ZxKm(8+IagmEJcL`OB`(MMySQxIq>)dw z*}m0rU#YgThC6cNp4nBST51%?(DcMyTIEDl$+tvk{EN=F4dOZ8*6i9^xz!npMunOq zQaiM7n2H*YhZ<_X7e!Z3fzuezf;?8|%ihW4j$4MkvArf4l12*7ABY8kV#2vs_hUBY zHJYy@w%=})v1D0yP1A0L1NSes^*zfnLk1DD3ZV=Rk_Z`a<4(BEMzT$vcDB~$^bnBA z^pAUX>Gbyp@=K8>tz1;;IUZkQjkMy7JC4@f`KVcVl$(y@br#xgHnwHAiPf(5=@^n@ z2jtU0Pp3YHyn33>sTjh{?8=K0Eu{Nx-ka|8FqXP3=G4)#B7|yExzKd!@f_MElg_7J z+BY`|#tAQw&BRjLNinfCg;-YBU-uzn&NdYcNBWF!J8+VtSQtmQ)=OH&a5;|tD5AQw zzcY)r{Mcb9Lj?!@z;pSrNyaDNY;0|#YOgiV1pK}QpJwhvwvssvhU@_y%YX3`Mx8H1 z?0j=cmxkiay3-}g*UvLS2H9<_Pw>}U3#L@JBM_-j@GcB?lD}q$W#VE zMqr8>is2}>&!ydVTYIP}yb@oTMRmB{h=M>GOEzMY+LAQ|V~|nCneacv*2);v=Gb;f zLUohD@yu!D2t!)PJ44$&LxP5cEm?qFH0N9+6slzV0<(9i7lg9o^ccRnvsd~%_+^In zEdmBd(-XwmY7Qw}U7o*g+)7^GZC4sq`V3v|cBAQ|w!AZ|0M>9zRcOsB(X$%#<%>nL zJ^toUdYj6=5$}6+&-G9zarWEN85xzBBSx8ODhk&wWA+hTeMYu;xz`*y`tUg1<+!mk zTA1RUF50l%+x}X(U)hL03x$QIwIvdIs!0l(RH-1;isl>qanoT&KfLa< zqODw$^7A8!A8EO3d&^iY{x&f`h#_rjV2x><^n52k;9CRB-}=B&~!)z{L6&fDc1gj2kkzTG55 zJ)F&{kW=}b&=wS^%9z3K)Nn;s{aXE;^UTg2+Tu;Zd%G)x5-<#xipNL|3;&%7(cS%cd(OR&>S6RcZXNr_8X6V25~jh?cawfSIi)52(Uvnh~Ciwo*;wnG?ZE1(pYKrbRRk zQasIcivG+k?W$7V+D)|93zjDr`)1QV;*BhF?Xk>jX)C&z!R4ejVNG)kDnEWo#8V4n zYTYW*`Pb@7Ewoxn+ik^+sXfFBC5*3hTmeqoMXH|=!}jpT$}mS{V{N9DT|CY#wzIDC z?_`wE^vugF290+RBx*F%n4!*wi;Bi7+2>fh)0ep{e7t{BP0sloEezL?%Xzhh5nn|J zVj+=%;3zc`qNH=-%MPks4X?&A#YIu$j%6<0xLe#_M=WqdZ3vLQ*|x`UQT9M0oS{|<>OSIp44csx<+Fzi)W+klTP}cV#3ekpCC!g;a zjlTILX8XeC&qLU4Hyz;(jl41J-etCm{{UmUS4b{n)2N6;l`2BDNGC9AIgC&JMxT)@ zy|lAsWE)oFnH)RzRdTsZOc#h+{TfyVE4Y!-5XFpc@VebQ! zcJh;vWu{L|$IYmyUU#~08obLr#p`V%qW5&O@g~06cQ|L7;&_>?*WKMSNA3|B8AV8O zPwEGjU}9yvl(_qHDLw7iO1zITK3Tip-<#MjC%lhUMZAt=mJ^avpaaH(6o%qbl`z4x zozA$nM1L&1k*=(T-1avTNF{>mH)vd`83M}0k)K~*L3_8Q6xvl~=ekWLTm;&@i+>l( zJoi^OSJp4C(|6WdbsQOGE=h1fps&ExV}j(RH>tN(l1t|PM-;9mXg3S1oy&H++Cp>F~XiJ=% zG&cSz*=svJ*6?k1+oqW|`?+gKdz7O$wz_J4+3=~QMtMTaAoKi-yN#3=_7}c0AxnMM6RO(djTjIPO+!w;=Tk-} zglRn1-*JxOve4UIk_d1CiI^PO!6udT%kjo>bC2!gkHep#7@|~n&mVRdg{`FuTrIsR zPM{OR@5f9Mobk<~QmZ`|WU|~hPZR$C0JC351@)Z58SO-hS*oD-6$q(DHCj`T?YtEt zoKmem1gwf^V7t59=8pQ&{{Xk#v1zTq)fzo$%^e8~Q^0=kMmcrLSge^Ck!?1%+b+eu z-O}z`P-Qm_8-K};5CI^s14`sU_|qD6)MTB1c6>N~r0JtQ_AeOm`whO<`p3<--yqrU z<5t`(=K?#CsE{dauIx&RS1`czr9{p;-YU5K4Ko_C{XX%l*spwtV&7t((`W`w(`~#_ z6w*Rfi~zDgO~0ludX^(e;;Y0|XPibcjte%v7=z0^k{fXx4dT8)Hz{FqB-p37D=AUH z#^iosQ;`7YmYU+~KGg-1^8}9x^9|Q--sSO~!Oq9HZV@E5_8W?JZ10tn>5QRWH6v1n zH2z^wYg_S|AS?tNz6E7DnOPz`^ZO>*_FHqzZ+j85Bfjp$P$3RqoRG!{}D zdxlXWK_z5DLHac=JMA}$#G$4bX zCk)x>?faXx?2^njxmNPtOJN81D{xGu9MOV~pwX-9zs8uH60TnYcW|0|tAR9qNU&bz z^LyNjG?43cIn`uPX_(-Db}E+yge}V4wOhpu&$i2TqT1ZN7Sg_}yIKR-kxfG{{UrVz zI%9N_&6;iQK{s*HGJWR5CFR%FPUg|=w8b+<0|`-h!#^uX*7206RFYPeKzfZVIkw!|aIw&&- z`Co{|W}8?xch9?Z+fa(HG5h(pQqV&niT4;Bv~GS!Kq@E&GxqZ3>yCO#tmRYP${b1` z?)I_%OfXVvvr1yDYgQG=nsNJA8Y^;f#|8B^?YlkQ=U0r58fgyUJhM(CwbHEWRKIM~ zGNYKp!RCEd%WcqcS0j!ia*JUU7dvg@2`5^$vXUbY{{Ts+KU_s6#P#PmIeQjQG_&pyE>tg7q_b#GL;Kjg{3fxqCEZH_FX30r_E!`=tpX9w+q1%T*V-BaSEM9q@_-p zoj9XZOycTYlwjcAJotWPcGbFB%XrrI)+q5z0yUPPR0{m#+D0X+DwEvq%GIRhEPhPy z%C6$Jks?b}npQ;&N-G8#8ZCHIfYTa9D%Y9hc2_H(`nN^#S^lL(gjX(B_&`m)s0Cth zK2D(XelMXGB;KHTxmY7M%S+Ck30GY!003v1?%;@#st(IjkDfeZtxMWD!Wt~SKzlwG!xqRYh??f%(e zyxB!@Z5u%>5*Y6yjxZ!bpc<$=YNQee$Kl0tN@f@K-FnO7ymBFJ-ZLs(#IxN)xLREy zVcHs5TTWi@aHytWj4jwkTV0i7M_(U^m;NWT%^j`g*}ItaGbZD+1&!ZODiM-}DO&#k zPb^wnctS+WWocZ}q-aNvY0U`k4dGf53APJ)=UchF9ang0OMii*`N7X{<-Jm1ZHcXGG0vL+I?il!?& zlFB%^{W#8gte&2P5c$yL4t+rM((7I+kJuv>lN*qd2e zWgDajYHiq`_Y>R;Da_M|`^GT8eZOuE2HSPW<81T0pEU9v-+5i)8Qph?G^5*-?UEz_Dy>Kv0CN8T45>NEtuRi66Sqy? z@5xX!;f35IQqWRpw4C&?Ie|_G_Ho4|=H8W)6*Rjv+okr&Ew=e1-E4ON$8*_wyd@f| zA}IM-9Lk)JKTYFmZKmA`#KdlvQuvnO`(ETDxq|UlYYWA2vCSL&kEMpCs2PL9fyJX4 zrA|e@;!A;{+pMmyw%fa?ClE(r`H{^l5H*ud(NR)K$k%}8bH-D*CmN@XaH`0kxNRPX z<=zpyd3S(Yd42Rrw_SMUy7%syVA0;&5&#b-w+kWzkZ=tRE5I(&gm73l;-)R09WL8< z9Cp4%v%4FJGrf$UCq{}HABxBbJXBVcJZf-ri;_uX@upuA8>=-V`$p{cmmAfW(iBya zE1Pv;AO@9HG%P{P=a*hZuWC)nV3rJ(1YhpAo*T3IF4Mg1n_?}H5y+NzGp)oIY${kx z3MoKp5UB>AeKBoGJaBwT(vc6yJg>obM>o)T()ir&+9!=J7JFjsa%Dz|3iHWLDU6{g zD(Q7)hPPRFPau$P7M+`o!%TguM4DZOMYM$^I~>Uz`2aGlyOc^1Sn+vy@*xo{yzk9? zK`!sDw)qrV#?bjb*(%8d?Fi3YZ&eCbl^~4qqEe<<5=EEHhWBdgyRqH;b94vjuFtxA zS&c{x%xY=Of04&FiQJtjhtPv7vqyiqT#b~IdXklb2ppHxYx0dF`FMgjV@SesZC3@w z@iWD;$K(<18{L)7l-80{RP~N{Drhy-g3HH+aSGbiis8Uet@7QvJ)e4eStAgN zt1O5p4xy`9B<2lx;$;;V6pA%QjYIhU-uoq$<<0aYO&ZB-J-o?0(Q4t`30(jlL=Ke0 zp%oU>ubzrTifF+*2^&x#yif0frM%j4IO2<@NfTA4&L3 zUN+t>7Uu!};pDdSNWa=-qC{Y1_K?~r!G&p76g=r#YT8&OMfwtBH_M%p^T&5c{9&Zo zHw!DXG`3Ty?f}4}#;fko0jB|$oaiy6CBbsTg#tYP0K>0$UiJK&oMuZ%#bvyrg*w=P z0#!k3f-(eC8KtS}t}ic!Y!-WN*L4q)+HN~_^V|JJz)^V;dmJ;0$1f$X0!a1s$1Gsn zpNuL&q4HREZIf~qo>ySkJ2vWvy4If4Y#E3z8+^K>ugXEoA~P7?5^~ga17 zchrw-WsuoQ4zjl}$wezhr)id>P^)~t(gDOuiYgL#`H*Zb{Lg5yx3|9A>{9OZO5a&0 zaRgE*Kgkh|h+|rkPu+~C%Cz_sCGA+AUHXUQJ1+UUZQI_GsYlt~+2Y z6@>^O=4+7PGn8XArOEL$aaxupAN$isBv&@^n`@5f`hbKOozKkR&=IKA(wIuIib>&L zPf>Q;u<*&6O{0FdylcxDZQd!KB9Kc}Rdb$BrZ&p7{u$F3u{f$mI4W>8md~dZr-_SO zn0GIz5zE<@CS)+kNd6wManBLuadow+j=!WHD6prA;V5A&%{%?@Emw8qRN**hX=hS5|f7iRx;rPZvsgE?*xR1v*@CGV|J22}ZMdx7-#C z+K#(U7^wi*3@phB(b#M?mK1GDLR7cRGI>KkbigYy0p>RZn9Vx*7ma7%(pN=X4_^Y zsMGI?ztRmVGv)rHJN8n{wKv3F=zB$bM&R`KgYXq>&rTTRj4G+)$kN@rT6Da~lSylD zBHV3Jn3lhpFdr+^C2>v^=l5fw6MJiN+;MmXrHtF1!%uGzj_ove)mE{&sWl^pd76G5 zF=*8Eb~~u6S}vN6t7W-)BDlD_YdN4Fka8$jhisB7OjXj9BIK+z)K((yJFUH>jP~%O zTw9VaU~@!p+(vzRjAa(zz@49KmBoe?GM9Hh-h{F3h3q4fO0v6vk-o2RVgUPn*s_-c z>2`gI?QOR=g&ux|6us@n;@-ynm8Xn3w|609mxl&yi&GHY5yP|FeXYkx`&(J#Pk{FI zZ5&sE!b>%{tA<&SRg$MFFA>8TO}w8I-nDYX?KdhaSIF+?YWi!-Kcc;6w|{Kpgh zs2&Fp-Dylwhi>k2vl(HJ4Du6xwB7dTl1nlg-&tvtJ4hT74NLSR7SxR6-XiBota;Nf zPl=xTi!l@1+gXU@ovRYE7mM84ko3zu5?oQ!YEqSFs*NsbaO6L?UHv0Pad~EsZ>hv? z2j>7ita#Ak9Uen5&k~hc!M*JE@7z^*=i|`HUA5yyA%F>{rm2Bcr7KfI z!y45W-e}s{(wa}|`4-0OziVn5X&QI{SuOPy%PO)KKGRXd7{ykZe2*>c8b#XDe z>l~IGa4a_Mp6=sqmfA>Uk_&JnwYgN*ZOYJTVVNnI1C|;ajYzjC$v01lotDZN(pz2E zyCcYqR@=9yQr3e>D~z0DJ|$$e;etzzO3k~>cI}-c+mx5Y zuL@;~dts9(+%3cRH&aJvxoti|3)qI+_du=PwvZ0R#AhOsMh8B>cdjBbT*}2J@OYP& z5MM=RpHpol5u1f}o6u#??mY*o{+F;aB7FG|~Q@ZZ|(qy6rQ`ExqD4 zyG18b>QPV)MF<=@^y`X7c8uY=wQWf%9%bXZj^Vd&mm5%uOMCdFle@Ouia7@&7$2F2 z6W!X0hTnf`O}Sz5JKi>(=J$12cNnAFck`x8JJkHBZ))EkW795&f%kF7cjGpB&v_kq zv)JGCt8?GHPR4z^U9SF!;cX;^(PVXUOmajj7#;wey*Xn$o5;aX(tX+6j+)}nosz@J zHi?QmTw0y7Ll)t;65vE@nM&{#96Jb{P!>3D1a1jw9)K30G_G|& z9B?a=c)X5%&h_0x9xdh@F3ICJ>%LjvUhTKDDqI_IG+L`I9$%SSpmEY`kft)TIk=|U zR50qj2Nv7(+f9YV-od%NyL7Hj*So^$9obeIf=dRf29ju@|`d5}a%iFJ}d9DxCTvoPgA4C_~2UA`9!GReyU>8$`5EZq8OT^6IzDM;?Q~Z1Sg@ z$(462SpK9)B!V-NFs@3Z5mod*yM?2FRP?MB1#vZgNbekUtz_X|}aV*M=X7NWxrMgxvN>qTCy4y}LtiJpH?U%qdh3GVU_S6_&Kj z5Hj@`J5-|8i}6v?mosay_(t7pzgg_wZp3XD(Nx^q802YUkqL>l5e&% zJ-2-EeaB<+4-}5>ea#vR>xks-K)?kk%^QYd%OJ1JIvVCrG$$Y3s)=(Vr_6R+#jJK$ zyHpIzwY2UGQUGtPnX?B{lc_ooPq&^}-ZN2+BI}Q@pN>MbG4bu&=Eu0(B0F}N_cp7j z>Zu?fE`}t6Pwe4}Ml*CtJQt6Nof-D$iZ$Qrhk;yQZf>x7M~pmnmltg19_AJbVkOII z5+SJ1CR~nn*R!lCOv%L_6Xu%^`qzmL#*OF^IVtNk+6- z_(hy*QEgEF0BL5lznWBuv$d7u_5f>DaavZH9H?+`QB;%5EJ)IkVdSwzZMND=x7JOWszK(=`w5EA z!`icw!7d0_mNv*b=2uA`z)t~M99DNKl8$~{m!Hr!IkVpGJ8ib4xbE9K{%lHk8s(`- zuc*(cuQHrfyKSu7@$w~PS@|yEFOY2OV?F%I6}c&ABxUG?(ezLX=0;zKJYd|Q^vNdM zUY->QJk}e@Hr)n0hKF&8D7dwfhB=8J?nk83gaChyDUOW}GOcm?e7>ImlUe3mT~6JY zx0pMTz~mc=Kb2(SbN%?uy-Ka)Lh*x>$g58>ZE>?k8RR8oDx}AergWu#>_qKRIWyP0 zvazKqmoIy3y2P`E_byj9pb+tskU0;);X87{HJRgXV`?*0WbLlr4a!xwbkQTFR*R=y zGZhCa~`q&Ep;W5 zFio=VCgM2iVYrkjvc5nSCJX$e5NO%tIsAC`R*Ia~X0uVwA%p&5fIPVNzTtb(Y=5_>wr{Bef+va-~H*%15{izSYENQ9Tad zvb8khMOF1K;fDVJ`%B9+sD%Fj^!H3#+*s0$%pCq-+lWal5-C34ZCq+u`7a--#9Ia3 zyV=~!1cB~Oo5qGkF+66z?JNmBG1{Vx;j)d@CaXpDHB&K6; zOel{g-qKea@+?-t?R&6!8k>8FsuKNmHl;i@fHUF8@%3u1M`BTuq#izn*4^Wmcd)bx z7!U!j-sCbeI`ISoLCj_jD(oh6+_dZOD{r<)tri(BJ8I0u9_pkjS0SiW{_IP(k)PVq zRcjKny|noHT-n^k9IbTJE&`P$_?{fW$2)XqeVx7A@}#mwN^bA9H0c}w+be+bTj(Cc znAQT5m2qU##h*cEv)G-bDq_ns2IG4PxQ1Z;^(JT~Z1YgUfbc&IWR)>TBH3HFbJ(h? zWgwSqhUR$Li(UoM37vxpCCJgvn(50JH&*C_4UD6?Zu6$0sPPrc zEOb1Mt;X|jt3;Bo3S?{iZW*q{#_4uNwZbNZGPboe{$N<;`1~==IkzL`JLLZWZJSxL zi+AR`A3ZTPR(yV z*>@RPL;X#?%$DW8p;1ZD%E(H!E9>_f;~4iDv~yhV6Pl)`XZC+34C2&=w~j);P>9T| zw8@NgDhED4ej*nfV~IOm^HHY`C$Cv}9`8QgCiSrSED_&W6LYt_T_&5b$~8eO8ucj) z&48!J6L)sh1@7@I7D;%-r1N_nvh!`)w;kqo*tb@G#E?)r$12r}MFZe~vnC#ul+`+EaAFo`b%Av+oilyJTB!m9>_j z$tPf$iv*@@(m0_x@th!nF_J8=5yFsG4o@72o`aaq^Uo>`o%Tg1y@! z0MvMvpa7qT;fzX;ZDh|k$vw$m-f*KkC(VcY2Dkp`t8 zlcr5MbNdR@oxw?}a5=4JHERSG@lP(&2##`EdqUcyEze4Ul{n?Y;ld?1D$+E|)U%aI zTRqHI_er;1Ms4Plm0a3^j#*QQ%Pg@-+toZd6!xyPaFwpm|MiQzWRN`Ym@0W8)wrpzq%Q8ZldYgD=9VU5+q{c=6_AEO4PGXNTzLw(_mDo-13j$vQ?U1kSW4 zL!84QDoDtV2h^dVRlI5V_@@H&q3gbB=Ck>7T5fx7oOZ7q5!>95sO>DVq14WF)p7(1 z^vjrB<8>sd?rn;nIqp`Q*xYBH8cViZF?)*^8b!030otPG4p}kFu4Qp5Jw-}!$Csg- zRWw`X-M`DX*vSGtw&!UQPLN4LCP@HgWo)>Ckq6>=;?mUQ(pY%Jmr^#|w_C!k+^Z$E z)w1cnhE>wynNa2K2jTc|#!wk4ZZCRATY6D z6qKfFbuM6^n4grW2JTUoJSm5nHL2zM-psbUYn{r{Xm=f|;6*pE9STYJ_bZz96sS0v zTaJuX1IV-S3r**6x`f+mzKu$SxQvEmS2{pq=0Ks_snw+wZ<5SI~uR1@^`XWi$v z+92HRh5Rv#mYGmn3#yLhpy3=gM=&W~RXRkwZZ_UnvR(+vN4L*oZ38TZ<_w^qCXeh<6o#*HQ4S15X$X9drZVoy(m$Jl15ZC#bDGUj(>>_(68KV zZln5;VrP_pI#eEb zt5J-4lBH!th}A_`#B$c(a<#h=3)ydcb(c~JWN9R{;6E!-sZ-5rDa2DTiHu#^#kx?} zGXDT&x?4^1HMEi&m@mLvy|(0mZ+RFX`?WHJV0qWtdGW5XicUW4XvsYf^&j;9!VNb* zDDX#k6S{nMcOkDMO0$c0YWslp^c3JZMx^TAH1sp+)bhRNUkkq3_GtDEzIz`tgt^^e z+sW#hWwS?FRdox;3X%gH* z{Ckm-p|!1PP6y+s6`Pb&P2%%rwKW$10H}A{cE!7;v`@J~eHMa-UfZY+t?wqRN{|Sq zeGLvNZK+MUaQr!nqscFPg*V1a*zV?r{x<&rc4jPSK2lqaMKG1hrALS4VA&!q^6v3O z8<10R2-4v2l`HLFX;b*)KBN85D){)3UM!g{&5?pjXvHA8pvjrmyem?4{>*OlrKYX2 z&F~;?mRG4P>1%YkPV4x5^39^yob1py7r z^u*3`l$dp?Z~gA-+S=wPf*a_aTB32J`Vv=x2RhK=VKoIzC>90^<9wXAb3+7*t1<;s zBrG_bzI4lp&-mKpT@`ZVUCL4YqwD0e{Td5k%PW%>;XFz`@SZBdlu`jX`t;!mX>HdN z+U#~V)4N;QoC`aP=I&9Zh3L?-5E?L6pz}4)8Qr^q>u>vIh~omr4W?KtV{vlqw*W~F zv-xe9s(?TP*Pb<0l2KXuW$1W|e=81&6R&n{uJt0fSpNXF+`AGjg+mDiD$zNvMw}1$ z98ovNC*$C7N^O;p?6-CoqT=34+&~IktaYTZ)}+v@3i=WIaW^EDT(fvD)aI0Nt2Czf zXtj~=Bb}{hMFtm8y}5a5AOcmWNA5gpj2|kjPK~vw-?^d~6Ly&f;~^-~+Y?_WHw zD%9ig#K&)rEbQD^oxfo+H8$c8j4M;kO=T)UY9AkLx?rzLrmAu(%(AZr>n|#ov-L8{HuecAsygFl%-8nY5 zWf=7$@hXPVWwl&HmRpC^+Rvaq-Emer1#=p!?jD$!-Kwo{I)CXqm8zpR3*$R0wZ-_2 zntdAK(BXtGSK8Ijj{`&dalN*gjg9`|!i*x`hIw_>(hb_o?(nkxAZD@M;%zA{4M1c{ znuAUQ@vU)tnBuZM{kEo^x~)?3@Q++ok8|5TqVk8i?P?AL9Ecwg&lb0tTiwG$b8oqitBPR2T#YQTFyUT3 zah$IoZ+C6CX*QKI!-9FJ^omPci@YCmMq0LiAOQ&ylc#5Sdispo4~Y;^ETi{ta)yo*&cUR_PO zT*ChVMHJLzQqxfqQtiu+wIaMRkqd-C@5=d2pg#kq)R#sxqh^ z!_K0=4u^&_d9%`wb$i{au-zuhtDBpB(PWYZS*(paYoO{-bI6?9pAUw47MdgE_q%EB zq@n&sKJGgSRpE+g=S0dTD^R@w0;F*J4m!BBvO4Lwjl3OSsY?ds1XH!8(>b>TNkZy19V~gpnXOvhm_Q+YC(>`F5XiYQWjS|z%ofkK%^Tv&G zqF+%qi^%U%TWQ^4ykJ8Elv1fbD`=-4xKX^H1Ln6oiH(zP6UeU1&w2kY<`Hy6^=JWGG0wwVrgsvq74$zW+|ng7dA8-cO5)}629iN1<^rJV6%VKt2bDk1m0gsc3yFoM zq+l)<+;5X1o-}5p$`?|r3j2dmN#&Uwc=5+dlcgkD#m25s+}UsU_Q55yyO!JvMua$Z zDxfG+QA~n>4l8;!OB^_zJBJj^MeWV~r1DwL?{l@?kyvD<5Uoy{juhe#@5d8_TT0)wHAHn4R>J{NQBcg>FGgAWt9LMU%IYKO3w^TER#XgSi7Qewr3QTmN=n*Pb*(=VXkK`R)g<>z zWxhmruN=7nBHR#>G$DqXs{4s3NcNwAIpnnD>nz+|#;=Wtsht0fvKFPdol14XcShX>>lRYkJ{Eotk-D&DENaCoB z%tq(smz)0pjg6Y_>KEODv)bLVl`k5dOo-z^8Rk~KcxopWw>nl;z$e7=e-22uUG@lW zF51pnr#6!{G_uIxsw1HQ(VBv!4tyz=a7iaCoP1&Z$XwavHs1hk6 zgwmtep4Tnv!+>h1avRUnspYe|RkGb?K$Ww(N#jQ%wA2fN8l!=#o~IaGae~2NPl+_4 zVPOv2`kfPPyT!^`?oPpB++2+&L&0PsgFZ)xE|kX9@vN7Rj}oZHH;8ZkFDB))c?>TN zgi<^avaonefR#FBFG2{Th@0+~{|^R05ar#Pg(W$~e&@+fu?k>2e#Gh9a$%Qeh1Fx8|}RBBf>sP@#? zDjpylTH1x0w~I^l;qe&_!{-yhG%`;Jx!Rm8R_x#;k+>Bx%D@s>e^L3k<(R}yZgNu6 z=)R>MEczc|^Uu=@Ul%)e=di55-0C-QvjqgyX^~Z&X*twsreokttCE`4k{Gi)`h&S` zK0R%>TzIN&`{vOlvs}d-MlpA38*%Q(q`aX>Il0t77RJ$&c%|xiYd# z9EvlIs0j^0T9cTm&X}a5NT|mO`1eDEWt6V+8Sh76c+V zyqXQYXNqX0k~5XFY7!XuRTyL`Lz91y)+tj~I=C)eJYq`vln=Vfp}vkrhfx}#b5vq| zNXYu*Z%jxQKPH|DCAGM>Xs;snx;UY!9W`^VCDJ+K{E5pknWvUW<(3HA>MxkvF<~SP z)Evniu!L(pPQRhPlZ#FK%!Ui-`>B{&2&9$&0H~fh;#ySv1Be}<%D}^Ns*)ji?hSPN zf0X4wMp+a4I9aN!^A_w&O-d&d!+9iV!U+gECJF6oe^{qKwQ(`FlE*XH+ic+Dsg7BB zJi9EhB)S#D0#=o%=~@s+JXYnD)&|#GcsB4i7yeBKo2$EwW2q-O2?vz<;+@j{F87t;bgO!wOOz;+lpkQjQWvY8RHwZXENDc zYhME!alT3;*I*=uMU*YfH1`chfn4kNV~s&phP{zmcWB-PdEdp&+*WeU-I7Kulj)(1 znh@0-2dCIw*y4Mg@3!sjB{=;JUx)87+U^^)SDUGLv;dRnE!$#pECJwo4gZRu{A@%!mq+&S?)t)AZOuGSc{D?P^3yI9LSA+5ovmL?=A(Vk1oG0PfK ziC2N#l=j<*wfmWvu(;k90AssbdvzccB!OD-1A(tRX_pL7Q@if%#!0vCCYc4qpHPsN zx>9w?2_T+T_8d!EQS*}D?iZM-ZEp3rgXu4#8l;5_eqvK5K(zhXm0T!|;kex0z^pey zcTpu)i1= z>JoL5O_HEXSwxns$yIQ{RF;t+GpJLDuRrq`;&F1}TuwOJzjjrQMZNT*&u(`lwCYwN zO3?LXAPzr{D@ChGrpse;?e?xt*jesZnH=9^M%oSYCx(JTAa9pPCU8# z!>&t-@;7f>zdbhHXkWzkTQ$WjVry2NG)P0UM(bLTz_$v3a~Q43yiz@pbvftDMAf%E0N>y z&X}8))ZQS4cPX~G(`!3hIUq|?L}kW)UkcU zx%kI}?)x?E=GS#=X}wyqkhXE5S(05$#%(64n98E0<^KStu&aZOaa>tfYXj$9-+5bN zwied0NwwYkO>{nz6bdYa76!S1N5dO_)S{L}B?%;wRV@5F^!n?|F7A@f@+)aAAZvjf z&)av>%ApW20hsC(TGx+ES*50}I)xku_rD#2$hO^gF*7kSu#t2XWBp$IjXvD*oE05% zT!_$CY#Ag$QwwJYIu=Dk;{fJZ&G@sl^I>VmpZms`Ok)Ug}Uwgx9R5feJ#$K?t5O~fN5VVUeEkVkbkhG86-v32X(Q34*?dlG1l+9m)!c03PS)jRB#HIfiPEMZBT&M$ zEGP&W)bh0{Hzd8qxR{B2#`52AWQOu`manC51oAVeB7;$24+EdrqVKe70vl@siK;&uPRW6_#FQL z99nKsRm0{+qV27GlXIPt3t9J{?k}w)2*sr&l5?lc_rQZ=0Uo zaJE+0vc~f=p^R!mSqW8HR2;zIDl+&|w{5i_N@B4!J%4A}c8lxH_jcTNw3_>Awl^Ej z!uKf}%B-c0#*hm*{;dZhK|FKSLBrb@^aqCCURqw=-&$B(CfQ{)t{}FKMwJzH8b)2H zTmWfPpYg59HuNmA{)TPiL(@D@^n-Wb?M=1R_PbZq=e0|DaT*C^QdF#3LGCHeqPY?3 zDwGnXTf>6LG)eQ{(Ek7{@Ex|s^72ouv6CTpZlwJ@gMu?^V@`zA6E>)nYFvx@UFEx9 zhHo(4PqtgW;TlQwH?ad7MJu6<`!tklhM}t0q2>{~wT}3c-`NPNeofX zG|N0!@>?O0yj7ymkWiXvBmtIO4s@}&(^}w4K3AH3u4!6mWLWMPAFJEJr*fu@Ex;UU zQ$k0kFJ|J5bxqZ@D7caBuRBrqVSR8l2uV~p%Rbzr3a(~iJDt6^ONnK% zNSwB*t)M>E&pkTXfN!^4YMPs>Rrz2|N$tOGBIw)(62SC98A1vHmjG*@FiFLF1+*1g zhjtedMG&-#U@0UfimVNDT6{6Hw(C)$k}bpDri+6b-UR_%4`iSK1x{4`-**Vp$zo}s zxm~gg$Pq4}D|KoDQdKJ=fx&fgr$LPsQbg%Awq7iewVm8DwY1?C+ep?VjfQG<8XlG7 z_v1!%q>W5oDYY_9G}f^^mo1c(0kYt7rD?$ZsH-ia3}E=`EHgc|vW-L;5E9iZz=eAC z!5OP61zPxM6GynxBW^`ygdmY>2MREv{s$6i8MTnk^ZIRJxxov6z4#(7*|)EeT9b0AGTVZv%^HOy4qXl+R}nqa zw?k=2!Qxg;;ahr@xR%_)ppfsaO({?apa(DE@x@)v2b!TQin%PW7V<>f*eQr`aa5xEq91%MHr0 zYFjL!hN=&hw4au}ajjHQ;>T;WgREL#-xAc%VIA9TwhYjhB+G3eA;Ys)hti;oQNhQF zp6(X=g|~4$V}~ys3mdNug8EXg1lG*JI#JXWkPOM772q*hPMKhNdp_+gwXU6NtHiFq zuxYJe+f9KtRuR?<=iW^>vI^5l|&}0ij)9Rlu&R0W&V{{SNXZqHS@S z@GC(RW{}7M?kO}mduziNl`^5E_O|TJDB_JC-LZ??Ic2+#veM^oIYFgMbk)n#7`D@= zGpBcYHs={ySr%Jn!Et6In(89*BeNo-Govr{0y1Awj)v-XyT5%MDmbOcle<~k+d%EA zlgbOlG)ANW^JT#OzU52pdnC6KNvxTh+xFWMWxO(dE!%>tG>lZa;<;o$0g5@Z>Yr_m zgp$Sc{6)UGoh;VdaAdcV6fG8ty;Pr@*A+>wCK0h^UDnk|FL5-Me@$s`9_M69*CbU1 zHLuDzQ00snUFP!AYEq)h15LMW4%YBb-Ka*Yz#6hIJlByF;flAB@!i9@T620TNZlaY zE${4Zt}g|=ml2UAvW8z{W(%lV3}~Hl9lrhbW>SLo`H?)b3;UL~U8-h_Zl!et>^g-C zgZFdABQ=e98g}jC+g9a$)igJrGq_zbzT1|v$4>aEt5k8XJi241HssYFN6N!g2W)IF zW4(!Pn^Y?5ey%llj0OOE$Q2Ydp{6jn+PkV!!Z|O2x{jl-BDk78*^%sHvJQaTPi|Pn zDvk^pi8cH2tGuozqsucHW07OGc-6m|O$D+|2HSd|fh_U}qBL62vr%YyRON_KPaX(` z8jpDo>6e!Hb)3U_v?*sB{{X?giP7R?(H$AJ3X$;Vi^f`QylT;$<3w(MM?4#3@|)YO zyUZ=;hiH*On)*2ebZ17;2BN^7LbcQP){BZkx-iRTPjDqChNoJU9BSV;+-v)BNNH7aqDZ5cQbgUjZK-E+wtDWJNB;nF zwIsx2Ip(NqksQV=a#fm1JTWA%z1h;xe{r(Dj%}{yjiN>h`p3;13K};~ys|i&Yf@|z zc1GDRZ{gea{lWIj+koAUPNlew7FwL7n$$hp<9=S->&s(G+AAF@qtdE$ai>tnoWp}dCRK^(BX zRIA4Eg2c60<|rvnn7!%gww({7!V0H;7$zrVe0<%|@#QN>G8 z(T6G@yM{ATqSG9_&8G@rZhRlaCi1&2(&=V~+ilw|%=1fiCW4wqqZXPLVWy-J(wu3H zQjAh<`n<8>z6!b32Bum>bUUu zG8PQhcy8Oe-(E#)0PdyrU~McFTB3lkJPvu{*5KQ1c=61#L*7aHf8?7M=J%gPJ+!eM zO)|t;B#fFG)7rwLjeo})+qGKpp%f`Lt&aO~@=dZkl~`xJbXz^lDKSbM>Fvm42TKZ- z2AqES(&d#IR#{V?f7mNnpGWQ=ru!AuyiYyN%I>yN)-A>u)-xdjx@L?AEGto{Hlxm` z6J^F+C|jnF4cs=(nYX1#yzr?n0 zEb(t0-}l{$!qdrawusXA`ygX2)5fw<=Cy=V-hzdIV%#*;<%m*@5{qS$p`6<9{{T;X z_D#Qe+b@%3yt!cejfg;(5lXo_sX9@}ZnZC3QTwbW-X7%Uy?th7AJu*;Co3vNzTnxc3Td~Y9=SC~fkh}#C|cw{nAeD}JXSYS#+etX=2rsJ_e9aiB#L3IX&^|4 z?e^)NT$j5Jeox>D7u!s?7IEHD?xPw~OQc-tDgkN^KY#7T?4;vbQm%liAEjIW0Fp&M z>EhOtZdcZDnXhdijEM|rXwD;0%yg0}N5>!yHMJdH?}b08p(AJT?;yX~{=55Z%OIHA z-oWT%lU*yXxAPU{sB^D8UVD6~=~7xHUw)VFdsg$djmFr(mpUf4y+V?NO8)>hl2r81 z{0=mRnAWcakVuCohDR0r=-{LmAgYp2Y>+_(Tl_{?>Td(k(2YLF;^teFvz{2QZ2&#w znR}}01x-OU%A8LQILTZ|;#P2=^xhq_Lv|z(y{u|#hTN*soV4lFO5&-!*l{=WSZ!Aj zZR={w71E-lXXPwVP<*uG&n&-YEaj<{(?wIQ(_#8%lE(Q&JA?oRTJ zrEFda+`$x#v0Fx~Jc@z8_>945eML=v@AP1HTkUhX`*9wQ;tL_E*&U-4X_VDXM?Sb2 zJ+z#(vp;v_7NSWZNekPuiG7@Dr~pL<6-fFWpJH>4Jbyu*&&sT9Opvs(xrl2*Dj2Ui zgO}l7jw|;l=i2r=l1{IU2Bq_hS$4@8XR0^lnNCYmv;gtz#|OAf^!9(pz15qcmD{a$ z^KfjpJEm)ir0&2J=yw^GRZc&vU;CG^_=*x_zu0gK^0EV$O0qcGm6P{{Re%ZKr$N zExeW()Vwf7# z8rK+2ybmXJ-rBmArR~VhZdZ{-dn^(#+-(#Uf`4gvnNKzVk_X2z>M>@j>XGMetlqUA zqj)oj&7IZ6dyI1Sw;NT_DGQ~Fa@1*>{kdYUc(l15bSH5y-Gd*z-6VqQ7n)-WoY1+_ zuhbKjPs2aigq3Jj-*AWRGrPsa%_>Q4x~I|_3y47uS3Jsd%hY1_s~pcuXWcDZgI8i# z-OX=w-Rqlke9;5iZY)NA<;;E`VX}@m93OQk+pIW{Zy8p}cNob?uPdK}yqg2+pVvAA6IQ0q)JAeP>R>rjX2{;I%Ioxc2?}YH+}`S<++>NdsT)nsf{Ww zSb?oOS&&#$j%O@#>Z7UZEuPxUYc+$VAE_5}zL=$z?Sv*MA^Bie)=Gc#2Od7SolMtd zvA1GvtbY$eiKjQ)ri%uWYl!r^i4;d0a4$wueSZ8;#O&X98+#?IOI61LHu-&Fbu-5= zvvWWZ2>hVOre7h(6|QWpjoQ0uP8e~fe^MlIv9yx*?`&tdwQAi(lRTP00I2@}qzq1~ z;C%0My(!AJrTsaYYfZ;(yR}Jdhtn*c)l>mfP^DC!x%@F!luwYoZsg_fk=?cZwXvK^ z?Hr`(R#4e68EOL|!|hB}DK~+h(_wOVFv!U67E@nNF6Nxe5p$v@;@VHfzlJx)I3wvE z>UJ%-DDWOl&6%zs`rn|2H2kQYbrvRqfMv_q?!>4@nPOA1*xT+KR~AqS&N;i#*a`NjcSnj)$ zDz%gnfDFW-C$vaYK)|+Nwuc!)O}cX?ajD|FQSp0tH!ZJz+oRrNxVLrL7I)H+%^;wW zX+mjU75lTODn>dR!}2Vw(iAcbCflTYX(DN$fA+7V6l7e0R|)|8`TopW7b>Y7mPM7n zX~oX{HO9?0!F_)#?Co+dEwj{#a1oJY1JziA*Pddy!V=S3yjg3pibp;d=GU88k!@Va z)(i#4*)PmvB$7ggH2997@x|^%Mvcic7^Hfyi0)UruH+lWi$!&I8arE6k&MH-G`b;D z8L~7hnIo=e8mT$D*8=hVr;>Si|BQW}9Z<*Abg;b4SzZzUlSR5U!SI z4K=jPqD5K}uAl>!kzd`KRjgJfH!;AjwrMvn9=_Z5TgdlYeQa+w#X?$W%~hmClS$N~ zl|nNd2x?;TdQwX>JBiZ_&m!LTYt653kUKr3R*rip+Vv2Blmk{2r#=+UoT#-n(jwei zW&Z%_=IgO9)c*k9TYFvX7WxJD>1_~sAdXUF48?u<5-8QCstzrlkWLV*Ymdn2mM5rB z`fsspvJJ-X%I$AFM&WzgPWNic)5yAxh}Hu}chW(s^nkN=CsKhG!+-z{LbN0Undq%sbVO*x`A2xYvhtbtE8Uk( ztdP$jxv*6#(T1tfp_NWTqlFH1>5eP#ldNLtQm)(JXExcb;=Iv%WnR(u2$;nrVYobP zM>GdKMY=+5=KlZ>6fLPHdmh#L$>tk2&o_@DA(;A&ADJosPq=A{C z>bc`c+){oJ)R~fB)J?|Gq@D{ad93cg`pDykG?)Uxi42Mh0@;z*h{V0cV_I+~rKG+& zw)t!=b!&a}m-9x(*D5Q?$rze|N$bS?bLY1mN?M*TF~IVB&8Fhs>8++oA-%ScwDyi% z6G~LBtk#@JALcccuk!f$yu33vbo6f=zSQq$w{BM!cXu%u@9ok+HK7C+(!<;dJpTZB z#%>Z*N+}MbtqC`t3*}b(gqv58Y}arZSG^YDBrOCl7GOKOg-EGGQb-u-R-Buwz?E*N z(Vi*)0F0h5y7=wA<&TqnN0UtK-IbC*?adj~V`QB~O_&Q>o_^jZ6DdVJ5=QFTLFV73 zf2Y^>cGjLH z>Oib3TIHCoFQxmd!BmstPb2fY?eB27y4^0E-X>`+s957vr7Dr2h${2;ukEfeb916p zi=}GuEvVRSU#J`Q)waQDc`Du85Whpa9WuxxGyz-OY5?c_ab%$ft-81H8i-r0(C!zJ z?+a`pmVb8Oileb3YA3oWQSPlsp!DKtd+w{Lig_5WX7g+EUn5<{4<_2~Wx3p}^qZ+8 z_q2!xo+IWo1W@rGhB%<5CaSVESqu8Rv-maj?XQveg4^2eTjT=wecLVL?G>GgB*~>h zi5QZ_YEPgfW4dr{CoGYZpA+W+v+h>6jk@g4-MeNI&k6!NT#EoI3iTX5?iE$JENb!i z5Uy2?@BSP@$GxgL!FZkLo+SwwJXxv04z$bmW3@_^Zv<%WQB{`PX3e?Tm=Y-7>IqO1 z@t)y2msUY5!2R55%;TQqbycOu5!9(?7RkC;_btAa)(f>QWV01P8-r39Ntp-sWl`2; z8Z2=1DML@=@8kYMwf_KaxL@sFMPo2WWaXxzz)?jYn%AGN9A!6HD%4Q-j~0V$@g19X zn{nD;@>IN3SBd0kltiR^l+z=q4q0%o9CZD~X&jBpk0$axzsD`MPb~dD+$V~%7M9T) zOz~+Tuq8dcC=N_3!~>2SiM1&&>0j%RD*T7_Z~pMyEw1jZlG62|0^0rK7)`O9CDDk!_c|fK94+=ZQ&W6sa{iR1-@2eS}Kw5$W96OK%kC#LcIZ z!Ev|?c~KxOa8S~kkkLkb1u5%azP0Cfu|AH^@!MOCx3S|&ntP8XvXVHUyCzG^bSB!|4726_7_aP&S>oCM0Pb$JHAYr#`%v3_ zYF*CKGkzhN)^wRQNQkn9Z8fhAHN-FdAzvAt`;Fx7?o?c;sGc65)S%oq4XXOqYyHb+ zX$r1~yM)tJUDl;Y6{=G_VbrU59nq9$O&2Nf<4#^>r-$vnF}YY=TtRALDJz*{El|MF zm0(V4dK_O&U(cE3_bu+{Zq+ATIdD0*@%_Hf$iA+7_+{DTkV_qo{BN4wo;b!meAxK*-zrv8#{aX041p<+d%i88G} zb`eo;D!(5?uFr1U-bp5_cC?{^ zp{Hg+KuI5Vc$iZ(kFf0BziYX(i=lZw&j#UOW_byaKm2UHjG*eYLT|EgSC2%btwRV%I!*)BaZ+mPC2jM zZv<6$7`qgvB+Koh%5Ln6QFV$*A~4WNJW1<{K{n{jY;Uewp12m)Z`ePflbVtqiKIIyn z6-;gN$k8wd?^=rDT&Rx|ypsH&i?#fZP3SkZo{@D6lNZ*tx7e17|xPZ zsco*)p=Oe0F4U85ckW`jEpcpLxfA5X0rH>q#MLh{-NSPgVvtm?%$l-V%92PIw#1c~ ziqO}QU+@^U=r^Ae=jGe)Tzc)SQCYY}CFHg@HnXfqhfIq?HI6jSnehAZrMS}*==*PI zziv9|i2mmd<<{VvdZ%hep^oY@8C>O4QI;Y&HhPzKsuo?@=fx1OtuCK;hRS50`AvWd!#bEOSEnguB(ejeIcTF)GbheGt*y= zF5uo79tF#Kav*KCo<%g~D+!wI?e#sp(2~%y=UC=W0;BHr$2_g(tAipJ4HUO5BU^j> zf1;g~>9%PV**#U1l2;?@J$dJQ+Nh0P-(jrUH;62ZFz+_aDQ!KAz-k^pjX)$+e0loX z(@~9h)8t22*m`LFG4UTPiYfNZ<#wyLDzieccdeZWCE0+HSy%$K09WQT#o=z}#3xCGEc1w(m2>(=*9uBgb#KLgtL2h@%Cm%yPwUMp4d`IpGPc&p`0K$8_3vO}EH4 zYlKIJbqDiOHF9b+jbu=eNX&Kh!V#3Se!fR+KW-<`f2^Aow)wPJc~$ZHUD|ORR}i4r z4bUnI$qb9BNg=2}HLgar%G7dHTp5IGQ|I}7O51PP#^}z9%tV%Q2CHUAxd?Wl2AscW zrZ;n1SEgew8DbsvA7p=V7gZGzi}5v^#Pk9P1|{AK-V_$Yhlcnh1><9$m#z8 zTxoTCRTezSc_Vvk`YGhwzlkTAc*$9L$liwM z!v6qBzfobe7u$};$+8l!I*H(tSC3YgXk(4!VCzFrz<&B|3vf?5iXQXkf21F$eqrN# zCFhN9uKV`fN?l#gaF0B-qv?Lk37S;*2fP zuwHGj3#+BL3S><5wGtINlALOzA)P^>#m|g$ufUF<5)_}UUSGWIEwyepLTgD-LAfF^ zlUZ64!RuWom?pW?{{T_V+jy*bAg)t02W#c~zSw59vE1%pv5=N)M3uW$<3>ed2*zD$ zq}o+~nXbN_YhNY2u!nHlD6h8e4Bt^@Duzu|(yRkis|>Rp z1#3)a3+}F~KL~0lE^Sh1YXJ!)HSHD^_Mhc6LsAH@Axi%1&fZlevr`Vh*C}rjUs^q`;KDfVt|SqLB-7YQ%#Jx4^v;;Iop)ia zx?_jnOls9gc3xrRpQc;ScHMQ|TIx2^Pnx>Yp71o+Bbf)G=-9mN#@z9EHSxlx*%SPB z_S5wz$dWycEw&#iyLFQ9$0uP8mf}WDC6k?cTyfCcM*?Z>hU0e@@J^-<8nZr}zSulJ zz+~C?CfeuR_hycp{iMYVFFau?%8VB#V0jvFCZ{=f5{so0Eug@8zw3VAZ?$f_U9X8* zi+jWoK?t^tJW4?Ys-z08dU6@{%wcBYa?i(#7tnYv+vli)F=GsJDtoQrxvMu4NY+Up zhT%+J<=IP3JVy^DU;N4eH%@ zYX#o+xlM-sx1ae%6_;4Z0@NCEpc(zyP-B)!J8k1%QZ%EBA1(5fv6j~9<+!oEaA$%- zUE_8BXqcLXBO*S=ZQfPKg8G(9rt8P|TX>+n+i$?7%GA-dm2E+_EgOX@av#39s=E%A z9~!=XczJRz?MsSfZsfMGz~4@>OAJmVbP{HVAg>uxDfeTYNvyNrE?AwVQljT`dmt|@ zoM^iq-m<}9yjGTJ80e@?8^47-CI)Hm^PD|f$jHH-N%QKpRnIj-U)4|P_kULZf)2q6qU1TX%yqigB;V8T55;NU)(!aebrPQ zx1A%_Eu>w(ip;#W9V^Qw8J0C3ghpl}|n%O4s|tKp}fzROpe-6^hg~ zDtKdAMYz#3(C)i6YR^+qGWa_Lx<)X|5eyEkC1`RZF~Ia6<``(j;z{{i(&wOgj#=F5fo36=BfgVSm@JacG zgc_{{N}dGM?baM>yv{!D*zV3XjIdc}^d#S1-OUu1_H!{sO=uW`z>q4rbR+GaB8f`5 zQ63(`cQzL*B-(5(uEnK~zLQ6BQmrs9V`0G58uR;e+CRATB|AIot};Z3?Qia_B2C64 z9S*d;3Z{y4(oh`MhwWT#!xPWn?JVu2^nSk*-p6K+7?$4R6rR#!{{R+PrB={X)KFHV zuh`=^ilRAfM&+M%x};gjwq8aYf;&WiveYZAa5`)IsfbveYkKCW^X5Q;;N7IpcWB9b zXxbVjI&~_VY6Ol4h{dhjIrj=H+DkV-RcQ$tODD*nX)D62MNLOTj$5|rEHXT+saqL$ zn%ISzmfjf-l3e>3o&ut@Cy~as;arQW6P)zGy|lQyu(P z=tWT;-qU9|$t##F%?FDA0Nj^TOCIY1dmRPY3j+K}stVU3idng=_BZ>Dqqeku;@8JE zdt2WoxQ@#BTVraSNC`0jdMK0{{VEflJZ+?JC}xd10+4%$f2zX2RePdFmkJ- zIODreX~?6DM7Gkd>dMy>$js^#uzdXoJaJ1?RZ5un`JSHhx%FwG;YtkH-5IT}ts+I1 z%~iBo9GC+*dWpjZVfPI(6dwtBcRJrt}AXXSTm=###_15g-F)&-QJs96EA9REXv>R zB$*fYarMUcq~MYD(C!OoDMsXQ^yTO~xmk^>$>5gZ9#3%-1o|TtKV-Tt16Hw zr`$2TT4?$H;o7Xu)na=6t*4CkWWL<4C)zITXhe!dCLPExn0~` z*|m{o)~)$>F}9k3Ni`I!RFX}8JZp^Sa&75L424YxgLt2l-`&0T(_wcyglD@p$*Bq{ z%#wHzdT0A_)}13<0nY2;w|j)LOL1p2!6cP?sL+rY{{UD6E;)UMIF*??N}gsBgUs6g zpMH;dIr0lDIpez8t%wp^Zx<0Vz!02?2AcJ9120`U<49SIeeX5qbVeuFKd4?8;xTO# zZWr4-HI29e>I*2BSw>(rYW_-pRS!Z4BpmJD)gX-@g13dk`gyu+zBy_nA5A3NM&)wy zPb?P!noiWJ84#*ZeL-og z0P%y+WzSIIi^}GP>HCV?Nj7~0LXh{LA!P&HP4v$asVo8;0E!j~3fyX%sWN6`-g^?V1|tBv(B8V@NqE zQl!OuPlLR#$hOVzdzKqPC9SJYO@qlo(aEWfmSq3}Yg~sDkv#Oc^$fy|v`d!Oll z>i*;7vD<7L$Z7WGbqg$>;-HEU4Jdm4%yV2x#U+{6+3U;tsV%+z-L;BA3WX8@p%xC!FAk`tlS+7I_flIT8feTc$`e?rA{pf z%9tKqyk7Y$Zo_-9+%B%x>r_`z%_Dn2$i~5&DpQB>!A;IlRKa6fd|?qsJb@J_NkIqVG@<2D&(rK~qc4H9RAqs? z@qYu0$ZqQn^J^B{4NN~#D@QbSE2V_Tn4v#Wulo+jxoE z*@;$$Mh#FZz@vZxG|W@>gNj_o+MN+Io3lu?U^i>aNiX4#aJgh#a1dX#EbTIY1tp;* zmHw(!{uR1PkyXbpr4FCwV>0~ z0ZIy8afIW= z!A8 z$Y*QaY%b(CcK3<5OsU(wu_ORg4kdZ12e0rrtfi{B;q)@Kv)o^9Vp4=%q@I8*%7}|BY%%_g-_C3KYC$}G$C{==2VIrv?GB9Dw9bH6y z>$kMKxAv;j7RE1GEgjSQw03j4pQpB9!&o(=YWZnVL!KhClw6WNWBDb^PRwByjSj81 z8K#C!t8!y%7z9hTY?Y2+wFvf{u}aR~emr1&-*4YbXLU7^L$N)?JF7={&2ZMaqNyTB zVZ>IIJUNV7X;rQW`iOrbxpp+ITjz}pQaWy1lU-a&uvuyiCXuPZ12WpO_~MGWv*^|M zy^~S>)Wx0c$oH4`Hr6X2)yRWYoP;rqQ#Oi&AawCKI;HM)Z1N+z({C4oe?MM%@FH%T zH;`F8f#H%h(xy9zt3borbplBrb|Y0;=OS^b&Xz7PES6`Bg3&lF5aLcYx2~~RK{5a!C>eG>|HxA4j#eQan-L3aiuHFL_ zsY7rS zyLHw70Hm44{k4VUW)@*_X*ty!FU++(C}~5Edg)4u{$~4a#O!;K8eO+_v$KldZM<_} ze{zj}n(pQo3t3>zO1qWGLmmgFFzQs- zeco*DVMUHSNUgVAQ@cFN4{fwb8!ZP)RO793IAa)U_9E89ZoaZYWwUfBNt=CN$MP4?kC&vRi^ zjY0{Ys2v9e6yyFFg@Qc&mt&l;mL6i-_k4!tdwsU(Ja9yHf&$eDHC;!6#nl!>cRs}% zHafNUJdr_gC$lraW_ZL*3>Ro@TJ(vqrryGQlw_6#ggXpd$BO3ZEmeq znt7ClNdTa$0i6vv93B+(J#CGyN9agIo*u6m3__A@>+aiqyexHK zsljt^`x|ZZa@)3z&G#*`bcS|qR~F5s3l24)Gz>E}u6%g$wdqwK5oX5YcDB~zD z%`2J47&lgSZ97H%)iJ<>x?ZftD-u-QBthYs4wWQV+R03-OiWUWH18dw?4yQgr(MPy zDHY|)`&f*|hKhA_^{=7Dx@wql;&SafZOzkK*TA_3?{SbpFJ>t3BUVe8iC6a;15hzk zqMaG`8$aT(Zj?#4PGjT8?c=+K9_bA-814#GC}!Y5tuw}uYB^+bZ+l(d(A!F@$Zmb5 ztmKDkzm?*c%BI@N61Y@I0JsqpNI}(JS zuQ98$a|Y;}mgG@ZShYc~-lkjAdgQ`tUs$X51R)(rv$S z3T+6hmLAn3FvE!h)0YwJ(=_O@K0Zdj!FRiV(|y+Kc!KI#ZKsa2*_Na-Mpd;J%8oM( zD9cKGaaE-%Qxhx>Kp5c`uLc;>rt+a@<-#bVMuflT3N&C{N2;Q#Hz!&A8m9 zIT*<&Byr$>rQ5ISE#@W|weq_~^GA5J@RF#vij(EyJ)q?aUZnlQQY~cN$0?t zR=BLA3~SGsNz%BUKfn0>oECEJ*3}c1c>I&+Gb= zb^9o@JimH<^KOzU5tYP4^DWS^jzP?ZtwA1?#_)=#nl(q+Klpj)fj7<5$L{Q+Xz%TN z^NC3edu35{Y9@!@L(a6%h{YXr)$nDgeJkYNSGPyMO0ZeSw96?Asr0MNK|e7BhdF>V zKerst=@CXZdi_lCD=UScn1nJDq)~MS1q}^r_+xoKlhXvN=aCK5BgtgiFInC0B3qklrzSgrO$;~?)FOm+ z%Nokcl&dG3{HRjaZL!;Lmz}Hb+%c*AqH1-q8I&T7q-1lZG`XS?Z;3I&B+dJ8wcjtLxq{dWy4Gk=03^@( zR0;#}j|B2Qqb$+uO|`SG9vv02yF)1DDG~Pr8`SaFnFijE!7{jy=-a>el&^ zNaDP31f@<@q4x?3P;fjtWs61*w0sO?-AgYd*f))u+Q-Oev1`vCzn8YR2wj#L3W8Lc zf|aFdl}8M-#b<9yuNULsQsZ&>mv`pg{{X|Uw+OA`lqYP@cNhygQGzL|`HmmFr*76occv@_k=&lHh7k3tMb+QcZR zD%}3wxR|FO+N#N;St9Gin(D&st?#8)+tC=A*wad%DJEo zzZ7Jx#iYy((EEze)rgUORGwAEx^uoXPSv4FhFC_u}^2 ze&(^K#HVWPv)#NN2-R&?^NqePw1J%i-`jd#1|ei`sL3 zLSNlOw?T6TpwT{-NrLJ^c@Sv88hxpZ)xT<~>-In6>w7v&mlBE%;#mx&+edNqzUbtP zvX?8w9$2cgLtWqTC`SmowD=6eHO<|NZV|s~M46gJ1S{$}(DPc-nCiERN{79$y9aJo z8dXcjsLWnlb{1&t?UE=N%3bZwiy(E%v@9wCr9~)uV_g*UKR@nv6|1^S}S$RASL7!y4zJ=_jdjWGEn|rbgjaogbv?QH0&b)b7 z9RC2enpG-SW8OCMhZdG!Gc9+r-TfP1T$t}v8ZeBIQ~{Gld4Z)+*8KEB#Et)0LWk|MxWSX0ns$Kj4W>~yN*RgvMtVJ$kPz}wh(wY`qu zm-kaqVjq_%KpL7zQBrt{^#1@WDgNihzre~Cr8}BonIV_QWZp_NaXr(iVRNRWkhvD7 zMw#S2aK$9wGv1uHmbUKQaG{)*>I*sKxwgHI*L1UOR@3MuBtU*pNX!wIe}6n$I;iU$ z&oOMbnpA%=cRxR#=s|UDx5H<55T|wI3>iP3ITU=#c#fEz4lb3z`YpHduA~&FDoc?Y zZr#n{jz-Z7$iT#^)Y9Dn=fe==@;Q6wVS81n^7R<g@hS!BDbxu348#tED~p{{W67TT3(SxA0b0y)|C7WsUCM`zf|d zsa@7s%(i=|(gGen@j!Ios@imCgKBoWtXwBZz8U<8d#&Bp_Z74yW0hC((rCU{bpX|c zNd)o25v6fE_C1zcD9UifC6DwUw%sFpSa$HGn%*@;GLl@C%=?8ouG_lG zpZ%`(X$FgC1M>waa}EBOy`@T;X@=(QzMQo$EWT7JH%R7>ZMFXEBExZf-N+Eom0IR1 zc=5!|yv-c!y~DQG?c>dhXGON1Ea!PQ8?oD4Hf+gCKvT#gz>$G^1Q-dUSUtS)@RMNiSj$?ol-ZcR!Xz z)W9B8ALCJNyy}mIxww_tynUue$#(mxpb%ZZVtWQXo7DMaKs5xZK9#2)ILcD1!JeOK z-cM@YOyI7WYYdK*h5@KqS8sr#^u@aU^pGUv9V{vl?s{DGKUE3>fCM$cA zE+$z0iW5@1qPzy8Ah{~%v|dUEKBc67$1_g;hs8YH^B5Z`x_P_wLfvB*{-{G&}+7= z0I`jv8uat7Ijt)Dj=MJHE82BaEK8ljMvhnvE|(V9lnHhGsKYuO#Sh0F5o5bs)osF6 zrfVDs9!I_&^bjQ`5l5p+(6Cd)Q=TI0qN(%!lW(FjQ&?AtOXP34+rzfb!G#by#-8Zd zY97WI=ZngvEN-m3lUClB@)h=*tBE4rP>H8)F6hOBE_DWgiV^no-mbN0iw^T0y~l1% zwd0AZYYSc5ZiXpj@3JEPWk7Xh%u^Uiv%$H2E3V`?pGEjbk9dr-ZVl&&cWm&Yt(mi@ za&!E^u{sE*npdAOLyoyhk*UQvP{zsQn{wT5HrsvSmcgfEWg7ulGbE=HMR?E?`|-~i zB`SIRibB>b)c%-whiAzn+iz^H2GuKpeG34wM29_NQt}nkOvOz-xno4s6=;{{`JFLT ziRpex;2S6Dhm~4+M~vUcvOzF1Nno-Uj^t|8$W})>Dz%_dPKpZUmbW(kr#x|y<33%# z?LJ%OH{1T-xM^9O%C}OGvTJZPYgRwZ+KzmF^NS?i$j5?CzmZwmto)1x{hjrV&DFwN zta{JnUBgiunpTaO_kFXO*|reyFm6|dh;G{+^>lv-G`7+`tk=GWV-Hv5F| zNd%21kE<1;%mqO`D^7fK=y6TOiBc;%@chc%t0fOA-4|@!b}81YbP&l7sw28EVZ>EU z7QVC`tBtHR8B>Q5)T^O}+3aVM=%(Bm7)VT(#M7`z_Yl7}n(?K7b`KdP&HkkH>UssY zhVGY#aX~yAZ_>ij&bLwsVmfHLRJ|(9TiPj(h{aut)Sh@M8Ms$7HFI$Bq>)`(g_4?O zC~F%7&b6-$bGvS}=3}MQXKmQFS*4QtQ!6}Z#t7jm3e;5AwW`yI`^GwKFJ)R)^E)o$ zj`mHy2{+4j`oE>OX%%jaiCV@^V@P4BfO0j)HYe`YEYjhTp5M&-EAPp>YR=XYQD)V$$DdVI^_Kd3$*xp*zTtUFXUjAhv`Ez~SBTq1-bXxmvX zR1E7=mmI6Ala6BUDE#T$cey-9<9CJ#KfP?%Xx8_(tW0dtF`y;@Y+=+l^aw^L8Ke5lWEolb9N62?NlYdh_X0O=W>L?dZhI+-|$B*?%RX zC)3J|bheN~aUR`O0Q!B7dYotNRYuXdsnD;vyxnf(Xzn3qYo;bNR3q+8tC!n}tEnNnD;?a0(vJzr6#VAC&UD;4e z6MIjiDxZ|oKVRR;*P4oo%PO4r9AfH`Yq#1>ej&Bp3~n_Z#n}R})PFN%24gy!bHqyK zoJ=QLRT^tQ5&D+w#X8;F%H?Dv>QqYR&7d_x=4!S0VQDTn8rs~-PKjb?w_9j7c_y=1 zV%#H$6@uy}0Ip=|qkz<}EM9NS`VFUI-0o78ev~L+@`+|fvbcC-V_>w|ltQ+gVp(OtD!UZSY%M!wHh)i}+hj z%wno1sjVtK)%bq=QMEZ$S4!i|`OTMlxq9}fB%ApUUP9ADGQ${It_5Qd#=%0Vs?^ut zs~5L6-;wQJ(`~t`DN>HFi~R?ztxDUat@W>Kafs?-v>nytYt&<^5caps_%7ovz1p&K zY!lqZw-AV7o!dv#yLQC{lmlyip_+yV$8*tYiJT(UCZ3ut=#u5RJiT8G7giez1iYts+4p- z!*R8}-K?i#Ek-0yHot@AX$e}#WHPYS{JzcciJ+g}6t6nC;-)-CB z@!N@>c5CS+?MRbxk2-4g#WB@G&%3$1b9SxLkxPKa)o*X(`e(V*D^7~ejHQ=P%B-|J zu`X^)1Bdw)johO}8X=!7y@jK*juzG4ZsdwhO0NKFDbo{XxU=Vfk0?Upcd#np-e+&B zl1pI8a6-t+frTHCr^gY}(tevA{?~CdqSY6l;z>)L({{A})wEkUNfBdcMLo4u*3GEp zi^`E$=6L(b?Jc=UB^qVs@xY=9cd+hrTEX0!G*KPGvYIiUd((nOW{ET2;2|g$;CFyUQlqF735L11U#-BAjSPyDp>DV!Ei03xB45_VFn%cIAfd z!C-Q>@-Pxi#MM-FJPu>+&Yfz!GdlZL@xs&9l?~)})*FOz*h?2`Xroqw=}mQW3@88~ z;)?baJS)4oOLE@=CF~Dm9wwP>^?)F7)Ivbv=uRW1-FVLmfJPy?)Fp%y z-cv;&9;ws3CROo;aBRYn97FN?0P#Q$zxQuTYk13Tx<_*7K~_`CiOhU4)vrt_du(e*y@((TB?w@gcdpP8h zDPyIyi}I@vm^F9FXsxgGhF}PxVktr^&Y!lJ)m&I}K3jEf zceYw3D#c^{3SXn&*7ch1MY*_#-3byBZdFOurHDT2XHI__SD`e~p8LB;b!QA^mPL(@ z`4sGjxYDp$Gyo{UfUOMytuf1rK3W!=yBN!hBSCW8#BVLl#L_CP%_1gX=`_+sTDf%? zz6s=hz1zDDsn}AJrb~y;q)Yhi?P7+~$&I`!HTLsj#G0RR2cKWN6HQL6zT>p);FGJb z5AIi4wbts5but5Swy;ZS0QZ%x3gjxo6{=4JczfIHWpyaGrb{0u`3~+dIk|>i#T^z% z$+=^o0s{g$n(@Wm#`qqJ?@+%ACb%vmTXYd!TwDDcnW2E@taZ^?5zj1JPqg!U#mU;W zTIOg+k0s5_-K()0MMms}sbNgV;f_m}oiIGTr+J($rA$n#Z2R&Hn6~LYzS)kVW1vC@ zT5zT&-TfJ=p2q9Fw*=y?R5 zHdalt`)J=_Fw1goB(~h5N;4#4MRrmsrAsF&<`4O2x3Z(2FUAP1xstY@)P4RP;@bG# zs~c9)J0QtYw4q3<9i9Di0+s61*v(sm+^nN`;&E2s~ZxYPY|oLY2} zFB^>-u=g88i*XV>u{LT2LNXEa1_P!?@HoOTP87$2%YlX4^*5dy`g?cg7hSImo+Xw< zV?CA3!T|`V1bdEPRB++J zHjX+3i>ozZ)29o@u~lz85QSc5OZ9_w@xABBBHg@0ZC#^lnh>uXYZ@VyOKTmt%Y+#U zQHEgUid=@Mrrsn<-xJS#b9}Se_uFIS5Ei#dBbFV>LmH(;Qc?z{Rvj~@T`?BcnKxXQ zz?C{+eL4D_`jO)vL$g@T6^7qtSSYu?+w}K{MKuzFz_Mgb2s9&>EpBfWjZ3tA*)_a3 zLH9kb=ud4ht=wpJs6W*}MG5DK>C+b5Ihx~{9x8xh46w~8uVY;diVqOA^y!RZQB22Kg3^M^zMw;c%F^wH#TJe9TM8gu3^#;W6o2KF9wo*wO z?^8>6e_Dbjo!QuvQb^RtkMFHflxFbdOunX9D4CeHx4f~2IrlhPD_F@E+pW0-si^}{ z6&g=EfPZ#6BWFxiG4YAksO~75Exy`4)>UcyGrUJoeE@<7LNm;CBN@u#gFPMo!=Y_W zBF<}FuF~jQ!*NMklvT_zC*>rXf<73|{q~}$dB1fDI#UuI?&Ov?F0Q4;2ri@+1n?Ek zxY~DHwtCxbl&41W{EW8wN zvt)~Xpn5 zV`d+m5C&Ezlw{IWDIS=*bXugpHdf`UmYry3e1m6L=ay?}G&?eCjo(g^qy=OKpwyZS zu@bnYEh*yh^heQl&i?>+ZjyXBb23QRGhE3$+gd>ZL!~kj8i2Y%2DuDrHSPAMM|SQ@ zN|Kdjyj(QrFmyKcE_mbUH3b0uWAx{KtN zHUNRo+&TXMmN1N>(tNP5o51TF_v^3bHU z>4~Dh&i??5M%tutXr#YE6k~CUW|>^9 zO;#bQR=Klr_>4}SG^y!!zU6;wK9toX<;&nnu#IA{zPxzjxHG(FK2fw`S%zHkqSdR+ z_IEcW8<17@QoP13?GFC{ZF@8qAY9rmnPNliemNqXE-ftacU{v?Rq752zTAwbMghFG?mjkj%<@uxWztK=&MvAie^xg=V+ z)k>ZK>cuG~Dn~O1vD1I1o&>vl>7=wb6K&=gW**y}3=p1LSksOYg&r*Qw|~d)LOQXb z#9M?g#>Ju%ho~R`RC<7MJrzg5`OQ}$8W#z;Tg?NtvwcL+qd01NYeSGc{s$F}oT-uN zYo$%kCJM4zxyy$d<4adH=4ao3kHX{?%P5bqgJTQ9HK)_uS+}xgAO}`8%DhMw95_=K zxehfr`*zQDb{bw9c#}5+Yjw9tJd^4X$y;RyI`jZk(>!y!DobAfESH~mMJdXIJIf5g3viqN$H zJagqmg30NSpW$e$Yi6W+CFyUPO*<-p=T2Ebf zT`k|Z>n4lMsjY3c(;LobxzfyG3#GCr+N97L`hNQ3o=Q#_@n@0UJG3|SlT@LQ-nUEm zZlb%fx+!P??hvJ!NC24KIQ|C}u;}XZJ$}izv3lJni!yU=M|$6Wu20Kb)=1q{1zEjl zDf=*-lX!g3(KdS!Qq-GUv08&mtRp6z2&4dcM&U=0+nFIaVf(MFNyPA@3-Ck z_W1ds*?04LvcfH-jqQOdPqtM9n5d|(H-d3Tnc8~`oA-w+H}+vZmKBMmsg6p49NLCvq<;)drB;u1zqYW_cqLcF zYiYZ&x=Y{g=(_DeS$mWUC0$e_{{U+l$~9+>`?pdlK0i8P`5aqZ32s*U(gunfH$}OB z<(4)yR;E=7acMMunmO6_h_*2x6Up42V|Xry%j~Js$Nr;=^=X5CJTt@JcX`}>IjU)?8+qKP z*`7UF9PwrlPga2E^X7ejV_;S#@{lYl^jQ|C9HWbJ|vFY`CNN) zqP??83yMpq22ViMVZ(?&=ZQk5{{Y4On|g<8-28rTAd=s0xJ7s&V$2J~KtwbLOmykO zfQoQCbv>>6nmG&#GPB4Y-coaAA1f2anPrMvdQ)xU%o{T$5bK51_a2KHI$aW7}aX6^-?@DlV-{Y3<0T=HyKG3A-W))CDr7J^Bd5N_evz8et8tt3JXWgVwm)6!d0Frk5 zsRTr*T6Yk!HAZ&b+|=SSBws<=9%mF`{k$U#@RN@vfROa}3&0Z6u8$5<38>@xG-h=A6HX zI73y+;HX_eS8>uxV9to2?S%};3C%D@sTU2R{sc9~u2BbtOm_j*xa`*vA(2{Q~ z{;sBFED~MCde-7bzO%X~wG_{vJtQ;Mj5t%D@7}bcd44{o$k1Eayzx9xu$fi#n5#w= zJT!`v!W_!6F<#hdOCJyFZF0j>q8DLXxMO==)#8?T>aa^3m5?CF z5(Z2UBaG*6i#*Ado3O@90?T=cthUhb-JoFPO&+50)PX{&N+~@50M3|VqmDRo{0@lh zcN4X$5x}5^?6sVasV%N!VO>lBV%4Py;tqJCdGh?uI9RyTP>a+*WhK4f5y_wxtE8ya z0G?<;$b2xJRTCl(YId{~Qp;$z+Wd+X+GM>k?y&>(GRvn) zuNBm3L-+px6NTw3O+{vUyEQvL>QxTiL%4Y6O0fj)2v8f`zZ1K^iyjkj8?T%ZOIAa_#GkZ+8 z`^&s57N=)YWhl)+IraQ8X`n?tTmL2e5^G-lTxcpi0g|e zw$DelY}9UOzFj>nG)LTa{m#zJpGvjjUTs@6H`mt) z@-prb#Kuc`D@=uTM_xSg>4==2DB0wHA>Vc5OIg<{8U5JYYA{*E($p1+P-K7gYReXi zYcsQBa#r@Qs=dXg-@n7LZRu|`S}x^`#UM3dRpYCLc=I3OifPv9v00xlwcE#cyK`77 zoo)Aa2IgC!fGKq{%>@fo@iby+Jq9l|D6{oD8(o{Q?L{q3dFRNiyoYZ~%Zs#b?Y+q& zSQ4sK^-)jh#V01SK3Xc}ndr3eUOy7LdF?H4F71qoDWF(pP(={tqLkt>(`MCEskC=8 za8hlivGrz>^Kr7>HdeUq>b`9Qwhaj>tr!qSd6UPF@5XSGl@=KsH#@~8vl3ka?RH}PA`XF8tM z^bS}sbOYrzq0I5cby1|TuaBAIKJRi-a%VTuzR5gMTszAnRiQ>2e(b*8F=p|^`;O7v zqui}Kb4rw<8ZDLg0JjEL?FQ1*sTx59dq|~6aY&+)}7)hmh3JJ4#9DsHZ2yInVSpHS$>y7Uxf z{-8koN7zj~$g{ngbb~3b?K{tJWdl+xqCS{21ptbcT9cpKo;TpU&qHgvmAj7ae^UPd zZQhNHFSB1KbLr8Aylqf39VjV`o+_v6{{Y8(qTcQ0YIJp2CRAEH7Z(?Hw?Nq+aaKjB zs?-fYay;q#@vJD;2f=s#-zZ$w6-qOk8Aii(Iy(uKn45Q3_PV$ruxyCo%w>gmA6NWd zHr1x?tnyxC>A%YF^v_xCrmRFN{$Nwbr(97Up6>m&l%s___>$Fk$fKMaP%VpVj$*yW zqEvyT>aW|LCQW<~oZNpPaf7y+Z-?eXmdkV8C%4@sh{s_y66OHD=tVP8T7zCVmfaG{ zr;q;tZdPiWtv*MnZN3k(%K}}CgEghhVWU#j?GP!?;r8dtCevub?|!{;D5DuI<(9|4 zO)O$2w}(_o7|W-*G9rf)6&8Iq+hca-&AXEJyjd@J-c`hN+sggcG+4s2YEWt@N3Jrs zy|nX3=Nsrk)ZA7$lPtGaxJ4*P0ELnkdi%Ik0(s-6SgIM^yEx$>z1&vK!DysaAQ3oU zmxg(A7{*V`LRnE5+q=fxPS~M4b)foV>v%83(tLeGtiS}mfwDnZ9zi+08n9QuPxkrS;x2$UInoc zZDP*to&8dzm1yhm{)L|3yu%L76U}K$sROL5KpmNQdV@|FLE@^M72s;2Z8In!smvWhgNYgN{{RhbZPZ(-leMjlZTGNUUn)vf zOwB}C7x)xVfdtIjB)>lzAq}M}SS44XyT=QJ&4S0%wjxW-U z60eU_YjILlp#tY)n!)0pIE~${$H^j9kdKHJ6t6sV!8OF_w_)7K++OXMEbk;xmjr2= z*@)Jpf#C>ttd_}6(+b)yd@&fXz>)?Y&UQ26P>lTduN%U zb!~1_JrRYeENQ@xiNx88mM=8vnYvn*BVG+>xLaB87Zz7Zakg6{$=mI#$r)zQXs?h{ zUvM?gha6fLVOP$t>Efj=VQ#ORGo#7mn|Ky?)1qBMbz0v{A-D2NpD%?J8Kilqh7EnGOR;vS zW;{uu0Dj&!Z8d|-;7z2bIuiVs&96ICXyS=%Ou+h#PqiV%64{*p3Yn5qFPu)ymrzq#+Gb@;6SGDZxJEg>} zFqbv%2Ub#gG=NlR@WOPi0vMFgY%{~S{chai(Ze3>WCDQjCr=7D0uDB}CrWeiQ#g|) z+0x;HT}AEIRFod%J!z1}>YPo{sM>aYvhrymwwT4ZTc~)0wwW4)=d1AJpB!MQiW-Y< z_1&>ZmI>z{{{UfX@r4qF6;sZHXZFhva;mNbq|CPS1(mgx#qQH}8(jAP05-t;A2LBz z6ruZiVw%!D?$_F{PHJ*ahEv56_e=SRm5r^Uol=IV1dOX%^29r>yqinN`i}7S(c8u; zEl!@N8}-Z^Uv7IKZ=|?jmny=sidTuJ3gYdyn>|?0-q&dusQZ7*;z!;tb}MUZTcl#Q z*AS$CM#$=mAzHa}@|?%V3v+r=ztxTNz$%bmzv3tF9efHRaOfDzZ-(;>@<#N5KPKKHVBjk4S5YZrqx zyZc9NwKw+5h_@%5A`t7;B*;~bN#+ORjIFli?#S_X8|~KBy+5|E(-Y0Cw`-f_xfd@P zl5$m|bOljCGz5CnA~s(Bt;Uz`E{s*0T%1>08V!ICEbx*2#`w^CnjNV1_(FK#qwk9HnPEB?6T!C_PN4&U4%X4AIP zN}Nq~ychP?u?f_xr~52TOGZvcyuky8BUMxLKQ`~$9ro?uX7|0W?&J%KJ6p+-R{sEP z3E^D$9BQPfdOI%f4ZXCueNAS-vTZgIMv|$RxppKg3ULe1Bg+)QCtObxx^GqM)wbwP z@+(O|%Oc+sUEhl$}eE2-8m&sIIUJKf6MCiK;Ok2kcuy-hapXr6X7k|Lo*igP;u0Mi?!rNH`5<+`&Sy(H;Q zD?c7EEH^!(>hbI*+>9_wIb$8d6ezUF0!KB4^h28flxylfD8_Qk2HyZ(Q9)PL{M>$c22u1)L z^T#V%TJ!x+E2$)$+r;l_++&XNOAE#N8`R0_O-`;MhN=)j;s$t$Iyz>v{K&Z(Pu^W! zM;6~BNF-j=gIsK+l_!B5Dfavo#o$esui9d_Eyg|K{?^)3(8+4rZJB9aJP771&+H{a zinYZ1j@hz%doEZnk+}snuGO?k$|X=_g|kO2GtzS$F`rS;_}=BXoy)D_P;QoS++5kp z99!H%*&xojgH)#wYr_||wLEcDJ#XXvNmkrmEU=pHM!J?KI-&}ry-Eg7pkrWaPRwa+h3$r3aElzq|;o(EPqQNSRUQ~jiDPLLchFCJIy9!xBuK#NlB0&B_hXgCCq;rZqS{S6PaJA@ z71hS!arC=|iG>hS2Tx-u_0k9J#`YXseYqU_uHg&O)h3*a8;=^8*?}lUS)I%>voWd4 zhzVc;;g&I+sU`6^ZTClRPBF{qT`teHf@P+QsN@D+RR*d6%dZX?wY*#PJh*pjmwl$a zuF@+4z0ws|Qb@I2myKv}o(DCnF6G}-6+e~R{bE}P79^M{cVFgX{NV64>x#||(bpr^ zyZm-;4o?PNO}SiK*tNP76k1CtP(d}R3<)BfbH_8Ht9asg7GZMK{oKzbvz|@T@3V0t zwawE~;L4hTVZfyb#+s5k)WI-?g%IGlF-M&jk_T;NH+S!4+N z&C#!HBy1aL0*)mDHQ`UxvDl}wmdWkzB2r|nT^Kr=o?wi0-gJdg@tyKc8;0Y+%lRdx zhSfS|B(`t~$T3oS@!?8i3pW;n(f&IHeYsq1DsU^m?n#W%MPnS3MB;>{2~+&JR18_g zJm`8I+qZ1GdZSlPEYQig%xsvQGPS%-F}7t=3DffC4wKTKyN5b_xF4KG5ti*nFAA8g zs7_>x{?Ai)W&GHs$cAcrYT0nc^TAa8CGU3oYYNiCHtIXOZhfuAt}mEG;8Bo!l+;tE zA{F?T*!`U2SBy!Kc^#d|K^)!2nSqutrZ!X6NXYd2R~opp$M1cf)!NSA?M0N(t4fwx znB`DmEJZ;gv_7@PDO_G>#L6nJ9E|SkwO_|5o@+Lq2`HV&)Pa>iC6!GGr#$}vj`r}z zi{n$7O~WD|_W3O*icP*bBxxvC-M^bEkw5{)&P?=eZPnvJF7X!mX%)Ya*#7|ic}UQ$ zR!B%0Fg$-BzPQb_s(p^z`21(Ls#L9LSrn6OhFeve>LO9DIcY&k3Ieq`<7lLo2cO#e zJ;y36k5~O#+;9A!c9(UXR^IJKr21N-Xa$%E)NswKq<;K)`nA$9#a9#Jt~T08(|8B# z<>!oSKiPM^f(_c#)qbF!+~JCVs&e*<3g=&iI9~3WB-^e>RF|~!uP*&Xy^(&WVGXy~ z&v4TJ0B=$ZDz0@RnrWzBUfLRR;f|F=sJRuO#@*!d`6Mh+#5=0{=ZMqu2>xJ5u6+Lh zz~c$VQGUz_Y21cTfr=YMF`jVL4qAwf=E1hamK3bAeZTzEjlC3 zCa_)MSL%<_UP41Gilh}LwEzQLxKNx`xluQtkL+_oxw37ooZ>kx_ab))DX2}D;A@z# z?*9Nzcv4S4feI?5**5K_6ogtlkz6UOl3A8TprPUdnvN@tB%R8#)v2=EEa1PlWzgst zRLm;DAB9M%G&~M5ld5W*452A05WbFmuHJZrdhO;?$YOem)A?8$5NSdO`C^vdl}GhD z?%q;GhR;6BakWn-^>Fsa(2X|mCU3irWj&1v+Y(MO?h#* zZM(8w8(>YegfueH5$)3HsDc|REjbKZ?Qzv3H0PwyOXGXK*Ap|LxHj|>xEfdwvz5}n3_;2G*MQW3av*&*1zRTnxfPeEuH&4ySplI;(5bePj?l( zk0)j1X6z^ep;5iuC{AM?Y8^aPPq4fEZWi|HaiVUdYYqPUYTTu>MUb?A@34)Tbn;=O zAI6x{HycgU$BYl2hR*H0c!@sgcel$m*mauTGu_lHO-8>yIpZ436Yo2Je6c;dgy59C z%=Xo~{{V1H`-Qn{K^US$4wNU04FHo|bU4zr$sRTB)t7QE-4k`-{{S*vH}dVWeO<%- zWuOHvENBdotA9AJ%m*5t9+@0tDJJx+&pUJ6cN>`LkL@)!d-mOV3zN0Gpe#hy53MUz zDhSIX`>`{&)mvDY{{YFjt*J&%kJT@kTXVj(&-^ELyOP9{98W^&800eL(-9b`9`4&? zx0cqGSigxudmXZFQ2zjKm0^lfvQ2EvL|WKpszA%&e;ydp4Q9_XZ`m)|tgYnP=^GV} z-95~4UZ;8pV-SfVCsv|9VN8uH$XDaflCDj);{tn@?)|$xIVFxcd7NHs)|R`%7>&5n z>LIx*S5f(aVu19nJ1tE{H1aUoc6D~nxSCC>eVXb?Els+u%p+fIg1VXynMEs#FqZ%*+FgQ=~g{AkXdfYJ&QUCyFn!kb1VfIC*4Yl z4;qS` zSEifK1bKa@Y_~g)abdRZS5v~#B(TPj0os?erlH8ohIrCZjy0+FpZ-^CxRh~?UKH~# z%=fZc+pFC7dnCziDyUi#D#*DUhZCNEvj`<6g2VJU{{WEx02qeK%cgavMI!EvCD=h~H z+K8#o*Aogy1Jvx6Huf&K$z#B**|w{zn~1J$A5?aJ<^{B$cl4p-jhlLCzGVLZB;H!k z(v#&(aQU2XK0$W_+}hpSI*@Ask0xP|)TfO>r#wV$Ei`ob9No8Vw&*#|t)b!lt__r5 z+1{Avk*IA+Uzn{*uv1>NsKzfEq`1)EXWby~>9pvUf1wL+N1FO;$t7s!N;D`56`;tD zxavtIN}gYP?mFvj6K`f%*52i3Xas2=$GFRDdNGeY z&M)G7*;{nk5kgM7r--pSJA*zn!Oi5)(RclpTdQjPD(jjg!M9ypZBS_fNiEE*La+ct zoKB(7S>=r7D&VtZ+=bZLOD#Mzc;Yo1!M!3|${N~OD#B$Ha1eXCWn5h(sJNT$yHq!p zr7NzISuT8wSgmY!`(%QTA(0*3omHbc+eo1VP}k$@inkWgPSv;RZY6GVqWp6D7aJsI z)tc=CCe)^~GbW%)=5hl%^7X{uNu+ok@({DU(w!>)k28yTAiLb9yS9u>vNoS#u8~Z# ztw2As9d_5Ygm*608+IJ3s8;VcyY0T=X=3y0+gm$%K&g(bDhTQRxXLn(Xt^F=Zoh8T zsYRPBrG{x!xTiz1ol%-mmXu{8zc(X8`>VlXu=H&3VR<=vvn9T7k;szU+RkG_3{pos z1*zaoXaKL_j;TXkT@Sq3_G?yctFCEF24%L*ssl7vS8i#LS6wkSY^%-7qMfoo(@cM^l6P^D1UfgB00Ux!LYm0un)K1Nq-aZ0$9uuHXnZIb2_BzucF z)owDYfQfC<0`(sWi(Ka?_1`&kJ{c8+Tne*H6zf6~)?bCP8+?>Y<#(^r0~Z z)HTRj#neY93+%>MvcDmfw6LPUhn=UQis-JEKVquO;R zZjO#WJPTBs86}fzMn;L_E1-O;oew-iwDM%hS)aKzRQ@#@hT7>SG40MSZ7kHD%--;6 z^DhxXKHi(k8e)7;@_m}=xx@EY8W4BOIJXOA++e>pj~W&1DAmTf8VXY*o-tQ6<-s2z zvhNeyE{uiSQLN)F6Pu1LIi)FCmXYM?#+|W~B`VVU!wHoJsx|-6z1i zw9+cdYQ2etyIC36`I&(sav`ctd2yzHzZ;QjGwpwkLffXNLS>}?08lS&TGlD288d~W zQ=hmIj(I)|`w4C=$}3G1@xY?pHtpi-ShpKTW=W~7994(F3`&)9JT2wru{KE2~`(=yU$o#5RsMn9hak(&-Sj_GZYT-3|Um!zMku&L@dkcunQg*c0OrzUgVx;On!xp)5 zWGG3xwV&$M<0Yr9G{5r!#2>h0o^2+%8Aa5SxLLe*(MfI^-CK>gausAesh18_6vncb zwuU!d8J|e5#2}5+)sH-_3JTl-NY=64G{ zk`H`pz%ggiPDek#@x|0=@XyDDdfRTty4%jQdVLBtH+zQb2Ip=Bw#_h;=!20+)D{fD z@F0WB7M`SiUviY}ZIY|1TzvU*H89>-+}+73wo7wvl6O(nnvTadC<#(@meOhKj2-6F z((p%**}H|AwHu19x_I)+rCr$B?>mv%qsJ&J1G%EGQ|%74r4BWVOBx?(f3exU3dTuG zf=JBV_@$wq7_4OMUX|BzX2OaXl0gh9mk+~_O=9aEE!6zuxOTht9IhnNt_G?6R^oej zE*3@p^&CZR0#{4(02&Ti9J9r0t;w~-;n>aEYEyV8QLVRR-dT%X%3~uYRAu)A$AH9j z8$O$V-) q6L)DZPpjdEU=}!GL&{ugI=LPq&FPt{yYvXp(?g~-rH|>`t~rr{gH?qx{OQO$ViAP?SggrwID4|*N_*ow64sbKgU9j9fHE#zx=c9d#RI5uXL zG|z$M{v#N<(NP{Bb?y?}tt&QXuXo9>CAfQrmrbZPuFVmvg)~CcCqG`jc%5NZt5fUy zCf-&y>sqQHZBaJZ&2@C|1^hy`(?$zK0SB4Qf#JjBiF0z57F>Lfo9|oqergS2UUk5s zn|Kq;diN3@^O2CP0e+r_wZ@v#!23?mB^|n=&3*>wZfQ1q6}C>#kO_yVpyY!o`rbn`$a_z|#*0^ol6BLBd*PjZ0 z7_8|`Gb#L&XC1Z82~d>wPc^*#=tx~U8f7AfRzj)|JXSP{YP>S_K6_=jc5c?B%UG;- z?W*LV%rG-+`3U}11J;@1t>K%JZ`F(MtlStxQTNZ7&!M3ZP z1pff3l)k&alr^4nM+4HKIdQ^1>`x*+vO4uiV@_mCt=QVxE85bH)Bc9*V%#9#Ev@Xgi%34PiIN-IW*bie#GHs6IQ(%9x+c$z zmC4zgge#`LGPPt$H5i(|*Fq={P(Q~QNzp7G3b+q-xmPNWZo3rLGuuk6 z5w$9tb_|LEIhB3~Gsu42j9R-?mkwtDg6|4C>BEp$%gS3wT9DXfvjLdE+@|=w){N@3!lRi(u_|lFe`>?PnBfDCUBhngPob z8@N)Lov`i>)sB@hH2XwyZVfoKLT9!bopbjJ<_{ooc`jKa&bK7+OA-$CZD|@T_Utc2 zmDLnRtrKvgk;=laT{Hqzr8ZjtI-^E--Rrr_c=Z1Owtvu>-ikZOq=w;zl!UTc@uGdh(}+KIEm*}K_i5}l5G1Kq4M?e>;#w_$*2+MyYE0;eohD)T-2+v!+Z9+ef1GcT0x+Z-0&;Xc)IZehMv zk5rIUvl7(@fhBR z=#VOj0bQNq1(wYeo6IT_sEZZ{CqDLN3Z#g^eAZDJFwNRo=E2EQwUNYALo zagtKUGly?ETWx1i=L-t7Xz3|sE^YImp~=Qvy+3tvkNMSc$m6@Wb*kWHC)usHMwb3d zhPSwYe3D6`IR^~SBlrAz<9jz8ypifz?pvFX>BTyswz^m?{+f4KWYwlP(u5ThHC7GB zs3ZKciq$OZ@Mzm%w4Lj+R~O8YYGj_?@fy+Gq$I<66&Xc%Y8lfbiRr~x6Wz7^I_FVN zm^EL4PyYaFU))*Ce-ypnaRNnd42GeOXNEd1TuD+Vt1ia&(CWuNG(|??^|p;PcN2!T zn@LF(bn2-bK+B#cGoxuE$=LU6ib~we{jCPeCFqfuTVGptBfRFUK^gx5hB1^iNk_@1 zdE3qO?p=*?)l;;vh7{Ksid%O>WBZA*~t8gT|oJwZ|%hl$+*`3;mKk!tdN!{iOwl?;Iae$GFBY+Dhad zDMkY-47h`ijSh_RZgxA-y%@&^h_FL!?r-ho*BdBQg~_6^%bh^@V=K2DmYxQE?(X6c z(<;}`kuvJh$VmY@Y67_6ymGE0>{C8sN=p*TG+4Honl=;Mf&q(2MkAO6^R6L8^m`?x za_%KO^R%{t8*4;cfu&fHmmXk@zBtz1T${rK>TPzup5aPWlwTqj_N~xbz1!PI8s@ht zKw76D)EqI?rCu1E-RgU0x^|vCxe={qy^=PyXr#DUhsYGMQObmV7`#);pA+TdW`>U6 zWS-{M7r0oiVA3SEQ&Q=xI#keu@c#f^ptPzT5rRnG+DEp-3-=%!b;gpFb`EAvu=F%-h@yySisYVn)z-8%NhIlHsiTUQ!VY=4tTv;ApX%_8Zox6Bi+TqwB zZDCMGeqkUuys^uP^nJ6uShqSlCmP~b3Gc6NrA1>k#D6kmYo~$dTtdO0O}Oq+R&^)g zo|WS}8HzT%yqvAuG`;COp`&J9bAN==_(+am7W$8jaYsb(nB5}+<>!{LUSs<)B$ zkG@__B}G~gZsL~jb62;7Ose#fhFW%3~F5HuwkNg>TJA zJS*yaEvKn_%yj8%Ydc&^Y^gJ7hNfT+N0nEWF}B{V zIneoj(YWZ|nxWRme`_7R#l^rzy^SScrRd|^uOm#j65`%bHJskg z)Bgar%fPKF2;qhMZYvD@&yK$olBr$2xbDli!DA?e*+h^ElwWNF0bU;t7+Zo>sq~$@ zab_0NRIVdSy45=o#_-G#If+u+A_MZOJeQQUt@!;B_Zr2-x&X$mtYm&Ml zRsR6u22ATfYw`SX&(cWtcKy~8+sj+SpTuh4$M?jNX)a?~3_6+BXh{R0%l6_Ub502# zIl1rl?j)lsjVv%cvqe3$QNmV>aB1ES6C$!2o~+(nGa1|V`E4Se zSz?i9Ld9iz=pjy8S!qwl6`jV_76|Kb*r;jMs!o|2jgxSN7E6o!fD1|g02=9OP?4XO zx$ro`Re5I56T0oCDaJ5Zex>g3yzO_13fx~BvHZ0J>Q*A4&<=FNq}CP78XOyr&w93RWqoP$tFrs+6 z3_acDt=wWHY0}|=5;Fp0W6WwfigNrhykM?lk?eNv(DzcR#Lz`|HN>j6;yWwT8Cj%; zqqwJ(fEoa4_N8%E7{Svvd-gw%!)Cg(!yF!e0<(7BEiEoPHgOk{MF{gTEaycs)j&mY zdofdfhrP7#I&HNym!B3?gE0>*7eSelj1@?$Q{6*K`r;g#!5<~R?+)eKw^hQtITa8{ z$#AQ3Lc${mtbhe$KoDj?6gaiGr#kXW@-f@))aCANw#!><8Lou)am%VGgETRZaV%IU zQgbz-;xT)-8kH6-_V?=D$SZboZ{v|)XJtL@(S@RWDCHfw3n>DGpKxZN%Z6ztEnY~XO+N~mzAE{{s30rj}*HI>>qlFJFbGpuT;Cg#q{p%W5QEUNgBb3~O zw=J_=NhQz%OLd|)Iwdv4_*o+i#&(kQ^bw>nWqyvCxrP=id)Uu^Ni zri~?={Evp+T8o`i;$iPMfjsd=YVt~mPMu@l88sjpRAs{#oq6JWDMi@J;$BI1*AP)I zn%?Hv>WfjL9QYGltLcchMe#mrP1Lp9?jxEFbI00eAnOEC2{fq{p;L&un_kivGb6lr zEO$LOS2ebkHQUN4NhE3%Mbca^73t}o zHHEk*T2-A^e~v;IF=={@+3pQ_d-Yawn2n$ZxJV+u(oJ!##FJIvc%AoYW)8NNB#ZsV z&hK!yg+`4_sgP!iAmd+8hAVBly06IV{xi0Vl6Ms`A@4C;HSLSqx`qLJ=s_S*`x_zn z;!)Hb(u+jvt1UfW+aobp9%;w79J?U0aY#WSTV#}%9s#Ov%`&gAUk_zv#7 zmGsn%>QbXk%EMBMMLpybOo-);ZO6+Kg?}T|r3U@2^31Qk+GLu_&Ut4N$#3tD@KoxK zwII~~BNe!scppDwxi7hGs@45Veamo${>B)hr4lp@+(VqGdiCXutiq10`a4~NuDY^W zzoCw@l368cmX0JKTdD%eM0pITdSNfzdfTn)+gRz=jW3bS)80WVt-upR)d?~hY9Lpp zN0uTVwfPuqJG5>?gJSfX<^MPs8Ju z+AeDx&Pn%Av6E89HD&Sek$Gs%HTip%P;IARbpc8R%CzIx_TxMCwB0;lc~^gu&D>5t zF+ChbwMjJ5+o^|8sF)5pWJsX&8Dm!_nepk}uDsOs0>2!_H0jY%mZ6Vbt{a#nvb+REtfQ?# zDI)&>G8*Md{{XHUDMZC7nO830wx9jGaWZK}{EO#0o-Md9upbLoR?iQxYLCb?oVtT^!ESa_!0 zVxZTQ4d=D-6JJ#&!v&V_+6KvL-w0f;x3!9i$scyP; zs+^8h_VW8v7&xlxUo*+Exxa1I$>W*kyN`=*u3?VO`Qt@uGMvaD>K`A0#HYrG*=>K2 z+>9`766W!X$gVB78UZRI#dm5n_ML|YT36d%L}iOfw}a$)R(rk2IeEXtuiTPorjafd zSXrYbEEAuIxJKs|Qf-zOkX{RyCQ7keO~NqDlsS=7Dfb*_ zA9s;ScL-mxMA_=wd!xpa+|g!)(pEx1Js8rICz!-rR8-+p<}bCVs=vRtlIlqtTXx$^ z1mmP-T&AL$~5=fKz3mMWDgQ^vWo+}f2Sg8u+>y|KHFcv-F@ zS}gENb)yeOVeR{}$4f~S(>Nm+x$cq0JdYa)naK#+szrGFL8e^)0325(mIvAPjm^6d ztIhHLg6*-%wcM@#>nmNQ%ISxT3R8(Zj$AQIk(8bZ9#3`eHzof7ifyiCyV>n?un@@d zYFfscsEoZGM;djn`Aw+NQM`E=-0pX0YKeSDE$7Y|E(=>Asaa`Xa5)AY4ltY|)nCZ+ zZrb;#lVn>TAe*;TxO+8cxhd=vrD&v#`ivdAH&g6(?ps~DmAuM1W7uQ4X|1CA%V`rz z+ek>vanMM`)LLGq&gSau5}c`zsn3#mE8gutMQa&Z<6wIrfKQZ=^LNQ`!w)zHi-Z7#B;I6m4D#2y*t@WxJh@!_A;&D%;jloIUC zZFnw1cO|!C9Tf58a_g52Lc2tE!dIgWDHpa8?gw~TqK`$pKm>PZ^2(5FLNX&5JDOE_ zor>fZ)yC|abuV6agtvA5(2Ztc#-AQ|=BsHYj~>;y%35udV&`w%E?zTkAyyj9!!nLX z&IheA)22ygdmFv2+ZJ^;H+^)cZM(N=JCtoQ0BA_$Kz#oIXYa+5=8N_%wY&FgT#W3N z_G`AwZyQT2imdUXuuv(}hu@7GtK@!*d$dB$uBBY~UPcff6}0RtyN`Lba|roa;KgI9Jyr=KG&}mgd@pajj1`ZJn%p z@P-27rJWk3k+Pu~aL27>X@y>AnOWVMrURWqv?}h;_ zRi9niY|T>Sog?O7_}S9)-CZb&m0e1*(SrshhGcUUq2c(^dl;r` z{DXfT%#;$TU9n!?J@nU40?%(Ok}b`L$Rw#^3R5sgr|~$1-bC)*muXvAN{F!B;e#Nj zR1#+ipwzTADBuB@>re94ONsHm-48h3bimOv`en*`- z%2BCLXJsFLX;D?&0ZD-ZqPbL8k@WunJGD$Wvr9XPxap||;&PI_MKvvdF*5{ns?wOG zTghf*-AUHBPYhB-k`H}M4VOMmUPqoaxh*87XRfYp)J<)F4yb347>k`R9Drm&6cjlO zX&9-r&wsF9y7wtO6Tn$~e{Q+AEa>KQ71Go-l zi6cH{n9_4+*X_4^I}k}lH$`7lKMXf_ldk0%d2MYZDRmem_NkVALBTCiX!5_1?$y|; zHrrfHp4gi?f?L6@9^qPLmN(j^HgQVClg9=@nVJG4x2wZ;bp1N8rCZxo3^G4%n2qF8c^A=-&yE=A~DRe}{ zxsG$0s}acjIsW`-dXYX~xp!~4o96i)OKoWL%N^ngVrDAxFUn|m#T{%Ce&f9f4A; zI0H>a;AXrp#r}!2hy2iSuS{=Gk(OZPLd;BNi@^4 zOpL?|I`AZaQ1uneaQ%lEs5bC9=G2(y(&}MjxjWh!#ciiFD#5uB)FaeqU*DuE^K|D% z5^}*{K`$=DepNGi7f05j9Gu)liJX<_JAZaXr@#_4;n z4wBLpU>1bdx#wJTMl@WKEw|oY+dV5ZP}(id+jRxxW4#e#(Gl$p$o~MQE~1Z0_jUWI z9*8%qeaaVxIhx&ceq>5%A~DO_IgYvFRT4Y92ElG8i$h6bv0GZlZ7STzgs^OurnMix z9Jg*h2k20>Zrn0WqVCsryR(yVnpBcRjRh>2jd3^w+zxql#$83L7J1X}E1>Ps*E2CA zZd-&>ZjjqmtK6AYl(9p?fPqjs<6DZ7q2w<28&me+%Waco+xKYYn|8U;+BE_qLZfuc z9jeZ_o=q0|m_%pco`ij9_h?&ozo^Y@c& zJi^BI%ee7~uMiTC831bsH6Ud}%9!Hbr#w;9we62_DnzQby_;uiInB@3Y?Csqaw7uK z0xDL#NT(y1#6wa`O8&>s#uMUuCffHshPtwyE_V6jE+tm0AUs1*W%2tBE=owBbHXU_ z&Ev@?+IJb%kfe}1h;9{XA4xRGl56*Wo!uOg<3qP&wzqOgT~ueEL*#SrJIuF}v4q_< z4z<#fKm9r6PdslFk=@;6w}m4WiG8_j-`r+aVc5HMr(#kRHdN_4zVh*pR;KY1=^P%p~qchN{Ho zPr&0Csx?#B?ptemB{)m!X?KmWhUfL$b=P83#ld*VWAkeSS5fEor$hHM;AIIZ>dazD zCwsW=r-nGL1pvBN09LdIk6xo3_gyPY+3Rht!>37PYK^-=eFgo6$J5NAN|??-R*jZ< z9+=M7b>w*o#oTPZx!vuhG0#;=q{>LB7O%{&TGy$>rA$nrdACBVc)7Zcz+Y|gM{*)@ z^%1>lt4fv2f#^;PCUi_Ug1mjh(wORtiwV$oYVwH8Z1BgYP|+xQxXjXwGRua2a_Op? zB9$=?B+1<`v`KEFJEb3)3Y?D&)RWg3^|ZP^B^;BMIv!VO=^u?U0>5+!>ZDKn` zD%H@LXf5q!(-qUKB=96vI#hogOdChaNj#!y-YF%DXtb%)H4YRep4yD^`?1e+PgCpq z2-=#YjJ?IuMP(bs6WSn`P0>YaH3KltnAYFB9%s__d%ZiasPaR5J(PR1+}tEmOSi*B zXp{|Qn>|8+6YKV*x%<=({`K5pYLm9{WNp^o+S*jK4#?5ymI*-jJb(~tDNsq`I^wj& zW60BGb#LsqEb;guM$}1!%&c9-7!@QS~qi zokeohN+{2cLlknO!0Lx~cC6@V>eFsiol7RM4sp&14MF^^m_LUe7|%Mh%$%cj>Zw0+ zx!b1N?v~;f6M)NaDjg*ql!~n>P6Mbs_+vFL2-CLMjoZmQs%5P&k7vKTNP=n)GtGu>x63naX%pAx+ekmxV{LhpA zN!xAOmbknJex_@vp43cb4_?fYH@QgVQfrH~M^~BPZEwQV)S5E!8=FZx410IWrYJHj zrnwMJcpuq`;feO!w_|%@XOrS+uI$XWG3|S)ZMx=V9gFn>L}1-UK#GjB+OKUbuC5aH3yCVs1sD^Ygz;M=IQ!r(Ot6&ci5@y3x_TV7|}Y%Fc( zr&Gp=jkLg5aw=hYVk`duE`p4)1H@|d<(47)ajB<%ziQ38!C=1=&^Ji-gp$hcC25yH zOKapTjp~FBog47Pr-P>x^Y~3%m0uGDxL8{?<4Gjb2~3HiaCItaU}`}>yBgd}PG`Ti z?@HV>QBd6O5ZPQ?LIklxaijuE1y@G?dX8r-z|W7z&yv$Fe2+fP;*)b_Ro>qfrK3LF z=0-@#G5~5A8q^8{@XPpPNhwLHA`tDm{7A6?1WPbSW5VR9Lctec}-r z4Hk=tqb1@s0FljVe|9&wAF1eVcFO(_G7OP!SGz~|DQP1pJ*emd6$Ffz?!~7F!nDl$ zO|N0Q7%P^e?e+Xi9irhj_>u0F%gr4^6Y?E&1XG?OUe$^3cK!6@IH{}?F2A<-ULDCU zJ9FGML@L$N-2VX23sP=0W&Z$^>{jLu<+WALg_PEpdwQ+(ZniswU`0EqQYBtZKt^J@ z97Pw>hvyq>Q@wpf*9Jw~gnJYhaO}f`0G;us>jAbWEp3i5wV$|bptm}{DjePr|x3`3LLib!Lx6e`6QV+Y~ z%N<)*=~i)nCGDGNCvq6q@Xt4q~}7~b2tD@R`GAI==)t^2WSiA^}ReXn`! z*6(e)kxH~X-)`Dl7_FKr+s?%I*nsN7p3|2qWr=lff$@EpZEvX4ZA}yw)<*j7D^ya# zDD=qe3hE=>o<|Vr9FL&CzP+)7>SCYvHSmcoXGDcaBaC{pHT#8l^u@HfHqr1GueWiv z#AC=eYr8nnAqLdRPUXrR{Q)ARbHy#aPaKb1v_jPG{{ZQkq1kNh_r0hK`-c~cMz?}Y zi4-L0Elzx^&lA!2RXQ&$%zNFNO8R!Q0tkYs)NY7{4RN++DkJ?zTya%V>K?i|LGP z=8~r-=Ul0tEuqwuoom2@bGO>g@h05K1;v;hpn`;h#5p;&dFO+JJNCQRwr!+Fx!W(` zxEq2udKLgY0-!93pS0A|99LJlRd74@pU7tl!xWi)XSGdp0l#~gp6#PCyc7z+s}_We z`4d7v4@|B_q_FY8oBi9XIz>8vPj}4ohM#e@n)2bq%On!RERB|s6jA8E2F2k@ym7$o zo$CpuP7QeZ5>t2FEwAnF?d1}|Q$$_`7*jqbqaLomY2n_sv^KLg0&7_9b<$I1x-0fX znKW~Q?y1V7j{%Q1OBP|iUh;iZKR4o-*ZdtHn+a#d;k zzGXJqb2Aw%ZacqEDXP%6l#xOAQ-RAY@#2 zS_7<-avZV4JKpRMyxDdwwCz$#j+_~P2IA3w_WOpCSgq6`4s{X;=Rra-v=>nyJ>I)y zHq>ycb$OHQcAG?RskC;Cvli0iunkIjP<%0xj-NB8PPA{KM}D8#uI^N2$N<7i`5Htbb6lRa65| zSp{Qp)lV#QMZ8(zWKo|V+|uNmc#P2#sxstiTJq12!yCpesQ$vM#j-64)x zv3q-U zlCmg_OB=|m7(KNt6^>sqpvMKq^iSV%;VlJwP@2&5rD?=^<7Em* z%==xpVwH}}}^ z7!;i+v@0We)}T;y!YWdgDS`7&SNn{sCq#>DNz(D&X&K?UDhy=D?JP|IkS?7+5&n3p zgHD`H?DpBp@`S%>Z>MlWHS!puR8SoyKEU7f7N;JS!f=bhW_`c^0F%6|r!Q(|Q*)Z- zt^)r6wIiu5Y8_oroQY5}<%nuYWAi>wb=w}^TC+%c?)LIoZP3KZ(5NdaEm$}dCn_(; zEG3&sWPKf%7qn7TP5IN{Tg|)PJh3E`w913FpbbO{3Nf!96vA+nq|-RNM|G8nQdp)n zHtP$Ofs0El)mWt9s(EHJr=}$;Wr_B2-m9vKX-Q|qVeKKghGn@!^)bX6D-FEzZ>)m0CSHd*xuD62MR}_yO1at!_$bGbnCu zxzf1~S(wasAY16Tm;m=EIT4Ym9CGK1?xR(m2;A>(?mzL9$jV>LQZ|aJj;~Z^1w)RF zzyr|ZUA4z?RIP|>Sa2(m8sZvARAS)W?24Rk8KiQr% zloO*zQg{(Vu+eb~_NH8cZW0gaZd|d-;Z=?%GH&iDZYz)Z4(!hvVs)yT6X;G=`|(;R zl#jm&NbhsmW52aG5J-{D2MF1KEmO%!uMyKP#A5M-X)-8f!roeqB#8k30CF*z9;9?V zanTfR75Z8q&4ul*dJ;o+r_FPvg2{lk z8!FWkr_8dqw7lJHF0LTcp-4q$pd=rAQlxOi>P;Ul{F8MX6OAzA`5}uTyxE_oxQI-% zdm)q&P&&BJJn;$AMtfi6)~9EsEK)8voyPhB1am_ARB7!4P)FV~2N$_Wn0C$1-cr?0 zC0@@H?pKq21j`kx`>q*ysNe!qJ~*zv2==?i_B%@&;_A3BGR$o7TkD;tdzsa=qcv(D z`o1{AZmzj-N9XtZ%;eQ@E6wCevt3?X2_?796Hl}-;Bq{E+%b4+;?J+Kb?^3$31qWu zx4PWSmNy38FlD$=Br*@>$ooJQJbGaHRQMgbj@Nhp0H!o&nc6Mw?aSI0`et)maUs#F zoG3+WmruJJYS9{>Y5xG}Z9(Z+FE1WH9d+OvX3q9gF?N=fayZwC6~{bYxg3$+E%xW# zlE|m=`6ITsX{K@^iy<$sA&Hx&3pRCcuG~^qs#)Id7MrMck{;|)jbD+GBTXyF<;3D) z1sp4h(_^yA&9}IwEA=ETo#xOWzY;Aa0YPeeL*>gqkJ#Yn88nvz&)@Fh+%3s2ACV#v zaV)L%Q8NUg)(&+e=2kp$NjBT$d^FOGy$P4QZMFO+()w4nnw7KMBd8-PX<=N!I9ryi zUysy<2~KrRhJMxey}TP+xmNWMg|)kl%P6NRgHUqek3!wL;;HhX(`v(4D<@M=Exo?@ z_U|Z`-r&$Yfql{dIo5){zr15u!6UkRM{g8dCfgR=ov9qp8UkZk7!tMSv>(44q(Y0k zf-*Oo<>DjVO6XA}2)64*a!9FV0;hn?@WwjNe)nYQ?bNACBOalFYTv zyoekQAx*qb5o~U_=~l^}UD+)*;4 zcZTNj%HGy8VQYOwqX*haConm2#~)Ix>Fpcn?PZBwwCww>tis~vZ={PNj2fhKA1@J6 VpZH=N=;(b8{{Z6R2kQV!kSAt?v~5+WfWhm;PJP)bl~Fc1_t zcMk9Sz2D#e{-5VQcjoNRXYIAuUVF`+J$v@d94)P02m$~Ad;ro50mwip6im=wH~;|| zyTSj5jQUqbK>;A@UwI8QjP51;*B-4L^FL(tzc$IBpMihnfUSQ#a}Is-h3Q}Fw8kmi z4@w&+vd}ZsG%z&)$RKEcXe4CS4^sJgf?2-uGa3Vc&fiuHm-68l0;~W506`J`6B;WS zfDIm&d5`}yIZ8%~iY;1@EqPvBgeO{AFopnI1N++pa1biy zP;z$%H7cX4-)$5S-w0=)`)}2&I>L1S6dS40+GBnE&pg(F-+%4lQub`LME_|arSY{3 z!T({wPxF5$OzW_1uE+fwgHaIKJ5;QV=)XZG3%4b+ zuKykeSk5{!L|=s6_LV_@F|;Dui#e(g^1;wt~DSOKYM#<)oI)&X%DiKsZP#U_c%&a$sa-!!z z*Z+2M;h+iz75$%Ln;%DykaeJ=@@=fEQhp^u;xD0B@lH!+CT9L8Mpy9%d|4C#xkEn& zgSnhh)dbYyK?!rJih^7EVx`#ssD3wv^QKuFva8Vk!0MZW5A#0NsI~y?uh{u4u$l)V zMB3`CKa)KPYN-9l9Z)I6r{oT~YD_MoHuRbUkr-TKtPth1=UX7G&zHPJMy@ITVLY=r?CG1eIgi0el%ELz#WNbzYbO%0_`p*g%v^CeG39+ z01LS4SllTG;rQ0oF|dH*$xgF$xEx3#XVbOVDdOPxzsGSyb8H-P?3Z$rj>g-jp z=t6r0M2xEHjijqS+OeVqv*(DHiXeUF6aoSbQ|IferYw1{=s}cL9j!E*xEDR~38igV~ES;z*D-m0Pj&VcdcoBuu;_ z2uCa+{0uk*@h^u=BuJmgIzhzf`(qKs0>UXN2GuKv}bTN6#Lcs!ORiX^Qn#^Rs<8~YIwk(EQ8`@ zY~oWEkk4na0H&)B|Njer$%p&F!reZsNnkn_$Ej05ynM-KqX_cpl>-(~Is+3%4$S0}P z1Lf?M$LsTM*K06q;)ZsZbAEY>|8&qU%N8lt8b1a^3<97G;u(h_GmS6iYxAeSO@!o7K5DF%WK#3lR|io^ZrStEp5EeDY(QdxgP3vZFDpuD&)yld+BM{z%ozevC3WVgpk; zLE}r(ek@|U>Jod9f0?y3G(g_V!s!R;;CBLumjDPDG#1)aujcG4xo8%vDF@S^t8-Z# z35wrj>)v4}h1ShNKQMoh&f4V*W-saU?LhkbHVj0}1OA~%kPe(@oo2iUU)F=Yb#^E# zdELX#&B_ieDEOs92@)nr;g3Hr$ScXIt00}CSU~*41_CB<0*g-;6hS zGi$O25!(==P6?pf*g&Adk?IJyo!e4oi*Lm5p?bT}k#(7V;%zGK^XwW%>&mK2WJC7j zs;NWaoi|t5ct@itKJ~_>rFwJgn`+OyiyIx^b-71c8^KsRzF+qFAR^}OwG(_cW!`9X z3fn;xQ54l&jA8t|eXQ>N_7LLb(_TqV&N5v7%h%F3Is?5oiPImAyL5Pv@{*C#;|>fB zZ8Wp-(Yt-E@}<~LPogGCA_xldBQ)eBR2wZ{bhH!Tp?gQksQ%D;XI#x{n`C+NcLhvC zXCr05g+tp8C(UQy<8emWw*>?8`?qPei0?G<)aww^a+X#L^%{K}4z4Utw3MkkIF>lY zgpLG$|BG0^_9cvB>m#jO&t^OXATI2BarS~GU+EDtEfHiOof7ZLBZK7tM|UctjY zXB1ANem(|olt=cN2a>bw&l*vtir|^QVMF^+1ZzD&GcH|H3hf7He=Q}zQe3SHEXL3! zcY1?_sl*}Axw>lp&P>^X`8LhlC7?IVS(N2F7LZ@xV|$Ws0SXrn<4&-=w(Ew(j=OUb zCquG2)%F=o(Cl@Dsup7hB>l^Pk?GHESmr5=O z+;y`=oJVb}ci(#L^1T`xfJfxsvs28u69E_czk+t#iceieSEX2^jT9Tvwr1cxjGh05# zKlfW0XUV;7(U;mQhGWfr*^dD4tbXr5kboz(40 zXoT7U%|9xD{9^)nR*JJ^4Ca}u)gTm3Wg__P zp?InupCMy1LQ>MbAG$d+vq{UhaXnp=_59f z@gGO3G9`c-*8!8`#`HA6lPpKIcEDqWAmJu?P~4NWG`{+QTPGU_9}Tx`Gv%yS<`;MB@K>E;fhXd;dZ-U&sy(4J^od zaVAF@*8cq6H(h*a;A7G@*|AsTTCbI@e0Cq1TA#J+o5n5!_LjiQo=Sj|!LQ<};|=!F zp9U4KIGfTlqW!4@Mr8Kuj`nPL%p9uXI6OhM{FKJSJjOV^2pptE1+WQBoBNZAh!_j)N8*I1z>;dc!0O)^qBC)&A=rmxdiF?}0yTgs4 z{!uo)=r5LP#LKPkIUVk_eG&0PGorY&{PS80HJGih!;5u15Zv^OW4i5~%Idl76xM!N zPv9#9@HGLr-}nf)Y;vVbxccMTv3CFE9(uWpIF9|C3Vp4Ky1BL(54>xi6PSWIswFBB z*Cojan*|T#ZLdqoj-l=kk}YRdbN1cL?nRLewk(ZCQ~w@gyYb|gw2$qvGaI8%drhJR z_xn*p>qEs0@4t^Oe(IEJ-kF594UT0;+*N+c*>Hoa>A9p;5e!HLd@Ce^#qY=@D>qob zCym9dLQ)2a&?J6cQ-TC>PSf6A#B*TCr*^dQnp8TwG|yw^VC$AQsk^w8>@AvHRsB<8 zqVxh}5W{gB_OEGG=Ge<(G1`;{=Z<(fY)KQq>tYOKb})>Y;t{QbY|_x+A1YxON1xMm5|3LQ4 z^CfhZ)@=a#IEHI-EOIU{8sb~z1edU`_skVs^uD2`{=0`v>-+k-9~vB+`2?CGIAU?70%-Exmh=cEDB0c5 z`Z1p_I6B3Zh~-NM5U4@7aSAa)vRqq#4uzeKFL#XjOC2n?l3QmG-s1P#KlM-RX{Ya$ zHn6Ntl;wm@J(##|2-#8d77CETedxPnlJmz|_xZsQVf5|k5=BW$k9&QD^>=RNE)Zv? z)OChYP~^9+CPQ4dcpq)(X5@4vZ|5sZn>C`eFLtzeqsB;;Qo&a$W2sXgDtYY_+59rQ zltg14sL*RsL$1>)Evm`w>ajy#li~x2={HLqRpc~9$717&PMHeXknd*+0|P|!(IfKdxpf=Q`CIgX`Joy*#_6E)X0xj4U> zPDuA@yz~AqMNV+#+hz+fXXB4?OHaC1K72qok@d0n+~9t!iGO$FldEB1Cn9w=soyr% zoQZT8GBv>gJo|w6eKsp^zvsb2V|4ku!qS5c!v%dMvH8bD0Jwv%1+N%H@9QdYc#*-@X=hC2jRX7#!ZFs6Ij1Ez!KIgpL*hEAnSlp|pl|)j z{($pWQj+2#3Ld`rW@%`A@3>M7%{>(;Nq6Su&`Rt=M%Hbr8D2?T2& z<_%dplyWvNc2w~=KD{x;5zl3qF;tG+nNw;iv8F)4XH;X_>!|$`O5R0!%^`4QQj9Uw z-9e&bZKKLmE`#u4QCXFq+Y*n>J8x+|f`rV(>{B zgVjY_Ij*C`6t-HxubpA3(Y3q8$(PgqW=ylzboI`k`bU8;Qfbx!o(~X9=@;W!G-bJYcWU>JR5KXb0 zhL#37vfFG5dk5Rimx*ewwY1j^_uG8?+eHoeI&~@s8~6onUNUqR!mtYj7$gcD)@X2e zqe;M3efE2SJP6f>#eU*(_`6*6CC$7XPa z(746QH|x1yt?6&f^NE7W3$hM-fpQG$6jpPtk=&5%0l-WV%2jZW7^EDV)?&;@=FELYsy~*5_2se)iHXtl#)|g)!`LdW& zxkA|F=oz*H{nzGn#@Juq>I2$WF+0~ME0TSOt`l${Mo%+}F>LQ-UlTw|%rcSTqI!xy zmtruS^ap@lim!~yVbx4Mv%{LMIP&0@IFcq8JXz2i58vY8s6HSBcAzo#%;-VvHw6W+ zC?9*E)!_0T{ndwyqEct&EV-)>6;o3)I4f6QKs@n_QP)K2YH-Z41=C0gbI8nKm@0%$ zAPX1#jIxZHn!3oFA#r6BB$edKx`X{TLV^QKtGDpm%jdSWmpD#LdzxMOpT;k~)c8jG zC_LUoT!^uxiNi(02HS)u+If8R^ja_E>7s@6X`{I@{?i$&SS_(O%cY)-1@Wq0u-%!t z`p8s*U?E6Rv7V{6ygWc>$|Nd^puA%~Bq1RMGi8iY>Jp|#4#qx~efNoqQyv9allYm! zA&p*nRFo1D3Wl~SV}eYBRhw)hga?yj+ILIqSDoPal|BP?gpio9Q!j`S-2*gb3tmDl z1@+R6n}G5gL1~A6<&)&CVBVrf{oKUce9`RD__3s}j*rXQA5zm&ihY|l{P5{sNHNM2 zuPAzVg&=RoyH;%+w+Czs*N>$YA=V2v)-iGUMTzHOAL_stybIlJUVeB5jl zk3R7MHKSI2D-M4RVV&u2qq1dt*ktUZf-A`KUDNM%71B$j{PZzgr(Zr zeYN7ee-AtpWcLY;i@L_a8Vg0J*!#w=}bA|9a@a$iu&+N{XZpeY;L*CqH}x z&J73x>fCpNpr!zRxy<03fots525!Ure)PKTIYbsw1f^hexl*Z)N%4bmw%HNeola8>_^X_Q4|kF_X`w3618=$FEOU-Kb~jhxd}xjpS>t*88=XRO((L zAZ4<$UV8h!#F1hf>$>+&5x+I0>h~S|zrNwotS?zFD*gEYM`0nceKt_&UC*ZLE7fE^ ziW`EA-5jL%t#2yj>IxGGD=7uAY0*?pIZegC;4E!>iZ2|aA9(V;SRJ=r?``(c7GKsA zx!3qnBF2@Tp$UO`Ha?Slx%D*qJ;MVYDR*aYw;PJB;R+5y&u(Z{+$oLErh#vrx;=6} ztN7BF5V4NrW@AN)ns>5}B(RW<)6tbnM^2&h4|W^y;$&m2C-2%Xx)8=VfA5Dg0HnrQp<+!J}?_DHm=1`a!wlOm*X}FTxjAs+wOF*&>Q&e>~n~ zq_Vg!L2v1*B*ycqr;$5p3y}!7)yqScAiJB&W2-w1l6IkjK}l|6z4g=pK^V`?Q>@s4AnH|x#!p!t$}iGZ-ue4Rn7>ZCB1Gd`0SjfH zwc^cs8t34`g}dDGca3W5Tw)h9+rPw$I>*LmTUVleXrkJJB8acaph*gMh6lKXVn3iV zMS&xHJP(aR=tm@^$C-|Lhqr>7!j#uV4H_qJFK~b)5aZ1Dz$tlRH2V-8yTUVPuM|oo zC#-;fTQogJs`})GDc-B$MEiv)(yS#9W&l~{(8B9PQ7f!K`1txjxAjq9ubHXTMfvK@ zaF(7Z13}pR!8I#K!q^&0PBxSqxQbpSf~1?1fe+(pJ2 zJKVlwtVEc@PN!)iPX1U&HA)0e(O~tf2!+y8dSW+3_Y-^dUGUEoP;kWob>JALreGLR z0q-}sV3Na)RsxXVQv3$^OoNw|U8UZ9A<;vGG{QR$ZG*2k~wf01Ar+U4aSKAAdn>;Z*SYjr`|BFbR2hvY@WODH^vCE zcysf`2>D!Sk}P0NfT}2&Awna3*rif}f;ATya#9hdQaCTmyrT4RTM76(urKU%`2a`@ zToe$6_@J54xF6@zP$)E_e!L}*j;IwuYRKlogC^xUycVi`)NuWoy7iGkQDlDnPou=V zwy-J@yhN+BtRku^d32}gY{+}ynlej6*)Cgkd?6h`2N?w)QIr6{iK3zqg%jc~#69Kg zr%{H(PmO}H7Bk_0S0X~`Q=(x!9g-u$%Fzr=Nji?GmY3Jrq+4&IxOM`%6Gl&@V~GA?yHHO8|BUH4~h`m)do3%?^Cw7WTXA;wQ@J_ zIe3VhFFnFr9%I72)Q+OW)r7RK zd0L?i@IyaNpAaXiklC?}9+YgqgS{nytx1gQLT`SG0ZK=Xxm(mCC;c^= z6!vckxZTUI5TZRdp=zQ!?i-9L)Wab06l~;O`4gsz*8!SQw)BYLAw(@s3o2L)KxL+{ zs>1Fqq6Z2UdC@O^LVxD61ucjxIO4m+H-&R|A5j^wrX*WSkE%pGDjxs163Uy~537q$ zr1SzZ0V3qpq8niP3b^T`iOQP+IXtBB_aj`t77pC87KoHcFg!d_0=K{UrSbDMn0%Yy z1*ysO8;2z1L}u!VzM+65VUw^n9|0l3;Uk`bG*!5T1`!?L4B>|RqAE3mZlPR}_@YRg zs6TTwewLP+c61R&s`X+>WkQ`--e+w-EQ||T=k{e^s}h@HsTBo#k8sulH4H0!$Z^$G z)j1_&H-_&pI=v!KPES|*{UP8PhslaaWTEiV8bM9fU&pyyRj<_y?;OS>2T%5mw(WFi zDSsQ%6>nGaN^gF=TrUxkj?wUWmLin=u6XBQ^z*pHla4!_x)MTceQ}R{t$eXUm zN$k-^I(#iWM|wXODUqFZ@U?(YrRUE_xvO@xvj*rXl91f3B+a&7H#Dt1ps_UucLNrX zy2QLP?qlE%J+>8(Xy|=-Vs% zhDFO|SK}NRJ*XtIJ%4zn2{KfT#WzH;s~tHrM*ss5r8W4+DP1A>C`%wOH7k!JLWLj% zX`no_#zKQCGUr({E4HNhx| zpswX0oF2U9#V1Mj$0-V75DffP%;Xq~egv9z5lJ4iCLjkjWxR0e&?*3edZK_@;T7I-KZ-# zLp^2q)>dPF(hx+0JHT(@q9d(QBtwI#W7jDlf06yMZ|nH<+uf|gd-CFZVyfvoJJ45X z=b+aI>m@$2XVQ*%6&*M5<~QKC>2h{L-*t+A+m91#ci&u5u1lIzt+2T&z*g3wR{p{0uM*`z? z)HlH;qF_x)fmhoW$*u7DvNFEN->JjtoXQ4O<0BCd6tycivFL&Swjl5BdpeHY)8cpZyf6{K6^GJVoR3nNEKAQ3>xrc1guGy19 zuCQx|pn8*T=oukj8mIl{OrT3}^j{Maqu&&T91L@XK(1BncAIC|_%_WBhCFeR-{`CKThJ9`QLOQgy$)47o zK{KWp^j_8GvIcXGJqL(5@8&Ocu{!8PJ%g&%@)<~4{Be9EtV;O8hNEQt_CO`4*P0W7 zH#6VBaO!Tf_=hwvGbyUQl8dzNvtX%*C7`ye|Wbj&-Z|xgEE( zuJ79D*FDSYGH*<<%<_vZkyTVlsE$n5(ol+TP?@M>FDKC+0Z^nE$b92U?5eFxv{aQS z$G5!}k|rLQ<1bOhrvPUkawnP?*hEE=l`?t^)0)w5SO4yo1Nwc5BChOn?esnhpM4 z=J=bqLREF=kp64N0||{ETSz`bMeGM%0Y!UU22p5hCLkWfdd(P$N7gromR-r1_COgoV)u>7s`M7sMW88ONnAGQPqyxQbM+jc~Z5&PH{S125 zLWpcibOp-DN6;yKAunT}g2mi2axKC{;f^)#z`ddd7zbepiVW#QN9tYt^U(wE{J7(& zzIGc04=&5V+|lW|UatA-^Q}5WV~Sdr;KqRL`LELrdCGJmwve1VR@VlvCuK<-9$CJ6 zR5e|yRNq0oqUj`*8U7VsJ4c;9`YS*@VY%vpiu~lfn7OfF{UR<-?S@s?lheCO8YkuQ z9rQs?$KGbM;S(y>G z*&+y!6qUX#(+IBlS%rs(oD=Qq%=={=wMIw{4$;}MP_)Fq20nY(#|VZSlHjvjwvu)O zlYIvV6%?ET_ZM$H-sIuBHm7Xa7HAcvnF%|~7|NB5Qs<0j!--~tCjhB;EMvuN-k~Si zKUL@PPld;QXA~2LQ;IVLHVeG1i2Ysjgz=}vFUI${>SN;KAC9Le+Fu+AX6y-uti53R zJdll?7t6F61K?5ea3^4z4Pal6X6!$;J-j?Th}p0Y*Ui1BNYCo*kXi-J1M;bH+mWIq z7D^RF%g@jXmNsZ*e#-^M53PX}1HYbRGIQDV(OtG6#|_a0Q3wD%cyl`zo$~gr2~(_9 z8(Ol3Y`TKTU_{A2gnnI<*US~*O3=*I5l+pNFifR<`GSg_wFw@Lgt9^bXe!XW#)lUY zpOgkiO6mq9IZxxl0X?@C*mu#%8>ih+WRWS0z3g}kC$H#h*PPfGEg~Au8mmQ~BPYCq z!{U*Z@m@#>c%UzD zyow3!_hmV_ENar%6Wx=McDhqo*bu6zkqv3?Ll_1TGY-kdU2D|Z_0%eM~tp8RLIO;t!4a8rU69 zA3qw^&`EkRNUW|MGr&urE=GKRnOB|ywVn#0?PBF$sxU$k6Tv-y8TFf)ReuY7j1_|JgmWd!k3s@WQcg&67)RM8seD2Ez~9>c@fVYjUKd@Ec4DPaF_> zk$(Cvtekk{I%A_cBuB?#K z+MW5noN9`DIhVVkfwv7B6=wK4vz%6umY9iEs}Dk?A<=(zHy%1_@C2K8I!8{b_p-Ch zJ^NL!Bc)iwDn9I8tH2^O?@dMb6a7T9f#5c+N0gfOnImJBlY5BvbJ~w`)(@X`-^*?8 zcuu;iucXsoXJ8O8M!s-b%rQHmn$d6OlvMDpRhslydwBHkY&&Ddj~vu);d3**KsVc9IbCdWG;)N!coNIFP3-8#h8&#i1&V_N9&X9#zXEzOunt`HXi zaZImz@Pq@88y!fZ1&E>60R$8W7zGIAfn5Mn;tg=-i=i~^2ODmSH+=F)`QQ=88$!V~ z2Y>O3&y(?u5WivC;0-C8wy6s|n~ieJp(y<8o1)@xfqNu_qjZ^oubCGdrCA&wrSu}YnKr&z zod8`U)tln|s~yK_{ul3jq}yW?k?ebuq3kMuLZ6bl7@n{Su$#uVeq^#ikd`yG$e1G0 z{=07rWsED1WbQxXNWZttlbf!pd7F9T?g$|x4b9`5+Vl9@kAk1#*a_EatgNz-3NiAi z;CwgfhWYJX^!*}H9e&VJusBmC@3?T`?x5-Z#%|ToAh~VCMS%YvsY~7yH>N_}mwxb}AXjw`VUt7rLE2Dr?{^ zVf$9X?fESM5*c=rcX6YkOmF?ZEsor)sSTcf4`&dhDOFL~y6`FZO<`8*Q5{wJ{ZWc< z{l|m%l+L?u?KU51NQ+-(NSJ*4;N8YK7W?@=^CER)$eIOfOUqPs*u4EwyCY|2d)VjZ zA8hs=f_8gplUw6%gst*TEk=}N$EuErTCq~%Av7d1rG$H3$s@B}BWuHHRRvzmJQK|) z*8Damlqvz6GI3|=E|K^qjz&dNp{J@Fvv`28iL_0EIZ}P;dg^`q2FE!MM3w-D8Kd&1 zc*z`ZPRwZNcM}wimjeok-s?co0USy^Erg#!vF@#PDrr@@`sH3E=9(0e&*{A%Q>Y^)^bO1)}6HN}$_<ril(5}iF1plJSft8U`WA0>&CladeAWqv*2Eu03{fB9ZXbM_t-DMh z*Tu+Imywy_h{icciG7sZ$O5h|j9eaNcyA0}%3{nG^4tm-oqr`Q8_sLkWvYQ=X!m^# z^YL2nDa#0t48JDt@g1FIrMuhChx#&`895gEPjB5!y-QGHW|J*rOf?z)Q7`}Kw!f>` zOSV^oA9$wz=4{;S724naG^$ziv5`z$>dmz0r?BHlf{g+0D)Lw4Y4gJv)@RJ!i4L<{ zdtOHB%Y-Lx1H|0Ef`uY#`UEj(Y4*W_h<*)!^=%v6HR4v0E>)k@PqZiBed5!{A|-oti>_p>LKn9_N-DOUE!L8d zbhnT8i;BmQSlLtur!^l%=$27-t&s0qy>q2{r8L4awa&aa3B;flTi z6@{+0>oLx@7U~P9dkgz63S2uB+x5XO`JY~jY$P8{^0j`C->dTFS4I~-{{nQNXhzoo zLP5ftxbc>y4g=y^ar;R)EHFv|NrKjDq`XzHO4qCTpZT^CN_l-Q0VBF~ZHJtFyK6N> zSr5{i%hSO-lh1eCL;tQHk$eF*Cc;5$pAzJ}Oe=Q8bJ};{^2I?KQp57aycjz68kMx5 z*+? zyu+C!j*XoWpWcexyIY|Fv-G2zv@9B_w zt8H7_DXnU7Bin}1=^SA3oh0*w-wzvii)N`+^*W16bca;hGjeUX5a6;hWmpfHZ$IK~ z%L1m#V(~r2uH%ldl5vtc$sLV}x284_rqa)JK%Z{t2U46M7;Hu1dMH?C@vlNcs8#%F zVwxm^yd*BU;5bdCDsa6%RhzhD7PZITYv;`hhKI(d$Nr`2^ar5*xa zW_%NKe}s0@q6`^`hlHo6)7^!q#fq%RjMUcJqISV^2PQc~+3vUQRjg zGAY4rst>Q>&f`{$V77a39m7W+{4ncigN2lSM(tDKo`27r)zQmt@rl2Phj9^N3ui8S zZn+;Pzh}pr=g@FcmBeLCS!dQ-)R>4q0L-<{mp6u&&)E|j=-Jtf`50@Z`rpunXaRv^ z_4c^6$$Vj1Hcy)VW?4^WhAZu+dfHwN1Wd|!M67ynl#;eS70}tJ>n@4Xt==*?@O&73 z@gUXnhq2?{dN$={x;J0zn7KH2G2d{Tg@wa(xwETc|7b9N>N0b`=H`&USLLHy_S)~b z2}iP3v!|__LVlUXBE2>~ogK&@r@PC2bZj!eRqEFIiNe8jSv=z=C(-o=PL5%X1rsf~ zFtQ7(?tRC@d%j8GMt7Um)L8CN4ygk(e=jdKd_b9e6wj%lul~Bt7P_a zVdbp-~WDDxaZ^@^7I4?$aAB0A*hNb@b%BSx@ck2ayp%>Y-z~&H2mU2=r z?WbAyXIFebL-T=~)u%NP&-scCn4EZzDu$dVA{-q2`xGf0l4dQ9H@QfXOu+Sp`&7mC z9=Pz`c(WW{4!}qj1u+f))Kh_3ZZ!fTT$#-=C2~!YXL`2BiWc};>YUkj-{=5~DTr#6 zpeR@L^L6N>p7pLg!m;nU^V4?sXR|x*h!!%rU7%PK@tYDL@E%ualTu+!2O^c}Gd+qW z={O&UCj8h@yhC8*QiA}H1%#guw$*Io&sBd2Z)5|;A2~WC@zypXB!<-&NVRmjj-DC& zDGr$5vKk2$&kQ^ES}!Y^X?tHOr3B!}mDoQya}|$^)@xZWW!QW$ptF5c{``H!>z*I|_wR+x zbB1E7eKl!~pTW)<6bniiAcX{?XpUY2BvJMdh6H27%>q0&WsiCs*kV$Jiv8uf> z-wteX!;&(Ca!9nsfN|Vpv&84_jCOC`1LG>SEz2Gg+kheAUL8j3hZt{8)~VWZk8yhD;=@)a3C-Z zphS2A=P6v-cWPh!&4t9-v~BXi=uv{}5VLW=Yu^>50F4*U_NM2(BpO7!29!9RZoH4( z)b|6=^y10TuXWtUb_ap^Mt(2DGS2L0x-h>X8sP8N6hVPvuxU$42#V(k^Dt063Ycu7 z@JsK!fOBZd%H!4h<#IGf@W5Wu_=1$bL-l^7u>h8IbjcU#Us zsFse7`N_J+ifma{My?PRusw5pB~_(bxcHMrol{lUjVtO{F5n}7vM@|NOW(SHM^f5m z#QI}fmZu^rlUrR~UB&RZWPazGWG=ttuik=P>W`h`=A++^eN%pWe}3}T?Cf%lkz34* z=3B{+RDHyLn|g4&|5w8)?^O|Am(Rjw{!RhX$G2TeEKTmhm|v6|eyvK|iMMPLIP@|1 z@ERLK*Sryk%t`sU20tE?ewtBr!}N;_|B`Ggg#^%jj#S?mnL%>>j^S~6xEoD|jD=IY zOeQgeqNX4yw>X?o%;qGl_;_p7S2#>dvB)SoCV7E+DheNcn* zCANujXB^k;ImICJ8yd0#Bif_`@~EKABWYVr$lT48q!>K-y|n;NfR4?NE`%=x=oILJ z&fIe_u$AP2At^=XOhnV2pME=;)uMLhfG$Nz* z^<%hCQ3r^NuR_aC60bM>WU#-{%PcQHPa$dNf`3AoFWqjj_L<-&`gjX3}z7{ns62jCy0n`&stNZ9LkXmIRmlkQI;59OtJ$4=OQTE6~!~ zn;J{WXFV(7`>ZQFx=8-4v}bT~&8>`vi;esxw?RX5S|(|0!v3w;!{QGq9+~FZg7*{mUQKB6 zHTfY^(+WT7&hXRnRCiKu?tB*1GV}SR8_Gp)tGqkkv8Us$sn1|5qTB);j?{dZp;<2r zG26{l%y}=FI`fE5Wt2#)+aX{3dYnAM{eBeJh8QlKR6DTUh(38_d?6!?;o6`ZTaP7$ z;4>zN06mgd1VxhF$t(=)r)4xNYN)pA#6n?Cy*vE&^^L6Oa2p@7cc4w1*)aIxVt@^{Q>FZEs z&%bJ?&xBrK?j+}id%Q0FfcLk2<4NOci^aNZPYU?|xP9Ra?t;5H!deI8B`w|}{V(s9 zUvwaO4DQDB24-R6+R2kfuA?CL$N;?@!MW5mAVO8t<(5zbb7%O8=~^tbq{Hgo`xEwj zeQ!|+_e<%ZDpS9K5dEhQ4CUBx+zIO~18{d1dFkGuFs`4xk(yyTnAhKDAQ;WZSf{d#E>(N z;XY=2Txmi(r*yuy;a!G6`QG#;XVcQ}5~{}RpC7vnL-y(#j&n+N1^H|4&%U5Hv~Y40 zcxX<5Td-zP?Gx$|@RJOGwtw7#O9}9fX)cWDB+px2b{#xMNx!&`&r2^apAq4!`N+%1 z!+@FhwVMcW+cWQOmye-YylLejr7ylF&Ttnh$JgB0S!xtv`hXD}XF5J#Pf@ee4d8uA z_OPLF|9tCz0WCn%zr4P-UK|Da2LpV+m-1!b_Qt|nDc|laXIt_$!|ju>X41yjZY4MW z;daA6caof?VDWFKiSVa3n;Xe#iMZ6aBkqk6E-v#&F*+PlvrEMvc!CI8U7Ownt*lU} zq=yb!T3qzXa`aCRqFR9{8L{SYzE4KZ^dU&Ahi$-1?Q;yFPtni>v$|XlJxKT*XU+DZZbA$Jv+gWV34qL8E0?^~< z1$qN#Zt)&ChAV!o2>Wum5Fpz@0OV+lfbE2Y`{@8i)&>FrOi}x8rnW^pq=}0KO3i*)|x*6Uz4q)MrRO%5dr>8KME8-LG5es70f~~YPrZ(F+riu1HWANV?%Z* zYw?*?l4mnq#*am1DS&E#hgS-on73_g_HUU<6NPI@$Ol?9_gLrVZKa%2LS>fSdg2&3 zhH;e~zSaO%Qp6@Se=s?(5q6;~ESg?%Q(g$nn}*=h2FvO-iE!<+jbJ3so(_i2j z@d@SoHce+VF}M=%UyN>{+-QLy%VUS%!vRYh|>qr6sRMm|EB*p+4g;{`k zSacD6&wUJYqADl(^of%qrp^U-nU3tlxl)z={%8VZ)J|Q#x-5*_m%yBCMCQKm10Oo< z$_2azBo|rB3j0Cpg1sLT0Ii=rP0!oEP6P=ffiVMMy)OzSD1QRhZiM_xHx})-*z4m> z4jl3&d^2XS&l(~b?efPH-F>137u8De|Umj7-6K#B&NLU7&?EhQ0s*Eh-+n|&H1aoLK?x^D`I-8L_dFX(5>ba$w_uzP{g4Dl2R^@G_D5TbsH zyZMf#(Q7ygHr((&W)mBQR6hlRtmOJ255O$N`xK$_*N6&rpc|k})an^hrsp8R?4Uq& z8$HH@X9aUuM7BwYFV~fYf!-$QW?Gm$7A4lPF$r%$RO0|1ENmD82AltEKm`rvnTR0+ zWMB$3;{k(hC8{9dBSkzEF(7GJ|Dt0rW%$4jKoGzR#2^>}9FTDUfuL{(0GByM_BY@K zfl@&f3Pgbf3VFe8X@drdW9E)|`myfb(AwAoqL6_AKnw-)^NIriHLV;1F?g7up8y6a z0PjEob9s<1!iFlrQcPj!!T|ygauV}43fi5PgsKR}CsR2$LKbis^-wZ`?07(dQ)CWY z-{x)*sh~hWiU8F#0LTDMdjJnQ;RXRkfCS>O1Ym)Hk0=`76@UUvr_8Qox|#>8n>5z0 z?&;|L*}KNfy}y)`iC=vdht4B(QimR=cbe>G*N?0v%^%qkp_Afw7`4`|3#n1$(|+pu zmEwAT%#u@Y(RG=hmpNs(7bkT+yp}YdHizQX@RNV-giuSUe;=m2k#)l^2ysur2~p1* z8jr4*mbr_rsJ?akD>{)E(c`PX0IC%ataveejZsgwMnz0HfeJ!Y|NsCl%U{?p;gWiO?EoZpc=3R)8g2E?3{iA}^F?n97@ zg4LB(JW10s&B(c~{FsZ(r0;;Cfl5Pc<`z+LA%%~^7mHi8y>R;v{8?z?j#OfeENtJF znCZq}-D?cl+E^)Y>7G?lMU+qfMYOk!#%Fl#Ei7^TN`YsNpg{bUgXqgX-cc?T&UZ!V z2q<45$hq@Vl(H)xiKV~epqgS$7;E>ZvWvkWc`s3cK~kMV=MfpTJjWx_)Xu;gcdWp` zo%Y|L8W-pD7s$l|2TCf@PFale=~?RU0J1C<9S`SOE;xt52t-^f%rJ&~Y=39G^~HP_e2r_S?lrwTOkhaL8YR*%Kg|7jSaRtiAVK6qES!Kyt z*ci;>4fT;?O^8OKkPC+OGy^D3Bc=w~va^#eEHAxj_%JUU4|^tDQJ)cA z6Ggw2C|2jPa@Rr&SfmO-|mU7a>&v#2$0ieO^b@~~tvPBH$c;-l%9oFh-dgU61KZz2r9W-%i#D$2b9RsxS%MasG2 z$d-!hi!ou!4peU0y&;guG=|C82qKu= zQd~A=5fQNv2%;8I2$4N4A}QgPprXsxL#Iqpu;uZ@LD-U#r*LC0FMQkiIybmh$+L(v zB!DO5>KJa2?*tLDKVO8N51O(Ed^7gz(@#MxlO#z$)#z*s;LtHt;VaZl^m3Lk1|CV>nHpEo9j zz85?h_7fbkV0VI5;Ur0%C{HZMn{e^c!LA8igEc$?SJ^ug16=B@{m1+HrT;fgM&ZDC!>+b`nvpb;&S-F3}UOoM&Q#Im&g*ahAv z<4C-Vjc$k<+B$5~6aD55k$tWs>1ON10TFGS5aJS_3jG+R^XnO)9VT1Q3bCZ@$d?ZU zhbh~x0i7f(!tH@{XkthXG3y<;1(IM}%Lj1eiDE^+@s41XjC{$|B;uwMNO;siY2)Eq zLR)mO2|DtCW_yxNAg7MDqps{13Ij(TFq+R89*IY0Eu|Q8-lE$953hg)N+1QoyO`xL zOIwMzv>KoCZ@p3RMO1)Z>*)YQp>1F6%BokB$bf=o2oK6-$_F%a`)C`^=Y;~v%z-*^ zq{n>h!j={prMc&Yl!#bGohb7LZc;Ek<j2zsmgP1u!7i6YL zFTr{(rl}3Z8mK(ge%5pVY25OAA%oM-PQkMp zu31XK=&s=tDuG3K0sWbFU}3AMj0sko0seeqf|rLV*%16c3n(n1VMK+4h?xC|Il&Yp z;uuLDC@vx|Aq6iejRCKK1*DN_3sey9hY13MQbqtQ0&GGnlGbJ#OFef0(L1`jm%z?e za|B@14RNvah&R>1++DuJ+cG7T8C_2TvEX&;5J7Xo00fgD4dRi^8&sF15Qs2{JuWBE zMnwPp2-A+?+y&qli_Yl;!bM6+Tv98VS`#e8VAyOMEY|#?kbX&%oReuNLg0W9s4g*? zTcg9Qc%&&{S;}#2V=;&kF+v*`Ce$n15w{>gjgDzR@D9%sJrzz!gbVSoRMn)wt2&_3 zkVqCli_oACX2fcsMkzvqTyLYWAfB*b|H)h{m3XVsT&~FEiXsS@B4B@K$pT0atSJ@9 zi^#|se!V6LVU{sCe->+VwsBzKt~7NZV@VdB)JSIG70dQJ-?!YlO`FtFJ5oOWf5Ci!x2*mu9kJ4dZWlm5bb+J! zUM`GD#z<(M=O&53rxL^7s6zPc^j0LVF9z!+JkB_XyLe?cY8~$_zXFro9eC+ch_PBt zh4&hmDoVN}6|hH?z>pXMp8yTLrjF34;A2UB*$k}ufF2M8ynqpe;>v-1^#fK%J9vR#LP~M zMTYdfM6kl3v6+GrC>SCCHo)LE&WtmGfxadP{v;kOUofk-pdMSn-Jq;0rOj~`h= zq`L;52`G$i59M12mPt3GcwJA?tc2er*8|UpkQ0)cv{cr73xS*T&}f# zwT5Kqik+2zrLP1G*!7}D$V(RFfexB-5P=U}fNJ{~8k`WY5n}OtM7k?k&ahvOk^U?0 zBV@^5CkU?wmXRSqo%1i#lVDUvXX9CB@HKg|tw3=Af{rRo1Ur^6L8@ZG>~kC+7E>I@ z6)34mVu>s-V%UMW#F#c2u@ad}aKw19#5OJoBY+(G;C@PxL>sKGPnXV^I}8}PD)c0x4?3E-V`zUZDFt+KEe1{TAv&^a=V79YFo(lRJLeh2nuCh$gK9ngwy{>jho`!K{oruGh3!%Rl&nBT7WI7HJ zM^p@&gXW1035$Odwloiz*KNdvKc5H(B`9ipJDu7XglI2K-2w0C#}BHxYgvIBpjv7! z=KCHtim$xd_Jc<}4t@y#tFrVaV{o2_?YZBopdF+s9<;Wc&;cIpn*s8 zOB%rt-N@DjTx@uKACer{NHB;AHqbBE_Y53-pz4uK%3 z5(=aWBo!E}iW8n5?+_abkq964&0vVB%E7bw9QIiq|E)1aZ$%Fg=Ozf0O3JE4m#epR;5l_i&gAfv-} zc0jJaRjF<`!sMR#VJ?X7`HrVpa#gKq;!@9Em_TxmNy(SENt!PM! zh!tr~m@v{#x0DAc8EMEomel}OcXF&q6w8ZvfHg&n0-yI2vQQE~-;z-|!2WT|&?&~K zoH;U(9wf(cCq*+SW0YIa;shHfhd3}pC=xz>#)^$eMdB5%up?g#VbHLc5Gmq-21OL6 zz7PXP96EIdB=lfG1~C9&ld>2J2)~Oi?=@(60`+;pGM^dcq-HXN+p95(^~%c>2SONjO2Z56*~bhF7}PQ5O}^xJy1%dmQi=r00Mfz0SRown;;&r5Ak|G!g7WAMaMMKlUA2mve`Am|C8aQ za3q4{W^gcb%tZ&`{6HC*syan%M}0cb6+wV8n!8}d;dT&)S@D8}27L}Hg22XINdXN$ zgGBsK+jW@av3$0{W+dlQloINX62=(?huU1tdE8F%T^Z8rZ$Bt@T3nR3=>x(%!1HCXkHO&JKViNp70^`U>`F%{w#^)#5g8jlDhgm}F7Jc}HGN(x6$)&|f+qjDZ z$2dH?B26QhvYhRgdbO4#5ndqUAYHiA+w+{$MdI;zzqfA4XE6qKb#ewE6bwK$Hf*a(6H-qX zNZ)am%VIonuQr_^tZvLA?S3s*M5j_bh0 zA!K7gcX>L2JqYo{`v00W!;<{lC$Uc0*={ zmYQ+ybO&mdphu`s$ ziGltO0>OzeC4l&!K)H%$!0VKP0N|I>4}1aGX#%cI954#!Hs1m^+49?V$u??YAfZ-U z{wFCMfs|7DrOJ*#WtAO+`oc4j^S&eCP#kvcfdM1EsKz_UG;ABCs`39T05hh{?Jbbx>wHMNS9Ny%W@MdYynH~2~a?Xa0k@*BRL z@rZLK^9#*JFN0ENt9yMjlE6G?b_Ib(`aV)s`jZJ z&2P}r`TlB+&D=3sQnXrqgl=|RHuk^Ha_a6O*j1C?Ckjupi_@NG z3!?1*rwmbWqjtB7FDYPYpDqH$;?e$;*Aht?YX4#Z0RpE$udK4gCR$kq?H8=F#jX%y z)$%OaaWGYX&5g{lw^+sw7tn|=QGsP(2O?~(79EU00F;CVZNLx}FaR7Iz&9^4hDkTj zjw|`ZZFXrR7G49l^b&58F?-~Pt7|}#t7Z>AKC*&FYt-^o| z$F#&e!O_=4nrrjKN$7KO?_S``6-8btJO)USL0QxpJg`~1OK~)d#zcK!cNQ}Rub(h$ z4d=iay;RbmKjq?D;PB{-15XoSW=LW2y&w=RT`+CUAezVt@cH+MI118l%U!lE_vNrn zjB~~w`1%Q;eo?@Hrzdcr1V#`e`Q>tEXeoe?J4R=MzFuTu1#<-uMKl0)@C^v-U>@Wk z4M6}*fK~M9Km{GV13k9cIvc_W@0ZyBRSa7JOVf%u#^i^vf#?kNFXF6z#AuV>3`vGV%2)si7*46u?FjXla(?LTXll|G@8*qz=*Vyr#F_>>Gr73=gsZ7pu|ZJW}= z9!6~dUJE+ECU)9c0l7bI?-M8bSu*OPE#Q0ku!^T9Mb<35?_WzF3X(9jh*y?0q_A={ z@@!6}$$VH)N{|D>9uFc5YT=6QppdZzC>Fs|MY{bO_qyi^4!;+x1vq>ke?^GzjTGYq z9AIeUZxa&bThbFnF-?-l)bd%&JTlZK9JN|5RIi;f#A9XL(NVsY?34y0oVYW{<>AgF z+bxdpbwFa02aoCN`~lg2046Hn0<)UbRcPK*7675ym;!&TkWR3(A#udVS%4%M7FrHS z-zb8TH~|C;p#Y~UAvV%en&B`v4o_p}o`2z5J#CR+lXz|ge06u9EdCnm(41>)00Wz;@t;{N4iAg>X1$E(pDeZ2Gy!-<6Rfs0j zMN~w1`GkYwpHlA-a8;!TX6Aw|N47VTNt0fkVGdJYh|Gcq&lu5Mi~`%ic!uEw z-_QF+dp8GZyX>7|W6vpgx9S1~CCc{20B%~ch>t-`a2I;ROa{ZK1S$5XcTmpIKCEDN z6xfDh*rU!Bi{FY-;_UW;O=}1t%41@Y_Bx)G6f`s=qbPe%qr4GZfUWRtwWs&jywmn7 z)<&|wbmBSht@b;R86bPk2PNJ{+Z;WZVtN$~k}50e5^P`hrvKt)@S(ydoD0F#v-V_) zRDp8}BpmNv&e-*Yvi;r_DwPR@x#3o;FyA!nWR)507`*2AWdS=H1;L}Ev4tz|uO|eR z+3t|IC`tGNY$;YnLrSv;H4B0DFYE;+A@_z_tr;!qZn6_tTk2c1EdFu zA;Axd2yFuqV8E1u>({!Tyaq6gA{=|H71|qfg-u^M2c=EnL)s1mV5dM33;GZUPW!L` zTDaqJm;_$zs0GP7d;tfQ!UdmLm;#qGU>L1d5qNswd;?YV4jOrTw19lmRS@Nk+lE^o z(f7KP^pU&}Hvu`5FOM$pP66><>}x$%bHPE-7Zu2Y;OAOGrYOhIzhf&&*3lb!Y7 zX4RA_xrwsHo{3{GLkNIQa4N4aG4|He61YGoLsR; z^H}gA3GYr3uko%4tY%Ri4a5-!L`LdO&_jq04Tq4kL{hr6iIXm_c`A&g-57BXCeIoM zz^Pw}w3`hku(1XwPRRh<00A&L?4C8k>X5ql;_nfx{tZS-DK{7P@zjBh!jr%Nmfp1h z0atsql_YzK!r&k@Ltl#E!xbUEzevniMdRyVC-W$z$d?P_%6SU z2G5M-8b>_kB&U-=Oh!Jro|J6Nmhv%YYI=6rc3C8s_4>T41M~=WU@uBerXVu8jX*?( z*FXo!$umGT9-zz?lkm<20d?U=Dxv|KYk4WDn3J)HyGKlk6{v$EX=(x*`kMmtM{og@ ztyf5rp(TYf{XXdXLidNSJ?XWHD{eoDj!{(<{4s4+7Q~%PrxgmZi_ZI8{yQ)SyGw8U zb|0k?7HE~q)n-6fF`=L^+D_Tj*bfet3ThjU?+a1yD>rDaD=`SF0SBt&3}#jXj|2yB zX-(m>0Jny|MXa?;Jfl7?HYr4|>7dsl-{5$NkVzL5xp0@+-W2P3W2Lw8S?&IGP9sN@ zH_Tj7Xf4k(Zb?Tk{m@W@(w(%JP?hpA|C=Iu!_eA z6Yw(71)C3yK3K?!x2kanUIKlI;6hw%DR@r798N)ZwJ`hA=IqAU#d-@#4>Qn7}m5j;R%Q{}?oObG32l<@lMJ>;_SB&1<@Ty_>FxiCYYcr^m% zbWZMzmIPp8bUn9Z9rm`luLOOCN3r`c)^czm-M3;|1jokw$~Pe_}O_sEg~92z2)uN`rV;tUBN&i%=j@i;k|W{pn5P(L$z!np4Bd>IudO zTRlOIWl^-CY@-47Pb>)_{UfkqI<2m*!OIsL1KXRzcB3Yr=m076I4Z$x#A%#H<68$K zbKl6(rv;jn;Ks0t5w6BAwDTorkBI3(b3@$Ef=9&=RyHp{z+Qf)>AMD-U4Nag0 zAU`P$pkuy#SB&vI=Z5@6Ha$QoOT^YSf|mh4!HDp)&`|pXQecOZUbTZ{=k#2#l`eO_ zQ=&T{?4JI@dV4@B=I_52Cu z=aOpytJF*aqzF?2iSpNO$S2qe>C9Q?0*LmoR$0T~58Hyz`LPnzt?MGb(|dJL;_%9^ zvuW4_(-6=CBxS=<#m6>fw%y;o$ThXR zvEz*3B9!yat1)I(&Kn=<@tyKtU=~e(vFqi*mk-I}DW|(cWF*%mf==#o<@pdpc=ot? zOAyEnVa->EF#i$ll`xtJP_JwU+vg$;)uO|>7ZSo43ET(d{G(aG@s|^NTW)eKS^wZFM22CTmmFB6wzEIo>6 z6|VEbfJ!yqCl*^LoJYZA`oa!HHNh5i^RgkUvxd0mM|kfYTUX^2FVqfzXOz~60c5x0 zn}}u+CLy%ERX+=0{>y<-&7j^a1vU~%3;#+1PQ2U-kd%dhvZj>5bKzrzf}KE(m$+M# zDl(lUM-JX$x&M!YO@sY|Zt3|cvL$&Dq=nUh|Mq!Nr6H8l=4Q!0yGGP5*cvT~XX<_= zD?}MDfh~d+a>~dB%D*9kH7y7q+^x_sIcKg}5FfbxNB~^9Bazl1^0O1jQ94r?X+4kN zTb;^mB??vQg9&XfalI za}Y*YpT%0|@Q;(Njj{f^O5Qgn;1x8WM{lVP0uko0mhz>fh>euQ_ye<&zZDE$}M71j-GMD8vcX$ z4=z%t!qHmGHnF*U=qVb+a+{S`Hp3w>1~6E_7ly~W z`kP3K7;J!4CoZ*$jM9^nyv=vO%`#|%H@at;Bv zj;uuPHUI(|*gx>`EWiQ{6aXdF5t(8vZn{wXHgT3B*T(KP@}QD>`hmN){7?-s#ko=p z$@4Ky(<8{2vt^PZe;#8%@_LGJ0h+g-7lVP=5>C|Zwg~dx1l>rZF8~4$9LO+Iu3!gN z_Ud^g!GJvm0JIPan%n>cL?8*3Kmqnx#9GXF>FSl`Efz62lvwFuu|4c4dN9E@-r|!) z8RkH2B*Xw(NDP5I`5j|{EAWWaulvF^O>LLm_YvN{=HK6Z$%sP6i$yl~%3Mu+q~5ks zMWZQaEj^4Wlb2kQN6}X@NPl#+S?k>Fj5b~GLIfAjh==q@tk|pe8v?oya^gy$x>)!K zffgoFEF1)nA_g5+^NP6RTm1NAm%b?D>ezL3tOJ)sT$Hly<*lZG|Mw0R=qbHX@NVY3^RueB(CUuW-|cZQ zh|7!sOo&V_(-6SPxLJx^)07dqdpog_%0toeVyjY;WhzZ0`hQQU9H{&rlcP%(^Rd{G zMe)U}4L=L;c*l#Iy$p8aay;o3$*|76hFr(b$wqe);w9j7K6#6 zogTMqgeR(ibF;7(G~=~%zF6lz5}b`6MRc%HY`#BD`zDXPqV&>J*&9F|CCu1w=<%y#VlJzE^$Wrz6QA4F@;r;T_p*oZT7J&2*Kb8@HAP8^v z3`W*ba?rU@>PjF|Bmmd}Dx?5Xj)4FzKmjslAP#E)WB>!^$Sy_xC{!RQS@*(~Kqa}J z0I4nve)7zJbm5HJ`(0TZwU5+J}I4go=^00*jgz$m-yfJ?!6qBMDQnpY3Lnn^v?feR@U z84AcKY1*dXXc!Z*5zn9Oxee3()**zuW8H}>Hl}_ecDwpJ+m)mdox`VD+eMS$8KTAKU zu63B*QTe~odm|dfR_fTRuldN}x4!d=SMSWnMTQ!%@<=yi{~6QR zt9gnu6SfP%x0OBe=U;0XNaf-2Tsb>#)r9jP_&iFJgUQV-ql~ofs_AkpU$pscl%0C{wYs~RN6eO-;oqtavq5B;Rc7H&v{>mf{8T9IJ3pespe4q z7Zjm0ab=nfi#Jgm*cXVzL*3J0)>+GcW|*h)31_{TM&MTB1}8yA`srYDN+qD0-+<7uFN?Fltd{cJv?j!hm009Wke+uaR?~UZ$>*Usi&xKPrs`)5eyIS5ncj>(?ot6 z3AbtU)Fr?KPT*JOsGl0)6Yl#Hge!)LRvboC5f$dokPGHF>;pbcOD6&rTG-0Qf7|XQ z=B6ZCUPEIj@_fYC1I1EW`%UFGaKuy0nMTtUZA!J2D%QtN8>X7C6Oe|=QWKDj&Z4J? z77+ubL6pQt#5lY~;4@Nn6qM0!hZ%8E6qSK$CyZA1!Vn~skQR{>EfkF2a|&TcQ@nP*b=GpnxbaU}2psP73itZPv4zhB9gGPFg=|B{1o3eux;nNCd^xiAirI75Ocf`gBIftm5+ z(#O46lQr;8PNT2{nyW3s3AF>obaR!eKZtcx=g?hPGjA$VY@bKtY8?`9kIjw(cT_0 z2>y}QkRymZi!A;9YjIxwd!F*JV81`qdqf%Ce53}n^5E0OSAxG0VLOqn{Z}U$T=aj$3AyHBBf@t4^ zE#)*3PDq&UM+hnmm~F3hu6cwxyh?#N?J$TdPnuGr36^M+0Z=^y18xL8dvcc8j(?$NnX{kA$%dmMRAq{UjQP|_e0YI403yI0uc z{pfd5CAAkP526mOAck(7EN)h~rxYLxT3>)N5AXmD{bhl79=|3|PQcU`Q2sRE$@k6)1i;5Ykx6hGYieRTkAzrpI*dt=Sgj%g7SC`rgpdb#|5 zfgFgSn4$q&f}e#=Dbfe!hcFc_3~94DfZZShyz#Dy60z{ch78JzAE5kv3jzgiLIga- z#kp)=ZjGTKjc-#_&gH;6cJsd9=oFSR(v=C}Jy-inC;x=WMUv*=CLQoJFv@{p$WszU zww%aQ5++h9VWqe0^g*~UC4`mk zNAQcZ6-v@)A^_7ldGaUp*wIAM$1HP|xluetiDe$2&`wZD{bNY8W5ke`k`?r}(%|2& zBWKGYe#}I9p9l%Te8wDIhf8|3x5_A|~ucmtTgF2bdMluvEQ`|(mXugW%+lbIMad?_t(Poz=(fv?L*>^V z`KG=~8l+h7-jQR<^W&B{eHwlXd~e;ox4m&W(FX0^CIM%0V^qQHPNu5Tt-u1#iDS(n z${94Sw4}$ChJ2E+KzuL#aTOcgAA(Gii9QLDNdXMvU|~VVal+r##BSojl{7tX1}Lo1 z*-MpsGKJj!qL5@~i%_~cNpM+8A~fY42>jsrqm?k11vCYWXwE12Xn)b~$6Ve;<&p2h z=Z3f%$PufP27nkW0)QtYROgUEVe2hZa;I_)du>S`Bzh)23HytlWVcwIGF06QJ4R-+ zcAh(NfCos-K|BD!JIEL#Cj$wMDA>g6l&B120646GjA(K~$z*emUVXy<{D?3f44l~| zWWde^R>qCF!SV(Skh4y0vm9bN4a77k%z2NN&>YCWf23my1%Uw`U&JZeNOIr~jonzQ z2y)BY7{)vT6@UP_KsyKloUkzQ8|pto1n`&*%nT$=vtHz!sFCAQm*_wY)fr8*x6iI@ zG;XoRCG5tISppfv!Sg5T^q9}jC$PmE1H>bO9$X=yQzydYi2@XP1G=Q zA&X0y6nsWp33JWHTp`rfH&6hVTO$I9xi*5qWz-V@CmS2?NW8jvJ9gP{EpV`I<9(BI zSfnaQ07OV4OkITNwvMY^2UTG?V{THkCHjPyR*U6afMK(>;(a3VEoN`c3iRAnNGa>GLq zk`kz*xqvHtN|=ErfTyHFUj2w2P8FT9W(ucr-)BJlPMZKy_Y$NYl&SnMPCCA6&aJ4u zO_Ib695TE$Z`wjTz~W=_R;et+aQDqA5D2m+0YVl4CkfRTVwG3dO@OK1 z;7T=hsQ6o>8G+lQ8AT~igN=1Cq-%Pgp7PYpe%K*I|Cpf@1fdC5b5CH=KH{1QW2;YD9<8%mXbpe|I7OT_n4kRS(jC}8d zNp(F`1Yqe)Tr-=?KLtq+s?D3kdzfH~ZISgqr8~>qA(&6bo=_@c8044%gA1tR0lb=n z7}trz;1gg73!w6752!)`5fnefMq97A84?9Df1*Z`Q5_s3Za56a^8pOWl z6{+(O8tA|mq3AH;DRPjE{Ia-X#8XZQ3kyKN0Du610ABzf)<6*^0y&5R>wp2i9j}JvG;F8NsNhEFTVA(~>+9syPP;7Z_gwA56UDM| z3Q#zXD5xuH)^dmbIoZkV%Pnud-*R$mE?j#UGv8yD+`eVY@PWtdj6>pHIysw*H(0HE z3NZqv{C-11>y>1CoJg1##@xDEGH_Q zCghZvrXjba%!DGmx^V4jbB8U*$Tr;&H`zbeyI--Lzcn)QcHvr)B*hPxr@hf;Sl8`t zMBIsw_D1Qe;eO^ViaQwh9`ag)U1!Jt#{hZF?}U6&kqTBqQlsA;G-vUt^6FwB&XrwV ztjd#SQPild)wc9bTpC968p`<{^K5uT&5D(}w;uog2jU@g`OD8I0ZLOB11`+B0vN=) z+GBouwlCWpB{sjkW71S;r=u%ScCUK9U@o;Spog<4`!0^+EZFO!ajK=vvQ6Zgh#$hl z9wN7ERhel(gpCa}(nLc^IR`a{#aQb(qm^|ia(5!A(y4q=>T1Wn&&-KuWUOgAb`-;y z()2TD<1e;RMBZZKMdy)tMs8%n81A4TQl$|OkR|6O9+%Y7Rhx%xi`mA|tbGq#b-jhsd(<9@(# z|CR%k0VR?Wm(3moeo`nyz!J+Os*4&dhTeJrIRF(VBaaqP+tFU~L;u0T`Ntwi;u#8- zUb!Lik+REny1#O>{<`J92R{~beBrB^*?Jx+Gxjz?jyCpUKE7T*!9}IVgoO{!qKv)n zW#6>|g?VXUoU9-FF1keecwedmR@XZVS;nmH@Vv4W`DKPc3NDh{k4W}cRyT;I9h=YHS(+1P}mzDA2*|1j~$68$bg^vq%VsilJn8$w}S@IjYPd z@tytSmnSxyR#E7;1qp%YsYL?Z`W+H3cqx_K4`QSomRc@L1KrP8jj&|?H#TyCpvs=V z1!HVPKb;pF=q$r}TcvS@Es^jJDo5BPjT9{-FkZ!D0G133fw_Pc>KKqMai&BCXple- zlF5KS$+v(2%zfmh{rnn!B-U()i!5gE0Rg=%LiR8418&w(1%vbR7eDqLcWm>%g@Y!I zS{poDo(;~ApfH&d_4T+!$=A83zsbar4S8@>MC^13ew@*15bWg{f(hkQCOiqu+|)$2 zGx=i#1pz?8)5$}Bff@(-vpLQK2^73%M9*s&J7!F`Zd3sM#JNu+;3$ndd-V~7Fs0vA zM1>xUKS3brRX?a>V9er&oT>3DOt4x8!>qLuYJm;DSXHw*vF9s=CRxN_^_C1pn4-^e zSP}dn=NHin2Ak6&?8!!?%?FSOE4E!GStWeIFv|$Gb%rhh`#~VH6uLBgt*7uG!Z~0N zn|K^=LrX6Lrl2F)iQ*<9z^~p6YY=*CEQUs?t9w(arJ zfp4ALftuU#3zkcmsJDq9VD**>cn7jWvlPXgyBycs$#RFm?f}TCi#+8RX}~YEDXUno zm7ZrZ#mG5V0G^si>m$$iQxpuCb}2j146R5Qog7=5!~qY3oV9;j9dois;d9PYaV38ha;=57OWWwVrsE&RcrFj;RJkgHljR?YL~4tB?+V#+`B>v@ z?*hmp%3>B<|BnJRP7ou>WBl5mm-3C?`9HMy} z$VKGAOiB>Q&e2pzeW%13U(!x2qRUoREW$SqcpV2B?;Fy`R;HA1uVBqoUI?7Z64EY| zYElk4M(kvMsKCpDdAp9l%+Gomp!j-<*&xnoLGhjTDUKUn3Ct!0WK8%o&#$4z{F$Ra zN;rY9FEb-o>uhw$@qc2+94Hq`O-BcOE06&;5ex@Jf~|ld!Y}{^=c^$Amcd8?2G7L< z=b9yu0kY+@N}7xTdjDgb>-=)97y^|5`ctn4WHm zOj)|9iat`1R=?>|Ph);bsdM@cxJUM*lYZ~}V6po8L zydih#RD9W$W%=tWH`VQ?6qJ2LQs;;LDJ+PJT;@ede+eZMRO|7wC{cxQ;u zFEL3`-*HB})yT45t?kM<8Ye3&N#YeH$PoU;Ac-FDQKj0F(hs!Ie7vWV|0X-0N9H`D z-U{^6NRIZzmv0KBls9spaU|l+o|L(6CXcO4_~$Y{U1GWHk3X)K#H8tcXaBjA%T|~Q z56p*;{@5~$L0Qw6U>BiNW4pl=0ZO|j4=#-rX^MqmgyPi-&(`- z>fo6hG>zuXms-sD=d@N{>keNQ@^wr1wkkJnS|8;KwsuDJQSG_RF#54t%}S-SbBRx{ zu}>>rVE)NG@kyvB~r2eyHMe zB@ipGtucDMY5h!2A!;E+QzDp}1XI3cbyO(uUQ2XYV7}IJboa^lypfabsjD+?T`@W> zs$aF`+Q4IEwxQnL%lChAGq3zV;ub~H6#}*YKAf;4`2U1JqxRT!vXqy!f_(gKW|16HtHvg^s2P9jq9o?g6`Ru>dWobt$shc0Ew8mW-J3xcmRkK z0ssO)!vGP25rH<7I18@Hgb+MSjy9|EiHPCz6Y4_4XDwX};D&Mej!dExtw)B9pphVi zvdU}u8cK3>a>`P=&Y*O z5{(n$$(!k#G*62nd1u|;#lH{*7l^bcy=f4EJyefDOyTcElJ2kPIX+@ zwLAs*Az(e9h>VKNiwC4|Qdd|soW2PyE8L0)Pe;-+zy_$&-QHs$`pjazxpaP(908~S@5f379I(Ag?y4zikU9{^Q zaYxSpA;OeRjeR>;HiYtG&)PpYoOV-)bnJb0aL&+P34<~#)O)O^nLMsVw2e{ojv47- zk;c*aGNWa>=37jS9``K>!je95!#xR+!%#46nVg6Pl1$7%v}F~d1~J)Z@sVh<-}tfN zh=EgKmH}zCU>_(E77%l;=)f}$27qmmrV8tp=n_Y*BLJ?Xx;?U@q$QiD_}09!(4Q$I z!~IqgCRkG3#Lq&hgx&~6rx>p4u|1In6MCu(g~;)5wV^SSPgg{IqS_jVR3`|o2QKej^xhJD@3Nti`5|1 zf5sle0Cab?KWI_{#F60C^qzG1edLOgP04ob*LKA~?bOIwlP87S4rH1IBcD0GDN5YWW^(^&5 z^Qd-KA^X6d#5^3X-fM$+TNWoS;qsmA_e;qMPD%eRu|u_QHuB$`nh2?dEXq~yg!(01 z#OxwF$rog7pQR@f;3fyYYjN7lUjDe5#JO$ALPXft(LoX>Hj$$aZf77Dcv!%&M@~e` zMbu?I0W7B=DMbejSWl2Sp670>f z>tfwvPd@ce*2+3jI5VSr6U*}{c`gZTo0vj+wPS@5EauI7)xUe+h% zkZXl19A%`w@CAA_166)(ex{IiIFi&htSq`AmKE@7s55~G@eSpGk~m52HU*9&8Rg@A zTG?!ixb#bs15^4@IxVW+e7p~j`EVwFIr5whuVNL$%0au#YGLG+ip8NZqZQq3VHK8Dwq&m&tQE)7!{+derve{sOf^>89#-*3;YS$Wrpm-d zq6Ee}*q*)1v21R{c#%%@T6^R5UY1Vfu~nf-=Nk}#HYWEI77vdvJzlMmIO$wC$~Fio zb~S!(Jd{E`t-AW*ednq3&Vu8?$2nO66ohWzZZ%QZ9;A8&BPP)&foqR=DH#zS6{=6f zPKYZ9M9Ut-KuPeVNpgNRn_dYGA~w8)ZafXcRY8K)BhV=sIYFxQtGyYK5#d^-{6y%K zOH4<07#b3OFsX8WHnMmXC1mgyfD6e?B!;pXz=IhTh$N#I{{LwkyD$6$`;{A?K>H7= zrB(j20J6{6gn~}Aom8~IA)Sn~O?KUoz9eL_M-_AGBpR^Y*ydmaia!XJ;|1|W7T@3y z4}JNHYYhx)jMXdNG{t;97`gpSx2t{#^A>|W#AQhK;WWpasIk0`7#NnJ$Bv$gy~Di8 z5D~3hWc4OVf|U4IU3FP1m~qJTQo~L`VtCoaIzG9gsuhx8t3F5Pl;v5q33XO-YkPo9 z=6#$Lt2~hrHCal^BU6g4FB9{NHh^?U1=^Lkmu)Jhn%4OrNZUsiBbO-?0KC3Rh_hR# z<2{ihMxI_Y4TftvQb3Le#N=~J8c2z}0BY7Ks~u1yq8sg;Oh0uE>H~CkNRpPtFoD_r zl$78VPfR?|4Y8>&XnN**&^w$P5?qkrFDygNhYhJJq#&;luG^SV)i`$;BYX_jg59o7Kb}urwJ#+<_O&ai(*CPz_ocxDY;xB%KIwQBHSl~ z;}p_qyUw>2&$g3$vHeF@#CC}iEYjnWU>0HWw;oVEKenQ5J({PYX%l57X&i)O(vJyY zt?g_y6<+|CE0iq7uTw>0w!1Pk;*&@#VdC0B>YE}a@RwFc4yn$m9tb+Fyp#Y{m`wK` zz@M>;zM3{#=*${_3MncE=Ee`uY)s9X5E>ANa}<)WZ&gvM=`f@dM8EF95z_<%#XJ!j zNUXJ0Pyt&9C=H+jgpHAL0U61iylA3DRo6gD(r%=AYc%DvF<9;_j|nn}CZ@!YG@2{o z8<2^pB$IwtLW`+^sSPB-!11=RG0lR*5Y5|z%MFw7WgWQhZ7->Tv>5O-FS--hy9^hK zkB5+R-pa+u4~R-2jF29DgJ^YnWSY79BKn-msF^ZG|jVIbXsMh-Bkpv-tqFvg@Kg}!cUy(=gDUHUD3=1PMma}D z2*jEko6&4#V8B%(ns*X1aj1Oy$Tk^Ih`?lb2807=8~%_g)V!hHTcGPy;N;1+ELOv! z`aq4R9O2HVLmlU;25Mdh=0t0t>sM1Wn`(i`kU}G=dR7vzP_7IF9wM{)PL-T4^z%1F zts=@oN>$~#X`1uI%D8B5saMQ}7`5)f;_ftDTrN@*JOK~uIRic7L;>dC;zV3Y^(=Z@ znPYZu{muw7r4Arlb}W;Nl{tj|-2?`+NEFzJUmtUXYw-EyZJ_kyZ9TdBY-wfD$)sz3 z_Cp%NnP+onyAyzE1w<~XCbi0=D0$(OcY6K)&%C$Ikd6vO^knj@V5+e0bl`E+U9yor zk0GL+)XuwreCMYI*?^pa4t|dkSVzb5y%^Bft)?3(jShq7mN#vGz{gJ{*xfT^n9EA+ zWBXx3`4qDf?cnAKX_qlvS~sIfwKbkCHEK9#_zj#{mf#)(Ggwc zd+9{qfkscZ=#<11<03bC@GMLL@d_s#ONfP-0mRa0YZRt2vo&eT8Ct5F#QGS<1%0?uFesrM#SW| z83@H=2ZPA>R#oFOzLFM5sJh#ER!p!h2(s3#3U>-30=2cganCn_^qaP7aH^PbKS64D zpmGwU)>*z;K9!44Seq)WLeJn!u{Mp14hDt^W6D3|VQ?wk45vh$$nY!mSiY?#Ds)+r zdj8_Dnh~y?BR~>E7qpZ#SA-K0bsSVA3V}AO?82c8`saqcFy_hLA_rWjXTy7VPNboF z0cQQjj!P5}E}s_#qN7a_s$t?(1J~7Io4zx*i1My%GJ)jaa5^@yJKJ&W<{oEcvAlE} zhFW)BWyeQ6p_M9l{HL~Lj$dWbZ5P(L6-i5!enny(CY2-0cAKz4Q|UHrYg1rYF^1U6 z9q1HB^VUcL>d*p0>L7puCQ?;N&|St(DXwi40I@*m5-bM=tVBkO3e)I1B9azsWmTZ$ zyjMS1Ef#v6$AAW@JHYA-nzY@(Dcd{FH4Mfg*a%%2>}oJRlqwEDs#>J+YK$djKsD(R z)f0|338slfc}h{LRs6c*;7#5h#s)ZupvAP*Z;Y85wm6#*vT77C8=rVj2Dmzq}^6&@V@t~D53 zDmtk8v+tKoDJ~S>8p+BaT#;*e@4V;Sb7b2PdE8laHMJt6upYOa7Y@Fm6UJE-LWAn) zsTO4=V-Ab=wA1@3&OgWniGv;=p&hQJ%y|l_nV#cAa#g_;HMJoGT$*j4ZUaT8I#q<2 zfN`Ki)gUDS^41`^Nu^`VI2vK^c@Q4Mu1LrTbigK~urwYL7ln=-(De*86v)M%l<7%Lfa2=6S=v_=n(MRiSDd^62 zM?6?OOw;6U2AweOfFLG2 zAZLk+L8#iedq=`KrX$CvMvG?&O2`>74W_NN{~L4~^LHi1hLg7BuBwTQXb8L&DOlK3 z^q^e>0g4DTM`3UxF1?um)b%!4w38?kX|e`~B4q^@Z!FZe9_1`OzfUDfd({mIb0-GP zqUo`M!i};IzK(jT3q=+lO2GW3_w=N?=bMXpK!YfO$VwKX9Z>+l2L=cL0>l^-ROBwF zWK@U&3%dXW02YE^gg^uakPQF=EJZ*7+oBl21k=cZ004j{00pEV0x$$7*nq$Q52&m$ z2nW)bP-tj87@J@L+Eol-0&PT)0u0c`fB;|0Q_Cz;#Sl>^m5x+VMG#Q{gocxO;UoYJ zh*udH3k1S)%m&A@iG(tYjA{U%^I({h764EfzzQG`0HO!NVTnnHut6fG7#Rp0>yThB zB;9})h5)J7H~PACIk7yk&63{eEm*xnht10=06*AB)O#==lrUs6sQk+M)k` zb?U%al1XQsGV!zGU57$WRF7D;B$dTVsW5K;cY&%+Y63EdNR9`C0e~R<0ACouD1Z>c zurBii(^#0f?faB9xCXnc@#~-}DHxRw*Zk3|s=70p zDrkNlKbS67`rq%~Y(Pk6V=QhUFhT2MP(%kZJrXevh=@;dSf--wqaoy~d~l?&%Md^x z1weohXfT*CfT8wa05u=k$bluVRt$dfMtB03gmbH>)$477PTI}lWgU%tv9F57x~lei zXq>qswjs_4@G*U}vceubxr)R5AZn4lcqWv<*=Q=bcF|L&qU{#*C69yt9e*9leG-cp zJt=h-nQv&N30XiCS^@aNaJXXPbT(UMA$gtNb&W1>Bb=10RymSLMF;?04B!YjfG9H9 z0*0he6P>D{0UTVFe1KkFoPfc&xEnilmEh;D(^wC|v$wtPgLxFxlVgi`mR!o`62jCpv)43CmmqGFtIa2TjhfK!r&OiFUT| z2Aq&WnD(Rh?xGM1mh$!Z0wXyby<09jsu6$6E&#iyIO~>R=`Z*;EODE&^u2iSY$p*C z7GhDIJfNrd2%uawtgt~6?mc3Np}uKrIlUF4omokUn6!* zzebIgFH)rG_xzyV7Bs)~q5OixVkb!ty5vRzQou9~l7kLWe*-vMMgXArRXi!=3cMVhph|97r>+OF?^MKUK=%ix~^zQ9!feO;Q}M! zxK!d;wlcYw+}lWQa5}d#5W!`og-wc|m6ea3mJ5wZ zOGqgFc_5O^j~*O4JDS4O8dJ!@hZgWn%rSZu`!AHAtSTz0N=%Ivr7_2lpwrnZ0VIRV zmfP|~J+^?wZ+168MTwSm#R~^;V)9{?pzaR-(v$ww>{<=Kiq|Cm+P}ebjAN7UQ&dNO zVbSnkOy3{e$4<*$kGQKg9}NQISx(;{WowW~zCrz%3-aC&@wtq^=I%={-v z@)-tBZ><|BzH&*+3LJ{`J#z=8MxxeQ~S?d~`PKU`HNchJPy@-S$aY%}1ptTv73fyOC?$AYnk+Ho&?<7W{~ zyDVJ1E=O&`H%aBDlaPFgj*mNwG}DQ5GR~3Ak^QBeW)!<%{tO1e8Gltj20J`m5+^F@ z^MU*dI$%oixwwbW-M=JR8pD>F^k*l=)pVL=x5`X-^HSnWrks&W?Og@BojmIxbBKIf<3aXWCs7m{B-0f{~D`$uiqn zxp`#)dibZ0#sCEMxoav(vR`w}BrbGw)QQQTXweamXH7o(n4}9qtQ=egS#PEe6q_Kt zjDD9AX7Xjm?6o$e@T!F)Uai)aOtHv=veK4avrtMJFBfrL(?gawV=z|u~ zrE^wgK3Psv`3H0dzl)6W8L8ME38-=lepesDbELL`0pWV|kv|CZruO8teZEVW1JwTHF6$>#{=l=U9)L&Aw zIoz_5`!)~DYc=@YyyDj(t+e2Y&Qnb2@(#F6{JAM39TH9sDtPs`vR-AuFHe`2DBG8X zQddX(Zy4zx9{9LVi1F8?w4Vod!YJtlKB2Bv$;^R=CfEzgvn}%zz!-3D-_*afmKEi{ ziH?yT3capn&e~;QK4mZl92>Xz{Sww_XZRF!C#l8$Ae@nYjFC1Z2^ZNmaJE_^EB)jK zay&#fOP&EHvZdL$Ak)K3IZ^pg5-xC@y%eQf1ykAl6EHj}|K+x8Rm`or202F%!+5Ua z3)|6mhJCh(rIuKtpNvF5C5X4XBG!Q~2U+dtj&7-opS`Nmk`4s>99*@O$Ota36rAPf zMD_8@X<+JA-V5gVRB%>J!D%~T;@NdcJS|tC7k1Qr&qDOEEI#g6aHycHpO*UFWw#S( z@Ch_Cf9O%1?raj55|Z*bg}oW<`5bj)SkWZw<6jWaBPlYeVQ@A%b+IUi)D3r5>4?2- zJW>#qLEA(ulC~9;aJ5zmL^L?{P0zlj4JZ(;Nr|=;s3lryFbMvJS4IHxb`l0M2(G&l zK$5Dx8A>71Mi!we$W;W{O^JxpKEx$uquPg#XR zC&TjC7cX6l^uP@FWc-xCMw`xtdaZ}k#r9*EtWPK}H7%4o=&i-|$B@x~qGrd)o(!gW%A*&pH}3Q99tf(*+nmyf8nfih<#0u= zOi<{5+cc0%?tgkEwoBUj9!i0w$sD}sCR)r*^tC1-?*nxgg=V&UjxMs0UkcBNoiY`iN?XPHv?N5bdP|<$2#kvS zMgt>To|OozHz|4wgmPa7P*Ar8l8K)MyHV1pXrpKKNuoq2u-lG9A4OKbaRbUajQ|S( zZJrl%h11K`oXDgz$a7ve^LAv!*et%qF}cdmYDA_yqE*VMBeoZMvf`zQ8Y6k-W2|48 zo`Uk7kQgGtYD`?)h~7;kbU?I~S3}7MirEUR<)@5_%~?Y(R|n{~O6!%ACnu6%Jw?dz}>WR_bF4uLU1BNyk3s zWF))97OOg^+K*bGub8lxb*?$p0+6b~M$@E{kB_)>AREDIvzu$STRV$8Ak}r2@Zx0H zE!6FiscU>xl{o1HVu&_pLd2~5FeRyRBf1^79g$SsWyH4t3p32-i|Jfh^H&Y`zYrG z@ObpJ;bmM-_hjck0XBg2QEoOV1XFq}9O7nBMe6B!OMTg5lF16r!`rq+Q-_a%cj~W0 zjrn1otPHw`Ot;?@q=jpTWz?YBTpjSMwrpyEqzf`7W|7%+m&|^nWGbB)(h)_`5k@qU z2qhs+(ZeTe1OZgJM}&kBqx?vyngTTa^UwfgPF{kD3QD-yM&e1b-o%h6Mb@{WPFOEM zK($ifW69NAR-mX?@>~_b#w-~Pk0-wofJTR;6TK%~n-yvej8n>+m?b8Sbxo;zND#n7 zV9`Y4gO3)E9;@7Y))Y1b40nNzkpl-L8Sl)__2h!a9BoSmvS6jXbgCN=A&bDqi$=x+ zY-^QmrCcHmwo9^hT=ZW`wmK#^CbN_V5dIBZgF-z*w6+Lq9Bs-&^^q z5>p52Y;hGTg3V}-z;mTSmW#scc>)zc2FQvFIZ>X)c%`Rwq}x%5gdL~OJ+()Q41in( zkH&K{V1(9NwG|1|28m5PHdqQu+b77k-JYCUrkhb(jX?yu4mAfTcIaWhjJ;;V%fJ3+m{J<@i~gy5K2Vtv z)ofQ%Y<%fK%aPy22~OhZZX7sc4ml{%BSNe(fvTxx0ib&$M1r1XiW??6|5PbOW3qw2 zKNse2jKtI{s{)omSulv9$ej#mx6F{*Expq?JEfnpp#Z0SYQk2v)B;T>F) z!9DJ_xa0`utwJ1SuAnj-AXZ^9u$*w>Fa+5dh|^t@sVRVe>vrY`ZIyMPGROm`fJm$X z4C%$WGOV+%B@CxZvI03;qWnT=NKaevFWqv*mVf^5V$=?6CcFicu@_Q0$6(-l*Y_t~<2D|cu z7}`DAk2|BED_X%Pb@jY^8)Pa3J7DBz2Q@qW8*86Ug@s8T0Yf0(vqdgwk!UZYnuk3m zP6We|8A>cXuuK2s_O>!KL_X&=bBwaC-Qp+V}AbZKLuwExr^K*$)F-XhSdIG8Rd z#v`q0Xiw#e`MU9hs5T+jNY-qv2QSQZoGHo?kHN1`S$J0j|h3|OyLtQ?*ix;-e6FO;z8pry1z9y-VsqV$aC z-$Bw8jf@sK8XAzKXkc;7aj9IoP*?ubp)U`r^Wtv>mnE%LY{-Fn#z@T=z1+f)-=ye# zNm_w`Nd4h(hI0B04WWYMYnG#O5l}R}i3(q(-IP9GTkvqCF$h21UAlzPv!>igK}d5AV0{S1WgyB-NPsf8F?qn< zGAM+cxt9f4JI#`;YxbbIB1XGNo%$m-bF0k>nQ}-#TY7qKF~O{Os*n+qM5ToVJaVkZa2hA*3(k87KJ7!TF{W1 zc|~19tPN101xF&OLY*hTfS4w-t-S_S8z4-~Z8qQna^ZA`C`}S|d`JwyzG?LnRLv$| zS?%SV@NJ^KHTHV4|1QsaeX#*=v0zM(CkDx?Zb996&1WpTDKw4-zFW74!gXhBFo2i{ zMHefvY4ZyG0NB;XepB}pOL!^E?*BxpmxVDqZnyz2iwT`8s_Kls9daxm+0c&$Ge^DMvQ{z1IUMx4JJZ z$kYlX(lJ!)i=r;hvy)qkNt<*Rk;`&so~Txoq8_-Sd#YVw6j)GdFOXzBYp*?M@X|7q zr9V-0^t_|uB8J17lEAH0gUyGFA@)FF{Mc4`Ig7;tuR?|r-U7m)Snc9vZvY;+h;R{C z8z)m)F#)ReWmOR}zCsj6e|&ueuToTA=9$xNR5fUt0N5}#(66g`hFBFwhA6EcGIw|b zQ(RqazL<}S>;sp$Z7k`{H|A`qTMKn!s6^?}&tzkFf|_X^>J&k&u64U_E%U)+I4TP_ zQacdINz{b_H<00^Q%XIOdA3N`);mFJ(=pZz9dX2^^JkBqXjZmK8jmb#C2YqBc?FYy z_vT8}z^WQl2&lnxm1Es`dZ`_ISv5qDk1ZeM5Y{Ifx$jY+1rTA(X*3g0Q{Cz>{ehqt{O)%2!N9 z;$0B@YHcc%T)(8FoJmob@BZwyb@+oQ%jK*M6v-uWT!(V;A{i>Dso+L-;3-JM=S~M_ z^&1pGT7LyWa?)Aq1rXa}U;|VVVuUHF^48lJLu_|6fM7yw44)7LMv7NNAyBF=#4$xg zN{0!9dw-C8%DZR^X-tV0@>b}>-QrZfLa9=G7xaw`raU5;*z$4catoZv0qGe481c^@p!0jSb5N zuPlQj44XU@(~KB z3WxgB2o$tPP%PWYLdd2VQoq~9|~kp zvDShZiqa|s1)%`YHBb=^F@Pv4f&oCN;4+i}JiuuJ0H;7qbPx>^##9Ue%TuTm0LO9K zRGD2mXs+ZbJbScx$$&h+I2`ce8+d$*yy@c8QaE|C?wNK;pM)AOO>B$k?pLX-p-5Yo zqMDhz`Y9Dcy2@f*OvCk&IktK!`YwyS>MlrEi6&}hobrCikB!3(0eqD@pwb9pG1E`C zglGs%EeW6e{4nsSmw~^R(d}{qQ+;3m||deJVD<{aWQ#yDrp7T zixn?^XXU|6tf`jpIZ&188QHnY(%A#KL<ChPPyM364G_=-5|DR)qUSjlAANsK zG{^~NlzH7euh^!&)vnh}HN*WBa>sDVlPr7{2jtGteKO`qE~2KtLi|7^Qj{BDOKAic zgcLs$tX+}E+A^O9-Akf&5Coe#J}Rl7V4YxI<-lL^5Rd3~;z9H-hCH*`l3W6DPuY|s z#wN`FRh4CzzAgj-z55FS9ZRhWO;%I`Aawx4LOcKqdhRO$YiH>O|HtcbFf8<|jpYp_ zKx8ir+=# z2>F`m2R2{OPl|X6V?PvUiG)yzM2}Q<|$Cj-7iw7wgiQWH9Eof+a6Y&sCO%*XTQo?Adi<@Lwrp|30 z3U%l;x|v4$I4X2Y{VjexnQ3jsZ<;AAn5W4!EqN`oUxiAA9tLlc%6Y+3ic=)#l)r}C zXc~M=Sa;l$3Cs_yDHL(b6lmkEz%@gTIR0Hq6ELq+L3g8lF&1wW_ZBxf72=2aXZqIj z^&2+P7ZC1X7^a5{;QZOx%807`64l!Hh z)MB|JvsgAX&>a76*Dk{oAI1M*c6dQ4;+~q%l@+@PdT+8JWW7L@-#Ye=IQQ!keM!;M zite5Q&PcY*zq6s@=(C1;yuH$q01?c7VmlP8Hv=7z4uNrECTD_qqCs=ZVR=KP^q(Kg#g zwaQ*)Ipu7JlsQuD$}92jEF!N+KL#B%4QBWWExnSC$=j2p<1R%+k4x>l8sm_rbI*(+ zlR4J|oKqKdeoE*e6Wcgy+aPJ^glaKO(Zw8DEz!6@9FE^-v^nMB(ZN5-==;X>x&BvU zvZp0za0&!z-^+@}|ax`)7XZ|^FN%BU+o{aFO74iUVD0WbN^`e7WmbQLTYbF8!Ws!D%blZet|?Zp5sg$w>Q3zj78 zB*m-juhLHQXF@7qO-C6;T9WBJkNlp+;v7=?Qa|iJTq8>w*;>n5PF&3tnkfM_9C;$G zNV8m+FU63LZ{;lVb`0IoHWr&nl|k)mF@kn2t#qxb)uRJ8gc$b7KNi6gY1;BbOZcFW z-!2p1C%*fHN4xG9h+y5ANTwgm`_XK%$=&HaTPwuu*5u!kY6X9irhwrkR<$bhclLcBCyj-De$UD;gXPe z^F>!D>HJ%gg2H{hMn2+~xC|Yl1KQFtg}mOT4$7mAu%(StnjT%E$CF_2f-oB=x3E@2 z!&`+Fg6y6>A9yiAbZ3mS_TimkYIPqk%@;QCVwJZw z;h{@eM~d=ACR^TMO)x5=i<3D7{E-iezc%t*N6}jF>n(w<(M#p!fq!M^juPoeO_0tz zH;CK?h+E4=g5@I?ia99pyt8CH|J#}Z($9q^RTdsevD}3>FXAG!I(-%=$UjFCu$H>M zO)56*dx|e8c`@N^OCdf?t4I(!Kd~8rJPT*$!BluHK-H2p^(jYUe51=j_;5>3r9#m7 z-lAK(st6wcrL3USsSC^wf+<8iU*yC)38 z7^u(KMPTGppG=by>U8~?DGz>ZKJW~s7KH2k^;jPk&3o*~4Xpy2S)C`NI68r_ zY{E5x)W$}3vHXx!-vWkG&QoRgsmLbubGK9!ps8mkLuXmln)A(E%fV+8KbN2oT*RNW z7TA2Ss=iZ|&jt9L%eRbU;h{`?$JVOOy7efYYq=T((k9jR6{@ZjpW=r}tCZYyHZ4evCpwcc8%UZXHgGyqYkCWTJpkOko;M5hY zqhR7M5qQF{LymN5cX|7byG-DXO(YqYyCePs1nZY#30I9;$jdU%jtqOU$-()d*v^&j zE@wIh%BV`mF~ui<&Z~mIzt(u#DD?8Xl4wEBHjQZgT962j<%FAd&+a8C-Mi6?#~$|) zd}a=4wbRd3AhsmO-7j{~jZBELy^P`X2Gaqo?W6skF z+k-X?pZ~Dj)3f%0Jn?u(R8r_-Nw9omCc%3TsA{Plw`ThCD4{n1tyPyB8PTID_Qq5X z45OF0^w@pAJ>OKQC)DhiYrCpIFlyOpy!ed0~VW=UArveGBHJa zdCfW2p)ShKhZ``@&DH7)-2Gh9Q*6M&^|r#fXB=jsVjJWEFi-*`O@IOQK)5Q^0l4|} zkZPbtz)x*tW~jS;583b68oyOYUM*4Hb4PaCBzc&OhZjtT2wN|igQke zp$0T^zyJ-&G6EVzMxfkC%cMKVp-)ug`QXHuhhy@ z$+PuX>jdwZWeA=4Vk+2uVcJmGhNR4qyB!Kj2&#&bw;Cm`B)qJt`PzrX<@6;YKPACZ zW-8efW?NBHyOJijCYI@6O{)?k8GuL~ZrCoDMg=yhs0kEAg^0;)04ZP{N+HGtMJ-Qc z*dS}r@l(euBG2-|7^z@L5@X|C)>4Jv%th1^PPA;t!9^DGj~(`8QmZi3&yZA_3X>L; zWgn>nr9+dk67n1I;P#`JY{7~u*d{oRx2{hOC5%B;4f1MFE%Z^yIXe))kV5;sD#m`P zYYvHE>y{FZC^L}xP)P?YX%5tbK!i~f=+H(h`48#b1^M;Lk;{#Y+cTwN?9yEq5myBT z2A2j#M8aIwG5Bg(z@EPIKe}}RN?NTMLbKA?B@vb`D9Y7B*oenUR8a1aExI8_CTu4u z>BG?{&P?5D%N~^Ho*zc#bFg#XzQa6Q^mFq~O{pmu^Nwa*EhyD>=&5?A?k=bH-d|)k zxIClp{8E%VPlxzdig|E0Wn0#=qWcY+;cq?VPl&#B&@0Rg`T0P< z=?E2KFb-QFL?jha-*=GO8b`F=&W`0XWSHj!+X-VAbdt*2I$zat&lu=N<+zl}`qXZY zUlHzP2HgGvGkbY!n+14#=ReE;7u4&;G_xRvUd|=s7jfncqdn7|5t96L6Hk@g8p)^Wk$RlLh4@FQPZn1vUqrX#VH44 zW@1(!-@(@mr9r7tqe}aV*#KeVNcDL|iN-ozTY72XrGj~*or8D zR})}Rbj&0tr+R8;i}QELm8>10>v~2b=^mux+P3H}GZ$Q~6p&{A9gYzhW_mmt&;uJp z1h;Ew%F}iO(bSs)z=dsDiqRwPStL*$ zqxCPrD3J?}nvM)fte(8VgRL=1+)uj<5?tw2J5-)*GOkGkb(N$SCMIDU-jSN}!3$BC zugWh4B^HRues+bFC$Msy5c!Ct-duzzJb2exY2H{w;m=SlMD_6P|LVzTeG3MtmTi$F z`L18MmO)H=0|7t^A!lESKMe`QuZ62o+CG!wu)Q#u+fzljC@QS%Rf6gg0U~3`;`5&2 zHBW9aJHV{#2?tP(@mdK1&;*4;0tVVa3U=;1#zaI)&>#f45wof&f?PXTQOX8OqFR2I zr~wX}4^yCCiWPVXdlrX_*>NSBrNLX5CR_ghESygY89<7)hWd z!DyULRO*Ds0X;KC^%_RcUo7>*cKgs{vp@WWDrbtNn(KIWtn|u0F3X5knm*QfkdvZD z2J!}?&WhKCA#zCy8)4&ad@&=jG4cz51umijw^>tEKx=?9&P##W%_P>GSH^aNt2OR2R*R5Flk_>K#-xBo8T#2YHhgjh(l1%zX>P#e`OpO{EH2aRUvd zGIICi1mGEyID(3HqT^H&^Rt+FFLI7jc}wTYx(mU=Y^5l7Y@^A2g69vJl)hw3?Ej~D ziH}RwA<7z-Yx*vVQd7$D-g%JOO5!3gSH&;tb#4x2P;^wjheoa=ik`H7EJnVK0Hafhj2KA?#)J$YDt$M~*h+m)EW}c) z11q0vgT2XADLS@Esf3RcGK-0UDjQ-N9Zo;NQj|8%O(l&eE=p8c$!2QI88aYe!8CSR z?wLxCqYa~^vYHQ%UpEGWkA6JNdH-@w+Qi`Vh~3uJBL#wrQ!-SM|8X1;c1xnmVaTij z!i`<8hdpZFT$zcVwhDxGPEK~{**2q>ESYYP+_+;tM3DP7<~@N%yMPVm70qcAkbOh7 z&}J#VU$F~djW-6BI4T|&*uy)+6;TAHMbflZV^Evie;KDRq~|o-lNQP8-C6P*Do-!z zM-+|KY4BiX%yT4J4zTMG%vGegf0Bz7ZQ&4mh?AW(^0J1}^@k2-WgR1Jcv0q)DV~jlPwYsv(Q>t7Dr~dIn^T%*O{S#Ess&_1i8nIpmjrxUGc58kQjPhV zl1fNLAy&tQAmqA1?H5VhwHkif9a?A}%?f2&m{^B-5m%(=VbN)kveM+9R@MSN@UW(V zUG2v4%oiWk{vx4wm2@E(R_9)oECsHv{!wSANknmPQ;{$PwXiAfL@+F8H>Jj{8M{eA zQGV#w-icdUvdv&1n#6FC!lHM>@wUxisAYPfZwdHdy=aIXrJURr?C~f{#z5a0+NzCe zCq?Bp6uyi^4bsH(yc6#>O3SpN9XL*;4Zxyo%(rLF6{TJW0W%Oi^G9SlD$qnX^a31JZmZLG{tkRct{$q!gw7_PFbEi&GISICk@)TVowQ0k# zKTl|^N9T{#HS|QVRbS_Q75TadERxhaz}Ze}zrjbj1nxc~PpX~NR^0Iwu?pvBN`j9Y zrfrUB*VR<#?*9Qi%|39g=oLHYnEVcBuzjV;LaF5J%H@7cctr zJKm9XpfA#*I5?!SkPHjqG)8w`Vo|1JAWzV;jzyVZ(rZ6XX)R@I`T3=;UUSAJ(t7@M z8Rj&xv2B!XAD&_klFpO1`))Bo<(jnQvu&3gHc{sw`nm48$<|t1+|n&6e{tp-Gx1|B zon%r!Ff!9A!8vaSb0@A1XQ@pFLBUTGRRnfsY)plers!_xeR0IO zY%jn|s;MYq#l(2z1t$gB-9s0GO^ufKDVhoF1Gta1!08T!;@VJZ#L5^*}=JE9|y6gtX<9>jN#p#QuR z%+EpZb4Ydnv+JD5jY?>wg>IaEgcg9dE!7I8%-9Y4ZwtU5VTJ)&CzM5gcKLzyo+2K}#Dz7gG1w^%aJ6=8IP_!Gw7* zfC6Bc$ss0_x-+3s4Xl3oBFjkLj$74;YuzYwWgaUoElLRkO4b5QyFnnj7E`CFAQ|9N z*I3$bPu$y8oFEt!_$JX>u+T83DV$n(qTZ3sRxX*~RzfH zl%wi%QFkEcZeP5DntHuEZ4Y3koU8rcOR|+J>+l&5CS59LJKV!Lt1bb;lnLDu3D_X*>J*sabcY-V^s+=8-in_ZiB&tfT5Y!YLK#+tCi^QX}Od_yO zFqoAGf+QvaD3(^{D8!sv*0MnmGxD1-fZ9!DAt8z}stB10N<{go1~lLeGOG141e zx0j7NN4)Y3{&4c}Hnrr&Q+?8*MVnSGsy=iO=p(Kq%j}b;UR;#qX}>qtg%oyX(rtph|pD0GvXK8a+O6JsJ18N z8-4XFRoIJf`3{>3R_HD2dcvxUNge7{5@EktM4%`O4t=RPYkW$*D+=GrX^Y44JL zvO$D+;&f=Fj>Rr2DvCYi6npk^edabv{Bid^^&Nd=AaAf-xhQ6jG$fHnkC0Q`R^2n^ zW63&>KAd@$c>y0VDWXAin>bJyDtGzTK&bYvm>Z)tzeYuKF;$Dl^4RogK>_ukBGJj^ z1BB5PdU_F&3dpu)Iv9tQDI~iP_`FA&lEV4J?#)0;CJO>ogvG$b=r!4=_lCUa&bTyZ{^FU>FfQQvflQ&xCVd`6+8f@-vX~{j8Bz53{_lOyp~-Eb8OR#;|h_mlnEv7Xly!XGIHEj5Ws*0}+KsSW`KfY2gI zoAbdm9^FOfD516t^a)_)zw%Z-JaWfK+c6>V`$OSiC^tm4QcR_^#|tCQT1ncnC0>yd zi`42qqLNW3@PMfLKKZA zKyebvM7kdZdz-rwhry5dVEn=Jg*T>+ihW1k39!dD~k#D00SEEDmLmmi~h8S*q$JTgu4E8l|K?6xp1z z9Yy`ZB_f9=M^!=oUFCVP?^MM5_y{3j&YaO`Xy2Du@GV8Ibdu>h$ik})P|66fpe8H;op8yWHF z>3r*XM3QkKq)jW9oQI1a+d~JKDamJ1nFwgUguDsotZ{G|IbK+&`ULn@i*y1ia)9m5 z4iM#u?}Gury5KS7XRjD&@ocqTK@*goOC-cg+L_%ZWT%|xp;L#_cuwS6kt$_Oh|U#4 zskeIV;%=RIP>HkQRb-fnd!~1jGEQ@r$us`XK}==gMR_r* zbPVDD7Euf&2UKt3pZTGAHL?KnH3tSLo{6%cHk4MbP>!UStN_I&DJw8?q|2p98c!l{ zWzZU3y;tJEJ1*PFL7kdYfwDHpMOtgaN^CGZ45oiCY9l5uVklfOS@ZPejc1RE!q1e! zdoI^_s4a|%W#DU0cb*5h>SP4Wtz@N;#MaaRx+wH^g&M`prq5dfAmyOS1Xw_dk_7`@ zw9K&iu4O^ZmV8`AK0SFWWj@kYTuFQpkPI*bo{Fu{`a{ha!4I>!uWQ7g#u2W4YrfgGkD zc`W409ocM85PP;{Y*dk zOt2d1dC^kP@=l8$#91=8&9GJ#JkLvEP)qM|MqOR?$khJDNQXvQN_JL7sAa-R!ww7i zBD~YlaZG=I8lu?KMpasYq)eq*W&qM4Gw6)M8yA7)8AavJXh0+z&6YZ!gyxBPV3cB7 z-b6>9bx{9Cnte_ZIuk_xxvKr{&s5+ko7GB*3j zw#YfHGQ~ReZb#Bx9oTN9V~Y)wjV+iP=Me zSa#crEu;Dg_uvAG1*nHjj%;#!Y_;Wi(d8UT#=xG|^6ln+xEvsT)jb)lqMm|kt^YT$ z;A+zGN`73DfSxOre&Y<=7%BprW)}fs_jn{!-f5F(cfhHr8+mm`U>xl%;HhqztNqG` z;PX|oa6-%tRm}3NU%d}6>hzMq+KzT!wC8CumHH_sSB3W79}CrF4}@L+cap56iyu~0 zRi{>MSoR5VY44`J3(QQv50w1=nr!XVoY`)Jh+cK`01%6h2Lpu(kGw-fkxTJIsC~3j zrCA61<7~UTk@N3PCd-R$W;Miy5}mngYv6YR;@U5rXg%i?;TCSOmZ61lEK}n&gc?2tR(HkIKAhgN7{y(`>`_m>)7g61Ij@Lm zRiiYG+Y`ni);O6k6x-jtN=3-MgGUX_Ynm2$S#U8@PI6Z_M`LIzYiN-Fam!&4( z|NE-rmRpn+WAw@iQAe`T=2)-~R?D8SMDLj(l_wGMoR95c1@=cyQT9{OLYO&48)4s= z_$mS$781erG>Yl>^$hyyt3gP6t|iyvQ{+Md&w-T zC8(~T_~?KKB>0ebC6xMEYM*1tD5X-64Pr35SwZ%qrxI&3h?F8K3RnQTpoLr6QkVJl zfd{xeX=C!WrFOeW0KRk4g@1te1R04$BQ-`F|lsZhHL}9WJC#GnTR=6qO=)OdlQ^FU$TiFQX#idr4Y^h z9V5W*%~ZT|vW@!AM;ALDKrGg!j|vD^M552QiK#&q4$KI?-KREk&0v}N8;gaBd$?!W zJY2g>)O=watd-9RZp-;B*uuz_iap9%GxgoVQ(~Ps#lF+_x)RBK~AUo;x-T zl9e~koOeg6dK+pi;yTnZ?q>?Ln>lmkk-i_$3*d&t>Jd#6Z|Dqu=!-YV1+ z+$ktQfWaZ?AoMlJk`<7WHsuH3^`}ee=#Z3TdRPjlxJK)uyTXC%Ry4=)y9N~iK@~C4 ziY8i3iG0Hk}_#|9;T6(m*1XbmX(>Ca#p441T&X`GX} z6+GlRi}0gioAr@A)EIlgXmee!uiF5dVTdsSHL1aH^k-uiX$UW!dCAJ-BKFQP1RFJNuY0|ICV{|Z<)2x8wX;1~&IF%^KSIE95*YVYt|c=BQv z+=_!wGl?5bK2p%uN^}2bfih93zl2*@7n)1(jj9YA8EMGq?{_@>lHwVJXQuFaUjsD) zgIED=%Hmg2&p#VkIcBEo$!Zcq)?3R|6$LXT%?yU5-46*R%~jI;)0)&;zK3glT@IK{ zD}m)j`GjN0dxbEWazZkPD7L$mQyFY;P>qIDps@DkB+9(bGv7E>r**Gc@}cwj{`JiEiY-b z8WP}2OC{aQCc->>`Ry?k$-e|elG?uHRIL^}C-|F8aDE<*&PC&fhQ}zGaBhZvZxW=( z7Z)A_;6q7g<9Jh{X8N_AvwYZy`6A|vHM-wU3a}{?&AV;Zc~^%#(+VsOw02hJac^Hg zQrTCcK%~EJwKP=TcQ`XdT)1>SalJPVr|6 zhSF6Ep#i+DK}Hpgj2cz|Xw3cg0xhhLsRFrh-3qxdLV_NkCT%2m?7RuuG&I^|L>y`hjwB;AiIy>n85B<+mW)5I?(@b=mCn*mOslwqx z$En9TIz{OERVNGqhg5E_yl?P#_r-S-T^xrIg(DKf;l&ZW#4xO$pBfEiSeFPTcbp0^6QDd z#A$2f9i|58Q&Y}HlFwkw_mz3ciNPWo&gp0GsZh2Ha6Glgp79h!FvoY_1VL^n-kEqk*89h#=E>rJ%M05;b_%kl^1n zeiI5!{Pw(_9Zo^V7u>tUs|Wk+oZukPJO!LemS7wmp7a=wQd@vI$Dr8|&Sip#lz*sR zYmQUIgh!*b=`qC1PW~E(?PZrWQ5Y`c?R~lKoUYXGcqibwQ--ZFPl;X(F$hDBc7^Q- za-`>~0;;h_aYWXD>Yk1&E;9$uzM+}r2%6^={~6V&{xUdz)ovI_B8y5HJIib}^JH;#KnWS;}m7WU}$`3#lMTnHLsP@Nt8?(uFL1+e||8;tqmF6w%A(YU`|$#&p%a zVa&|g)(;19BGh>FtHIJoj>VRPl9*G5ItG$ty;D@N#DmBNGbv%L%qXBU7?C%RPupMCl&1{Yibk~#^q7S0E2;LVT9N%6au3f zdJHxC5xff60el8Csk;$Soih^~7}1K@;XJaMK%PLE!tNHlj+u~CPO`HzSApOa?3qW0 zCUVO!E6R~1Mez+3YxD?NYP_qO-$Xcj|YP3 zpQo9du09fCNQEx^0fVCuZA< zU5x4S)5x9VrFkYwFF#(yIFU=_DIPY|$~VYfWq4oZAiX<%);hO~4hktUNZ;c51@>x_ zN5>9o<|o%9xLAyC;%ZE_;Adz6Z23mzL<*?!$&9=#2}jBrBITHgn@E3%{~j*5t+22` z8*m&n1oKQ319Pq<$b|j|BA5-<88Rz?iTn*19Z>k9@Ja*nl>P`Yv8$LOp0H?bv%P>D z02*&LFcGWogJNJpqzEViF@j@24}qCTBnpBikSzukSl z)itx;9ShUN2Bpj7P<%Q+^sVzNAd;bTeXtIs*-XT0Hx|uu(+NWs)v!t*yb&~IE6MfOh>Cu?_12! z+Nu5>u3<_6G5#VL1iy5x)>xW^aywA?H7H2=urWnX2}GV*iDVi%RioeqI|B_74|sv+ z+2iL7o zKon^v`&@Yhl4BUs$-N*cjx)DLmMjezH|!!@Sd?WTe=~&12s3z6q(K*pN-NO@{zH^c zAi}yx4X=WhHbxv&y5?vKMf`3$87JXWxV4YyybjN&5jr{onLg!G7eO#%N(u{7LJ#u+ zl>dD~*vis1K1bV$ES;j?K|JzSm$%&}*CJ{gd>pB!hg2KT!3U?ILAXB87kv|KLfnrc zOH5@^(@SJS!nvfV9ah;Mhz7W z6QP}ax(g7ZHwEOVLe;eP%$}Eo9$&%bszzoUqbRFJ&=A&(puZs3v_zjjd2iwiwNV3@ z(tIf5U;g(DR9^S}{q2pF{mA_63_7?LQN zbVK-GSy|!Qyv*=-#W<4`K+>HsV`1JOY`O`FNlIB>6xc?~!9>3{(=ayh`9mDz3lKyOvtUqomF%z*mTpHx zf}E$~R}D5b1_|0*X?WPRrSTyUX3dZz^&bQeqaI%)DCkwd8Le<%!L-0KmmL zWu(Mr5Fz*4R#GoPMt%h_)qtQM+s$oXMW-3iANuSDDxz1J$$Spc-niqQZ;~EZ3OcgD zP0+v)>VMD$PqD)?6VI`YsF)DQ03?7hSXH)$xVx1yMNb7jO7~`PpwdwJ6cg}Nk}l*7 z*=wjX;;4+24)%=HI$Zf)|4Y-f4D9$`vep%*8;+6{up5qlu9Gc^-jhWP~K~G7mE5t2fC__@53?A*g>W zS|Y9{B=9V*s*loq-YyRyNQCv34^Ml|aedt>%4_4CE4dZ^Tw;H+*E7dxfjc)8QEkM~ zk_Pg&+stkU@>rwj??Vt9Yja$T&3tmUqt_F5kr5!HXcFTi=|>{H%(j~Wh+o#2s7z!_ zp})ACF59gKB77cwI*tP+peQVoc64*T!_Dyra?Q6HCJr^1@-0D>He%oMT6JKg7RIG2C|@7U)jX?b%) zw6x(aC!UNs0ia<5hf97C@ku>VbOY9(5`#z8a6lxkpe6DunSSMgiRybZ26AT==GO$i zzOqc{@#{=C7A8YXDTNMHq+$3XA>9#C*>!z>Qs=y*Ng}phEe(^e)H(r8%TNr%ikFu* zkPJqA84l?(&XkgYrMB*Wxk>e8N>Ub@EOu8{r_xkVWy;V-!=mFs9`F?;{S}10X*GG8 z(MpPbT^*zfOIfXxMX=+vx|rr;;8PjAO4UX+O9cfWKX4a;hMk)e!lGk%<3Ow*wobnQ zTgq|bFcY8oR*rdIjtdhZDl#ntaj#zV1Ia+)BS85_g5a+eLKQRegdLmpqz-E3qV+P7 zoa@?&eR5i(es{H2`^`}H)jLBadHms;(5H7balXp@|&J?7tnLKrV84j4N2zgBQ=b;0{!@N00$;rYF?K4Xa?1}bbHu0Cx*RE;{$X!z z;;n@ZMVQ+UkV=?yxy`b;YeM5?ABd!2q7 zSW=&*+z2`>dPD)5;n4_>8Z0s2duRp8o$`R5qq_o<;Y_obG^XNYz*)z%=mw3h)Tz|$ zvijNzDXCJtYMxK|W$gQGo}1GQM@&{#((>EWqGZ~YIC@g$bblJ7l%<+0&Yq37A4s0q zb9*l1=(gCHR73watf84rCoDft8fsV{Wq3#JXg9|@py=vkz+-bc6Fup}cZiQh@ad?W zVCvRYiV5Y|D;mNL$E!f4yte0djCA2~gbhn7WKOArfXGCI1M~X@79Oosz zgbgAJg@zJOFn;{YD17xP@RZkRDF8lYD+Sc<_WLF}1Z;QzQqCLCQYjC|Nnj&l(e zR8o_|W%B>;EPCmpmfOL2g^wyBDbl41wzBDWBX`*jR)ARj3jhp21Ga%i;tv0)yEBm~ z#j&3kCG|l!!ctqAu@YuYzT8Z(sar}zes!xE6mqBI0`Jjr;mLYzTXM-U3eJzVcD3@> z5fh0VoK@4i1?MiflY-IhB2&)v5@2y4hGl-9J+K)vw;#t`PJF$R$~}PZYzRHfjiwM& za2GinZob_5cP$<4kod3Fcjxk%O*5!;Bq!IGeC1&lJjoVTVyvPZ6(wAt`iNQ5EJmei z*k9*I>%L+kNkug$os$V&T*(mhU0hFW5>1OKNqnmWIF=6D0l*Iy&WsJjm8=#AVUHQY zewDRTymApDc8;rl>+nmBq?qe^iT=J9X2TcV(fa>wrkd&s89#S_!%VLH zo4BFxYy&@u{_)a?0vsTO$sDY9f&qSWgOm#Mih*yA2Cuf55hiWH(E!;?J@wXepj1@| z4D@tGJUkk+(crvKOEGA*tGfV@(eavfBA5 zgFlLs9N|3D2B09@$%~0r5<#d0T`hus;Xv1}&T^xN!-1(ahjE%VQegusL=sa63a)v) z=B~3P@u|qNIX)|eQ z)O*hqy2uJ(Tjg~kiBK@;g$+m-R0FEv!a@&$G!j*Wf?$-&_vk|HEt%X~jf9xsF`}|E zv^3c0q8$cQ5i7q((3E5iiboF3h0{xoO&L_vYOt3nDw+(48cm1*A{qby47?c_ARv?m z006LT#-eBL6F{Ea$s{GOrd%alnvuD#0P#Nm4|;2q}=biI9>@njl6mU$>pdgk8dj)KYaP zK>36wBw2IsH6Q9Me`zPeB^0HaAXXu0p`}XWmA~DvNJz+sI|80nyu7&;MV*i({4P>* z<*DPRE$uy;5dN{@o{|JEGbG^xci8kqD}GtqE1@g4`{G7jL{lT7T}%Saeh z?>B5v$^I29D{XKcKx2GD^BONICF|7q5~6{zA7v-ZECZU&muE3$od}o4Ra4R25%X?p zET}0+r2bM_YgD8?vE*(`-f1m-^=W`nP2(y6I&7aHA3)cZy6?7RJMO6M69Q?-*dHW+ zg4{m;AKAhUYb5WNbVF_0&T`G+K2qCTMY|ju;$)y#sODF0>zb$=WiRTcWOi+5^+mC> zUh8kSEIZX`<>$`9dH7l)$aCf#aDBO2^MSL9C&wNWh1^xG9wzso^>^JSUIe*u=!-is zeGG%=er6I>L8S#>I0D&O@AQ{QvYvQZ?>Lm4P_1&$UgbVn6=4!`rTAGx?r66FBGrWe z&7T*td5u?Q1g%sFK#$;Zut;AA1mANKJnm^|Ki}|j4hk;Lf(Gt~Bm6?0zToIhc(pb> zZ9D#in2%Vwdbpe1))={VAt(Ue*MYT~Xf7%EyYE~$sX%u~ZlqbQF|)Q&YQ}>sq>;o# zn}tf@4zx$V92|Egq@rp`%URo{?O9{*qByzJ*LrjiR#JC+681nmr!3`Lc`kb{;P)Nb ze+8x8BSrp8Yn0J$z0|2aDu+B|jgkGt;7vtpd6eeCz%Z9Cc|J--w5^Kwt9X&DDp;HF zaglJ=a-4@_gn_=d;)gQN2NPlyE;%tjrcw7lZ3I6@IonUJTFyjZNb|@Qi=JSW;Z&AF)1=2u9Gpgnm*+W&*HU^;WNZ(zl>#yp*7|aa zA^zwCq~5RFkVJ{BARI{=9(%B^{Q+x1p(4$D!&#h$)WC=GXp6;y`0^raEYe1>LvmS( zpi>1CMur-ISU}z-ly<3_*RT!LsT971Em!3~0x!dunw-!g z4O`PR3@xQT9I8BNAo%--BQ~7uG{}w5M7-IYde=_L?4@PULQOIjk-?sH=_k&zSRoYZW_VH*P}@n0aV~KEHxRja z{8p3&wgUN-*>PNU}%ik17@Lni|QMqHO~NDibQUmEj#83i&?rv;E_aG4E%q4L!=fva1e`=OK>~WsVC`Fb`ClXtTf*8~P(IqrIk^Eb zDI^^;BV;?YKs2e;K&HFv+$D!J`nNSBg85#-`Rc$2DfyBh-^5#ChfnSdBEjPS64*Yb3ox5soIU zxYY6#f|)i6CR*pW(=G-q1R}=!QQ~ME9;_tcfm?ypIs!IP^rMrS4i2vPfD{>yO?ikO(>fLOyU_B(m#I7S85d!l3pP0i}oa{G?RbP%m>X zYI`$|k?@ij3VCMlohK_#c#OXylU&fJ2Xz= zbrz?(+q|ZIPwl;ydX7FSBwQ+_8ctb*^OFQVlwbW!fsIYdLdBoS@sg zioTaM4RZOjIf}m6l`3u!4i~*dyBJp1>85Yl@0SUH6pnj=FJw85dL)Ws?8_ z#y2F_UaD!fCp5xrhygkP1PUb;T^x)hA_ot)Y^ZIsZBGlqwN+LvE^C_;-Va5w*_bR5 z(tt)d7VCndJ%MRcxgQ8eCCVf#@fh6fMfTm>M19AWB?{@`wnjMCEpMqUXn>6!z{8Zt z?LB0NX=dwXkKxjJQ9d1Cd#tpOqXXSSD;Z-lG5zPQQ+@L)$z=-F0`Rixn__CBmcVH3 zrE(Y+o`x$iY*cL77>lSR=6@ujb?EG-TJ*j70;r9|nJS3=ag9 ziAT>1eK}U&Aovh6w2m~|8U{^(*1M4efGV?WLjg(#&Ms4#q$yKDimV2T%7HOiyoq8_ zLXm38tTfv-Iyn_&u!w?=sC{Spje|~HaY# zDR1D@00>MJLz9%%H@RMZW8}YC=E~UeY^S1dVdf9p<@xW6AoP8*E^v+8cE&YI?|3OMn_cZgf$#T7UE4Jxg>fIw$*JK$4J#kh=n8oIRs!VfD?%I zC_`!tsX4ViMt~bvjZg8&jm4m^Bjn6|S;Afpa)B8VR*LCqTL=%%4QJE~RTtk)x*<=+ zB?kh2d229fU?_r88BH8Vh3W_xMu9^+5w45PcQo*jJZS?SfT1<^;Xa3e8R4Di=M&t=4ta$YEbHK~tElzO6#YEyxm z-Kf21%1N%9UiW!QgB^!dM7m7tBY4j-qwt|cOrrEVjq_n?N6sBaC#;UVPl-`vdX_Np zX9z@GK%j~yf^teAV1@+r0Vt-{HQL#zW8U*`JqumNt?YuH0=6&&ivZ2k%x4|jgcP&j zNV8N@MLT*ClduX~bpOtqEq8R7DH%kPfw>EcB=H}VDA2N}+*C@LB?EMrIh$A{^q@i@ zF2;Fe(aJMjg;K8g0lP@D6)YKKerzBXp|}8y6@XU_mX#g{yxyQfBj^19F^?z}vjVRj z#YRL1i9hok!2zlZ3XA0_die426>(z6B8RQ@0Npk6dD)rO&BU1*=q{3o2f6`~OrQ#r zEO>=EVxUAcqNFL5r|7mKX=GwqS?E$&k@L|m7^HQw69Tr-PtPzX>blASV?47q3jlIt z7}O&Il(NaVA)MNgaDzwf!4LH^`Wb@delPGwg4xZlJ!QEY&745x?M!%badcfR!sz_Y zBn6^&ob|~Q$j-fqMs98cdCYb}%Y(gp9wpQUF|RcbeOV8)pS#KuWxcTqzrcGzf}j~? z6L`kyu!#Byk&E~h595BmUPh=1o>BZK9{3z*?n(9nN)qG zT9%o1-sR6m7JD^A3~I4Mg51&?+SWk<_@AN{x40=-(#W$2N48#hQLV^1GR{$N5g#dF zDMHN|_MEHOyfLDWGFcE>?8~B&Q z9djq#&1WF5rUq}~iar217{LJe z9qVBN{G%ySil#3Jx(S1tzkvu5=aM`92v<;)*F$CV&V-o@W72tO3S`1uOZ$z(8zORO3JmBjorJua|d(FB1Z(C$JFJ05UE> z6>wOi1X7wZ7#bI}hk*Poo5mdZRtYc=S+K#pPqd{NtnOL@JW@?y$AL5jLBS|+S52N) zT=Vn!L_aPEtDREgWdyCn`2Zg208c=$zvX4ou;qZtE%`u_@oD7Ome^boLA#D;5fqRB zv-5ImF-sk12`1cod$HVfXX*!zD>VF3fEaRE+bLo*c0vM#SwK|RV&vd!h-`$4h`lFM z0MBtDb+}xUqhl)Su&^t-izgZL>1R9QrMuPwM3cGq)+~vNVHpbMgCL3HDyRWsApE^L zN!utFmlcp+wzY%lEtBdbVe$$tgiAY+CbI!b=vqvz^}O7W4k!DI(tIM|~ahem;LS;6P|PIziAkZ$>ndUWBC0);VSkjNH6vfC-+@ zQWVFPftyPP|9b3TkBq!^l-XvFfOk-Cn^t=9I>z*%7#ET&DukPoE+$CiJaT<1mboX0 zap=CrZ!cJr4%6cDAbPwTwOBdguD`;ndc#pvZb+Jhw2?nli4=#AeQi#el5y*z?W59? zdBw=dIrHeua)rMtmaWF1L10BRdH|orcXT?k?Nxzrhe=_IXmM#f;6?F(=m6{cP#_+~ zFsLzW09mUY3?%-kO--35eo!k=&MwbqAR@2rk#AY6GbffwptE?Bic$; zYCUzNRF>>*A0v3QWS`DsIV+bll~+xlBA2k!fWm0h>`3Fuqxv0zx(d$cIY~br!ilht z;F-n)$vIbxFfZgY2+pLy!k>1b^Mn^Eqk7v>misyOwJ}Gkac?-!Cw{&Y87fx;QV4l3PxZ0sau=gN|hSaw55tofwwb*-bP_AzS} z1j-$YKegcEJrxo}K-LMEFZzbB#r79Bt0Nv)?p|D4KGDtqu@(?Fve)?i%@kzGVX}{u zF9<`F=(i=Vs;qp>%Qyo#0!M$-!ixk`%P`&_NQk|@TOjP&>#n90k~g1F3<=KuF3=dI z?(2{>2k<$4sjyDUnS-v^oM{j#IeFyzepkqiRTrc#RiUgM0Q*bn1Ycx%Nqi&Zzg>Gi=O}~6teeq(tFUTpkizcjRd&F z1Zfb0wRf^06HQj}N3*a8Pk9Rigd4_@Uo=qaB?_r>Afz1v z0AB+egM&l>1y35;^LSn5%GK`nn7zh|FqMI6s|g#HOvjeNV=xjLVLy_X097G`gC}?O zoNA1M0H6Y{bxp06|9u0@$%D<#1o>vOcQ!Pwo~l3!DxS-#OuSaWvcvYh&(5s~?bYx+ z0?_mpsIXjv^}l>~3Qw(p5KkjT)r_BIHl8Sepv%Jfaje8*2=tGqgkN@L2tV7%57mXv zHhVtW{SM-Cg_NE-P+~d;mz)+Jz>abH3$lfGh7Bidu6i4NkbBgVL6VH>Q5yrIt0!uIAbJj1MN%b`ro>`z~{FB8_Movj1X6+BNBeybUacN;hkRXn8# z_!+364}Ea}!2~1W=D48Ya3dZ8dt9WmDz+H6#GrR{$!9jQ7j%t(0+B&Aic|mwv|tLL zfPN(**ab_M`Z7GpwPdAoTcG5t+m@VJq)GhY$)_6zdi9xNWuEj-Bea}q z)Jyyo16Z7gnxek(VOC5yH~n5elS%cEfWFH2j#GkpSNVVG4(UiBW6GS7UiH1q zM0G-^RzG^$1p`IIe5RJxC~ar;0C{Wc8Mg0Zh>;#{;tZy@|BEf3O^q+TWn%Fgi>bw! z9wp*`qdRW00z#q64#tjBzgUfl`0gk>#2O3KG|a=C(OjyV0K!ke_1TzKB(e2y7(eOw zjEL8pFWc+mYTV@8=iIM4Z~xwXnS1B~QgAEpC*;y6J*CPy=854vVCb?x0oC7_s>I{ZxLU^H0O&=n+lRaLpO;XKm)(Ci%IH|^n zjd^<)TWxleFW02OLMnqmD##~-iQ6b31rJ$D`RWt_B%n$0v1KC)$OS8kZx$GpGLn8N zR^$>QQ^U-wYhFwZtro2dnqXsWzP6gL02GDf5^g{>hk%Wwf4rP27^oWi~R%W^uCzs~mafuxfgE zIBfkDbu5lm;uK}!SKA)~K?Fr3in8G{C?{ht$vmWp4xU$(Y6VSI(bXxqZrm29GUC&J7n{NQP}r)&HUAb{I2k07{k0%D0iGGr}c_$R{5 zugw1AVH)n2j)u{#xg~j``;?l&FACZt2@^D+IenF__fbo{l3;;3=iIcqEgLQVCQ}`cYk2^2=HaL4`>qeCFrqCQJywR zR-TXc)9jNw2wy2t@@<(oEtCkGqyFDMIjw_tX@9PpQ)^CFU-bfRZI9Y=N+`p*$!5~| zg{~@!h>iSjT@}TUHeWRMGhzu7@{3tnZ5WU?UVAn~fJ^Dk(>gsYSnw(wlmeypz5H*; zB@XDND4_ZDTvHo?2C1Ik=%mm-BU!)%-kKhoOEwL}5JbW!V~D!iLxnn0>}(h`(D&9? z5IVbsSZ&mswDnnY}qUSu5GrmbVzcFKT0<#*_5!lA@6`U3j(<8tyNQzy0%$+aUQ37**=I(ROXhjPZZ>^Juw8fep@; z*s%3mo5dXlIC9{x7;2TEvT{r1o^8rV0RCOfeyhH>x4kvYl@rZJdVeB#v#5csqOqi! z5VDRFg-4(&V#?Q>0I?WP8Vq#ynwD`HkQsFMPTMhvJ@5|k>FqA&ykK!zSwpaj#QS|AA4uSF9E6tTfj zO@P$-5OY0@u6x%grc*4n_t(LYo0nyW|I?uAlagz zGmRp!m5oM1d?LSUPeD5CWuu zgk*y-79dejwI3G2Hy)$hFZn{H<-X_WURaGS<+|{`n77_dc(<^qlGrX+P!lrtdo1jE z5UISrQl3CkTIC1JNdlF?epAC&cZh&qmKG&Y$l)+_9cNkB1jT!lT0ex3V%8DjPlBH1 zZy4#;(U&71}h}W}Xt0!YRQttjakm`yCN@zXkYiK-80^W(c_w@lFP;IM7N;HF{m$gf&-o z-!7@(3;LdMrz%N?GVJBd&jx~`T)De)#7zq%rOF>CZ>`!`wQLA^qRd8@j*prPrv>iu zLu#;(QECwMlKXv4Huwq&*u&*#!a@o|@oM9!=f!Tk_NAGHCxXp*i zb3pIYlW z&Q^^Om@(+$YsI3gT=roG?qyv?ynT@1sDQYb-#x5!)Tuyt+FKX<+hdtu%YmKfRuc(6 za-GkgIRGl&$^sJTY!>0PQq$Q$T3)ilr6NHzb_tccmdR zNn4gskg$HVSwIw0XDpc`C7svel`i zicxFZ+>9xBB8YLfT8$83pll4nE(nH2c}A|%f@KS>T_tEpu-ep3pc~fA&0egDGiIOL z$_D^o)hx50Qb!-CXHTXaS@(xf={W~KLdaC$?3`b0%y$oym6=@}=~|9P`Y9gUnCj-h zsGlhk4X}~2F0hf|Bcy1Bls1}t86}B)Ki1mX3l%NAQmEL%+~fkRn!!r<191ZOO(LJ; zH~G9)mv$Qyna1^kDN*t+kEr!6;zMa1j=+{9njwi3N049D@msW~?qacTd4gU?yFLh~ z*RB|d0=#_P7uxv$XQ2_i7`c@&@d5TKtOoBij_2jRoYWctiyi)Rn0v_-VVF5qVxl0;Eui|uZ$=;hN66oXmv zbgG%Wu*|ccJ-2*>#MfEq|%t_bLv<9IR=t&zv0-8&lMACT@LX;j~m z^iiY373^bg=ocwxRn*mq)J{v+W7LA^EZ|mhmp$)F)?!Gl}Ke3ltOu^3nX!6 z1twmI(aVC21a^Bk7@M@jWyd9F^hH(9L%`a7vDRH==%q`PZuqYNuYK{}RK*t2Fo*^D zbnLnHdhqJYM_@|;*@q*gHD^|$-bBeug{-LqDZ*NFWvCbZ&8L%g$yL87kuYoIFo$D3g|0ao^x`y0U%#tShW>UEw0~B|0N4H2K=-s#IM6*%n1Yd9MoXg6`7W z-Sn6R+5F67j9Vv?+}T&*md1(ra@@%2ZT*~}p!|xRD+H~cQ{z>+#6;kTakpkdvo8{S z<+^b=k;*b6mV5b=of1ropwKhyV$7W8R>uWwBn+p^_~wz6K0$43xvy%r51%RY;4(zj zI$O_+$kAtMGdz6AJ7Y{c2kP@4Mf;WVT(-i6j*@UXhgIa;cmNyc8mEH0l`w63zHPJ> zj8W9~(o9w;@Yn2P2(Y~cgp^z%trD)Z2`CoCkO&)rgjtvrm()ijZ~`jb#~K7uKQVMb z1s^FgUiXNIBxoofL`f04tDQh;v{OoKqD5nZ=|wc^W33648w}yJKq+T&@rsp74DHAf zd{(SxMZ(cZ(WUd05u!oj(`i75)2&!9Gi9hiHOG`XzXd_s#3ej;Pa1Gtu*D~-ks@0~ z4>{*AJKn9_>QkOayms^Xap<5|FAiYjfbKNit+B*Z5@JGHU!|mms#m?D(43?SkLe&J z(?zIHOJPug(9|hh1-zz)dA7hd`p)8e@?2m%HWCB|Heq&7RJk3*26!yfxK73Ekjv00 zcA8l=IFMZO#orF6K<1|cl<455a5vYiNF(Tg>~oTdRRo1jgnKoSZBBevHd0RzcGl}s zM=pgWg5mby^VNnwpJ`!NKwf3s=PZPg(5|b(hU=lGKkkJJ&M1q_+ImIxAG);2v?dK| z>+pQ&nJu`sQ0=~!OI6T2zJ(XQg`7)tQmC1UB16>o#~bDiEa)B7>ggG?d7X7121z|t}6%N5YSm6e^Jp%4A23V&o)sDnMxIyr5^J;QksgD#--wX#v zI;)i+5DEvjQlJ39Aqg-M$|U}bR@)R>gy3v$=;29`An3}{WlI$r6e5TUzE$k4#)~~< z-JGq3%dZj4-1TpHlkLus=c37jiYq1JyJJ!)DnysW4!FC*f0| zKm{dMjwcG=U2)8{YxbOU6=^!^Oc*@9DC@31u(7nriC7J6tV#vo&COqOcR*uVAJ?}x zlOnnT;0ywm28;y6nLnOE&>d_YV;ct3a>_ydLR3iuIN_uR#8L{)5l&x-P149&CX9&& zZx{WEgFxC#!L2aY4Ixi4wJx5rNU~J{`6smC5G?CDlxa=N!Ln;0r*f)-w zdvQ2m#8JuHdm;ZrNhxo^(xhebE}y%!3$_;3Wa1_zk$EpP$K@xh$?mJkkwoa*Z3I}r z()!xcf_)tXj`D#(RF1y{7UivTe6t*I$@pTlWFHHb13-K^pc5Bythrxw_y0V?_)R*HK>vH590-#DAWPvC!l57J7mJ#Z_y{3YkD#B!{_* zfcwOLSy*#JVF2i_j0H;sXa%Eng4HYH&XtgJhCPa6qFR%%Uq_9DrPTxn>dlw9yT$61 zZMJ8@zLS=ERyf>S3tw8^g1i$!JOIM%vP(_SCyK<+^R#)_=*6v`J2pVnwm?T_iY*FK z{rQa!uNPgSLNUDftK21OTy-HaB%Opn+$Z4j;*p)8aE5o{g>p-0gE(?t-)g5=B<3YV zh=;gzfu>&2=<$Ap$r1Ajyg6PVATtdF2*`8MnH}XF%2;XnJ;IMaCLamxF5^|8YP?e| z67fxUrJyUw%Zltf+EJ)UB&JfTP^6ZjBvmg1#n&LcSMT%00Qz>o6d0`xp-OBb?XWpQ&2DVPS&+pIhl9I+)Gvf=e$A&}5l{AU5V zB*pMR%Mkz#)DPJV`CDGiFgquMg9DVMbF5H6-M8bI6ry93E=Zyl4tFa!v&nLAl-AVb@>MGiXI{4hahQ@noh6m? zo3To{+-cA<-dqo8k%m47;8|nJ6qbnP#eD`yZcxt8K4b7lDSG2IRcaEx36 zFoBV%7nEaqUST1DA_xj7uyCX*OAV~Mx+4X|bsUi!xV$!4{g&4udfYI%V|z7Rh8Wom z_DBW@omkNlAa2N~rbGNg3Q}+}!jziV*b>pogR(IX!1f+tii-D;Ju_Ir?Nk6IxWEty z5V!^nhC%Qp)pSf*pc62wV0(Q|U8jXb!X`mtCX#kqSCsCtJ-c+;ruzPd?-;w00v}do+4Q`q~u< zP)ZN8s`_BeD8U9fFU=I^NhA6dDZ|U6b8I zfOV#gKw53LF>r27;s}_JdCb9}JiFsJP(MxGve`<)uhji%(0vgmYP=^*JK3(h4_So%%?ASP#Qk=a+dCM!o5*;}v>eCO_SNNqY3mtn2e3PuFhlhWx_z9ebsnxt)I1WoI52EYKD}CCJe0yhb_shjh;wO4 z$mJga^8Md8(#3;-dNykKcHtBGiKra7_}=qo#WBttdpeg}x3dx{a~2Cg;?f_+p`K4_ zsoG{EIB?7Z+Y-Q9_~{<8Oz3H8!1v%Sk5L7@^VNKSL~Z2qd$G}Eaiq#tm^w&pZ3j3P zop(GU!;Xh9L)iNww^0-ZYd%H!5^1$pu>;vxvZce1kzJk(ZNz*_9dAhcsMl6Y3iIy@L!%Yl+tpY%3t!G!qM3XzQiZ(Hllyg{V5Psrg5a8#WOJJ% z6!$o_bGFmnX52CE&fuSE|X@DlV)y%xgw|N7SKEfCc`&*QbV*VK&=hsxHMN`$O@TWxdDWQvx-(mtGs|v zaXV08#Tn}54h=UZe2NBuhF{5~h=4y#nFF70CxPI0UnU}qc|qtYq!sN^Ie{NmP|)Ro z)ZL($e~Fa7I!8RQTv{0u25=6FF9HVW5dSAa{0{XC(87@|yMAo7*X1vlUA^axnH_CM zBG9-(OE;vQU|z6tBDY(#-dn0+eILa0b8~Zh;Nd29%4F7FGhE1IiJ;5~L98MOfw1(p=NOiUOB z=&~XK>kB20<5@|RSA|7}z4RrT`w)iKT}`p_|4fR7lzbMeqo_bP@A74&{O?HwT*ZeZ z2L-hBih8N(=X?uFG#&}yaXex2u#nuxrIE=$`+kNR@#Ea}rwBtl2zjfT|14Z^^_JbM zN4Qka$;`g+L%`>p!XmFgU=>hU88p%C8qda-#Q-XvmPvB{rI{E+LF>ZSSXwy>`-6eTbr8G3$>Y@6%?G>8DW+F7 z(mb-L5K*!wT9!k|z@b)J{iUtOGYwkcEGgUU)W-9-G(cE^2ZFC6DvPO-$(m$K z=O<2?a(xmV6!?3khML=G@O4oZu(KdwszejXlP#33o+;hS?Gv9|{Ri}lHHvn>*H_TW z1w{(4xujo4AcwA~egW5OK>{E{8K4rtfdG|CtH5nUBLo|27XT>WAW|{}sg-;va6-G7 zgl-UADLW87V74?MZLCHZw$K1+@TH&>3J8aN0<--vraDlCuSF>$6&#p2ShB!q&gsD@ zF)3##x1yAh2$Xb-?QJGWxBD&VS*oJ{IpqO3=?m9VGSxrK50VR_OVJ>5;W3^`%6k)- zm5;Cu=AZ-%Jy<D`$?Kq%zsenIReoNZUp?16&QBXgo0!rY$mnjhF}CUC_TY5UjEbwC7K z8#O+I69&6!1C!DFWcy>k;Y&D;E=a}Ep)S#x9TmWuA$Ah&8IbOpgi3aN+Z8?l9#wM{ zg313&$pG20{?H7Fev*=kuLX$#8CwWb;5m9f2E06rplPJ=N?~tuQtHTsDY=>`C;iCi z@p-BJ%<&T|5l?fAaJ^n^!Bfg#;W@8Xg7gkmhSKua9LC$;Q0?J6wy!%>$@IJ@6S?5M z1RBV*{o{yvIt<8n^QM_?S$N8ivxCD0=#oftNMb6~hs6TbF7OC#>qP)BI1UDYr>L$b z7sxw(d>$UB@M5bVU})Df0V_CVmz!sH4Cd4@05(eDHe2ym523df;+uMurZ0mLgqa|B z$ULm2jeJ52cPw&3d^N4l#fF=i;Zl#_7=OsO=O$L6Z70SkvX2fOF!)~ZHchznT$nUs zt+2HH8;rD6@|Gk>tGRq;MoNvY?=sZ}*saTIgSoVYW8=Xffszx_1L(N`c{BugKR+5*OoZ~)AP&|>5TyxW znw1aAwX_^)g0OBF`C*17X`^po3JFKyQV&*xvp)IXsKV{PsH!y%8DdO$Ccm{ zB9F~;FO{F3Sjr8nBWnKJ=<)^#aqMcSr5b%RGue(h6e1TbC`u!8nDz zAd11B2DiDeQ&85RKs}{X?jVT^vr|fOOG`i9mXOu0SxCkvMKmmQMKz^*a zP-H^Xzz*=v?-7`Zd0rQ22qk)tMo62`{F`8i7DU`^9wXN)@TG=p^vfG~P;_krGxZnr z4p9Oua5W@3s@(6`Qr@1TW@VQJCuTm1!{F>PgY+G{7wOrvbd{fiHgj5QVM#)gnXwrW z1z>{EsX~}DBCPWrzIXz>^suHWV%5xH>|HYB<$YSxql)CB~JQ0&1uV&tW0W`+TG&d9`w*dq=%7Kl8agngk`sj{ zaR@^D{JKca5J!V_{hYFwi8d5d=n|O>F7z%8zGr5tk@y@=;BfJ2R&najoP~_8&BvPA zMEdcj)+1$YyWlTDn7Q_*{HOj(AgGii*6!)1Com^ z-a0A*l?BaBOQyjgpnb!F$gY8dGVCn+y9I zvZMkMXT@v=MO}}d2LNfflc3v4l#2{ejiF4}@SzFuBSgi3$3dp$m$hM%12mHvm&PhX z`6!4X_~=R~dud*3RABHR(l}RZW|%`#msAoc5kw<-<(evJq+60Gh*mB!`k=vLmEDAh z)R}*0!|yeqrOep)i+x&~3%{9R#fpH?hu5!oxkns#Wi`+dp=H;^0H^`dKngWP(NM-p zkWCSY23F7@G*mdUNozV|l-$(HrQ>xMwcb^$ksK81rh^091gFdjDEDolCNNT{bR;*$ zc+-rrrij@fxFr#C(ZdGc=Y%xtMPr0f!4|NH=!~v31Qk{3bRMDFC^G&i@1QnW!8C$~=D-hR&E%1DWNxz(n$x%v*ikN-V1Ie(Zf=P;?r6K^02W|3U z^x@o8zK|1(U3N=@Zfe+u%9X66bj1fSO76W zAY57u5xm7H&m32tfQyQ8Nq-NXg(++cV0S)>KP-eHBAP@t-MdSWvI49Khe;gpKJ?-5 zTFLuZ{5)P^q3nw4hDN4bD|MHaB+2h9&nd)z=Q_N*FCNHF`98pZAQ;R;pZ;CFHA$>Wo4QvlUQ~v3|D8%TCKSaXBV~h$F5^+T zxSWTuzB^ouu5#|y7Dw24!f%VnnqQ@c{^Rg6`ew`Wo#YAE&OAj5E~fY5I$1SOe2lc- zi2`K!?6$0y?U!_(AW2MmAnE44NZIOnl-Zdg?ADf;CMiQzKAmgwaKkXaR%; z^8_FPQ3wbCcAh^=ATOgrhb{&uF(y0!hYZ~0O>{Z|)cH?>*y@2stm-PrPABia z&g2|&gK_?$I7$OAAYeG562vLopTA=W~%Ylr*AMc2G$h z%5h8?=IzwjpcNPlKm}515S?J5>xFSTOktrv9RWgAKyg#H@Ej;(3?(ZmT`JBJg+#6! z`?sKm!)}WLULC7092}RjggzdW@x1ufP)!1_*)zp}Q>)ZeEV*jRJdIZibQ0J|>F|X> zrYS>U$rcXKrF$qdUH>7|B-Fa)L(lioM!SGqxl^_sP)KiBH^%Z~!wn#r5mcR_eQYfx zHiT9q@iB)JOa>|iz(^1i6%&J1wyBUHj4%Yqj}wMkicD}&Xs7@KLW#`+9-!sYp!g^1 z_SHENYTuoW%*;f}0w@41;s(Ywjw>mXv63Z=$sr9ei6nzEFBX-^7R2}ug8Q6C5<3IpR&gLUMFhV5#V z&fJrto0U}}sbn*3V%5qa+-`ZgXh`TCtmEnlbUQ}h?k?K&Ov1<_vx&tO2HPdYQF^J& zRO9d`C?I7h@;F1tuYg|NlpTJ7;>yjB#R zf{!fW6ccbLNKin7nLJfItzJRXKREajdD5AUTHiRG9LNI1>F1{mLV%n}eH*y0yR6(E z?-L?PHIBKPq6RhO%K;^+n8z0Sz>(Ri1?1kQLb}w%8NxSY5&~`N-GG4*>dmzpV8T3r z8vq!>3}RrRdW%0JzD%(QPpq5Q9(>tl2?Mw4zU-P!jf(d{i7yVRp7?&e8mZlq0zi~K znP2iiHd1Qx4|6$$*aLzT=hq?H|6ni(I$r85IWdsskM>f&&DxEO2Lj(!@C{oE7HNNd z2EjLq*ucCOIwi@rFw%WZSUZCOPqz}=Xz$xr9LQ?S%`{;LA_a`=>0~>JWaG&(+NgFOejK8hM8-mV-0UF!J~{vzLBBUWs4ExinCFa|XxHQN*d7r9eg;kwZ; z*NgjUoiVV^k}tMb{wV2>@kVxeIB4bZ!BT=J4`}kU93$iD($q73L5~TFbbONv1nlIe zx99s-a-xgyMwWl~xgWipY2lus~F@mcoGWOCeZ61Zv9b#E#0T^~eXK4Zm`L(XYC_g?g*vIbr=T)06?R_I0DmWP3hbgS zv!MtpcA_a`Qe6VbN#dq!8Ii`&5+@s=H9dYLK$YeMl%ll_AOkEK(`=AAcRP46Lr1~$ zm1KKbwSfg>?8>z!ELAr#wQM*cF8M*!XCa6TT}vXJB-&rflK@=xy~#j9!hcy)3g)^( z2pl~MPr6IEVAgRiv#wN3weX^xg;sp^Ke_T=L1n33#lhx=0blxO&BwtnID9%zzL9=_>FAN>)vpn zBOJoKWXy8D#Rt`CHEo?QsY3H37{rlAgk;#V9HIoEADpj;HxKzQs-{{D4oQ`09%TBlJ(OSM*yw zid=-8Rh^iuFr4XDH}wE~A*PF)-v+H{T0l@)yT%nkpl$#HbOwwSPxV3qKvK;?&l4j> zOo{MYCEy7mpi}7>>(#{}>mc1pAtW1njg58TDj zLexYMu&r7UO}L>969F(IXsH1S0=ZdYc=IeGU(e>JZA2Q=K%^`-i_25Z7D5l4pw&ex zkMm<^W&HVo9X$)xb_qDCyeB47ZiLB|vv9%lm~4ZcN*A?c#Z^Z#(fBEO@QlM%v za&w4gK4<3C2LO6@2a18Ewrk4Sj&uf>J!-gElNN(N z7m+zmQq14W#qr9sG27{-O1md!@*>l(swq zs6o{+(Hnp&*icdB`ZFMR%>q zu!^54IAQTKPu>CY8QU^~T~KbVNyPL zo~@_66CkaPX{(wJ(Ki{mb5zhocx{^QYf!1Mq$N;eG6p$OIgL}ELEbDIS={V`UqPS= zViE~p54n;nmF%rk**(cNq}3ra6q5@MC(%ZWM8I$Zj~Nz!5r~|IQt0KBv6DKxGW7hb zCl0Y}hf}O=g-w9Q4jv;OAT?}=psnptYy3u>{^B3PGK#b6PiX$&Vx+eWwokazkIDca z3Rnfu+9Kpcm^FE^V(UI)Bjyf4ZaFd3M_x?q+$rL2N(7^DGn@wfWS$iY$N293xY~Y@Ew2}Inxo0slx{-y{s!NMx^~l zO_pqqaamHoind>dE#lM@mNq*M$Wr&y6(t%~Gn*t|WaXr{7BN@-6tpE}jkLblf@`ch z^{XI(T_DgKjMzn#*$SoC_lIQbMQ!Oym&2vXb^S{KN{k@9xib(hB5v`@`JHr$0P#?bKYii<(ol4$xH@6eVpeyX>8|4UXyPe8M z0CJ_(#T(8fB->y!k%)`MvE;8MoN-F)py?s{9la_35T>_1|5Cu*Zx>-a5Vy$NZfmA$ z!|3+UQ-dl>!tr|IhY1BmbApK}72oiJPcJYsM)0kEo>s&EW2P32*}?rlG`xXUmDEA zkW79elz?L}(l{-d8FT&KrXcg;$|Acg3U3pxT>x@zVvjkKG+zUxN1cLqS)W%koVIAl z#J`||%*$-|k{qFT663JW*-7XPdWsw0sva|vV>lKfQj4w*T?N@PPbpU2Hc4-E%*pgT zgrHQaYT2-}rqM%PB}D&qtd>)2yRkyH_Z;TP@wJ|o6QzGLR_QR|%sS{|$XJNKB1QF5 z&eAA%6!jiu7s#f_r88q)Jrq?Pv)*d*;spc6Ndw1?zKy^SczlY6e~<*2HYDp*iP=yy zB^+E==)kcU%`$j+x5aqMaS32C!+hd&uKMUgJMw&i!7ogj;>+X)0BRlq>?_tC7|^^= zAt&dLytUXncH~a@s24ruhnOqwFHk?Yb&AjkK7zIf$xN$cmexy4`40+YU6IyW4YTW` zOc*^??oxU+(+R(clcL#cG%1CwtMV4!{e^243KrtXDNaiV7VN%Zbqz#X*^himdNqQ? zI%jEFHw#%xEiVU2X0!0K8b{cMPjEZMVnyk#}?9I&P6i<5IwKvSVkt+7yi zrC}x7D>R8bP~`H^+_;E_gPJpP@P}=3V+g&?WPcp^qIk^)o2#C^n3VV9Ui$@j)=G{! z7s=X;i#+N-v;gQj?s&ouRU$MDQbauWIjSK=5s8b+rILZ%1!&R?n)lWK|0T+NM!l^F z0X!j8jE6?t3@(hMEheUc41`_ZpO4nHNJQsB>1GaNoIA8j+Jh`m9D*r`tYoH750N^Z z$iB`L&svm5I~cBQuQAUXBmSJ^tt3fa$P&L!lPL_Wxz-4IaiLV%4Iy2NW!tbL zy#Rm{zEH}(zzygH30>*si`=ZU06+LFwg8hy)6i%iYN3&9>@aswKF<$8&toiDW>7(A z33_BwiA^C64hbZ;1HHP+1v)!7fnP?!3L&s|%U1UTAm@kc6M;LdzC({18)@`XLO`5W zAZezz%}Hx!xpi3(6g?D-BJ|3LoSG75f{&x@3@^5=J!^UQgP9r&{}O zT!I5iV3xXczU1|1>qTU{Drok15xgp9OR;4ig9a`T4Tlv7 zA4u}ROo;O}!X5HEgJ zUgwkwKA-;nAz;{|(tGIRQ@hF|%JvQi$-($*rk@?2&smYm^JIGR#eyqbKn{My<0Rbd zc@x4rpbW?(sU@X|Is_5+BKU$+{pot_g8}tUL7uU7B_np(LiB(I1R??GFCYN~^S6Nt0(Ky}XL^oQM0QCRCww#6KgF(5zE#!*w+Xz{@)L5d8NVaw<8l?4dQ_amgIl{Pk;f%x3CtV?p!5&1?Y zsFFo(;V=)!1tgIDb(V!uXwX6~-cK$`wklKVjE}d9qo@n~4ha^GFa-Ae@f*pNwtEr_ zzpZGbGs3&K`zQn!f^rRZ>iZ~dYgR-(9+9Bd@|7I~9-#>Z97{HU%YeWl!F}ujr3%Zb zhwAc-CLp1)Vdb!jATc(o0t#sdQUJ$o?q75-izHvc_;#?X+3lQDq@dGNE72LC+?%G6bzbd>+DxWCJwdPc2{%Rx^OEda67@Q*S&Rr2W87 z9?kAi5dwIT{U9ybPcV1{MpZ%$UOe`GaK6aBdO6XEDR5a6By>}|&U$3DKNbVUP7cI^aZv0sQR#LF!sN&M{I!cWkE0obnCy*;9l3E-{!Lvp@q%y4e7S>Y(5w zGQmv)Y^FX-kn#P&X$R(gLpy+3L+-GTj5V_^FhEtPao|_$_yI_Uh;|6aM_Cxx@KBrA z1RG6~XRJ@?qhl0U_;S1Yw(_(~IW_}@;q|U^=Vo&D0PD6gbrczHd}Y`|nvOGcUwkNZ z=7$02XOit8Vw!MzQn5sqJYy^ofen$V4XPg16o{4ulA(@4YKlTg-E%?8ebZX!IjtZO z{rzJ<0A@`5ZUtB=^B%ZnaBl7;5t!&Fb^=c&;JXE}MgAkE=d8srerq@YYXDLKR_~;l z0gF*X7@HSR8L3GVQOBl$TXF#wNuNh(3rW-YK7O_vkuIigtRZ2eK3v)P&!tga(n-bp z0L3qnsh6E2Y$}^P4kV_EJpJ4`&*uq#6)!nC6dVCli5Bmt4IB&La*GmY`M|Q+xMmb( z0)@s9_3=Ycpkf9c5Ty%XQ^nyY&L`oa>w$WP!~+Sz`4~r5DXB9oDO7|03CgeYf$nyq zCu8%;UC$z)yp|xuwbmSHm~Oc3JuD5g);|^24HM)^>U9*Y^ZHr5J0f$2r|w=wXjns{ zl2Sm;&zi;bijRgqLb8ee8`s>DzdUwC9iUZ9I(}BUM@p(_u#-5gpuaRpER~)DoW0kf*5d|fH#e43hF|Eb0MhLPXAS_VaSmEzt6iVtr`h0$?&y$iIo7ObnyL4K@#v7Lt)PA^G8L3qa)|vDZp}{hTbbu$Q7eb{5*V1_2GG#^RAP)y z3QfP|r8u+doJS2m9rap6p3c&&ZB_V)X+OD+TSsCs^5A?nFxF1*eYHVuF$MCcor^Ft z1gAumx@4IY+^$6_5B+JHjcMZG1{rnBcPYLj4Ih>nd|26}n({=o{TB-k;WaU6*!@|t z+nd(*VSZCfl^c1Cq!3gT4uLF0oC!cuEkYoQ5_|-TZlj<|L@c)B0>4-T+9-3kndUM< zryw23v%Es~%Xj zt7zy7y7|(RxC#`;=VhhKPAx$PCM)quTm`r=SrI2&-2fzHK`fLBO|H2+dxbY%j_6cZ zfDn2I0RW_v2~(MZ2YX+{qXFIc_O0$e^47^e1kORWf_ zbq!AB-K~wZ(O>|8u)QCE!NSg$00CZwT5X`Pov9N_k9wt^TGfywJRm6nk~Go;0FIQX z8(;>a08>D$zl<2)5IQZ=*G4b}G-XAb4rrH0?7y?GK_^1tAt$%1E|YfXWCUD^|8tdQ z4w00pW3^8pZbSuIyu!*Idy$jzGfbXiw7-S{5Ww|!OE<_3pd%~YM>}A9DDwI|6|ClS zeF}}*C-U6#BZ-tzP9KjKYtwr<{mRcQsI%a$2=U<6-MNtth~hChF8q#73`SXzPv82_45lgT=FZLfv+R^jpuVSz_hlydrJcIN z&_3nD++Rpn%0_^6EAW)1TAHd4Di5jiK-FORt*A}tCZz*XDlcFaFMHnxP+>&;K;y z$SY8mfJO>|2@VMWJP#ZeHZh11mP3Fb3?^2fz|?~25u~~Wy;Q|kObaIaLgiX_l|L@& zxef{;iX^SYK$ME#o#Gxw1-x54rzOEQ7G1N{3c)(L3z=_U=)C|Tkd3%&8m=}~Ee2G= zI$p3-(CsLM=!0ZPz!_>Jgb*hTPchFl%BwkLIW3?7LP~Kqs3yZnT0qx~og_8So~@uf z^l9W>IqL|t4Ju-DDIqQmLe(IfjZoSG3B;X5CdtIcmn_3n5sIMqn+Yll12gI3RA3|^ zyL_9D?wSTq0R!ld9yAc^_Ho2o^}Zg$lIC>lz^(l0N0}qL>=;@OrxIF@fccdysjc_S7+(3@;Sde0D431o^F!paXz z6fPXLsG(qyM5qJ&7CVE>HN!xHtCx720j`;u@NSt4&q;R`aN#E)TaaYZJyKR)Zjeqe z^{-8107O%jsz10L5M?PyssC%wRn2OfQV_A^U@X2JBv3)dEJl^%dvY}rD^N=lc}Fx+ zcDSq?YT%_Wr3!FlEO25+<~FR91tJdy5KsU?VNz%iFjQXJ;zLkE4x*Kb0yr0~t3g+Y z>AIp6^VhjIpC!w~l)B#_EdVl-dFsIu9V~ma@+O0hco<8Dw?9IW*z`a%Bv(=|MbDXu zC~7U7zR*LbdZHA6Jz_A6!BvKF)+OSB;RBjZ$oX1we$^jF?>VchUfsmMb4+ufM z;!)h<27nOX>~%B<@RXOh+y(?|U`jCp5SR_H21Kqn40vb|A?_mm2~V85$|O?!E3`2Q z0D^$QZ$&nIlfD-V>EzuQ5wN0Q(L?OF@{{L6PDz+kaCXdRJ2rQkx*$5|nhxG9fnlWK z&-oFeip!=imwxi>0R%sr2Qf}k@U8Awx*YD?+ipqtDrF;r4m7+=W<~T^Up%J&}r}L1$-T<8+f$Tv`Du@Q;pd=AP zAewn%C_B#)Kt)(pfVB!^2L@F^yukPcK&(<2gWyfEV)WUuKbS?8%HU_?C_}B{D$);3 zOF3Za1$h^)j2_~(43P_ZJ?27^>}k0tyj zc9_S-x3cgE^L(5nYIJ=omh~N^U+cZz(?x@l`BY%X;SOB3C1*%_mIsHc6qr_Jx4G4{ z{?5|NwQTL@R!2<9y)q}2cJ{!Sv)jVlO1!mX^dR5wFS<|6!nqUiBT_Hjy*Tk)pk7ll zmtvLKe9>X`2Q)VLZfysY#4|+s5nzNuu9AprYR=I76IAco?(O{elg12_H*Ip;ahUOG z%A@2ZtT5xYDklIMUB;xegp|gD0?w)Ap5Orn7N~wSE!jj$7je;CAR~c^7_-5Y{TZmu zFEu$Zowtf|RqK#J=;lv!@d<|+^)2l8)%4Nkv*ONVuTQ z)ktU;BxzeYbP&r8adbyOGxHrb!537Lkr?WPVt5I>2{X8s{K^;#8h(=hTqV6;0 z;!D3FdIdj}j18OzC)5LPTFpzi1j1N;adO)_kitzxohI}zSbXng!+#b85K#zA$=@3t zacS9;=(O?)y@C``2+peNE|{qfn#h`HA9m$_&M@Tj%R*|;g%qy@T_jUatG+#rpInwd zuF2^qIx3@pxxSoeA{=8)Ye8LEDoOf(XjvrXU@5qWk@!iX2#-Id{|JuQd1o#px{UL>Isg(m{Nk7Lm^3F7=|33Q}d-yD9~X`MbpT($t)JQ zu9fo0#&D}Lt`j@+$jlp!C}ioX_Pe#9HFtubV>j6@FH9DIZ#NolwS&ZJe6S$dxj0b! zv!5^Z#fJlAu=m<0F4^Wt=k;XpPb_IJ{}wc5G&qn&4o=gbqm>llhRsA&a^MxJ;VQTo zVrwcZt8J7Ij7Tpp1nSZ#itrxUVV~e;%OFvY9zKQC(!fFrVGB z1Ix#_(9e?Lfqjb+;-9Ag9uru+^+y`^U)x`?D9tvDJn7U~ek|R0M=nx01|-0I>mu2shem$-BTzCSM|CTy!#NX4R=!RJc7<(;|S2P@spW4WyPL2GTj(X z%>A|xknl8kJGM^jOw#7k^)t;6CImK5JAueXLR7fy6#{d>LjVZxEKPh3C;{x#f~{zX z1@)wJiuZ+WEP`6*@oXfxlh(isb&K-0vI4T?!g7)1K?RChRXsPF+E((GzH*j*HNPAG zMVnPjomf4luf9p&u(3FaEX5ofY&3^wCSu)?%|RjEhq*gm;>eWrrJfIOwiE(ihpw|FZK(i|56g3R*5 z8XOHWXPOVBE}iyb;}5`WOugQUUS-IMoJQ)c6!%Y#2gsT`>1TmG;>p_#bgkkleuHUZ zk$ygX6kb@_I;q(jJxYF;`Il6+y|O0W{UyUaAJ{13`N}37{}EBL#v75Kv!l;p^koj1 zd?6&6Mq|$~|3=E8_FO-&M|{gJ{vP2HXZ?X$Gde}j!y=681VUH{mHZHtvdl0o=IeR_ z9Pg|SI59;zZF1zX`0>6*!Ap*N{|g&i^;da5$@42GY{LEPixG!qYVdF_`TV|P$7Jk% z2q!3K=c#^P&7|->iNOHQNfZujnaWu;AXI0``6OOO&PP&Frz||(9dt?iHKkCW zq;=~ADN>Oyx*HV-fKj$ihU7@7<`6{!!ZO)GcanW{$D7^+6=w=boZHW>v-0LI03!Y> z6r_`djjI8k6?D@Y&(gNE!C?~b118+!*T1=9)abi~W|<992{#P&lA!WW>C5|s53~d* zlptR;Wdx&^$RCdj?!q95dy7*!s$~@*-G^_f-FiEue1uDoT3aVKP1{GjpX4~4>LZY; zX*n&CAEr@>srwQgkWRsJ0;fb%v>uDMA(w^F@+SG{m)GMiZO(X?*;B8Cm+zsP0#Z#^ z2Em-Y3;<>~<#Mw&Js%XF{d?pYG6uG(i51e^zZazUh~-_A%Nk6$M4pzaWgv(Oj>M5MM9XN&XKClK z-mxe=6(*<(a;(LRiS;(j3yc6ZEq%^xUoZe0)h&qytC7okQN8P*no8XVjKqq>$IFg_ zrn7maqOw)IoRQd&t$agCeIBzVX5c~dg4qO=o#G+$NzX4WhSZjm-Bm%&BUbxE5mm@e zOvg~E6Z4pgu0kwJxd@{#I1}=+j@(X043V@5w}r864F(;(b7laSjX<;X5VS!K1_!Vk ziCXS)P-0~av#SBTyb19Q(g10~)Nl_~%6rTnqq+BEXeD?f%DfMdr+H-lPdiHviad{$ z_sdgZQhAZ=xSBd97at;JIm^+-zChHn7DaSkMRrYw%#TCP#7s1l3`qG+z2+6q4~kxF zJnT}GfTx9N`aWq%pwMDWkUr>5&QU7~>Apa%aLhURD90c9n3}0f9S_pDrR0TLavN6ygZzxtgyjzVH zBZYXL6xasvbhtz=wgh=PF@P1Y03S5?vs$y)G6(%#0&#kzSBqqcB-{I{r(1Eo*v zBt9C;*%MHp)&KoSL^7RV9Avnh0%Ek@IS$S!$AAaKxT8UcijuJn*2+R#`Iqx#+^$*tDtH4~=~nc-4Lc<)5Q$gT1kP{lPzsL^0$O(&4@<`QeH@aFI2>cJI7 zDdruri7e#LF-rLDN24y{!5w}^gAbfwKai8LkWpiRiufIBsoM%sD0TaasEh?wTwFmJ zn9yl2;_!BH0>iNq76!nJAyNTul>tzuy6`z-_Z#Q|!X**$)EAL34b zwaJ0Q6Y3QNDrtZwUCD(Wq8KVP#PXyp%TCuPeMe#lpm#X8-+kMuQ?!>KBK&)@>hG;6 zx9@+pa%NgC`vZy-DYjZa1{$?ld;lAo^9Qm%Z1mO;3^Wzp!pli4ehEkImktWBcglVw z5{hF}m{ABJh^s+`=UkFurm@pz-e%|2U?I}|q<%Q@ZJkAQ0+;Vm230@+JzxMJ1`q&r zauj$N(?Kvjqu8^4M^C74;JYcy4_Rv?T@7v@Bl$~O{GpOtXt5v^x1G6EqQlFq`}spn z^gNHXJ?<%Kw*0?;QEf3xY4HsOhxvM@2|!mR6tm}gV*+YY&PpoTcnEA;Pkbf!#Z;_e z7$8^&zR2tvO76fi!f56YBfx?z9Y zPo@Nu@v?Gwc?b8IVl`otWtGs%cPC=gR9SLVsq|WgDXlwC)5#XHhL%e8!wVS>96UPX z;&O|1KgqsFjKqtS&q2l9O^!4F=L}{(S5YingO)Fz@ibeMOLj(4V?;}+!g%D{B1NXascPFie=us&KY zOoEET6qT__>LV-~`<29^rRg>R+ywuJi#_DA09kXWeqsl=Nt=30KlEFOp{w}Xs%IEKqhL52%MbC!ET=|&i$i$#U$PHKcf;?1CwP{-7;p*29p!$XHb{-3!4zwnKj)N3fj zMU|Bm8AI_2*>sU~U|@{7Gtz5kkvCd?YA^i4g{Z7azQOf4#XJyJokBD9@|vRlZov85fb~`C{zbiEosHl^ zJY@w)1B_6>mEW)f&C4JG@Nb(5T}7dT!!GbE%wPZlXCM5~Bh8?34T<+t1OR(F(GJYo zD7WIE)xgmQCiO(d@kjzyYL}(fxzg4>piRR*pM{IVE6AlnLO#IQZhJW zlbo{K2I7G3Dm7tJNV|sx$pAWDAQEzUQJh{;G`t{3k1W+^m-$TY-(mM<1!5?{uEr& zh#TKcOa?$jFL27j)hk6oZV1yiJ6BAf-_bC}oqH%0ie9qAU}ozoYwTDui6cgfs^jkT zrf(;iueD)70#yRYIHX=iec@M6eOPHUOC8+qIb?yw&x3%PurQcTmQp_xR8&jXi2xUs z%9NY-{maOJ5BJ=40QA4nFK8>)LGU682mp5IJAgk{B%qbPhynGV01&p!K>!V)1^R(7 zzzc2Vf}FLNU=&SM4Kg6>DJVFRUYK%j(`PIC_&t_7${9n4knrd4N|cwy@sK;D9ZTIX zWFj6r!LoVNa{lq@O?k@;Swm9}t7)+2+i%K~J{6>YFRYy--RdMk%4?Z)p|vylxdm(K zijz#_)HT@kokUsBc6r2A4QwdAkfj z&1k5=1A+i9Z=`V;|0a6?Y0GOum^;?Mz&AsxjKcLjZHfcZx2#{V4TmBl!9w{>0Ad`Z z9%SFXXr&j~Ps+U|gR;*RS!7<`ENphrseC1fg-0tRE68-&xgPC^Lar!j;uc-f3ulVU zU_Zf-hLapnZcc$bKsrgc0yz%72Y<`ob-9?eHPniLQ$;&=D`+rg!X>!amuZhDe-~kp z-Cg(8Ng1V5r9mDm~^D zO41z`c&Vn+cx8u0tJx55ENsl-*&XG+hO&TE50jRV=!&wUm?vlyt2##VULb!wgX=Q& zQyqJzw@O}`31SQWtQ!?5CDtudr*ivuD^h!M01=aEB?N-TjIk7Kpvw^>96v1=8<&i( z5~>nsahxr&VmY=-FBJ|-9|*shDI-yhGsB&Wqd*P(=Q9T`7tR+aEv~#d+X#wXy5P_s-IQ061;A~<9x5+W~B)H?^5(0@>sw7f- zlOZ`_+C_O|nua7nSr?4Nn@pFkD8VC=6l?`_bp;T53fiqGARQj%RL}vzu6KINadNLE z7Dw|8(sNOAFAR+H-Nod{)TC~zxpw4;9NBt;ud(6sr^tXz-RP&SbDtzk9q!#?@E*3N z90c^3AIzAvMXZY#5y0GMC3Q#Gd&?;qZb%O^TAVO6aIaoD`qlzdH(=~ch z9byh&PH+L)Me!*J{NupTGR%a>wGE>{H7S>BmTu^Z#DkQ~I7|IS8S~I~`Ar&fP22|wLOhAAFcAiXVU{5bTXgDAf zl0aa@01Qy@cqE2^o)7^36sO%k)7xiayu%Kl0 zH@J6hi*Ks-pBKK*caLc-ljPdw(OQSr;Rx`jqVNR!+$HhuYRuD+Y-ZLwxXWCes3!OT zrB1UD28;romaL3DN9$s3j6eW@`G^oRyc|6fPy3vU$@-CecX*^^`HwCk1RZZU2+154 zonaqRTDdWh^_eNUAgMs43B;RGGwuZS+s=bhd=1b6KEqU5;Z5OtR^}xB0;Bc-1ze$; z<-jn^kfTV*@L48Ue3>4U?6Vxo8xDR87)3ASmNWTIK+n8%?{k>lK`B$-+B;%8&J7^LLl4YfZ1)ublCd1SQT ze@VdBC*E0m&YP#-`5j^)M?AS?9EIz9mMd$;%&Cw;e*Fa5&tF~J+lD}9CyOq4c#mHs zX;YBe@dZnO(2g$*ijmw{63eh@yJ1)p z2xZfh^xOYoC4-*B$T*oUnDj@Tc0JZ}-qR0;Q;-r_6&H6KR&-tIg>qd^tgM-I%sy&^ zM!lC=gp+j76D@CQ$i*u!R2g5FkP@{T9XHhXH!-1=05w#jDcHlZa=Hr8sZ4oepctV< zpgitWFpQk}VoY9{S;~eyUT->gfsU;ldvP{H?ACTTVmj}3cUHR0yjP;VkWYAHZbS(Akolg)Gx@g$BiQ z?H$Yo0wrrqJr(qbt?%x(F!ndx?{qWiHK5hKb>;zBF#xbq9vK24j>l+BVJPF~IxB%- zjBF!96al0pRsaI<>~sczN+ci#4M*MxKn#kKe=HJ$^0|f|tk{B8mJnF7;a1{_1yBQ* z9>@?NbspAOTQJg)jgGXgPk0OoLYJBl!(8ASU}ft>>UG%QQKPccthu_)?N) zDX0*MS2j}FjQ7JdnojzaFMNp8-=uYZf``zau zoZ4ASUK^Onq$co z;_{Bo7J4Q;?q=C*DWMxhhiN8)^orY1&fTUQRvEIm_+WxF~o2`6iwwJ}!`VOvM35)_b9QdO0Mouuh(988vV zR{Zi05kVB*A5%a^vdsl68u+NOMU6ETN>*U6`xAhjoN3%!a-0pr zb%hA>A1-=W>1dHWrVIzC$TXeI2}#JUtoRVI2qZ)!76}qlF+&CTk|OA7;E?})svN`u zmw@HIO`@)Pa8ol*^wxPT35Qg622UU+AV2NOMIyx!3pD<^WE8b6msnD05w!~7!erq8 zNGrR}R|eQ|xje_zq_EOd?L=RW5X^%d0S5X4PH1Yol$F9f9w01J>D(&M#wv()OS#+5 z57?(32@x}1bB3s1(wf?pbRQpkVyjnimB?w%#lf{T)EmUdi@H8@)g7c7e-+lEmw3|q zTr^Qx$$w*+&x*!aR%3XozU!LvFWh|%Df@zeSuitw?{WeNeAinJfv2?P=OXpNO?)?q zYJe!GmTV0jyUtEKNuSwB0tkYk=opi2t`H1xqOz2ww9i2e%W@Mr7K0d=zCrOCh^o>* z#OE`Ztdaf-mjx&f$mQGyHuw1a@T}-~te}VnGE?|aV_Gf@tx14Xfej4Bu9pHaQ9uY+ zh{9dNSwyW7%tIom1Up;A0QCCQ4fc*?Afy2z5?LZ$m$KuYr`*1Q5Va45>wC!3`qT&n zzi*)bK-YFWg;s!QRk0)0MZ8;}7(R-_oJbo~-1X>Hn*%n?oR>q6wR6}2#hY@O_f=j1 z+5D;r#1>D5IM4!xoDJ6pKx6I{NG~r;Aj`sY@Od}@8)g9TqaP1heBM`6G~zvQ3xT}c ze6|M}I@-mWU9#^3ZXdNc0?8xh`20U@VGNDzs`45^YSUU^+2WvaY55!bt8cNK7UY_W zLxRbYHS$>lyeTVxyHlO&aYWP2r-tm?^s`Ob_RBW61&Jaid{LgOYA2JvXIC5Kc=+(1>vDYG&`(O**(h$Zp%Sie;IvE%|inL@I;w^(=nB%r}Ls6*9e*}DRw0yY_TALt+yTJYH+f2Ia_NcOD zkAj%|*GOhFTRZk~#Ph-vobPIgZ;biNrIr~RoL5IS=kSe@CsHKe&2nVA z7G(3Z(J!f{0Nn1djrw1aO#_C$2_%@;|P{oW_y7MsDwDeNbrFdZVDa)V5+v->>S6<4u zDV^fy7ycNh&L*Ccn#%lqydWi6c*|}Zu6LpE2v42kavRo3V@%eHUM_hsVkQ<$1w_#l zyCUjF6roW;MqhQ1UJ3T9-0}(pV~`?vYyZHf5m9I8#Byt(1kx zFUP1DTymT1(GM)9-&bO6IQ2rr{acF)Gzx=|8>K%w3as&vAF2`tn$N`ROL9506xp^l zo;}u@a7#b^!yISV@KO!1KX)y0fetT~JtcUMotCB%ZMzmW0rTAr2;P0@qD2=NBN1n= z&{NvrP7FIRzLw~I0PgE>I25p>mHAqkkYxl}q5^BSOB<0nd~PrYc$uh5kMF>Zai6mW@xIU@#(P)P;9?W6EHqGbCW9= zAK+5*0ahl+0ZSe*0%}p>G!EPt@~$8ty3!De-I)ibE#%<93Z9@C^J216{*M-;bpxT( z@A9!`?Cp;$T%;w2D+HQtnevlM{G#7Q^6D>Ex3Wnkq4V`gzbW5V^D}aWZzMsfUuiF8 zyC&n_=Q}iA2aDuJ^&h?rnqs1xr7E|RlLi8O_}!yR`^7t03Nf&?w*i25VJsbj*svUq zDE-+^pA_bSGc2~$QQ=qiyMPsZEzBFm5e)z+v+&sDv2@si_^_PPT(i&U7It6t_&Dm8 zV)q_eXXJ{C4}UtZ)iYNsk>nL5vLns9!B?3OZL3j3F;Zn;1^uehDJ{PvSz#&2J+hN^ z22dtUq#BZ{^~(EAPpMmV>t%wfwvpQ~?PwlI?Tu3N% z-qPD!dvOaZ2(+|wdGbH$R8_fT+J2n5BV|@(-Ey34o$$D|%^;!ED@YsXa?+`b3c*$p z2PM&*G{>W|<$}nJboAxCysz)k#5eCAQEoW;VBT(J2KPWN$E>nUH zhwEoE$;0GXfdl=kWz0-U0$|0fU{5Q?f?^Aa25n@TaNrApsXvMeQ?C&KSIRg{#+h+= ze5|Ce_Ui~pV$MuB7053E;R$R<^1C#6k02&Q+r~;G2&*VmD<)w69vM$98@^vFSmTu1 zD80)nWEIL${t2dm4U`j-OABo@YP4;-j1rw^~1Tz!H04>{jbHt3rAj)tUFvu7SPH`>D z>?%$5EDkQn$aFw2e%^wmjhF)|@G23S6Pi&1=?ny625|#4UQ#{vHY@L?vXK&SoS8Sh z$tU#AsoelHcn#A`jX{i4GmSKVQFPMZ-K_sQ=6S6Q`9JWAr$VEXe`k_Sm(3x3 zlSG~>fjj{^N6-PlK&-4l;ddqC?Zx51**(1+;B=0Wkuq~Fbbl;j5LSf8lPl2YXD#>} zAqo4-zE&DlCe9lheenl+EcxXr#a?1cbW5)BwLQcjf|Bl5W8O5oM?jQcy8d z6-EFPg~UPu;XphFnywy^3G#|406%hsU;&i9j+xnor69|cEXa}p@cJ&B_bxHu&oYoo z3sm$nEekXBt+bFnDIf&oiW>^@SRMBV6{msFiy$|>^r9;myjmyWN;Zi zmK?nS1tb(BCc&YpX++w98c+ZWU|1w88=yLZkj!GT@$Z}hbRQ7r#@vG#D>Tq5%Y-3I z#01K1umLft+X0rq3Gsjw-e_xef!3)EfT`Y}6$=hi#hz>@g=GN)WK|^!Qc`EhH04e1 znn6|^ysWQbKnS5W8#Gs-rItp@BquW_Qk8X14Hanr0?TH+xk5~H9&>8*AhDnWqRg~+ zK@2bR5$bXyg#H>p1dvHN}lvM%5d`>Jt%EP z07&DL4$;g&RKBV{fqIJ}2i;{lv=m@R*ag0`OanYesdJHtMr?W$IpXQwAVCP?109Ee z7^*`E052mLex)M7okd)w^jKR0fbtg2r=c;d3OPxa;#Wwd50lYr%ia>1}CsGc%t zpqh#Cwgrb_Q$%|!s~4dt6!gcqQ~N&@=`?*x?Ssm0K8RCQkcFB~8M;$#In-9L@f4@- z@#IO}zNeALxgXi_SC^qAm4Q^C)1Y-JDi8OG0Y!YL4V{!${{^5aZjbMo=^h0NA+N%djojBY-*2+rY?a1S(zw zA8<2W!Ye|-ZFLODONFMcF;2_xumSS%_B(70cHc!N5h7k;QeaMIO#ZK4OZ3E~LHxc} zY>koeBNgks<*C-{07||663nvW8PA(;<1|B8JG`Q=fQ8B0e6IKPoMQQ%E?&))5(=<7H0+#qQr6SzMdp4P)tJFN7Pmp4 z7M3okX$r)jDU^k59=CmjWc-=G_@tqT`5(SmDcEb4gDX~9el^Bw#d$jK%^4e|)VK^S zFo1wpj;V<5;5E4x6pL-ai5bmxZeG(C77IelSIfMuGN0|R{sbR=2|viGZN4pDPLs1H zNnb-wC;mQC#IU8UC&>HAtulMe&hmmECX!^t`jJxE^;X6=J|;?jn=@xT zo!FYrH^+qciJ+5|xhXFmrEa~B0ti_ulVOR{umvtsNDLCdUso<*vA}BU315o7>i`z& z?x6z_V9#X8{9w)PK*Su{h95B}5&+WDx0SIWJ_EoZ7(Zg=fGC~12qkf|`r9jyQwY}( zEzrs>YAodUITCizf1_r0c~!wyQ>e5rS9lTRQrTs-#9}Q(wH9!F$EHb5v>!S(4{iHT zN4B~0kjiO4O6yy|htM^oSYB2*Oh@^mZWkCO?BONI91~qo>$(ah&Ja>faYDMupaQ#R z6ogSp5k#$nF$?`Pj}xOzGr*Wn0<*lF$kcFN(uImi^F!g`ol`VXWuHAO0g>QE3yxR7 zn%faFUt1QyhGnXdW)ijQF=O#3kTTaV8pVE^s(UDQ`8MZ!JX-70EMk+=MozQRO5rnc zdg&37(7Cq^wMW{RX}jZQLW0Dn(bQB`sjbPJj~$zx_IR>gdPV$GKwP`5r@ENDB7`ow zL~2Ds=Z1Qs?MyV>^o^vk_LO7NiIUogARpl^YIjcb5zQD8^+HCyT)GIZj1*Z=UB=1; zzzA1>)=`4)B>dfx|JdRH6|gYbfG+bw0IZh=P~voe-ve2^g!0`$fK1uM%-aK?5U)q< zLIp-W1YQr2=U!%!MT79Bikx(>`Oc*cI#-BI>TBrLMck z64dKrMrx#t{TQ|L)|Wo9c=;UEv?Zw`&Tmifd&P?0cw}<3p!7$HkyM~T{Fvk95CAiX z4!nb|R)7o&MFX|LVxG(vrK~~mseucA(gB}^w|tO5RTLR21&aU`AC#|H z5F*n+Z&wi5LD)Ej6V2=(7dCH4ihb)605;_eI0vGm1NV8l5E74*w1vRW0f$|-wc24~cQjlzI_ zYC{r%v2|KEo_mZUbZ`=((2vZ{aO|y;-rEE+SoyZg%2*Us+Ue39`;lgGY%gsH!V zG#w-ygIhc8DS{hjP>e9dYgsZTE#`s_>~CtLJI zYrl5caXH_CDl8=+oI5@U?;+&6hItx)E)C~j4#Ty0EOvFSN6N-N4LITsW(?#G=^eQ|5@pOk4u2P#ZbAQ&31AcS`B$yVZD+fLb+i{| zZN2FaHDfL~Se~Jo(oOK>;+iJr+SaO%ZBWHO7g#8#0oN zh~K#r1ijR*g$|2&0w@M56~n*})-W<20W5JdovJWf2ug1zkS$xf+pHqptH zP^FzbWSoebe@{1Ix)XMlbo8x~lUw0z7IF)zYFOj-0|9wIaiNm$_@v~l=!`Cd6? zzc5Ec3FEDhg$TigTPzV#2+QdE)>#6K(j+M(Xj(~0v$!rhmLs{SG;w^y+QTo_26Pe= z>2Q^o=ZqEbq=V2(DZL!s8_$6-%#!%)2i7>D@O&yu@!A>~jB?8*SVr{$5+z#(X$NJ> zf9_UsDs+>wa+a)M>He8{3HMTCV~&pK6T`I_&!B0`CY`=Zw#PzRCaeg08FWk0~FC>6{a zHy1G}Mr_{|6ybSb%3t?&1B)HIH&mA^*_)lV`IsmbJ_rrfFeft)NWPd(vwd^x-_11e4!E&ig;dB8O1qp!xhAGG) za>XJLztd`o0X9er34lU~bSg0naezzcx4Rl$i||UXgX9oLF{QX3G(`RJEDSTp5*z=f z?MdM2EERq(9@p_J_(nyU_(Ps1DN6)DZx$T}XmN%7P4-E{VvGyYjAwT!#T*!$xAKK)dda= zq%qn_8ns#gboB?$0E6CqOl$~z?BIb+KUOz8!l>38$`t=J(=}=IUc0Ikjc@lFAeYj!aPwyyGsf9T*�&u0 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 diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/WdpBitmapDecoderEncoder/CPP/wdpencoderdecoder.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/WdpBitmapDecoderEncoder/CPP/wdpencoderdecoder.vcxproj deleted file mode 100644 index 82611d115d451..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/WdpBitmapDecoderEncoder/CPP/wdpencoderdecoder.vcxproj +++ /dev/null @@ -1,126 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21125.1 - .\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/Resource.h b/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/Resource.h deleted file mode 100644 index 8c31d345818a7..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/Resource.h +++ /dev/null @@ -1,31 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by Win32HostingWPFPage.rc -// - -#define IDS_APP_TITLE 103 - -#define IDR_MAINFRAME 128 -#define IDD_WIN32HOSTINGWPFPAGE_DIALOG 102 -#define IDD_ABOUTBOX 103 -#define IDM_ABOUT 104 -#define IDM_EXIT 105 -#define IDI_WIN32HOSTINGWPFPAGE 107 -#define IDI_SMALL 108 -#define IDC_WIN32HOSTINGWPFPAGE 109 -#define IDC_MYICON 2 -#ifndef IDC_STATIC -#define IDC_STATIC -1 -#endif -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS - -#define _APS_NO_MFC 130 -#define _APS_NEXT_RESOURCE_VALUE 129 -#define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 110 -#endif -#endif diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/SampleID.txt b/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/SampleID.txt deleted file mode 100644 index 16304d284ae24..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/SampleID.txt +++ /dev/null @@ -1 +0,0 @@ -win32_hosting_avalon_page_cpp \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/WPFPage.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/WPFPage.cpp deleted file mode 100644 index 5a01a71753e76..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/WPFPage.cpp +++ /dev/null @@ -1,202 +0,0 @@ -#include "stdafx.h" -#include "WPFPage.h" - -WPFPage::WPFPage() {} -// -// -WPFPage::WPFPage(int allottedWidth, int allotedHeight) -{ - array ^ columnDef = gcnew array (4); - array ^ rowDef = gcnew array (6); - - this->Height = allotedHeight; - this->Width = allottedWidth; - this->Background = gcnew SolidColorBrush(Colors::LightGray); - - //Set up the Grid's row and column definitions - for(int i=0; i<4; i++) - { - columnDef[i] = gcnew ColumnDefinition(); - columnDef[i]->Width = GridLength(1, GridUnitType::Auto); - this->ColumnDefinitions->Add(columnDef[i]); - } - for(int i=0; i<6; i++) - { - rowDef[i] = gcnew RowDefinition(); - rowDef[i]->Height = GridLength(1, GridUnitType::Auto); - this->RowDefinitions->Add(rowDef[i]); - } -// -// - //Add the title - titleText = gcnew Label(); - titleText->Content = "Simple WPF Control"; - titleText->HorizontalAlignment = System::Windows::HorizontalAlignment::Center; - titleText->Margin = Thickness(10, 5, 10, 0); - titleText->FontWeight = FontWeights::Bold; - titleText->FontSize = 14; - Grid::SetColumn(titleText, 0); - Grid::SetRow(titleText, 0); - Grid::SetColumnSpan(titleText, 4); - this->Children->Add(titleText); -// -// - //Add the Name Label and TextBox - nameLabel = CreateLabel(0, 1, "Name"); - this->Children->Add(nameLabel); - nameTextBox = CreateTextBox(1, 1, 3); - this->Children->Add(nameTextBox); -// - //Add the Address Label and TextBox - addressLabel = CreateLabel(0, 2, "Address"); - this->Children->Add(addressLabel); - addressTextBox = CreateTextBox(1, 2, 3); - this->Children->Add(addressTextBox); - - //Add the City Label and TextBox - cityLabel = CreateLabel(0, 3, "City"); - this->Children->Add(cityLabel); - cityTextBox = CreateTextBox(1, 3, 1); - cityTextBox->Width = 100; - this->Children->Add(cityTextBox); - - //Add the State Label and TextBox - stateLabel = CreateLabel(2, 3, "State"); - this->Children->Add(stateLabel); - stateTextBox = CreateTextBox(3, 3, 1); - stateTextBox->Width = 50; - this->Children->Add(stateTextBox); - - //Add the Zip Label and TextBox - zipLabel = CreateLabel(0, 4, "Zip"); - this->Children->Add(zipLabel); - zipTextBox = CreateTextBox(1, 4, 1); - this->Children->Add(zipTextBox); -// - //Add the Buttons and atttach event handlers - okButton = CreateButton(0, 5, "OK"); - cancelButton = CreateButton(1, 5, "Cancel"); - this->Children->Add(okButton); - this->Children->Add(cancelButton); - okButton->Click += gcnew RoutedEventHandler(this, &WPFPage::ButtonClicked); - cancelButton->Click += gcnew RoutedEventHandler(this, &WPFPage::ButtonClicked); -// - //Set the default font properties - DefaultFontFamily = nameLabel->FontFamily; - DefaultFontStyle = nameLabel->FontStyle; - DefaultFontSize = nameLabel->FontSize; - DefaultFontWeight = nameLabel->FontWeight; - DefaultForeBrush = nameLabel->Foreground; - -} -// -// -Label ^WPFPage::CreateLabel(int column, int row, String ^ text) -{ - Label ^ newLabel = gcnew Label(); - newLabel->Content = text; - newLabel->Margin = Thickness(10, 5, 10, 0); - newLabel->FontWeight = FontWeights::Normal; - newLabel->FontSize = 12; - Grid::SetColumn(newLabel, column); - Grid::SetRow(newLabel, row); - return newLabel; -} -TextBox ^WPFPage::CreateTextBox(int column, int row, int span) -{ - TextBox ^newTextBox = gcnew TextBox(); - newTextBox->Margin = Thickness(10, 5, 10, 0); - Grid::SetColumn(newTextBox, column); - Grid::SetRow(newTextBox, row); - Grid::SetColumnSpan(newTextBox, span); - return newTextBox; -} -// -Button ^WPFPage::CreateButton(int column, int row, String ^text) -{ - Button ^newButton = gcnew Button(); - newButton->Content = text; - newButton->Margin = Thickness(10, 10, 10, 10); - newButton->Width = 60; - Grid::SetColumn(newButton, column); - Grid::SetRow(newButton, row); - return newButton; -} -// -void WPFPage::ButtonClicked(Object ^sender, RoutedEventArgs ^args) -{ - - //TODO: validate input data - bool okClicked = true; - if(sender == cancelButton) - okClicked = false; - EnteredName = nameTextBox->Text; - EnteredAddress = addressTextBox->Text; - EnteredCity = cityTextBox->Text; - EnteredState = stateTextBox->Text; - EnteredZip = zipTextBox->Text; - OnButtonClicked(this, gcnew MyPageEventArgs(okClicked)); -} -// -// -void WPFPage::SetFontFamily(FontFamily^ newFontFamily) -{ - _defaultFontFamily = newFontFamily; - titleText->FontFamily = newFontFamily; - nameLabel->FontFamily = newFontFamily; - addressLabel->FontFamily = newFontFamily; - cityLabel->FontFamily = newFontFamily; - stateLabel->FontFamily = newFontFamily; - zipLabel->FontFamily = newFontFamily; -} -// -void WPFPage::SetFontStyle(FontStyle newFontStyle) -{ - _defaultFontStyle = newFontStyle; - titleText->FontStyle = newFontStyle; - nameLabel->FontStyle = newFontStyle; - addressLabel->FontStyle = newFontStyle; - cityLabel->FontStyle = newFontStyle; - stateLabel->FontStyle = newFontStyle; - zipLabel->FontStyle = newFontStyle; -} - -void WPFPage::SetFontSize(double newFontSize) -{ - _defaultFontSize = newFontSize; - titleText->FontSize = newFontSize; - nameLabel->FontSize = newFontSize; - addressLabel->FontSize = newFontSize; - cityLabel->FontSize = newFontSize; - stateLabel->FontSize = newFontSize; - zipLabel->FontSize = newFontSize; -} - -void WPFPage::SetFontWeight(FontWeight newFontWeight) -{ - _defaultFontWeight = newFontWeight; - titleText->FontWeight = newFontWeight; - nameLabel->FontWeight = newFontWeight; - addressLabel->FontWeight = newFontWeight; - cityLabel->FontWeight = newFontWeight; - stateLabel->FontWeight = newFontWeight; - zipLabel->FontWeight = newFontWeight; -} - -void WPFPage::SetForeBrush(Brush^ newForeBrush) -{ - _defaultForeBrush = newForeBrush; - titleText->Foreground = newForeBrush; - nameLabel->Foreground = newForeBrush; - addressLabel->Foreground = newForeBrush; - cityLabel->Foreground = newForeBrush; - stateLabel->Foreground = newForeBrush; - zipLabel->Foreground = newForeBrush; -} - -MyPageEventArgs::MyPageEventArgs() {} - -MyPageEventArgs::MyPageEventArgs(bool okClicked) -{ - IsOK = okClicked; -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/WPFPage.h b/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/WPFPage.h deleted file mode 100644 index 821738f3166b6..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/WPFPage.h +++ /dev/null @@ -1,87 +0,0 @@ -#include "stdafx.h" - -using namespace System; -using namespace System::Windows; -using namespace System::Windows::Documents; -using namespace System::Threading; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; - -public ref class MyPageEventArgs : EventArgs -{ -public: - MyPageEventArgs(); - MyPageEventArgs(bool isOK); - - property bool IsOK; -}; - -public ref class WPFPage : public Grid -{ -private: - Label ^titleText, ^nameLabel, ^addressLabel, ^cityLabel, ^stateLabel, ^zipLabel; - TextBox ^nameTextBox, ^addressTextBox, ^cityTextBox, ^stateTextBox, ^zipTextBox; - Button ^okButton, ^cancelButton; - String ^_name, ^_address, ^_city, ^_state, ^_zip; - FontFamily ^_defaultFontFamily; - void SetFontFamily(FontFamily^ newFont); - FontStyle _defaultFontStyle; - void SetFontStyle(FontStyle newFont); - double _defaultFontSize; - void SetFontSize(double newSize); - FontWeight _defaultFontWeight; - void SetFontWeight(FontWeight newWeight); - Brush^ _defaultForeBrush; - void SetForeBrush(Brush^ newForeBrush); - - Label ^ CreateLabel(int column, int row, String ^text); - TextBox ^ CreateTextBox(int column, int row, int span); - Button ^CreateButton(int column, int row, String ^text); - void ButtonClicked(Object ^sender, RoutedEventArgs ^args); - -// -public: - delegate void ButtonClickHandler(Object ^, MyPageEventArgs ^); - WPFPage(); - WPFPage(int height, int width); - event ButtonClickHandler ^OnButtonClicked; -// - //properties -// - property FontFamily^ DefaultFontFamily - { - FontFamily^ get() {return _defaultFontFamily;} - void set(FontFamily^ value) {SetFontFamily(value);} - }; -// - property FontStyle DefaultFontStyle - { - FontStyle get() {return _defaultFontStyle;} - void set(FontStyle value) {SetFontStyle(value);} - }; - property double DefaultFontSize - { - double get() {return _defaultFontSize;} - void set(double value) {SetFontSize(value);} - }; - property FontWeight DefaultFontWeight - { - FontWeight get() {return _defaultFontWeight;} - void set(FontWeight value) {SetFontWeight(value);} - }; - - property Brush^ DefaultForeBrush - { - Brush^ get() {return _defaultForeBrush;} - void set(Brush^ value) {SetForeBrush(value);} - }; - - property String ^EnteredName; - property String ^EnteredAddress; - property String ^EnteredCity; - property String ^EnteredState; - property String ^EnteredZip; -}; - - - diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/Win32HostingWPFPage.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/Win32HostingWPFPage.cpp deleted file mode 100644 index 9851d3e70734b..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/Win32HostingWPFPage.cpp +++ /dev/null @@ -1,602 +0,0 @@ -// Win32HostingWPFPage.cpp : Defines the entry point for the application. -// -using namespace System; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; -using namespace System::Runtime; - -#include "stdafx.h" -#include "Win32HostingWPFPage.h" -#include - -#define MAX_LOADSTRING 100 - -// Global Variables: -HINSTANCE hInst; // current instance -TCHAR szTitle[MAX_LOADSTRING]; // The title bar text -TCHAR szWindowClass[MAX_LOADSTRING]; // the main window class name -HWND wpfHwnd; //The hwnd associated with the hosted WPF page - -// Forward declarations of functions included in this code module: -ATOM MyRegisterClass(HINSTANCE hInstance); -BOOL InitInstance(HINSTANCE, int); -LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); -INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); -// -[System::STAThreadAttribute] //Needs to be an STA thread to play nicely with WPF -int APIENTRY _tWinMain(HINSTANCE hInstance, - HINSTANCE hPrevInstance, - LPTSTR lpCmdLine, - int nCmdShow) -{ -// - UNREFERENCED_PARAMETER(hPrevInstance); - UNREFERENCED_PARAMETER(lpCmdLine); - - // TODO: Place code here. - - MSG msg; - HACCEL hAccelTable; - - // Initialize global strings - LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); - LoadString(hInstance, IDC_WIN32HOSTINGWPFPAGE, szWindowClass, MAX_LOADSTRING); - MyRegisterClass(hInstance); - - // Perform application initialization: - if (!InitInstance (hInstance, nCmdShow)) - { - return FALSE; - } - - hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WIN32HOSTINGWPFPAGE)); - - // Main message loop: - while (GetMessage(&msg, NULL, 0, 0)) - { - if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - } - - return (int) msg.wParam; -} - - - -// -// FUNCTION: MyRegisterClass() -// -// PURPOSE: Registers the window class. -// -// COMMENTS: -// -// This function and its usage are only necessary if you want this code -// to be compatible with Win32 systems prior to the 'RegisterClassEx' -// function that was added to Windows 95. It is important to call this function -// so that the application will get 'well formed' small icons associated -// with it. -// -ATOM MyRegisterClass(HINSTANCE hInstance) -{ - WNDCLASSEX wcex; - - wcex.cbSize = sizeof(WNDCLASSEX); - - wcex.style = CS_HREDRAW | CS_VREDRAW; - wcex.lpfnWndProc = WndProc; - wcex.cbClsExtra = 0; - wcex.cbWndExtra = 0; - wcex.hInstance = hInstance; - wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WIN32HOSTINGWPFPAGE)); - wcex.hCursor = LoadCursor(NULL, IDC_ARROW); - wcex.hbrBackground = (HBRUSH)(COLOR_BTNSHADOW); - wcex.lpszMenuName = MAKEINTRESOURCE(IDC_WIN32HOSTINGWPFPAGE); - wcex.lpszClassName = szWindowClass; - wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); - - return RegisterClassEx(&wcex); -} - -// -// FUNCTION: InitInstance(HINSTANCE, int) -// -// PURPOSE: Saves instance handle and creates main window -// -// COMMENTS: -// -// In this function, we save the instance handle in a global variable and -// create and display the main program window. -// -BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) -{ - HWND hWnd; - - hInst = hInstance; // Store instance handle in our global variable - - hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, - CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); - - if (!hWnd) - { - return FALSE; - } - - ShowWindow(hWnd, nCmdShow); - UpdateWindow(hWnd); - - return TRUE; -} - -// -// FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM) -// -// PURPOSE: Processes messages for the main window. -// -// WM_COMMAND - process the application menu -// WM_PAINT - Paint the main window -// WM_DESTROY - post a quit message and return -// -// -LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) -{ - int wmId, wmEvent; - PAINTSTRUCT ps; - HDC hdc; - - switch (message) - { -// - case WM_CREATE : - GetClientRect(hWnd, &rect); - wpfHwnd = GetHwnd(hWnd, rect.right-375, 0, 375, 250); - CreateDataDisplay(hWnd, 275, rect.right-375, 375); - CreateRadioButtons(hWnd); - break; -// -// - case WM_COMMAND: - wmId = LOWORD(wParam); - wmEvent = HIWORD(wParam); - - switch (wmId) - { - //Menu selections - case IDM_ABOUT: - DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About); - break; - case IDM_EXIT: - DestroyWindow(hWnd); - break; - //RadioButtons - case IDC_ORIGINALBACKGROUND : - WPFPageHost::hostedPage->Background = WPFPageHost::initBackBrush; - break; - case IDC_LIGHTGREENBACKGROUND : - WPFPageHost::hostedPage->Background = gcnew SolidColorBrush(Colors::LightGreen); - break; - case IDC_LIGHTSALMONBACKGROUND : - WPFPageHost::hostedPage->Background = gcnew SolidColorBrush(Colors::LightSalmon); - break; -// - - case IDC_ORIGINALFONTFAMILY : - WPFPageHost::hostedPage->DefaultFontFamily = WPFPageHost::initFontFamily; - break; - case IDC_TIMESNEWROMAN : - WPFPageHost::hostedPage->DefaultFontFamily = gcnew FontFamily("Times New Roman"); - break; - case IDC_WINGDINGS: - WPFPageHost::hostedPage->DefaultFontFamily = gcnew FontFamily("WingDings"); - break; - case IDC_ORIGINALFONTSTYLE : - WPFPageHost::hostedPage->DefaultFontStyle = WPFPageHost::initFontStyle; - break; - case IDC_ITALIC : - WPFPageHost::hostedPage->DefaultFontStyle = System::Windows::FontStyles::Italic; - break; - case IDC_ORIGINALFONTSIZE : - WPFPageHost::hostedPage->DefaultFontSize = WPFPageHost::initFontSize; - break; - case IDC_TENPOINT : - WPFPageHost::hostedPage->DefaultFontSize = 10; - break; - case IDC_TWELVEPOINT : - WPFPageHost::hostedPage->DefaultFontSize = 12; - break; - case IDC_ORIGINALFONTWEIGHT : - WPFPageHost::hostedPage->DefaultFontWeight = WPFPageHost::initFontWeight; - break; - case IDC_BOLD : - WPFPageHost::hostedPage->DefaultFontWeight = FontWeights::Bold; - break; - case IDC_ORIGINALFOREGROUND : - WPFPageHost::hostedPage->DefaultForeBrush = WPFPageHost::initForeBrush; - break; - case IDC_REDFOREGROUND : - WPFPageHost::hostedPage->DefaultForeBrush = gcnew SolidColorBrush(Colors::Red); - break; - case IDC_YELLOWFOREGROUND : - WPFPageHost::hostedPage->DefaultForeBrush = gcnew SolidColorBrush(Colors::Yellow); - break; - default: - return DefWindowProc(hWnd, message, wParam, lParam); - } - break; - case WM_PAINT: - hdc = BeginPaint(hWnd, &ps); - // TODO: Add any drawing code here... - EndPaint(hWnd, &ps); - break; - case WM_DESTROY: - PostQuitMessage(0); - break; - default: - return DefWindowProc(hWnd, message, wParam, lParam); - } - return 0; -} - -// Message handler for about box. -INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) -{ - UNREFERENCED_PARAMETER(lParam); - switch (message) - { - case WM_INITDIALOG: - return (INT_PTR)TRUE; - - case WM_COMMAND: - if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) - { - EndDialog(hDlg, LOWORD(wParam)); - return (INT_PTR)TRUE; - } - break; - } - return (INT_PTR)FALSE; -} - -WPFPageHost::WPFPageHost(){} -// -HWND GetHwnd(HWND parent, int x, int y, int width, int height) -{ - System::Windows::Interop::HwndSourceParameters^ sourceParams = gcnew System::Windows::Interop::HwndSourceParameters( - "hi" // NAME - ); - sourceParams->PositionX = x; - sourceParams->PositionY = y; - sourceParams->Height = height; - sourceParams->Width = width; - sourceParams->ParentWindow = IntPtr(parent); - sourceParams->WindowStyle = WS_VISIBLE | WS_CHILD; // style - System::Windows::Interop::HwndSource^ source = gcnew System::Windows::Interop::HwndSource(*sourceParams); - WPFPage ^myPage = gcnew WPFPage(width, height); - //Assign a reference to the WPF page and a set of UI properties to a set of static properties in a class - //that is designed for that purpose. - WPFPageHost::hostedPage = myPage; - WPFPageHost::initBackBrush = myPage->Background; - WPFPageHost::initFontFamily = myPage->DefaultFontFamily; - WPFPageHost::initFontSize = myPage->DefaultFontSize; - WPFPageHost::initFontStyle = myPage->DefaultFontStyle; - WPFPageHost::initFontWeight = myPage->DefaultFontWeight; - WPFPageHost::initForeBrush = myPage->DefaultForeBrush; - myPage->OnButtonClicked += gcnew WPFPage::ButtonClickHandler(WPFButtonClicked); - source->RootVisual = myPage; - return (HWND) source->Handle.ToPointer(); -} -// -// -void WPFButtonClicked(Object ^sender, MyPageEventArgs ^args) -{ - if(args->IsOK) //display data if OK button was clicked - { - WPFPage ^myPage = WPFPageHost::hostedPage; - LPCWSTR userName = (LPCWSTR) InteropServices::Marshal::StringToHGlobalAuto("Name: " + myPage->EnteredName).ToPointer(); - SetWindowText(nameLabel, userName); - LPCWSTR userAddress = (LPCWSTR) InteropServices::Marshal::StringToHGlobalAuto("Address: " + myPage->EnteredAddress).ToPointer(); - SetWindowText(addressLabel, userAddress); - LPCWSTR userCity = (LPCWSTR) InteropServices::Marshal::StringToHGlobalAuto("City: " + myPage->EnteredCity).ToPointer(); - SetWindowText(cityLabel, userCity); - LPCWSTR userState = (LPCWSTR) InteropServices::Marshal::StringToHGlobalAuto("State: " + myPage->EnteredState).ToPointer(); - SetWindowText(stateLabel, userState); - LPCWSTR userZip = (LPCWSTR) InteropServices::Marshal::StringToHGlobalAuto("Zip: " + myPage->EnteredZip).ToPointer(); - SetWindowText(zipLabel, userZip); - } - else - { - SetWindowText(nameLabel, L"Name: "); - SetWindowText(addressLabel, L"Address: "); - SetWindowText(cityLabel, L"City: "); - SetWindowText(stateLabel, L"State: "); - SetWindowText(zipLabel, L"Zip: "); - } -} -// - -void CreateDataDisplay(HWND hWnd, int top, int left, int width) -{ - dataDisplayLabel = CreateWindowEx(0, L"static", L"Data From WPF Control", - WS_CHILD | WS_VISIBLE | SS_LEFT, - left, top+25, - width, 25, - hWnd, - (HMENU) 1, - hInst, - NULL); - - nameLabel = CreateWindowEx(0, L"static", L"Name: ", - WS_CHILD | WS_VISIBLE | SS_LEFT, - left, top+60, - width, 25, - hWnd, - (HMENU) 1, - hInst, - NULL); - - addressLabel = CreateWindowEx(0, L"static", L"Address: ", - WS_CHILD | WS_VISIBLE | SS_LEFT, - left, top+85, - width, 25, - hWnd, - (HMENU) 1, - hInst, - NULL); - cityLabel = CreateWindowEx(0, L"static", L"City: ", - WS_CHILD | WS_VISIBLE | SS_LEFT, - left, top+110, - width, 25, - hWnd, - (HMENU) 1, - hInst, - NULL); - - stateLabel = CreateWindowEx(0, L"static", L"State: ", - WS_CHILD | WS_VISIBLE | SS_LEFT, - left, top+135, - width, 25, - hWnd, - (HMENU) 1, - hInst, - NULL); - - zipLabel = CreateWindowEx(0, L"static", L"Zip: ", - WS_CHILD | WS_VISIBLE | SS_LEFT, - left, top+160, - width, 25, - hWnd, - (HMENU) 1, - hInst, - NULL); - -} - -void CreateRadioButtons(HWND hWnd) -{ - //Background color - int top = 25; - controlDisplayLabel = CreateWindowEx(0, L"static", L"ControlProperties", - WS_CHILD | WS_VISIBLE | SS_LEFT, - 10, top, - 125, 25, - hWnd, - NULL, - hInst, - NULL); - - //Background radio buttons - top += 35; - backgroundGroup = CreateWindowEx(0, L"button", L"Background Color", - WS_CHILD | WS_VISIBLE | BS_GROUPBOX, - 10, top, - 175, 100, - hWnd, - (HMENU) IDC_ORIGINALBACKGROUND, - hInst, - NULL); - top += 20; - originalBackgroundButton = CreateWindowEx(0, L"button", L"Original", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_ORIGINALBACKGROUND, - hInst, - NULL); - top += 20; - lightGreenBackgroundButton = CreateWindowEx(0, L"button", L"Light Green", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_LIGHTGREENBACKGROUND, - hInst, - NULL); - - top += 20; - lightSalmonBackgroundButton = CreateWindowEx(0, L"button", L"Light Salmon", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_LIGHTSALMONBACKGROUND, - hInst, - NULL); - //Foreground color - top += 45; - foregroundGroup = CreateWindowEx(0, L"button", L"Foreground Color", - WS_CHILD | WS_VISIBLE | BS_GROUPBOX, - 10, top, - 175, 100, - hWnd, - NULL, - hInst, - NULL); - top += 20; - originalForegroundButton = CreateWindowEx(0, L"button", L"Original", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_ORIGINALFOREGROUND, - hInst, - NULL); - top += 20; - redForegroundButton = CreateWindowEx(0, L"button", L"Red", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_REDFOREGROUND, - hInst, - NULL); - - top += 20; - yellowForegroundButton = CreateWindowEx(0, L"button", L"Yellow", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_YELLOWFOREGROUND, - hInst, - NULL); - - //Font family - top += 45; - fontFamilyGroup = CreateWindowEx(0, L"button", L"Font Family", - WS_CHILD | WS_VISIBLE | BS_GROUPBOX, - 10, top, - 175, 100, - hWnd, - NULL, - hInst, - NULL); - top += 20; - originalFontFamily = CreateWindowEx(0, L"button", L"Original", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_ORIGINALFONTFAMILY, - hInst, - NULL); - top += 20; - timesFontFamily = CreateWindowEx(0, L"button", L"Times New Roman", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 140, 25, - hWnd, - (HMENU) IDC_TIMESNEWROMAN, - hInst, - NULL); - - top += 20; - wingdingsFontFamily = CreateWindowEx(0, L"button", L"WingDings", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_WINGDINGS, - hInst, - NULL); - - //Font size - top += 45; - fontSizeGroup = CreateWindowEx(0, L"button", L"Font Size", - WS_CHILD | WS_VISIBLE | BS_GROUPBOX, - 10, top, - 175, 100, - hWnd, - NULL, - hInst, - NULL); - top += 20; - originalFontSize = CreateWindowEx(0, L"button", L"Original", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_ORIGINALFONTSIZE, - hInst, - NULL); - top += 20; - tenpointFontSize = CreateWindowEx(0, L"button", L"10", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_TENPOINT, - hInst, - NULL); - - top += 20; - twelvepointFontSize = CreateWindowEx(0, L"button", L"12", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_TWELVEPOINT, - hInst, - NULL); - - //Font style - top += 45; - fontStyleGroup = CreateWindowEx(0, L"button", L"Font Style", - WS_CHILD | WS_VISIBLE | BS_GROUPBOX, - 10, top, - 175, 70, - hWnd, - NULL, - hInst, - NULL); - top += 20; - originalFontStyle = CreateWindowEx(0, L"button", L"Original", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_ORIGINALFONTSTYLE, - hInst, - NULL); - top += 20; - italicFontStyle = CreateWindowEx(0, L"button", L"Italic", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_ITALIC, - hInst, - NULL); - - //Font weight - top += 45; - fontWeightGroup = CreateWindowEx(0, L"button", L"Font Weight", - WS_CHILD | WS_VISIBLE | BS_GROUPBOX, - 10, top, - 175, 70, - hWnd, - NULL, - hInst, - NULL); - top += 20; - originalFontWeight = CreateWindowEx(0, L"button", L"Original", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_ORIGINALFONTWEIGHT, - hInst, - NULL); - top += 20; - boldFontWeight = CreateWindowEx(0, L"button", L"Bold", - WS_CHILD | WS_VISIBLE | BS_AUTORADIOBUTTON, - 15, top, - 125, 25, - hWnd, - (HMENU) IDC_BOLD, - hInst, - NULL); -} \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/Win32HostingWPFPage.h b/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/Win32HostingWPFPage.h deleted file mode 100644 index 06c1b4379dfcb..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/Win32HostingWPFPage.h +++ /dev/null @@ -1,53 +0,0 @@ -#pragma once - -#include "resource.h" -#include "WPFPage.h" -#include -#include - -//Radiobutton IDs -#define IDC_ORIGINALBACKGROUND 1 -#define IDC_LIGHTGREENBACKGROUND 2 -#define IDC_LIGHTSALMONBACKGROUND 3 -#define IDC_ORIGINALFOREGROUND 4 -#define IDC_REDFOREGROUND 5 -#define IDC_YELLOWFOREGROUND 6 -#define IDC_ORIGINALFONTFAMILY 7 -#define IDC_TIMESNEWROMAN 8 -#define IDC_WINGDINGS 9 -#define IDC_ORIGINALFONTSIZE 10 -#define IDC_TENPOINT 11 -#define IDC_TWELVEPOINT 12 -#define IDC_ORIGINALFONTSTYLE 13 -#define IDC_ITALIC 14 -#define IDC_ORIGINALFONTWEIGHT 15 -#define IDC_BOLD 16 -// -public ref class WPFPageHost -{ -public: - WPFPageHost(); - static WPFPage^ hostedPage; - //initial property settings - static System::Windows::Media::Brush^ initBackBrush; - static System::Windows::Media::Brush^ initForeBrush; - static System::Windows::Media::FontFamily^ initFontFamily; - static System::Windows::FontStyle initFontStyle; - static System::Windows::FontWeight initFontWeight; - static double initFontSize; -}; -// - -RECT rect; -HWND GetHwnd(HWND parent, int x, int y, int width, int height); -HWND dataDisplayLabel, nameLabel, addressLabel, cityLabel, stateLabel, zipLabel; -HWND controlDisplayLabel, foregroundLabel, fontLabel, sizeLabel, styleLabel, weightLabel; -HWND backgroundGroup, originalBackgroundButton, lightGreenBackgroundButton, lightSalmonBackgroundButton; -HWND foregroundGroup, originalForegroundButton, redForegroundButton, yellowForegroundButton; -HWND fontFamilyGroup, originalFontFamily, timesFontFamily, wingdingsFontFamily; -HWND fontSizeGroup, originalFontSize, tenpointFontSize, twelvepointFontSize; -HWND fontStyleGroup, originalFontStyle, italicFontStyle; -HWND fontWeightGroup, originalFontWeight, boldFontWeight; -void WPFButtonClicked(Object ^sender, MyPageEventArgs ^args); -void CreateDataDisplay(HWND hWnd, int top, int left, int width); -void CreateRadioButtons(HWND hWnd); \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/Win32HostingWPFPage.ico b/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/Win32HostingWPFPage.ico deleted file mode 100644 index d551aa3aaf80adf9b7760e2eb8de95a5c3e53df6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23558 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 - - - - Debug - Win32 - - - Release - Win32 - - - - {8E4A7F4E-64A9-4313-AAD8-C0E888223A32} - Win32HostingWPFPage - Win32Proj - - - - Application - Unicode - - - Application - Unicode - true - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21230.0 - Debug\ - Debug\ - true - Release\ - Release\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - false - Default - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - mscoree.lib %(AdditionalOptions) - C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Lib;%(AdditionalLibraryDirectories) - true - true - Windows - false - - - MachineX86 - - - - - MaxSpeed - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - true - Windows - true - true - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - - - Create - Create - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/small.ico b/samples/snippets/cpp/VS_Snippets_Wpf/Win32HostingWPFPage/CPP/small.ico deleted file mode 100644 index d551aa3aaf80adf9b7760e2eb8de95a5c3e53df6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23558 zcmeI430zgx+QuJHKtxbe5gbu*030B5$VyGcDGSFOalkY&2LuvC5pp(7&2XNl96=@z zNXGH2`|DO#nx)3nwUq43A>_N=+wHsYe$U#6ePmShD&p^B>2uySylbs@uYIPy&-w#c zpc-6UYC)x+ErDgUwQ8BlZ7hIURRB*7exZ#T}AXG2* z=^weGTI5~Inq#r?3QZRh5>Vvy7AqDy*^i;1p6BY7;LQSXZ{;g>M z?fm5AM!1uJ~14CP5-;mbWJGeF0 z_iurN!(6GBI54yo4h(CB{j~e(6Em$hj*V=Fqpvo{5$e#07L+U2`wvFkn8s8S#Efo= z^|!}o{tozLT1|Z7UlaSMxZ(5FgK^Rilm(Khv|vko7i5X}36?lI))Ggklas69 zVxSe$=33+10BfA^v%)uXY;b;dHGCaV4e6oPadwt1PEE7L#SjO4G`kKy33kG#^P1yK zcx(J^Ra<Ti+?95-JJvGIWK0JnTs;vs^DcXy)=jK$w z=lme~e0CM~SM61i7E+Zy6!Vv8(?YCpX|5H%3$bS21{dbq;8I96Tne>C8jm-9o*mM| z?2r~#1K&~U^BwT@ygK+I#1UDG8sIO%&iE*}A+E1$jbGNa!S(fRas9ovxba>)TBY{5 zxxo`Rq9|oIDtY0?rjE#1t!!u9+}s5>w|2#i&D55z%y+}h?JrQ>af9~O4zA^n9=Nr$ z7jEt9gPXg&@$23JxV49(y|Q~4emOiI-)H_6dH=qKoBYhlq5e+&PW_AegZf|U-_)N} z9@RJC3MS7vp?yXL1qC4>AOQaU{+Kjr5++WZhzS!Wz}MFoW5Wxo&I+1!G$zZHn#$;`!98-<yjHIyy#~ zd!^|5sm6LSF)_!K%8;V#rWzZU(N_%@(#Q5Ewg{KRHI95 zY?=LIo2D9@#Ky*zb^O>SmHu~IE44l?Dgh-;K81z)WLJ`;4wqn z_ZrZ%LmzL?wy3kD_lL%jZ@l`n*YIJJ=8o?=KVm^dc=tK8XTNSrUK1xwofb5!|4WPJ z4;&O=5uecStt8`&$o&U)@7lX>*XEsj-g|fBj_upFZrx%^n^vq{{r0M5OP8-%`Odni z4ek1_pUw~WS3(xf3w~KkBmDdVRSL~dfr0)bOf7sI@n%@?lm1=c0pd4Z&T02Hm@RH2 z)we;5{I7(S*0d0%twR;wLsA|##n-X4buN70s`TsBg@MbpxknH6!QPjfV-K~P+VA6v z_lLE?{$Xwi?eB?&gE}IlpC>|?5A<%2&;edpIl33d4IhkA?7Qcs#@NdnYWsbf({dao zjuAS*69M!eGt37G)4CyX#*2ub-V>ij1>vuo!mzs+z)KgL@b7{zHqOE48v-$!zJ3#Y zv6uJbc6$T6dQ*KU=65px!K_Y5n$a2Cr*_9zn`Ys&O+gqt+y{pT0q+l>1_JwOKM87w zj|1D|zXCjwI@=4Ewok|DRTFSw+Z#B)bq3CDnTav%mol33yacQq;D9qB?)YqOTV(8< zhO{02IO`82u>Hs|UYpK$#ksIn_%f8&v3sW=YtK}ip9y^Z1~r3H`B~I#;2iDQ=@jeE zsP;Kl_%^%|E=9QF`(^IPTIr6TH*`S`ui5^ww+}9?dJfr}dg8{OA;>xEhiiu?LYUzwb+T)8Ci=PAZtkjWKvm68X{|HBivlm3|Y&X;^sP6+GhB5eJk92w>5I2 z+$j(Ix}hC1827D>9dK(?2jp()h@8zG@!QT$$l2N%x3+e|?QJ|JOre?J8PhnJ%Ni~CLrzWB&44|iS%zyB8@if zn`DaR3m@|O^QyPhwX#dzrgIKY+OQIBHLeiIw|EP z&VT0+jvL~&)rdRJe}-vnAIJ6*Q-ZDH1N-*w-gRv2&ZLw99b3D3xO=#{xw*T!wQ+Oz@bGBcd0?|n&$#sN_2S8-lrFX#RqEa{~iIg60Iwp0)kazxeJo zgX#N&>G3k(9Zpk`k46?8yGp_NR9<~gx%0b2>EBc6h6N*s;*a0{2Wy6O#7ZA8q(u55 zXmAg#9`ZC+QBk9x#nSQpa4CKpR!sCp#>stnXRBl-)qQFW^fsryy=(Z?FI2AS<5;lV$HB*W zpm$$$hhFu3THa~z+qYL;AE$u>2QZl)2G;Ru)3f^vUAny3rOUHDp6~jct50i}CXE|6 zZPK7&qvp+?vT*b1+^M5y`wmZgdAPT0`%H^xiXL6DvWOu*60xx;u6V#Q2{0r8adCy( zEn;IuV&g28p4jI>W#CW53OF&!CsAr~RottogHM>&s@S>DKq|7h|3SD9 zqF9XiYwfgmNUJRFhY%(1o6xLY)@?;QKJMM%9Zv1};>0~2!r#}0zp0zW`xNH9UeDj( zg}=XRQtjm}{_d~Eq+;bB6m$ICmr^L!lH$^jp`^CQQOEr>=J>f^rrg)^KRssd^D)QI zeLuo|80KTp^Sb>{=X%)v)pLRSmCW&T|B@EJinpT1Tyzb%m&zPJ_g4w`z?hFg`Rd1_ z>Wj7&9jm;{DmLy1Gsn+8Vp@!PtSTNouWWh8cdz+W{M_4Sj-PwjDs;R>k4LR3_uiS~ z=YBll{weJklr8FC(aI`*?jJPA&pn00ytW2@1pNNmFr)z)}MRaMZIsT^P*Jr zd{v~ficiI=V%Fb3xlf-prc}}2|5bcSDrP-?@&@_Qn~c8Rs-)*Df-M*%`H0H+%lZ72 zvi{EGQOr#h;dxS84CWx2AwMJBn{b$~fyU%&3N}@!=X}9qDHtRuG5tUm68j-~fkG1sqOUyGmYlwPgb z2OYaS`ssnHnDzL{f$7y1HvU2ZvOsRl96y=1qRkb)O#V)fzZuy)A>;K#iJYK%{YIx)`7mahDM1B1t%cm9kaZNYkD4X_DC9qd+$8->B5TQhB} zPLpFP(T5^y$$V8IA1dTRh5V#84>?gGBg(O=3b|S#mnh^Cg)FI%vsB;THmdl^aSGW> zA@3;U9fcgEkcSj)tKX)y|CMyJ9 zWMGAisgNZVGNwZIRLI7bES?uKuA0cIN->306SAtME58p}SdPK5N}H!(y?QQ$SPR)# zEw=cH;9p8myVEOE~ZJrY}3iIg?0rP&%LTBp=}8h@I%TXv<9-xUO`%}-uWt5a*E=2Z6^)Nip$4?6}mrb=W3r9pMm{N(?%I<=0f{ZX!iK0oKQ1d^EdG#^%`N>O4Lp#&)lc_BC`N?cbBh&ou z$Ha>#mE4>Z3XbJ2L!+Nt++W%XmzCnEDKwe#1XEVN#&9kX7z*Ba>aDt~p(O7d58 ztNMbLMIj4qo}V1Gs?t)?V|bWl{j*<9L>}8bKN)V*HyMT)&Xn7jpKpqbGz6zmVk@{(S%;moMb= zg`B=PIy$QPUCF}>xq2agFXZoq+`W*w*DN`FAuBIr%G&-D!IW`F9}` zFJ#_@jJ%MQmz-@~sV+i3UdYL7B1xFE+kg*rC_sn}}eaYVo*?J*YFZ>$;!oOJ{ z{QCgB-)1FF4i?imzkPZz{4Rvr{h7I>sgUu{%LsSK%b0JUml0-1RnN;GSP!(-+jpO%JopO`B((dnpK-(&yRaUJ6F; zchnE_k$Wv1f4{oG;*T$8Vx5|ss!Wf01@yO_$nuNBLZ4Gvb)Vu6x9f7RD3t3{RPFna z@~=**zWfUs8kYPPZCSL4e)B1xT|TXnSM+U>y|{O?8%m4vtzIr_BVKg5vCP}`*3dR} z&a!{N#n>%>kU18z!$Q_q$meQ#RW3=oZ=knFmg=8&V&`qOUg~p1N&lWwnpHmPb9YW3 zw+z)kIP(xwOMAJX5{|A*v__uZdtvV;w2rOkgeCCc1i z#a5Q%Amc3IgIa3+fBIm(x&OWTs_~Un|HxNN{coH$#m{POUDev^Dy>e{FMhe1Y5iiu zZ - -// C RunTime Header Files -#include -#include -#include -#include - - -// TODO: reference additional headers your program requires here diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/WrapPanel_Intro/CPP/WrapPanel_Code.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/WrapPanel_Intro/CPP/WrapPanel_Code.cpp deleted file mode 100644 index 95e061129c359..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/WrapPanel_Intro/CPP/WrapPanel_Code.cpp +++ /dev/null @@ -1,92 +0,0 @@ -//WrapPanel_Code.cpp file - -using namespace System; -using namespace System::Windows; -using namespace System::Windows::Controls; -using namespace System::Windows::Media; -using namespace System::Threading; - -namespace WrapPanel_Demo { - - public ref class app : System::Windows::Application { - - private: - System::Windows::Controls::Button^ btn1; - System::Windows::Controls::Button^ btn2; - System::Windows::Controls::Button^ btn3; - System::Windows::Controls::WrapPanel^ myWrapPanel; - System::Windows::Window^ mainWindow; - - protected: - virtual void OnStartup (System::Windows::StartupEventArgs^ e) override - { - Application::OnStartup(e); - CreateAndShowMainWindow(); - }; - - private: - void CreateAndShowMainWindow () - { - // - - // Create the application's main window - mainWindow = gcnew System::Windows::Window(); - mainWindow->Title = "WrapPanel Sample"; - - // - - // Instantiate a new WrapPanel and set properties - myWrapPanel = gcnew WrapPanel(); - myWrapPanel->Background = Brushes::Azure; - myWrapPanel->Orientation = Orientation::Horizontal; - // - myWrapPanel->ItemHeight = 25; - // - - // - myWrapPanel->ItemWidth = 75; - // - myWrapPanel->Width = 150; - myWrapPanel->HorizontalAlignment = HorizontalAlignment::Left; - myWrapPanel->VerticalAlignment = VerticalAlignment::Top; - - // Define 3 button elements. Each button is sized at width of 75, so the third button wraps to the next line. - btn1 = gcnew Button(); - btn1->Content = "Button 1"; - btn2 = gcnew Button(); - btn2->Content = "Button 2"; - btn3 = gcnew Button(); - btn3->Content = "Button 3"; - - // Add the buttons to the parent WrapPanel using the Children.Add method. - myWrapPanel->Children->Add(btn1); - myWrapPanel->Children->Add(btn2); - myWrapPanel->Children->Add(btn3); - - // Add the WrapPanel to the MainWindow as Content - mainWindow->Content = myWrapPanel; - mainWindow->Show(); - // - - // - }; - }; - - private ref class EntryClass { - - public: - [System::STAThread()] - static void Main () - { - WrapPanel_Demo::app^ app = gcnew WrapPanel_Demo::app(); - app->Run(); - }; - }; -} - -//Entry Point: -[System::STAThreadAttribute()] -void main () -{ - return WrapPanel_Demo::EntryClass::Main(); -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/WrapPanel_Intro/CPP/wrappanel_code_cpp.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/WrapPanel_Intro/CPP/wrappanel_code_cpp.vcxproj deleted file mode 100644 index 98f58d453c06d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/WrapPanel_Intro/CPP/wrappanel_code_cpp.vcxproj +++ /dev/null @@ -1,124 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - WrapPanel_Code - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21125.1 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/XpsCreate/CPP/XpsCreate.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/XpsCreate/CPP/XpsCreate.cpp deleted file mode 100644 index 39cf60785a05f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/XpsCreate/CPP/XpsCreate.cpp +++ /dev/null @@ -1,459 +0,0 @@ -//XpsCreate.cpp file - -using namespace System; -using namespace System::IO; -using namespace System::Collections::Generic; -using namespace System::IO::Packaging; -using namespace System::Xml; -using namespace System::Windows::Forms; -using namespace System::Windows::Xps; -using namespace System::Windows::Xps::Packaging; -using namespace System::Printing; - -public ref class XpsCreate { - -private: - literal System::String^ packageWithPrintTicketName = "XpsDocument-withPrintTicket.xps"; - literal System::String^ packageName = "XpsDocument.xps"; - literal System::String^ image1 = "picture.jpg"; - literal System::String^ image2 = "image.tif"; - literal System::String^ font1 = "courier.ttf"; - literal System::String^ font2 = "arial.ttf"; - literal System::String^ fontContentType = "application/vnd.ms-package.obfuscated-opentype"; - -public: - [STAThread()] - static void Main (array^ args) - { - XpsCreate^ xpsCreate = gcnew XpsCreate(); - xpsCreate->Run(); - }; - -public: - // -------------------------------- Run ----------------------------------- - ///

- /// Creates two XpsDocument packages, the first without a PrintTicket - /// and a second with a PrintTicket. - void Run () - { - // First, create an XpsDocument without a PrintTicket. - - - - - - - - - - // If the document package exists from a previous run, delete it. - if (File::Exists(packageName)) - { - File::Delete(packageName); - } - // - // Create an XpsDocument package (without PrintTicket). - { - Package^ package = Package::Open(packageName); - try - { - XpsDocument^ xpsDocument = gcnew XpsDocument(package); - - // Add the package content (false=without PrintTicket). - AddPackageContent(xpsDocument, false); - - // Close the package. - xpsDocument->Close(); - } finally - { - delete package; - } - // - - // Next, create a second XpsDocument with a PrintTicket. - - - - - - - - - // If the document package exists from a previous run, delete it. - if (File::Exists(packageWithPrintTicketName)) - { - File::Delete(packageWithPrintTicketName); - } - - // Create an XpsDocument with PrintTicket. - { - Package^ package2 = Package::Open(packageWithPrintTicketName); - try - { - XpsDocument^ xpsDocumentWithPrintTicket = gcnew XpsDocument(package2); - - // Add the package content (true=with PrintTicket). - AddPackageContent(xpsDocumentWithPrintTicket, true); - - // Close the package. - xpsDocumentWithPrintTicket->Close(); - } finally - { - delete package2; - } - } - - System::String^ msg = "Created two XPS document packages:\n - " + packageName + "\n - " + packageWithPrintTicketName; - MessageBox::Show(msg, "Normal Completion", MessageBoxButtons::OK, MessageBoxIcon::Information); - } - }; - -private: - // - // ------------------------- AddPackageContent ---------------------------- - /// - /// Adds a predefined set of content to a given XPS document. - /// - /// The package to add the document content to. - /// - /// true to include a PrintTicket with the - /// document; otherwise, false. - void AddPackageContent (XpsDocument^ xpsDocument, bool attachPrintTicket) - { - try - { - PrintTicket^ printTicket = GetPrintTicketFromPrinter(); - // PrintTicket is null, there is no need to attach one. - if (printTicket == nullptr) - { - attachPrintTicket = false; - } - // Add a FixedDocumentSequence at the Package root - IXpsFixedDocumentSequenceWriter^ documentSequenceWriter = xpsDocument->AddFixedDocumentSequence(); - - // Add the 1st FixedDocument to the FixedDocumentSequence. - - - - - - IXpsFixedDocumentWriter^ fixedDocumentWriter = documentSequenceWriter->AddFixedDocument(); - - AddDocumentContent(fixedDocumentWriter); - - // Commit the 1st Document - fixedDocumentWriter->Commit(); - - // Add a 2nd FixedDocument to the FixedDocumentSequence. - - - - - - - fixedDocumentWriter = documentSequenceWriter->AddFixedDocument(); - - // Add content to the 2nd document. - AddDocumentContent(fixedDocumentWriter); - - // If attaching PrintTickets, attach one at the FixedDocument level. - if (attachPrintTicket) - { - fixedDocumentWriter->PrintTicket = printTicket; - } - // Commit the 2nd document. - fixedDocumentWriter->Commit(); - - // If attaching PrintTickets, attach one at - // the package FixedDocumentSequence level. - if (attachPrintTicket) - { - documentSequenceWriter->PrintTicket = printTicket; - } - // Commit the FixedDocumentSequence - documentSequenceWriter->Commit(); - } catch (XpsPackagingException^ xpsException) - { - throw xpsException; - - } - };// end:AddPackageContent() - // - - - // - // ------------------------- AddDocumentContent --------------------------- - /// - /// Adds a predefined set of content to a given document writer. - /// - /// The document writer to add the content to. - void AddDocumentContent (IXpsFixedDocumentWriter^ fixedDocumentWriter) - { - // Collection of image and font resources used on the current page. - // Key: "XpsImage", "XpsFont" - // Value: List of XpsImage or XpsFont resources - Dictionary^>^ resources; - - try - { - // Add Page 1 to current document. - IXpsFixedPageWriter^ fixedPageWriter = fixedDocumentWriter->AddFixedPage(); - // Add the resources for Page 1 and get the resource collection. - resources = AddPageResources(fixedPageWriter); - - // Write page content for Page 1. - WritePageContent(fixedPageWriter->XmlWriter, "Page 1 of " + fixedDocumentWriter->Uri->ToString(), resources); - // Commit Page 1. - fixedPageWriter->Commit(); - - // Add Page 2 to current document. - fixedPageWriter = fixedDocumentWriter->AddFixedPage(); - - // Add the resources for Page 2 and get the resource collection. - resources = AddPageResources(fixedPageWriter); - - // Write page content to Page 2. - WritePageContent(fixedPageWriter->XmlWriter, "Page 2 of " + fixedDocumentWriter->Uri->ToString(), resources); - // Commit Page 2. - fixedPageWriter->Commit(); - } catch (XpsPackagingException^ xpsException) - { - throw xpsException; - - } - };// end:AddDocumentContent() - // - - - // - // -------------------------- AddPageResources ---------------------------- - Dictionary^>^ AddPageResources (IXpsFixedPageWriter^ fixedPageWriter) - { - // Collection of all resources for this page. - // Key: "XpsImage", "XpsFont" - // Value: List of XpsImage or XpsFont - Dictionary^>^ resources = gcnew Dictionary^>(); - - // Collections of images and fonts used in the current page. - List^ xpsImages = gcnew List(); - List^ xpsFonts = gcnew List(); - - try - { - XpsImage^ xpsImage; - XpsFont^ xpsFont; - - // Add, Write, and Commit image1 to the current page. - xpsImage = fixedPageWriter->AddImage(XpsImageType::JpegImageType); - WriteToStream(xpsImage->GetStream(), image1); - xpsImage->Commit(); - xpsImages->Add(xpsImage); // Add image1 as a required resource. - - // Add, Write, and Commit font 1 to the current page. - xpsFont = fixedPageWriter->AddFont(); - WriteObfuscatedStream(xpsFont->Uri->ToString(), xpsFont->GetStream(), font1); - xpsFont->Commit(); - xpsFonts->Add(xpsFont); // Add font1 as a required resource. - - // Add, Write, and Commit image2 to the current page. - xpsImage = fixedPageWriter->AddImage(XpsImageType::TiffImageType); - WriteToStream(xpsImage->GetStream(), image2); - xpsImage->Commit(); - xpsImages->Add(xpsImage); // Add image2 as a required resource. - - // Add, Write, and Commit font2 to the current page. - xpsFont = fixedPageWriter->AddFont(false); - WriteToStream(xpsFont->GetStream(), font2); - xpsFont->Commit(); - xpsFonts->Add(xpsFont); // Add font2 as a required resource. - - // Return the image and font resources in a combined collection. - resources->Add("XpsImage", xpsImages); - resources->Add("XpsFont", xpsFonts); - return resources; - } catch (XpsPackagingException^ xpsException) - { - throw xpsException; - - } - };// end:AddPageResources() - // - - - // - // ---------------------- GetPrintTicketFromPrinter ----------------------- - /// - /// Returns a PrintTicket based on the current default printer. - /// - /// A PrintTicket for the current local default printer. - PrintTicket^ GetPrintTicketFromPrinter () - { - PrintQueue^ printQueue = nullptr; - - LocalPrintServer^ localPrintServer = gcnew LocalPrintServer(); - - // Retrieving collection of local printer on user machine - PrintQueueCollection^ localPrinterCollection = localPrintServer->GetPrintQueues(); - - System::Collections::IEnumerator^ localPrinterEnumerator = localPrinterCollection->GetEnumerator(); - - if (localPrinterEnumerator->MoveNext()) - { - // Get PrintQueue from first available printer - printQueue = ((PrintQueue^)localPrinterEnumerator->Current); - } else - { - return nullptr; - } - // Get default PrintTicket from printer - PrintTicket^ printTicket = printQueue->DefaultPrintTicket; - - PrintCapabilities^ printCapabilites = printQueue->GetPrintCapabilities(); - - // Modify PrintTicket - if (printCapabilites->CollationCapability->Contains(Collation::Collated)) - { - printTicket->Collation = Collation::Collated; - } - if (printCapabilites->DuplexingCapability->Contains(Duplexing::TwoSidedLongEdge)) - { - printTicket->Duplexing = Duplexing::TwoSidedLongEdge; - } - if (printCapabilites->StaplingCapability->Contains(Stapling::StapleDualLeft)) - { - printTicket->Stapling = Stapling::StapleDualLeft; - } - return printTicket; - };// end:GetPrintTicketFromPrinter() - // - - - // - // --------------------------- WritePageContent --------------------------- - void WritePageContent (System::Xml::XmlWriter^ xmlWriter, System::String^ documentUri, Dictionary^>^ resources) - { - List^ xpsImages = resources["XpsImage"]; - List^ xpsFonts = resources["XpsFont"]; - - // Element are indented for reading purposes only - xmlWriter->WriteStartElement("FixedPage"); - xmlWriter->WriteAttributeString("Width", "816"); - xmlWriter->WriteAttributeString("Height", "1056"); - xmlWriter->WriteAttributeString("xmlns", "http://schemas.microsoft.com/xps/2005/06"); - xmlWriter->WriteAttributeString("xml:lang", "en-US"); - - xmlWriter->WriteStartElement("Glyphs"); - xmlWriter->WriteAttributeString("Fill", "#ff000000"); - xmlWriter->WriteAttributeString("FontUri", xpsFonts[0]->Uri->ToString()); - xmlWriter->WriteAttributeString("FontRenderingEmSize", "18"); - xmlWriter->WriteAttributeString("OriginX", "120"); - xmlWriter->WriteAttributeString("OriginY", "110"); - xmlWriter->WriteAttributeString("UnicodeString", documentUri); - xmlWriter->WriteEndElement(); - - xmlWriter->WriteStartElement("Glyphs"); - xmlWriter->WriteAttributeString("Fill", "#ff000000"); - xmlWriter->WriteAttributeString("FontUri", xpsFonts[1]->Uri->ToString()); - xmlWriter->WriteAttributeString("FontRenderingEmSize", "16"); - xmlWriter->WriteAttributeString("OriginX", "120"); - xmlWriter->WriteAttributeString("OriginY", "130"); - xmlWriter->WriteAttributeString("UnicodeString", "Test String in Arial"); - xmlWriter->WriteEndElement(); - - xmlWriter->WriteStartElement("Path"); - xmlWriter->WriteAttributeString("Data", "M 120,187 L 301,187 301,321 120,321 z"); - xmlWriter->WriteStartElement("Path.Fill"); - xmlWriter->WriteStartElement("ImageBrush"); - xmlWriter->WriteAttributeString("ImageSource", xpsImages[0]->Uri->ToString()); - xmlWriter->WriteAttributeString("Viewbox", "0,0,181,134"); - xmlWriter->WriteAttributeString("TileMode", "None"); - xmlWriter->WriteAttributeString("ViewboxUnits", "Absolute"); - xmlWriter->WriteAttributeString("ViewportUnits", "Absolute"); - xmlWriter->WriteAttributeString("Viewport", "120,187,181,134"); - xmlWriter->WriteEndElement(); - xmlWriter->WriteEndElement(); - xmlWriter->WriteEndElement(); - - xmlWriter->WriteStartElement("Path"); - xmlWriter->WriteAttributeString("Data", "M 120,357 L 324,357 324,510 120,510 z"); - xmlWriter->WriteStartElement("Path.Fill"); - xmlWriter->WriteStartElement("ImageBrush"); - xmlWriter->WriteAttributeString("ImageSource", xpsImages[1]->Uri->ToString()); - xmlWriter->WriteAttributeString("Viewbox", "0,0,204,153"); - xmlWriter->WriteAttributeString("TileMode", "None"); - xmlWriter->WriteAttributeString("ViewboxUnits", "Absolute"); - xmlWriter->WriteAttributeString("ViewportUnits", "Absolute"); - xmlWriter->WriteAttributeString("Viewport", "120,357,204,153"); - xmlWriter->WriteEndElement(); - xmlWriter->WriteEndElement(); - xmlWriter->WriteEndElement(); - xmlWriter->WriteEndElement(); - };// end:WritePageContent() - // - - - // ----------------------------- WriteToStream ---------------------------- - void WriteToStream (System::IO::Stream^ stream, System::String^ resource) - { - int bufSize = 0x1000; - array^ buf = gcnew array(bufSize); - int bytesRead = 0; - { - System::IO::FileStream^ fileStream = gcnew System::IO::FileStream(resource, FileMode::Open, FileAccess::Read); - try - { - while ((bytesRead = fileStream->Read(buf, 0, bufSize)) > 0) - { - stream->Write(buf, 0, bytesRead); - } - } finally - { - delete fileStream; - } - } - }; - - // ------------------------- WriteObfuscatedStream ------------------------ - void WriteObfuscatedStream (System::String^ resourceName, System::IO::Stream^ stream, System::String^ resource) { - int bufSize = 0x1000; - int guidByteSize = 16; - int obfuscatedByte = 32; - - // Get the GUID byte from the resource name. Typical Font name: - // /Resources/Fonts/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.ODTTF - int startPos = resourceName->LastIndexOf('/') + 1; - int length = resourceName->LastIndexOf('.') - startPos; - resourceName = resourceName->Substring(startPos, length); - - System::Guid guid = System::Guid(resourceName); - - System::String^ guidString = guid.ToString("N"); - - // Parsing the guid string and coverted into byte value - array^ guidBytes = gcnew array(guidByteSize); - - for ( - int i = 0; - i < guidBytes->Length; - i++) - { - guidBytes[i] = Convert::ToByte(guidString->Substring(i * 2, 2), 16); - } - - { - System::IO::FileStream^ filestream = gcnew System::IO::FileStream(resource, FileMode::Open); - try - { - // XOR the first 32 bytes of the source - // resource stream with GUID byte. - array^ buf = gcnew array(obfuscatedByte); - filestream->Read(buf, 0, obfuscatedByte); - - for ( - int i = 0; - i < obfuscatedByte; - i++) - { - int guidBytesPos = guidBytes->Length - (i % guidBytes->Length) - 1; - buf[i] ^= guidBytes[guidBytesPos]; - } - - stream->Write(buf, 0, obfuscatedByte); - - // copy remaining stream from source without obfuscation - buf = gcnew array(bufSize); - int bytesRead = 0; - while ((bytesRead = filestream->Read(buf, 0, bufSize)) > 0) - { - stream->Write(buf, 0, bytesRead); - } - } finally - { - delete filestream; - } - } - }; - -}; - - -//Entry Point: -int main (array^ args) -{ - XpsCreate::Main(args); - return 0; -} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/XpsCreate/CPP/arial.ttf b/samples/snippets/cpp/VS_Snippets_Wpf/XpsCreate/CPP/arial.ttf deleted file mode 100644 index ff0815cd8c64b0a245ec780eb8d21867509155b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 367112 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 YT{-Kox#{eO9!q}ssT<-WUTT*9ALIy2IRF3v diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/XpsCreate/CPP/image.tif b/samples/snippets/cpp/VS_Snippets_Wpf/XpsCreate/CPP/image.tif deleted file mode 100644 index c9df35e7674915b7a7fc4e15e8f2a67fada6b072..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72782 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�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

~PNXq2~DwY;=J50+L$@M)c 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 diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/XpsCreate/CPP/picture.jpg b/samples/snippets/cpp/VS_Snippets_Wpf/XpsCreate/CPP/picture.jpg deleted file mode 100644 index 5aaafc1aa06d950d16a6204a8eaf693499ec8e8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18216 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%0DQ>}7`rSjKmTOOt7hQ!rpNFIsQR1aEm;zJ%Z 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 Db^_A} diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/XpsCreate/CPP/xpscreate.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/XpsCreate/CPP/xpscreate.vcxproj deleted file mode 100644 index 3061287a6bb7d..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/XpsCreate/CPP/xpscreate.vcxproj +++ /dev/null @@ -1,131 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {9E46617A-3919-4B6F-94D6-B3873EC9E79C} - TemplateNamespace - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21208.0 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/animateproperty/CPP/InteractiveExample.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/animateproperty/CPP/InteractiveExample.cpp deleted file mode 100644 index 1fd1457f99a63..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/animateproperty/CPP/InteractiveExample.cpp +++ /dev/null @@ -1,125 +0,0 @@ -//InteractiveExample.cpp file -// -/* - -This sample animates the position of an ellipse when -the user clicks within the main border. If the user -left-clicks, the SnapshotAndReplace HandoffBehavior -is used when applying the animations. If the user -right-clicks, the Compose HandoffBehavior is used -instead. - -*/ - -using namespace System; -using namespace System::Windows; -using namespace System::Windows::Navigation; -using namespace System::Windows::Media; -using namespace System::Windows::Media::Animation; -using namespace System::Windows::Shapes; -using namespace System::Windows::Controls; -using namespace System::Windows::Input; - -namespace Microsoft { - namespace Samples { - namespace Animation { - namespace LocalAnimations { - public ref class InteractiveAnimationExample : Page { - private: - TranslateTransform^ interactiveTranslateTransform; - Border^ containerBorder; - Ellipse^ interactiveEllipse; - - public: - InteractiveAnimationExample () - { - WindowTitle = "Interactive Animation Example"; - DockPanel^ myPanel = gcnew DockPanel(); - myPanel->Margin = Thickness(20.0); - - containerBorder = gcnew Border(); - containerBorder->Background = Brushes::White; - containerBorder->BorderBrush = Brushes::Black; - containerBorder->BorderThickness = Thickness(2.0); - containerBorder->VerticalAlignment = System::Windows::VerticalAlignment::Stretch; - - interactiveEllipse = gcnew Ellipse(); - interactiveEllipse->Fill = Brushes::Lime; - interactiveEllipse->Stroke = Brushes::Black; - interactiveEllipse->StrokeThickness = 2.0; - interactiveEllipse->Width = 25; - interactiveEllipse->Height = 25; - interactiveEllipse->HorizontalAlignment = System::Windows::HorizontalAlignment::Left; - interactiveEllipse->VerticalAlignment = System::Windows::VerticalAlignment::Top; - - interactiveTranslateTransform = gcnew TranslateTransform(); - interactiveEllipse->RenderTransform = interactiveTranslateTransform; - - containerBorder->MouseLeftButtonDown += - gcnew MouseButtonEventHandler(this, &Microsoft::Samples::Animation::LocalAnimations::InteractiveAnimationExample::border_mouseLeftButtonDown); - containerBorder->MouseRightButtonDown += - gcnew MouseButtonEventHandler(this, &Microsoft::Samples::Animation::LocalAnimations::InteractiveAnimationExample::border_mouseRightButtonDown); - containerBorder->Child = interactiveEllipse; - - myPanel->Children->Add(containerBorder); - this->Content = myPanel; - }; - - private: - // When the user left-clicks, use the - // SnapshotAndReplace HandoffBehavior when applying the animation. - void border_mouseLeftButtonDown (System::Object^ sender, System::Windows::Input::MouseButtonEventArgs^ e) - { - System::Windows::Point clickPoint = Mouse::GetPosition(containerBorder); - - // Set the target point so the center of the ellipse - // ends up at the clicked point. - Point targetPoint = Point(); - targetPoint.X = clickPoint.X - interactiveEllipse->Width / 2; - targetPoint.Y = clickPoint.Y - interactiveEllipse->Height / 2; - - // Animate to the target point. - DoubleAnimation^ xAnimation = gcnew DoubleAnimation(targetPoint.X, - Duration(TimeSpan::FromSeconds(4))); - interactiveTranslateTransform->BeginAnimation(TranslateTransform::XProperty, xAnimation, HandoffBehavior::SnapshotAndReplace); - - DoubleAnimation^ yAnimation = gcnew DoubleAnimation(targetPoint.Y, - Duration(TimeSpan::FromSeconds(4))); - interactiveTranslateTransform->BeginAnimation(TranslateTransform::YProperty, yAnimation, HandoffBehavior::SnapshotAndReplace); - - // Chage the color of the ellipse. - interactiveEllipse->Fill = Brushes::Lime; - } - - private: - // When the user right-clicks, use the - // Compose HandoffBehavior when applying the animation. - void border_mouseRightButtonDown (System::Object^ sender, System::Windows::Input::MouseButtonEventArgs^ e) - { - // Find the point where the use clicked. - Point clickPoint = Mouse::GetPosition(containerBorder); - - // Set the target point so the center of the ellipse - // ends up at the clicked point. - Point targetPoint = System::Windows::Point(); - targetPoint.X = clickPoint.X - interactiveEllipse->Width / 2; - targetPoint.Y = clickPoint.Y - interactiveEllipse->Height / 2; - - // Animate to the target point. - DoubleAnimation^ xAnimation = gcnew DoubleAnimation(targetPoint.X, - Duration(TimeSpan::FromSeconds(4))); - interactiveTranslateTransform->BeginAnimation(TranslateTransform::XProperty, xAnimation, HandoffBehavior::Compose); - - DoubleAnimation^ yAnimation = gcnew DoubleAnimation(targetPoint.Y, - Duration(TimeSpan::FromSeconds(4))); - - // Change the color of the ellipse. - interactiveTranslateTransform->BeginAnimation(TranslateTransform::YProperty, yAnimation, HandoffBehavior::Compose); - interactiveEllipse->Fill = Brushes::Orange; - } - }; - } - } - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/animateproperty/CPP/LocalAnimationExample.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/animateproperty/CPP/LocalAnimationExample.cpp deleted file mode 100644 index 7660b657d007f..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/animateproperty/CPP/LocalAnimationExample.cpp +++ /dev/null @@ -1,72 +0,0 @@ -//LocalAnimationExample.cpp file -// -/* - - This sample demonstrates how to apply non-storyboard animations to a property. - To animate in markup, you must use storyboards. - -*/ - -using namespace System; -using namespace System::Windows; -using namespace System::Windows::Navigation; -using namespace System::Windows::Media; -using namespace System::Windows::Media::Animation; -using namespace System::Windows::Shapes; -using namespace System::Windows::Controls; - - -namespace Microsoft { - namespace Samples { - namespace Animation { - namespace LocalAnimations { - // Create the demonstration. - public ref class LocalAnimationExample : Page { - - public: - LocalAnimationExample () - { - WindowTitle = "Local Animation Example"; - StackPanel^ myStackPanel = gcnew StackPanel(); - myStackPanel->Margin = Thickness(20); - - // Create and set the Button. - Button^ aButton = gcnew Button(); - aButton->Content = "A Button"; - - // Animate the Button's Width. - DoubleAnimation^ myDoubleAnimation = gcnew DoubleAnimation(); - myDoubleAnimation->From = 75; - myDoubleAnimation->To = 300; - myDoubleAnimation->Duration = Duration(TimeSpan::FromSeconds(5)); - myDoubleAnimation->AutoReverse = true; - myDoubleAnimation->RepeatBehavior = RepeatBehavior::Forever; - - // Apply the animation to the button's Width property. - aButton->BeginAnimation(Button::WidthProperty, myDoubleAnimation); - - // Create and animate a Brush to set the button's Background. - SolidColorBrush^ myBrush = gcnew SolidColorBrush(); - myBrush->Color = Colors::Blue; - - ColorAnimation^ myColorAnimation = gcnew ColorAnimation(); - myColorAnimation->From = Colors::Blue; - myColorAnimation->To = Colors::Red; - myColorAnimation->Duration = Duration(TimeSpan::FromMilliseconds(7000)); - myColorAnimation->AutoReverse = true; - myColorAnimation->RepeatBehavior = RepeatBehavior::Forever; - - // Apply the animation to the brush's Color property. - myBrush->BeginAnimation(SolidColorBrush::ColorProperty, myColorAnimation); - aButton->Background = myBrush; - - // Add the Button to the panel. - myStackPanel->Children->Add(aButton); - this->Content = myStackPanel; - }; - }; - } - } - } -} -// diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/animateproperty/CPP/animagionproperty_cpp.vcxproj b/samples/snippets/cpp/VS_Snippets_Wpf/animateproperty/CPP/animagionproperty_cpp.vcxproj deleted file mode 100644 index ad5eb76eab3c3..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/animateproperty/CPP/animagionproperty_cpp.vcxproj +++ /dev/null @@ -1,135 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - LocalAnimationsExample - {1006019E-21B6-40FF-915C-EBB1C580417E} - Microsoft.Samples.Animation.LocalAnimations - ManagedCProj - - - - Application - Unicode - Pure - true - - - Application - Unicode - Pure - - - - - - - - - - - - - <_ProjectFileVersion>10.0.21230.0 - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - true - $(SolutionDir)$(Configuration)\ - $(Configuration)\ - false - AllRules.ruleset - - - AllRules.ruleset - - - - - - Disabled - WIN32;_DEBUG;%(PreprocessorDefinitions) - MultiThreadedDebugDLL - - - Level3 - ProgramDatabase - - - - - true - true - Windows - main - false - - - MachineX86 - - - - - WIN32;NDEBUG;%(PreprocessorDefinitions) - MultiThreadedDLL - - - Level3 - ProgramDatabase - - - - - true - Windows - main - false - - - MachineX86 - - - - - true - true - - - true - true - - - true - true - - - true - true - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/samples/snippets/cpp/VS_Snippets_Wpf/animateproperty/CPP/app.cpp b/samples/snippets/cpp/VS_Snippets_Wpf/animateproperty/CPP/app.cpp deleted file mode 100644 index dae3f92d86bfa..0000000000000 --- a/samples/snippets/cpp/VS_Snippets_Wpf/animateproperty/CPP/app.cpp +++ /dev/null @@ -1,99 +0,0 @@ -//app.cpp file - - -using namespace System; -using namespace System::Windows; -using namespace System::Windows::Navigation; -using namespace System::Windows::Media; -using namespace System::Windows::Media::Animation; -using namespace System::Windows::Shapes; -using namespace System::Windows::Controls; -using namespace System::Windows::Input; - - -namespace Microsoft { - namespace Samples { - namespace Animation { - namespace LocalAnimations { - - // Forward class declaration. - public ref class LocalAnimationExample : Page { - public: - LocalAnimationExample () ; - }; - - // Forward class declaration. - public ref class InteractiveAnimationExample : Page { - public: - InteractiveAnimationExample () ; - private: - TranslateTransform^ interactiveTranslateTransform; - Border^ containerBorder; - Ellipse^ interactiveEllipse; - void border_mouseLeftButtonDown (System::Object^ sender, MouseButtonEventArgs^ e) ; - void border_mouseRightButtonDown (System::Object^ sender, MouseButtonEventArgs^ e) ; - }; - - // SampleViewer class. - public ref class SampleViewer : Window { - public: - SampleViewer (){ - TabControl^ tControl = gcnew TabControl(); - TabItem^ tItem = gcnew TabItem(); - tItem->Header = "Local Animation Example"; - Frame^ contentFrame = gcnew Frame(); - contentFrame->Content = gcnew LocalAnimationExample(); - tItem->Content = contentFrame; - tControl->Items->Add(tItem); - tItem = gcnew System::Windows::Controls::TabItem(); - tItem->Header = "Interactive Animation Example"; - contentFrame = gcnew System::Windows::Controls::Frame(); - contentFrame->Content = gcnew InteractiveAnimationExample(); - tItem->Content = contentFrame; - tControl->Items->Add(tItem); - this->Content = tControl; - this->Title = "Local Animations Example"; - } ; - }; - - // Application class. - public ref class app : Application { - protected: - virtual void OnStartup (System::Windows::StartupEventArgs^ e) override - { - Application::OnStartup(e); - CreateAndShowMainWindow(); - }; - - private: - void CreateAndShowMainWindow () - { - // Create the application's main window. - Window^ sViewer = gcnew SampleViewer(); - MainWindow = sViewer; - sViewer->Show(); - }; - }; - - private ref class EntryClass sealed { - public: - [System::STAThread()] - static void Main () - { - LocalAnimations::app^ app = gcnew LocalAnimations::app(); - app->Run(); - } - ; - }; - - } - } - } -} - -//Entry Point: -[System::STAThreadAttribute()] -void main () -{ - return Microsoft::Samples::Animation::LocalAnimations::EntryClass::Main(); -} From 7923b59860938f4f4014684bdf8e4fea43fac4d0 Mon Sep 17 00:00:00 2001 From: Dan Moseley Date: Mon, 2 May 2022 11:17:28 -0600 Subject: [PATCH 085/429] Update backtracking in regex to mention global timeout (#29160) * Update backtracking in regex to mention global timeout The little-known global timeout security feature is worth describing here. Copied from https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regex?view=net-6.0#defining-a-time-out-value * remove tws * spaces --- .../backtracking-in-regular-expressions.md | 298 +++++++++--------- 1 file changed, 153 insertions(+), 145 deletions(-) diff --git a/docs/standard/base-types/backtracking-in-regular-expressions.md b/docs/standard/base-types/backtracking-in-regular-expressions.md index ed38924b7dfb6..ab3f8c9c8a73c 100644 --- a/docs/standard/base-types/backtracking-in-regular-expressions.md +++ b/docs/standard/base-types/backtracking-in-regular-expressions.md @@ -2,10 +2,10 @@ title: Backtracking in .NET Regular Expressions description: Learn how to control backtracking in regular expression pattern matching. ms.date: "11/12/2018" -dev_langs: +dev_langs: - "csharp" - "vb" -helpviewer_keywords: +helpviewer_keywords: - ".NET regular expressions, backtracking" - "alternative matching patterns" - "optional matching patterns" @@ -19,177 +19,185 @@ ms.assetid: 34df1152-0b22-4a1c-a76c-3c28c47b70d8 --- # Backtracking in Regular Expressions -Backtracking occurs when a regular expression pattern contains optional [quantifiers](quantifiers-in-regular-expressions.md) or [alternation constructs](alternation-constructs-in-regular-expressions.md), and the regular expression engine returns to a previous saved state to continue its search for a match. Backtracking is central to the power of regular expressions; it makes it possible for expressions to be powerful and flexible, and to match very complex patterns. At the same time, this power comes at a cost. Backtracking is often the single most important factor that affects the performance of the regular expression engine. Fortunately, the developer has control over the behavior of the regular expression engine and how it uses backtracking. This topic explains how backtracking works and how it can be controlled. - +Backtracking occurs when a regular expression pattern contains optional [quantifiers](quantifiers-in-regular-expressions.md) or [alternation constructs](alternation-constructs-in-regular-expressions.md), and the regular expression engine returns to a previous saved state to continue its search for a match. Backtracking is central to the power of regular expressions; it makes it possible for expressions to be powerful and flexible, and to match very complex patterns. At the same time, this power comes at a cost. Backtracking is often the single most important factor that affects the performance of the regular expression engine. Fortunately, the developer has control over the behavior of the regular expression engine and how it uses backtracking. This topic explains how backtracking works and how it can be controlled. + > [!NOTE] -> In general, a Nondeterministic Finite Automaton (NFA) engine like .NET regular expression engine places the responsibility for crafting efficient, fast regular expressions on the developer. +> In general, a Nondeterministic Finite Automaton (NFA) engine like .NET regular expression engine places the responsibility for crafting efficient, fast regular expressions on the developer. + +## Linear Comparison Without Backtracking + + If a regular expression pattern has no optional quantifiers or alternation constructs, the regular expression engine executes in linear time. That is, after the regular expression engine matches the first language element in the pattern with text in the input string, it tries to match the next language element in the pattern with the next character or group of characters in the input string. This continues until the match either succeeds or fails. In either case, the regular expression engine advances by one character at a time in the input string. -## Linear Comparison Without Backtracking + The following example provides an illustration. The regular expression `e{2}\w\b` looks for two occurrences of the letter "e" followed by any word character followed by a word boundary. - If a regular expression pattern has no optional quantifiers or alternation constructs, the regular expression engine executes in linear time. That is, after the regular expression engine matches the first language element in the pattern with text in the input string, it tries to match the next language element in the pattern with the next character or group of characters in the input string. This continues until the match either succeeds or fails. In either case, the regular expression engine advances by one character at a time in the input string. - - The following example provides an illustration. The regular expression `e{2}\w\b` looks for two occurrences of the letter "e" followed by any word character followed by a word boundary. - [!code-csharp[Conceptual.RegularExpressions.Backtracking#1](../../../samples/snippets/csharp/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/cs/backtracking1.cs#1)] - [!code-vb[Conceptual.RegularExpressions.Backtracking#1](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/vb/backtracking1.vb#1)] - - Although this regular expression includes the quantifier `{2}`, it is evaluated in a linear manner. The regular expression engine does not backtrack because `{2}` is not an optional quantifier; it specifies an exact number and not a variable number of times that the previous subexpression must match. As a result, the regular expression engine tries to match the regular expression pattern with the input string as shown in the following table. - -|Operation|Position in pattern|Position in string|Result| -|---------------|-------------------------|------------------------|------------| -|1|e|"needing a reed" (index 0)|No match.| -|2|e|"eeding a reed" (index 1)|Possible match.| -|3|e{2}|"eding a reed" (index 2)|Possible match.| -|4|\w|"ding a reed" (index 3)|Possible match.| -|5|\b|"ing a reed" (index 4)|Possible match fails.| -|6|e|"eding a reed" (index 2)|Possible match.| -|7|e{2}|"ding a reed" (index 3)|Possible match fails.| -|8|e|"ding a reed" (index 3)|Match fails.| -|9|e|"ing a reed" (index 4)|No match.| -|10|e|"ng a reed" (index 5)|No match.| -|11|e|"g a reed" (index 6)|No match.| -|12|e|" a reed" (index 7)|No match.| -|13|e|"a reed" (index 8)|No match.| -|14|e|" reed" (index 9)|No match.| -|15|e|"reed" (index 10)|No match| -|16|e|"eed" (index 11)|Possible match.| -|17|e{2}|"ed" (index 12)|Possible match.| -|18|\w|"d" (index 13)|Possible match.| -|19|\b|"" (index 14)|Match.| - + [!code-vb[Conceptual.RegularExpressions.Backtracking#1](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/vb/backtracking1.vb#1)] + + Although this regular expression includes the quantifier `{2}`, it is evaluated in a linear manner. The regular expression engine does not backtrack because `{2}` is not an optional quantifier; it specifies an exact number and not a variable number of times that the previous subexpression must match. As a result, the regular expression engine tries to match the regular expression pattern with the input string as shown in the following table. + +|Operation|Position in pattern|Position in string|Result| +|---------------|-------------------------|------------------------|------------| +|1|e|"needing a reed" (index 0)|No match.| +|2|e|"eeding a reed" (index 1)|Possible match.| +|3|e{2}|"eding a reed" (index 2)|Possible match.| +|4|\w|"ding a reed" (index 3)|Possible match.| +|5|\b|"ing a reed" (index 4)|Possible match fails.| +|6|e|"eding a reed" (index 2)|Possible match.| +|7|e{2}|"ding a reed" (index 3)|Possible match fails.| +|8|e|"ding a reed" (index 3)|Match fails.| +|9|e|"ing a reed" (index 4)|No match.| +|10|e|"ng a reed" (index 5)|No match.| +|11|e|"g a reed" (index 6)|No match.| +|12|e|" a reed" (index 7)|No match.| +|13|e|"a reed" (index 8)|No match.| +|14|e|" reed" (index 9)|No match.| +|15|e|"reed" (index 10)|No match| +|16|e|"eed" (index 11)|Possible match.| +|17|e{2}|"ed" (index 12)|Possible match.| +|18|\w|"d" (index 13)|Possible match.| +|19|\b|"" (index 14)|Match.| + If a regular expression pattern includes no optional quantifiers or alternation constructs, the maximum number of comparisons required to match the regular expression pattern with the input string is roughly equivalent to the number of characters in the input string. In this case, the regular expression engine uses 19 comparisons to identify possible matches in this 13-character string. In other words, the regular expression engine runs in near-linear time if it contains no optional quantifiers or alternation constructs. -## Backtracking with Optional Quantifiers or Alternation Constructs +## Backtracking with Optional Quantifiers or Alternation Constructs + + When a regular expression includes optional quantifiers or alternation constructs, the evaluation of the input string is no longer linear. Pattern matching with an NFA engine is driven by the language elements in the regular expression and not by the characters to be matched in the input string. Therefore, the regular expression engine tries to fully match optional or alternative subexpressions. When it advances to the next language element in the subexpression and the match is unsuccessful, the regular expression engine can abandon a portion of its successful match and return to an earlier saved state in the interest of matching the regular expression as a whole with the input string. This process of returning to a previous saved state to find a match is known as backtracking. + + For example, consider the regular expression pattern `.*(es)`, which matches the characters "es" and all the characters that precede it. As the following example shows, if the input string is "Essential services are provided by regular expressions.", the pattern matches the whole string up to and including the "es" in "expressions". - When a regular expression includes optional quantifiers or alternation constructs, the evaluation of the input string is no longer linear. Pattern matching with an NFA engine is driven by the language elements in the regular expression and not by the characters to be matched in the input string. Therefore, the regular expression engine tries to fully match optional or alternative subexpressions. When it advances to the next language element in the subexpression and the match is unsuccessful, the regular expression engine can abandon a portion of its successful match and return to an earlier saved state in the interest of matching the regular expression as a whole with the input string. This process of returning to a previous saved state to find a match is known as backtracking. - - For example, consider the regular expression pattern `.*(es)`, which matches the characters "es" and all the characters that precede it. As the following example shows, if the input string is "Essential services are provided by regular expressions.", the pattern matches the whole string up to and including the "es" in "expressions". - [!code-csharp[Conceptual.RegularExpressions.Backtracking#2](../../../samples/snippets/csharp/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/cs/backtracking2.cs#2)] - [!code-vb[Conceptual.RegularExpressions.Backtracking#2](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/vb/backtracking2.vb#2)] - - To do this, the regular expression engine uses backtracking as follows: - -- It matches the `.*` (which matches zero, one, or more occurrences of any character) with the whole input string. - -- It attempts to match "e" in the regular expression pattern. However, the input string has no remaining characters available to match. - -- It backtracks to its last successful match, "Essential services are provided by regular expressions", and attempts to match "e" with the period at the end of the sentence. The match fails. - -- It continues to backtrack to a previous successful match one character at a time until the tentatively matched substring is "Essential services are provided by regular expr". It then compares the "e" in the pattern to the second "e" in "expressions" and finds a match. - -- It compares "s" in the pattern to the "s" that follows the matched "e" character (the first "s" in "expressions"). The match is successful. - + [!code-vb[Conceptual.RegularExpressions.Backtracking#2](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/vb/backtracking2.vb#2)] + + To do this, the regular expression engine uses backtracking as follows: + +- It matches the `.*` (which matches zero, one, or more occurrences of any character) with the whole input string. + +- It attempts to match "e" in the regular expression pattern. However, the input string has no remaining characters available to match. + +- It backtracks to its last successful match, "Essential services are provided by regular expressions", and attempts to match "e" with the period at the end of the sentence. The match fails. + +- It continues to backtrack to a previous successful match one character at a time until the tentatively matched substring is "Essential services are provided by regular expr". It then compares the "e" in the pattern to the second "e" in "expressions" and finds a match. + +- It compares "s" in the pattern to the "s" that follows the matched "e" character (the first "s" in "expressions"). The match is successful. + When you use backtracking, matching the regular expression pattern with the input string, which is 55 characters long, requires 67 comparison operations. Generally, if a regular expression pattern has a single alternation construct or a single optional quantifier, the number of comparison operations required to match the pattern is more than twice the number of characters in the input string. -## Backtracking with Nested Optional Quantifiers +## Backtracking with Nested Optional Quantifiers + + The number of comparison operations required to match a regular expression pattern can increase exponentially if the pattern includes a large number of alternation constructs, if it includes nested alternation constructs, or, most commonly, if it includes nested optional quantifiers. For example, the regular expression pattern `^(a+)+$` is designed to match a complete string that contains one or more "a" characters. The example provides two input strings of identical length, but only the first string matches the pattern. The class is used to determine how long the match operation takes. - The number of comparison operations required to match a regular expression pattern can increase exponentially if the pattern includes a large number of alternation constructs, if it includes nested alternation constructs, or, most commonly, if it includes nested optional quantifiers. For example, the regular expression pattern `^(a+)+$` is designed to match a complete string that contains one or more "a" characters. The example provides two input strings of identical length, but only the first string matches the pattern. The class is used to determine how long the match operation takes. - [!code-csharp[Conceptual.RegularExpressions.Backtracking#3](../../../samples/snippets/csharp/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/cs/backtracking3.cs#3)] - [!code-vb[Conceptual.RegularExpressions.Backtracking#3](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/vb/backtracking3.vb#3)] - - As the output from the example shows, the regular expression engine took about twice as long to find that an input string did not match the pattern as it did to identify a matching string. This is because an unsuccessful match always represents a worst-case scenario. The regular expression engine must use the regular expression to follow all possible paths through the data before it can conclude that the match is unsuccessful, and the nested parentheses create many additional paths through the data. The regular expression engine concludes that the second string did not match the pattern by doing the following: - -- It checks that it was at the beginning of the string, and then matches the first five characters in the string with the pattern `a+`. It then determines that there are no additional groups of "a" characters in the string. Finally, it tests for the end of the string. Because one additional character remains in the string, the match fails. This failed match requires 9 comparisons. The regular expression engine also saves state information from its matches of "a" (which we will call match 1), "aa" (match 2), "aaa" (match 3), and "aaaa" (match 4). - -- It returns to the previously saved match 4. It determines that there is one additional "a" character to assign to an additional captured group. Finally, it tests for the end of the string. Because one additional character remains in the string, the match fails. This failed match requires 4 comparisons. So far, a total of 13 comparisons have been performed. - -- It returns to the previously saved match 3. It determines that there are two additional "a" characters to assign to an additional captured group. However, the end-of-string test fails. It then returns to match3 and tries to match the two additional "a" characters in two additional captured groups. The end-of-string test still fails. These failed matches require 12 comparisons. So far, a total of 25 comparisons have been performed. - + [!code-vb[Conceptual.RegularExpressions.Backtracking#3](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/vb/backtracking3.vb#3)] + + As the output from the example shows, the regular expression engine took about twice as long to find that an input string did not match the pattern as it did to identify a matching string. This is because an unsuccessful match always represents a worst-case scenario. The regular expression engine must use the regular expression to follow all possible paths through the data before it can conclude that the match is unsuccessful, and the nested parentheses create many additional paths through the data. The regular expression engine concludes that the second string did not match the pattern by doing the following: + +- It checks that it was at the beginning of the string, and then matches the first five characters in the string with the pattern `a+`. It then determines that there are no additional groups of "a" characters in the string. Finally, it tests for the end of the string. Because one additional character remains in the string, the match fails. This failed match requires 9 comparisons. The regular expression engine also saves state information from its matches of "a" (which we will call match 1), "aa" (match 2), "aaa" (match 3), and "aaaa" (match 4). + +- It returns to the previously saved match 4. It determines that there is one additional "a" character to assign to an additional captured group. Finally, it tests for the end of the string. Because one additional character remains in the string, the match fails. This failed match requires 4 comparisons. So far, a total of 13 comparisons have been performed. + +- It returns to the previously saved match 3. It determines that there are two additional "a" characters to assign to an additional captured group. However, the end-of-string test fails. It then returns to match3 and tries to match the two additional "a" characters in two additional captured groups. The end-of-string test still fails. These failed matches require 12 comparisons. So far, a total of 25 comparisons have been performed. + Comparison of the input string with the regular expression continues in this way until the regular expression engine has tried all possible combinations of matches, and then concludes that there is no match. Because of the nested quantifiers, this comparison is an O(2n) or an exponential operation, where *n* is the number of characters in the input string. This means that in the worst case, an input string of 30 characters requires approximately 1,073,741,824 comparisons, and an input string of 40 characters requires approximately 1,099,511,627,776 comparisons. If you use strings of these or even greater lengths, regular expression methods can take an extremely long time to complete when they process input that does not match the regular expression pattern. -## Controlling Backtracking +## Controlling Backtracking + + Backtracking lets you create powerful, flexible regular expressions. However, as the previous section showed, these benefits may be coupled with unacceptably poor performance. To prevent excessive backtracking, you should define a time-out interval when you instantiate a object or call a static regular expression matching method. This is discussed in the next section. In addition, .NET supports three regular expression language elements that limit or suppress backtracking and that support complex regular expressions with little or no performance penalty: [atomic groups](#atomic-groups), [lookbehind assertions](#lookbehind-assertions), and [lookahead assertions](#lookahead-assertions). For more information about each language element, see [Grouping Constructs](grouping-constructs-in-regular-expressions.md). + +### Defining a Time-out Interval + + Starting with the .NET Framework 4.5, you can set a time-out value that represents the longest interval the regular expression engine will search for a single match before it abandons the attempt and throws a exception. You specify the time-out interval by supplying a value to the constructor for instance regular expressions. In addition, each static pattern matching method has an overload with a parameter that allows you to specify a time-out value. + +If you do not set a time-out value explicitly, the default time-out value is determined as follows: - Backtracking lets you create powerful, flexible regular expressions. However, as the previous section showed, these benefits may be coupled with unacceptably poor performance. To prevent excessive backtracking, you should define a time-out interval when you instantiate a object or call a static regular expression matching method. This is discussed in the next section. In addition, .NET supports three regular expression language elements that limit or suppress backtracking and that support complex regular expressions with little or no performance penalty: [atomic groups](#atomic-groups), [lookbehind assertions](#lookbehind-assertions), and [lookahead assertions](#lookahead-assertions). For more information about each language element, see [Grouping Constructs](grouping-constructs-in-regular-expressions.md). +- By using the application-wide time-out value, if one exists. This can be any time-out value that applies to the application domain in which the object is instantiated or the static method call is made. You can set the application-wide time-out value by calling the method to assign the string representation of a value to the "REGEX_DEFAULT_MATCH_TIMEOUT" property. -### Defining a Time-out Interval +- By using the value , if no application-wide time-out value has been set. + + By default, the time-out interval is set to and the regular expression engine does not time out. - Starting with the .NET Framework 4.5, you can set a time-out value that represents the longest interval the regular expression engine will search for a single match before it abandons the attempt and throws a exception. You specify the time-out interval by supplying a value to the constructor for instance regular expressions. In addition, each static pattern matching method has an overload with a parameter that allows you to specify a time-out value. By default, the time-out interval is set to and the regular expression engine does not time out. - > [!IMPORTANT] -> We recommend that you always set a time-out interval if your regular expression relies on backtracking. - - A exception indicates that the regular expression engine was unable to find a match within the specified time-out interval but does not indicate why the exception was thrown. The reason might be excessive backtracking, but it is also possible that the time-out interval was set too low given the system load at the time the exception was thrown. When you handle the exception, you can choose to abandon further matches with the input string or increase the time-out interval and retry the matching operation. - - For example, the following code calls the constructor to instantiate a object with a time-out value of one second. The regular expression pattern `(a+)+$`, which matches one or more sequences of one or more "a" characters at the end of a line, is subject to excessive backtracking. If a is thrown, the example increases the time-out value up to a maximum interval of three seconds. After that, it abandons the attempt to match the pattern. - +> We recommend that you always set a time-out interval if your regular expression relies on backtracking. + + A exception indicates that the regular expression engine was unable to find a match within the specified time-out interval but does not indicate why the exception was thrown. The reason might be excessive backtracking, but it is also possible that the time-out interval was set too low given the system load at the time the exception was thrown. When you handle the exception, you can choose to abandon further matches with the input string or increase the time-out interval and retry the matching operation. + + For example, the following code calls the constructor to instantiate a object with a time-out value of one second. The regular expression pattern `(a+)+$`, which matches one or more sequences of one or more "a" characters at the end of a line, is subject to excessive backtracking. If a is thrown, the example increases the time-out value up to a maximum interval of three seconds. After that, it abandons the attempt to match the pattern. + [!code-csharp[System.Text.RegularExpressions.Regex.ctor#1](../../../samples/snippets/csharp/VS_Snippets_CLR_System/system.text.regularexpressions.regex.ctor/cs/ctor1.cs#1)] - [!code-vb[System.Text.RegularExpressions.Regex.ctor#1](../../../samples/snippets/visualbasic/VS_Snippets_CLR_System/system.text.regularexpressions.regex.ctor/vb/ctor1.vb#1)] + [!code-vb[System.Text.RegularExpressions.Regex.ctor#1](../../../samples/snippets/visualbasic/VS_Snippets_CLR_System/system.text.regularexpressions.regex.ctor/vb/ctor1.vb#1)] ### Atomic groups The `(?>` *subexpression*`)` language element suppresses backtracking into the subexpression. Once it has successfully matched, it will not give up any part of its match to subsequent backtracking. For example, in the pattern `(?>\w*\d*)1`, if the `1` cannot be matched, the `\d*` will not give up any of its match even if that means it would allow the `1` to successfully match. Atomic groups can help prevent the performance problems associated with failed matches. - - The following example illustrates how suppressing backtracking improves performance when using nested quantifiers. It measures the time required for the regular expression engine to determine that an input string does not match two regular expressions. The first regular expression uses backtracking to attempt to match a string that contains one or more occurrences of one or more hexadecimal digits, followed by a colon, followed by one or more hexadecimal digits, followed by two colons. The second regular expression is identical to the first, except that it disables backtracking. As the output from the example shows, the performance improvement from disabling backtracking is significant. - + + The following example illustrates how suppressing backtracking improves performance when using nested quantifiers. It measures the time required for the regular expression engine to determine that an input string does not match two regular expressions. The first regular expression uses backtracking to attempt to match a string that contains one or more occurrences of one or more hexadecimal digits, followed by a colon, followed by one or more hexadecimal digits, followed by two colons. The second regular expression is identical to the first, except that it disables backtracking. As the output from the example shows, the performance improvement from disabling backtracking is significant. + [!code-csharp[Conceptual.RegularExpressions.Backtracking#4](../../../samples/snippets/csharp/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/cs/backtracking4.cs#4)] - [!code-vb[Conceptual.RegularExpressions.Backtracking#4](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/vb/backtracking4.vb#4)] + [!code-vb[Conceptual.RegularExpressions.Backtracking#4](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/vb/backtracking4.vb#4)] -### Lookbehind Assertions +### Lookbehind Assertions + + .NET includes two language elements, `(?<=`*subexpression*`)` and `(? method. - .NET includes two language elements, `(?<=`*subexpression*`)` and `(? method. - [!code-csharp[Conceptual.RegularExpressions.Backtracking#5](../../../samples/snippets/csharp/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/cs/backtracking5.cs#5)] - [!code-vb[Conceptual.RegularExpressions.Backtracking#5](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/vb/backtracking5.vb#5)] - - The first regular expression pattern, `^[0-9A-Z]([-.\w]*[0-9A-Z])*@`, is defined as shown in the following table. - -|Pattern|Description| -|-------------|-----------------| -|`^`|Start the match at the beginning of the string.| -|`[0-9A-Z]`|Match an alphanumeric character. This comparison is case-insensitive, because the method is called with the option.| -|`[-.\w]*`|Match zero, one, or more occurrences of a hyphen, period, or word character.| -|`[0-9A-Z]`|Match an alphanumeric character.| -|`([-.\w]*[0-9A-Z])*`|Match zero or more occurrences of the combination of zero or more hyphens, periods, or word characters, followed by an alphanumeric character. This is the first capturing group.| -|`@`|Match an at sign ("\@").| - - The second regular expression pattern, `^[0-9A-Z][-.\w]*(?<=[0-9A-Z])@`, uses a positive lookbehind assertion. It is defined as shown in the following table. - -|Pattern|Description| -|-------------|-----------------| -|`^`|Start the match at the beginning of the string.| -|`[0-9A-Z]`|Match an alphanumeric character. This comparison is case-insensitive, because the method is called with the option.| -|`[-.\w]*`|Match zero or more occurrences of a hyphen, period, or word character.| -|`(?<=[0-9A-Z])`|Look back at the last matched character and continue the match if it is alphanumeric. Note that alphanumeric characters are a subset of the set that consists of periods, hyphens, and all word characters.| -|`@`|Match an at sign ("\@").| - -### Lookahead Assertions - - .NET includes two language elements, `(?=`*subexpression*`)` and `(?!`*subexpression*`)`, that match the next character or characters in the input string. Both language elements are zero-width assertions; that is, they determine whether the character or characters that immediately follow the current character can be matched by *subexpression*, without advancing or backtracking. - - `(?=` *subexpression* `)` is a positive lookahead assertion; that is, the character or characters after the current position must match *subexpression*. `(?!`*subexpression*`)` is a negative lookahead assertion; that is, the character or characters after the current position must not match *subexpression*. Both positive and negative lookahead assertions are most useful when *subexpression* is a subset of the next subexpression. - - The following example uses two equivalent regular expression patterns that validate a fully qualified type name. The first pattern is subject to poor performance because of excessive backtracking. The second modifies the first regular expression by replacing a nested quantifier with a positive lookahead assertion. The output from the example displays the execution time of the method. - + [!code-vb[Conceptual.RegularExpressions.Backtracking#5](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/vb/backtracking5.vb#5)] + + The first regular expression pattern, `^[0-9A-Z]([-.\w]*[0-9A-Z])*@`, is defined as shown in the following table. + +|Pattern|Description| +|-------------|-----------------| +|`^`|Start the match at the beginning of the string.| +|`[0-9A-Z]`|Match an alphanumeric character. This comparison is case-insensitive, because the method is called with the option.| +|`[-.\w]*`|Match zero, one, or more occurrences of a hyphen, period, or word character.| +|`[0-9A-Z]`|Match an alphanumeric character.| +|`([-.\w]*[0-9A-Z])*`|Match zero or more occurrences of the combination of zero or more hyphens, periods, or word characters, followed by an alphanumeric character. This is the first capturing group.| +|`@`|Match an at sign ("\@").| + + The second regular expression pattern, `^[0-9A-Z][-.\w]*(?<=[0-9A-Z])@`, uses a positive lookbehind assertion. It is defined as shown in the following table. + +|Pattern|Description| +|-------------|-----------------| +|`^`|Start the match at the beginning of the string.| +|`[0-9A-Z]`|Match an alphanumeric character. This comparison is case-insensitive, because the method is called with the option.| +|`[-.\w]*`|Match zero or more occurrences of a hyphen, period, or word character.| +|`(?<=[0-9A-Z])`|Look back at the last matched character and continue the match if it is alphanumeric. Note that alphanumeric characters are a subset of the set that consists of periods, hyphens, and all word characters.| +|`@`|Match an at sign ("\@").| + +### Lookahead Assertions + + .NET includes two language elements, `(?=`*subexpression*`)` and `(?!`*subexpression*`)`, that match the next character or characters in the input string. Both language elements are zero-width assertions; that is, they determine whether the character or characters that immediately follow the current character can be matched by *subexpression*, without advancing or backtracking. + + `(?=` *subexpression* `)` is a positive lookahead assertion; that is, the character or characters after the current position must match *subexpression*. `(?!`*subexpression*`)` is a negative lookahead assertion; that is, the character or characters after the current position must not match *subexpression*. Both positive and negative lookahead assertions are most useful when *subexpression* is a subset of the next subexpression. + + The following example uses two equivalent regular expression patterns that validate a fully qualified type name. The first pattern is subject to poor performance because of excessive backtracking. The second modifies the first regular expression by replacing a nested quantifier with a positive lookahead assertion. The output from the example displays the execution time of the method. + [!code-csharp[Conceptual.RegularExpressions.Backtracking#6](../../../samples/snippets/csharp/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/cs/backtracking6.cs#6)] - [!code-vb[Conceptual.RegularExpressions.Backtracking#6](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/vb/backtracking6.vb#6)] - - The first regular expression pattern, `^(([A-Z]\w*)+\.)*[A-Z]\w*$`, is defined as shown in the following table. - -|Pattern|Description| -|-------------|-----------------| -|`^`|Start the match at the beginning of the string.| -|`([A-Z]\w*)+\.`|Match an alphabetical character (A-Z) followed by zero or more word characters one or more times, followed by a period. This comparison is case-insensitive, because the method is called with the option.| -|`(([A-Z]\w*)+\.)*`|Match the previous pattern zero or more times.| -|`[A-Z]\w*`|Match an alphabetical character followed by zero or more word characters.| -|`$`|End the match at the end of the input string.| - - The second regular expression pattern, `^((?=[A-Z])\w+\.)*[A-Z]\w*$`, uses a positive lookahead assertion. It is defined as shown in the following table. - -|Pattern|Description| -|-------------|-----------------| -|`^`|Start the match at the beginning of the string.| -|`(?=[A-Z])`|Look ahead to the first character and continue the match if it is alphabetical (A-Z). This comparison is case-insensitive, because the method is called with the option.| -|`\w+\.`|Match one or more word characters followed by a period.| -|`((?=[A-Z])\w+\.)*`|Match the pattern of one or more word characters followed by a period zero or more times. The initial word character must be alphabetical.| -|`[A-Z]\w*`|Match an alphabetical character followed by zero or more word characters.| -|`$`|End the match at the end of the input string.| - + [!code-vb[Conceptual.RegularExpressions.Backtracking#6](../../../samples/snippets/visualbasic/VS_Snippets_CLR/conceptual.regularexpressions.backtracking/vb/backtracking6.vb#6)] + + The first regular expression pattern, `^(([A-Z]\w*)+\.)*[A-Z]\w*$`, is defined as shown in the following table. + +|Pattern|Description| +|-------------|-----------------| +|`^`|Start the match at the beginning of the string.| +|`([A-Z]\w*)+\.`|Match an alphabetical character (A-Z) followed by zero or more word characters one or more times, followed by a period. This comparison is case-insensitive, because the method is called with the option.| +|`(([A-Z]\w*)+\.)*`|Match the previous pattern zero or more times.| +|`[A-Z]\w*`|Match an alphabetical character followed by zero or more word characters.| +|`$`|End the match at the end of the input string.| + + The second regular expression pattern, `^((?=[A-Z])\w+\.)*[A-Z]\w*$`, uses a positive lookahead assertion. It is defined as shown in the following table. + +|Pattern|Description| +|-------------|-----------------| +|`^`|Start the match at the beginning of the string.| +|`(?=[A-Z])`|Look ahead to the first character and continue the match if it is alphabetical (A-Z). This comparison is case-insensitive, because the method is called with the option.| +|`\w+\.`|Match one or more word characters followed by a period.| +|`((?=[A-Z])\w+\.)*`|Match the pattern of one or more word characters followed by a period zero or more times. The initial word character must be alphabetical.| +|`[A-Z]\w*`|Match an alphabetical character followed by zero or more word characters.| +|`$`|End the match at the end of the input string.| + ## See also - [.NET Regular Expressions](regular-expressions.md) From 42e801a2e44558859b395d36568b5713f0d7b0d6 Mon Sep 17 00:00:00 2001 From: dawe Date: Mon, 2 May 2022 19:23:08 +0200 Subject: [PATCH 086/429] Add section about quoted expressions to the F# style guide. (#29234) This fixes fslang-design/issues/661 --- docs/fsharp/style-guide/formatting.md | 31 ++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/docs/fsharp/style-guide/formatting.md b/docs/fsharp/style-guide/formatting.md index bf5a35a438f08..fd05bb61a5ffe 100644 --- a/docs/fsharp/style-guide/formatting.md +++ b/docs/fsharp/style-guide/formatting.md @@ -1070,6 +1070,35 @@ let v = expr.[ idx ] let y = myList.[ 0 .. 1 ] ``` +### Formatting quoted expressions + +The delimiter symbols (`<@` , `@>`, `<@@`, `@@>`) should be placed on separate lines if the quoted expression is a multi-line expression. + +```fsharp +// ✔️ OK +<@ + let f x = x + 10 + f 20 +@> + +// ❌ Not OK +<@ let f x = x + 10 + f 20 +@> +``` + +In single-line expressions the delimiter symbols should be placed on the same line as the expression itself. + +```fsharp +// ✔️ OK +<@ 1 + 1 @> + +// ❌ Not OK +<@ + 1 + 1 +@> +``` + ## Formatting declarations This section discusses formatting declarations of different kinds. @@ -1637,7 +1666,7 @@ When writing full function types in signatures, it is sometimes necessary to spl over multiple lines. The return type is always indented. For a tupled function, the arguments are separated by `*`, -placed at the end of each line. +placed at the end of each line. For example, consider a function with the following implementation: From 4adb83aff994a056f498d434a2d3daeaced6a1ea Mon Sep 17 00:00:00 2001 From: Eric Mutta Date: Mon, 2 May 2022 20:26:46 +0300 Subject: [PATCH 087/429] Fix typo in record.md (#29240) The following sentence: > The `record` type were introduced in C# 9; Should most likely read: > The `record` type **was** introduced in C# 9; It could also read as follows: > The `record` **types** were introduced in C# 9; ...but as far as I can tell from the [C# 9 docs](https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-9#record-types) there was only one `record` type back then (what are now called `record class` types) so we can't use the plural "types" in the sentence I edited. --- docs/csharp/language-reference/builtin-types/record.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/builtin-types/record.md b/docs/csharp/language-reference/builtin-types/record.md index 067fc2d79fcff..da42f050d9433 100644 --- a/docs/csharp/language-reference/builtin-types/record.md +++ b/docs/csharp/language-reference/builtin-types/record.md @@ -45,7 +45,7 @@ The preceding examples show some distinctions between records that are reference - A `record` or a `record class` declares a reference type. The `class` keyword is optional, but can add clarity for readers. A `record struct` declares a value type. - Positional properties are *immutable* in a `record class` and a `readonly record struct`. They're *mutable* in a `record struct`. -The remainder of this article discusses both `record class` and `record struct` types. The differences are detailed in each section. You should decide between a `record class` and a `record struct` similar to deciding between a `class` and a `struct`. The term *record* is used to describe behavior that applies to all record types. Either `record struct` or `record class` is used to describe behavior that applies to only struct or class types, respectively. The `record` type were introduced in C# 9; `record struct` types were introduced in C# 10. +The remainder of this article discusses both `record class` and `record struct` types. The differences are detailed in each section. You should decide between a `record class` and a `record struct` similar to deciding between a `class` and a `struct`. The term *record* is used to describe behavior that applies to all record types. Either `record struct` or `record class` is used to describe behavior that applies to only struct or class types, respectively. The `record` type was introduced in C# 9; `record struct` types were introduced in C# 10. ## Positional syntax for property definition From f3e4ee56e3236e14b01f53b9f24252cbb80c0564 Mon Sep 17 00:00:00 2001 From: Julian Date: Mon, 2 May 2022 13:29:49 -0400 Subject: [PATCH 088/429] Explicitly state lambda right-associativity (#29235) --- docs/csharp/language-reference/operators/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/operators/index.md b/docs/csharp/language-reference/operators/index.md index 7417e2ce678e4..6fd7a02a4c6d9 100644 --- a/docs/csharp/language-reference/operators/index.md +++ b/docs/csharp/language-reference/operators/index.md @@ -94,7 +94,7 @@ The following table lists the C# operators starting with the highest precedence When operators have the same precedence, associativity of the operators determines the order in which the operations are performed: - *Left-associative* operators are evaluated in order from left to right. Except for the [assignment operators](assignment-operator.md) and the [null-coalescing operators](null-coalescing-operator.md), all binary operators are left-associative. For example, `a + b - c` is evaluated as `(a + b) - c`. -- *Right-associative* operators are evaluated in order from right to left. The assignment operators, the null-coalescing operators, and the [conditional operator `?:`](conditional-operator.md) are right-associative. For example, `x = y = z` is evaluated as `x = (y = z)`. +- *Right-associative* operators are evaluated in order from right to left. The assignment operators, the null-coalescing operators, lambdas, and the [conditional operator `?:`](conditional-operator.md) are right-associative. For example, `x = y = z` is evaluated as `x = (y = z)`. Use parentheses to change the order of evaluation imposed by operator associativity: From 9a66cfddfc6c05f8b4edc6516c95a5c472e13c2a Mon Sep 17 00:00:00 2001 From: Julian Date: Mon, 2 May 2022 13:35:40 -0400 Subject: [PATCH 089/429] Clarify where events can be raised from (#29244) --- docs/csharp/language-reference/keywords/event.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/keywords/event.md b/docs/csharp/language-reference/keywords/event.md index fa88382a5e99b..2d9f6800a1566 100644 --- a/docs/csharp/language-reference/keywords/event.md +++ b/docs/csharp/language-reference/keywords/event.md @@ -21,7 +21,7 @@ The following example shows how to declare and raise an event that uses Date: Mon, 2 May 2022 17:59:44 +0000 Subject: [PATCH 090/429] Add note about invalid event name characters --- docs/core/diagnostics/eventsource-instrumentation.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/core/diagnostics/eventsource-instrumentation.md b/docs/core/diagnostics/eventsource-instrumentation.md index 5ea1109881aca..2237772d14737 100644 --- a/docs/core/diagnostics/eventsource-instrumentation.md +++ b/docs/core/diagnostics/eventsource-instrumentation.md @@ -56,6 +56,9 @@ so on. to the WriteEvent\* APIs. For WriteEvent the arguments follow the Event ID, for WriteEventWithRelatedActivityId the arguments follow the relatedActivityId. For the WriteEvent\*Core methods, the arguments must be serialized manually into the `data` parameter. +8. Event names cannot contain `<` or `>` characters. While user defined methods also cannot contain these characters, `async` methods +will be rewritten by the compiler to contain them. Mark all non-event methods on an +with the to be sure these generated methods don't become events. ## Best practices From f9fe95503a3d3504e29dbeeff687b7d441b7d986 Mon Sep 17 00:00:00 2001 From: John Salem Date: Mon, 2 May 2022 11:06:27 -0700 Subject: [PATCH 091/429] Update docs/core/diagnostics/eventsource-instrumentation.md --- docs/core/diagnostics/eventsource-instrumentation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/eventsource-instrumentation.md b/docs/core/diagnostics/eventsource-instrumentation.md index 2237772d14737..2e693a5ec1785 100644 --- a/docs/core/diagnostics/eventsource-instrumentation.md +++ b/docs/core/diagnostics/eventsource-instrumentation.md @@ -58,7 +58,7 @@ follow the relatedActivityId. For the WriteEvent\*Core methods, the arguments mu `data` parameter. 8. Event names cannot contain `<` or `>` characters. While user defined methods also cannot contain these characters, `async` methods will be rewritten by the compiler to contain them. Mark all non-event methods on an -with the to be sure these generated methods don't become events. +with the to be sure these generated methods don't become events. ## Best practices From 99cf7f630bfa365b8bd8981367867836f838e687 Mon Sep 17 00:00:00 2001 From: John Salem Date: Mon, 2 May 2022 18:10:45 +0000 Subject: [PATCH 092/429] Add note about OOM on gcdump --- docs/core/diagnostics/dotnet-gcdump.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/core/diagnostics/dotnet-gcdump.md b/docs/core/diagnostics/dotnet-gcdump.md index b711778242e88..3a8eafec5ee91 100644 --- a/docs/core/diagnostics/dotnet-gcdump.md +++ b/docs/core/diagnostics/dotnet-gcdump.md @@ -155,3 +155,7 @@ dotnet-gcdump report [-h|--help] [-p|--process-id ] [-t|--report-type Date: Mon, 2 May 2022 11:26:49 -0700 Subject: [PATCH 093/429] Fix casing in file name (#29249) --- ...bing-element.md => disablestackoverflowprobing-element.md} | 2 +- docs/framework/configure-apps/file-schema/runtime/index.md | 4 ++-- .../configure-apps/file-schema/runtime/runtime-element.md | 2 +- docs/framework/configure-apps/file-schema/runtime/toc.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename docs/framework/configure-apps/file-schema/runtime/{disableStackOverflowProbing-element.md => disablestackoverflowprobing-element.md} (96%) diff --git a/docs/framework/configure-apps/file-schema/runtime/disableStackOverflowProbing-element.md b/docs/framework/configure-apps/file-schema/runtime/disablestackoverflowprobing-element.md similarity index 96% rename from docs/framework/configure-apps/file-schema/runtime/disableStackOverflowProbing-element.md rename to docs/framework/configure-apps/file-schema/runtime/disablestackoverflowprobing-element.md index 021ea35c36f1f..0c926921e7edb 100644 --- a/docs/framework/configure-apps/file-schema/runtime/disableStackOverflowProbing-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/disablestackoverflowprobing-element.md @@ -1,5 +1,5 @@ --- -description: "Learn more about: Element" +description: "Learn more about the element" title: " Element" ms.date: 04/20/2022 --- diff --git a/docs/framework/configure-apps/file-schema/runtime/index.md b/docs/framework/configure-apps/file-schema/runtime/index.md index a89847e63878e..bcd9546211171 100644 --- a/docs/framework/configure-apps/file-schema/runtime/index.md +++ b/docs/framework/configure-apps/file-schema/runtime/index.md @@ -36,7 +36,7 @@ Runtime settings are used by the common language runtime to configure applicatio     [\](disablecachingbindingfailures-element.md)\     [\](disablecommitthreadstack-element.md)\     [\](disablefusionupdatesfromadmanager-element.md)\ -    [\](disableStackOverflowProbing-element.md)\ +    [\](disablestackoverflowprobing-element.md)\     [\](enableampmparseadjustment-element.md)\     [\](enforcefipspolicy-element.md)\     [\](etwenable-element.md)\ @@ -94,7 +94,7 @@ Runtime settings are used by the common language runtime to configure applicatio |[\](disablecachingbindingfailures-element.md)|Specifies whether the caching of binding failures, which is the default behavior in the .NET Framework 2.0, is disabled.| |[\](disablecommitthreadstack-element.md)|Specifies whether the full thread stack is committed when a thread starts.| |[\](disablefusionupdatesfromadmanager-element.md)|Specifies whether the default behavior, which is to allow the runtime host to override configuration settings for an application domain, is disabled.| -|[\](disableStackOverflowProbing-element.md)|Specifies whether stack-overflow probing is disabled.| +|[\](disablestackoverflowprobing-element.md)|Specifies whether stack-overflow probing is disabled.| |[\](enableampmparseadjustment-element.md)|Determines whether date and time parsing methods use an adjusted set of rules to parse date strings that contain only a day, month, hour, and AM/PM designator.| |[\](enforcefipspolicy-element.md)|Specifies whether to enforce a computer configuration requirement that cryptographic algorithms must comply with the Federal Information Processing Standards (FIPS).| |[\](etwenable-element.md)|Specifies whether to enable event tracing for Windows (ETW) for common language runtime events.| diff --git a/docs/framework/configure-apps/file-schema/runtime/runtime-element.md b/docs/framework/configure-apps/file-schema/runtime/runtime-element.md index 9245a0b39d891..da1dbf41d2d9f 100644 --- a/docs/framework/configure-apps/file-schema/runtime/runtime-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/runtime-element.md @@ -49,7 +49,7 @@ None. |[\](disablecachingbindingfailures-element.md)|Specifies whether the caching of binding failures, which is the default behavior in the .NET Framework version 2.0, is disabled.| |[\](disablecommitthreadstack-element.md)|Specifies whether the full thread stack is committed when a thread is started.| |[\](disablefusionupdatesfromadmanager-element.md)|Specifies whether the default behavior, which is to allow the runtime host to override configuration settings for an application domain, is disabled.| -|[\](disableStackOverflowProbing-element.md)|Specifies whether stack-overflow probing is disabled.| +|[\](disablestackoverflowprobing-element.md)|Specifies whether stack-overflow probing is disabled.| |[\](enableampmparseadjustment-element.md)|Determines whether date and time parsing methods use an adjusted set of rules to parse date strings that contain only a day, month, hour, and AM/PM designator.| |[\](enforcefipspolicy-element.md)|Specifies whether to enforce a computer configuration requirement that cryptographic algorithms must comply with the Federal Information Processing Standards (FIPS).| |[\](etwenable-element.md)|Specifies whether to enable event tracing for Windows (ETW) for common language runtime events.| diff --git a/docs/framework/configure-apps/file-schema/runtime/toc.yml b/docs/framework/configure-apps/file-schema/runtime/toc.yml index c9914907f0438..6dd46c157e8ba 100644 --- a/docs/framework/configure-apps/file-schema/runtime/toc.yml +++ b/docs/framework/configure-apps/file-schema/runtime/toc.yml @@ -50,7 +50,7 @@ items: - name: element href: disablefusionupdatesfromadmanager-element.md - name: element - href: disableStackOverflowProbing-element.md + href: disablestackoverflowprobing-element.md - name: element href: enableampmparseadjustment-element.md - name: element From cf97091e1639d34d51cfa7bd0f7bcc4351a6ca3c Mon Sep 17 00:00:00 2001 From: John Salem Date: Mon, 2 May 2022 13:26:48 -0700 Subject: [PATCH 094/429] Update docs/core/diagnostics/dotnet-gcdump.md Co-authored-by: Noah Falk --- docs/core/diagnostics/dotnet-gcdump.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/dotnet-gcdump.md b/docs/core/diagnostics/dotnet-gcdump.md index 3a8eafec5ee91..f7fae1d94cf1c 100644 --- a/docs/core/diagnostics/dotnet-gcdump.md +++ b/docs/core/diagnostics/dotnet-gcdump.md @@ -158,4 +158,4 @@ dotnet-gcdump report [-h|--help] [-p|--process-id ] [-t|--report-type Date: Mon, 2 May 2022 13:33:34 -0700 Subject: [PATCH 095/429] Apply suggestions from code review Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/diagnostics/eventsource-instrumentation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/core/diagnostics/eventsource-instrumentation.md b/docs/core/diagnostics/eventsource-instrumentation.md index 2e693a5ec1785..72ea3e9f5e02e 100644 --- a/docs/core/diagnostics/eventsource-instrumentation.md +++ b/docs/core/diagnostics/eventsource-instrumentation.md @@ -56,9 +56,9 @@ so on. to the WriteEvent\* APIs. For WriteEvent the arguments follow the Event ID, for WriteEventWithRelatedActivityId the arguments follow the relatedActivityId. For the WriteEvent\*Core methods, the arguments must be serialized manually into the `data` parameter. -8. Event names cannot contain `<` or `>` characters. While user defined methods also cannot contain these characters, `async` methods -will be rewritten by the compiler to contain them. Mark all non-event methods on an -with the to be sure these generated methods don't become events. +8. Event names cannot contain `<` or `>` characters. While user-defined methods also cannot contain these characters, `async` methods +will be rewritten by the compiler to contain them. To be sure these generated methods don't become events, mark all non-event methods on an +with the . ## Best practices From 676e18520d6f797230385e4b8a66e29eefb3652a Mon Sep 17 00:00:00 2001 From: Chet Husk Date: Mon, 2 May 2022 15:42:42 -0500 Subject: [PATCH 096/429] Clarify the minimum VS/MSBuild version for .NET SDK 6.0.300 (#29227) --- docs/core/compatibility/sdk/6.0/vs-msbuild-version.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/core/compatibility/sdk/6.0/vs-msbuild-version.md b/docs/core/compatibility/sdk/6.0/vs-msbuild-version.md index e4da4098f4ed7..f1c15c7e3131c 100644 --- a/docs/core/compatibility/sdk/6.0/vs-msbuild-version.md +++ b/docs/core/compatibility/sdk/6.0/vs-msbuild-version.md @@ -5,7 +5,7 @@ ms.date: 03/25/2022 --- # Version requirements for .NET 6 SDK -The NET 6.0.300 SDK no longer loads in version 16.11 or earlier of Visual Studio or MSBuild. +Starting with the .NET SDK 6.0.300, the .NET SDK no longer loads in version 16.11 or earlier of Visual Studio or MSBuild. ## Version introduced @@ -13,11 +13,11 @@ The NET 6.0.300 SDK no longer loads in version 16.11 or earlier of Visual Studio ## Old behavior -.NET SDK 6.0.300 would load in the 16.10 and 16.11 versions of Visual Studio and MSBuild. +The .NET SDK would load in the 16.10 and 16.11 versions of Visual Studio and MSBuild. ## New behavior -.NET SDK 6.0.300 can only be used with version 17.0 or later of Visual Studio and MSBuild. In addition, any scenarios that use a source generator could fail when using a Visual Studio or MSBuild version earlier than version 17.2. +The .NET SDK can only be used with version 17.0 or later of Visual Studio and MSBuild. In addition, any scenarios that use a source generator could fail when using a Visual Studio or MSBuild version earlier than version 17.2. ## Reason for change From c2432c2a2894bd1784e6d3b329b7662f4b1e0d89 Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Mon, 25 Apr 2022 19:06:40 -0700 Subject: [PATCH 097/429] Fix diagnostics issue #2477 --- .../diagnostics/diagnostics-in-containers.md | 23 +++---------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/docs/core/diagnostics/diagnostics-in-containers.md b/docs/core/diagnostics/diagnostics-in-containers.md index fc61f6511d58c..679c412dd0520 100644 --- a/docs/core/diagnostics/diagnostics-in-containers.md +++ b/docs/core/diagnostics/diagnostics-in-containers.md @@ -10,28 +10,11 @@ The same diagnostics tools that are useful for diagnosing .NET Core issues in ot ## Using .NET CLI tools in a container -**These tools apply to: ✔️** .NET Core 3.0 SDK and later versions +**These tools apply to: ✔️** .NET Core 3.1 SDK and later versions -The .NET Core global CLI diagnostic tools ([`dotnet-counters`](dotnet-counters.md), [`dotnet-dump`](dotnet-dump.md), [`dotnet-gcdump`](dotnet-gcdump.md), and [`dotnet-trace`](dotnet-trace.md)) are designed to work in a wide variety of environments and should all work directly in Docker containers. Because of this, these tools are the preferred method of collecting diagnostic information for .NET Core scenarios targeting .NET Core 3.0 or above (or 3.1 or above in the case of `dotnet-gcdump`) in containers. +The .NET Core global CLI diagnostic tools ([`dotnet-counters`](dotnet-counters.md), [`dotnet-dump`](dotnet-dump.md), [`dotnet-gcdump`](dotnet-gcdump.md), and [`dotnet-trace`](dotnet-trace.md)) are designed to work in a wide variety of environments and should all work directly in Docker containers. Because of this, these tools are the preferred method of collecting diagnostic information for .NET Core scenarios targeting .NET Core 3.1 or above in containers. -The only complicating factor of using these tools in a container is that they are installed with the .NET SDK and many Docker containers run without the .NET SDK present. One easy solution to this problem is to install the tools in the initial Docker image. The tools don't need the .NET SDK to run, only to be installed. Therefore, it's possible to create a Dockerfile with a [multi-stage build](https://docs.docker.com/develop/develop-images/multistage-build/) that installs the tools in a build stage (where the .NET SDK is present) and then copies the binaries into the final image. The only downside to this approach is increased Docker image size. - -```dockerfile -# In build stage -# Install desired .NET CLI diagnostics tools -RUN dotnet tool install --tool-path /tools dotnet-trace -RUN dotnet tool install --tool-path /tools dotnet-counters -RUN dotnet tool install --tool-path /tools dotnet-dump - -... - -# In final stage -# Copy diagnostics tools -WORKDIR /tools -COPY --from=build /tools . -``` - -Alternatively, the .NET SDK can be installed in a container when needed in order to install the CLI tools. Be aware that installing the .NET SDK will have the side-effect of reinstalling the .NET runtime. So be sure to install the version of the SDK that matches the runtime present in the container. +Alternatively, these tools can be installed without the .NET SDK by downloading the single-file variants at the above links. Note that these require a global install of the .NET runtime version 3.1 or newer. ### Using .NET Core global CLI tools in a sidecar container From 4c0871420e7e0d3ac19e8ee06428a4d3806460b7 Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Mon, 2 May 2022 14:38:54 -0700 Subject: [PATCH 098/429] Update docs/core/diagnostics/diagnostics-in-containers.md Code review feedback. Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/diagnostics/diagnostics-in-containers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/diagnostics-in-containers.md b/docs/core/diagnostics/diagnostics-in-containers.md index 679c412dd0520..85bf983279752 100644 --- a/docs/core/diagnostics/diagnostics-in-containers.md +++ b/docs/core/diagnostics/diagnostics-in-containers.md @@ -14,7 +14,7 @@ The same diagnostics tools that are useful for diagnosing .NET Core issues in ot The .NET Core global CLI diagnostic tools ([`dotnet-counters`](dotnet-counters.md), [`dotnet-dump`](dotnet-dump.md), [`dotnet-gcdump`](dotnet-gcdump.md), and [`dotnet-trace`](dotnet-trace.md)) are designed to work in a wide variety of environments and should all work directly in Docker containers. Because of this, these tools are the preferred method of collecting diagnostic information for .NET Core scenarios targeting .NET Core 3.1 or above in containers. -Alternatively, these tools can be installed without the .NET SDK by downloading the single-file variants at the above links. Note that these require a global install of the .NET runtime version 3.1 or newer. +You can also install these tools without the .NET SDK by downloading the single-file variants from the links in the previous paragraph. These installs require a global install of the .NET runtime version 3.1 or later. ### Using .NET Core global CLI tools in a sidecar container From 7e1564d3ad0cccc31dc5a4b1b7ece801ade24ff1 Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Mon, 2 May 2022 14:39:28 -0700 Subject: [PATCH 099/429] Update docs/core/diagnostics/diagnostics-in-containers.md Code review feedback. Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/diagnostics/diagnostics-in-containers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/diagnostics-in-containers.md b/docs/core/diagnostics/diagnostics-in-containers.md index 85bf983279752..6185b5b633899 100644 --- a/docs/core/diagnostics/diagnostics-in-containers.md +++ b/docs/core/diagnostics/diagnostics-in-containers.md @@ -12,7 +12,7 @@ The same diagnostics tools that are useful for diagnosing .NET Core issues in ot **These tools apply to: ✔️** .NET Core 3.1 SDK and later versions -The .NET Core global CLI diagnostic tools ([`dotnet-counters`](dotnet-counters.md), [`dotnet-dump`](dotnet-dump.md), [`dotnet-gcdump`](dotnet-gcdump.md), and [`dotnet-trace`](dotnet-trace.md)) are designed to work in a wide variety of environments and should all work directly in Docker containers. Because of this, these tools are the preferred method of collecting diagnostic information for .NET Core scenarios targeting .NET Core 3.1 or above in containers. +The .NET Core global CLI diagnostic tools ([`dotnet-counters`](dotnet-counters.md), [`dotnet-dump`](dotnet-dump.md), [`dotnet-gcdump`](dotnet-gcdump.md), and [`dotnet-trace`](dotnet-trace.md)) are designed to work in a wide variety of environments and should all work directly in Docker containers. Because of this, these tools are the preferred method of collecting diagnostic information for .NET Core scenarios targeting .NET Core 3.1 or later in containers. You can also install these tools without the .NET SDK by downloading the single-file variants from the links in the previous paragraph. These installs require a global install of the .NET runtime version 3.1 or later. From 1644a5ba2e9344d28dd4835fc7656819b1716ab7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 2 May 2022 17:48:36 -0400 Subject: [PATCH 100/429] What's new article (#29232) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Bot 🤖 generated "What's new article" * Apply suggestions from code review Co-authored-by: IEvangelist Co-authored-by: Bill Wagner --- docs/whats-new/dotnet-docs-2022-01-01.md | 81 ----------------- docs/whats-new/dotnet-docs-2022-04-01.md | 105 +++++++++++++++++++++++ docs/whats-new/index.yml | 6 +- docs/whats-new/toc.yml | 4 +- 4 files changed, 110 insertions(+), 86 deletions(-) delete mode 100644 docs/whats-new/dotnet-docs-2022-01-01.md create mode 100644 docs/whats-new/dotnet-docs-2022-04-01.md diff --git a/docs/whats-new/dotnet-docs-2022-01-01.md b/docs/whats-new/dotnet-docs-2022-01-01.md deleted file mode 100644 index e6cd13c1c4b18..0000000000000 --- a/docs/whats-new/dotnet-docs-2022-01-01.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: ".NET docs: What's new for January 2022" -description: "What's new in the .NET docs for January 2022" -ms.date: 02/01/2022 ---- - -# .NET docs: What's new for January 2022 - -Welcome to what's new in the .NET docs for January 2022. This article lists some of the major changes to docs during this period. - -## .NET fundamentals - -### New articles - -- [CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'](../fundamentals/code-analysis/quality-rules/ca1419.md) -- [CA1727: Use PascalCase for named placeholders](../fundamentals/code-analysis/quality-rules/ca1727.md) -- [CA1842: Do not use 'WhenAll' with a single task](../fundamentals/code-analysis/quality-rules/ca1842.md) -- [CA1843: Do not use 'WaitAll' with a single task](../fundamentals/code-analysis/quality-rules/ca1843.md) -- [CA1848: Use the LoggerMessage delegates](../fundamentals/code-analysis/quality-rules/ca1848.md) -- [CA2017: Parameter count mismatch](../fundamentals/code-analysis/quality-rules/ca2017.md) -- [CA2253: Named placeholders should not be numeric values](../fundamentals/code-analysis/quality-rules/ca2253.md) -- [CA2254: Template should be a static expression](../fundamentals/code-analysis/quality-rules/ca2254.md) -- [CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface](../fundamentals/code-analysis/quality-rules/ca2256.md) -- [CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'](../fundamentals/code-analysis/quality-rules/ca2257.md) -- [CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported](../fundamentals/code-analysis/quality-rules/ca2258.md) -- [Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv and libuv.dll removed](../core/compatibility/aspnet-core/7.0/libuv-transport-dll-removed.md) -- [SYSLIB0037: AssemblyName members HashAlgorithm, ProcessorArchitecture, and VersionCompatibility are obsolete](../fundamentals/syslib-diagnostics/syslib0037.md) -- [Some APIs throw ArgumentNullException (.NET 7)](../core/compatibility/windows-forms/7.0/apis-throw-argumentnullexception.md) -- [API obsoletions with non-default diagnostic IDs (.NET 7)](../core/compatibility/core-libraries/7.0/obsolete-apis-with-custom-diagnostics.md) -- [SYSLIB0036: Regex.CompileToAssembly is obsolete](../fundamentals/syslib-diagnostics/syslib0036.md) -- [Deserialize Version type with leading or trailing whitespace](../core/compatibility/serialization/7.0/deserialize-version-with-whitespace.md) -- [Set timestamp on read-only file on Windows](../core/compatibility/core-libraries/6.0/set-timestamp-readonly-file.md) -- [.NET implementations](../fundamentals/implementations.md) -- [Ecma standards](../fundamentals/standards.md) -- [Breaking changes in .NET 7](../core/compatibility/7.0.md) -- [Validate CompressionLevel for BrotliStream](../core/compatibility/core-libraries/7.0/compressionlevel-validation.md) -- [Default serialization format for TimeSpan](../core/compatibility/serialization/6.0/timespan-serialization-format.md) -- [IL3003: 'RequiresAssemblyFilesAttribute' annotations must match across all interface implementations or overrides.](../core/deploying/single-file/warnings/il3003.md) - -### Updated articles - -- [Upgrade a Windows Forms App to .NET 6 with the .NET Upgrade Assistant](../core/porting/upgrade-assistant-winforms-framework.md) - Upgrade assistant updates -- [Upgrade a WPF App to .NET 6 with the .NET Upgrade Assistant](../core/porting/upgrade-assistant-wpf-framework.md) - Upgrade assistant updates - -## C# language - -### Updated articles - -- [ECMA C# (draft) standard](~/_csharpstandard/standard/README.md) - Publish the C# draft standard instead of the Microsoft C# draft specification. - -## Community contributors - -The following people contributed to the .NET docs during this period. Thank you! Learn how to contribute by following the links under "Get involved" in the [what's new landing page](index.yml). - -- [lindexi](https://github.com/lindexi) - lindexi (9) -- [Youssef1313](https://github.com/Youssef1313) - Youssef Victor (7) -- [GitHubPang](https://github.com/GitHubPang) (6) -- [SteveDunn](https://github.com/SteveDunn) - Steve Dunn (3) -- [isaacabraham](https://github.com/isaacabraham) - Isaac Abraham (2) -- [MaceWindu](https://github.com/MaceWindu) (2) -- [pkulikov](https://github.com/pkulikov) - Petr Kulikov (2) -- [sputier](https://github.com/sputier) - Sébastien Putier (2) -- [ardalis](https://github.com/ardalis) - Steve Smith (1) -- [cmeeren](https://github.com/cmeeren) - Christer van der Meeren (1) -- [dickens-code](https://github.com/dickens-code) - DIcKeNs (1) -- [Dixin](https://github.com/Dixin) - Dixin (1) -- [Eagle3386](https://github.com/Eagle3386) - Martin Arndt (1) -- [epeshk](https://github.com/epeshk) - Evgeny Peshkov (1) -- [fowl2](https://github.com/fowl2) - James May (1) -- [heikow10](https://github.com/heikow10) - Heiko Wobst (1) -- [jjanuszkiewicz](https://github.com/jjanuszkiewicz) - Jakub Januszkiewicz (1) -- [jwood803](https://github.com/jwood803) - Jon Wood (1) -- [maxkoshevoi](https://github.com/maxkoshevoi) - Maksym Koshovyi (1) -- [ni-eke](https://github.com/ni-eke) (1) -- [nojaf](https://github.com/nojaf) - Florian Verdonck (1) -- [omajid](https://github.com/omajid) - Omair Majid (1) -- [Piotrku8192](https://github.com/Piotrku8192) - Piotr Szulakowski (1) -- [smholvoet](https://github.com/smholvoet) - Sander Holvoet (1) -- [vcrobe](https://github.com/vcrobe) (1) -- [wferebee](https://github.com/wferebee) - William Ferebee (1) -- [yugoccp](https://github.com/yugoccp) (1) diff --git a/docs/whats-new/dotnet-docs-2022-04-01.md b/docs/whats-new/dotnet-docs-2022-04-01.md new file mode 100644 index 0000000000000..6b669d1aca774 --- /dev/null +++ b/docs/whats-new/dotnet-docs-2022-04-01.md @@ -0,0 +1,105 @@ +--- +title: ".NET docs: What's new for April 2022" +description: "What's new in the .NET docs for April 2022." +ms.date: 05/01/2022 +--- + +# .NET docs: What's new for April 1, 2022 - April 30, 2022 + +Welcome to what's new in the .NET docs for April 2022. This article lists some of the major changes to docs during this period. + +## .NET Framework + +### New articles + +- [\ Element](../framework/configure-apps/file-schema/runtime/disablestackoverflowprobing-element.md) +- [SqlBinary Constructor](../framework/additional-apis/system.data.sqltypes.sqlbinary.-ctor.md) +- [SqlGuid Constructor](../framework/additional-apis/system.data.sqltypes.sqlguid.-ctor.md) +- [SqlMoney Constructor](../framework/additional-apis/system.data.sqltypes.sqlmoney.-ctor.md) +- [CloseCLREnumeration Function for Silverlight](../framework/unmanaged-api/debugging/closeclrenumeration-function-for-silverlight.md) +- [CloseResumeHandle Function](../framework/unmanaged-api/debugging/closeresumehandle-function.md) +- [CLRCreateInstance for .NET Core Function](../framework/unmanaged-api/debugging/clrcreateinstance-function.md) +- [CreateDebuggingInterfaceFromVersion Function for .NET Core](../framework/unmanaged-api/debugging/createdebugginginterfacefromversion-function.md) +- [CreateDebuggingInterfaceFromVersion2 Function for .NET Core](../framework/unmanaged-api/debugging/createdebugginginterfacefromversion2-function.md) +- [CreateDebuggingInterfaceFromVersion3 Function for .NET Core](../framework/unmanaged-api/debugging/createdebugginginterfacefromversion3-function.md) +- [CreateDebuggingInterfaceFromVersionEx Function for .NET Core](../framework/unmanaged-api/debugging/createdebugginginterfacefromversionex-function.md) +- [CreateProcessForLaunch Function](../framework/unmanaged-api/debugging/createprocessforlaunch-function.md) +- [CreateVersionStringFromModule Function for Silverlight](../framework/unmanaged-api/debugging/createversionstringfrommodule-function-for-silverlight.md) +- [.NET Core Debugging](../framework/unmanaged-api/debugging/dotnet-debugging.md) +- [EnumerateCLRs Function for Silverlight](../framework/unmanaged-api/debugging/enumerateclrs-function-for-silverlight.md) +- [GetStartupNotificationEvent Function for Silverlight](../framework/unmanaged-api/debugging/getstartupnotificationevent-function-for-silverlight.md) +- [ICLRDebuggingLibraryProvider2 Interface](../framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-interface.md) +- [ICLRDebuggingLibraryProvider2::ProvideLibrary2 Method](../framework/unmanaged-api/debugging/iclrdebugginglibraryprovider2-providelibrary2-method.md) +- [ICLRDebuggingLibraryProvider3 Interface](../framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-interface.md) +- [ICLRDebuggingLibraryProvider3::ProvideUnixLibrary Method](../framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-provideunixlibrary-method.md) +- [ICLRDebuggingLibraryProvider3::ProvideWindowsLibrary Method](../framework/unmanaged-api/debugging/iclrdebugginglibraryprovider3-providewindowslibrary-method.md) +- [LIBRARY_PROVIDER_INDEX_TYPE Enumeration](../framework/unmanaged-api/debugging/libraryproviderindextype-enumeration.md) +- [PSTARTUP_CALLBACK Function Pointer](../framework/unmanaged-api/debugging/pstartup_callback-function-pointer.md) +- [RegisterForRuntimeStartup Function for .NET Core](../framework/unmanaged-api/debugging/registerforruntimestartup-function.md) +- [RegisterForRuntimeStartup3 Function for .NET Core](../framework/unmanaged-api/debugging/registerforruntimestartup3-function.md) +- [RegisterForRuntimeStartupEx Function for .NET Core](../framework/unmanaged-api/debugging/registerforruntimestartupex-function.md) +- [ResumeProcess Function](../framework/unmanaged-api/debugging/resumeprocess-function.md) +- [UnregisterForRuntimeStartup Function for .NET Core](../framework/unmanaged-api/debugging/unregisterforruntimestartup-function.md) + +## .NET fundamentals + +### New articles + +- [Debug ThreadPool Starvation](../core/diagnostics/debug-threadpool-starvation.md) +- [Diagnostic port](../core/diagnostics/diagnostic-port.md) +- [Multi-level lookup is disabled](../core/compatibility/deployment/7.0/multilevel-lookup.md) +- [SYSLIB0041: Some Rfc2898DeriveBytes constructors are obsolete](../fundamentals/syslib-diagnostics/syslib0041.md) +- [SYSLIB0042: FromXmlString and ToXmlString on ECC types are obsolete](../fundamentals/syslib-diagnostics/syslib0042.md) +- [SYSLIB0043: ECDiffieHellmanPublicKey.ToByteArray is obsolete](../fundamentals/syslib-diagnostics/syslib0043.md) +- [MVC's detection of an empty body in model binding changed](../core/compatibility/aspnet-core/7.0/mvc-empty-body-model-binding.md) +- [C++/CLI projects in Visual Studio](../core/compatibility/core-libraries/7.0/cpluspluscli-compiler-version.md) +- [CA1851: Possible multiple enumerations of `IEnumerable` collection](../fundamentals/code-analysis/quality-rules/ca1851.md) + +### Updated articles + +- [dotnet-coverage code coverage utility](../core/additional-tools/dotnet-coverage.md) - Adding new options and example scenarios + +## C# language + +### Updated articles + +- [Built-in reference types (C# reference)](../csharp/language-reference/builtin-types/reference-types.md) - Document raw string literals +- [Strings and string literals](../csharp/programming-guide/strings/index.md) - Document raw string literals + +## Community contributors + +The following people contributed to the .NET docs during this period. Thank you! Learn how to contribute by following the links under "Get involved" in the [what's new landing page](index.yml). + +- [GitHubPang](https://github.com/GitHubPang) (7) +- [nschonni](https://github.com/nschonni) - Nick Schonning (3) +- [Youssef1313](https://github.com/Youssef1313) - Youssef Victor (3) +- [bvda](https://github.com/bvda) - Brian Vestergaard Danielsen (1) +- [cartermp](https://github.com/cartermp) - Phillip Carter (1) +- [chessboards](https://github.com/chessboards) (1) +- [DreadLordMikey](https://github.com/DreadLordMikey) - Michael Hofer (1) +- [Flash0ver](https://github.com/Flash0ver) - Stefan Pölz (1) +- [ftsfranklin](https://github.com/ftsfranklin) (1) +- [gfoidl](https://github.com/gfoidl) - Günther Foidl (1) +- [hyoshioka0128](https://github.com/hyoshioka0128) - Hiroshi Yoshioka (1) +- [j0nimost](https://github.com/j0nimost) - John Nyingi (1) +- [JasonLoKiSmith](https://github.com/JasonLoKiSmith) (1) +- [jgscherber](https://github.com/jgscherber) - Jacob Scherber (1) +- [loris-s-sonarsource](https://github.com/loris-s-sonarsource) - Loris S. (1) +- [Marusyk](https://github.com/Marusyk) - Roman Marusyk (1) +- [mkowusu](https://github.com/mkowusu) - Michael Owusu (1) +- [N0D4N](https://github.com/N0D4N) (1) +- [NikRimington](https://github.com/NikRimington) - Nik (1) +- [omarjuul](https://github.com/omarjuul) - Camiel Egbers (1) +- [pbachmann](https://github.com/pbachmann) (1) +- [Prajwal-Koirala](https://github.com/Prajwal-Koirala) - Prajwal Koirala (1) +- [QHopp](https://github.com/QHopp) - QHopp (1) +- [renbaoshuo](https://github.com/renbaoshuo) - Baoshuo Ren (1) +- [sameercarpenter](https://github.com/sameercarpenter) - Sameer Carpenter (1) +- [serpent5](https://github.com/serpent5) - Kirk Larkin (1) +- [sixtymage](https://github.com/sixtymage) - Jon Hutchings (1) +- [stesee](https://github.com/stesee) - Stefan Seeland (1) +- [svick](https://github.com/svick) - Petr Onderka (1) +- [tommyb86](https://github.com/tommyb86) (1) +- [TrickyCat](https://github.com/TrickyCat) - Dmytro Doroshenko (1) +- [Zhu-Panda](https://github.com/Zhu-Panda) (1) +- [zspitz](https://github.com/zspitz) - Zev Spitz (1) diff --git a/docs/whats-new/index.yml b/docs/whats-new/index.yml index 3704ea25ed020..7eb28e2611bb4 100644 --- a/docs/whats-new/index.yml +++ b/docs/whats-new/index.yml @@ -5,19 +5,19 @@ summary: Welcome to what's new in .NET docs. Use this page to quickly find the l metadata: title: .NET documentation what's new? description: Learn about new and updated content in .NET docs. - ms.date: 04/01/2022 + ms.date: 05/01/2022 ms.topic: landing-page landingContent: - title: Find .NET updates linkLists: - linkListType: whats-new links: + - text: April 2022 + url: dotnet-docs-2022-04-01.md - text: March 2022 url: dotnet-docs-2022-03-01.md - text: February 2022 url: dotnet-docs-2022-02-01.md - - text: January 2022 - url: dotnet-docs-2022-01-01.md - title: Find language updates linkLists: - linkListType: whats-new diff --git a/docs/whats-new/toc.yml b/docs/whats-new/toc.yml index 08e343a0c9759..2ebf480002b8b 100644 --- a/docs/whats-new/toc.yml +++ b/docs/whats-new/toc.yml @@ -3,9 +3,9 @@ items: href: index.yml expanded: true items: + - name: April 2022 + href: dotnet-docs-2022-04-01.md - name: March 2022 href: dotnet-docs-2022-03-01.md - name: February 2022 href: dotnet-docs-2022-02-01.md - - name: January 2022 - href: dotnet-docs-2022-01-01.md From b57dac160104f121edf1529a77b7ec9c5ef4eff7 Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Mon, 2 May 2022 15:52:26 -0700 Subject: [PATCH 101/429] Update docs/core/diagnostics/diagnostics-in-containers.md Review feedback Co-authored-by: Juan Hoyos --- docs/core/diagnostics/diagnostics-in-containers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/diagnostics-in-containers.md b/docs/core/diagnostics/diagnostics-in-containers.md index 6185b5b633899..4790366aa4d2e 100644 --- a/docs/core/diagnostics/diagnostics-in-containers.md +++ b/docs/core/diagnostics/diagnostics-in-containers.md @@ -14,7 +14,7 @@ The same diagnostics tools that are useful for diagnosing .NET Core issues in ot The .NET Core global CLI diagnostic tools ([`dotnet-counters`](dotnet-counters.md), [`dotnet-dump`](dotnet-dump.md), [`dotnet-gcdump`](dotnet-gcdump.md), and [`dotnet-trace`](dotnet-trace.md)) are designed to work in a wide variety of environments and should all work directly in Docker containers. Because of this, these tools are the preferred method of collecting diagnostic information for .NET Core scenarios targeting .NET Core 3.1 or later in containers. -You can also install these tools without the .NET SDK by downloading the single-file variants from the links in the previous paragraph. These installs require a global install of the .NET runtime version 3.1 or later. +You can also install these tools without the .NET SDK by downloading the single-file variants from the links in the previous paragraph. These installs require a global install of the .NET runtime version 3.1 or later which you can acquire following any of the prescribed methods in the [.NET installation documentation](../..//install/index.yml) or consuming any of the official runtime containers. ### Using .NET Core global CLI tools in a sidecar container From 027e8c8bc0c0d8fc884cd72cefe9e9e85106240e Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Mon, 2 May 2022 15:54:52 -0700 Subject: [PATCH 102/429] Fix link --- docs/core/diagnostics/diagnostics-in-containers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/diagnostics-in-containers.md b/docs/core/diagnostics/diagnostics-in-containers.md index 4790366aa4d2e..3a790fd39dfbf 100644 --- a/docs/core/diagnostics/diagnostics-in-containers.md +++ b/docs/core/diagnostics/diagnostics-in-containers.md @@ -14,7 +14,7 @@ The same diagnostics tools that are useful for diagnosing .NET Core issues in ot The .NET Core global CLI diagnostic tools ([`dotnet-counters`](dotnet-counters.md), [`dotnet-dump`](dotnet-dump.md), [`dotnet-gcdump`](dotnet-gcdump.md), and [`dotnet-trace`](dotnet-trace.md)) are designed to work in a wide variety of environments and should all work directly in Docker containers. Because of this, these tools are the preferred method of collecting diagnostic information for .NET Core scenarios targeting .NET Core 3.1 or later in containers. -You can also install these tools without the .NET SDK by downloading the single-file variants from the links in the previous paragraph. These installs require a global install of the .NET runtime version 3.1 or later which you can acquire following any of the prescribed methods in the [.NET installation documentation](../..//install/index.yml) or consuming any of the official runtime containers. +You can also install these tools without the .NET SDK by downloading the single-file variants from the links in the previous paragraph. These installs require a global install of the .NET runtime version 3.1 or later which you can acquire following any of the prescribed methods in the [.NET installation documentation](../install/index.yml) or consuming any of the official runtime containers. ### Using .NET Core global CLI tools in a sidecar container From e6d3221c9c895695eda6b56c18db004df57881ee Mon Sep 17 00:00:00 2001 From: Mike McLaughlin Date: Mon, 2 May 2022 15:57:01 -0700 Subject: [PATCH 103/429] Update docs/core/diagnostics/diagnostics-in-containers.md Review feedback. Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/diagnostics/diagnostics-in-containers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/diagnostics-in-containers.md b/docs/core/diagnostics/diagnostics-in-containers.md index 3a790fd39dfbf..cbef5ed20d137 100644 --- a/docs/core/diagnostics/diagnostics-in-containers.md +++ b/docs/core/diagnostics/diagnostics-in-containers.md @@ -14,7 +14,7 @@ The same diagnostics tools that are useful for diagnosing .NET Core issues in ot The .NET Core global CLI diagnostic tools ([`dotnet-counters`](dotnet-counters.md), [`dotnet-dump`](dotnet-dump.md), [`dotnet-gcdump`](dotnet-gcdump.md), and [`dotnet-trace`](dotnet-trace.md)) are designed to work in a wide variety of environments and should all work directly in Docker containers. Because of this, these tools are the preferred method of collecting diagnostic information for .NET Core scenarios targeting .NET Core 3.1 or later in containers. -You can also install these tools without the .NET SDK by downloading the single-file variants from the links in the previous paragraph. These installs require a global install of the .NET runtime version 3.1 or later which you can acquire following any of the prescribed methods in the [.NET installation documentation](../install/index.yml) or consuming any of the official runtime containers. +You can also install these tools without the .NET SDK by downloading the single-file variants from the links in the previous paragraph. These installs require a global install of the .NET runtime version 3.1 or later, which you can acquire following any of the prescribed methods in the [.NET installation documentation](../install/index.yml) or by consuming any of the official runtime containers. ### Using .NET Core global CLI tools in a sidecar container From bd4b3a24f501dffef6725b5abd06390f381ab304 Mon Sep 17 00:00:00 2001 From: Jeff Handley Date: Mon, 2 May 2022 22:14:01 -0700 Subject: [PATCH 104/429] Refinement of CA2255 description based on feedback --- docs/fundamentals/code-analysis/quality-rules/ca2255.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2255.md b/docs/fundamentals/code-analysis/quality-rules/ca2255.md index 87e2acaf1c821..2f0f182228253 100644 --- a/docs/fundamentals/code-analysis/quality-rules/ca2255.md +++ b/docs/fundamentals/code-analysis/quality-rules/ca2255.md @@ -29,7 +29,7 @@ Module initializers are intended to be used by application code to ensure an app ## How to fix violations -Instead of using methods with the , a library should expose methods that can be used to initialize any components within the library, and allow the application to invoke the method during application initialization. +Instead of using methods marked with , the library should expose methods that can be used to initialize any components within the library and allow the application to invoke the method during application initialization. ## When to suppress warnings From 9f4eaa24eb7687ff9f083781d11bf4853aa54666 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 3 May 2022 07:18:08 -0700 Subject: [PATCH 105/429] Update package index with latest published versions (#29246) --- docs/azure/includes/dotnet-all.md | 28 ++++++++++++++-------------- docs/azure/includes/dotnet-new.md | 14 +++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 398a2814b6c82..195f1ea6a3b71 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -51,13 +51,13 @@ | Schema Registry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.1.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.1.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | | Schema Registry - Avro | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme-pre) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0-beta.8/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | | Service Bus | NuGet [7.7.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.7.0)
NuGet [7.8.0-beta.2](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0-beta.2) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.7.0/sdk/servicebus/Azure.Messaging.ServiceBus/)
GitHub [7.8.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0-beta.2/sdk/servicebus/Azure.Messaging.ServiceBus/) | -| Storage - Blobs | NuGet [12.11.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.11.0)
NuGet [12.12.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.11.0/sdk/storage/Azure.Storage.Blobs/)
GitHub [12.12.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0-beta.1/sdk/storage/Azure.Storage.Blobs/) | -| Storage - Blobs Batch | NuGet [12.8.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.8.0)
NuGet [12.9.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.8.0/sdk/storage/Azure.Storage.Blobs.Batch/)
GitHub [12.9.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0-beta.1/sdk/storage/Azure.Storage.Blobs.Batch/) | -| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.24](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.24) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.24](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.24/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | -| Storage - Common | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Common/12.10.0)
NuGet [12.11.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Common/12.11.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.10.0/sdk/storage/Azure.Storage.Common/)
GitHub [12.11.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.11.0-beta.1/sdk/storage/Azure.Storage.Common/) | -| Storage - Files Data Lake | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.9.0/sdk/storage/Azure.Storage.Files.DataLake/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.10.0-beta.1/sdk/storage/Azure.Storage.Files.DataLake/) | -| Storage - Files Shares | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.9.0/sdk/storage/Azure.Storage.Files.Shares/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.10.0-beta.1/sdk/storage/Azure.Storage.Files.Shares/) | -| Storage - Queues | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Queues/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Queues/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.9.0/sdk/storage/Azure.Storage.Queues/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.10.0-beta.1/sdk/storage/Azure.Storage.Queues/) | +| Storage - Blobs | NuGet [12.12.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0/sdk/storage/Azure.Storage.Blobs/) | +| Storage - Blobs Batch | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0/sdk/storage/Azure.Storage.Blobs.Batch/) | +| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.25](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.25) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.25](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.25/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | +| Storage - Common | NuGet [12.11.0](https://www.nuget.org/packages/Azure.Storage.Common/12.11.0) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.11.0/sdk/storage/Azure.Storage.Common/) | +| Storage - Files Data Lake | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.10.0) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.10.0/sdk/storage/Azure.Storage.Files.DataLake/) | +| Storage - Files Shares | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.10.0) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.10.0/sdk/storage/Azure.Storage.Files.Shares/) | +| Storage - Queues | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Queues/12.10.0) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.10.0/sdk/storage/Azure.Storage.Queues/) | | Synapse - AccessControl | NuGet [1.0.0-preview.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.AccessControl/1.0.0-preview.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.AccessControl-readme-pre) | GitHub [1.0.0-preview.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.AccessControl_1.0.0-preview.5/sdk/synapse/Azure.Analytics.Synapse.AccessControl/) | | Synapse - Artifacts | NuGet [1.0.0-preview.15](https://www.nuget.org/packages/Azure.Analytics.Synapse.Artifacts/1.0.0-preview.15) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Artifacts-readme-pre) | GitHub [1.0.0-preview.15](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Artifacts_1.0.0-preview.15/sdk/synapse/Azure.Analytics.Synapse.Artifacts/) | | Synapse - Managed Private Endpoints | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.ManagedPrivateEndpoints/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.ManagedPrivateEndpoints-readme-pre) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.ManagedPrivateEndpoints_1.0.0-beta.5/sdk/synapse/Azure.Analytics.Synapse.ManagedPrivateEndpoints/) | @@ -361,16 +361,16 @@ | SQL Database Elastic Scale Client | NuGet [2.3.0](https://www.nuget.org/packages/Microsoft.Azure.SqlDatabase.ElasticScale.Client/2.3.0) | | GitHub [2.3.0](https://github.com/Azure/elastic-db-tools/tree/v2.3.0/Src/ElasticScale.Client) | | SQL Database Elastic Scale Service SplitMerge | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Azure.SqlDatabase.ElasticScale.Service.SplitMerge/1.2.0) | | | | SQL Database Jobs | NuGet [0.8.3362.1](https://www.nuget.org/packages/Microsoft.Azure.SqlDatabase.Jobs/0.8.3362.1) | | | -| Storage - Blobs | NuGet [12.11.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.11.0)
NuGet [12.12.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.11.0/sdk/storage/Azure.Storage.Blobs/)
GitHub [12.12.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0-beta.1/sdk/storage/Azure.Storage.Blobs/) | +| Storage - Blobs | NuGet [12.12.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0/sdk/storage/Azure.Storage.Blobs/) | | Storage - Blobs | NuGet [11.2.3](https://www.nuget.org/packages/Microsoft.Azure.Storage.Blob/11.2.3) | | GitHub [11.2.3](https://github.com/Azure/azure-storage-net/tree/master/Blob) | -| Storage - Blobs Batch | NuGet [12.8.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.8.0)
NuGet [12.9.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.8.0/sdk/storage/Azure.Storage.Blobs.Batch/)
GitHub [12.9.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0-beta.1/sdk/storage/Azure.Storage.Blobs.Batch/) | -| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.24](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.24) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.24](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.24/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | -| Storage - Common | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Common/12.10.0)
NuGet [12.11.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Common/12.11.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.10.0/sdk/storage/Azure.Storage.Common/)
GitHub [12.11.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.11.0-beta.1/sdk/storage/Azure.Storage.Common/) | +| Storage - Blobs Batch | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0/sdk/storage/Azure.Storage.Blobs.Batch/) | +| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.25](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.25) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.25](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.25/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | +| Storage - Common | NuGet [12.11.0](https://www.nuget.org/packages/Azure.Storage.Common/12.11.0) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.11.0/sdk/storage/Azure.Storage.Common/) | | Storage - Data Movement | NuGet [2.0.4](https://www.nuget.org/packages/Microsoft.Azure.Storage.DataMovement/2.0.4) | | GitHub [2.0.4](https://github.com/Azure/azure-storage-net-data-movement/tree/v1.3.0) | -| Storage - Files Data Lake | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.9.0/sdk/storage/Azure.Storage.Files.DataLake/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.10.0-beta.1/sdk/storage/Azure.Storage.Files.DataLake/) | -| Storage - Files Shares | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.9.0/sdk/storage/Azure.Storage.Files.Shares/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.10.0-beta.1/sdk/storage/Azure.Storage.Files.Shares/) | +| Storage - Files Data Lake | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.10.0) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.10.0/sdk/storage/Azure.Storage.Files.DataLake/) | +| Storage - Files Shares | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.10.0) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.10.0/sdk/storage/Azure.Storage.Files.Shares/) | | Storage - Files Shares | NuGet [11.2.3](https://www.nuget.org/packages/Microsoft.Azure.Storage.File/11.2.3) | | GitHub [11.2.3](https://github.com/Azure/azure-storage-net/tree/master/File) | -| Storage - Queues | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Queues/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Queues/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.9.0/sdk/storage/Azure.Storage.Queues/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.10.0-beta.1/sdk/storage/Azure.Storage.Queues/) | +| Storage - Queues | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Queues/12.10.0) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.10.0/sdk/storage/Azure.Storage.Queues/) | | Storage - Queues | NuGet [11.2.3](https://www.nuget.org/packages/Microsoft.Azure.Storage.Queue/11.2.3) | | GitHub [11.2.3](https://github.com/Azure/azure-storage-net/tree/master/Queue) | | Synapse | NuGet [0.1.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Synapse/0.1.0-preview) | | GitHub [0.1.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Synapse_0.1.0-preview/sdk/synapse/Microsoft.Azure.Synapse/) | | Synapse - AccessControl | NuGet [1.0.0-preview.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.AccessControl/1.0.0-preview.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.AccessControl-readme-pre) | GitHub [1.0.0-preview.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.AccessControl_1.0.0-preview.5/sdk/synapse/Azure.Analytics.Synapse.AccessControl/) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index d23f99ac53101..12fcfeb0f5931 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -51,13 +51,13 @@ | Schema Registry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.1.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.1.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | | Schema Registry - Avro | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme-pre) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0-beta.8/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | | Service Bus | NuGet [7.7.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.7.0)
NuGet [7.8.0-beta.2](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0-beta.2) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.7.0/sdk/servicebus/Azure.Messaging.ServiceBus/)
GitHub [7.8.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0-beta.2/sdk/servicebus/Azure.Messaging.ServiceBus/) | -| Storage - Blobs | NuGet [12.11.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.11.0)
NuGet [12.12.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.11.0/sdk/storage/Azure.Storage.Blobs/)
GitHub [12.12.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0-beta.1/sdk/storage/Azure.Storage.Blobs/) | -| Storage - Blobs Batch | NuGet [12.8.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.8.0)
NuGet [12.9.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.8.0/sdk/storage/Azure.Storage.Blobs.Batch/)
GitHub [12.9.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0-beta.1/sdk/storage/Azure.Storage.Blobs.Batch/) | -| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.24](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.24) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.24](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.24/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | -| Storage - Common | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Common/12.10.0)
NuGet [12.11.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Common/12.11.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.10.0/sdk/storage/Azure.Storage.Common/)
GitHub [12.11.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.11.0-beta.1/sdk/storage/Azure.Storage.Common/) | -| Storage - Files Data Lake | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.9.0/sdk/storage/Azure.Storage.Files.DataLake/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.10.0-beta.1/sdk/storage/Azure.Storage.Files.DataLake/) | -| Storage - Files Shares | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.9.0/sdk/storage/Azure.Storage.Files.Shares/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.10.0-beta.1/sdk/storage/Azure.Storage.Files.Shares/) | -| Storage - Queues | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Queues/12.9.0)
NuGet [12.10.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Queues/12.10.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.9.0/sdk/storage/Azure.Storage.Queues/)
GitHub [12.10.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.10.0-beta.1/sdk/storage/Azure.Storage.Queues/) | +| Storage - Blobs | NuGet [12.12.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0/sdk/storage/Azure.Storage.Blobs/) | +| Storage - Blobs Batch | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0/sdk/storage/Azure.Storage.Blobs.Batch/) | +| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.25](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.25) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.25](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.25/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | +| Storage - Common | NuGet [12.11.0](https://www.nuget.org/packages/Azure.Storage.Common/12.11.0) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.11.0/sdk/storage/Azure.Storage.Common/) | +| Storage - Files Data Lake | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.10.0) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.10.0/sdk/storage/Azure.Storage.Files.DataLake/) | +| Storage - Files Shares | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Files.Shares/12.10.0) | [docs](/dotnet/api/overview/azure/Storage.Files.Shares-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.Shares_12.10.0/sdk/storage/Azure.Storage.Files.Shares/) | +| Storage - Queues | NuGet [12.10.0](https://www.nuget.org/packages/Azure.Storage.Queues/12.10.0) | [docs](/dotnet/api/overview/azure/Storage.Queues-readme) | GitHub [12.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Queues_12.10.0/sdk/storage/Azure.Storage.Queues/) | | Synapse - AccessControl | NuGet [1.0.0-preview.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.AccessControl/1.0.0-preview.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.AccessControl-readme-pre) | GitHub [1.0.0-preview.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.AccessControl_1.0.0-preview.5/sdk/synapse/Azure.Analytics.Synapse.AccessControl/) | | Synapse - Artifacts | NuGet [1.0.0-preview.15](https://www.nuget.org/packages/Azure.Analytics.Synapse.Artifacts/1.0.0-preview.15) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Artifacts-readme-pre) | GitHub [1.0.0-preview.15](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Artifacts_1.0.0-preview.15/sdk/synapse/Azure.Analytics.Synapse.Artifacts/) | | Synapse - Managed Private Endpoints | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.ManagedPrivateEndpoints/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.ManagedPrivateEndpoints-readme-pre) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.ManagedPrivateEndpoints_1.0.0-beta.5/sdk/synapse/Azure.Analytics.Synapse.ManagedPrivateEndpoints/) | From 05d4b52f179a89b245fd8fd0091f4608a6af6b38 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Tue, 3 May 2022 10:28:37 -0700 Subject: [PATCH 106/429] Container image console formatter (#29256) --- docs/core/compatibility/6.0.md | 6 ++ .../6.0/console-formatter-default.md | 66 +++++++++++++++++++ .../6.0/file-replace-exceptions-on-unix.md | 2 +- docs/core/compatibility/toc.yml | 14 ++++ 4 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 docs/core/compatibility/containers/6.0/console-formatter-default.md diff --git a/docs/core/compatibility/6.0.md b/docs/core/compatibility/6.0.md index cdb68943db515..8b148d78fc94d 100644 --- a/docs/core/compatibility/6.0.md +++ b/docs/core/compatibility/6.0.md @@ -41,6 +41,12 @@ If you're migrating an app to .NET 6, the breaking changes listed here might aff | [SignalR: Java Client updated to RxJava3](aspnet-core/6.0/signalr-java-client-updated.md) | ❌ | ✔️ | Preview 4 | | [TryParse and BindAsync methods are validated](aspnet-core/6.0/tryparse-bindasync-validation.md) | ❌ | ❌ | RC 2 | +## Containers + +| Title | Binary compatible | Source compatible | Introduced | +| - | :-: | :-: | - | +| [Default console logger formatting in container images](containers/6.0/console-formatter-default.md) | ✔️ | ❌ | Servicing 6.0.6 | + ## Core .NET libraries | Title | Binary compatible | Source compatible | Introduced | diff --git a/docs/core/compatibility/containers/6.0/console-formatter-default.md b/docs/core/compatibility/containers/6.0/console-formatter-default.md new file mode 100644 index 0000000000000..2069c8a815cb3 --- /dev/null +++ b/docs/core/compatibility/containers/6.0/console-formatter-default.md @@ -0,0 +1,66 @@ +--- +title: ".NET 6 breaking change: Default console logger formatting in container images" +description: Learn about the .NET 6 breaking change in .NET containers where the default formatting for the console logger in aspnet container images is no longer JSON. +ms.date: 05/02/2022 +--- +# Default console logger formatting in container images + +The default console formatter that's configured in `aspnet` containers has changed. + +## Previous behavior + +In previous servicing releases of .NET 6, `aspnet` container images were configured with the `Logging__Console__FormatterName` environment variable set to `Json`. This resulted in console output formatted similarly to the following: + +```txt +{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Now listening on: http://localhost:7000/","State":{"Message":"Now listening on: http://localhost:7000/","address":"http://localhost:7000/","{OriginalFormat}":"Now listening on: {address}"}} +{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Now listening on: http://localhost:7001/","State":{"Message":"Now listening on: http://localhost:7001/","address":"http://localhost:7001/","{OriginalFormat}":"Now listening on: {address}"}} +{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Now listening on: http://localhost:7002/","State":{"Message":"Now listening on: http://localhost:7002/","address":"http://localhost:7002/","{OriginalFormat}":"Now listening on: {address}"}} +{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Application started. Press Ctrl\u002BC to shut down.","State":{"Message":"Application started. Press Ctrl\u002BC to shut down.","{OriginalFormat}":"Application started. Press Ctrl\u002BC to shut down."}} +{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Hosting environment: Development","State":{"Message":"Hosting environment: Development","envName":"Development","{OriginalFormat}":"Hosting environment: {envName}"}} +{"EventId":0,"LogLevel":"Information","Category":"Microsoft.Hosting.Lifetime","Message":"Content root path: C:\\source\\temp\\web50","State":{"Message":"Content root path: C:\\source\\temp\\web50","contentRoot":"C:\\source\\temp\\web50","{OriginalFormat}":"Content root path: {contentRoot}"}} +``` + +## New behavior + +Starting in .NET 6.0.6, `aspnet` container images have the `Logging__Console__FormatterName` environment variable unset by default. This results in simple, multiline, human-readable console output similar to the following: + +```txt +warn: Microsoft.AspNetCore.Server.HttpSys.MessagePump[37] + Overriding address(es) ''. Binding to endpoints added to UrlPrefixes instead. +info: Microsoft.Hosting.Lifetime[0] + Now listening on: http://localhost:7000/ +info: Microsoft.Hosting.Lifetime[0] + Now listening on: http://localhost:7001/ +info: Microsoft.Hosting.Lifetime[0] + Now listening on: http://localhost:7002/ +info: Microsoft.Hosting.Lifetime[0] + Application started. Press Ctrl+C to shut down. +info: Microsoft.Hosting.Lifetime[0] + Hosting environment: Development +info: Microsoft.Hosting.Lifetime[0] + Content root path: C:\source\temp\web50 +``` + +## Version introduced + +.NET 6.0.6 (May 2022 servicing) + +## Type of breaking change + +This change can affect [source compatibility](../../categories.md#source-compatibility). + +## Reason for change + +When the change to use JSON formatting was introduced in the .NET 6 GA release, it broke many scenarios that relied on the original, simple formatting as described in [dotnet/dotnet-docker#2725](https://github.com/dotnet/dotnet-docker#2725). + +## Recommended action + +If you want to continue using the JSON formatting, you can configure your container to use it by setting the `Logging__Console__FormatterName` environment variable value to `Json`. + +## Affected APIs + +None. + +## See also + +- [dotnet/dotnet-docker#3706](https://github.com/dotnet/dotnet-docker#3706) diff --git a/docs/core/compatibility/core-libraries/6.0/file-replace-exceptions-on-unix.md b/docs/core/compatibility/core-libraries/6.0/file-replace-exceptions-on-unix.md index 2746260126002..27f60a37d24c0 100644 --- a/docs/core/compatibility/core-libraries/6.0/file-replace-exceptions-on-unix.md +++ b/docs/core/compatibility/core-libraries/6.0/file-replace-exceptions-on-unix.md @@ -7,7 +7,7 @@ ms.date: 10/13/2021 The behavior of on Unix-based operating systems has changed. The exceptions it throws now match those that are thrown by the Windows implementation. -## Previous Behavior +## Previous behavior On Unix, with .NET 5, the method: diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml index 62f491ec757d8..22fae38cca862 100644 --- a/docs/core/compatibility/toc.yml +++ b/docs/core/compatibility/toc.yml @@ -127,6 +127,12 @@ items: href: aspnet-core/6.0/signalr-java-client-updated.md - name: TryParse and BindAsync methods are validated href: aspnet-core/6.0/tryparse-bindasync-validation.md + - name: Containers + items: + - name: Default console logger formatting in container images + href: containers/6.0/console-formatter-default.md + - name: Other breaking changes + href: https://github.com/dotnet/dotnet-docker/discussions/3699 - name: Core .NET libraries items: - name: API obsoletions with non-default diagnostic IDs @@ -705,6 +711,14 @@ items: href: code-analysis/5.0/ca2200-rethrow-to-preserve-stack-details.md - name: CA2247 warning href: code-analysis/5.0/ca2247-ctor-arg-should-be-taskcreationoptions.md + - name: Containers + items: + - name: .NET 6 + items: + - name: Default console logger formatting in container images + href: containers/6.0/console-formatter-default.md + - name: Other breaking changes + href: https://github.com/dotnet/dotnet-docker/discussions/3699 - name: Core .NET libraries items: - name: .NET 7 From 2662901f3bec752152299d3e7a1e3e557b27a826 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Tue, 3 May 2022 10:29:08 -0700 Subject: [PATCH 107/429] Acrolinx 5/2 (#29250) --- .../debug-threadpool-starvation.md | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/core/diagnostics/debug-threadpool-starvation.md b/docs/core/diagnostics/debug-threadpool-starvation.md index 93aafa53a13bb..eef11e760eede 100644 --- a/docs/core/diagnostics/debug-threadpool-starvation.md +++ b/docs/core/diagnostics/debug-threadpool-starvation.md @@ -9,7 +9,7 @@ ms.date: 04/19/2022 **This article applies to: ✔️** .NET Core 3.1 and later versions -In this tutorial, you'll learn how to debug a ThreadPool starvation scenario. ThreadPool starvation occurs when the pool has no available threads to process new work items and it often causes applications to respond very slowly. Using the provided example [ASP.NET Core web app](/samples/dotnet/samples/diagnostic-scenarios), you can cause ThreadPool starvation intentionally and learn how to diagnose it. +In this tutorial, you'll learn how to debug a ThreadPool starvation scenario. ThreadPool starvation occurs when the pool has no available threads to process new work items and it often causes applications to respond slowly. Using the provided example [ASP.NET Core web app](/samples/dotnet/samples/diagnostic-scenarios), you can cause ThreadPool starvation intentionally and learn how to diagnose it. In this tutorial, you will: @@ -24,8 +24,8 @@ In this tutorial, you will: The tutorial uses: - [.NET Core 6.0 SDK](https://dotnet.microsoft.com/download/dotnet) to build and run the sample app -- [Sample web app](/samples/dotnet/samples/diagnostic-scenarios) which will demonstrate ThreadPool starvation behavior -- [Bombadier](https://github.com/codesenberg/bombardier/releases) generates load for the sample web app +- [Sample web app](/samples/dotnet/samples/diagnostic-scenarios) to demonstrate ThreadPool starvation behavior +- [Bombardier](https://github.com/codesenberg/bombardier/releases) to generate load for the sample web app - [dotnet-counters](dotnet-counters.md) to observe performance counters - [dotnet-stack](dotnet-stack.md) to examine thread stacks @@ -65,11 +65,11 @@ The tutorial uses: Content root path: E:\demo\DiagnosticScenarios ``` -If you use a web browser and send requests to `https://localhost:5001/api/diagscenario/taskwait` you should see the response "success:taskwait" returned after about 500ms. This shows the web server is serving traffic as expected. +If you use a web browser and send requests to `https://localhost:5001/api/diagscenario/taskwait`, you should see the response `success:taskwait` returned after about 500 ms. This shows that the web server is serving traffic as expected. ## Observing slow performance -The demo web server has several endpoints which mock doing a database request and then returning a response to the user. Each of these endpoints has a delay of approximately 500ms when serving requests one at a time but the performance is much worse when the web server is subjected to some load. Download the [Bombadier](https://github.com/codesenberg/bombardier/releases) load testing tool and observe the difference in latency when 125 concurrent requests are sent to each endpoint. +The demo web server has several endpoints which mock doing a database request and then returning a response to the user. Each of these endpoints has a delay of approximately 500 ms when serving requests one at a time but the performance is much worse when the web server is subjected to some load. Download the [Bombardier](https://github.com/codesenberg/bombardier/releases) load testing tool and observe the difference in latency when 125 concurrent requests are sent to each endpoint. ```dotnetcli bombardier-windows-amd64.exe https://localhost:5001/api/diagscenario/taskwait @@ -101,11 +101,11 @@ Statistics Avg Stdev Max Throughput: 36.57KB/s ``` -Both of these endpoints show dramatically more than the 500ms average latency when load is high (3.48s and 15.42s respectively). If you run this example on an older version of .NET Core you are likely to see both examples perform equally badly. .NET 6 has updated ThreadPool heuristics that reduce the performance impact of the bad coding pattern used in the first example. +Both of these endpoints show dramatically more than the 500-ms average latency when load is high (3.48 s and 15.42 s respectively). If you run this example on an older version of .NET Core, you're likely to see both examples perform equally badly. .NET 6 has updated ThreadPool heuristics that reduce the performance impact of the bad coding pattern used in the first example. ## Detecting ThreadPool starvation -If you observed the behavior above on a real world service you would know it is responding slowly under load but you wouldn't know the cause. [dotnet-counters](dotnet-counters.md) is a tool that can show live performance counters. These counters can provide clues about certain problems and are often easy to get. In production environments you might have similar counters provided by remote monitoring tools and web dashboards. Install dotnet-counters and begin monitoring the web service: +If you observed the behavior above on a real world service, you would know it's responding slowly under load but you wouldn't know the cause. [dotnet-counters](dotnet-counters.md) is a tool that can show live performance counters. These counters can provide clues about certain problems and are often easy to get. In production environments, you might have similar counters provided by remote monitoring tools and web dashboards. Install dotnet-counters and begin monitoring the web service: ```dotnetcli dotnet-counters monitor -n DiagnosticScenarios @@ -140,13 +140,13 @@ Press p to pause, r to resume, q to quit. Working Set (MB) 87 ``` -The counters above are an example while the web server was not serving any requests. Run Bombadier again with the `api/diagscenario/tasksleepwait` endpoint and sustained load for 2 minutes so there is plenty of time to observe what happens to the performance counters. +The counters above are an example while the web server wasn't serving any requests. Run Bombardier again with the `api/diagscenario/tasksleepwait` endpoint and sustained load for 2 minutes so there's plenty of time to observe what happens to the performance counters. ```dotnetcli bombardier-windows-amd64.exe https://localhost:5001/api/diagscenario/tasksleepwait -d 120s ``` -ThreadPool starvation occurs when there are no free threads to handle the queued workitems and the runtime responds by increasing the number of ThreadPool threads. You should observe the `ThreadPool Thread Count` rapidly increase to 2-3x the number of processor cores on your machine and then further threads are added 1-2 per second until eventually stabilizing somewhere above 125. The slow and steady increase of ThreadPool threads combined with CPU Usage much less than 100% are the key signals that ThreadPool starvation is currently a performance bottleneck. The thread count increase will continue until either the pool hits the maximum number of threads, enough threads have been created to satisfy all the incoming workitems, or the CPU has been saturated. Often, but not always, ThreadPool starvation will also show large values for `ThreadPool Queue Length` and low values for `ThreadPool Completed Work Item Count` showing that there is a large amount of pending work and very little work being completed. Here is an example of the counters while the thread count is still rising: +ThreadPool starvation occurs when there are no free threads to handle the queued work items and the runtime responds by increasing the number of ThreadPool threads. You should observe the `ThreadPool Thread Count` rapidly increase to 2-3x the number of processor cores on your machine and then further threads are added 1-2 per second until eventually stabilizing somewhere above 125. The slow and steady increase of ThreadPool threads combined with CPU Usage much less than 100% are the key signals that ThreadPool starvation is currently a performance bottleneck. The thread count increase will continue until either the pool hits the maximum number of threads, enough threads have been created to satisfy all the incoming work items, or the CPU has been saturated. Often, but not always, ThreadPool starvation will also show large values for `ThreadPool Queue Length` and low values for `ThreadPool Completed Work Item Count`, meaning that there's a large amount of pending work and little work being completed. Here's an example of the counters while the thread count is still rising: ```dotnetcli Press p to pause, r to resume, q to quit. @@ -180,21 +180,21 @@ Press p to pause, r to resume, q to quit. Working Set (MB) 152 ``` -Once the count of ThreadPool threads stabilizes the pool is no longer starving, but if it stabilizes at a high value (more than ~3x the number of processor cores) that usually indicates the application code is blocking some ThreadPool threads and the ThreadPool is compensating by running with more threads. Running steady at high thread counts won't necessarily have large impacts on request latency, but if load varies dramatically over time or the app will be periodically restarted then each time the ThreadPool is likely to enter a period of starvation where it is slowly increasing threads and delivering poor request latency. Each thread also consumes memory which provides another benefit to reducing the total number of threads needed. +Once the count of ThreadPool threads stabilizes, the pool is no longer starving. But if it stabilizes at a high value (more than about three times the number of processor cores), that usually indicates the application code is blocking some ThreadPool threads and the ThreadPool is compensating by running with more threads. Running steady at high thread counts won't necessarily have large impacts on request latency, but if load varies dramatically over time or the app will be periodically restarted, then each time the ThreadPool is likely to enter a period of starvation where it's slowly increasing threads and delivering poor request latency. Each thread also consumes memory, so reducing the total number of threads needed provides another benefit. -Starting in .NET 6, ThreadPool heuristics were modified to scale up the number of ThreadPool threads much faster in response to certain blocking Task APIs. ThreadPool starvation can still occur with these APIs, but the duration is much briefer than it was with older .NET versions because the runtime responds more quickly. Run Bombadier again with the `api/diagscenario/taskwait` endpoint: +Starting in .NET 6, ThreadPool heuristics were modified to scale up the number of ThreadPool threads much faster in response to certain blocking Task APIs. ThreadPool starvation can still occur with these APIs, but the duration is much briefer than it was with older .NET versions because the runtime responds more quickly. Run Bombardier again with the `api/diagscenario/taskwait` endpoint: ```dotnetcli bombardier-windows-amd64.exe https://localhost:5001/api/diagscenario/taskwait -d 120s ``` -On .NET 6 you should observe the pool increase the thread count more quickly than before and then stabilize at a high number of threads. ThreadPool starvation is occuring while the thread count is climbing. +On .NET 6 you should observe the pool increase the thread count more quickly than before and then stabilize at a high number of threads. ThreadPool starvation is occurring while the thread count is climbing. ## Resolving ThreadPool starvation -To eliminate ThreadPool starvation, ThreadPool threads need to remain unblocked so that they are available to handle incoming workitems. There are two ways to determine what each thread was doing, either using the [dotnet-stack](dotnet-stack.md) tool or capturing a dump with [dotnet-dump](dotnet-dump.md) that can be viewed in [Visual Studio](/visualstudio/debugger/using-dump-files). dotnet-stack can be faster because it shows the thread stacks immediately on the console, but Visual Studio dump debugging offers better visualizations that map frames to source, Just My Code can filter out runtime implementation frames, and the Parallel Stacks feature can help group large numbers of threads with similar stacks. This tutorial shows the dotnet-stack option. See the [diagnosing ThreadPool starvation tutorial video](/shows/on-net/diagnosing-thread-pool-exhaustion-issues-in-net-core-apps) for an example of investigating the thread stacks using Visual Studio. +To eliminate ThreadPool starvation, ThreadPool threads need to remain unblocked so that they're available to handle incoming work items. There are two ways to determine what each thread was doing, either using the [dotnet-stack](dotnet-stack.md) tool or capturing a dump with [dotnet-dump](dotnet-dump.md) that can be viewed in [Visual Studio](/visualstudio/debugger/using-dump-files). dotnet-stack can be faster because it shows the thread stacks immediately on the console, but Visual Studio dump debugging offers better visualizations that map frames to source, Just My Code can filter out runtime implementation frames, and the Parallel Stacks feature can help group large numbers of threads with similar stacks. This tutorial shows the dotnet-stack option. See the [diagnosing ThreadPool starvation tutorial video](/shows/on-net/diagnosing-thread-pool-exhaustion-issues-in-net-core-apps) for an example of investigating the thread stacks using Visual Studio. -Run Bombadier again to put the web server under load: +Run Bombardier again to put the web server under load: ```dotnetcli bombardier-windows-amd64.exe https://localhost:5001/api/diagscenario/taskwait -d 120s @@ -275,7 +275,7 @@ Thread (0x25968): DiagnosticScenarios!testwebapi.Controllers.DiagScenarioController.TaskWait() ``` -Now you can navigate to the code for this controller in the sample app Controllers/DiagnosticScenarios.cs file to see that it is calling an async API without using await. This is the [sync-over-async](https://devblogs.microsoft.com/pfxteam/should-i-expose-synchronous-wrappers-for-asynchronous-methods/) code pattern which is known to block threads and is the most common cause of ThreadPool starvation. +Now you can navigate to the code for this controller in the sample app's *Controllers/DiagnosticScenarios.cs* file to see that it's calling an async API without using `await`. This is the [sync-over-async](https://devblogs.microsoft.com/pfxteam/should-i-expose-synchronous-wrappers-for-asynchronous-methods/) code pattern, which is known to block threads and is the most common cause of ThreadPool starvation. ```csharp public ActionResult TaskWait() From 0fe886ac73a1bfe2db911fc7193f14bc2ced55d1 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 3 May 2022 12:31:23 -0700 Subject: [PATCH 108/429] Update package index with latest published versions (#29262) --- docs/azure/includes/dotnet-all.md | 8 ++++---- docs/azure/includes/dotnet-new.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 195f1ea6a3b71..2fb7383c6ba3d 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -74,7 +74,7 @@ | WebJobs Extensions - Event Hubs | NuGet [5.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.1.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | | WebJobs Extensions - Service Bus | NuGet [5.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.3.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | | WebJobs Extensions - SignalR Service | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.8.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) | -| WebJobs Extensions - Storage | NuGet [5.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.0](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | +| WebJobs Extensions - Storage | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.1](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | | WebJobs Extensions - Web PubSub | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.2.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | | Grafana | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Grafana/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Grafana-readme-pre) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Grafana_1.0.0-beta.1/sdk/grafana/Azure.ResourceManager.Grafana/) | | Resource Management - App Configuration | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.AppConfiguration/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.AppConfiguration-readme-pre) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppConfiguration_1.0.0-beta.4/sdk/appconfiguration/Azure.ResourceManager.AppConfiguration/) | @@ -427,8 +427,8 @@ | WebJobs Extensions - OpenAPI Core | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.OpenApi.Core/1.3.0) | | | | WebJobs Extensions - RabbitMQ | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.RabbitMQ/1.1.0)
NuGet [2.0.0-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.RabbitMQ/2.0.0-preview) | | GitHub [1.1.0](https://github.com/Azure/azure-functions-rabbitmq-extension/tree/v0.2.2029-beta) | | WebJobs Extensions - SendGrid | NuGet [3.0.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SendGrid/3.0.2) | | GitHub [3.0.2](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.0/src/WebJobs.Extensions.SendGrid) | -| WebJobs Extensions - Storage Blobs | NuGet [5.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | | -| WebJobs Extensions - Storage Queues | NuGet [5.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/5.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Queues-readme) | | +| WebJobs Extensions - Storage Blobs | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | | +| WebJobs Extensions - Storage Queues | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/5.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Queues-readme) | | | WebJobs Extensions - Twilio | NuGet [3.0.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Twilio/3.0.2) | | GitHub [3.0.2](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.0/src/WebJobs.Extensions.Twilio) | | WebJobs Extensions - WebHooks | NuGet [1.0.0-beta4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebHooks/1.0.0-beta4) | | GitHub [1.0.0-beta4](https://github.com/Azure/azure-webjobs-sdk-extensions) | | WebSites - DataProtection | NuGet [0.1.78-alpha](https://www.nuget.org/packages/Microsoft.Azure.WebSites.DataProtection/0.1.78-alpha) | | | @@ -462,7 +462,7 @@ | WebJobs Extensions - Event Hubs | NuGet [5.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.1.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | | WebJobs Extensions - Service Bus | NuGet [5.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.3.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | | WebJobs Extensions - SignalR Service | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.8.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) | -| WebJobs Extensions - Storage | NuGet [5.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.0](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | +| WebJobs Extensions - Storage | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.1](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | | WebJobs Extensions - Web PubSub | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.2.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | | AzureStack Management | NuGet [0.10.8-preview](https://www.nuget.org/packages/Microsoft.AzureStack.Management/0.10.8-preview) | | | | AzureStack Management - Azure Bridge Admin | NuGet [0.1.0-preview](https://www.nuget.org/packages/Microsoft.AzureStack.Management.AzureBridge.Admin/0.1.0-preview) | | GitHub [0.1.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/azurestack/Microsoft.AzureStack.Management.AzureBridge.Admin) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index 12fcfeb0f5931..a84065eb8077f 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -74,7 +74,7 @@ | WebJobs Extensions - Event Hubs | NuGet [5.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.1.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | | WebJobs Extensions - Service Bus | NuGet [5.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.3.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | | WebJobs Extensions - SignalR Service | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.8.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) | -| WebJobs Extensions - Storage | NuGet [5.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.0](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | +| WebJobs Extensions - Storage | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.1](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | | WebJobs Extensions - Web PubSub | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.2.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | | Grafana | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Grafana/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Grafana-readme-pre) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Grafana_1.0.0-beta.1/sdk/grafana/Azure.ResourceManager.Grafana/) | | Resource Management - App Configuration | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.AppConfiguration/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.AppConfiguration-readme-pre) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.AppConfiguration_1.0.0-beta.4/sdk/appconfiguration/Azure.ResourceManager.AppConfiguration/) | From 7f0c2328e2ff5516c0b8fe5365e39e672642fc53 Mon Sep 17 00:00:00 2001 From: mikelle-rogers <45022607+mikelle-rogers@users.noreply.github.com> Date: Tue, 3 May 2022 17:44:54 -0600 Subject: [PATCH 109/429] Finish up High CPU Tutorial (#29217) --- docs/core/diagnostics/debug-highcpu.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/core/diagnostics/debug-highcpu.md b/docs/core/diagnostics/debug-highcpu.md index dbc5a3abcce06..9d059b738dab0 100644 --- a/docs/core/diagnostics/debug-highcpu.md +++ b/docs/core/diagnostics/debug-highcpu.md @@ -182,6 +182,10 @@ Open the `nettrace` with [`PerfView`](https://github.com/microsoft/perfview/blob --- +## Analyzing High CPU Data with Visual Studio + +All \*.nettrace files can be analyzed in Visual Studio. To analyze a Linux \*.nettrace file in Visual Studio, transfer the \*.nettrace file, in addition to the other necessary documents, to a Windows machine, and then open the \*.nettrace file in Visual Studio. For more information, see [Analyze CPU Usage Data](/visualstudio/profiling/beginners-guide-to-performance-profiling?#step-2-analyze-cpu-usage-data). + ## See also - [dotnet-trace](dotnet-trace.md) to list processes From 63c1ecbfbd256d60be8d963bc1832db5c29eaec1 Mon Sep 17 00:00:00 2001 From: Rich Lander Date: Wed, 4 May 2022 05:51:26 -0700 Subject: [PATCH 110/429] Simplify document (#29274) --- docs/core/get-started.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/core/get-started.md b/docs/core/get-started.md index 7c4191baf8e5e..222704dd8ac48 100644 --- a/docs/core/get-started.md +++ b/docs/core/get-started.md @@ -9,22 +9,23 @@ ms.topic: tutorial --- # Get started with .NET -This article teaches you how to create and run a "Hello World!" .NET app. - -If you're unsure what .NET is, start with the [.NET introduction](introduction.md). +This article teaches you how to create and run a "Hello World!" app with [.NET](introduction.md). ## Create an application First, download and install the [.NET SDK](https://dotnet.microsoft.com/download/dotnet) on your computer. -Next, open a terminal such as **PowerShell**, **Command Prompt**, or **bash**. Enter the following `dotnet` commands to create and run a C# application: +Next, open a terminal such as **PowerShell**, **Command Prompt**, or **bash**. + +Type the following commands: ```dotnetcli -dotnet new console --output sample1 -dotnet run --project sample1 +dotnet new console -o sample1 +cd sample1 +dotnet run ``` -You see the following output: +You should see the following output: ```output Hello World! From fdf477ca6b5f5e78da6612a414723b0bfd12ab6f Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Wed, 4 May 2022 09:42:07 -0400 Subject: [PATCH 111/429] Remove redundant sentence (#29277) Fixes #29094 --- docs/fsharp/language-reference/members/indexed-properties.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fsharp/language-reference/members/indexed-properties.md b/docs/fsharp/language-reference/members/indexed-properties.md index e8032c4bc2b16..9945931eb4142 100644 --- a/docs/fsharp/language-reference/members/indexed-properties.md +++ b/docs/fsharp/language-reference/members/indexed-properties.md @@ -45,7 +45,7 @@ member self-identifier.Item The forms of the previous syntax show how to define indexed properties that have both a `get` and a `set` method, have a `get` method only, or have a `set` method only. You can also combine both the syntax shown for get only and the syntax shown for set only, and produce a property that has both get and set. This latter form allows you to put different accessibility modifiers and attributes on the get and set methods. -By using the name `Item`, the compiler treats the property as a default indexed property. A *default indexed property* is a property that you can access by using array-like syntax on the object instance. For example, if `o` is an object of the type that defines this property, the syntax `o[index]` is used to access the property. The syntax `o[index]` (with an extra `.`) may also be used and is required for language versions prior to F# 6. +By using the name `Item`, the compiler treats the property as a default indexed property. A *default indexed property* is a property that you can access by using array-like syntax on the object instance. For example, if `o` is an object of the type that defines this property, the syntax `o[index]` is used to access the property. The syntax for accessing a non-default indexed property is to provide the name of the property and the index in parentheses, just like a regular member. For example, if the property on `o` is called `Ordinal`, you write `o.Ordinal(index)` to access it. From e82f2a816e77f7e263830a9b1c4fe0b36f14b4b4 Mon Sep 17 00:00:00 2001 From: Noah Falk Date: Wed, 4 May 2022 06:58:12 -0700 Subject: [PATCH 112/429] Clean up logging guidance (#29257) * Clean up logging guidance - Make the suggestion to use ILogger more prominent - Re-focus the logging landing page on understanding the differences between logging APIs, remove extraneous comments/links that I expect are less relevant to people who browse to this page, and make the text sound less like an outline. * Apply suggestions from code review Co-authored-by: David Pine * Apply suggestions from code review Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> * Update docs/core/diagnostics/logging-tracing.md Co-authored-by: David Pine Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/diagnostics/index.md | 26 ++++-- docs/core/diagnostics/logging-tracing.md | 113 ++++++----------------- docs/fundamentals/toc.yml | 24 ++--- 3 files changed, 57 insertions(+), 106 deletions(-) diff --git a/docs/core/diagnostics/index.md b/docs/core/diagnostics/index.md index 25fbd5f22a249..363c5c0efa234 100644 --- a/docs/core/diagnostics/index.md +++ b/docs/core/diagnostics/index.md @@ -11,23 +11,29 @@ Software doesn't always behave as you would expect, but .NET Core has tools and This article helps you find the various tools you need. -## Managed debuggers +## Debuggers -[Managed debuggers](managed-debuggers.md) allow you to interact with your program. Pausing, incrementally executing, examining, and resuming gives you insight into the behavior of your code. A debugger is the first choice for diagnosing functional problems that can be easily reproduced. +[Debuggers](managed-debuggers.md) allow you to interact with your program. Pausing, incrementally executing, examining, and resuming gives you insight into the behavior of your code. A debugger is a good choice for diagnosing functional problems that can be easily reproduced. -## Logging and tracing +## Unit testing -[Logging and tracing](logging-tracing.md) are related techniques. They refer to instrumenting code to create log files. The files record the details of what a program does. These details can be used to diagnose the most complex problems. When combined with time stamps, these techniques are also valuable in performance investigations. +[Unit testing](../testing/index.md) is a key component of continuous integration and deployment of high-quality software. Unit tests are designed to give you an early warning when you break something. -## Metrics +## Instrumentation for observability -[Metrics](metrics.md) are numerical measurements recorded over time to monitor application performance and health. Metrics are often used to -generate alerts when potential problems are detected. In normal use, metrics have very low performance overhead and are configured as -'always-on' telemetry. The .NET runtime and libraries publish many built-in metrics, and you can create new ones using metric APIs. +.NET supports industry standard instrumentation techniques using metrics, logs, and distributed traces. Instrumentation is code that is added to a software project to record what it is doing. This information can then be collected in files, databases, or in-memory and analyzed to understand how a software program is operating. This is often used in production environments to monitor for problems and diagnose them. The .NET runtime has built-in instrumentation that can be optionally enabled and APIs that allow you to add custom instrumentation specialized for your application. -## Unit testing +### Metrics -[Unit testing](../testing/index.md) is a key component of continuous integration and deployment of high-quality software. Unit tests are designed to give you an early warning when you break something. +[Metrics](metrics.md) are numerical measurements recorded over time to monitor application performance and health. Metrics are often used to generate alerts when potential problems are detected. Metrics have very low performance overhead and many services configure them as always-on telemetry. + +### Logs + +[Logging](logging-tracing.md) is a technique where code is instrumented to produce a log, a record of interesting events that occured while the program was running. Often a baseline set of log events are configured on by default and more extensive logging can be enabled on-demand to diagnose particular problems. Performance overhead is variable depending on how much data is being logged. + +### Distributed traces + +[Distributed Tracing](./distributed-tracing.md) is a specialized form of logging that helps you localize failures and performance issues within applications distributed across multiple machines or processes. This technique tracks requests through an application correlating together work done by different application components and separating it from other work the application may be doing for concurrent requests. It is possible to trace every request and sampling can be optionally employed to bound the performance overhead. ## Dumps diff --git a/docs/core/diagnostics/logging-tracing.md b/docs/core/diagnostics/logging-tracing.md index b08b337fdf528..ba30bd8f39a9e 100644 --- a/docs/core/diagnostics/logging-tracing.md +++ b/docs/core/diagnostics/logging-tracing.md @@ -1,110 +1,55 @@ --- -title: Logging and tracing - .NET Core -description: An introduction to .NET Core logging and tracing. -ms.date: 10/12/2020 +title: Logging and tracing - .NET +description: An introduction to .NET logging and tracing. +ms.date: 4/29/2022 --- -# .NET Core logging and tracing +# .NET logging and tracing -Logging and tracing are really two names for the same technique. The simple technique has been used since the early days of computers. It simply involves instrumenting an application to write output to be consumed later. +Code can be instrumented to produce a log, which serves as a record of interesting events that occurred while the program was running. To understand the application's behavior, logs are reviewed. Logging and tracing both encapsulate this technique. .NET has accumulated several different logging APIs over its history and this article will help you understand what options are available. -## Reasons to use logging and tracing +## Key distinctions in logging APIs -This simple technique is surprisingly powerful. It can be used in situations where a debugger fails: +### Structured logging -- Issues occurring over long periods of time, can be difficult to debug with a traditional debugger. Logs allow for detailed post-mortem review spanning long periods of time. In contrast, debuggers are constrained to real-time analysis. -- Multi-threaded applications and distributed applications are often difficult to debug. Attaching a debugger tends to modify behaviors. Detailed logs can be analyzed as needed to understand complex systems. -- Issues in distributed applications may arise from a complex interaction between many components and it may not be reasonable to connect a debugger to every part of the system. -- Many services shouldn't be stalled. Attaching a debugger often causes timeout failures. -- Issues aren't always foreseen. Logging and tracing are designed for low overhead so that programs can always be recording in case an issue occurs. +Logging APIs can either be structured or unstructured: -## .NET Core APIs +- Unstructured: Log entries have free-form text content that is intended to be viewed by humans. +- Structured: Log entries have a well defined schema and can be encoded in different binary and textual formats. These logs are designed to be machine translatable and queryable so that both humans and automated systems can work with them easily. -### Print-style APIs +APIs that support structured logging are preferable for non-trivial usage. They offer more functionality, flexibility, and performance with little difference in usability. -The , , and classes each provide similar print-style APIs that are convenient for logging. +### Configuration -The choice of which print-style API to use is up to you. The key differences are: +For simple use cases, you might want to use APIs that directly write messages to the console or a file. But most software projects will find it useful to configure which log events get recorded and how they are persisted. For example, when running in a local dev environment, you might want to output plain text to the console for easy readability. Then when the application is deployed to a production environment, you might switch to have the logs stored in a dedicated database or a set of rolling files. APIs with good configuration options will make these transitions easy, whereas less configurable options would require updating the instrumentation code everywhere to make changes. -- - - Always enabled and always writes to the console. - - Useful for information that your customer may need to see in the release. - - Because it's the simplest approach, it's often used for ad-hoc temporary debugging. This debug code is often never checked in to source control. -- - - Only enabled when `TRACE` is defined by adding `#define TRACE` to your source or specifying the option `/d:TRACE` when compiling. - - Writes to attached , by default the . - - Use this API when creating logs that will be enabled in most builds. -- - - Only enabled when `DEBUG` is defined by adding `#define DEBUG` to your source or specifying the option `/d:DEBUG` when compiling. - - Writes to an attached debugger. - - On `*nix` writes to stderr if `DOTNET_DebugWriteToStdErr` or `COMPlus_DebugWriteToStdErr` is set. - - Use this API when creating logs that will be enabled only in debug builds. +### Sinks -### Logging events +Most logging APIs allow log messages to be sent to different destinations called sinks. Some APIs have a large number of pre-made sinks, whereas others only have a few. If no pre-made sink exists, there's usually an extensibility API that will let you author a custom sink, although this requires writing a bit more code. -The following APIs are more event oriented. Rather than logging simple strings they log event objects. +## .NET logging APIs -- [System.Diagnostics.Tracing.EventSource](./eventsource.md) - - EventSource is the primary root .NET Core tracing API. - - Available in all .NET Standard versions. - - Only allows tracing serializable objects. - - Can be consumed in-process via any [EventListener](xref:System.Diagnostics.Tracing.EventListener) instances configured to consume the EventSource. - - Can be consumed out-of-process via: - - [.NET Core's EventPipe](./eventpipe.md) on all platforms - - [Event Tracing for Windows (ETW)](/windows/win32/etw/event-tracing-portal) +### ILogger -- - - Included in .NET Core and as a [NuGet package](https://www.nuget.org/packages/System.Diagnostics.DiagnosticSource) for .NET Framework. - - Allows in-process tracing of non-serializable objects. - - Includes a bridge to allow selected fields of logged objects to be written to an . +For most cases, whether adding logging to an existing project or creating a new project, the [ILogger](../extensions/logging.md) interface is a good default choice. `ILogger` supports fast structured logging, flexible configuration, and a collection of [common sinks](../extensions/logging-providers.md#built-in-logging-providers). Additionally, the `ILogger` interface can also serve as a facade over many [third party logging implementations](../extensions/logging-providers.md#third-party-logging-providers) that offer more functionality and extensibility. -- - - Windows only. - - Writes messages to the Windows Event Log. - - System administrators expect fatal application error messages to appear in the Windows Event Log. +### EventSource -## Distributed Tracing +[EventSource](./eventsource.md) is an older high performance structured logging API. It was originally designed to integrate well with [Event Tracing for Windows (ETW)](/windows/win32/etw/event-tracing-portal), but was later extended to support [EventPipe](./eventpipe.md) cross-platform tracing and for custom sinks. In comparison to `ILogger`, `EventSource` has relatively few pre-made logging sinks and there is no built-in support to configure via separate configuration files. `EventSource` is excellent if you want tighter control over [ETW](/windows/win32/etw/event-tracing-portal) or [EventPipe](./eventpipe.md) integration, but for general purpose logging, `ILogger` is more flexible and easier to use. -[Distributed Tracing](./distributed-tracing.md) is a diagnostic technique that helps engineers -localize failures and performance issues within applications, especially those that may be -distributed across multiple machines or processes. This technique tracks requests through an -application correlating together work done by different application components and separating -it from other work the application may be doing for concurrent requests. +### Trace -## ILogger and logging frameworks + and are .NET's oldest logging APIs. These classes have flexible configuration APIs and a large ecosystem of sinks, but only support unstructured logging. On .NET Framework they can be configured via an app.config file, but in .NET Core, there's no built-in, file-based configuration mechanism. The .NET team continues to support these APIs for backward-compatibility purposes, but no new functionality will be added. These APIs are a fine choice for applications that are already using them. For newer apps that haven't already committed to a logging API, `ILogger` may offer better functionality. -The low-level APIs may not be the right choice for your logging needs. You may want to consider a logging framework. +## Specialized logging APIs -The interface has been used to create a common logging interface where the loggers can be inserted through dependency injection. +### Console -For instance, to allow you to make the best choice for your application .NET offers support for a selection of built-in and third-party frameworks: +The class has the and methods that can be used in simple logging scenarios. These APIs are very easy to get started with but the solution won't be as flexible as a general purpose logging API. Console only allows unstructured logging and there is no configuration support to select which log messages are enabled or to retarget to a different sink. Using the ILogger or Trace APIs with a console sink doesn't take much additional effort and keeps the logging configurable. -- [.NET Built-in logging providers](../extensions/logging-providers.md#built-in-logging-providers) -- [.NET Third-party logging providers](../extensions/logging-providers.md#third-party-logging-providers) +### DiagnosticSource -## Logging-related references + is intended for logging where the log messages will be analyzed synchronously in-process rather than serialized to any storage. This allows the source and listener to exchange arbitrary .NET objects as messages, whereas most logging APIs require the log event to be serializable. This technique can also be extremely fast, handling log events in tens of nanoseconds if the listener is implemented efficiently. Tools that use these APIs often act more like in-process profilers, though the API doesn't impose any constraint here. -- [How to: Compile Conditionally with Trace and Debug](../../framework/debug-trace-profile/how-to-compile-conditionally-with-trace-and-debug.md) +### EventLog -- [How to: Add Trace Statements to Application Code](../../framework/debug-trace-profile/how-to-add-trace-statements-to-application-code.md) - -- [Logging in .NET](../extensions/logging.md) provides an overview of the logging techniques it supports. - -- [C# string interpolation](../../csharp/language-reference/tokens/interpolated.md) can simplify writing logging code. - -- [Runtime Provider Event List](../../fundamentals/diagnostics/runtime-events.md) - -- [Well-known Event Providers in .NET](well-known-event-providers.md) - -- The property is useful for logging exceptions. - -- The class can be useful to provide stack info in your logs. - -## Performance considerations - -String formatting can take noticeable CPU processing time. - -In performance-critical applications, it's recommended that you: - -- Avoid lots of logging when no one is listening. Avoid constructing costly logging messages by checking if logging is enabled first. -- Only log what's useful. -- Defer fancy formatting to the analysis stage. + is a Windows only API that writes messages to the Windows EventLog. In many cases using ILogger with an optional EventLog sink when running on Windows may give similar functionality without coupling the app tightly to the Windows OS. diff --git a/docs/fundamentals/toc.yml b/docs/fundamentals/toc.yml index 788b5d4ef2511..076d0e36a089f 100644 --- a/docs/fundamentals/toc.yml +++ b/docs/fundamentals/toc.yml @@ -632,8 +632,6 @@ items: href: ../core/diagnostics/debug-linux-dumps.md - name: SOS debugger extension href: ../core/diagnostics/sos-debugging-extension.md - - name: EventPipe - href: ../core/diagnostics/eventpipe.md - name: Logging and tracing items: - name: Overview @@ -641,16 +639,6 @@ items: href: ../core/diagnostics/logging-tracing.md - name: Well-known event providers href: ../core/diagnostics/well-known-event-providers.md - - name: Distributed tracing - items: - - name: Overview - href: ../core/diagnostics/distributed-tracing.md - - name: Concepts - href: ../core/diagnostics/distributed-tracing-concepts.md - - name: Instrumentation - href: ../core/diagnostics/distributed-tracing-instrumentation-walkthroughs.md - - name: Collection - href: ../core/diagnostics/distributed-tracing-collection-walkthroughs.md - name: Event Source items: - name: Overview @@ -663,6 +651,8 @@ items: href: ../core/diagnostics/eventsource-collect-and-view-traces.md - name: Activity IDs href: ../core/diagnostics/eventsource-activity-ids.md + - name: EventPipe + href: ../core/diagnostics/eventpipe.md - name: Metrics items: - name: Overview @@ -683,6 +673,16 @@ items: href: ../core/diagnostics/event-counter-perf.md - name: Compare metric APIs href: ../core/diagnostics/compare-metric-apis.md + - name: Distributed tracing + items: + - name: Overview + href: ../core/diagnostics/distributed-tracing.md + - name: Concepts + href: ../core/diagnostics/distributed-tracing-concepts.md + - name: Instrumentation + href: ../core/diagnostics/distributed-tracing-instrumentation-walkthroughs.md + - name: Collection + href: ../core/diagnostics/distributed-tracing-collection-walkthroughs.md - name: Symbols href: ../core/diagnostics/symbols.md - name: Microsoft.Diagnostics.NETCore.Client library From 59a17228c8f48340b3e491da98b88cae4350b2f4 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Wed, 4 May 2022 10:19:43 -0700 Subject: [PATCH 113/429] Fix typo (#29253) --- .../network-programming/using-an-asynchronous-server-socket.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/network-programming/using-an-asynchronous-server-socket.md b/docs/framework/network-programming/using-an-asynchronous-server-socket.md index 8faacafe1b2d7..7551fa6b04624 100644 --- a/docs/framework/network-programming/using-an-asynchronous-server-socket.md +++ b/docs/framework/network-programming/using-an-asynchronous-server-socket.md @@ -238,7 +238,7 @@ End Sub 'ReadCallback public static void ReadCallback(IAsyncResult ar) { StateObject state = (StateObject) ar.AsyncState; - Socket handler = state.WorkSocket; + Socket handler = state.workSocket; // Read data from the client socket. int read = handler.EndReceive(ar); From 68d0789c4f4c0cad6fe68debcc1bf45c804bb712 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 4 May 2022 12:27:24 -0700 Subject: [PATCH 114/429] Update package index with latest published versions (#29280) --- docs/azure/includes/dotnet-all.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 2fb7383c6ba3d..7e94ad1c2a39f 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -550,7 +550,7 @@ | Management - Guest Configuration | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.GuestConfiguration/2.0.0) | | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.GuestConfiguration_2.0.0/sdk/guestconfiguration/Microsoft.Azure.Management.GuestConfiguration/) | | Management - HD Insight | NuGet [8.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.HDInsight/8.0.0) | [docs](/dotnet/api/overview/azure/hdinsight) | GitHub [8.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.HDInsight_8.0.0/sdk/hdinsight/Microsoft.Azure.Management.HDInsight/) | | Management - HD Insight Job | NuGet [2.0.7](https://www.nuget.org/packages/Microsoft.Azure.Management.HDInsight.Job/2.0.7) | [docs](/dotnet/api/overview/azure/hdinsight) | | -| Management - Health Care APIs | NuGet [3.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.HealthcareApis/3.0.0) | | GitHub [3.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.HealthcareApis_3.0.0/sdk/healthcareapis/Microsoft.Azure.Management.HealthcareApis/) | +| Management - Health Care APIs | NuGet [4.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.HealthcareApis/4.0.0) | | GitHub [4.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.HealthcareApis_4.0.0/sdk/healthcareapis/Microsoft.Azure.Management.HealthcareApis/) | | Management - Hybrid Compute | NuGet [0.1.0-preview.2](https://www.nuget.org/packages/Microsoft.Azure.Management.HybridCompute/0.1.0-preview.2) | | GitHub [0.1.0-preview.2](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.HybridCompute_0.1.0-preview.2/sdk/hybridcompute/Microsoft.Azure.Management.HybridCompute/) | | Management - Hybrid Data | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.Management.HybridData/1.0.1) | | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.HybridData_1.0.1/sdk/hybriddatamanager/Microsoft.Azure.Management.HybridDataManager) | | Management - Intune | NuGet [0.2.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.Intune/0.2.0-preview) | | | From c902ec48be0943d91625660ca39c869d09288108 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Wed, 4 May 2022 12:28:19 -0700 Subject: [PATCH 115/429] acrolinx (#29279) --- docs/fsharp/style-guide/formatting.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/fsharp/style-guide/formatting.md b/docs/fsharp/style-guide/formatting.md index fd05bb61a5ffe..4d4a2e8649487 100644 --- a/docs/fsharp/style-guide/formatting.md +++ b/docs/fsharp/style-guide/formatting.md @@ -85,7 +85,7 @@ let myOtherVeryLongValueName = The primary reasons for avoiding this are: * Important code is moved far to the right -* There is less width left for the actual code +* There's less width left for the actual code * Renaming can break the alignment ### Avoid extraneous white space @@ -175,7 +175,7 @@ let update model msg = | _ -> model, [ msg ] ``` -In summary, prefer parenthesized tuple instantiations, but when using tuples for pattern matching or a return value, it is considered fine to avoid parentheses. +In summary, prefer parenthesized tuple instantiations, but when using tuples for pattern matching or a return value, it's considered fine to avoid parentheses. ### Formatting application expressions @@ -245,7 +245,7 @@ SomeClass.Invoke () String.Format (x.IngredientName, x.Quantity) ``` -You may need to pass arguments to a function on a new line, as a matter of readability or because the list of arguments or the argument names are too long. In that case, indent one level: +You may need to pass arguments to a function on a new line as a matter of readability or because the list of arguments or the argument names are too long. In that case, indent one level: ```fsharp // ✔️ OK @@ -488,7 +488,7 @@ let subtractThenAdd x = x - 1 + 3 ``` Failing to surround a binary `-` operator, when combined with certain formatting choices, could lead to interpreting it as a unary `-`. -Unary `-` operators should always be immediately followed by the value they are negating: +Unary `-` operators should always be immediately followed by the value they negate: ```fsharp // ✔️ OK @@ -842,7 +842,7 @@ let rainbow2 = ``` You may want to dedicate separate lines for the braces and indent one scope to the right with the expression, however -code formatters may . In some special cases, such as wrapping a value with an optional without parentheses, you may need to keep a brace on one line: +code formatters may reformat it. In some special cases, such as wrapping a value with an optional without parentheses, you may need to keep a brace on one line: ```fsharp // ✔️ OK @@ -989,7 +989,7 @@ let makeStreamReader x = new System.IO.StreamReader(path = x) let makeStreamReader x = new System.IO.StreamReader(path=x) ``` -When pattern matching using discriminated unions, named patterns are formatted similarly, e.g. +When pattern matching using discriminated unions, named patterns are formatted similarly, for example. ```fsharp type Data = @@ -1366,7 +1366,7 @@ type PostalAddress = member x.ZipAndCity = $"{x.Zip} {x.City}" ``` -Placing the opening token on a new line and the closing token on a new line is preferable if you are declaring interface implementations or members on the record: +Placing the opening token on a new line and the closing token on a new line is preferable if you're declaring interface implementations or members on the record: ```fsharp // ✔️ OK @@ -1496,7 +1496,7 @@ module A2 = ### Formatting do declarations In type declarations, module declarations and computation expressions, the use of `do` or `do!` is sometimes required for side-effecting operations. -When these span multiple lines, use indentation and a new line to keep the indentation consistent with `let`/`let!`. Here is an example using `do` in a class: +When these span multiple lines, use indentation and a new line to keep the indentation consistent with `let`/`let!`. Here's an example using `do` in a class: ```fsharp // ✔️ OK @@ -1522,7 +1522,7 @@ type Foo () = |> theQuickBrownFoxJumpedOverTheLazyDog ``` -Here is an example with `do!` using two spaces of indentation (because with `do!` there is coincidentally no difference between the approaches when using four spaces of indentation): +Here's an example with `do!` using two spaces of indentation (because with `do!` there is coincidentally no difference between the approaches when using four spaces of indentation): ```fsharp // ✔️ OK @@ -1869,6 +1869,6 @@ type MyRecord = When applied to a parameter, they must be on the same line and separated by a `;` separator. -### Acknowledgements +### Acknowledgments These guidelines are based on [A comprehensive guide to F# Formatting Conventions](https://github.com/dungpa/fantomas/blob/master/docs/FormattingConventions.md) by [Anh-Dung Phan](https://github.com/dungpa). From 47ee257d92bbcc42d0164cdfae4d2d2d09c6de09 Mon Sep 17 00:00:00 2001 From: David Pine Date: Wed, 4 May 2022 14:56:10 -0500 Subject: [PATCH 116/429] New tutorial for Orleans deployment to Azure App Service (#29083) * Initial bits * Updates to tut * Added a few more details * Update article * A few tweaks for the choices of how to handle vnets * A tid bit more * Minor updates worth saving * Updates to the images * More updates * Adding to the tutorial * Update images * Add a bit more * More updates * Fix MD warning * More info about the bicep files * More content * Getting close to have something worth reviewing * Looks good to me * Fixed typo in command * Fixed typo * Minor clean up of az command * Another minor tweak * Remove paste * Updates to the images and a bit of the content * Update bicep * Apply suggestions from code review Co-authored-by: Tom Dykstra * Apply suggestions from code review Co-authored-by: Tom Dykstra --- .../deployment/deploy-to-azure-app-service.md | 481 ++++++++++++++++++ docs/orleans/deployment/index.md | 5 + .../media/empty-shopping-cart-page.png | Bin 0 -> 54681 bytes .../deployment/media/github-secret.png | Bin 0 -> 161645 bytes docs/orleans/deployment/media/home-page.png | Bin 0 -> 61189 bytes .../media/items-in-shopping-cart-page.png | Bin 0 -> 441147 bytes .../media/product-management-page-new.png | Bin 0 -> 113669 bytes .../media/product-management-page.png | Bin 0 -> 132292 bytes .../media/shop-inventory-items-added-page.png | Bin 0 -> 207086 bytes .../deployment/media/shop-inventory-page.png | Bin 0 -> 174098 bytes .../media/shopping-cart-app-arch.png | Bin 0 -> 914231 bytes .../media/shopping-cart-flexing.png | Bin 0 -> 170064 bytes .../media/shopping-cart-resources.png | Bin 0 -> 146946 bytes docs/orleans/index.yml | 4 +- docs/orleans/toc.yml | 2 + 15 files changed, 490 insertions(+), 2 deletions(-) create mode 100644 docs/orleans/deployment/deploy-to-azure-app-service.md create mode 100644 docs/orleans/deployment/media/empty-shopping-cart-page.png create mode 100644 docs/orleans/deployment/media/github-secret.png create mode 100644 docs/orleans/deployment/media/home-page.png create mode 100644 docs/orleans/deployment/media/items-in-shopping-cart-page.png create mode 100644 docs/orleans/deployment/media/product-management-page-new.png create mode 100644 docs/orleans/deployment/media/product-management-page.png create mode 100644 docs/orleans/deployment/media/shop-inventory-items-added-page.png create mode 100644 docs/orleans/deployment/media/shop-inventory-page.png create mode 100644 docs/orleans/deployment/media/shopping-cart-app-arch.png create mode 100644 docs/orleans/deployment/media/shopping-cart-flexing.png create mode 100644 docs/orleans/deployment/media/shopping-cart-resources.png diff --git a/docs/orleans/deployment/deploy-to-azure-app-service.md b/docs/orleans/deployment/deploy-to-azure-app-service.md new file mode 100644 index 0000000000000..62fd14c459f1b --- /dev/null +++ b/docs/orleans/deployment/deploy-to-azure-app-service.md @@ -0,0 +1,481 @@ +--- +title: Deploy Orleans to Azure App Service +description: Learn how to deploy an Orleans shopping cart app to Azure App Service. +ms.date: 05/02/2022 +ms.topic: tutorial +--- + +# Deploy Orleans to Azure App Service + +In this tutorial, you learn how to deploy an Orleans shopping cart app to Azure App Service. The tutorial walks you through a sample application that supports the following features: + +- **Shopping cart**: A simple shopping cart application that uses Orleans for its cross-platform framework support, and its scalable distributed applications capabilities. + + - **Inventory management**: Edit and/or create product inventory. + - **Shop inventory**: Explore purchasable products and add them to your cart. + - **Cart**: View a summary of all the items in your cart, and manage these items; either removing or changing the quantity of each item. + +With an understanding of the app and its features, you will then learn how to deploy the app to Azure App Service using GitHub Actions, the .NET and Azure CLIs, and Azure Bicep. Additionally, you'll learn how to configure the virtual network for the app within Azure. + +In this tutorial, you learn how to: + +> [!div class="checklist"] +> +> - Deploy an Orleans application to Azure App Service +> - Automate deployment using GitHub Actions and Azure Bicep +> - Configure the virtual network for the app within Azure + +## Prerequisites + +- A [GitHub account](https://github.com/join) +- [Read an introduction to Orleans](../overview.md) +- The [.NET 6 SDK](https://dotnet.microsoft.com/download/dotnet) +- The [Azure CLI](/cli/azure/install-azure-cli) +- A .NET integrated development environment (IDE) + - Feel free to use [Visual Studio 2022](https://visualstudio.microsoft.com) or [Visual Studio Code](https://code.visualstudio.com) + +## Run the app locally + +To run the app locally, fork the [Azure Samples: Orleans Cluster on Azure App Service](https://github.com/Azure-Samples/Orleans-Cluster-on-Azure-App-Service) repository and clone it to your local machine. Once cloned, open the solution in an IDE of your choice. If you're using Visual Studio, right-click the **Orleans.ShoppingCart.Silo** project and select **Set As Startup Project**, then run the app. Otherwise you can run the app using the following .NET CLI command: + +```dotnetcli +dotnet run --project Silo\Orleans.ShoppingCart.Silo.csproj +``` + +For more information, see [dotnet run](../../core/tools/dotnet-run.md). With the app running, you can navigate around and you're free to test out its capabilities. All of the app's functionality when running locally relies on in-memory persistence, local clustering, and it uses the [Bogus NuGet](https://www.nuget.org/packages/Bogus) package to generate fake products. Stop the app either by selecting the **Stop Debugging** option in Visual Studio or by pressing Ctrl+C in the .NET CLI. + +## Inside the shopping cart app + +Orleans is a reliable and scalable framework for building distributed applications. For this tutorial, you will deploy a simple shopping cart app built using Orleans to Azure App Service. The app exposes the ability to manage inventory, add and remove items in a cart, and shop available products. The client is built using Blazor with a server hosting model. The app is architected as follows: + +:::image type="content" source="media/shopping-cart-app-arch.png" lightbox="media/shopping-cart-app-arch.png" alt-text="Orleans: Shopping Cart sample app architecture."::: + +The preceding diagram shows that the client is the server-side Blazor app. It's composed of several services that consume a corresponding Orleans grain. Each service pairs with an Orleans grain as follows: + +- `InventoryService`: Consumes the `IInventoryGrain` where inventory is partitioned by product category. +- `ProductService`: Consumes the `IProductGrain` where a single product is tethered to a single grain instance by `Id`. +- `ShoppingCartService`: Consumes the `IShoppingCartGrain` where a single user only has a single shopping cart instance regardless of consuming clients. + +The solution contains three projects: + +- `Orleans.ShoppingCart.Abstractions`: A class library that defines the models and the interfaces for the app. +- `Orleans.ShoppingCart.Grains`: A class library that defines the grains that implement the app's business logic. +- `Orleans.ShoppingCart.Silos`: A server-side Blazor app that hosts the Orleans silo. + +### The client user experience + +The shopping cart client app has several pages, each of which represents a different user experience. The app's UI is built using the [MudBlazor NuGet](https://www.nuget.org/packages/MudBlazor) package. + +**Home page** + +A few simple phrases for the user to understand the app's purpose, and add context to each navigation menu item. + +:::image type="content" source="media/home-page.png" lightbox="media/home-page.png" alt-text="Orleans: Shopping Cart sample app, home page."::: + +**Shop inventory page** + +A page that displays all of the products that are available for purchase. Items can be added to the cart from this page. + +:::image type="content" source="media/shop-inventory-page.png" lightbox="media/shop-inventory-page.png" alt-text="Orleans: Shopping Cart sample app, shop inventory page."::: + +**Empty cart page** + +When you haven't added anything to your cart, the page renders a message that indicates that you have no items in your cart. + +:::image type="content" source="media/empty-shopping-cart-page.png" lightbox="media/empty-shopping-cart-page.png" alt-text="Orleans: Shopping Cart sample app, empty cart page."::: + +**Items added to cart while on the shop inventory page** + +When items are added to your cart while on the shop inventory page, the app displays a message that indicates the item was added to the cart. + +:::image type="content" source="media/shop-inventory-items-added-page.png" lightbox="media/shop-inventory-items-added-page.png" alt-text="Orleans: Shopping Cart sample app, items added to cart while on shop inventory page."::: + +**Product management page** + +A user can manage inventory from this page. Products can be added, edited, and removed from the inventory. + +:::image type="content" source="media/product-management-page.png" lightbox="media/product-management-page.png" alt-text="Orleans: Shopping Cart sample app, product management page."::: + +**Product management page create new dialog** + +When a user clicks the **Create new product** button, the app displays a dialog that allows the user to create a new product. + +:::image type="content" source="media/product-management-page-new.png" lightbox="media/product-management-page-new.png" alt-text="Orleans: Shopping Cart sample app, product management page - create new product dialog."::: + +**Items in cart page** + +When items are in your cart, you can view them and change their quantity, and even remove them from the cart. The user is shown a summary of the items in the cart and the pretax total cost. + +:::image type="content" source="media/items-in-shopping-cart-page.png" lightbox="media/items-in-shopping-cart-page.png" alt-text="Orleans: Shopping Cart sample app, items in cart page."::: + +> [!IMPORTANT] +> When this app runs locally, in a development environment, the app will use localhost clustering, in-memory storage, and a local silo. It also seeds the inventory with fake data that is automatically generated using the [Bogus NuGet](https://www.nuget.org/packages/bogus) package. This is all intentional to demonstrate the functionality. + +## Deploy to Azure App Service + +A typical Orleans application consists of a cluster of server processes (silos) where grains live, and a set of client processes, usually web servers, that receive external requests, turn them into grain method calls and return results. Hence, the first thing one needs to do to run an Orleans application is to start a cluster of silos. For testing purposes, a cluster can consist of a single silo. + +> [!NOTE] +> For a reliable production deployment, you'd want more than one silo in a cluster for fault tolerance and scale. + +Before deploying the app to Azure App Service, you need to create an Azure Resource Group (or you could choose to use an existing one). To create a new Azure Resource Group, use one of the following articles: + +- [Azure Portal](/azure/azure-resource-manager/management/manage-resource-groups-portal#create-resource-groups) +- [Azure CLI](/azure/azure-resource-manager/management/manage-resource-groups-cli#create-resource-groups) +- [Azure PowerShell](/azure/azure-resource-manager/management/manage-resource-groups-powershell#create-resource-groups) + +Make note of the resource group name you choose, you'll need it later to deploy the app. + +### Create a service principal + +To automate the deployment of the app, you'll need to create a service principal. This is a Microsoft account that has permissions to manage Azure resources on your behalf. + +```azurecli +az ad sp create-for-rbac --sdk-auth --role Contributor \ + --name "" --scopes /subscriptions/ +``` + +The JSON credentials created will look similar to the following, but with actual values for your client, subscription, and tenant: + +```json +{ + "clientId": "", + "clientSecret": "", + "subscriptionId": "", + "tenantId": "", + "activeDirectoryEndpointUrl": "https://login.microsoftonline.com/", + "resourceManagerEndpointUrl": "https://brazilus.management.azure.com", + "activeDirectoryGraphResourceId": "https://graph.windows.net/", + "sqlManagementEndpointUrl": "https://management.core.windows.net:8443/", + "galleryEndpointUrl": "https://gallery.azure.com", + "managementEndpointUrl": "https://management.core.windows.net" +} +``` + +Copy the output of the command into your clipboard, and continue to the next step. + +### Create a GitHub secret + +GitHub provides a mechanism for creating encrypted secrets. The secrets that you create are available to use in GitHub Actions workflows. You're going to see how a GitHub Actions can be used to automate the deployment of the app, in conjunction with Azure Bicep. Bicep is a domain-specific language (DSL) that uses declarative syntax to deploy Azure resources. For more information, see [What is Bicep](/azure/azure-resource-manager/bicep/overview?tabs=bicep). Using the output from the [Create a service principal](#create-a-service-principal) step, you'll need to create a GitHub secret named `AZURE_CREDENTIALS` with the JSON-formatted credentials. + +Within the GitHub repository, select **Settings** > **Secrets** > **Create a new secret**. Enter the name `AZURE_CREDENTIALS` and paste the JSON credentials from the previous step into the **Value** field. + +:::image type="content" source="media/github-secret.png" alt-text="GitHub Repository: Settings > Secrets" lightbox="media/github-secret.png"::: + +For more information, see [GitHub: Encrypted Secrets](https://docs.github.com/actions/security-guides/encrypted-secrets). + +### Prepare for Azure deployment + +The app will need to be packaged for deployment. In the `Orleans.ShoppingCart.Silos` project, we define a `Target` element that runs after the `Publish` step. This will zip the publish directory into a _silo.zip_ file: + +```xml + + + + +``` + +There are many ways to deploy a .NET app to Azure App Service. In this tutorial, you use GitHub Actions, Azure Bicep, and the .NET and Azure CLIs. Consider the _./github/workflows/deploy.yml_ file in the root of the GitHub repository: + +```yml +name: Deploy to Azure App Service + +on: + push: + branches: + - main + +env: + UNIQUE_APP_NAME: cartify + AZURE_RESOURCE_GROUP_NAME: orleans-resourcegroup + AZURE_RESOURCE_GROUP_LOCATION: centralus + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Setup .NET 6.0 + uses: actions/setup-dotnet@v1 + with: + dotnet-version: 6.0.x + + - name: .NET publish shopping cart app + run: dotnet publish ./Silo/Orleans.ShoppingCart.Silo.csproj --configuration Release + + - name: Login to Azure + uses: azure/login@v1 + with: + creds: ${{ secrets.AZURE_CREDENTIALS }} + + - name: Flex bicep + run: | + az deployment group create \ + --resource-group ${{ env.AZURE_RESOURCE_GROUP_NAME }} \ + --template-file '.github/workflows/flex/main.bicep' \ + --parameters location=${{ env.AZURE_RESOURCE_GROUP_LOCATION }} \ + appName=${{ env.UNIQUE_APP_NAME }} \ + --debug + + - name: Webapp deploy + run: | + az webapp deploy --name ${{ env.UNIQUE_APP_NAME }} \ + --resource-group ${{ env.AZURE_RESOURCE_GROUP_NAME }} \ + --clean true --restart true \ + --type zip --src-path silo.zip --debug +``` + +The preceding GitHub workflow will: + +- Publish the shopping cart app as a zip file, using the [dotnet publish](../../core/tools/dotnet-publish.md) command. +- Login to Azure using the credentials from the [Create a service principal](#create-a-service-principal) step. +- Evaluate the _main.bicep_ file and start a deployment group using [az deployment group create](/cli/azure/deployment/group#az-deployment-group-create). +- Deploy the _silo.zip_ file to Azure App Service using [az webapp deploy](/cli/azure/webapp#az-webapp-deploy). + +The workflow is triggered by a push to the _main_ branch. For more information, see [GitHub Actions and .NET](../../devops/github-actions-overview.md). + +> [!TIP] +> If you encounter issues when running the workflow, you might need to verify that the service principal has all the required provider namespaces registered. The following provider namespaces are required: +> +> - `Microsoft.Web` +> - `Microsoft.Network` +> - `Microsoft.OperationalInsights` +> - `Microsoft.Insights` +> - `Microsoft.Storage` +> +> For more information, see [Resolve errors for resource provider registration](/azure/azure-resource-manager/troubleshooting/error-register-resource-provider?tabs=azure-cli). + +Azure imposes naming restrictions and conventions for resources. You need to update the _deploy.yml_ file values for the following: + +- `UNIQUE_APP_NAME` +- `AZURE_RESOURCE_GROUP_NAME` +- `AZURE_RESOURCE_GROUP_LOCATION` + +Set these values to your unique app name and your Azure resource group name and location. + +For more information, see [Naming rules and restrictions for Azure resources](/azure/azure-resource-manager/management/resource-name-rules). + +## Explore the Bicep templates + +When the `az deployment group create` command is run, it will evaluate the _main.bicep_ file. This file contains the Azure resources that you want to deploy. One way to think of this step is that it _provisions_ all of the resources for deployment. + +> [!IMPORTANT] +> If you're using Visual Studio Code, the bicep authoring experience is improved when using the [Bicep Extension](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-bicep). + +There are many bicep files, each containing either resources or modules (collections of resources). The _main.bicep_ file is the entry point and is comprised primarily of `module` definitions: + +```bicep +param appName string +param location string = resourceGroup().location + +module storageModule 'storage.bicep' = { + name: 'orleansStorageModule' + params: { + name: '${appName}storage' + location: location + } +} + +module logsModule 'logs-and-insights.bicep' = { + name: 'orleansLogModule' + params: { + operationalInsightsName: '${appName}-logs' + appInsightsName: '${appName}-insights' + location: location + } +} + +resource vnet 'Microsoft.Network/virtualNetworks@2021-05-01' = { + name: '${appName}-vnet' + location: location + properties: { + addressSpace: { + addressPrefixes: [ + '172.17.0.0/16' + ] + } + subnets: [ + { + name: 'default' + properties: { + addressPrefix: '172.17.0.0/24' + delegations: [ + { + name: 'delegation' + properties: { + serviceName: 'Microsoft.Web/serverFarms' + } + } + ] + } + } + ] + } +} + +module siloModule 'app-service.bicep' = { + name: 'orleansSiloModule' + params: { + appName: appName + location: location + vnetSubnetId: vnet.properties.subnets[0].id + appInsightsConnectionString: logsModule.outputs.appInsightsConnectionString + appInsightsInstrumentationKey: logsModule.outputs.appInsightsInstrumentationKey + storageConnectionString: storageModule.outputs.connectionString + } +} +``` + +The preceding bicep file defines the following: + +- Two parameters for the resource group name and the app name. +- The `storageModule` definition, which defines the storage account. +- The `logsModule` definition, which defines the Azure Log Analytics and Application Insights resources. +- The `vnet` resource, which defines the virtual network. +- The `siloModule` definition, which defines the Azure App Service. + +One very important `resource` is that of the Virtual Network. The `vnet` resource enables the Azure App Service to communicate with the Orleans cluster. + +Whenever a `module` is encountered in the bicep file, it is evaluated via another bicep file that contains the resource definitions. The first encountered module was the `storageModule`, which is defined in the _storage.bicep_ file: + +```bicep +param name string +param location string + +resource storage 'Microsoft.Storage/storageAccounts@2021-08-01' = { + name: name + location: location + kind: 'StorageV2' + sku: { + name: 'Standard_LRS' + } +} + +var key = listKeys(storage.name, storage.apiVersion).keys[0].value +var protocol = 'DefaultEndpointsProtocol=https' +var accountBits = 'AccountName=${storage.name};AccountKey=${key}' +var endpointSuffix = 'EndpointSuffix=${environment().suffixes.storage}' + +output connectionString string = '${protocol};${accountBits};${endpointSuffix}' +``` + +Bicep files accept parameters, which are declared using the `param` keyword. Likewise, they can also declare outputs using the `output` keyword. The storage `resource` relies on the `Microsoft.Storage/storageAccounts@2021-08-01` type and version. It will be provisioned in the resource group's location, as a `StorageV2` and `Standard_LRS` SKU. The storage bicep defines its connection string as an `output`. This `connectionString` is later used by the silo bicep to connect to the storage account. + +Next, the _logs-and-analytics.bicep_ file defines the Azure Log Analytics and Application Insights resources: + +```bicep +param operationalInsightsName string +param appInsightsName string +param location string + +resource appInsights 'Microsoft.Insights/components@2020-02-02' = { + name: appInsightsName + location: location + kind: 'web' + properties: { + Application_Type: 'web' + WorkspaceResourceId: logs.id + } +} + +resource logs 'Microsoft.OperationalInsights/workspaces@2021-06-01' = { + name: operationalInsightsName + location: location + properties: { + retentionInDays: 30 + features: { + searchVersion: 1 + } + sku: { + name: 'PerGB2018' + } + } +} + +output appInsightsInstrumentationKey string = appInsights.properties.InstrumentationKey +output appInsightsConnectionString string = appInsights.properties.ConnectionString +``` + +This bicep file defines the Azure Log Analytics and Application Insights resources. The `appInsights` resource is a `web` type, and the `logs` resource is a `PerGB2018` type. Both the `appInsights` resource and the `logs` resource are provisioned in the resource group's location. The `appInsights` resource is linked to the `logs` resource via the `WorkspaceResourceId` property. There are two outputs defined in this bicep, used later by the App Service `module`. + +Finally, the _app-service.bicep_ file defines the Azure App Service resource: + +```bicep +param appName string +param location string +param vnetSubnetId string +param appInsightsInstrumentationKey string +param appInsightsConnectionString string +param storageConnectionString string + +resource appServicePlan 'Microsoft.Web/serverfarms@2021-03-01' = { + name: '${appName}-plan' + location: location + kind: 'app' + sku: { + name: 'S1' + capacity: 1 + } +} + +resource appService 'Microsoft.Web/sites@2021-03-01' = { + name: appName + location: location + kind: 'app' + properties: { + serverFarmId: appServicePlan.id + virtualNetworkSubnetId: vnetSubnetId + httpsOnly: true + siteConfig: { + vnetPrivatePortsCount: 2 + webSocketsEnabled: true + netFrameworkVersion: 'v6.0' + appSettings: [ + { + name: 'APPINSIGHTS_INSTRUMENTATIONKEY' + value: appInsightsInstrumentationKey + } + { + name: 'APPLICATIONINSIGHTS_CONNECTION_STRING' + value: appInsightsConnectionString + } + { + name: 'ORLEANS_AZURE_STORAGE_CONNECTION_STRING' + value: storageConnectionString + } + ] + alwaysOn: true + } + } +} + +resource appServiceConfig 'Microsoft.Web/sites/config@2021-03-01' = { + name: '${appService.name}/metadata' + properties: { + CURRENT_STACK: 'dotnet' + } +} +``` + +This bicep file configures the Azure App Service as a .NET 6 application. Both the `appServicePlan` resource and the `appService` resource are provisioned in the resource group's location. The `appService` resource is configured to use the `S1` SKU, with a capacity of `1`. Additionally the resource is configured to use the `vnetSubnetId` subnet, and to use HTTPS. It also configures the `appInsightsInstrumentationKey` instrumentation key, the `appInsightsConnectionString` connection string, and the `storageConnectionString` connection string. These are used by the shopping cart app. + +The aforementioned Visual Studio Code extension for Bicep includes a visualizer. All of these bicep files are visualized as follows: + +:::image type="content" source="media/shopping-cart-flexing.png" alt-text="Orleans: Shopping cart sample app bicep provisioning visualizer rendering." lightbox="media/shopping-cart-flexing.png"::: + +## Summary + +As you update the source code and `push` changes to the `main` branch of the repository, the _deploy.yml_ workflow will run. It will provision the resources defined in the bicep files and deploy the application. The application can be expanded upon to include new features, such as authentication, or to support multiple instances of the application. The primary objective of this workflow is to demonstrate the ability to provision and deploy resources in a single step. + +In addition to the visualizer from the bicep extension, the Azure portal resource group page would look similar to the following example after provisioning and deploying the application: + +:::image type="content" source="media/shopping-cart-resources.png" alt-text="Azure Portal: Orleans shopping cart sample app resources." lightbox="media/shopping-cart-resources.png"::: + +## See also + +- [Orleans deployment overview](index.md) +- [GitHub Actions and .NET](../../devops/github-actions-overview.md) +- [Quickstart: Deploy an ASP.NET web app](/azure/app-service/quickstart-dotnetcore) +- [Integrate your app with an Azure virtual network](/azure/app-service/overview-vnet-integration) +- [Enable virtual network integration in Azure App Service](/azure/app-service/configure-vnet-integration-enable) diff --git a/docs/orleans/deployment/index.md b/docs/orleans/deployment/index.md index a81ae3eecb193..14e02c36aceb0 100644 --- a/docs/orleans/deployment/index.md +++ b/docs/orleans/deployment/index.md @@ -61,3 +61,8 @@ await client.Connect(); ## Production configurations The configuration examples we used here are for testing silos and clients running on the same machine as `localhost`. In production, silos and clients usually run on different servers and are configured with one of the reliable cluster configuration options. You can find more about that in the [Configuration guide](../host/configuration-guide/index.md) and in the description of [Cluster management](../implementation/cluster-management.md). + +## Next steps + +> [!div class="nextstepaction"] +> [Deploy Orleans to Azure App Service](deploy-to-azure-app-service.md) diff --git a/docs/orleans/deployment/media/empty-shopping-cart-page.png b/docs/orleans/deployment/media/empty-shopping-cart-page.png new file mode 100644 index 0000000000000000000000000000000000000000..badff09ea8d530ab0ee015661da348a3a114cb49 GIT binary patch literal 54681 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 Kx#H@bU;Z5m%g`?X literal 0 HcmV?d00001 diff --git a/docs/orleans/deployment/media/github-secret.png b/docs/orleans/deployment/media/github-secret.png new file mode 100644 index 0000000000000000000000000000000000000000..12f1178fe54a795f7b28ea4db992ea899a1ccecc GIT binary patch literal 161645 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
HE5moLlgv z=DRw?Z`OvTF0eg?CjsUwOM$W)DD1LqjP}Jo(}xTU>PvS`SIi0#^KkgUZ2cp{&?SDX zj*QpL_Ew~@!xjwg7YixIk4Sk+V(kHQgsxD=F4A;zVtmEmV?C^pZT)^i(ZN? zf}q^|CJXcVd&u}6;*cn$$Jkp-7MJ|x;xEws%iAXylBY{@Pv!MdrClBd?*`mwc!R&L z#>zlu{X7_C1nJt~Tj^ey3l5cA>z>VNuq5ro$tSMAZZ|T&mG^H(Tv?@|ihCNdib+!z zTB4W4)e<8|lxqq^VdqYo-jcdGJ*ITxx@VVnM%ssUS)$SqTeOQdab4b$pj3#$h6zA|gb@F2pf^%mwXN|&ja8_4`*C&vKhn1yG_WSyF#0MimKh)cE28E_kNHn5ZOE0 z$>$E`s^g7bb)n0YXqD>$$LQDDMEUh8OpJ0DzNh-P?io1!f?-8JlgqOHK<;FOvbIFK zK%0o%N)a(!T>Q-)Ir72iqlD=kkMztVFPW_wjoA~7km*60gwYVCa9w9r1ZrtJ6R+iD zJm`VS&M#&d1uLXiGCr|gULzIaZ zdpMObjV@4D9T(WYKl-=2eqG_6WxXUgYa2;eD}`WcOgrHnzwLm6MSa|eNbBSaI`7fE)>V~I6)Veuvx2Id^He_{LM5BPQq_qpOsGIN8cE(o43SwZpe zhJb#QuggrCnmkh7j}mAfhw=`fhak^_p>PH8qYHKd55&Le!-fRaiRwl8{N zdPU5T)eDN9gMToC$FYYWE;xQm<8V}dMhW>JI^o}%fJqDhf(>nW&euo5NaKPYZTxnB zBlk?~s&*^aCvt8L6HE4yKy9ntr#?p(%cbE|tG50)e43}`j+i~!aohacuU4HPnhEL; zd(Ce_ftq9i0c0DGvUUm%HV^u+Qc*o_H8GlL8gOqeu_vZNw#SOM#=$v(iadU~#=cUNVqaHRXc%~>W+}UtXpi1G%`c(B zMpV&2p+BtkkM{q8gFXm|{Pr+h(lxc^Utq7{p7zm40q`3~wvK7T)31-XS@=HdE4Ju3 zNAKE_FR@eSI>+)di{=?#&vO|fzY!2PHkXmH|A0NVVlwJ|!l+Y%+$O-L<9>wD!&iFk zv>J0}tWP4_2I7zU-bsa)rra&fVZ080*Qaq{iq&Ose1MvVlnckfTsUo;G&~1En&7*` z$>q#owU67Y<1?c{oKcX!0I{H{WC-<~m=W3=?jD8D=N>51BKC5uu0{&FJcNk|Dx-RG z%Y(nibW3@0gy!KnxDtc@YY6`t-3Kvb@Hs*gNAPv(;dmo<@P5(~pzt%r=k5m&Sj1Z| zOFeEMr!}nr(Dq@><2`}<0`G3eV!;E7A^b_-qp@5{it!snM(>e%Aik+GB_%QOFsw~= za9+Hiim>_4f_BNB^E?Z~x)>q7F3o9N#Irfy(7ecSC1N<`gJ|aRlM1(o_vNr0xp`Q^ zsRAU7SJNba_wYAF7601%b8(rcj_9Xw5)@^B#`Uob(ZE6B<%1*yJ|97Al;$8a_KQbz zl=Sgxr(X?F^l;yWfdV4k6d)Nt1mzW~szOTtsaL>$?_4|sO10;cYaJ%~AEzfD0v zb92I{LK2T8xH}e%ik{)hAHYSoUMJyfa=(XS#v-E#sAdHoeG|C(J4|MfsSWZ3ubO6+^ zS`;LG`*v4)mi43~JLYDas{h7{*Q?rN!Jzh?xPhj(?;Kt=m6oD_U6fC{>$rS#aWKpn z?`md5pAQ+s+LxSqWutW*JT$AJ{8e2Vdj5tz3^CNE*QZJ-_?)tJDUs}IA!_}0b%EA# zw2Smli~6Uqtx0|tr>Q7EbP093-^ZU7#>vm-JLR1&X|SBZ1{q|t0zT~Vk4;13;XxUZ z9awxmO8@L9j;7Sm#m@1XU8_?!5*T|r;@S)U_i%02q6SeE*^%rbXe+hrQGBO}xw#*`?<4B@Y_v(=5d;{x zk(Zl$6G`8Ov7f_S-bq>uunpls6<(w4K1Naz`7wG$@i+BUp0a@IftSYFWBtWu-#g@+B>+hen2+l@3hOh&9D}!}h_qYn` zBx`Mlp&hNECXr7Lqm(= zCN^YlPH(nPlJQysHDj`yWSP=tqx&a5+c~jBSuTj#=x{IxBsK;0#y&4o6nrDa6xSD* z)8!#TTx_fV;^!+VfrhI2v)vY_ShC%|U>ElPY?~BM%<7Saq$Yj5spD2^F$u5HckH*c z^@D3p<@3*U~7*}clw9t|E|d^PX9Ga{`U!3Oy01k_K^Q8wmFOI)P_PC6u(?lcdGJQE> zRJ~N-N$1(@4N#kAf00Q#pgG6$%J6Ki{Pei)HIibW=<@4CCP@TbF=pCtpXJZUg*7`$oNq3A$Vwyht zFn7}IsGRWILUsCWK1$B&=L^Mr`wDQ5d|y1FF1XmU))<#etoVdj(q4~!-sf_dPBT=V zmDkLaerIGg72oed{(6m~gwnPmMnm467C>g||B@eGj?&UrB&VB8g_z2tF z`MA3LSBp+R|261-X`6JJW8=CklNiTPKyCbLDky{f>S}(fN zN?cUr$7bcsLa=0eSA~856MYYkQTz(obTfuW^XD+R|12--Hov#%KUxs}^Vh`Qo7tUD zGgB6aV*NOpGsj{E7o%8G4vu<<6M`WULxued=Kb8%$E(q!z8%l$&p%P)hS$P8IPL#d zMO4x;PLy+(o`~X$U3*i!0+0%ic#MzKJco!@xl%!rL@>B0Q+*zYgi%cSK5g~Lk%q?%LFp!icy+OS*4O`4V)(0GH68{Ot?La!fiD&XS3d@ z07Pc53m2^f*~{Al4`p9l`mCmkTltw|Hjn#fl1;w7ISxLooL@jm5A!OHY>PK|-c5NB zB81l()3*wXG2=YXV>@rbQA`IE&y*kIQ13i}<@vNj+kY2Us-#iABva?+%OMC}|9isteY=8g zRz`eXq5;Z!QcyLE(H6J9)>?~;{ghnJGJ5O~d%?0zghHof_?PE6N8TBm;JW>1u+aR< zL{=|>ncH1%ToQme=G%&F7Pd5|f*Vf1jG*c#Sg(wO*~ijlX|EehhHt!H&1ud?tOaC= zN4K32tSN)ey3r?4H_Y`2*o@~(PWa27pf%Ue(S0z7<+UU_(MIcp^Ufqv_xL_8x6u#D z3-i3AUE~buTeT8n_oQ-V*P4b4`{wU%>ex1oZbK1(MF+Apx{#qaLS~lCcR=+%<`_U;ztz*}H z_pN}J3woG;7}Fb#2jBhe@yn+U{3h3A?&W2;yZi@d{8!J6^_RZMB#B>^dv<;xQCj5N zO10fX&LFQFx%;&-E*Nu0>&S$FeHSe|+_0uv=e)X$@y$-qbtA_kB3o4D!ULs4dt06M z&h3KLTRLigG6u-44m4i4JbN^_*C)?KC zTEmmtH_`wIXMQ1)gag?NUhIm4^Jum~G#iCbNb6cDqp=9HhZwKxSJD|Jc`oWyVe8M( zrQQJ~71!JH26&%ZLkFFKbOVgTgZ~G0Zy6Nl(zT5u0g@0Pc<|uv?!nz9_yl)%cemi~ zF2UV{ySux)`+P&P_w&4O)u}o^zVqi)Q7I=Eow1@<^?gN^{as@PZDZSw^0?QWID}l}6 z>qE{vv+Q(p{VTl5ByKI%5%gns?)b2fHZM@pfwk<4k{;D)W-obaztVx#Az4q)PA>Nv z|J^ClCU))Z$xuD683bB%LpK7=-06oW@`6I?x-nbsKApR-ALEwbR0P)MqNl$n1=MRYl$-$2R1E*~%P`|!O92ke7W z(ypLnOT^%#B$~+X)G1p+f1E^;FlB+vtejgmDlrY~(7bh!QaO==+k*cCeo?n8clTQH z;J`xEVCtZ?>KoiOc}XCLa}8lQWk|LUmsL171uS$ zo`SXt6fWjymKRJyIKklM*U)^gwo_8n#uOo8oqH7&&}BI9@@ClU0PV$?|k0TdVbeoe13MDKet3SJ@)<)1*`tcX8hf_hMJ&$;OxT! z+rA`lSzssN{bU3?5=LW)I3Zepz$ zcWY%yx(t0BB1Tc*1AVr~$`{+m0!k^p)@Vt-6q3E)K3cvjTb`^okqD&W>@TCTd)l*C zf?{0(@6pcK0z0i~q9|JvS=s_0eIL5p=B09vzS`@84Ab*{l3-irddHLgaXV82UD{qs zRb7~mR*(i0atVGFmNXXAZguoK9aareDgy7}0js9su+2%y>|)G;=M~|pjIR3Fs53-^ zRe=-Y55uaOaLDc-)G>M(d7DNriWwNvW%8MiInKxXLrsL6PbniiNmCnYhbo$u#jk=R z$#||%-z{Y)Zi_72h>S3HpaIc$H_f2dnfe)IlJ_Warp?F;_>LZmmuSDZ^1wYUEUEDy z5850P_L4GGyKf4 z;yiMV;k6GT>hictQc+9S^TZy>@i}e_Ahpe^_9A#PD)DYw;AfXWE|5LyfoFz&?f5!?;n;y^aXq=mAQtab zQ$~A(;AS(o*$dtc`|fb%kLS5o#n%H4V?2)@Pn>pPp}|OJ$#NC(TRlyZ3)m6%Rav+a z4-nMSmWRY2hno3rB9P(S)g%374q-dMcpQLd0^*`x#jV3fMKV=A4!G%4TITS9xdoa}SVFs(elHmRd- zZ5OLuszp<5*YeLCfU72}M)n$AChBBbl;NxuUOG;4k223x0-THT*{Bs;?G;&d;|?uF z=8Al-Ckw;o_I@xK=Q{_KOhz8f*6%j4Q_HnF@=*eLj}=cia+)nu4qM-UpFtT5FMe!u zVLjk*C>GxW4GF?lsldK0p}1N7=$XmfazT2=ki&d^F*v;VE9rNod6*OTjO)3K3tJl{ zDb+Qj7Ok2aOE4f6R0zOdhR|-$s(cM5gH=vSVXOA$ z3a#k7#mQBdnTMuv;>;~9jQ20g-}7JH%9)BMeKnO7xVDs<7nNKN=bAyQW3D)JWHAo9 z2NYQ?BT3zo@K*-n9eHvSgPq6Al7`aMrb7wOoJHSv6Qu+1vSM=SBSlm-){=p{@t@9E z-+{kLUiP};C}z~tLEjBIl)UD>f?@b^Q1EE zUULeh1v-z#n0hMmmix@k6}QbEVDYZulqc`%38&CiXPgbG1J#TV$Gc4}T(Fpg6@ckl z6bLJ>5_$6O?ru3+?YH$S7mqJe?ZQe;-fhc2*7OV47!1b$Sb-P!oQtcpO_cJ*Jf-s8 zjB56iCb_tSgW}}NMV^sr;S#PDNG$IrT$p%sqk!^(pJN3ZT&~P>if0(Jb9Wq|6@K`# z#PX)aEp01oU1L+6z*N?mys9xp-2~6#L8C8j?Im#NiZax^CE`V=7!4b}bH$yt8O6Q5 z8F;d1q`Xa;#p5qFYp!B(NWdZ!Gqu3O=-IwLTVADb&DCPHwvE!mUnVP8r?Ns+Kt<-+ zZ>!&dc3L;nmoiF`JI_+~Gk&&8dsjt=m9;pXTB-M5h*wG&S zb^y9-0fj&#@4tL^DYwaeyeEr&J9#w(hFA8wKCnn*uL|pU5wD;w2##D6nuttw7<0H5 zJ6nptR0AZ&@%VH(BhmT4smjmszSteLY24l}Mkhx3)ssUqn3Om(S>r@SEOOpiZTq?{ z`XY&b8XvF=qsB*s&AKCus86(d#+s9ZNCS>1b=igyD?9%E)LY}(XD)!CnB_g|09Z^|OCtm>^85e(WDm0j)$i)7 zl6J&yl^doNJ~6vSxrWL-a#2xxOJtzYJ@QN93Csx$mhlPj9Glry%?d$9ScOgz*R+M* z{U$F4n;ok9rFA+-TV&GU)9M(+>#VYhn-xtr?MS=PMq z9VeQWpWgyRc#Y%o^Zd4}(Ys|rr1M#vG_#EmM=;sEnYHW2nU|&y@ESIRwt3}RYrhQH z?(VH76Q|BT+2a~;%eb(~%ll0dq%u>sR7@5jG>_}a=O3ZXz9YH43c<+gUf|y;6M$R_ z&WAtA7P!DQ5oPEy^6kCmk>14OxI_EFOsG6nj*~5HxstFnwtn}X@hodMlG#1y_fdEY z)dAM%(T=rmyL56#at0Q=C8RU&vmY^{?#9qqc}_D#g7w-~Efg|L#LxPAqE6`hTi55K zD~_DKlfF$}G^6HGQumCsQ|+VgpSO9_(Q$BR*jm3A!kj%3y#+|>X6f9*R%7B!|PpOEHKMww5@_l)s{*ciT@aCdf%cx3QW~!Q5{+2FyeB-A0AUWb*s7#ZOhavV5AdpCsd(&!^Xr(>Iyl9psve^QFz#Z z;lcYOi#s z45L`_ZqtZo=fF9;ltU+$B=EvtPBWEf0emXwJl#wWofO^2tEJc0Zj-Hlx^vcv>*T#@ zNntxmM3*3ww~+`xgND`j`_4m-Lr-Q{PbfRqS-D`^BQ9pze35B`Pb*_;vF0f4Z9Xj$ zZKV%Cw#ZuM@uXYBD?EgYWH4g=2^Bs`9+>OuA}CJ1BBa6PFAEUbKVZZ49Tu7$tzY$W zs4b07m@!dUhd$XOJJDYDXcvOnhy~&R_LyO*E*exRtzukjCJQ z&?dRN0--0t4){kW3>35h$VI9a*-!gCx0{{G>%R-$;dPX<82S05Pko|s)(*Zxj;Lt& z9UbaOOP608zk6SOnnfd>u@AN+%k?R}+=pCRi;yPY`Q*{sCw?iWo;a`QwWv0B_a&kl~=d*b*qsy(cv>G@$GS-0rM4z<083};Mvp};|1dSBwX7& zT&!c1NA9348M{7f4}{*r$UUY372M+2gO~Oet2E)ZKFW0A!KV(VbeHEdtILekvv=Q5 zgijcxUvj*_1OE68yy&+8eH;C#j#HP4o$s|f-%Fc0@U_>J>sFx|G2zT&S~c2h%tXbJ zP2IAU4|H@~FM_=aT2`BKeVjvL6*(_7;&^mM5d#`xN)^wO!y zZt|NEhLccVLFJ&8%7RwPfNv1Lsj^$U33)WV?f!}Fv#mC%7-#KNvICAee^t@F9M8eo zZZsl5I>4X#6@)x@kDTCX&#kJ#8I{+XdKsjhk2=`DaGThc%so86#rDqdw@d{hC&KbE z&0bXDV9sPy#R~E(11o~#?PjsFZCuF6V}3*PrVdP(ekjjvtHah%coJ!hC>;6Hlu* zkJ4U{+i%?cjsD*P>&YSQzrm`@v}^cup&RQ!(Uogb zS^?zx`(jvQDl0+A>q9B#S?BZqJNbmeF(;)Zq395N^T!u3Zd*T`P`J(`nOrEnh|cP4v8h$+Y1954{NQ^sKKEtt|y6a-56 zF_?s(2Y{#?o;$4~!pRqaUkJiDMCH&1Q4f9L!>l{7ChCZx8Bzt{fDdJNM>>`|WMcN- zX0I=p21DrXV6ov#s@Q3;)|?AhRTzZwAo*nquOz18NL508U`joJ5HU6L;KC^ErTIY~ z%qIXvMe^g0asAT1>35CSwG$+*w7Hoz7{v)huok`Pwl@r{>u&k5frk#lFOg8ur+PC6 zEso)fFa{d|XjkL%ToTIo)Ob>{g*54!+vzOU!=dGD)=#~ykTAB$N%T4>5Bt)TI7`a?WCb<@K91KqRB!z{+ zvNhuMGO!det#2@=KvM4peB8#ti{x(uyy3^=Qv++zynewX>vWJ)r#O@^Uz5@Y%HA#T zE1MG@@Recns)cL*fPjBlibVl7`lHMpVbenG36{Th%myunWj(2e-VM5Ks>P_Z=t4=D zIb5zX^kt3d%XXF4BTggG`S9q+Cb=TO`Ch7!fP{4YMHnB85C>-1OitJAaCvE>96`Hc zJ(i_JdwHu%Ojo)+XJp(t@rJ9iMzMYctJmXsN?kF-bo0SC zA)Eq{E9!?Y64($r{XhYhC^T`3q2e%^V1y1*Y-hj+kLvdmnon1q>?XqlOQkN@LNUh| zFd>mFm;?21VE*q;^gFp^=jOH(Sl4n(_PvaB z7aSC3nn9A3dSfQ&MoXiwQ-@>bB#V$Zis{&oPpO>_45J;dE?uzplt6hyD;DUh1qS`a z&v&Cm9Ji3C=@BIFzTsQ|^kDPsnE+)uI_=cjGMuZ+Xa*%($giCkCNAb5E~lIB>uW|- zHq#R&PGNcTH&*h9T0AZM?z*gw%-`MQj2!dm+rd5IG6-B%62#s!aQ4d?8i&}{q|%q(FL=%2$DH};BV z#H%dqE5sJ%o&S<)KE3$0qX>V)+W z$nH&p>>dJFe=Z)_UMy4MPt`3z*%dKD#kuhbh|)Bd%I;|z;>5{qaOdvf7s5?yKesw@ ze@hvW0Z!tU(I;g*Z7}<0)W-f8wJxURgNGaTO)ebF%R#vIcM}c|bWmrMmDR1(p7Mw6ztT@b{$(dp)+6ksdDo%q&~pFnG9CL?2-@PbfKR zBdtLJ;_#&1U%nQ~+!5Kq-hNP&vTYgC!f~$>5C5TEIGIM$F(_w{7_HVs>8vDdXwK-h zy1qBdd4Dmfm+MUb@&JID4XpBD#PH`hkZOt$Z=yYF*Q|N)hRfUsIDX$im8_v=G83Jn zB^}p_AMmqn@ZD;X4lDIJ1G`2-6T(gJpe1VsbNGTY{0n<2KN>8e*QG+ujN(Z}Lv(IgGxL#sy z#3S9Ky{_;$?}2ryL`|h@OTp+lH%}Oo!40PX{gJayB#;1ozn`S!8*5^IuC@Y64~ap^ z$hL=;zy^CLT_}7=WV~!+^9Lcpii4NF!dgBrBnBJ1rHtrVAG0cs4&a08AqG2`M=89W zvWHcW^2!;Qx(!D72KX-h9Ui+?|?2SZJ0n_Rt6A3bZ9Tr@Ybtxp|lKVNL`cop#6tN+zhU9r6W+*a;n5Y-?mHk-es(%mfR zdg5?9`?Tp^0BghA=oT>9DNxhaaxI-87<874z)PV!DRTlkl+A22i4;fLZd^HJr+c2F z#UFDPx^q@qT8e;nh6uE@%jS6e3loC+N;tm~Q18p7NUJ>4)J!{9HM+c^jJI1+M5V0Q z@OiYjin+wxXGBoGUw?k#8y?Z+?5%J=5!)@5HXNlLOvFP9s-M$ibBx}N39N9g^ka+6 z3N=EG9&GXrRjJj*;OW~%dMHJgdD-WHBP}MQ`IYZ#%wxUy;aKy$-pj|_GAj2|pQ{GW zO8SA|T7QqN5Nfrr!N$o!4@;YqX9g~gou^HcYlDY$;mFROW}`E5Hi0dyx!f(8(xCnI}Tpp*Sa3 zAL%A2M>510OI?i;otuFKXo1uVdaYl68%lJ2s5siVu5?Ga3#c|QW-b|4Nm)4dSV=^@ zmU#?l==+}kxl!%z@98luEAfu25>``evrMIG^+QhqMQXzjURUsp|3e}@eQn+lB1?fOJ5nY&w1;8y!w;;sGX9HYl_d-bh%Za z@~VYh*~5abf?U}%25}Ck-gAm=Zx$r=Vo*55jn}dT?}ykiwn2u0idy0O%TOg{*>|Ip ze73SF%YXiL$YP_7e-Qk$Mwt}Sc5I>4;pGE6Z)5?36)qo-1(*K9$OVWXMt0n>v14ao zs?^$L2S7oIs-{5QL82{_NwkQ5+ z14mPVCE;Xts?TN@(c>^PSKeYcn)p?+Y)eIWX7GdF%BjvrP@RkX#vLlW(*>B0%Y9<5 zt*7aq#voFwp~R{y7}v&WNcGkxHiH6wJgX`==na$)X%)-HD2 z9_SiyM_|ID%im&eC#7L6RJr1@qY8OJU_~YoS!fB*Pu+4Tpy;;nNc~`D4CaPC9uQrU zRMSQmhc#V>jOq8J{&*Iw#u`b#?H9=ZSn}pf_uqkwuiqNGOT`xCLnbxFE&|*>eE?H?CC10U>ExjMmb8E@$ za5fCD*;UpryG)A7TZQXSIp+6`4_|O>x)q>t0k14CoBwrk&-$gN%b0Pu%8JNBon|F8 zr(Ye1?>Uj5CGZpNPu@}&EQ^=KX|zBxOBIrbgf#;8@}L^sc(#_G7Ha2e3G8>{R#y&T z+H)}REwwxekm{53rrP12f(*@@yOU`#23pP|Cm;}m52$x;1wu7tYNE6=%kh*k86VT| zldibr8a{v52zaWqoBSBk&!+6BlMP!<$SPks9eP`;$Y?6LGIr)Nn_dcln;0{-h7aj< zR^S*Zlk<~gZHeT|S%Ai?B7L0G=c=YotC1?&)`Tt@s1DM?lUT-HIe0{EAl;4TrAZ6h z?AmU9TV_~o%1beX6Z|9dt14VngB5|ZW+CpsQSp3`XS~Q9R}Cgu^yB5ES}D1 zTb5SMCFGjPgx!^=es&eXi2P*`^)xtz(Q3ucUk1r_mj5t-z(yIbx0mn(P_CF?K=@{X z6Ek3t41HND+o8Kh3Wndbzy>b6y@4W-WWTo{IM zcii=GQ3T?os{!{$s12Q;(j39bo=0}I<3N-X@Qj%mLG)CjT$V(r6p{*1BF3+%5LWv$ znI6*0;08^7zci^1L*`P>RH?*MJWtl9!iB~t>gJLn<0J1j-i{o&R>5)X=DgI@RC5$O zE)iBxMhb{`K=J{oFd%$&z!fj!BFzJH*et6P>>Ej|T?q3yDie`w?CO5 z4G)$tS4(0Cm1rEU2MCW;tmpiqPizjg54o0;sX4nlf+pFt4!h4A&LBRKV?6>JFUZn# zclR&=9I3beB$*&&ipYG0f*%Yp+e3lCFtFp6*&rHDgJ@&c3O7M7V62`;K^E!rpx`V@~usVz-NBw8p`$po>lMvmB=*;~H6g)!B8%oIL0A9rKA{&WCDh5T{JDJjbsPkbCi9>aR$} zXsvi?HMxu+ZBF{bnq~B;WFFhCS;Wu;_zTPAwiNx2;AZVac=eyU6xIJEnDCFVGeLVM z_fwkESJe7WuEpnIoA~kd;VVzOnd^mA2og-ea zCW~u9X7QtvA+~i#!gnwPRgFq&ktxUO7ZkgyBZJUkv3-tGB`O;sxf+p81$rcgCHMqW zGq+eMxf(NsvMQGN?ynimjyEatUsiw6o8k6z6r@N>nfr;vkTl!LgvQmLW+0`C8uJ{a zj@#w-9ZdZh5QJ~x3}RSl20E!`)0B*5D}Iz#MMkL)SROGI{ZO@2?VBVx@`*S{%QH>g zYfK#Jy=d`nRMJImxfH=w34Ej zFX>54-Lw;d6VhP&Wdyp`@0QwYh;5WOOyftp^Yc<`_Hz0sEb3S}$UK-63*lzgQHPpt zOhr|BA~R}mc5A3iNlqCo^NAP^NDt+b)h}1KL~pEppAMkU*CfSS%=J;;c!RAu)u*4C zz1m}nrusk8jT$S({Og!YC&Izw;hEWhD+1OLo(?G2 z0+e6U)$76!V~zVI*uiXnc4wT&3jiwWpw&Ynf+!7r{NRt$?!&;tJ9YKlv4ey%ZfCl_Q zoCc{qDyx!W+b3aEG;XUCc!hJgQI=$0yr;^%$Zyopi?o>v#+Y*7=<~UklpUQ9C9}$1 z+h6!wPza@M0j5turFU`jtu5DeWz=uiae@Tqgn;lZ0TFb6-M2X`UcAyv>mYft7z z>SbvRV7AA*>YT6}Ukwdxo^(a+$gPbQ5%#|GQ8{)A?Z>3!S7+?(AV}@+;1m901o3hj zJfP;ikkaQ6B>Hs}4HOMAo^@M%w&sCr_<1Q@xQcS|G15t%z>e`?qaWs>28Q_OmrO?P zr!VUK1ZezcBG_|jl9_+9#17t_dk0qs!OvuDuKm6;K9-$y(I)Dub7hm&ctcBL1=qk$ zXCZ!^NNirJj;jk=>qm|Xt0R411|^r#^~Prk*?NQpJ zoXP!9^Bu#mSz<(^<3%N)jh^u&%J(!Z2G5*;3F$|ShSLy?tM}DV`djRaPdqKwIK<-* z2x&*Gy-1WRO(1UiIC?)T69E9?4>Ole-H@k}(Qq9(LwYvftcpcHCJM=aFBODh;nNeM zIj)p%c8S@p855k{NLHHpre!z2-j!r1F{2T=bZ?rx?N{hfMHGFxY-j+rM|``w|E zi>s@53ivaKYgqY(GrrHmq#$8+!J1+;0*GbUS5)6tF|~(uk}RdB#Xh1<&lU+zgO|VV zPV7L*Z!a8*FztLxbi#%Nx`#HThd!bK27*&&auI5D76kK6fY)U?eZf{L`vEGro+bNK zZ9AO+p1XOFYEnZb-dZ%@m2{$;d(IkLlktGeY)@)z$t$u`#Ih)pmV=e3!vv#{x^?aG zwG+XT&|8<170|-o?JYCL_w$y_0X<)mp`tz9ADB##c zKzUZW6M@NRY)@NW*4xvIjMIWJH6wvk!eLFoNJJA|-gdK@6-K<7BSOl^2yFh6(_NH8*6XPS^FpX$d;#*+rba5B_RRZ3JKV>X~Tx0*_-1>uZ2c0Lo;$YF2j9<5@GVwY*8F!d{`P|Gw zoD2Eaz>i?B8f)*pdgdoS?aw12v4_^o*^-xOc4Fc|jrcEMcO=+nMfm2MS^k1{llydu zw52^_bPc*X#f|UjLx*kW=c7T>#%XcN!a2ZQC3DjfQySl+Wc`lZO4K_EzJ6|ts$xB!P#gW5*}r9Am8w_p~R1z9ZQT>QuiW)sZ?VR=}wJd zf>Dwy;IpHb#n(64U54U{W?M?NE06$%y>~Ir`kzq`h5^>0Q_GGTK~Gy^o2Pd4U=<{0 zM`E3z-%bfwvKCU|TBq{f%!OZr!>@orE??qvH3$R&aH zfMy*YGA<1fCJUtyUBNYMf_xX+NZh2dsdL_&{>*-#Dxq6Oh-fom_0MG4RWAG4Zh+<_ zkaNH1x6jkk_P~B2F0s_HfyFs^3zjG9bA9_|+LHAnwJ%lqUoL

2jT`wzs?-L*Uh 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 bY6QHGsRl%0AA!27aBv_oS<#YrdVc>8-LTg` literal 0 HcmV?d00001 diff --git a/docs/orleans/deployment/media/home-page.png b/docs/orleans/deployment/media/home-page.png new file mode 100644 index 0000000000000000000000000000000000000000..b8d21616debb29f8eeb4c2202485985db01b9609 GIT binary patch literal 61189 zcmd?RWmuG5_cuI>h$5kcNUMZ2(lRh0?a+;McXx*(T{@I>*U;S{DBU^000Saj0z(e* z4EO!N^g7-T@3*&}_dE`cnRA_cX79b$+H3t*3}K4$Qn=V;*Z=?k7yM3K834el0s!u6 zKe&&kSen8^(Jv1j-f21m00b_#e|Hwms6Eg`EElkx1lAhnT^!CwlwS=s|3i{^?;_&r zVqxzDC@LF#hbG~;ph@DU&c;rb4lb7Vb^yYMFKEzo>|45+y@RKdrMZO*pag#qh^FHG zhw5Z%csumDi>0k8faetdA^OR~+b1gaW-jiAPNo1|hnw5skN)%Jmd?gDhUlSAfckGW zF=+CGTe60slbxlVIp7=lS_qnk_219CIvJY+j&B0D{~0D`Z)6s*VFb7V%`YyXNO`lb&E)0-k}M<|B#rFBSdS$ z%6goBZl-&WOkwl^((|GkJeM;_voVQW3jTL<6YZUmX;-RhPcVdnwVvjT4V%`;r zG#0-@Eb>g`*})|T4&KP~rOVg*Fjr4gsy)ON>N?nQu*c>I-Pxjdci z4tkCMyZ6yg1Q`%Upd)!(szVA0RGe;>Xk`e^g_E+Ff%3C7=BoS^6A zfA0(!?#=$a1Bkuoy;Y0qSwq1JZXaL~+oLhLup;ym#qEd`>uB}|r4KizYkHKzr zB+ld@aZ4udx<{_R?7&6N_ZOdt(nD}EHC5IajU21JmXuf&R6c&gU=6FkZpyPp{O=@J zJ|EN!yY=UY|Pouw3#O{i?uCQH>Nx-=|q5c-N*9F}hDEXmJy_FFd1)qdbGddHYE zH+j)VHEvRsHt~qA;XUo(JHKZUNhb+Tcs9fio+7`A&*Ey~`7=d;$jFh%Nuh*REl@M7 z3~%QGJD%uQ(cqN9Hf3%F=@>TdYp`EOc&l;X<)W`V z9oAS;d*8RkYYG;gvC|o>O5iX#wWwi~-%2(y5C3~VJ;-d6s#3e2q61 zf)pkxM9s8CbU*6+56bks?d_YNJDE3ujR~f$iS*r+;R6k#@I8H&`z#KUWoca#)W>kIc>@7gOu!y0B;F&UG0+N*D&f=BYz2!_QO0KUSCsyHi9#M@d&_xUyV}?n3{8rE<^c#=qIt_@ zc45^mtFM{w;oX!f6p^}F9F>xG=VVG+$7Z^FXoZ-6qMn-hh-IXXhp({|E@bmbls4WS z_QEtdoBXo7B=tFZX*E^pL{T4)qpG!F@q%-yE!Z*y#}z za<6al5}TjQO7&PR+RZODKU+Q;A9X^gMN0X+FF$Rht>lVwNX1rV>;re+E}N1smNRY1 zb^Oy{sHgv`yDIsYlH4D&Rgu`A`(z*#P+@OzEH35R>IzXxwQ)`f!g#qqOV)lXmj7y$CV^D6_*QsSwlv8wuA zG|yQUt9aXa>m}xICY91jpDj{`SKk{Lq1_aRrhB%k4osJ;slrE|I!CGtJzZ(hP0ly3 z+u4}?Yls8XUz%SqIaW4KLEv@l$X;ql-WiUYZ23~4Z+d9uF{$3+sL}wufODL?6)SEg%FzNP!N zl-&!rt47gP5~3~H-3PeT0wT*_o{({INKO|QN@Gv|HY|h3L#vK|S6uYVFLK=pZ}u+z z+0EBJwM#d5vuWPXS{g@`8^&=&L_(SMmYVT*w>R=iNzXh9glf0+QMM5-QpLs-~HNt>5ng~hxVB#k!oTe3l71q1B0KsTFS#i)n8mN$Dq+ga5q z2n3M~m)Wwg0qE6!z32jG8Z6OQfq9M&lv+B}y6YJPnG4S4pmi zv8wtPnjr(Z0^z3{UqRjHbRlC;CEm>;#&n_y^6bG=98TTkwUr%WwMJ9Dcal&?-$@?+ z!Oi;Kdkg(&l;UM27Gxtuu6^a__xeT%$z&x#O+Q~)f zx>i-Ca3_*`ckrEx8yNot&YLv1gW6p)iURuf{d4#MqwMPClvCrSJJ^+UeKu4t`$+BZ z&C1H0+^-zvC|Nre#~SZH!f-KZcAP9UIZa`jWlb7<8q~8`qWNSQn|z_=SN$wBsF=@U z@IT&(ny`!fBX`Sr{*?>3U_e^HdQj!OaTS}KneqAiEam;vw`}aHMWDr5PeGec-O{=l z)ifc|8#YyHFCdqLSM3jd%)9aIuQdzhSMw-cA*bxE>UOW@T#?znd&(rs8!ue-AWins5e0hxX%W2o0e(re-!gmwtTq$Pop5Bsq zbA9Ef)I!`8T)BH@9>=n%v|z33%?4jF3heN%nzs~{rle2WUtfMWRDkga6J{3fm#FEy zO$<35?hQy_n{PVGTfiw(@(tW}3kW{-+qD7P*~b;*S}zEs`(C0re(!2+Fu)$|f6gfz z$nsq$$^5n_b!?Ds!K#arDZR4G?(D%LH2UYf1D>h=v>l$@Mnh1zkVWfU8OrJBmm$Mb z1Fn_sXxM$X-IxWEa(B+2`7=Y`bU5LCiEIsjCK*P5mhmL&8`(!a0;fUIX~H72)W`l( zzw?3@bE_9QU7PS+@slnE^!uB7oIR`?%Cd`5OmEomk)%wj-Xc!)M??BV8!lIe>0dK{ zQ6q9Rb5c)t>TqmF29?7~$8FnPixW!qx94g8hJsXF?rqMlOTNw9bFB5P?8Wk4GoGlF zfxD^>XGZYvxaB#3#S_zz3fV*6+ZmW~y;1JJZ@(j>g1Ez$`h zZCv;jAKyQ(QrKWRb{I?a#txe6hh0@{t;*h~F#h{_L@tDF`{bxmStWkgN`7N{+P_lL zyxa^s7LLE)dERE)+N!9hMk9w~QIvHvRhZi%>1d3BHcRtFv8sz#oQE&!LC}mrSGG#M z+I`H{oeRkKRCxKP8O)SpW$7%AlfCXtp23|d_5p8~A8s{{qx;+c;Er!oWM(H;n!GJb zim1;QXkn0Uy3x@m@$fC`qg`VE%%X2`!S?BeCKWAbC-_S0~#2jep;w$(7ab@f!9Mv;Cu@cwJo=}h@V z{Vl)I=gS?SDg|iaB=N`lj6dnE>!rT3cCdPjz~HEZA@x`qc;gz}ILCG1Y&hgTTZ5+I z5UJOdMu_VUlROFMs}|G!b?A8ULk+p`s0wbZ8oab?=x-)y12CF~w^1EN%|)Y`X7|Ky z>w7&d_Jo@1f{y^L(!iPv*TfmEL?d<)vyz?&`-nL<1Tm^d_2<9@Sns(sinV)gMbesM zouYv?vX{_!&XqC-mt!;CA7`?fJ$hp1vq&YJbME(s!tTtgj3VxrnpyOH6uvQj%FX`; z$1^-py14>IuecG#v8=-AfQY{c38G7mw}}UfB-j45qdZ?pVS?I&`iYuUnb#VC9Lz4i zV_W3SaiUtam-#6NId<(9h*!3#go-W~(p*)r7<@WjMx9%Q4A*#y++Be&^^ITV6f;j= zV}KgF{gl(oE)PBEKD{I3S8(?gP+-3*m3wB7t=`$6J1n+mm!>-R$`f1vDXVZ2k=wSI zmKLf?xqZVx6SLidRr?9zuq%KIOGWM1iHmNlbyz4M2<-+94)AK{))q&gx$y(0yGN3% zY^DD1f33hWjHSqrk-_12QvNx-0p-l6h*<6XGnb}t%Z}v;FE6nms`IXAxLn?rb}j8| z-2$i6Z3gyMn&~aojZxh;RO9x}t~FSv2CK8>)RQ}k{XHtRYrMsmzsf(KpKkk)2o_~$ zi>4J7PbBqAMm@wTJ=zp-XcwT+?CoN(s(ku>NoM1{! zdnVJv5o92FAZ>=hkk&zNe!?2l{`)*A(|{>9w$f6Ag@hblg8q^DmmF?6d;j?+m3E&~ zz4-1o?JS1aa?{DKDr(9$Drz~mLD7?mSA~HiRYGsFtDKcL7{F^5biVFI^y#ke68qJ@ z&MpZ3eul#~lk)!h54Z0)bSzF1h-;TD>PEA^@llEay)Pp!mSo`Qn?LlBdQoSsN3+3T zk-<@o0J3SHVAy*Pcl56KBGpj5o2wHt$ASBFOp^)_&ySt!vWgz&D~}LU)2F9y)#is& zg-R#eBLfFlsCXOP&zB!f(yDc)`E7fqihNGZTE9#kkFT9n6CYAi&i7F$UxjhEPS?dY z4tYX{r9b4bhD%p4FlAkZLdDA6wR-~24s}~kloXFh9@DlfJqec!RV;x&mO2Md1xrs#Osbf?%^ z&E-Mey-979_s@OPU@C%CCNj#ctZL;~ZXu%CB%9=X5(Au8pDum0F3ML6h0CjZ4r{zm z@m4d)dik{SPTH?hu}i@hYn{(DrLg)Yb%JxUl+9z-HYXG&R9%`-x~0W-md!G%h*cbPng^M>NY$uwvyzX-9>mXM6ORrqs-;|B)2InNVlFfC-@R6< zwU6bUTVwR>dnpmrP&V>H%GL7dSQ8o8b3tGtu+DsShG{!bm^C92K_tMV`oT|Qu`2qa zpQ@D|iq~3}C|_Hu=A@dT3SLCSCo5$;%9LVLQ$J^Xo27D>R-2^saG_#w%lNlihrAF|L>L4f7V;}gSI+2skO$$Ghop>rwMM1*3Y=gR#)69+%g=R)tu_-AqqNpI7P2w7AJeAY=Wd-S%RAndI89kMLrG_8R;Kzy8)x zNX$eF$?Iq15*l1@;u5oH! z&Rbg-Fa4Idx~`80>Mk~`4xtBaQ&BA}SN((_N0U`r(DGiid0m~Dz(T%g1wLR+f#Ng@Bfafa>r1Yij8@-) zYO_R9RcsrxBt5t3J~TYJ&Fm#%hwxt3v@G!4N|R(HYU=CKUe01V%aEPwz1a;q|Dj|O z)@oTaj?9tDpN-4N$mtYJfnI(je#)U;`Q-^V(mC4AC#h_*qe&1r`e9-q*Y#b;T-ZG})ymEyGS2~e%vthbZb_kms z2DJSn-5hTH#)`%xz3kl^XeIDkt&i7QuNyfY-X#Iz?6J?J)a(XoEmZSX3>=x{!m*AM z^3lu91MVU&T9E&>b%ReO7EF{T<#wf}{ga@q`(~9TZ~oyTz>C$mS+_0+SF6=6&TJ6b zI$k>8#gReXR>+z%Oj<<Tdg|ZQR{mGf7EXbtkgI(-H z0q6YAEY|k&Em(3n&qo`bAas0;vRsXcQR@6iD}i`STdi=U-M6ebH7iQ&n~5=RDDgJ+cfeb{Hrzh$x$A`1BQ#o$I~ZHqe2aFk<3|cJ5)!0ur+ zojFMpbMNrG_EF11N_0xsG{e^Yf8y0;fpPDT(f_LQ1a@P3Ph@Vk>_zWdu8|$**`!)T92+0;Hq4CFDqMAEyaf{mw z4f(gs4ywNeCVhOpbhba6M!#|Y-=_NX|9Fk9>(}O8KxRQ*{^HUm!5NW}0HE{e{|>!29mSko%wIm_#XWT){j(N8z#Y!Q zk2dxb4qX!Vsyax?&VN~n26^1%=Wt@9nAZvu501G150Ap1dw=pwwhQx>q8XfM^7)fy z0RUc~kqY(hK~Zz9GXKC}^n?z+uU$TaI6T1hGNH|#J7FC%Wnj6LPWMgihs|*w-*qVk zy%Y0?H@7_hF7B|msYOY>rN_VwAu;@Z70cgI-vC@DpFy_cWOB{R zi+a@VD>Xf<`vUS^`nFU7(7(d~u#d|hcgPDsiv^~g1#((6{_O`q)k|4n^(iSayNQhh z;ql0@r%}HXCMPqG%-y!$_O)+_svLbCyD74lc%RE95btW(WEK<+tC-;G(*LIyAWK>0 zJ0m6IMQQZp2rTk9+>~^grhH&L2#Ntb>kuE4`I`d&PN^2uU2<(XQb8x-C07Pde&16J~BEXR>UAWAqBo!g6?! z%7J7lwCouN$y8T05Tmw&KC`0AED{sx6od%`|XyV+kJ zG<@^;%)Op8wT-_OS;?s;29u8aX+2h&5MIq0KwK*5eop_!P%6$^6|? zRyCX7K2SpkUs(3)CIh$c$nj|txqi3ub+Q?VKftSZ)Wc^sTRi3N_(g-5OOw92e5l*P zVmVpd#OjpXA~iB;0WKK2DJ)#7TR)Q;3e_#`qxs1LQUvNu?X&-jAvh0W+)ePsLw7kl z1?3#a$g%RdP|D8h&MCrjiQ4$&0%plAbh-?vW-fz-+yVQ|(9-u&=nY4~7)~*u`1+(U zWC9a3jc-7{{TEIpUD4LpVd?S5mW8=W9TPmV<6RR13&RIkzG}-jzolXtimBQE7Dxg2 z6M6)y$SG?txZULjuFl8UnJi3XGuBEWh4lp5ATuOUjA?azHU8Oas;EC18FcSP=6$)(x|(Ul)$7h$AYQK@J3{XE_$BqK zx<>)O*m0@d5?!WCnc?+~gv}kZNed)ViOKde)p6RFaG~LU^<$*39)PO6w|34ch^hT+ zr!wj~>Yk*P))Xm?|30XJxllPU^&9%H@QPQs}5=Ewa*LxWz@+PNIR#Utk;wZ2A~&zn_L1!Oy9}M z4z8x-a3=-hyRbrX(Xw=F*mph9NKx~-oKlaGOR15ZuxqGanCair*&X(F_-1u)w4EY) zjw))PkK@|y??yKSfPeD-=-vOH_scx9i?IRd3-A2PbGp0yzq*HJ)A6(K`C;CN5{z#! zq72qQ^0g@L5ph#dS$R8sXURHzDbv~hB;Nq{jkkuD z^7A8_(B8GBrG>|&ck~1F;WyX4!&RAo!Qu_oa&%E-HpzFBV43jGHvDTU*z?yRXbph5=Kl#@5C0FH9q!$iEFcZxnd zjJ*Q7*ZI!I@`_h%si1*A|K)IpEm>Lx+c zlgv+;9Gu0Xv;Ka1o9ktQvDcf*rMiiQn)USCvFsBjr#fH$d=T)ukd&#Hx6J?(FVRG} z2;yv;4ou9tBs?PG^ZNLbcGn%WXR6fM-yG*4_E}aBl9MleWix%OOYNb{p=j4_MiTd?|OMuc*>o(`5Rh(E0>*W*s)u_97un(#glE7>6p-R zFWVyMEG0J|7*CSB)!M$RruMeV?{Gqb%og>weKvWO*S$skdcr9vZD90~zihlN#BxWF z_3A`9D1;lPr<*+(#|$Gm*?m>RsnxF_7rUlMs-d4=j66k5c6@6-9@XXGXAO}mv7ts25e&wKd(0V%e4g8H~+QD0LhN=pRLMSP%ZG9!-C+e!Xam#exEDw)!L11 z8-bAwc9MVj&)~Gl>k`WTVF5;|0JTRN^F^;=0e$Y=>}q;B5RgDzQWBlESVeY%V6NJM z?J$Q`dcq=6=HWbL|9oumVK*R%ZV}yrQdgRX<&zViYNNKWPTD^>s0@y(7tKzz*7ONb zjV0RjG zXzLj<4sUSI10E^P4tH(FxyNk z2l-z%g?l+O<^zdaQK`z|DX&H>C+9NgnOwGP7@5UpyLee~Y8iZ@Yi?{UagC0ipxR7kk_Vt(9rUMxzpu$!th5?iZ#X| zRRh+!j8VffEe^`7t3x3YEE=8Su{*bAxA5&5?pZoIYE`xoGc5ujP+Y8RsCZ5hic!<2iQv2K$( z6~1H!Rh{V3eX6_Bd+T`+Z=ePV?@tXY?~_q}o82i!+oR!K_Gt$4i(&HQ61&et=`6}F zM!!VSve;3xUr3qeT$_7pd|#tbZ30{HDC4l259Kf<7vRVnXm6G?e@@ z?@)BN_=`z$K~YxzNo~f!m)%qoY`o@i*D^B70cMx&fU>d537%nCRs=y#cFCbi9=1D4 z-Bx;8|Aj2wv2x}reNY2v@uZebSTUFBe1J3OoJ{tJ=;=#-Y5Z-2MD~9&qG+?Dz^N*A z!Zji^SAGP#o+-a@ZF_o5H+Oz=G{@+VDW6dgEx?GnG{B5bA2ns9BaT-#DU^&(Flp}J{zA)B*S0-VoIMUF=C#bv zjw`-As3x{b=*Rb6(^0<+evB#2DW_M~L#@5&2lR%SH&0IbN_;T$2NOeC?NPF2{lkl; zzdswu#ZB&6CLV&A_({s&!+7T3sJ(F7_(9^Wss0yYzkV%-IUA^u25swA>?a}RjFOv< z@oRZEZ9iXDfnmS(UccbvOrbj~P=6-Qq>|~SD9|}j?E|oA@Tyeo;zGr{_QnFM!?#tg zfG&#i^PDV5M`kHkh!v{1!QQQ!?~UvtZt<=1$^pS4g>rD$n(iows!A5&!k{5Sqmb)}&@`!1hs@rIjafb# zefk|17`$&pN-uOp2Chuoa)H)*EE?~l}#}V z_2mZo)aBpzYgEF4uUelaMGy{JEE>%gX@qqHU^$@$uMM_D&L8fmF{ApfRH6*;ww zUCjn#@h?KgBAJ##lOz0TlJd{CIUIb ze^XH-fRDF#*(V+$`%kGR1*TZdVJkPskr2s~GbF%4jVZ>&8aC{*JC{`cbHWsA>manp z<&^r7UW##(T&CtMrJAP?QSJH@=ujkLDzPbjDoBn@7gc#s7xVu+J0@|o-R}{dnXMZe>lcQOwF!hnzsFr8Z$_K zyymMoov(S=Q&~L7h@!&N+aE^Y_}!arRjL+a%#gGgV&%B#2#j^vd6zC-ObPL?$Pboc z{(;CES5S^e96hW(T4@b$v`&9|eP&MP&Y)mUcE!Wym0ofOT{$`|JE_MWcxAC1LpA>O zdl1wLsbL}8(wRJ>IeDYO44%6Qk^{$<9>$_0t|k&^WdY$~H6$fR@^N5>rH5Ww{}ye# zBS*3+?s(TnWlGt;?ennVsX{&F-pJzJyE2sFAu|6tUog7~&1*R7!AAj7+Wg#L`^ZAvj_P|wYw$WzYEJ(0P{oEUSevgC! zx9oOJdm7d^9JmC5=y4i z=GG``1GZuqJt^U2HD(St>90EOuO4BbD_2kR*@9LfL#t$B7zB>h&Lblyt8m*Vn^G(s zZ<`g%)MMPpx{1{^*|%3qi~5C`gGmB(ty zREgE=HSv;;_Q$|am8{F?wW@W-tG8*Q#;GfvKGrTQ#wzagEwifNCf}le z@}nO{-?^H%HjGFe%WOl|+HOU7P{ zzj46}H*Z{En{m!w^R`ecL>qqP@NIS6F;CE~U=O8B^1@937dqrE6;s}%qTn~P;vcsB zr0vl1Xf+{V8Kgh7w*B)gL}6=KEoM7SUTo)t4EhK;Y+PKkeC^##X+2(Lqr+cIp;Nj7B**URVdk?MaaU82Y|JInIIx&GEL+~un%cC)^ZoUS_r}9pPM?VRB(>-xBOss zYM|LmBQaaL*At|$+X23lnaHMQ1#4d@cqMFwGF7L>>|z=H*vlXx5k2vHi>9BgS7W$< zAE>wcw3(Y?OhC9<1Gjy#iXN7Ink7d-vI@Jaj|)A+-ieF3Jz1bWts#%cDS)g8LCDEzH91aZy7 z3SVwUA#g-{ zmYR%}RpZqBZuhTG7)#_C8-r}y)`;To7k)|C<>qhFag98o-k;wKErcqNoc+99#6!(fM zb~T3GN^^sUnKE$npfsiyuhKW)YWC(TZ@R~wLb``lE1xH^Kkkb9rsNeuc>HqTDiGW6 z^y^~iY>8TIxx~~)>GGI0@~404feUG{YO{Y1l?|a0malPZx^Hf*E!of58XMcv=oVBi z)x3+TX-0p$P+1SX{d5Fk`4J_0$8YUD1bc<-n7<@r>|j2!BmeB|b09I|UfO;9^6hkr z-SlL|Gqgt;@MCB__FDl2Y^zTWVveIWhfc}jbRBfU(`+uY_5z^)D!7ICGp0!)W*V zqSE|Lv&xEB#n!#H;4QaJ;rb@_M^w3{3c?8AS2v?*-fbRvt&O){oa^hN16{9U;X2E{ z^2E@Ej~o`0d*j`&lz&|pkt5TnT-5O?%Zh~0+-*-h6;JCvE#Weq#c0%S*Y(tX^M4+3 z8%~$8Qz2;JZkL7E=@-$^;*n$2{M6Js@^sQ&RnM;qu^v2z$!xUuvP(;9!w3vre8+s? zA_54o{_#psdJlKf6tio~jc=xkV%LpTs%$wtvV{OUes@3#j_CtG=hWYO6oL9732ok> z0C*KB!>=#pQ{JwUg5VRY$szLNX*U;<361`J`Acf8bIXYy0B}fk{N7?PS+k_@&Vdv1 zI}fU$eKKv2vKWO>2f|H_A2ZH0RZb!9WNaLJ9Tb4{seI<${fmzGitqB|GMk#$-)P+a zwB=hAI+IGbIhy4Qbg{@N7b@0XVjn?!4G0Vp|WE!ol3%rf~m1|;uTc7!D z<#ALc_&9+`cgji!tonx4D{`O{S!#bK&?zb&*e>B7@Ut>bam+*g+WP?I^~ zTSu;{O3)32pc;s*YW@{o`%rOp3TB&fw`?d zG2Ndpi;Hn9I`c?k+D^qs-HV#Y{f&7s?Ve~29(;4IGc^7^UMlW-8B6+xTk2dtp{Op4 z-Fe-@czmSXr*dE5rVJTkCSaeq%CLInjznm70T;JiBbDdfH8w+J%&m2>*o{}exY(iw zc(2^;+WMJvyKrGQ=KI$r3 z!jq7yj&yf;>elZ63&s;_fo#SvbGmM0E^Fc<_?zIm9WoTYgPhC&~U4&3ic4X6AE%GM!^_N?3E=SH?f# z2p5YQ;C&`8fBw6T!aGtfN!=zo{iyu8y-U_73-f?(5N?ZGMSQek?)tNs385`Q8>>i9 zgKjs3Q)&)_g0)^l>PJ~>TwgT1-6!Ui-Wq=7B&h7^5z)M&$1XwYIJ3i!`a9G`b(LNx zIfB}vpn1kMV5SAv|sq+I3|>1BvT zg2x_zXl=HfLD)P)Z`IgRhXhw}n&BIlv3QIV^4Yc{+poNu z!hC<`M}9loBb~eZ?aMyo2hX?{cQHOhQT3l9SxL)|&&p`Y3Ey3&c#W;tW+Ns(wNF&S za#kuY3=4Fg$s^x6>qva`?xXIa*v}W_v-3g9d5MiGSZmywUhWRC2wl2E-F(_Exn1ON zbB?IL8V;gLDDX<}P7}LAt&4_!OQ)P{pOdv_5G5j9J2$mKi3lYmkO?BlUZxo-@TY^i zNw5n~;+JK!1YX`=G+A%!LPJA!9G#qWE6Um5Q2x}g4`EFH@=G2Oq<$9*>uKpx>U%D^ z28t#8yW$76_ZSD9X|DxsYr0Lqz`j1R{6G@XvwFY8ehqjio)?#NLpAPAG0&NPX;)L> zr+tu8fG^SMmJ|XjG+3;L(k^q&0i#x(j}F0DVBi*>)-Wovg5NGP^dZ_1Ue;Hka+YS! zn8X(jm~b;7}HtEjUMgx}WhJgg7t)AWneu3O1QeV5Sds4{V#E z=X=v@_iXPjEPvpzu6~GuGVzu;8Bqlu4cnxXRnNQ8zV+zpU2CYDZ@shs(%5#5$bBox z40;0%@4iP)i5v2OqL9YH0LwL^fA)9WtJRQbwyrlMVdBfO0m%i-2X(ky_h%m!UW$;G zSw197&ODJSDUJ#@@Ahhm8m+5_jF*1+VQh=wZ=aIBuIE!qC#R1qOo|xws^K@At^EON zI$z*&>P^CEGrnSV&L$M>yE{wLc`JS>sN)(7V2rf$UvU(U%DF6kD3v|Bnd78OJY;S} z_G+A1?yNoqt!AOU;z_^xt0ct5#k-Sd(+OiMNd^60p7-}eIR_*=uFnFPhdnV^#qsXH z1D2YbGk;+F?xcrzk_9ArsCcww#RR$c*;wKs&s4=p3eQ<{ur9wV%@&5Z*wCb4Q*!?m z<2=34gsj?_6*Tr-zg483XeS6q(myQ>t`0Mm=G5W53U=tODN_BpzlT z{t(%@=Ucpwns*pqZiv?URJWT)R937&F;ALXeiMHN4ADJ@L6miuVy{ z233{PB*yK%{hKo4ncc?_OOLkHx_1F@^^=TJB0ic@rB;`lTfsDk3G!X{nYk(ULQy&x z?pL{=bI;2OU35xMZ93g!mV+8NGm8?`ad)*8HWdOn?qE#p_(-eI2XT!AV}_>ki!2#n z2)JEf-L*1LF4EEnTzzHwM#|IQzof3C@Zh|^t#m_}kD{(<)HT6EgLyFx_e|h^9j{kO z@YaxP4wAt3t6ULe7jrCS0@8X2Y?s z*$)J3uLEp+2?D;wg?dPQ!~(`@YctS7sDkEXCa6W##%26>oItH{eR=Y@ zg+0A-FfMFi;NaKr&x^t8)ZOsMz?PJztL`P$XZu_N4LMo&q#)bEHRhmr@5mV3uN4U0 z&Q_VUhANh~pGJ!S_IvXp-@kmoV##LZiMvjVy68#m^N&$BJgRWgqg0c^L7}vZ9}1ta ztPboLLykf3KVO(%49gPMonx}-@0cXGGMP6I6FlUp_HJgUe@3~e(uWt52;uM3ZjD>f zfw#47oBZBap(XlO-$TxIe~dEIOqaEKD>ma%V%61Ttx|m(#DcqyokUO55LKigNQ#(2$1fh6Ec)-HK}agjJHVD&40`6wQ@ zgh(S@&A$T{@~=mc5nZ~Vpo~EeCnN^%<<$Gcct!EMas!6yg}I=4!bRL z@F4Gh4?IIeD;iMxkTf6L8gGJ`_0v*z)@jXEWS+SBfzZp9(X;!6P z6i62dOnawrz8~Q7o+kmV8}|%s7xD8t#7>&9W*!D{>TuAp4ZV2^cVIcG@M%6+^MAJQ zEYLu+JoNj)5IM6^VB?7>)KBLlmmwT;zPTLYI&y64F8R=oEze96WZK9WtS9S+ow4v1 zytlOSQ%mQqqYANg`#yOu6^Qux=#dBozU|LhwG)v$Ot4FzJ&@kWMLU%IfmZrlhjoXj zG=X}eLd*)#s$fgAefHUW<&vKhM!bx%eQ*j_+Anz8F9c!ci8e7e()4cnf%1VWFPt}D z$o`n_3v%9JS<8w2dZ^g=F5QRLp-&0)@ZiUb=GM3(J3rPHZiJeelbF6^P=4`Mn`E`i zWU)uS=z902j_l)<*Hs~W%ko<{3(kif0|DySKIs3#5leiUT)?2c_AIAr^D#(ECY~b{ zG$gi~k3G*}>{jK-_-+@!wSjOb&Cf>4=J^}L=C}EQmm$zzeFD@sQRG|7sN(sD>-f|y zPe39z1D#I1KCh^?FWZv#vkW9K@~m;!l@k;Bq7#;SWk&Vfxm>kzVflR`eF<`oz8uCQ zLp|v!BZmzKY%Rt2_p5A+jzNr%(tBiPTIbFlOMP7%vOZ|v%Kp742XroV{euoctuQdX(c|z`vldB&AyJ+72TsFMy(YEEu*XKPr%S3 z6+=!#vP3Mt`=3rVdaiwW3%<&Y5aBY}+7G)Z{r>c5B%4g#e*o?uDWJC~aukj|&!`I8 zxVm2wA?>kMd6yywn#6YNF`O(5YZ`8`=?B?Cr)N3QB3gkD?VQ|dPlf{*zNe*dRlF{G z^=z@npH?Ys;IXYeIoFlW8^{99-fv~&2a{jd;wl-1W-LwWRFJZmRAM{K4ZeIus*UnY zJ2@w&VqaWhBM#*bM0UQ)8|WXi#LM8iD~))}`o8IC6RZo|!U%>H5G&Tc5DKLnsH=g< z#qi^h1{$`cwDt`&^c=I^c!vef__9Rw7ro~_^Bt&yeiGTaPB14qIP>k+-g$DjgVuCv z;ucSQ?QSpT+Oa2$?%~D7-uuz(qFj{~epl@IYp;@oroc_^ocy4V)HsfIvYabgDo>qp z9$Xm9xRZBF^^RW1Bq~7n>Rjub#N;j=aMYOuuEG9e2X?p8gOEl3u2zzL3au z|B=h(BF-U3W0maZZq(X_Iw&O{R&d$%%AI7~#CXqH8nOF%tPxCSi`Xlg{8eqQOj!*k z5;#*GJ1Q-D6|T6f883y;(I_d~Pycn-_%7pXeg^nwhR_9TNK~h57l+!zY`JUNl@0Mo zXFO@YDn^mdp5K-b!W%Q^WF2w+VlnP08jiXZTL*Jozm*I%=YE3wl_)u9rKj#C-9ey~ z2p=DdXNJk-7{R9GUEBAuDx(HH>Ec*9c4jQNKCBe^=NJz?-D=NyejBue<_crpV##0O zCTVGegcgU?_T)A4$Uw>UvKRW=W2Ydm|3J#q!Hg_6>>GPw8zSquwe-ooa=zo(=zU z-7r2uSt4GK>m<;pW!&g}dL`slV%}$a3peFU@ixO7@q^uisEL+78gp+8vBSetUrwC{ z5;A>@S8)y)qTG8((kdfRTq)`GrJXmt&i&j!;pT^#4av;xz4qQ~KkHe~ z%*0+zT1uQpS@`b`MU9@Qe76$xEHXzL#4OE)ffxD-wZ}E$w-49Di!W~X-HN}0)MpSC zLZ3^0mRd#4dESK-Er#DeMPbAz9)AkFA84QzhP~hL{m4lGYaSB`s2$>#^lDXVI_{|= zRyXSST>Wkqyr$^zQUiohOk$f16qs%&cPX;jrojeUkO z$z+~s(9EMye5*TarB>}0w*Hxe6F{XBaw%u3Jg|iG7Q74y*kYPl{lN4p)<ATrX_ zG0bHw{@G@}YBtoNeW{XaySMly{z_lQ`_Tlpem^eKKdT%$?Gwu=WayA&S5LHg)Hb-p z6w%Q(=QpiRvb_F+iNk+hY>unKYdTy~Vrtt5#lp=t(^MX&ShGm9#t$dF>! zlTF;+$6q^?>3=yWax>IQp9B1yX9SC|5whm7;v;Khn<&w&} zfag%pX^SjHdcC)6LZKJ4AhsSaXC}u$Hg7z<;&@dTWRhW5v?hANcbEUETNsk>4v-VQ z<8$OFVwTLQ8yB1u*l_Jq1ren6qm|BEQ>IALWv;a_T4pL;!0qC{-Vyg(Jny4bM&68x z3_P0vz1*;hN8hXJfcy)CYs9e^WF)#Iu2kx()o~j-! zXHKKNnw@{+XfR;Qd$?#PXf0wRJfzS@^xW}e<9+}P9ES`*OBz46+r_bUQ7sOoxfzkU ztrAIia9L~MqV(Q!V%n$__PJ7*aRr-D!mH7|q4M3{0-4}RkN+Cn0c}M>KmI9Qaq*6reP#%3cz0i$ zjp}U@Z>dZ$Ic$VORB(R|?gcNnF9~|Qd}Etb2Jg2|B;wv4Hrg7M|BX%{P88GRN_Dem zFD6MnCh*py7G@A8B4lQm?L;|&Yn~wNi)p+&9hpj3u_Dl&_LA2oE&<~K1l~sCmp6;6 zovKkt1m%h^z=gB)*t;>X9_QqOGiUelTjOThx;X4`bLqVH;~mO+pHPncDX|T^AGdk) zuNOfg+Wz~pbK0ye4J{$2n!FX%0SRy9QeA9>3Sw0vo(lHG3fY3m4v#Dn)irSoRQOY0 zt1iQRPPQQ5EE>4!H46<6eQ17m!cf|7FL1qD_g}fNK5J3Sqo>HxQ}N#^%-u<*B~9rP zvZ>?7*+n?Kct($E(U8;Ma?kyI?}piWLHHJCbR$CH%<%i1u{}gWUz)HxSNsHv~LWUwIV>7UOohYHJ$4e$SaLM=ec5 zDMQDj(9TSdR*kQ&TX)&GPLg{y>COQAu}LD0UdTCH8YlaN%M65mgSsFS;ep1Io9ZK-nxVr!M z&FUxUdMQrk2C}aXvH>w^?jjU;YyRB7DUJEf>LF{!?+4G`aUACTiVBM3aTH1>(X6W_ z>vp>Ga?ZC_`xZRKr+89S@ImjOSf7WG`Yncu1m%{IPl(2|1)YW{0bu zkc^paaY44Es`R`JG%;2pqA>)~Z2R#t`{4YG7Y5aw`c>Y#&J9&d>OGM`A(d2a)Kf&i zj%}rh0%uSC2W|LDl~{`r*8;5CLh+Wya*?5^ ze9q;jPG%A%Ij1q^#{1lsRhzz+MBp49OHF|G2gG~gg*JKr5W|et&ga-Ec0I5`MlpvU zp=ubm&Sw+L&%b-B+nqC0W7+HapYT7)S$Z>+iA|-&la=WB^W~W-#@E2$3l7e&a*8e- z%>f|*od+SoV8%3grwe`87C(o;iUv$VHL?qa-sl!Q9mwZ`h&`Y?Al+5YdaeM` zWs4HCUR>-{@>aTCaTkpJm|67IALF_Cs?!-DxwvvuZR;_9>B@!(pL29-`axmnz-mVf zjt*2^aAs_4)V(tGhS~u!`laq)mV|jskf`8FHeQ4mZF^ z^7g^QwDg1)5b{pJ;d^wO2kj1rjD>VV9y3rP_b4{^pyu$KKaEpl9u<28 zI_hl>Th@DWY1bh19c#=LPwTVy$@I{SXn&i%{_LNYDE!x5FIcWx>K^W|g%Bn)K!s)~ zmdv&Fx6WgV51jhtr4xyY`kg_Cajq`6&n(_B3_=SDjcx8lY{7tKJj#Y0mEToSv?*Yx zqWf;Ly1?8dNMKy>c4?BBuP{~>(H@SYWZd^e?`gHMl05t;VVC7aYvWID5XAQ$9!?8X zRpgg(P^I_Zo5roUK%TW`0k83Dd>u>Nqmlk+&^+>f8<16bS}&(Mx*EGC`Hak{{pvGO zrjT_2eYoCf+6uiSfQ+-M&nod>bRa78x4&#)^MY!0!-Sd#rmYkCV`m}A_EVsycNmd3 zuu^m|QjdbLA*e)oSs7WktKl%;J-B{HxQJ6+mpK5NRdaZS)G3EX$Mkc;oTo)@ir2oQ* z;g_OIQza-OP@cg@h|A19O?3I1+d^vqw33$&5L&Fx(1|7{uwMS`(7n;(x~VZ8jzGk` zpRz$NvC$&i!m=h`?llhZ2!##@R^b)wpKCa#6oxeWxR=O$Z+m~z>VA=gGdLaPiNZOR zEsJ-Nkf3`2jeB5lKb5~Q7;@?ie4Tb!Q%RY;6r;TCgJYV$({IuG7_U`o)0X3BUQj^4 zRd`h96&ADTlEs6wn~-^h!a@1YHmFgaw!Ik>$?Q5%wtQo;OG0uU3O!q1NZw{O5m##jqPv{ z1Gr*j1X}nZ1cRQ!gde=YpMa=S()GGD&qqQkaf578#_#K^dj$-AZ|=UE+GbPkSn1*g z>AJ6MQRZQ@d$#htPXg>LD@D5EU2<@08En$9lB>RabL4K^W24*%g(;hU6bv%_vQ`HF zs&>LUv-e!$?&AccIX2Cf4OdM^eFAi*P*oFY0C0$2@lleOy3Zukl zzc53ccJwPo2CNL+0ujxj-_;w&5FX1pnNvxGQEQfTKrdZwN#Z8}|8IfnmZA{M@pD@f*^1VEKB4ijIA2!+uby5aiEdiHXfAbrJRY0A2Z6e_FwP`8H=*a0 zp$KW&oSC$BYv0kP)we4*AI9&Evy2~{V^7hnmwi)&zKIZSF1I%)24QvIIu!HL%#ET# z2a&NJQ#3Aor5~0T(u`{?)$=tc4#m?TBV5nUg9@J17o&#tOM})ucraN1S1ei3fHKV! zl2<}ejD5x>PAU)Uw8neqXDeTW*Jmjt;|6yX%aCDTL`3vA)P+BbRo_UO19JfN*UMEO zUUs)QduRpA9KZUH<=>ck!lR1x(j(Q4uP?3r_~gf$6)D0M3!4b&D?Qmu1hFD(r>ieB zlK8v~d!3|}B>Ldw&fjGNKa`cc;*yCx{TuU7xeW&4LymPCClTCS6t5ba5{Cn&JtQV&0}Z*R z`HDg}K3jZ1_v~HbdZ5BjOaQd@YYH_qA#F0^R zUrx+?fF4EQ{!(^#YvCqa-Y&4uo`|4Ux#c1r77KYFzL z1ReiDn1pd01An5#ajdWnbxHE3{I(y}@g>u@Bj`q|8+gKkKN0VOOMOu8V)4sqi!(dT za85*^DSM+Yzk}dyI9{bm#P9l&_?hvmrvsg#2a(T~$+2f+D?SpGZl@hN$;1c9?YgLp zUwN}I3{90H?KwZI{&R}bzYaBWCP<~#l6tp{6tIsMh zjZAOP_@r(?%4y+g|0XgQs(J{g4>e4ok^s^Q=; z-SzPyvMNJ+RAy^{whb5DYzDmgjFUB*ZjJdO^iz-*prYUuNv#%t{=^jJ%Git@g)y$F zRZD^TR=WNkCK534f?Lq%2wzf34{9aAW|>Zy!z8ldsRkoX;zNf)fs zO^nyiKx{@C7DW4CiJwsGNzg6qwd3>UwbC$)1K(i+uLLXY`6jZiX9cQ;J<)8I5KTAu zI|&j?FOB-#Xd>550~I^oIua&mfwLhVn{}bvQSJEEu5zsnkj9qLg_Xl#YU}&ql7*0V zbT5)YREW`OtVt8BKmNWh&+LU5Wrhq{F`0fVkS7V5Yr>oIYD^Qv>&=q> zXr)I?tQ0S%KWXr&tHIsW5dXo0{qwEi^U{;GTD-ga^L{X7-eHAq{`67woR$Dfh8~{n z;jL(6Nw8;udi^hWa2f~E9H*zTHa^3bKcW2g+kb-4Gd*Oqjopr3r+j1qb;(!m0l{sn#n4IH8N3q<6tC4vA{`r{&=Y~4C_$3EU_J# z%$5R@J65dA`ur?T{#6KmCr5sP{i$=-Kif*vQoKNtdN3xI29OU)>(A`~q-T7=C2kz3 z=DA>QFl$YN4bNX%=-$?P)4_x(=o=ftzO+dLXR9kesl@iBY<4_Oc-@$@EL&$qO?)3r z{E>M*Poh;W&?o$+bx3u+hLU-xZQ9@UaYE^Hu@2nXio(La%6HU3`#CU8$!QxEWWGm< zDzV{p@psn7^fU3WryEd#08Z^qrDd|&0_XD89m+vRX!`fFChURzYgpS>Z}9 zU;F4mtfo^+B!83+veJt{KB`W*8{JS)H1C+obu8OZPA3)<$DWW)jRk()MDqS=I;7D2 zy5Iq)ysNMf`RA|=GRMYxZfdN{Wgy-6-K{&AS zeibeVO3wwhY|!$dM}#3sv&*S(`9?b$g0zP)+(i0gcDT4iEc&H#kp|^CWqB^%s z(W9Ba9A(6ykh+~K(sf-^xvXWT-E@-y{*!$e~TWPf_+#wn3AW;{muMGw-# z7mnl*Ou(X2_@*L&#q>ZPV3tu;u_)6M_JS&nC5up(G^uKvDaogwo{PWPi3|v7<=Hp+ z^@D510c_cKKTlF0IL<48&q}7kvuRlKIgE7pWL{%MhtV-=Wd01szDL{(ZK%Yv#KqvKo8Zv#n?hL2;*;Q5;qaHnUQ!??Y>N6E5i`nMKfB*s^m0YCF^ zI&|$w>D|z%*{m(AQ2NpHfTHYAE|l$oEvM8^fBUh@~l$)|F84$%zTaxjXx39Gw zYgU#$$KB4{%ThTKURRkF^tc}31~k>rsW%9|F#ssoCG>q6bEZDa6x<=HDK>kRoA6CR`4PTCbiXYh?i)(Sc*)lRyawf&lm-UDO&OeFd4eEH8bFyaL zokg1hPu*DVcklnE;wOK6?aBH0FnzNpoHmYm0wT8Tl;misI z#=?8Owe_|qxE=Ej8AqMGPW#SV0VoX;k}*AY;G;R8@M8^dy|w&s&t+kv4=OC!4#nLu z@b_8sMpH%#2rS1h*Ng*1p<<%Rd{Mqe)vlmqwQVIDDLKl8wu3)%y>nnJ%hZ>#2^gjB zH^E_^-F&3VZF8E!}|ao1^}j#OZ1%K z`5#ZU^ak{xZ{HvYr%lLSO?ND(E~+5@GnmF3BnQXF?vEp(p%L<|sKK2lY=4Q{2t!tS z&VqOR=cM(<+Fy@dcebYB$zh1^K&@HmYQhpv%- zWOfoAVOiektg#pN-fpV2LX~-pao<|CL)`j%lkuH2u4d|LpT~Y6k};yvs8f0MzJypMH~OBprEi(l1?F zefcuWW2M-y>+$}7uf-8p``8k#b%t^fQ+L-m-X%+|S)%ZIjgpTxAOu-dZB+f!K$vsK z#q3*9)&b2eNcCsmUEdAu`_r|JNa+7wey}n1_vD7`4#*RBxx_x2l_7^b*wWfqTF0=m zx#R#TUV!5-#Iy)Leps;Cv6Z;$Pldz!0b*ll?uB?k41US@K)BK+GJ!2J9(z4knD*y7 zqC=>vv=5IsA2uB0FBogqx@>e4F+AE;XOyrw%xM44lYcj8%PmQOd;tYO@oBn&X=s>c zSVeIA+{S{Ie9rOES(R42Ggmqg0nWd88sG}ax_dX2!^`VLgHP6kf&UQkLEm-8&DC`g|!Wc3JO#E^oxxooh^N{=ZW&ZB_we>NoTbd;xM-2ujsiK0hqoWSy z;PLvvH01ApnBT`f1Ld`C#Q;#m7v}plwk?juXxm{TDuB!Tr6_m-Z8dCOFExE+j+Ak5 zzFor#v^9G`)WIKU=6pui@INM%e`c2=dS?v_f`G=*{Hm)FdpStCs(Zt-n*(soKcJ>6 zL3n(~1pUedbfny{f?2DnULQskGkFfI=(%7LHo~x~I6q=gi^T^Z@GcXnru0P0bou>-Avv@K(ELP++owcvHYxR0rf3 zA7187Z8CZY6VOneA@a5om72Knv|eR}W{$dWVOPB;t>$~yK7FAO`XO?BP@qv8u% zGlDrj4ox|4LIGrwluN5-4fp%m7XDfQe?1cfA+ZUdXm5d3DDm9(f1H7##3U;NC9)@0 z#R<_dZLENk7u;i5tKX4RCg7PMu-<>2`aXx&ndZpVy*^`n!=!~Z1`Tn==~ffslD&sQW8N+d)VYQR;i?iV@$ zN~2`hRtC!zgo4D<<~-#c;5raf52jspNhwGqQkg`0Ah3ZzSqr@Lr1YKe_t_N~r^&tG zQ?3GjZM~9vL8V&FyXJB7IH%t$G;LLP01d~PaT5->NVG=GsitO+th{5x#AvnQ)B}Cp ziP@0!_?Vnv#;7*F4FbG|;%^v>19AJV8(f{vsqez^Ty_V!C5BRme%#Kj?W;vMRIUZ{ zzaGvWwmAwH_Si*1T(0xKK6#2Bf;H=(*|K9OJtqpdJkFy802BF@oFnvj9gH1223yJ1 zCZ-a_ch~pv{p(A%w}4OgIpB(i=9cJ6vaAj^)=^A@tjXQ`?tIOvu|?DH}VgvP(w$xa4dw*m7Kd*)azO zCm3a>`KkcFi7s7kKOh8Y12&(*XV)OF%P~NK6auY2$+N&adN5JoLYMm$qCI(ROD(n< z_BqG38opf!6h}V2dsP7xzkRpgTapP8fZpi~B(%h?2bzhN1s+g0W$?dhfb|i29sT<3 z9nX6qmen!exk@Xsbo(n7pZ1Ez8>FXfyop0~^ZXEjagviMdM{BF?f~1D-1rSp-O%Sr z5N=Q@+;&+NP-WzVTNh?ZDol0N1niM)7CCRurX>h_+j9bMVS;j$bVSg%+1)53Ue!5t{pbPqZaoL=cH(*Pft*&#C$}LE{vnK&?dyRIbmh+ht!GyAdSiQ}pftvpBq>`QF`L+T+HE3>@ zVC02SKvwF%`8KdC@3|Wp(ZVuT@BA|TQwA-|)A!8!CWV#PUn4FnwnZ z(@aARcom?`At> z72$EBBpcFT^xtdn)^K8S@Zl@(0JL3P)s7oDOCaR@SaNN-33_^%{8q3imZorwz$ZEs zwH3Cs3fof;9yL>b=s~!i8fBmy-``M6q`6bpbclqvwRA6w^q?96Tu-uO91L{N*F;E^ zj|*WY2xJ6znQeI_{8>!wI826?tlQEJswdYqMjmhl%J4y4I7x_MDZ^b5EAFxl+&kc% zRedl$&+b>}hkNNxk!EX)_KlDR+iRy!omWj>Ae1SN2e$vNzYK?i9qC~EcCrB$q{SJm z=05;nYLtu2-0AT)F0%VMdSKZMa>HvJ4nQNwND^Q2!#$x5n8rpr$pA$G9Rq7rB(_@t zg(Dsr@}`w+tfrfr`9UmS&>G1QJcP{Ii3d{RID5pq^NxZ-r@~Ft#0HQVAh)8PqJerC zyn?d6#Jhbb?wXk%jA~R-~82oTC@d&;xjd)ojRvwV0AXRuY{_0#ExBV6CyGs z0`t?_Qq;NL_zN1|4@9Nf1w^l<_bvNbV0vV2?b@yNF5Mx&;deJa^qVu-_%v}08!GCY znQEFi+23*~I{W-k0IR)+!nwAs+ucg4s)n|fjrx1~fS@vR(wg@+!si(YnK^E}-W+Xd zEIVp$=ce%*%Yk}3+zUGiX}(!j&sUdP*j;T-X9Nvx=DmE5kq?GW9Uhe&`s(Ypxlak; zIvlB?620(G6(gF9Kb&V0D^DB$;X7w^r%7vrmU;J>(PkBtW%9-8Xy4$tm!JJ8o9(~n z7-1TL9jWla{tekj7EK;qy;`piP97e2$WGD91Wz+IrXeyX>bIzHf15XqYhZU?x|UMLm~*=RAtO@ z-kFmFlRNKQqks@MDVc^s2@B*d&=rOu-gLFLu@3JYo+Vew*r0XhGFq!|{0;(w#=PnB zHwLZVH>%a;9SI!)E+PZq1Bm@Cm9<*VlQ5^9thOsrfc1n55M(0Z!XSrev!M;NvUWUa z1=4Ppn~hC3*y4IhuSy^enR6R}{ipBG-8ygi?nmB3N(Z;u;AK4l$S<64ZqM{86M!%p zrM9M6|LWT!#A!~=F3{ubI9O0PZQ}#@zhk%;d#{gps#hJstF)u-8i9UW81>M=C=hI6 zi(Pm0lW&tDrT9>8ir|_!H^HNatrPA2Rk5KWlT;*f$~?H*(($+Z8ugkMQRKu|mt%F7 z0;w_WGH-Y55mpswS158VfE};h4{77odGm^UbK{V_W<0(@Y_&-nES#wwpQkiQJVeb2 z`;run>y3Ug*opo=dcm!)nvKzH2M`z8@N zVh15;@_Z5pdDU$ky{1NzQ5#6&>eTt!BULmVBcwEu8uEL@z<+iGx*}(Cmnz+!SM~M= zS(&oH;KBs6!t?TmwPZ&S0*b=fi zIRF?|MM+EdBp|-Y<^Di67U0zJKfZ(ZIPW2^o*Ym*@Neegu@J!--Fk zkiy0AmN_L2CU+gaSVncT;#=)Zo=V#a+bwZid0@=JTm7GAM;J=krNpuGaDcM%_mXh= zR6HdArzw`Y$gcyp%0dDz7n&Zn8&;jk-9QKB<*~lEN68P{;}W6+aSeDe4*wgX%2?jr zy>)hm0@Xa2Hmt0Tdk!<)uJR8oz<~|?|JYQ=#<=Iy+aUaDKooM?5IjbTm;U>@ThHW2 zklIZ77ym~M{jouSM845q#`?dU({;c2Z|}stM5Pq>5i9UXc=u8ExjKb^ zu2F%H7>&I?Sk*Uj~@{5EXo;qxk)vX9aJHluM1r zEIo)Fg1z5eId@My)Jr1Z7vKm$oY)}(&~E-sz)(HU2?D$qIpGerct#J314znCR#H1&-iOn{%45t%yNXD z0Llujfo!?u%$B+?92|v~DiW7hrCT^=$aGxs3eopGwl6GGVeWd^+a-p&jIZoE3NXhT zTJNL40N)c-49Uy)$)qjzSMuyyF5Zw6!-csA8Up*(R{Hf@*{NlIFplzO zJ}+e{^2xT^brSdd0pu`0_+?WZGzdl{I~WT*PoDgZF>(J$zvHN%9Da(-(rb;+Oa!n> z@%4Oie}|D&f(hsJXpBiGZ9`Xm7csfi5kA744d5^RBR34AGd0qBr{|3}%ZWOrwvz}^qN!ka~x;WIw5VUgzD0v+Gti8T}WR>I~Q0T3T%U%rPgO65DP zdrQVW*O-+>RO2+}BTbQQy z1Bf+N;@8BEoeTHJSx;5ite2GDowp_J!+UA)HzjtdccKS=0B9wvKW_}mvU+1iE`N~i z=|>GaypL-Rc10&jHpK69P#lbvBppXTajvjIzIivr?v;%K`L=_hF0O^ANsf{+Gvp8_ ziH|DE6xbT9q9=+}fBcIN;nw)ea$CMOdb}QJ&d)#4+1~iAy4B(O=QcmZrFPBbAoj0@ zr1jAV1Go`R`75@jxkqIx73)jJZ{L59cA~sR^>wvgem8?}7>Ylq-X<6d%Vm9X275+4z@T{`{~nIj2H_74egA|cJzg2zjKxe^dy zSDKHaN$5nE307D77^CIo7#RFj0q={+S@jv}M?07A#bwEpa(Obh$t^wT^(mSnc9csu zAwLLFDUlMJ0o_J1#jV7gnhQt1mY_x3j!7~PK z`XmLLF}7c#AIfpMjMz#E&-*Qz!i=kyFqphw`!T5=Z@6ePF}eDYFcm#k* zP1m7tvq^~HWdI2k@!qz1;M;f%L z=ZS`!aT1pLWV6tiqorz3Pu<9T*dplAhZnur(PcudovwRE#ba9RX2we?Z}j+g zwK#YE-uh!|1KNI4tW7thW<-|kaNxGAv$v)0XW#O*4BMp)!Ewz>FWZ6LiaI6^Nh}9X z->t02xHg4~KxTQ>C!C;PbO3iEd$YIZ8*szQ9 zxhZd((v>CYiW=b6bEh8o_p+-9{Del6et&)203P}3=`Wj<7xQin+g+f$TPqqOkf-Y6 z4Jy^~*Y_4f!V3&$pI9nO-J?V2r%cATdX0Tj3%i~dzOx>MaY{bCyK`aiY+*31-@FS8 zaqFh?&CRICl6txYW^#w$imM2vys6!JjD^Rq3Ae5~E+)gO7mQO*8sQDKH zd&2S;YNe@E(B|KNeGXywU&ts^E%$QYsg|{eU+sx##X32O&_%RWQXf-V@p(WginrXg z=BlsN8S4BO_k^~8_*%trb$VGp-s_q{AcuJJ+ZY3Ra$Lu(w;Cdh2pzCDkoDyJoyrbnuM8t_T!Jb=$Av zXnfRb&uz*@F+i&-hLMb`!dGhi)F$?Kv*;Vt2xaII?rJxcg9|U#HLe612thY zJc$KWZ!x58aHzG6d{}Yj%)4Dp(4ba~&uju}kMI*-1S9rBmakJT5{WOZCN=UEsri;0 zBHdu`f|?s}S1DQKKMT3B2E#arl9Rm6gUUmMSfnZjzIUVcV&}vZWiWf5ZjTorqFYZ^ zlp~zJJLZKu9SqaEg=Rg*zZmCT{hvN0M5p(nEvv89a0Xf7=^(etk z!o+pHGh-~DS~7U)>w~LtY3f(B@B*=X-An{eKTshOsD%QAADPQ;XrM|LlP3^DQpmnf z$GBsJs-nfEJnma*9Q!6h^dj*(nxCmRqv<8&tN%isYi-{}vdDfm4uRN8sD)M>uai&= zV#4|^M4RFg+TCV*H;WtPI8Pe9&iC8K+^#^pLPWe8(Q@^}6xb{0;8_T&TO2F2=k#37 z?mfAVBv=W=96d;1xc$ZeJNZn#vsh5uXmHv=mfzl;<}3cr#e}kpo}s)bfUk^9Wl+!t zZIG%;T5U6`s1kf^G1ot#ItMSf)qZ)C{V}qdRn+QKh_N}6v)a63xVSgFKafF7JNEdN zKaaQ-K5zTWjv-(^_9BS3Ju?WfXd<`b9@MNRXgWeQce3vFf`zwEa$f1a`rNI&1!}p6 z94C^??_8pAZK}ebGd7zrB7q@Zysk!1`LUoWe~fb!B3GofrC~}-_~9pN7%^UE7)o#g zy}7r6EC@chhr;rDSJ=7H>pkr}Pg$*gdU=jfg^j`JBZjRb? zX`>$w(R%JfO;o#ns5t7sci}A7*F2$<%{(b4TeF;MzPooS^;k>owpLx_gHq1U#I&0I z>AK=5%k3gm#)Q3O9z&FZ`VvF^+YAa-s zu4^)u%j25nYLYUpP@!Di%f81InaYr_@?4u2%H65{4?-JloP=Ew$RA%1^xE3o_w$Sv zKf>f`0XG*At-|u?F9(~Um1qhY(iVPQgH-!5&>@(7VX+Gx!{vF6Hm0tc~k$Cq=5PRpADy6Pt% zb28FD`vLs@Rd_KcO=TQKM8%}Sd?1bhF3j_oLI zED)xUHD$;0BfMeCl`nWNdqcWFZK!|@jfLw&B5^U7pjk<^lu7D?`&wzEvS^QjIVWlKO&N~v(O5ZNEN9TSnF z6ntMZDSQ2lH!OZAFi4Elg0K_$2D}$_=Oaf#d)=#&Z%_|}U@DX@rJiO&d$iQXcZR8J zbh^;`SgMY+3LEo;Hi^l=s+#kT=)j7@?6xZ?iw`$VKjKqtNYPCseoWwC!FN*4M%90* z2RPK;{<#l*(2=!j{q(x>7(N*^C}&WC&t+-|&0i13G#oiY7{6yU zTuOI&&HMn(hj3@vbQ)@@IcSOJZ^-z?RNCa^44QuVP#YEQonjI+zkO=SOC-I{giEFr zjMHiQCGrJu>PNww=0#UJlJH?Y72Sc#au2hBs;HOrQZ^c|#WIRt3pUC^Mj1~zPT3Zt zUWB=O*_q8J5)Csk-4eWuq#m$;e2yaiR%(V3HH~;)d#Q+eaLiEf=ysU7=FRz*Yqz%= zAMgU5Ba;bLmz2GARH_)8=B4~Ia8@=$i=z>mia~Pqw0)Nh6{4YGk~;)yL|x;unu;p@ zIh-RWD`w@$;|Rb|OUp%8RqkZE6v#1L=ozrt`vXO(D!PUmE^tt*3e&qdr(Dx) z!`nbUOGK55EnADB#$p`gXPrbo_3~GP`;JsaQw4^>f_X9rmsAcZJYgy;Z2>JrVl8x*Gb<}+(tSZN(@2@uIx#ISRMb$|$q_WMRY89v0GJ3ao^Kg0P-4Yr- z=y-oPLyga@a%)`NU+X2;>vT|N0n3I>cP1?=S7l>&SQ9!|YL&KNrGu5PpDOfuzG~PW zA|`|dP#o-0oxmFHt?{y^M<|7&(d?7;Gg3_12V?uDYUC?UW;r)mkA651e5$zB3lI^v zt<7BwW~Zb}A>)$r6WZI?Mva}X2Hu_oGiYc=vPEn>d(_&$CmDEfjV+ zB3@gpbS?{Aq6(%B zDUVh4FG-%R8jJM2$NLuyWnBLSio3rSWpx#rjkyDirB@h_K_ld2_V?{+fOoDzcbl}Z z{gR4jc;UVmGdkC&vB1&ISjm`??dCK?=gS$F@#Mo1ikpUz$bb8zx|UAKgC{#KdY`q`B~51MF7y6)o>w}`}TQ833fMc7~%HBU-eowk+EV``fk=E>OO~DgsWU!8;>8V=f!6Z^{sKX%?i*q7>vs zSPbcu1vH6JpXbMTx~!pod?aUez57CGm^`xF9~C{}n!Q);2Ai~1z(Q$Qj)pNJ8!w?j zNv(rVgWlOhz&bW&M18N*3`L$$G{r7=GVqRqkKX>)G`awhC-YP8zhfB)RqzL#YDn-%vSI47T{k{$^EXe}EvtwlE_u23)?00? z3*lc`l=>pi!yadiWmdtSlCf(W!jG-yNO%p;V3P+^4t}|>0&|Wf4Yni@v1Xq>p2igP z(U=Tc7;SgUho%^db+hes)`Q~UX$$(}j`Hw=oM0f$t?}IlEbxj^DApsMDbd8Fnp(OB z)mJvRkeC0^V?483xYal-0kGrhdAE@nXxJc=zL62NxHu95Olt;Ql$anhjLy0FFU3zy z6%??M${`$+`+XfdC#Qm1PS00tjBxBE=DJ|DcEC!|mf zd74FO9W!&1gCE;_Yx2w{TT}CMO}ssFOnZKoY);{5p?=b#erO)z?czjhs7fR}z*g&i ztKKS58hMOZw0BDiR6bg_S8eGsM!D0b*T{)h)Y3OLWtLQ0#^SvcXZ?nF8g^`Q=>YeL zG)?Tl%`2T|RH3BedOl=7Le6V@V;rOzk5n*hR~Dso0ExPM%5Z4ebl|uWEbk!=Uy>#; za#NgMY63k`#HDQPJa>HLa%Dxvocl%i()@!V1fAJ)Q=j|uv-M}9FMBvwMMN8{1P)WX)4;EXFX2G7r|?s6EtW9g4n@qa~Ydb}=k$o~gBE!KC|5 z3Gx^B+TEKtcxE!CD^Zvd0ZCMaca8sTd)fi!sJT9+|1qc z0r@yzy<^L%7ZFq!L@Ycnx<1S$1bt(bI#GU6kySMS+#l6K;@@5bY0ySfphB2%<5D={ z=_n_L?%)Ow-Lsd8w}E_QKLW?k!-+X>vXT@*yDiH9IEr!=9Z%a+wDvZXWgiP{#17i( zdKjg1e!bU0X`Q6d6^-Qn{16sxfN}x$3q}{nW=rBunhHm#Fm`lA+^^Op9BmEsW(YeVRTxpE_qU zJ1lWZ#eKu7+Q=m1IQY?NNppJZxvu`PUDwJ~D9|4ltwgXUs4i_f4FxMUOrE0D2Re*N zjOn;)+ZEVMj%Y8N&USU%VWsTHp^u@(BcQIIbU8*}G0={QdmNng|FHL-VNEq%+c1iP zUNjXIk*0#6AidYvk*N3c-_Ljc>>W7v?AdFrnOW36&XWfM}VF~m3p7_ROGY4NL zp`*^8_jkz5b#ept?ZU5z!8Y+{2EGVXm!~a4=Qwogu^^pdKE!^*$WqrS=3?$Ct$n3P z%tGOJKKs0tn9D_eUk-U5%y=z`SBYlX-Y}1KDLqB)yPS9HDBC%_Y37`B)so-OD}*#b zQmX!Awz?5Ng*q+Uxwr`{5ze}$Tg(a*jS`s$c0U#|3dVyuZz51>9^j_;snE?XVv86W zS>6_ucJq6xDaKvqaZh5Yd9_$qMLvVsU6VSMr!L5jqwJEUAU76}k*L6Q;75AZ7y3+d z)v5|@+`Ctt+{JehKJ}c0cl0QI`aLLJj-TycN4@@@jAC`J4sB%5L(ApAn=dEOpZeey zSGplv>e7y|hydyF)CB9IqnPuS-<%HiC{U9OX2t3EYuy}O$@kCZ!SQVGmDCI#K_z{R zH#aAkqmydF8#NU+OQLiLuNXIsztJNR+ZEu|`t$o9L{f4{nLr2Si zgb(jcxP^s`)zx++KM@^D@RweV-bb+&5-k3;7%^F(_#&R%#`q{R1T$7rXJ#6}o}Vv2 z6wq{QGF?1mFUs57`?;m1E~#At3VX+gX^vfhg#k%kN}b^cRO&J$hv0_55-F#}EUy(b zH)qDivO&v;3;QEaBKs`6Em}K6dtkN-~>l=XS2eXNmjl=I&+FHC-%|dNH_}htc&1@Xj zEWNVpaK5fH#9SbS=E|5NrZ%~Yr&}UhKe?E3K!qGD#3gN|6zRKf`#M54I)4Lg%{}8f z=zw35`7*fkQCTN;N_&PO(Wjhj7v}D%zl`tqu;Q$N`&JMxa>(H}4%39q{j&Ee2$tJ2 zUeD-b86i2)eyN!PN$KnFM#6hgxjs?B*3{P$Z;O89*C6Cuf(_sFq>%&hYa)r|pP#t$ zw!lB%9MxTc4zNYIm}7GMYt9Zc?D8>PgcpS0HrfJzfm#{_Tlhhob93b%9CzC)fj8RZ zMqD%O@|Pk4_e$hC%ubOa=$XG}%3$#$hNmR%->dsJW8YC#oIE2eUBL^Wbj&jc&FE;^ zF0BOVh6E z%P1F10A;?E2DHUjPeeB`ex0aY4*bDjrlAtddT{$La`fpWVeZ;{d-U?EvC@L1#I-cw zX@*3Pr*MmZLfqaORO9E*pONMm-TRHg#2jj|jnQm$SBRQEUi4Pi?*aX{G3)EMr%f*Y zblY-q{vP&Oy!F?w3wS)4}InqY<4*49kqsbRo&fq(My zo#WNW78CV(XqXH&?+VI1@av<0CYDvew_>GgzcMzpYs>gaV*N^N|0^flsuoz*$z`o6 z8(CxmZxo-dZ#XzP(A92%E4z_dC_9r!sc~h$9G{fE<5Bh2laYk203@)@Y_5q*_-N__Yb(_5n!!Pz9z6Ql-3AA;+p*YXkD0$Ym)@XDVN_ zs>qwe(t1_Gi(yX7T?!k;K`#Ar-wR`7b$@?F4sm9$Dfy~BJ~m=2scG{~_x9G-1{$52 zZ%Jb-^qMCt%s;^GjN~+m5}dmw^N(wuP(qbCS_AKO-q-um`z%ujo-xOGy7>tD=Z^V@X@%eGEHSMA;%k~KuN!`0sWM3BQNdpd4efec zn^s&cj;hnxt%4nANIv>R6+RNC9z<*(x0o5bD^aKOB$V2lcN9wF_ZLsEPKNl zJx6=MmhSR*b3e9Ise4sZ)J0H(#|ATi`0^|ac4yY}EWx>aancQKg#xw&KdIGH^EVgc zke~NvukeB`l~T4piyvG$>gQM_gWp+|cf{1S8vj__!T$=eMlZYJAJN>8pZ6LfY4MD1 zrh>bgOu*}|7T^6(BW8B1X%Xnm;p^={D_w7GrGEb4invE6OV@7|` z)l8{HeHuX8rMC>kjNKy$ZyQl?cI6Sk9zWdM_&PuU3%JKWx*6U?H;IfTX80sg4~Zm1 z8m}00TTE2(cXMbwm4ZF*%R6vBAKdieC0L>p){K+eYhxlkf)9|&xi~8JcVh0Xu*9}p zTYR{mYHZ)Mn)v<4kH6ma!n@B`ye|*pEu$Ly<`E@ZN!bL4#Bu1_4b%ZqCycdw#Jb?feJeKvV1JshN$n%-vaKfhv!(35D41^pg|xv2 zPY!#9UeS!44kd1|3R^_%zBo-$L)BwlrYQ_I0%s&^YmtIo6YJ5aR zni;<^4L~HR$fLYB zVJ!=OQBRN`;wUbT7~B8X%AuIr{ksuUd?81tB0@-{D_bK67O+L8pst$q{R|y*fDoZJ zNIy9#iEei(qH5N)w#AwFpAEcaAS;wRUgHG)%esB@5fz@Nh8q?aw`{xFRW*z&26o(f zZ8<_HN7bRga;oZwO<3HB4sZ!JS-!r`21jrxbf+<$r%P$7ePdkl!`$Z4qen?eN$wpi zRa~}6_YV92eiK3x^#KhBQ`pphRD`xAX2y|8!h}1Mvm`K#^lAV0Raf9SH{d-#;)(cT z84!+bK@P;t#69277k9@ME)*iE^py3vjkh*bN`?TNp$$J!zp(%58OLZQBh6+86A(+MskoBsS1ON|T`NqX&mw zXYR?i@zG6hE^sWIA&HPy6fj~?pX%WMp<&Q&;y1r~Jvdxk4CDv9mCY-a%Dt_Cc(vAn zY8#WV<{V&hcj;UUNknC_A&Ww(J06Ew!0kfdPmllB>sWLm4Nf65>AMZ3*C}_F5 z;#4m`R9?wkeVRS$h&-C=Q8UqIi=f)CVzw$mTLEA45I(6gXVb%6eRC+i_f zu~|zz+H)t2#T7_OQ_wZl&Wc{*yGZ0KrIE%36!t?)Gp?<$!KcfSvVn^#M;G)7^+&P` z`C(fKw2>=zw!i1qhTGB<@qvA7eERO~8X|t{(h1Caw3jxId zH$TsdoIpD}A>G2n{e4flvGzB}gV~wqOiUa@xiA>@^T(}~sfk|^OyH|Q~_s0F3w z+FWtw9r!4M+6Cm>ZbaKbPkJ(F&VVMJ+R^KCNG75ojee(5hYV5X;on6YqTREcmH6G`SLMMLA0;nzbV%m zBcJkfnMtJFp6^N7ZCV9_Y^nzrXdTxu=%%X5QN5QfM|~;x4%pgHpfhA6C!);c-#)`X z-vQzF^0fE3cGhbjTlkV@W^Zuu#z4UU8b$-Ui0Y%q(hR7cAy0wf0ir~Lr2D#f3 zS>=WY${k&e@AGIdH+=c>g{9?idl=K*yLaE%+kc`BF{4N%yttf(b+QYoO{h7<{%76s zdf|$kG|^wq{jZ5=HF3$nxQYHh)lR!_xcpyAqB%pEfB)BGG=p2eeD;6RLH~JNs_@SL zlbxvecdO1dcW+5WEk|&9C}sH(%Y60z z2z)j1**~i%3hl~S3Ry8nJp&KQJwM3^g_sZTgx;ch1(&822nByEJLXo5g-JHeTMDXi zd8UGvz2!!-uGx(&ox=bJEPSOf13moF@`2{p$=cg8^4HP;Y|%{G*KC^t6BDMxHxGf< zDMOK1*@l1v_t-zWzx@19;~B_7H~-BAxMlpF3ux$j+{SSel3yw#>^OaFsGf3 zUkPpuU2G7z8+vh|Kj3;wnEe9#=@P%7Cie`c8A?24m-a6y)U3S9m~o7l%#58#HlJ&U zyPpt7i2pcPtPgP5eVg?84pUH2I=N7TUjEd zZdp2JEmWZ3k1Mwa$>!@PKh-u?DxRo&mI2voV}`1o?|PE2$_3WPH_l&-2Gxune{1R8 z_aMd8_*E6U)>6YzE-H_EcF+y9=$Zv3f8GAOE;eGI-?gV!x0aJN7OnND=xk5QAT&C{ z9^A-6O*?a!`K$1pOt2lgp*LTGLRMq7j)mlmX&;-i=@6zRQO;&3^(K2N)NAXxrPVwG z_uML9;Ov?3SI)NZ>RwQrd5;Yn^pLwIX=dTa>(HvUzN~Xeb!2!r_|&b?+}VoAEa&;5 zuUgu`ZNemMq>>LK&??VyMReaM`~K-9&AI{%HC&2>)@wsVtp<}k)GwBRoxJVAER zRBp!47c58mmQ4WvdN|3Y(O>IRu`PzUTqmhfg1UhbUoCM<3muwOsju43SS6V5JJXgO zmCi+HN?Q>v#=OglBcU9O^fKVm@MAk+EtU-BO!NFCebG@R}cS$bq6M^9z z`FkYh_E~@ga2Ii;BmN?h2bH3egwWeHp&bll+CHl^?KAn&16^N|%<3meMtBSOUi_=} z&XF@eMeA&bqumL6-;jI6rH^qn6*WTd?A*9^o}^7i@K=MY;>)zA&l+?FG&^I`d{fnL zclg!GEy0p-rnP*9jP}Hwh%jl3i2Tfbrkf8#C1VNQ-z%a8e-=S+v|WD3j@qJo-|nIr zz86yU4V?EZlf`0v$_KIU11K8X*zc2Xw0Hez0c9w`(ItEYO^kTUQ0wz9y?FR!c*q)( z+UQ2)e5I5uFtL)~up#;E(lkMW4R+1uV7K5|Hq+AV3w8SeX>{YHsl=df(jjB*)lIL< zfewHid*Q+?Iv2CHqeNTo>237GcPSBO=dY^9-b{xfKUBSze?pM0luh`u^C!is5csoy3x%k0Fqda^Zr4xgeEL?i9z8ms)ddw-)aC zLZUqumrN6G%VmzcG8ZZ2B;E{Sli%MQ9v+E!vcEH);b3aPfI3a10!FPjhNxs6w|S$x zA{^#8!t_OkS+pb*@~G-&4%~8dHvXz#4_j1eM|u4hlM=}fICw2GbzH&0Ti_rO<`B<` zBMq<_LV|yts-g`}+)3=~y-f4fsu$ia!j<<7*X4LuS`P&i?y|2xv3;7JeIRFx719_K znUk5b>QJ~Q=-wMgcrSs1>@5{ZXm16I29|4xdFkW6#T-XU^sw2TWVzU#PK1^T;#y2h zW9R?MS&+DhHmQQdd_)j-4BnhX@Jv-sE>254Xr*n`+wLTEl3O}9B#k2Ao=ey4*#^Za zGV$tPLtWF^Q_(!AeonOhVi0>1V?=ww6nIAukmVc$V&40#+2OIfm9ISt;%QW(Y1|#eQ-R*SM74AnFRxe2pCq2%nn(X)U<8nFVBGQ~ z+@=Q>0;QLp)?_HB%IY`u=uH*{I6EO=+&z|4v4j|@>q?-Qk0NDTrgD6adA@qeJcZ^m z<@feGnv0kNUvlo%pZ{c4F;ih2YjH0!)Cj^DSi5{+saz^6dPet5q}z9m2<8sSASC|M zU8iq2qO8gKDHq`sr4~k3DNj5?= zSSoZBcAVaNjR!4Y913l~U&o$b!xBhS(l2vq+`PDtQ{htb*)C2d+*s5i^pLdZ*`II* zBxm<@W>uppu);Iro;jit6Y1zVbB(0R^hXpQ25^OwHHi>4ja+ zNu}S^+^AvYzJ2QSSx7Vl-FpCkN6u-HDVMeS#OOdY5_#WtIUW^zp`rMVjCo&mRF@8d z>|`=Xrw&Ekc0XUgiprnl`e{VBN5_+PVfOiW=K@wi5+21KR2x5$El?z{q;Sat@%n5y zKewL}*ITYTvx{$Lx4O)OXbK>Hi0%X2VmxxCQ9bV!x8WAEk`VCtEKAbJG;S{I;Iu?0LlPY3j=3&TjD<$zFXWB7Cro?U z(R2I5KVm3__OoC8OZ#JsN3}8ZYD%$B-I1vd3L`NfU{aDSLGAq9w(!10AM*}|GoFm> z;y6p>S2Hb^j<>1F&>7#nQRiRB0&Y{xkWp|TYYZPtW!FQ5q}i0bV>9{1%t49{!~kiE z>U;_Hjn43Ka_7$JGXryx z>jyiPDXH0ufLXmu(!i3homqd6JsDWY3|W9F@-RU5J$G4zSO#!)Kc*zpNBw0k=aDyW z6zOx6!sXw{Uo9cTL^i2pAB_m@K~GIEDy#GTUF^GLIr|jj3s|t)-fW(I_$oQ8(vO>c zzLQDauOaE!(sX)op+{;QJuWsUGW&ggAq)Jk5kYqC-$CSL(wk?e3Pwo*BDiq7U23Nu z?gx7NVk}>5+m=o}Q;5HOxp`>v<(y~UPc81w*53t;Nr>e)Gk>yNeS26_)uZUgn#nbv zyTsh8A{{$!^el{az*Y;sQ0$ETY+?+MMM1c~=blxGYku)S1lFHVbX@QgH|oA^aCc1H zh-Y1vloltAi{xOL5$SS^@q8xzvkM`zDGq(%sJm=p#aFhsuAB0D>Xaj1h2Crol)BO& z!e!ro&~dzI#h>#^O6q=)t<$O34&zyyyQ}RFV(lUVc$r7%>0h_jOuVQLfH%M4cz^%h z{cjl)K3Ag|=ozBeCx19|k(r}6UvuKY>uoRJbeS#{Y=+pa<1f=!XrrBdt3)o`xNzJ{&Iy#Nv~W1|A?WbIhw&j5+&8A;@z1!OtLZ;_4i$r>xB`^zPjC$8 zMod?Wnc$FdJ4aKiX3qi%id@yPa&B-LEKsJzU1k3=zPQw+RCf!e7BDC-DCN=_%B`5C z7Q5c$HC&iU$+u)h0H;Q_1Wk8*3+mRm;(jVBpKdinDFS?}%0AKhC=-^pbv_#{L4oh^ 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 literal 0 HcmV?d00001 diff --git a/docs/orleans/deployment/media/items-in-shopping-cart-page.png b/docs/orleans/deployment/media/items-in-shopping-cart-page.png new file mode 100644 index 0000000000000000000000000000000000000000..a8e4d3978bad37f0b5f35e6d6e413e17c9dce088 GIT binary patch literal 441147 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�o}spdDPwIn#DKC^kPsu?C2qK&oTqJf?4Qq8?5Pj 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

iu&zq_Q;F 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⋘7lNWuH6=YK z%fP4e?AbG*6a%7CXyL>cc$BjpkT>xc>zu45zRFFa)nUg~pfM#dofWXocEt|=K(P@Y z{@iT!T?`f$7MP~NUt{oQIjlt3l0(#J7D$Y!tux;WU?yW&XV+#rw2@DreAQ+nIMH*N zI$dLnJF{#>hE4;J83NVtTi8u^e8R_V6+32P7>uSAI+ z!AKu8>2}HEd+cX+Y2WXRp8P{oCu^}tP$>Pe*Nxukfy}kM%yHo6>?!i#*Ldd!f7(ec zhl(eS3rv;>2jYFt_kg^zwU0r{w@iCDT>lqRcBo-h(*W>ZE?O{@;f6`KFzG=;Ey2cB z!Jgq$s#ZKn1CarH6Y2K;cUQ_9Z2-RPOk%{t)_6$)3@0lq%Umktbwmvo@A=woV4pgj zP@_wOn(7Mx@c#EqYld9`R@BhAQjcgz*eDj(Iao#H8x5>HoSYDX^-^#m-E=cgF2hCS z%Qma7l*yLEmTFr*yHB5l1~!H=gj_C#ChcM*Z@MHc92}CkqZN%+SY~VOi64+J!G$-- z#oDF0TIu?Bf`S=Ov)-Ny12rP}v^dC+V37^(P%MfAxCUa{^8k*O8qk(KWN9i01wB) z!8ysJx_u8e$+3srj0hMFVoMc249Eno3RD0GQ8)5*e+i`*1)~-)O_}z z>(~X^e-E=zS=xB|?EQjCJ6QQ^ZRIfFXvX~0ecQ=Q zg())b2mEQcDa}W&)Y+4N_!%0*haV#Z&z zSaV*Bog1jc>^6$s99;~oS1tUrucx8@ZOqB=FxWmQYpz6RzZrVPPS>%}Ji zPj7#tirtKc=*Ft%=;qg{%S*Lz8Q3zu$}$=D*xEl}%zO#L&Z02*b+M7urTf<|l@I<+ zWdc{E!*ov-JuGmyaYj4g^8}4nI-TMYVSX{s>%okgRV904N&crWKwk+6d7p0R}^13NKelkc$`9_f8bsf9CPZD2yd+*E>2I3xGaS1u!EKiPGka`(N<=tlDS|8LgVu=dPl0CgbW20PVMYq~oo-a# zYTz z<~pJL7c4Q9~NHT28Kd z+iwJ|m=0ZY?_qHx!~<5YUQWT{zUR4Nz3!P_I9|Bap}cd8vAOTLAs;g{*T)o}TVDNL_sXg# zNWi2~hikGXH-JPl;gg@dss4v;)m-`*Q{_wj3kz6)BczZxWt0hpEYlUlOd;_txKDd3 z6;6Eeyt`_Mt*+s^{RK1@J5+yEjPG6mX74G`mU*|lGVIPSd`d1@<*_Jo2lg+$ubfBQ z`uQka@|;}Fu!Zj3zv=aY7k`!;KYRm3S?wtC6q)a zruUFBsJR{yCMF@ZlkCO$>G-xA_#YUOg*nX%&_W<09HHw8KQ@@%&i*hYTuKAPDxrwr z%r0#FRN3S3w`$$!(4SFU4T2Z^{HleEjHx5YG$)fHP^C_2gr6sl+KUH3IcpO--NC;BuW?y6#~n1*8yo;zq$(Ths7L1mmW`y_mmLfkJH4Rqr2~0=V1F z6Ey)c1VU`>Vx}IWPs?M-=daW`5cHZBCE@4Gp{tUF>DGn)LMV|4sxX`s%=Ub4j)}vs zQSDSS(c{eYQOebK8Dr4l1|m4eaZvj0 z-R5VgSBf=B!6=qKlpE|y#+ zLB}e6M7|2{Kjx=0cKPo;1&A>hABf7q@&>WzR~)cz%~rab&qKxK`xX{9agO>Ux+0r0 z-7)*j7-?B)9cuIg?w*N1h~95zh9vmdzPu=#_N?|ku>!1LWkCq;v93#KXB9n2^~u*R zMM8*PXNu20(jWkWj7kT$=({@_l&SHVW3N;1?!RMrz~s_B#gS2w9}Yw0%~!377PnmW z1>DdUb2idDF>;A(<9!ui(~12%^Gt+n1`0OdnwEK(go%8U_Wygz|$rp-OyY z5xJG>U-URMnF*9OqabV_RtZUs1fWZ!E{wf6ya6u3{}!;!Z{@Y!3T$@864x1r6k=*N zLBu4w)n?J_41y@b%SI=5iYClfiv(dHyede$G9Ck_=>L6+URpi_yvStxWjiTAtFD1m zrq*-aowt=v7e@W4eG%L`aK*3OQn>YBG>ZsAkV6`>R2s+g;ibT;^~Nw2@MwjLy>*00 zK~&uwHl>p=6ZX)Ks@3>;7$ixX;6yl=88j<#pccdJ^Ybd$Q**xK`59NL7lC*IWy@y< zcXw=FXSIec;{FK+5+kRlSWX00`z8ApO@D1TJ__+jdt1f2+xLFV<}#lr(lI!G3>LM| z=phZLWwf=we%nF2H zG#Yjk{L!yH$DnE?adwvU-Mc5s445j1VXH#@J!6N?t+gK- zs$=zoWbaeK1*L!hDpnVS;q~UGs$JXpSvij+?*OQeQ;+X;H{?T7fy=ppYeiFSw!`@C zxhocSEKR7KJ`tQPm-)}kyyAlxp%b)e{{+7yrV#c9_Av|$ZB!r=?)UIP>osUj5>GYo zAiXjmqjdLLjme|%+vWJe^vY%BQbTRNDa=n`P#^8Xs(z#vPuKNtPi!X=mnF)jkKKEz z|5ppZxaI85$jhnBuzJTnb5(1jN=xj@bL*ON$6Bz8&16 zG*A=JksD>iAglTI8k*Qgy7R+j8I}0WG%`*i>*=z0a8Z#hYcgt8npmkeISqa1d0a}Z z+p}&_cyh%5KS;#~G>Y8*K|tL|@Z>U6djTKYFPFKyj=sn(GAD+xeN=U3ZXCDEn5{L3EY9$+tsJ#j(vMTc`4v??kjwyzQ5Nz5<$pG<8ix+DWNhGR+{%kF&Eqw ziY9WX0H3`Okdl#7Q0QS)tx_8zr)xKVKUi#@Y4Luxt#usGQfYF0D{Q%MXXLevD&ROL zCz5G2*Tq4pOoAfEnrmdQ&dF7QShaE(l!fADH#0k(-uK;u{d_k2h6fp07VM%Ns8vWY z>vQ=I;cvl$FL}Se^kB<+2$*?Ki{3qSlFX+4X16qZ?Lk5uqtL;xV;pm))u{*jiZBs046OWVAN(#A4w_E%lUlsh^dx$VeT@`%aTn2N zeEyL-z*~b3C6C0xh268YMe={xXc>ET=&BH>e_?*kKkzZLHr$aVB;*ciKtfB3nWcguz0POb|?N z1aJOyNVFY=1$11z6$2|JLy9Hd{cEHGKH!Xd0_3urrxU}ER-`nb8A|dH6FZkk#piE7 zg84JSfswermbmN26X`}Au>BrR??5~Sj!JJ{9UiU3TU!5GKo(BSPdqzxPQfo-InuKy z6s%6(=mzNluf5H+XtzEg~c+r19?0#@00r4^Bg`{hjy zg8O2vZXh#dN*#$;D;SHimfeQPEo^ZSVBYM75$o3a@B{g|gjxYEKD%vBt<~&|3ur@? zD>ce{hC;n6J}*7`7^N)L#Lg}<%r0!=l_Vuse1|(lKCVqE2|1m;8hI2PPaP z!e9a$O1!YguyA@qd!D1IU-tY)e%qEJIkeFP(la!Xw04ssS2FRy+xv*DR0Ia;WTpp_ z&%O3Q$?L@X-P8b$|G3V%?}pM8{%hnc)?N{xLUNd=*=}5O)w7Fv0v^0ee~Q0QU;s(f ztqVD0cIFQ38&eq5q1@e-Od-KELygklC(UJD-%_|Pi;#O$ETY3Db_|Qj> zpH$8~=`(3@AD8$ZYtH1sRCw(sBAzy}x%TN(K5yc-u=qax!~p%GW8X)CZbWpoutx>Y z6Vp(s&rfMk=2T$&ufKiM_q^p8Ir&L7Qi_!DlZH3b0-I@MP*H%@Y4MwHz(opo_U84~ z+&ar1tnsBg0xxqDvW=vjXGp?^OAsYL&S$y)2YS$c?+;*HFv*+SS*5?U*T%tm1Hv9% z%)vq{F(Tt0U+90y$E=#Q84XGqu6PTDJx;lAZ{L;}Ri~R(N~PyJ9n8QJ=$Bu$oe@76 zx{UAEjlbx!a_abPiYP+ApPtei->f*l;1!i63AITM(uNq|+DETX={uQ&F#VC6Q|nZw z#7d$(%_^}Tc-P&nq}foqdx=pkk+}i?IjjO})PdjoYLw=nVYO~}*ro$&z|5(1g7p}* zo(44^G}&KWd{2w_6rOqpC^V&}4eNzFXzjO#NAl zwYq|PB$7ra=-|ur|5FmlW!j&AwwfmpnE!l6;#^SgcdYEvgvcNu^`__UT)3LIKCw&dW6v%t`Oa9;97C zCo>P1cUF1QxL=2_72+&es(CqnB)B%HL8UFVX~HiI}t>{&MPutYQih{JUX_c047iS-}9qIt~0Om-M9Oqa8a1(}&Ws1+>SK!+}rB;XK z)-pz#gZyz@0fQO4QhAJsF`^=*7o`y^?_CO_!t9cF%bHVizSG1$myk)P|0H%L5@Qtt zQh`A^O2jJCe0keDo!HjS%WnE=US1o~!6-B=5oMu(4Zig(&az*2pTvDrn6hsk!#7FH zA;EzUHV=?tc~be|Z8Qi#Xlh-Y3M*|K0(pXxcdO3aB0dqYqW4>X+{=K(2zprsU!eQyO+$SRs348G*dtHP2#9`N`e(SFE4MVvPl%KOXH74ct|A? z4Jweg7c{BM7C~4DH3&Qy%fT}f0?JLEpj|f#y-*`j2sKq|UNpj9IuTp{u|UWfYmjeL z{+K$Ho|UMgH_l#_1O-6vZ*CqkCqZm_ICD2@s5*-DmJ^lyUemHd+xb@U-hw+aFci@a z;Q!KZb9P+Fd0#I6k30MB*Ji_J)Yiv}if?lm1$*9=f<@9#h zX@&QR!e0aPr|dsx;q8P9*8Ad!D`% zv627r>u~YMJ-N}yNsH&`{35Wm=1-RJwpIko*ggtOoJKe$=8GBh2RpHbF_q3-@`vQyVkk}25a9q=0B!qeTHW$LRGRbqsN#Zs$BA5We>F);|?13)0MDB zWiJ$&Cnj?c7F#Ag>&-?5GTawCH@{)*ME$NY0`Kx2KRT%Kit;J~WGX|@uxG{WjOv&v z?0=n!-dPtH18B40pgim_OH0pUeD#c5xR(sY$qbGWAwX8juRvZUMh7TSNN5~{#nd*t z+Wqwe2<-xU9}uF%*dZ4L4;xuaHH=n+NE)IaKe^aHpL}ADRB|1PLc`&akdStE21kEu zjLxf;AKjNEtm;X=|3IWHK^P3(9F@sPR2dg#ret7k#`2(L75m@6e+_>B_|80jY)=$| z_JF#FHnOCoGwq({Q&!JO! z-J@+CuzhPxctR7*$dw`P_S2kbgF$Y|`%q|=SdMmaJiTKQtQ)m{$)||Z zfV$s3QYwxfeTpR7J#k$xg*p`TxWI+DaM6iJL`31$s}J*~lwl<1W8Senarx-G)8(6u zw<8=n-?&g`%OngFElI)ryhzrST_o@}N?Z+u3%RV}a}mnMno{TwR&<59uFbrIksP-qwjflSFF&C16o zrKd*(s6_8SO0xd16A_$+?TQlp=VBwiXeXFaCQnV`rQc6BV!DX>mW0(hi8MZoQ^?Hh zpMsA%z0ie6Xhj|zaE9U(HwUONMu6*&sZ;Q0o8Ts{n7xxHLQPfYIbkWIi4pAQbg;L3MmBYGvA zFL;E%x4pgos@0_NV?TEojDL-w47~Q?o>qSkCLDPdVxJ}{ayO@i)8=1%`ux$8Hv3uD zI%s9mkYH*V)C1q^1LIplvPY1}4Rj9!!IoY{V1P#E)0rz{_r7d~)>rB%>^Qa;myK<%Z*Fd7IVq)LE)7+Hl_7%xG+s|E#iG zWc>G=e^FFCr zO#n-JVEx};pK56~+k3jZ{GL)(Ua&QbTuBnex=389qPE6s95P?2H36xGeOo;^HKwY0d)u6G^~E=G1;B zz-gGZa@wc^1Q8$6oEpQ3vD^CB)(CPiNGK`SyX~1Ga*-ylP&YP-w+{CUKxiHKE?|2k z<}#umTE-Igh_RAAVy2u41n@0r(weDs7 zL2)IzJl!)}BsdHAkEm|9B)e=v81?@{zv(t*J^% zkTLjE+4p?4O!V-dkPG-ul!b+Dzr^p)Pst*h|IQkq2Rk3_OeWsR^j$#t>+?YpS)tKtw#|1{L>~PO#ZaAMS_O@D@SnHBKO={ZSKgdyMt^h7k zFa!xC(3|?%eQN)A;Atz6;qbd59*Bn-`+6IXr!HLf`E|@|H_pXeL842}7T7R-EcYmi2Ss@2T?#Q@di*{#* z;Mt}pY+eDn1?hhdhT!8vs$`rh@sX3?(!eO#NmlWWo+l9g+Y^f&Emx(){c$}k(ya15 zERuZ?h#WI*wdyx#@RV4XiJ)Niu5D5(((PW^`Ib>iq?Zm-gyLWimb;A&BE3c*!nfjv zE&hK|swXrp^g25YGNxa(DCiVKfj+izn_A}NK?~c?g7_0YqGF&f1tln7lLmow46F|< z5`W`AfZXC<5SIaX)QV^fdKd;Al(Aige=r+OQen7g5LvG7R3#3Vma0@&fb<-YJDWJ{ zy_gDyEM#pLsJBl#o&3TH=y)pX5fsQiWMePLlVM3Jy%jtJs@p;4axeJ$&)UY_B*aG; z3$d0!nW40?Sw5S*HzFr7Rk;{x0_{fkpm1FyGJ&B04f<7M#qKpF@bTI??r z4`4$L1N>+IXh-$~QjU)`pq4u5S=*n4Vu9{W*M58ZTgCo2j+TEr(jZU`P_w4K2aT<8?JE?Y~UyA0PDnG4T%C4^^vOic;5uhAXSPRpR#kceVCPE~?|-DsP)E z)L9i?#v1jK3|${Kg=e{>Jvbqh=+tF6@9~LNxGgM~9%bKLemGHFx}^KU#7Ig)VzQrJ zD|V&x>Zmv3*@EXG+7>HeRAm%rc8(#l=KW^2( z3h3Ge6CrjeZswz*eUmS|;?aLN5-T(3l_R8R!l+}-Lvd^L_t$Mr@}BN+(A43ovnD^r zL;`lQa9pRw&l$c zH6Xgl?E!*#$<`OK5(iSN!hqf(T7W{_BWW;Ik+jt<&G^1HU8+$CQiKGdQ)3rzMij&EC6o^3p&PM0AyZR-Dt?x2CmXt`IC~Y&oOLm!@ zo02J>T+{Ji*YP^!sCOAGt;c^t)7xATbG?c1cegF3(=Y6R5-y4iXi$1L$!&_V0{{#nduY!TGP$w9yF>~aA;tZma{m3fun;W> zB;v+flHT7i-3jkbmAF0|gO1x3d=z6)nd6&BPvtaPp}Pq9m~p<)xm|6IM-(~8+B4e-y^zCMSv6(2+YX`FSC2nUU3ijWkqW0!5__FU#WgXgg=IZyK5W~!3q*1v6 z!s2?Jz0NCntLZRP@m+O~47VZDA^d0J{M{y+Ux{F@>3U)cmzY-KB<Ze1~`P*OyX z=%&q=3Vnq-!?+7$;+oOeHgrcw^M-LCYP$fY5s(utw*#63sWes$j z=NfRDW9hOj6R&Pj29@&{5lN_egFYDwJ`FpOO4jC@ccj)1 z)v0yxe=fT?ui8#j!MJy4YcG)T%f5D<^_Zcz0pqv;Zp*>|#Ig^(;5@x;aMCwd{r$VS zrjBMUcDx?EQjaJhPWJE$?=n(yaynJ~cWB{|{MyC1=J>1!dz;4Y`Rd?8V1{1 zTS0yHpF=0h*HnL|#C;*5^w=_PDHGoWh5YwOUiob{e-yK}vP%bzVB@dL0xMBu@F5Wc z{GBqb8msmnBsv>i3xUm70Tn+AgiRBB=&PiB0Z_MgDO^6E_WXBSsyeC?7Bnyc2{jao z7e+I3zalse7{ z=40m^IDoD3l5Sl$qiex+s>NLc*ty`Nf49K{+%;c2Uu>A5MN&Ukkadai+ghBABv$ zA~A^-8+PAbyg9w(8UA4K*{FQttDp_vLiu)@Es$Cp8X6KrqLz499~eS{-L2BdQ z`TM>@+$VSC$wN1#`=xI=!lgeRCCU zHV}X6DEp7R5?5ZmQYiQ-i2%W z6hDe5`1;_M2b;=24Zf((nQT*=zBWZk@n}>pHVL2R}-lilM>%g{Hc_hRK5kA7QnVa%`P>6DqVgT6 zBY(m|F-sa89M8ui#Fplu=Ye&`=Wej64(8M$Je!O44X#LN_ z?4FCt0$ixA$U0ABF%7+Ue=#!?g1CJicy&Vq1d@-%Jr#(`R+GV*94SL#UIK~(b8BfL zWnA`Un%Ui-eFrGsBTyz}?jmcz9OzEC$ogj4qt$42JrxJ>Z;upoMm6$)B4K<0$>QSo z;lWq{-uG@hCw5&y<(NwFWj;Q%`Fj-b zErVTkR=G{wE+&a{#Pd66?#>&i4%2Hxb!y zd^>6pglBpiWxh{_v@^v8mpZ#X_(cSLH=0v+Z6u_gCS!3dL=tDfG9$9%Z~M2@-pkha zYJ6HyDMwujm4UI)TKMg`SdU8tGt8jfm6(fCq96D{;)7P!cFTbwm)~KbCIVX8T~uw| zU+K_(Kt?vi2nH96>mB!>uZe96SrCP@>%H{%BHqG^@q{Q0x>QbHKB1o{TzikaSp8U`S$=R1C+7qE9Kyfm zkm0${7E@ZfK?hugLP3cprFb?OX5l?N7>)yD^&E4s{5UHgOpSu62a`p`;3g@q?0vHn zqlxnE=j9e5dzslB*~KSJ$4Vj>d)vC5m#W4&lWBhq|D~&Fu0NuM#A}<>{#h7swU~?+ zo5Tf`acfRyi<5EW=^S04RU?fgn-+rH$?f*+caTTWx1=>a1yN;?8up2Vba~m?Kan{S z#LqDo#KB^B+B7Lyd5v3;isQSs=stDi$VWxcn^p61~o`HJ!WueYWQwW22u-YI|9Ab1@stng0qIK<3Kkt1riIXvAE$A zc6INOFIIh=oUrA)4cxQLbiy8d7J^2i11mR3fG=C{o;Hj&Xz4$mj;(gw^|0D310~Fs zW$pfG)5h({Gz6)fu`hUdq#F%P4}Z^VKwWlzk&E3-mRE2~zRDq)u&Z5gLsi^Hc)|6m@Ll#k zk|?Qhhe?t~p(+X!uGeaSHaIYM3a_b1*V=r~4J^JExExe6y8kFL?Q?}_2Vg5gR-iEj zLL)M*UinLW$@Znw{zj-n$L@;t!OAc)^gD}G)7Wdigxybi@pfU&Hdrh&N7 zUE|H_>|2WYDJR-N{3AAH}XmC4KS-}f!ifa}m z=6R8-rP;|0bPb;!nZy*SgRF|>^O3-CHdbWP^TX7s*_SJA7-9Mq@Irrqe3W|N1<-hS zV7DA0JwUdxQCO#EctwFl+j?s4$0FWyj5{cGfIHt<4sY+Axnxd;lGaDfv4@YVe30ZN z1^nd75u4)GXb6?nv}$v_jC&TEpyek^J?qq(waemin4{L!z=)U};PIeP++Z=))DQ>o zb7x+;EbbdalDO=6XgtA{?*W7;;2SLTFm%V+P5u32#|9AoH%yWdNe72qVfEfw%|$jj z6?3C@Q>2Z4M2=YS-Sxie(@TTTjywv9_NujdeMB<(S|*YG)U>Qbsh%R3Eb7u~o&i*# z^Kf+vHfHGB0k1tJ)&AnL2y(*_qVqI_5qCXZgq@$ASA!Tm}5 zwLCVJ@XxmwzYmQ(WnkMow6^QISiK}*efRwB%>*oZ_6*ju`%1M?Y3U02NzbXgs`FbQ?9{o}2`&M@Eyq2OCPe@Jh5OBa=$3x-T&4t`Z#X@ z%Ql?`NjYmBgpT5tkRMU2NeRLGw|L(KHyc zp6yfkp`0ea?{7{Xw3dWGq`BOQs@CF@0DthzGV%cP?u!;P)Qoxu3lEQXR_SlfS5QF@ z)q~GC`on~cfGxj1xa&U4G_e_W=d7&sRNIuMmYb8j8*Hzi!dD6sNMRolI{l#$o9UNX zltzm2EgEnSIZ{Qs`MRuQAhFQ5>^Bq_<&%heIThN3ZzG8e>-N$W;sel1~N4$aBGV+%&mer6=#tuzPvB? zV8QqC@d3j@K;Gl;9xz85dSHrXj@&xjEu3{JN43AL`hOlew*Q*^LtsT~J5>`&1qk(e z#%4{rMRdjjTu_r$62v|TYHtT8I`=)uSs385&EI438Aai}WVrSat}V=h(*_ms(- z#HM}ijQoAO!rfXj!QT}bau1fHF5 zyDm>r+CfHn7yq==Y8x;OE?WyeP<{+-T5H$p{M7B_~Uaby6JRkNW)#zE;B04h}ac@c-LDL=y=IA z$=+d~T}*{Kdqa^ogKU%UKi#jx@%b!;BQ4Twj)0FCI?qIQL3%z$^RshIn&evs5 zXfXA4$xO6N^WEp*N3wXA;t1@I+uz(ke%zUY+H_=kpd`SOzG{}wuT|I`2hMCAn z{{hkdZjS$NI%*DGKN;5I-ll0ElZ0Qw5KFrvbP(#6U{;BhvQCD`)Q|qvt+944tVjc{ z8uWE$g?_ameom6qnc*@M!L!A$lSKrBdu_{4ng$I+dyoXQK$*Hs0fIlFdH&7g&iOBJcwP9QHb)MetFg%ZmL8epKtpE zqz!${`m~~nBi{Y?!at7teWja>^D<-LYo@Q+=~)|W##hK5M(rWSm(%y@W<{a3PuR0gjhcS`7QMj# z8rYzz;#|srvAC~V2DI-M7iESN!ly5$4PBq^PCGt9N~(f9wjEc1OkUkFP+cE|7(8zT zr{|yU2pwC#U0w4rMq_`!UJ_h&<|j27=%6~&ah!xc{J@Nq zVWBo&1S<1qRtGM4z%8$Q&R(CGZ0Vl>oOa6j7 z#Nb61?#AWMx+y???v1QVd7RxQ_A|X5vC0~77bf2(d^a`X8`X<+{oLtj$oeTJ2jrT* z{@yL^ReO1A!gafa1=q`?tEK({C+4H;b{@II`GfX>lXj1=B~g_6`@gvNJF%Th$G#W; zb)TnP{uk-L);Rz8wjNIgw~xn^#KZ2x;$dm6?n2uVy>c8BNULzA2;}+nht_>|3$|gz zN&29#MVtKpYws(=qWrpkX+}T+LAr*JF6o9L1qli1P*RW_y1P>lq?J-yy1Q!-P`YdA zp*zm)Kc4qG*Ll94Z!ceF$opny?X}lh`xiS=e8+5zk+cE>r6`?T-6Yakqj0@V<0k=^;){OQRopI=F#?8gyqM2qkh@vC0Af&gZhM z&yYDJ(EztNGXP^;nqGI*ap8mX9$ollLM4IXZnqezdIFsEn`+kbJh}a0w(qV0b1*W$ z(!$~gW_+DGzgg=Nf7fCFnj7b^bh8-7o2;f-`G&ldUEL}^5)=?0C>Z{opDgb;#@wWB zUXH;fYYOB&>UiJ)PABNY^0}F%M<~uBm2)d!KYy=b7z8i=SNfJ`)R#G0^_TRh{Zf|6 zY8V{Nb-)Z0=K|LW5P@72JR*aD)J+ZiOZb3u8NjF5OMX)8xOq>y2>^0e>6Kl%C75Jiqg& zoGWKkBB(oQKA|qH!TuV8ojLTE#pRn~Ws06W-5pm0Y`6WCC;00%8N4xoaR49ZF)2H=poELm%ESdp|T^fN^SN_y;qpY-b{wigJldn zd*pJ}zP?>({#ga%pvS#cuT7ML*M_*3CL59^H z)N<^2i3NiKk|0fcC*MO$S`+1UAfSil1$K zzaiJ6l57Fs7%1fIinN%q90M$pY1o3_N@kgBMlui)S=1l(rZ=2T>d)UPMkGZ78h0P7 zWl30am`s5E9KhECrzlB740(hkiA^+G&7@>3`QfJ89+_~Vw$rEwB8I#<7h5Ukz!kLy z3B_oB!2cx6$CH}+u3w%6P%a~X3_{5lzDeuYBrApfNDgW6*t977;j{Y&0)7-?w$y6r zzF(6F07D6TPLo&(qtHFQJVDa3K6U|XVX}uW*<*V?@5}?3JTfYal&5layBZmn^rBW3Jwlr@Y)QN@sKYL7C)3`I;WNooLX=t{N)a0|1m(x$N}LsrBf=`#;xQFO zrVGAM@Dk3x6kabFsHIH^S+B!h?%E;&Ev;^{BjBBO(6FYGhx3P>1)%4EvgPNJM0;;c zy2rWvjZX8mTpWVWe~f5n+Z`enwL{hx zDea**l=c{tGb_>XfI}brrbzpTtoyR1roTo?fe|7Y86CAn4e)W ztw7p%6Rm9et1wW8I&Udd5p(ic{4dkkLp`;jH(6d>sWerja+YkGmM>kf>DZpDZts$t zd0L0=%%d1?Jbj;5|8g6)#$yLc;{xiajIUqc0wUvA0&R!(j})I(=4TECbYmI#r&?)8 zl+j}vxd&K`ug5kWw6CYpI0Q8E5hZR6d3~vwL}OXLLdDc+vETy+8DAn_aq_!wuM1g^ zM0>wYkkl*sO{f&B2^{QJ&yl8NiJ_SR!QZl&r^eLC#T)%oSFVCkqj+TEx4x8Rs1A`~ zixAt?YjV?h(>fFz963F?g6CG$qTQ?S6bmWbb{2jg+ty45_q@=n1C-!Cr)HRKMAne7 z*NsY%KS;)&+65Xa2)eC^etMU%FokI6rBy6SX;p;S`o<2ufL~Ki z9nTJ|X{KxcZMc}G>K4$ZBpk& zVuCqGJ4ZKql6qd|&Xvk}%ZI`;zwKoRMPIk$tKv`fl&gbcaiB&15X3)&@5QE{J1AcK zbwW^acqiKj%3D7#OyrCC8^5ZHO{rwV3qU7113KDbzdI!+c7tN#-+_dRbDkNc5Kqe- zLBsHAkd{7yVW>!lVaDmxU0jAHgX^t43o}DyhUPj`GK85!b~3q=4jbpu(*iR*R;ghV zQWLJAnW?OU?KAd^#j1@s=*r(l~fCRhH^~8ks zqm`lCt89!@Mm}oK&O^91=L@PsxGK_J2B-HmONH*4`zbt3^awK2(MH03?Vj?4^hV;# zm?}w@hif~hcYO#(yVLq_!Ou58F`GubB4lU*v!JIDh-5P@#XpZoQqJL<9^zN_q8yCx z($rt?Jprpt@ddR1`bDU>8-XNF6=!O2+{nf#iA9QTOPvCpmMPnIq zSX9pF_@b7ft1f9yzm4P{_^y)P=oP^|6CRmF%8&mh`R#|1jx4pM|y)y z-^1`szqdpMt^u0ROhX@WeV3)@9s7Kf9M_G0$|cN5;?t)_Kyv90C&z%H(66cbi+jv1 zRn;~0dOR+ex-Nn7TE${e(lDpdCZLltUvG)4Xw$of&)IUz&S4-rI#w6w;CMirvI*BA zFHzH?!wAyy{sH(ln(llYOfGq>O`2?j(}!xUuhEoNNmfx;tcHF*Mv9pO@X_F#J-|8$E;!O@UQ-JI3ap z5bFv;lRGwK-)wS#2O}A?ugSU^JCz3d#IGJ1d0v_KYDGL&^ZM@d#dSHjGuR(fG|*A& z=qmdT#hy}ZaI9|Wx!F@jlMmJuYM82&6#dafwItYnh?EE9sG;KddbmX;o4sdVd3bA? zXvTyR*G0If+(RV{7qfc6K68~veH>RgLNw9WD@NX=2-;nnmqxhS388f@- zJB(uTde&_AbZNKv)UWOqA6DR69lLQj4LTw%uSB;XaL#A*bMVXc$mE=>F#pfa>a+H^vdz(rQYK*)ihEd$lyoyzFf!+~2YF|a+RaF)XU z6Yo`~n#rdSNt>9DSa3?+zDMTC^TNwcFoT7|W^_aqQU+YQBJsFIw@)h?)Hsq-wV0$l{^|kv`zq2VY zFpaomG?)7}Vb06K+{c%FHEh{miK2^v_k?q`^>Y!e23EF5QRS+H=ovg(jv-F;R;p+) z!7{KHEyjfkLI_5EE$Mf6CZJP}4({l?=ceUwMQ4>`QSk+gY6XYY7% zKR45GgJG5cJ^X3oeHug!=EXk+E4+%gGF(oF9SsT#YiOKWT3)rao?4z30NRYgIyT(B zJQT6HYPOW-d=`QfTqGr9yDHH2Qqy@iD5)OJzgPgo-5=xU)Sy~sf~W`GM7gQz}WTly)*s6AGx;AWzvq)aV&qkG$Tzl*3XTCU=ual*D6QIsYs zvUKi%)!{A*VOB1-S_%4Aw#qfoh%NC~zWbB*nsFWJRPM*(8MUP(;wvsFkLKn5pulc5 zvQfO4a63=zc3fCG<*Tx!by(QCvOCIga^=J0IAduecb9>?z~H`_IY)^pht%K>RuI7}V^rmRA_zrmTQ%p69I!AT#-KMiZ8=uEQSrc2zSLO{bKhTT^r z5}CxLfRqwICH!a;0{bP?ZRF-q-e(~lt&VWH$q@1h?W2AmEqRJ;s%UiYv!bh#i>z6l;P4h$?pV0Cv0sczIpAQRUl_A;Ign^z z@Huy3cl>o^BL$5fDZfso!Pt(<+m^T1jbV6cCG5I}lr$kS5lrotsof%B&zAFhu;aL& zO{Q+`*y>2!GZpks9bLyty6f4-X#PZ8FzKOd>4HB&awV;tF&52rG}PbF0XEZWMV~=c zQVN>MbR{{Ohu@5^UOXIae*i1iJ&d~ducO}-%hw5v0D_5*Cq(zlxc86c<1$Q&1iEfJ8G;Yp z?Y}zCV}tQV_>75n}whmdDN(V&PgNN&{lIK80%a^Nn88WxV$sznJkv3)CC(%31fXAmlW2>IyDf}(xQ1hkMmba)S;^(n_8{7vr{VcZo69fk2 z@HTtJyaYWj*#}p`D>;OGHq8jTeCXa_b-;Gd9q#9aG785^QS`MHz#wJ$i$)$-L%eyP zuEz$A)$I#z3##Q)@O=B$Xueo7+?B{J^0gxNGAhUGQ&J9t=JvCwrmH328#jE2Nl_(! zzZh(GdJM-*mryN^Qbg`G;q8RqwQ(XGoh7B@aVT5a;~%gUgU5?sWTgz_W*ThB`&6^? zSlHD!(e@8Hmc^I~50R6S6u=I(1!bY9jirLG+MkVS0G2r{a<(F2cvuKj#YfT1y1Kfn zw^tKiss=m;PFUYUQDO-3nvv~iT73Y`GK#ki>cPv5V@I-0AtzZXb%3L>Sohrxf}S7{ zkUdR+8@b2&)E%tFiXb3`IC$%g;Zu@5$Y}6a1dk6cW0o$ng`k@_7k67e9~K%Z!SpV+ zV|s}pOtU+pL3p3DQa1tjK9shjwp-N?3$>{=HOP~{LHPdugh%DRVDrRD%F!^&$3k8^ zXaWn>VN*-O(G|$S-PmzF&q!3?Tg#ablx0qR&4l+S)Zw9cE>H!nkP*W&8Fwk)0f1xV z<&1BTrk?&5eaxQ^ST1n$LZn5-wnf*O*Ua-+nFS;PkXhWoLiiC z^qs@ey^~-xceP%r9HHvJ0s0g{jdtP9Z;I`(?Z2|D+hO|9^ZdL`spJwyy>$f5&b&US zHVCqO&$rfryXkyyI1&}c=JozvkDm!@G@P^*no#=%HG0R5mGwo21l2_qwC1px6K;Cf zh(Dw)cuEm(L*=uzVA|7G<@28lf<=IozKE(Z^}0J5rHt(J`F*5Sp-ZUxSgCbxTgr%~fX z2;7OMD{L46nz}?s_T5aI<;6j|`))rtk5K03#EfE%MZSv0-UcYbfq}=sV*0tm>Mzo0 zY*675Rq(KmuHNSGz{FM#jXSXF*N(?&Cp5$?3a)|Iz-eb1pJQ~Cu8Qd%o@yc*-A49N zeYM2Y!y~n@kQwm1unDS(@NW@+h5QQ5F8E8??q#&Iu#Ucl)-%|ZMFBlW?z&d27mAja zA&-Cj|Kw6!Gtu*?xoOLU~Mf{UV z)zXFK$e{bYt{~)3g=SVsdgms?3>V;km0fAT4+(0n zd`$3#O{ux&^xO5Ruwima%C@t`wBHS7Mc0h%(S%-{ksIEPWZiitCWR^%D7rI?;l9wr#Qwj@`y2IvjSGb@8WzA28X)7pEOB%?SZTh6mBN#wcBHi8N2u~<51DpvG$mWM7 zN1xmp;a~wXDR3Sm$U%ymZ^5*&4gVXv@X#aVykVMds32L~_d)zJGH?h4Eo9O*>FE?` zW_RkjhLE^Ie1$+`N$-{@of##dhoN4Lm86+?>0&9Ww?Sg6)>+vo+!y+o@;GOtfL;H4 zDOjOn)`}#vj~sQ-Gt2K>$afu6;$_|MjdPzm$AdjxjtrrZSjwifyTP?9sN)Zs<%)bv z{OKAOOlr?d{3p$qPwN)ES%EDGtX(lRKTAeUv8da-MrLXq&HZ7nHpq6)^+z@DsO^m% ze59)!oL5ha*Y&C65wetfUNRdyCrae5E1>yYSoL{!1@&n0l*ZxJ#ccmQ;RMeFg@|Wx z{tz}Hxy3XWPtc=e%BI>1kDD_yVLI(VQ~9O!Zhd=Y;TiNmV8t~}ymfU=?wCcQz7@d` zx~0Etzme4HJ2-6q324&B$oaPuY+Tvz&Jn3;pIuyE0z2=&(L->($dNr)H;ic2JnjY$ z!7uzc+j=urzN(fTb!&&+a{RcG*WbGv5}!Q)C^4p49yyyAt<}8}`fe&s_?QoQn-mVC z@*>Vnpg`y-L9>k!oW=x0*Vlq*nY|!kU z(1h>~28esocrpYj9H1BR9=Pgj(qGhsCiSu&dZ8KFP5qWsH*5=qRA@j!7c4XQ;prS@ znvNs$vu`SyK;7|a&aNp&bo8}i1((EVad|83*Dqefe9}**$FEjxUzTsJ_>7Dnqu3Oq zLO4w)dQrae;62qK&5JBU7_~)l=z%1Z3q;Qx{A&W(2((@Nqap}&6(d|~BNmK^mD#5Z z>j)UHUxz0L(#BORnd?5yK*LR~JQWsFB>S@3s4RlSR2kj8ki!m*u5oAIb`?p=lr-cej`Mp5|ea;>d|H`cmSuinu>CnqOK;xME8=!zO;Kpn@kF94X(x{a#O zW9AnSB!nn95tu($$1cq35`_^|f2gou5^n{7*8Icge{{jWjb_N~@_)tm@d2SB@FDNs z1AxnD06^@yATCn-!PIUAB@5{VK)i1x1C~0QMhj_?)9`%A$*+y@{0(!9Yaf2Qh4%TY z6SKzUP;z?+n*8%;kZ#}IpY#})%gjUEr8zyolqaZTnett=)%eXCR3`jgE$)+29za4| zON)+7yB2qfP4O_m!DYkX-=;jlJ)67do3C#-^_}7ffw94=Mq6#_i1yv-`~<4+#k@#R z2aotwRQmK4ht1qgkWl)=Xc`nGe$lc0(CwGQp=Q^u>EHU)Pvhl3VXK=gg#@RB@K?-&UQjNT?_hz^ zN^_pwl;=mQSS~r6(tTG}E_m@G^Yzqk8A*(^@}dZ-*wswJkD`)VQ`I7r9Gsl^pglnD zqDYi35zErrKsWJmHD1&{4zd>WSLh* z`Rtrr`>BpieY2qIdkhLuXMcg%mWYZhfkn}10jm6WGEM4{z4NZa*08g1AhTpeW0|~IwWeA%6aa4T}(M}RAXNzt)lftki6bu z1tq`(=B3&uA?w_tU&0rT1k;5aDm}#X1*T>bRQTr(Ip42jc%K>(wfz5OxR`Iha*#T9DeM_{#gjzCw@$ z|2tsYN6r{a@vgeEyLIkBGJYk)7S_@ph6G+#Zok3z$eP%9DaWrW<&1w9O~hAo}5 z^>pq(UjJ%uyxw8FzRP$o%xGu{tEfR@^Yc~hwhE`oA$ zHUibF#cS#p#x9#j7F|d*fGH708!unz#)3F_=igTZe z#gK`?xLplN3d5oZQ1(z?^~?7Q*vh#7gj5Q)wF_i>WsRAH!zg861I9!nfLQNOJ)r$5 z+ukLjbydK|@0r(0rC^^0I9KrF4Tk$8zx%kEIz$<(*f@lXDu$^z@=cb8Hg~Nar~}Y` zZ>N43pgzf!xYq^bb->L~h5UZ9FadC5T_(?ELHf;J0}lWn_3L$+GVGJa^+QT{UsSYN znrjceAHI@9Bi7UkQGW^-6+Xeikmi6Ht_FlrgV7uoCq9z880PYf)Uyphm6PAMgV7Aq zn%V*2>*pr-*f$BX7mhk^MtuRnXEtjsedrFbDoX_Wx@^>Tst@3ADZACnaWt(_5kr9u!|3Ac_-gX3sv zNoncpPkg0T*KlU-=yOrY&r*JKE&S%V&bp*^*#I1F zlxx5mtNHjC*}zsUCR~t@ucrYD|LH;H)!0?j(ou;&l^aT8T2p7Y0LxdxzU}`eF>*j| zmm!lULfqrU%mB2O8S=IC08%7BpCQX{#l!Vrdf=P*8Qm6Jy0?)HAYN=aRrg3-5G?>W zt_0eyera5>&i%Tj*g<{3_4q9jr?DJU#2JUMQ~s9{n@WooNH~c^3qKNgz$xZzqyn!W zx&Rt~vYV?vOJG%l70tbVRg-)8+S!Fb`}X?G3C2woGhOY0tzT=~rz3*Dsg(?<;*ylb zl2`Z)o9L`&n48;nyUf)&dc4PvH|u#ZiHT;?B8?T190`SQl9X$$>jALwCxE^?pmp9l z*y>Yfx+91OZte<`G))U#PEe%f>3A%#w~6Vyoa?8i)ygE{zU{0V)BLrAcd8;C5kb zDK4_df)2|JNrRw{l?+SZ8_sqOu>wYZK@*mvP7{v>Dyo0QF=+5FV;N(6lYF}BE+9f!yQp^u9qPG zZ(jVL&_PiDJE~M?IX5Nfci9U)U!;?D-b5h?P*IG4+C612gT|;wj#&j?P-X72cD^O> zqwwCtNrtFvJp%-S?CO|p2q^nJRFI-;erbik_`-}Nx{rYKjcF1$j$ku5Z2!+cZ$k-0 z1DT1jp#24ht(Ga}6=s^WLACYoqh4KjGMdQJLs_p82xW7gO` z7jCb+vwAjNeSK5sRW!R7-+vrXVXQbo4!^&8yYrM(LE zamRWaR5-d43`GrnnCDUgZXl+~etqB6-tqp{qt z)c3s4eLLU&XqabdxfWm`71bd#qc7gr#L9=eBZSF6@0?wIRlVbCJ85d`iV@iVTBMkq zLd@8Q_6md9dm?pTy4iTpbGWlpbgm9zVrM7bm>H5+WNmHg083zg*0dV!^q(@ zrYl3-CvDelkCtR~e*EhB`0Xs5mG=P~t%MIJEY_|(isMCSkStR4QM9}bQ|a2>^j@)5 zR$XHmbL1ARtOyIf>hX8a@SlOtU+qe>-@hfRSZpGJ~h1cs)m=}p~B4_ z@1~`iBAvM$ADP46wBsN4CHdoAcd?l=`YE9^ht$TR&of*~Us%tm z<3>wt6O%JBIg(*#d)H(DxKCQzfN>Tk{h#{@VOhQQER-DVybc--yR|kB4C&WD28O zyzDoYSux!=eg}Eqnx+pV0VAME2-FYsh$!vuS+zc3sm(|Y2lR7ojXbwKd=J;+_+TDV z8Kj^QF>*|r68+=z0F0B* z_w|L`4p1h^;sfx|Qa_StX!N7VNDfAedD(URj?J~F=>5&O<>tkde+XOiF?l!G%5p%N z^LhUWXA;A?Q4E;PlRQEF#H~O-DKP6*73jh(65Q@C`douluWu!xv5Zlg;@{TxpAHvz zaDPY$-uv^2TRo`&CLiN`HJ^(_8$NK+ant*Vg;@`MQg_f%2*0^p4v+5BREWI|d&6*U zxZxWeOF;AxwJbuOh&D1EF!-P~7n6GwK#bgMZsCfmq=a2k!UiOu)V#DXysAR-uUx&+ z@+&`uM$dQM{v3abUo`YJ0D_H$HbF_Gtq}w%z^*!JB8*AO}rly5(v*`^NP#033$CD@ieuZW7mgran`=z}F;i zM@k1Fg3{lDjyW@K*piSYg&9wiIV5=vi-T z!EewE1f)VC0oz(ZzH5Ds_RR3S``!xDT&EV;+ces$Z*PiN6l=a5A+EnE3tMX$uis>p z27w!YWxC<5E_bT>9yrEQNpublV*RNJyCc>JL+<&d9(J}6)8$WCij_HslQgl_7!Dr+P8v&=kHi$zEz!2X-{3w z(x#Q|9{eI)t2Fa4PX%^4wzXAQu)mI5EL4`hda@D^9Ky*emWKhoW7-w3+~3t z^a(B!bT$TwU}Z3>WGu%BJgG1rA_7EZ@9X_Klw+0n7iRH#v=L(A?K?Xx_Ef%!VN~AV zBYq?c5)1lV;{YOpV*4s#Asgt`FklW*T`dD_u2#=7M7==>Q7^kiU|$gC?2ihpELm;$ zuOO6FvBjArncWW@bLdayVQlceQjhktr=6eDl_=kZZ|+<~<(L2iqiyyn)zx18(t0sd zoEBG3tOA%?wbP(eFf?{$mR5M`!))U-Q_)`GXuj&aZe4k;6a@w$mla+Cj>Z167?GcP zC;fDBhr?B>(ED3m&lYA73TYb14!=ADDZ@ol@+0>`_Dbu`0X*(u{lep*0e;!dC@z%+ zPuyjY5q*HLynE^f9rf%Pz295foO*(r2 zY=FZw3y)F=h?}$;Nyo^jfGo*OS8l`F)zFR7Txb(07o98FjG{K*MhrFQa_aYzTug)Q zN#iKhEu5Rg@SbUj$rt#8TQyDZ)QS&;2ZP3LE_%$L1dGcvkL z&xuQgRCnP$Lc|M`Bfee;QXCAnI8|lgj!bBxj%z6)On0ZTU?ReCcF{{S%kgNO!gAF3 z%UotBwiJ@Eo@sQ4piOuRw%YU=&3| zQV6Jnt{()7<`z9{5Bfvo16-<%maliqEdjO8m?~i!^EE2m-9R4-3N^(Fm$^4oKBuo+ zuYWT(++Xhkz?as|OZTvPY6#9PQMYqoevj-Q-=nrAOBa_jGVL2H-qq!yEFPgYBqZX< zmoieCm@{5OBWNo>YArn1Fs_HHN=6KG7H}AWQ&6j>0@5^{HV&9_w>twRas+p1O-H!v zH(5NjxX{E=WA=6t`139@2v+mS6zKTBY#)CAZXdxoiCk-Vw=(dP#jkmtUSX4@y3Y%D zu{7l0YV&efgxi^Lnhw_{jeXh)Vw@84Ffxhh(2@Q&A&Zwejr;?qHuX$V(HkVQ!0~gt zdh5c=AT3+oT|NO$up$`Dg4&KpyD-|zCb6E|TUv?REz|iHgm|9zIs~8146;fn zh` zIAV0U2rJblbw#uWDC^f&@Ul5VCTv0}ol4U|C+$`q zA-|6R`T?zmEmiA75QWz+2zTC#aUm9iJf2qCGvI^|(wlXTXZ_{*bi1a}VFR^S#>0W% zExh@9Flydu?FkyG8M;w*dlGkR7So;uEtRRh+tswZIBXYao${lIrv>LM5601hKgbeG zXe-_O>m%}?gyYfZB&Tf7G<&eNeU9 zGU!1>S-^e*bf5*l4}NZ|aFfJ-kCtM7sr6e2QQurm*z^UR%_GV!dHk24WkPW8LhAvc zv6~=fcXta_8noaLmIxP`D_>GhHU||tJTW*#qwoBrKzh@um8@*AD>ju&5%)Pe8$KT* z6vz@^%AuauGBglJi zE;O{-?F!e)3VxQEW>ZXo{f1O&`__)KOp)nUTgH6kHTqUE_1|aRHR5D3Br(0wJKRAl zEHLb3?J3Fg?ehX%U8YgCc3yhygO#-IZaunpDO)fwT6E!&xH#kPkS8Jy zK8U*GuZ%U5k|qc;q&??Bva(`<_V>G8ht)w%wmSv|pXT>j4+xnOYxK^+!pX z3Wazv8lqVRToK=s)zyBRKB4ps8MEpK1|%4rYmic~YAqSjLeSPsFzff6JLR}8CqJqehJ=dv!XEy%b zn?J@)fh~L@7n5zPbB^v$cN+b4d~_hVQ7g zs;qPN>8`0?^+{Gy(NA3r2-kNd4t9>Cy(mt+W|OW0TQk`(gWWB~=gU4{B=}_Q*Pa*T zE%&Nm2gA3Z^#9?6rKd;X->wXL z0Ng>-lTCJKPcln(y#7iYYEc(MfrRU{+3tP3GN0D6@3XC>gARh0q;X1-wBLT)z2SFCm~{@pn{T}2Th5iqEEYeKg?6QNPBo8lisF0k@pWbpWf$7|jkH>-@5 z>$E!~#E>hPCOAieZ=@%R__bmpvC!Qlq41O$i!^WMpq`~*HXr`{lfpFi;P!}#zUdY( z0UjRm{*yNZnH)?`5rj_x;Y7K*A1<-}omXi}K>RfSXg73QkguEjrsd3B{4pe7R+H*N z$a*hjx*l+OEKZYW0`w0hWibOUV$P^`(>W}`;Vpo39^Iwms>K~BL7aVbAn=obSE**Hg zMdF|w1xN}3d>FyGWvs2&HH-ik)pWwS15j`)J2f*t(*hxDpM}d4SLc)gU0&r7W-?5xZv^mOxv8cDejW{L2YNDbJuI>00;Q??RN_QAqn52<$q- zn#$KjNvg=)yXFYJ`z3>C{EZ1quB)c4QzQHT4HtyKK*C>ezm6_kiDAHBIF@M{)1Hf=4w?WWKzmaMF--p^?r zJ3I7~-iBt;fhDFnt9(!N;1ti>Po3j>KA8u`n|Y|%Tc-iSt6@MuxUB_;ys|-~VRoqP zohA#0*8mW{ZF}#aIYfP8AJq+x;(LHvQ^};5X6@9y%VB53ZmQw9x(<-IZiR8hPeFhx zqlmh-H^6E%PdeAY!-!<#J8 zQ9RnN&%$zDVgB40Hv9AtiE}UPKv1F!;1Mgm)Rp+(0)+8pzY367E|!V!4>(^1@15x! z;-O6Hb<)e}x57Px&&13rh-yB227&ev1dY3{%;_eeueOlEl zU}n9$?c(*T*QE5Vi)}(BO9j<&&X-KqH^lJNh04_XQyg(L4$ji}VjO0MRN8~Ok7!@4 zY7W6B#b8B67SkV#D=qDh!rH9c+xeuCkYHNcW#}kyHl!gNRN${jhz)&cQcfl&F|{IQ zr{SVXS@(b)AHP^T3Lg*XT-hPZd<3a>gf7GgtYqXaA)r^sDEqFM{+@znToh|4OrI)T zZk}k4y)!otX=o5~U2?!ye4j`7y8el{98@IkBe2b6cz;`fH)f{k+b{M3jzKHG3N@Sy zuAS$|%=W4|Uc}TTTN{ichyeDiA{{Cqof+kYXiXu`e!v0@Fqrbwf&*B^4iR!7?p3jg zv=y$%C65G+7og5|s3c}Ol zBB6w{gGq!;98O4_X*Ay+58Yn3UAk1m$OOJK z$k=STHB-$v3x?r=V%*s`8c7)6xjE?eU4%&TzN?u`6OE&F1<4%MJAMr<&gh*w#TH2T zsVIwizPkEU-O{WvJa&8ey<5Sd+2yhtZP!%+t`JGaiJ9=)asaA=u=`e` znAbnxjEz8ng%q^SfkE8Dvq~s|LrQ=U05kw7NP|v*s+>-0qom|EQ%+qIrRN>9BBR4b z{KggbcUST_^R81I*#sW4n4C3|0B#q;4z1qX4Tjik(UH=+#prP%wAf~1;(XI;C&Dj5;qQ$1phRpO94LXJqxhEtqe<%86f??fCyn*{&5WbaR64Co%HEQEDBZ z*ccMTlvTjKCanWfaZg3}+U_{=*y15;nLzVf&Q-=z$(CDWLl4YTE53H4OD*o;B}IxY zEb`Ry2@f5r`>X%biaE<_B+CVa)upti*7pOOnc|h-Tt7@KQl9oYPB~KC!%C)_TyroQ z0!=e%3GpcUDLW}6usH)-S(lY*N*tCYlboyxdNgSte~Q$EMrW>0$F2cNfet#1Bgo7l zK^H*kc;fX#u6St}Mm3q8`oPx6p?tD>a0VV>RX*=I(&y-C6*aP*D6mfwF(=X6@U*iO$IjjvW# z8HF9YKRA}X;&&29oWuc@?b-f5y=|?;Etg+QQ-5xo#BdDaL2zV~Y3=Cx_-bi{_U@;p zsHY?G{R_LeIY$`Wug>GTO(7u<*NWg9r-75N2Au6gJoOM&>H%$Fki@al=t}+oUSp zl%Ah?s%-|1_n)+|L$x`P-Y38I7SFci)$;-%{NN?FPY?H#Z|rUl<;3qV?TktUeUDT) zITg1Wb;|(4w()%9r#SKJnDEC)z{g>zjoo7N)xJF=n$A~1F;FY+&sUL<+8NyMqz#e( z{$%;-qnW>-Atlk8q5l0;Ei(SEzkq}!$qeED=iB+9|NX)LZ!gc_Y!N2XcRPD~``>hb zE`s>6zrX+I4RZk8t^B7BP4WM_^sw1`;jbS2;qPZiiujfPyqiq2{TP3L@e3iC z{C|J&uUFuIU!MOK6tlIIrJnx;3zEXez5P2@+X>#{tbbAf(nosZ{r!B(a@99tnE%8X zeM3E+*NX+6vwuPmDV~1jZqD-k&DR0vwZS6Ge^UzOMVQ3FdZH>Ke?h|i<94sbWbbZq z)}w#I(d}2)D7CpI-1QtcD=%|&6zc4q#;RSOZ!2G%^-tFEcN@OHm-4-7T7oa$VWy5W zmgK*8a`yg6?|~4}7xMB=tAdZd5qqcu7_wQeC*I(YA$o0P8dfj?^obBG%OmoR zKD71+lNXs5+?nOhp*B!m^5=G6%Bske IK}-Vw4;B9Y{r~^~ literal 0 HcmV?d00001 diff --git a/docs/orleans/deployment/media/product-management-page-new.png b/docs/orleans/deployment/media/product-management-page-new.png new file mode 100644 index 0000000000000000000000000000000000000000..1a81b48d81b279a7e089161d28bd8f0e579c1c8b GIT binary patch literal 113669 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 z%0A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

sS`ojwL9s{op; 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 literal 0 HcmV?d00001 diff --git a/docs/orleans/deployment/media/shop-inventory-page.png b/docs/orleans/deployment/media/shop-inventory-page.png new file mode 100644 index 0000000000000000000000000000000000000000..4ad5cf9920295a55619c91d4694380acc3c5e7ac GIT binary patch literal 174098 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 `@t_@p7S$=X39ho}{H?G{*o~g@ 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�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 r|!IBWZx>*-q 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 z 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

rPyge5pxPMMf&o^yYd1<? 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

wwq(<*XVhT0uikbB{vAq)*sgA4@IOq=uO`jwlI; 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 n7tWHwt$ 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

S73g!xvSreKtgO`wPNSon#7 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 z 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

  • k-$;?xGen2hYqokzrucsF5Ni^8Zow-QiTY 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%0AYGd^cJxDG=$0(&yO zr|aVY@$Z`)XEpw3uHn#b{Sdsg7T}9_zozD=3nB&bBVT^RdIml_20sgg=;~v~>tW;i zrD(lJ+V_1~P3SUm4Iq)&RT`0L+-D8f{`bmUpgJdNFLYUMQG zQTNsYYIU>wyxRkn-IEdGVIRPssqA-V46x&?Ud%&2u>RED7?~BAbMu|DX`sDEqrocb zde8`bYr#4B)%fnGD5BZcMx^LQZprR)f=zt6`%;v;?RM45NmK9Jq{~afDO!gf?jwM{ zpA|6AGxGv9n5sQdxx^#r^6Gi=^%DJWs;C&P)n4VU`j4R`U%T42aQ zub{?Gc4NCtNnwUX(GuKF20Wt-?>GzyQrQdjcuPOfZn=0OZ9GFUm-^4Qa}QnwTvHxQ z4-2O?`ur?L^wJDS>j8DnHN7YlRqgd z2w^iP+G71$TqG)3ECpfp2(G$=Tc$m+3uwXs^a;T>-8qRlwVhPC7a75gv+7GLp{MlW z2KdZ17TQX+SvcC_S+d>MHs!`S_c__9d^vlcjNbhi7|4^{5Z?u2NL8R1QjI#ximY}o z`wHh?!_%;whxILobIFTims0H^?Vm0=Nj*464wJ!Fn`?Asi0g#GW+uiSY3+Qx&M*xn zb5i|&TLE@~5^GF4bnRr+gwcW>GNDYz>1vl?5{zJYIglp2lAS-MG8M2t%L65@4J5`z zP*5Sd8I5p3@W9F+SEMIkBjRLl(w3%OK1S5?da;^Zg1{VkAj=fHk^z_%5ePoz#8?Gx zOTPrwDN+rEut!Zluf+!4uJQ3|)-2?QoG9j{;bOiEjtJ|-xw>1q55sM6F?l1p4$cXq6r70noWy2AZ|AumoME-85{nwUU}#SB^-kl!SXE|Gsk8w<6UU}Xe{PZK1#M`bRVQXl0JBWacsrtw`{4k z*2T{syb$iXtR(Y)AEgNQzGu z1gl(SQeR(>5sGZeKhy)V z3*skt^<_{D_f+*|(BQR?7|P#1HCJyU3wE134PlS|r8PXb)SLa6w~F5ID;qhcPs)l;W)*pT^` zqs}_NmHfIHluxYB5Vr@j`y+--Rd25MCy@%X1HuZvmp`*CCbLIAehz%%szW#U>rdDn zsf!}Jj0{>LPXoz?7n{=@xY8dQ9FOtFv2>AGU0yt=RkL;GaiY=0DDb`$BX`O;?y
  • 2y!BJ2PN08y?jZH(qtx!T~HCRwcBp1!F0j@!I%K!)q7mO=S z$6t;>tTT8#OaZf3g zqFraEJ8%d9q~1K=jbMB*VeokuW29lHts0y~5BUsJ?qhu!`N7=)aeS>=M9 zBdW-sVP_lzjMcMng!^OSmI<}t52Mk$8UW~XLbfOhJdJ9eV}(;=tE+ZgK!vz7V0;)tF19>Afg^U&pGYLgJ_d zVq-Ue?FT?6b0NCm-$(H|;?nhuxTo5Nu8S=XJ12xj=oatWzEa>9LazoWj*%*R z{QrBrrw%0OHqA7ALqC~*H6Bys*Nxz60rrm%KERS<60{*Rv=XVYbF35OPQ=h?0|F`o znkgQP;%0jL{u`35+~`f`6%DaFn|HVuColrDaonNoF9qy3tCAAeDCFAj(DNIa0+pn| z5jRa)1p;j?a^5O(cA8F7xS6Bq*Fas@^flmf``X)Np9lrvo98EoC2q7nCc@eXFk7}3 zn{=O@IFCsp4Rrd#qfh(DCa@UE1J`eUyy@da-C((OFVkIadI050YUVCC+r88+%Au8C3WAyK^uIyPIt2s8RRveD)L>=f^`0!*t4E#5O5eV z!U+eFKwx3#8I2Z&3)K5?SiKri$h1p5;fw?kx=)xxPzF_rvFQ{ug zaILzf&5#NmHesx_6dv++R0FjrqTiVf=SOMT6TsmIm+3F2zpO|tcR`GC-w?+GX3|tm z2`VVBEcgmMU-2BfZm92zxwL!Ip$dCH!xM?1d<;QVE)g+$ARqo3~5kwZJ5=rM5)xdG^Zn z#<$!qV54inV@~w?@Zs9fMplS+@m4R!(!W&2Q*i+SV}fhN5_6=3k9KPbrGK9K3iXa~ zXrSLwI$c!EIx*pNO->Jve`qW<8Q)Kyj&Q{J2FZ;l{8`~i%*eVz%6GF;6A1qFl zG(iiPj9ERfavzeZOifkIMs!Z+o>Bqja#dev~qd;^%s0MvD+a()_!DRx$op9J>mz9yhrUL;rAbn3XTKz^l z{d@NOco)79q2<_AE3xC>q#O~&nnHg%n2Kx{nnj!PR+15%dWbE)hIQo!!R=qhtYKH4 zF3Fv#ax7TaljUDsmY7mt!I&=laFaSJ(5|kaH845zF6#sN>nbQ`twJL-m7Dqr7u5R! zr}R(p2a77mKxUQDJbZt1)@UtKlpH*|8&a9`;uSe$LM}yt!5e3}(tuLHfS$me>(e^b zKdBoZz@U1$rt8H}y`0kj_4jLve}|N51t7bKudL$DPyE`8lMSj|o!74!`4~)1OcoA? z6vqrqCWp-RL9`dF>vcf{HLI4vFs$n76jD68LrSw%Jin>>?fZwbO|{1!0xJv%oi7Vj zMoV)ei!n9F4BW-we?mo< z6raqLFz_7RE>-lyDv$x$spau}66fR$R~zTS_PT8;F^wSE!AsjBkR@s%cO}~p)cS`y zURP4$mgL-I&=qKsSth4hz$$+Y4%#`sxr3BvsIwF|4-&g~z72;I?}-rM29a!gJp&4- zRN#pgU_5kq#pxB4W{Km@0W97DFg(}%(`xH z5UDv;=`;(cz-5|0?*n(Hw;8J`knz|iDxn$M$~ap+!Qq9GR^dzRD%=2@brBOpuhB< zDw+0~Y`Kipyb`SqSPLYFBp0O-LK*webk{w3x)h_oyW2vt7^SXPbmpgT-+3R{7v8j9 zzvTDqt5OuZ#K})Sk6hyeJN|2^{%dkhE||(sHAn4u>@~kka z1D(f20WGZSO~&uZ|0a1D5WJ%&xQ^LX+kQ*!6o66z?eBFoQI`{sNq4id_b)wpwNavk zc;5GJT)R!Cq?AL}^j*zrB3J9x0Oy5P47t^%>IROAm9Cb0;iQ^2{+pTbG_@Q{$FJnr z(k8q&o_O6T4q%Un>pV+Ahfu`!yfEz(imBr5L?kmSrgRCRlTT-NYTs7vtkhbU{u2*7 z4);5d_}qM#_}jOiVh$zvG+TD3rJD_rE)#@c;+J3oDQ?n1psQ;#`LFo}`R4HLd3oUZ zyHxz;Zi|AdDoW5g-YlN%d6VAli2hY4UAFjIu7mBU09WgqLN5+M{6g>@dQ<%viB zm>gP`*-+=?Fgo-OoqV*uqHx;Lj&VrrcIx!>eDq2F zT~z7CBsXs4C90xf0hrQ;ti=#0OC5(^z5%p0nbL@FJqUoFmnzNjQM0P?TF#Sj#S0UC z4({l<1l0vIth`lPu*D&7Z#3MLlz8WvGUe%sh5KKLXmQccAXE>|hKT{?sNP(^9^;9q zI!vjd&odS$w2F}_y1}~ks7`tql#=o_$Teu6od0oCq){>f{p-9~*3of0hss;-026~k zQA%G358O`Z^-nq9d`p$3qvs*buzu6SX4Zxt$7=8cTg9v^+jhgHhX}Z{D!0m~e6q=I z-=1&uh7G)H2b4)Cu2^&JoOp|u{ejwI{QrC{h1jh;Ec?Rh7rRoVqf~?}?Uy7v%SK1x ziX$p3lFD_srr7Qqm}Y%%9uM;5KEY8Z()%aP-O;c6pix`S{tHg!CvwoN2U!DKdcWy{ z0|irH*ts#R5d0@n3i*S^OJJ7z~~3NbM;{c`-=uea^h zp9+SGo4rV~d+ZX0o1LC_2z^`-cO1mJ&%{bN{Nwe46Pi z{v<_4Vw)6~P1m;K9o)9e(ojNk)P7oF6f4b($Gh&IxxS8Qf=T{2J>Sb@73ztEuz%rx z%6j7AdMd34j}@BB`SGWPhX)SOK6=pO`h&LhUb?7i!}m!&{gvW52ML^LZbVYIhvNCJ z6biJ2ORrRk%<+19at)xPd#M~wo8JdZ>%z1800Ox0#1!ysD>I7gsr8UK$2wokQnR@@WN4o&OQ&YgzNxACY-BtJK#2l54{c8 zX#0KXU3#LZOBPLf?sq60NRXlsZAW#R;S#Pt#@&J}a{3_kfGHBKQu;P}j;Y}pJV_c2 zE$84=?iZ-a$nTS%!H;vC=hr;njChX9j>Mzxy;GW4%Ob+sSYs#yr4b^VWgh67Igs_t z*-~iO@?=!A*cgwq;p|U`yU?4Y$2*HPy+ynG^*d3AM8C4^(gi8^NZy+@&~>t z&x_-`o`bUHHmh0v5{$5}wB*PQIU~#!0p3Ty{4opP;)JSNsp=m6jv0C4W&ICYM9UFh zL0;~d@AzrDi=5z*`tN12BVIvq?SSgC0TbJ8ki@dt(LVD!@N;p;K4aJFba@UzTzeq> zpReNJH)rHZ*q}1RyeSd4T;*<99}@+aNmdqtWxpzvPb=WNzFRu+lcpS!ms9i2MPTnA zI)aziIw`lnf%Fw3X=^66XTo#`#MqytpvHF&gGHmI4*-Ku|5dbvnCo|$KSRC@%6#G{qm(*&7Ij>+JGnLr4~#jOpN@f z{O!(HT3YL9Z{5`k@S}$Cc@oHAd{tBe@nYQSFCU96cZJ5unsb%Vq=ND)s)M`=#oxzt z6FoxQr~u)Es4{?!&{&VIfU`nm?Ez8>cc)G>tE zj2Ax2&aPF;vgw%Yy3XoWdcwi(CMJm3*L<6VJ$V|a5weTer#mw0=; zhIVR-7Q;gc&AB=G)-s$rb>Y@e#P$*AoQAD*L3nVYwVlB8gNhs7?NAd6%tm>To#h*$ zuaC@Oq)T0$C4;O~9yLesGB)O`ex8XiKo{O-l{K~=T`-HAmjgxDSjMc>@h@(W0ByvI z9qBkdos-MO@k$Y(Tx*Y)6BxyVy{eg$oqv7J?OJRP9lPj#xUb zU|Aflmt6`4a?xcyyM7wg+auL^K%*pUmL8PT=bN_=2hXSIukS5bU5aC0ZC~Tqw||qt zR(wC|TFTyqo%v0!_H89TA&Y!M2=#L<1}%xW6@=c6RCa=_KUz{^OyqDRAjSXHh6BQD zXF#~DQ2Hg}A%dMeM|`nX#x~pXw{Q#^-AcmsIp$oHa%F(-usk|oJ=caTQgK(^FWhrW0q!Q;;FTl~%d6Z?(Qyl7Kh zTHMiR43)JDu?m+)OzbZmrXkz8Ad-UCyY8A>AUO!%v!dv)9U-ZX#j64T9W;y@1IHbp z_o0{9fkB+k;hd5kub-R))c&4FTa4Nz?_irqkbU6_t@;BZZ4QaH280tv6BuPiY<`sQ z$RLm+`-IyyJ7SyDRlM2ERHCl`Sl8~!o*iV06J=c{?YQCEfWI7vPrJ5!cQ$AWx_jxq zzubF=&qC$s6n%$xr8fZ(Ix03nY(;;aju=;oSi9N`jHx|ye78^uliBa*T7U0z;)k95 z9XIYpH+&>#Xe_I4#xB9?XL0_5p$;B6ayM439^zKB?ETaqv#=5@ZVPm!B<1tOpHAOQ z0$6er17Eh@I@@g46m`AB=+`6sT9wnF$HL-|k%og<8b z9O_;7^QX_e_$F?VJ({kb@jI;8`560Bm?l-HW|;v;q3^@bo4OfFJ}pyD?+qK*C<8Wa ziZFlpIo+GUDp)Yz!NKemmG6#LAOgr5d0-TF8fIj0EEhOXbk^H8`*loZ$Vp{wwygXJ z@Mai@7C4NQLS4+AKCd?c&XI1P1v?c*A!NZ4g6MWyFkyiH>g;82KJC2+TDQ&DzCFW3H#*Oub;gV4wctUeCpTU zxnVspUN9a>wE@0qWH`a?7dNiTi?9Z#GGj0%>aM*H*wEZ3PtEHR>Hh>2+`52gyK0k( z!v@z9bg1k)z`4Evz{i~Oq1Npi`{RX%T>{SW^|L@rm zH1^g5s$Ok{)w(6s?&P-LYXUe~Nth-Mo@cVx+;{TceVy948h+k7z3L^D0>mBDHxrF{ z_7L~wm1tQKDhtt$&WgL445-YWoaEPv210edk|sq+TPV<}vxW0xKKSYmS@qn^xo6#0 zOjOi&qV2z_<&X_!D72TZDRY~2-8MEck#S5?nv{S3MndS}qTPKd_D86SpBVL1`5nBbjZqOMAj`Ga@2 z75b!6c0UX;e{FNpKTNS{%#Wc$xJQP06?bQP_l6{{`q0!R&14ExX;e6)gxoj@% zs{Adhxpz2u-lEI-C5S1IZR(B0{9?d5FsOyuPY(&-vT0SfisxV*o}EXce`?C$7|`Hm zwt16P_A{VFJx5LG9AqMK3sGmb#ko!@?K;Ujd$HY<^0kin^KPN@##m8!7%11eSI4XS zeUC{5rfp#v3Q3=6A3K?a*|S`a3yKn>d z^&q1$_vU~q(}HPNqGgF(%vYrye~bBC3k38bSyl?MjeQcyboR#{Y1AA+nZgy3gb^K+ z>2vJoP5@_eBBHepq1dVe|IkOLbC)48`W}>=G4jJSTIXqLj8+AK5=#V}l?GnE8_lBF1(Aansw3fvt5sWtT)4I?JeV9;jDVUeajfQfyR8P?_@CL17q+K zi2vg7A69gaPvjm=h}MhhrrpXyXt*SSmmiruM%k>-5Mvu3)0XcUH+2qW~uM@D0<-VFV za#;~i*d3rClK65b5U+q>b)4YdgjeaCJybG(YC2Bgci0cVUpDc}2?tgmKpYKSrTqI1 z3oM;OFD8noeWVTIGYKaWX!7$6nfIsF=Y8j#>^f&}8qW*rPb>&&K@NuE^pgp!cU>Op znTjw=T2`M1JPa!iy~-N5r^w>Q?Hh2#Zgza1w4QFt2{jF?H@3wVh-w>ngt`NEoKU&J z(}zBeb#y7Co~< zTYuuymS;8rR@e`c$N?e8RHEU_WKd%7{F)wpKN7ncvkMAwnttpVn&C?FCz0QH=@XJt zWno##$hy>KAka7RT}MHoG|jDHNj5FE8-)fp6FGCRaG{$Ej2}*(18J_Y!4{_(!X$9y z3=!p4I4XxtXHqz-jM*bFhIq7O&ZvO`-q7g*q7Hs@kC6xr%`(#BGirfyd1wF=o`Z7M zdIssBDQmIJe=-(c4hlH0*NucKN=%Gk3>WayKYGc9SuFQ)N}EhU%}TMHi8>xzU;{LA zrtpvj-e%$v$Z6~a_n{h>Pph#3g)ZWF@uzR>=MKisN#y|D@tu#j{ozihJ}8!>LIa<` zcGMW(x)LrVrBiXwo*bHDu157xIhfbWQ0|y4BZfoHGM>w_F)brZk406t_-rsIvwyF^ zW%B^r`wLfS4IV5#l6!4FQ=IkEXs^rR6kVy=>*M66dQJjHeAYu6N$ol~R#!S9~)eVV;^cRBv42)4B*mNhq7S)d4 z03m^3U)Tq?=9xER_9UrZten{m0OQ>BdWcD4itA1~%^HEHgiBm}^%C!B^Q|U8MSX{+ zFkBu=K;U{og1>NLbW?6&VMW26dG&A}Q}Qwt>Vvp{n9EY*$!hg24MM4xWbn;X&4yT8o-Sez=b8~Awq`*AO=5*eHT~hn zQM&vH0Il z5Q?PGv~|!Q(7T!eS_hq|F-OtZTUUBI8M55BTa>Vxd&S`Ys!mCtlURU7fla(!2XZ$u z@|*M%?{UAWhZ4f#zKepl2V4osnjVVptVmy;A7Mp;qH5ReL>7wDye}`eo=T_!X-Z)X zhCX1p$pp>vFjl!rrY`|;;9Gx);%US@j4~j>5;b8EWnyRoK}d+je0j1m05Nn zAxch)q!;wMPkKdEBs^6VM|he++E7AB7-7%xe+H*&>}@f=cgq4;A3k)C&GCKt zgruP(d8@!3J4<~>R!)8N)YtUAoDVCu((3&buR0^~@^M(gd5Kc3S5 z_7a`KmkS{yN8AFF?&pH!9}(M61Z%Rey0ZCABs5Q=>|5?=GSH-+1uG+4PwDf+yJqDl zR(pVW*6$j%#f+Kx0VC2}N-f`D@HR%aEicffSO%JUtMRG+2}^C?g4H2{$QYhJ8kL;8 z)?J9I4ePy@1xIRH%4x~Y8`6hQhu?%gRIvmt{XH78w4ayC{@RymYqkH9-2K2?GSrB6;^ z2}~t};Ap6as1qv6VX#6Y0S_ECeLaW`XMdn|Bv{ z)Xm*2>ZstJanNw2aj80ckaHFc)`dfvc%@qTPvlTTk(Z&@pPPt#;tg9KB73c*=WYIH zssA&^+%fXjof0-IIW1swfssb`wF{L^%E zUVjE$!{uN~C>QrEy$l=$-c+~JSwa0V7J?73$enrw@p5kh+dJwJOAER37|guuoA*0j z^P6dtIhkMW^uCF1)b{vqKvQ?458>t$u6PE4&>CvL`^17@e!gC##LQAt?_X#VBji-% z#$jSpFpcIeg_@ix0p|Li0nLkEl`vp$x&h$BR!T( z99ujWv7fMsW^Cp(qXR=7`K_l}vP%mOQ_dHqj+zuN^$W&;#p{v7zTf|RUaQRHkFF_g7gd}=t$xwk z)=j|Zclwd+nEQW*Ql+xSN^a6Zw>3{jEZk?$p53)60|ZsJ?mWuU8-w5ghowT*aba;I z=j8j(5S-M_t<5%6=0@Sp9LFH^;Z44qek4nN9hU_e$BXN*B1^(Tn)(;sReapvVoD;) z>5pIsdl2Q*!jd{_zM7h_XhZLk@w=ApK)C*Wz}H`kq}V>M!{O80TPnR78CO9bG%62p zpZ_pM0+NzXLW8{LEo9Z+1mdnubgLmHK&eurKzcHr!%~wQbaw{AWSsNvdd3o+itceM zJ0|sj&wy@=yMrc`++6vd7{*c&c3UIozpC((1=DKJtuf8`MA9V&(WstYVKWotLCXm6 zUENT%ngg4szG>Cv)n)-zD<(SOfvm)1Z|Z?GsVn71mecsoF^B1BY)^kgdDW|&8epGwmSo&^jLoWK4oXOS5+?$dMc>^VzM3P3Z-HR#rb(CQ3zmr0nkxQ+v-gt zW*OY-4`U~m@$&c$|3!jR5xr2wnueeF#>U-cnWrG5^&H5ml4i`r$BE>g-x}n3GgqJ9 zOQ0S=@?(wsUgjqg-t@QMl~Faq?o_r5PjA{NmS+x)b~>dMeuT!(ggj9w#jlLw@z%)b zs0Hqj)nq9i2ge^JLpwX}K5-kW<>`ylEFL^ifwit#RiBG(FPr(RQlCiLK5#SfoJdK5 z%Z|ZDhw4vT=G_tzO4N&u@F}_Yk9D*&_!lU#|!6X z)8ltfs~f$FOV=t5KeGd@-clN+LnaZmtQ~nCGm3vrPWxJBjV!i%<~L0x!FwoZAe{NT z`ThlPNl`T6qUz*=skvjNdUwHfF7w>;s-XorSt6ge4=(gDdblEy6Vy89+(Rbb-@18x zML1^q9s+VyJ7?ET@j?mrUwYK7C)o6*wOH!esQ9C`R-JuJ<*v5-FuYrvPrMnfQGLYm zxq}IOh3?k-k~wF1zrs>Me3s-t*E9hS*q;qyz+_La)`?kNQHPR;_wI0ka9nNHI~u8X z!ufQtdqOF;;)q6>tHGRtceYxeAHV7W~#WE+U?^-3uCo}ENpQx)M!$IM2$x< zQXD;BZ}ax1_QScJWpdZ^iM^^M0ef9i?q(f9@HTTp6~dzP+k9-C%%gny;FPN z<8hy;5jg3;+OVE`6|c|!Q@|Ipu4M#r+a+&o{>w;L4(NNXJyne5)QSG5#J7I!VuXxy z2(%kw^nw=~6P$HuikrLQP21niH)>i^_}73bc;2gwf>Kb>b{>PAL+iuOAPQfUnQ`|s z=A;j-${F)Db4fnUwFA4AHR(PPYaWCw-C9Xgof`9z%<>Yp*2uyCtej3UJtm9gM56Gv zLSy6Lr?M7bX@C4AzPF-j_+3hXF)N@BEwU8BNQHN zhED6jjnwzJ9?^GPE}j!b&ct7BG##x3!{2(z3-7&|2)cto2a!tG6bc5#C zQr&;qZ6d9e)|W-!bpCN@Dqz-VCQ zD5whd@c1(c%_zEGt^Z|Hs%?qOPI$4 z*qPSU8;S0-+YUkK)9przwbxWPE;TaHkfDI}uU zE%_|UU51BX$)o&1sl>0ZKJ7cpvD?_Dz2|h8BN=sZGS=`b9-jZvOe~IjzauESJT&H* z4l|h_@qv`oRYRH2p~T`;I&R00^y}Yftdk3X$5B{fPNol_HNeQ)!g)d`{|%6tp=D!3 zSlIy-fLSDNF>F|ol`SVL6=&0eV7d|j%EhvwUxu9PT^=F^PF(gem&TTj21}{awssa= zWic~=rx1=U;c4ot2EDk0A8$jC|G3|_J|H&OfSg4lF7K z(2@gj*V)MlYV~Z!oj|H|LL~J8xLyNMBnC`HS1dR1ndRoZ-PyA{Iww$3EeZ z&&8P9jtJ~3sqYD%Vs^>8QGDH@QUN0Y>L~>B!d6e3ge(5ewU}6Dpzlc`WN#nyBI(fD z+YDpLUrRuXY6P_TfMOq~_g}$W<0nP)^ciV-1jLQBbCj+g+_?;9Vr)n`ah!bN3uI-BCP~^F zjKo0odp5b~m|y9nf;M}%rI~w?J4ar`!MHUqA{z9qhwf$VW>MD3UsaP29^xL!p0NF` zn_M2DXpL4(Wq`uFAvfzx0I+Jr2{BQO2%7BuGN!2_5je z;bO3CO%}ZTd-J}HdOpEGY?V5BwFAYH9pvF#yt+YH2LmD4ykS%~uSuiPRlNjQukje) zY{~S5^=}}K5bnI$@*9(kvEFJHWol1!Je1WwEds3!_#AtBVaeRfB_rD zz!^+K0?xuz5b|tE=+62P%pBzB?*<6%4J&e1neOH>Tt|BNx=+s>t&f2 zv8CVm^7EnYV0PyCS*d=*S3F=!pgNNSehGU*=~zS=acwTh zu<_wUD7Rp>`o8gNRxOD(A?Y3&NA0{lVpkk1&eosHDYoZ3o4}&{mW-=Y!}9hvg7(H5o4O}=u>FX3ISdaSy1fM5V9uN5g z3yIXlurVuh3e0VuPxLa%Y}ucdv>&@pGcgTEi8MeaHi!n1)19?3>k+%{VGBv=jy5M0^h-uTtsFzbY~G zAp0=hM^Kf>^29!bxquqX~;6LBG?za(dAIk-ddO{gB|-@;0Bo zI^Otl@a)n8N*Z)Fwpo*e&2&_VA}RE(>j0@zTV~N0jL}rdw|;g-@asvA3w+;D|lv$R^PClbkE*| z@AI;~l)yCALN?8W$22s&GQ`NyuO6HXpsHnVVl59t!|%->MFaZ@>DCG^Id?zezQ;5j z4vcjN9IV>V1?@n-2dW(}R54sT zA>uZis&V-{{qF2|Cj`C#wxRd+5jj_DM;cl?(#xi^38|D#NjHcON6srrk~ha$9o4Gu zv-UE+&x`J`D0I!Zm>29n2j-(^J*}yt_~Ct4ke+y9t^l6?D^~mI|-Fxzv=z14AyJ{uEgPg>T>&W9Nr|-TEzp{SaJ>HF-dC3ruID@4Zqu z(BL3~9)6@EV^7P#aYQD&=LLLb!6(X^pKm$~Cqd7xH(=12${UGdFmzB-4PPN z5s(z1F%b`5kG!pEwBRMQi^HXUH+BzpH%kBE1nj`ZCiWnyBtT`vy3>dA^}ls}b*DLl zt6kt!=Ph12kUo-HWo7CZ`)xi~4&^X!GFVAUt_^>{wI{+S8ynn`^_9+9?t|@b0$h;K z{Or{_i>pm-S&I&RGM1t%P^{8GNZoc0~HCe<|1?A8gkqRtpNouXnxuv1L7NNNDsa} zNpHBX@un19Z>$dIN1*Es3l1B5?@<}Hxn;g0EUZkOhV#Q204Rq2YSn(`8u@%*&+!}s z5@6K)1A7nchBh{zzD&XmdUmC=JXJ5C@&MB=bTonhG#)A>L2W`g-rIWsgQJ)jV|&;i zf)TVH^WTe1Y&#Cj`Vvx=;c$zmVV7{f#@(<_R(CL>b9Xg zQQoI8)^DPu$(1-;jOVM}rnD(8HowFja4Y;maZ4gz{8^bKjOOEU|7u;h`4?mHP|Pk` z{^hVDdqp6|;!ygX(^+f;e!ay-It7()KG9l;z;FP?CR;fDtNYi-Cuak5n*)34EAeg% zLIRb$^`V!NOa8#sL(NMj_ql=f z3NR!`K)u!%@69-fO7)Rl16PkDIdHSa%mk^JW>2v0xK#jZ1Ef^r;qN*P*&!PT7(A?Q z*@5H8p&K3ztZP~Oryp?HC=j_=K%BZ61rm-u{>eWtOU7Z>HhxIbV!^I$QvtV|D{&Fy z`~&qc3(N2!xV57?@W=saLj>VRDgbXKdH(UCrV{F)yAMPaIkpOO@g?p<%JB&q-gUA5 z_iei6O?tae^6GyL=}&UOJ#u{u;$k|HP(XiA4R8+oRoS$2qUtEMDkfKKiZ4ps+>yK%KX<^`809G!BET3= z>`T~M(nlN+TkFk~mw&=PJ?Y&zR9;Q~pFjR<8cPMcGY8gH*Q$X78ft{%n4sV9k7^9QbitG`N|X+b^`KnoL7 zU1pkWP>(;yJVJ$04=ecOpyna8(zyh6qrZkejA^StGa@d|Ol8mdz*dlftA2q`Az54v zJ0>P30~RS`xrNsF77}@ZPK7r}cug3E_eiL%C03E^z=epy>kDad77sa64()6%RT-_O zZ6B}Uafk{LwVfGY+T0=?vdGVT93B?*jAI=@n_u7v*qe-=JiYtF<<<>Gmd7Gmp?EIsqVp}PSJz~SwPJS?FYP}h&pg&PLQ^_{zXBE))m^|=4v5`{x) zfmmsirx?a3@QKQToG?()&eefQapBJLSZU+r6UO=h_6w7;Ec3c}vFp!Wx&>j~!)+TN zPWmAm7=YOoO7H%20r|D*1i%vfz`Pc+d#vQsh&_q>_uOC=N?SeTtpW@=0 zSR_JP{YOUB`!B5)Lr!|gvAI?;$D9B;9^@c835=n*M-{@<%G|P+sOa5eLHS!`}nx(-xQiL`%sYEEUX75JH)8DPWF> z8%L_f&{SSbV2NQa)^4Q)rk>5Xa^^O1)MzL4m@0n?CK z;QuQtkB^xIG`x6C=}?%?NCg#r!FV9kWgdALq+Eajf;(%ug&8F!PbY+w#MiyP@}Jz+ z^*DGJ8%IK26QR-^`Mq9i)Q2HgqmZ-)%#wUs_@13e^S|i59nZ=-_FJkDh@cIwpo<+g=p8S13Rz4>A8o=`HD~g~J*zg73nc8%jpt3QlFy zH#h;wt=mdjYeOp6T^krmzsfU`T)v(IT}i9a^gSdOe5yY8_El1^6q^zf^6bbb97 zu6MAW%YrmMB!Aad`6JJM<#qpYq<~4ebp>*r2znKqiHzpiTcum?rW{aUD+A!>KbNsD zj~<*1ArBbRwWN>_!AIQxuw#>K;d&3&Pr_Pd7@@Whk)3)Fm}$C8cS93~0cBD_g&Kk~ zk8O2W%Th%|&@{@9k63ntqQHcTEi<^g>zHulevz5RG~@JD)#=IWJT1)8we3fGH9 zM>h>rNa6`|j7~evP{-xp+}Ouk4*3EK)G%+pr<~@Njb~SE{41 z{*WHb?P7S5^!Cylq$8@1=fZe*_KA2+`irATB>7*%E{|fEjR4DA%DZ8<>WRZnzxDUj zFAOEPEm|zrZwO_OuR|%#x6`POvoua z^@{wL=Dle)NCTa-k7t_N%Y*M|>DK1ekL5d$Z!uP2oG3z>NP#^L>v<`prh2o2r|7U;Bn$_16J4kx}0CQSj?XtF;@~HVIUyJ*x zH(#0HoPLuB{<-?3o#i%N|3|nJVT}+G&>ntT0=8hG9`xTlPZ2ikH0FXwj*BjR?4>@( zf8GD}%QCDum3!B#udx2>{9?c#kNjI?*-*N1y2R!bwxn!pvm%KbQ| z{RL^amD;G5zj?!P!Q1gqz7B|7+OLjIhLSmbpCS*%g1&&JfAXKjtba2;yt}dLu{zHH z=ys<2IZ|iSSX*e%(G#n))V>b;X!?oL!wjk`tc@8i=1&vkL6x`mp+VSis>k?k>Z4rK z-Pb`G;9$iy$~H5$&UVT8F%WiDHY)Br>z+^zG&M>SD;y1z4x^q0b*|>!#jYPy`YI~q z4IpR_Laz@J9$DU)Q-lFrGcM|KpF@Lrk6%{|3{vdtxvD44{CX_io*KpUCa8pb%e$0r zGDXB;h* z>EHrJq+bcRt7>f!9AD?mad3vNN$gQq@Be!ATTN+dTIHaO^-;_MJYQ;QkyV55*=Eq= zK=c^+2ddi@;I7;1Pk2)i@Nj@_XGjA)M38M&4Fv7pe>EklM0;hul&znPYfXD%C)m=^ zpX-Cj+PrmDBBtp;bMpF;8d0q2w+PEtCaKH}o*8nocQ$RR$-M#_#oTQ5_^f1gH(n5Y zmmgtv$Lw;OHX8Fje)^xq>aY(b4i9V2@r!=mJndXZ{L))y66-kVVn4!(wLc%$tGaAP z5==f7$oO(K{-O8v^>DE1;)sHwN*KpHRieKstF%HgK!*3)!>pOXaGTsXe|10$^%ffT z=zp^%b@fUFAEsKFx!}fUf(aOac5MHZ=biORF>inmtlJb-f2x*6*})!=UmaH~EpKJ9HmE z^cdUPnJ!sLh;N5=K{k9ba^BvG54rH>9H7cbG$ed5q1Rx@*_D*w2m_O9a!|>Y7`AGX zhjJ|SZ|W|uk^%Q6MSVr1zOuUd-kCA`!g8BXJe?)|ZY^_!AWO!VD9rzDci(G#F=5`w ziVu=InlP|oFk2WMf>1|fn=S}H{(GUOR_l~)iwNE2X!R?}j;iu8Cguj@cZk^ozE5zn?CJFw)qr^^7&?zKXyxY$Z!+d^u9 z>?_!-32MOYyxxIjyv2@(*_zh*FSAENfFYQpsmdul8}W1@;sy3oV!dzZspGk{bBpo6 zbnm)UQ#hnNUu-7~)KycYUgT)kgkd*CN018%&$eF+b_X&1H}#0nZ(*R&A;=@NQA!<( z!`8N*z)AI!Ia1;Na&tl8$bi%h zc+SFZX#hq+#Fn2u0O89)5R%%ZY|pgZS(pkPtlc%L#|x zef*v({leDV6~>T2FY6Q5WR)Zo8kZrw1dPs8KCrYZnv|5>X|P{MUUPr$=7z7XF7f_y zM3ka3GG&pi1w8S1Z!haE{2-Pt5x^Fd?@YV!^wx9mAWKhkW)&2w3sNHEkc!t3l^^)t z-1uu%dbIf^zNwd9L^qFO#gqCK&scM%=SiG2FJ7o0d+ERP)KMP1z-`DgAeH~jxJ+D4 zLTc^lC+1e+<@a01?BV!vO9|THv$L6`s}(S;tq;Y6$qu=M-=Qdo%w_`q!U9j>pMQJ0 zAKtxbz(ewTbv|mOD(81f#X<1&XjJc>^cdDP8~-A|-IU6Crv{pVAt31UqLY&n*Abz3 zON4yX%3ugErfPjX2Lkc$vEN^zA|-jH+J}iDbXD)AKAxCAv`ozEA@#X?Rryt!i0QeR zZ_N#bhU_-@CBVCBC%t}c%}Nx=s`RmEV30~^L+`T#CE-~di1JP!E9$ww5;e+8==zv` zB10i2hE)lgRMPqP^GvXccGF{C>^lVv7%;O?VwgDG(fEnrlm@oFtXr(cM*T!_BWp!TBkN|=YhbP{6c9B(Aq=}RpeJRbc)Sm>v$c@1ow=%bi~RwUu> ziCfaf&h-%uBSo5NjK56Cbsk#c%M~Bi@mNE5YbY`brluj6$>jdDIFrW+kd=D~ zPzkkw6ao0&D!BO*u9!VK{`)srV6iJxWY3@(#3iWJDGI|^MfjLYw}Z-;L(aN^VQEO&eL~cFtWWyum{{ z<_K)ZIiG+f?ExY`les{@q-O4{l17#{nYNwb-f`+9@@zUsCGTke?vv!P6Q#n6>0@-N z9Wj@<&Y7V65eZO ztqFvSX2pE`agK-D(D~z%+n9Y4qIM7PzDE#P7$B>$xoyzoE4~Ltl+fHrml-l%yQanV zSDCG>>0KOhO-_nvv%EZ?>r_3tKT_NfeqE0=MY)3x%QG6c{Cf+x9eem$Xp@P6(86L5 z7Pr&j(yz0EW^0m@^5DAgDpMSyY>ZA%mf$;&Ul56aH&c_}RRlR{O)L}N`$-r|u8ROO z_P|K_UpDdGE?n*O)Y+&Vh_vCcssc>I6L5-xOD10js=utObYy- z;GP@AC68)ywwtF<9I;(f)ZO#(vNI?5ei&S9?f|ywjRXE5?AXzfvuoyL4V*>>UMqjh zT?$(Ur|4o=t0tG5+t8OEeKn@o4@Bp`l|D5wJDlA+HFeLQTgDuHgr&^YCr-5d1rdb# zvo!4;DV`?;ssg;i_~q;sEr91%QroKgC7O^%h6w=+1-s#Yx5 zWqLlUZydww9Y&_>V*V=oD2nq1-wzRM?3!BpT_M3FiAoB5i+bbvf~%9OFYq_H7eNB( znc6BbN={8wWN#>V(_hSEeJ69=_smQf_bb^;rlWOy<`8UcAXK!4GPBWR*^sP32*!2jk@dR%myvf3i;@ z5E7l%7c}z(TB@DZ8tJ%U9Du8jx)QGWRuuv6=Ma|02^TR?we16sneIL)e2#=JP43?q z>e@;?53FM2;_&WMP$yE#jeL3xCa~$&y!$ya1^BYKt~vsMyz2Yoio9BK>*JN<-~aKS z<1gF~*bLY2jLCrK$4+*IJ$S13aX^uCGT`$6Bl`B`<;_Ef4ag$W4qkk) zM{RDe!o@VfPXsJwkxGrC6!5MhAt*q`b4t=VntwXQ|M*vl_#`3rq@utXze1oP(4{;~ zA@E5f|32ndO$Xk*1tcX=a|`hP>2h;?nRi~MVVHI*C^T93b^lJ|$~1qG>6^^AK_*v8 zg9Apz96r9-{Vh$7CeLXJpWWjX*{a3799p&fqf@)tvV2g8f99qpd1A8sB|-F9L#}*L z?%<$Z=KD|1Pg{oLy#_MxV?)f9{?0627*dQR%Q$Q1gI^*5_Pl z6Df_>?X5kW^OdEK_&Vw{6$f= znd;zV7v8ksP|d*KY`lcm%qG~6p}`hcbaPtrvup@NxFhiK;~~h!T)yp?i!VO=WO|%q z6xMD{mJK_#jBz;W?s8l;9h`ah@wdm_D(Muo3?9iRJUv$R(KOw*3Q{= ziq{uqt{2_RAr_G!l1BE*{85%I^cEQ!!Qb$%#no9J4Mt7$v+pVI)+6BS(ca<>4KG(w z;MR|8TJ@@zOdO+U`5?`=1>V4to>qMa38MEDWMz zm(ty*&A&5yk4#FAcC}lHuwH@KC;rI}Xk8~Kt%+zEEGK=r#-l$%|Inu|&&CEopYXH+ z*#qbWK9SObMEB5QzJEZZ6O3GJ$Pz@V(mA8iZX{}rtZ2QbRCyrR#$>m2qJP$Var?i-D; zT3QBovL9EW@A?Slyv)a})_pgt5=VhTR@!t*YYD_l$I5Qb(+XSyaWPnXzFe`{!6_VP zQLs9vILlV7La^ae4~hNnUpzR6DNz!fHix>Mos&aqpK2lsAI%I~72lCCrFDvtkFx0@ z9+$N$tyt>Q)H+u#?7L2=oSE1D0xoIj%fo|N`Ke$k8#R_=`Z5zX$lQ#aOje&^p7ena z*Pf2WD}VNQ*>v85`8%5U37a=D7t_UEr_cEKZ%FV(b1^!j_oe!fYX#EY=D6CmXPAGg zJDx?QYDYZMv1_;K8Ze2xFMQHcg1r5tS~&c%mxZ$sJk2@8%=cj;DXY_G`KWm|nb)sZ zy6w@ELj2!vzA!x7vhlwTMVFUc?B)ubPc+CWAlps`D-%q#`gfBdtoxDo97p5H=a@1K z5x_YBGXNWY_6CCfRyW~kX5MJ*y_T!^{sNSy1BoFRN(~I{0P%=F>xGRG0@fp;o#)Eu z5Fr8Y8@$RtITe36qz293CHWtn-&4;{m6F`vHh-E(_W8?8_ORi%2VUfssW z#CL3yQBg9{&a?CE#`mMoQ>X0_bePhzdrVcNI({6WkL2Tg0;`%yFAe%c*~MFFz8wCq zGOoN>9?V=e=TabQagXRqohX?A%xwYGN{C1iX_6*=mcm(3T(hV0xf32 zzkujQ4h_vLO_#}byw6ff^^xm+{P?kjP56|5$POkO18%~70D5aAbr8TfnYWZR=&q#0 z6jJRkuWTjLfQYnj0^Q$C{(t-^weqaW_+kBjE%6za=yKVldvYq&;Sdbm1c-QjWNXEs z93J)DtQ$IR#I4Md78VlO zZh8)tc}FmEZdvy`$&ZRZ>v548I7rYGWe}8q+3)g1RPi`((==~l&tXiVE{jGlOH89i zOu_`#DR?G*UQ*;uipz$NlT))^?Adqc_`9o0lK{c13z=CZ2e>gqgNZ74_>>rxS4NtO&Bp_P zjqVrJ15bhrlvtb>_ehG&byPep?XLeq{L^_vHhLli;i7=(Lc5Q$xhuU?Kbv!8xYvpv zs48xyo!?d)!>ZRb?0mvH53jwK{pa*xo!2!_bC-PhB*_YvvL!8qB)W%RI!gaR5V>yo z3@C$rc?y14LL6`tp0n0KsHvQ~N`x;!k2biCVSTvJgI1VWX~R!OTU5`tCp45{o+dl1 zS)y1ILUgB05BJ1)lTLz8{P?5-aOgm2B)|peJ5ByJcyAba{smbN^~D$%fIJ`m4oW*Z z{=55V%7D4@C1_;5^!A<5hoI7-+7$)2?y~_1Z`R%1qfxa3paKo?NsJa?LKd*ubxue= z0_7BZU@R=~PnQB~uA_ho6xtzEqCDPxU02(jD54s;r>_XBeSC|XR;49yF`FM$*!+|Q zQz_wSjKd1=U~mG=?46GOD98}H-TqGIgrfZg)8Ba!@eO-qfY3wVPh$9^vUT`U6|o;G z@5Yc$5QU3Rc{?!1*?gm-hLAX$`xS=2H}SV$pyooo;e@j#OccM)HsS|c4sQ+pF1%Te z^Q^R&;5ciffSzN@k^iBNII-1jA~pkMPqJ68`s4st!6)rocUgGr?MjMJ*3t2|67;MB z1JyoLtAC3OBHm6W>0$}a5Xfg)TRT~7bQCzj@9-A*YU!nZH{dqE+{l|x^qW)OTBGv!+pSV51Hvhx)l!il* zl=X=_P{#gabmH5H%)={kpj>8SQWAZ%EO9mrP;ZQux)T%lObOc?6Y|Bx_!T(H-FgH@ zq0zWff_0|}sk3Y367dzBfL|J_4cTd(g&nfJD*#+^BR!r_2dTE)+-NU#*At*8XpN6m={wEUV(uwtKmxf7_JQJuY(F!^6~-e3I#uzIV!S>y)H@CoHV z8~a>W_5HfVc#^yV3SMBmEzxPb9_Xs?0s0lhT1z^71L!SR{TR>EHeE0Y3z%j;N-p-A z<@MuG;fdZb$D9#dc+P5Z!16L55h}MR8)bm!i7d&Kl9_OUZUYM*gtmvjG~||w19ejK zIP85^ZMMLBQe-$D1N@=X!-qI=3}Ao&9uGjTttNhh0xlrH;&+fI*63>5Y*A^~$q zw^Sml1I&#RMew6rQ-LTI0EYmjKX?xi52Wu8>sB^u!9~#=3QS%^AOFhYH`k?CIC$s? z_$6RWD{DF3(cAhbLEis-oq!3f|M1a=KEc?GlXvvy`Wsd8kn)iy;NQb0v%B5z+LO|@ z-Q2+XOrKp8zR?;FKB6y$cA+(7ZyY^O=7q(5U;5eB*4fgp)D|3Wspwe)-BN+>5dZrm z5!RZ$y|%xv4O*(*8Vu6Kp*GNMz!>lNjXAo1iqNdxQqoj8H+*yc<7I|ZUt5rABT=Wx z)W$@h#zQ*-jGor1(LvN-zUPH`K5T2~*V3I$iZkAQ90>G;cq_8f%YcBGriK^V`gw`i zFgqWOE{nzeLKv?ai$ol?eV|qzkqGWGlN^=^UVd!b-bp3ee!L#j@RO{h3G1I%h@Ba9 zZ!R(8ph+i;N_(b2Iy`b1K=n=RGJ(OBz!)06GT}@;868JX&?UV~CezZBRt6pq=Ud8| z3yR5t(rd5Ad{c!T)8jZj0NI0$O}I{<=Orv+;jSV&9l(D&z_cvd=iU;&+r$WwCCq`g z835KdC5rXprg@gR)D&$jK>TL&8gA~pk`)~-wsU>1*I^q^&-ZG)EXEQ3IU33R+m`4w zuJ2TnjxBo9att@!Swi~eTQ`5q@{2LsN+yaV{2!j;=rnK2j@h+-EZg)wAma!pQI9EK z8k`xSzDQNl@|zJ0+KgR4$Tw|MIL8AiA=7;F$h~?w?&zgt(E3QIACW6NNwL!a?1&;j z=e$BsjOv5zauKpL@X+IVSVLocDA3dU$VR$0w*;=dG5>K`SDsjPy(MHPj$WQI6$%WU zfrcyyxmb1+n)L_hODUfyt6LwJ$8`um@cBSso^7$eMPa#lEew`Na>v6f1e>nY6Pt zb!61)Pm@v88~sIQSqam0NwItpr!3#wEo-sHP66>>**)KF#7OS@jeL#!oS)hs%U&anui*uQ#`kX#$zgZOc#qDM%Ye?` zX_ODeq6)wvf#@7YlN@tvt61q;n}ZkzCo3}eYrq)57@E;0VmvCjhHI#z&O#?VP9XUu zputj~|9@Rj3^1LK;h~`q8%j-GovAan&S~+brG@|?nv%S1Sokc@N~7+4O}A zxBQ1fCw5=&(?7}~c&a)voFTXLnP*VD&4X*wFc%v75jVrjHFZv7r)(!gA)e99uWlBC zW5Xb#)aeR*5V(Mw6@vm$GHGH;puf4Pm9k)c^7oXG$YZ~H`%1(0Gwo-#-89BT`(;h+ zPcDOT4W?;K5`L;?8Lj^Pp+cu{AbG>PAs%w>gtra-EkwYyT>27xUg%X!bPp`vQTlx} z^PBrV1T=-t=aA63Aj!E4ye{B{-2^xa(5~s>%3=gQwxz7Vx-gJmfU*zz%na+#3_$b( z@~hJKU}+eO73z_Hj}R7zZ}&x(K;X?JddMF;aibRJp>n@4?xPz;EJ+{w2!xY1?V;!K zH9-g);dg~A44po6Q492A1G9JM94QC*mSCEC(CX6E+-p#j3i*{w5kr*8q}OD<_lzwVl{fL>;jn7x$!qP)hd`ztkuDZhs>yVOrwYoU@Vexr+93(GO9y{NEC2_uA zM8kt6EN6nUovOpmh+rqPOr@f+r4bUXG$f+6@n67VAi(QoOwKf=yH7i2q!jR*d}aAT z7`N%mO{@KxnO?3TkPSy`l+z;^8g2sr!Y~t;+75P;s8WJ_DCn{Ck{_1d9jdEaJ6O7( z&7@|dz<2CznlA;&CLd!j#F5Y?#Q_efmOv6jiy1>G_uUD8qFs=TL~XY|p9ZZ0uyVD) zxJ}5(1uj3Sh^Pv@U*vI|u^pSF$7sc?b}Nk;mGT_0Rz=_sDMF>{GvVd|DA32bBbh%T z;Pd1O>qq?8AaP2;B2SkElzA-JgX=QX*VTgbKtQY8$?pQf{(=Y%cD^P|vUkU+=*l$q z=_9lHNJ(D`Tw`YNn_4nAsE=4QuzMzu_8nm)m3BsqL%GdTE!f&b#zDFk-4@v8oTN>HzsTAgZ6NAa+<1QK+X;>oM6KB-d_m@F*{A=oM`*M`d_Wts+ zyg@vOnw`c#C54z}SZ7E@jt|X?1s6Nt8?Il)tnK|ufT~$?sh!u4F|3)&r__Wsh2)r# z6kyP~LObd&K-ZQ}-b?14?ax^clBxFfRPQm1c1-LA%(#MK12u<&Ud1;qeeA38?rUgh z$iq^>TxLTsV*zgSaexwR=RfYeewt)8UMVgWEXGdH?*w9F{{@n7x)34i4he1YE`?Xb z-xYO~Sq^&EH$H@S?ui*Mfl%%BzUeN|7xK9BhDJ#NMFF+{MU2|Kn9-6>J&jizLXVGw z-4GBOLG{Abx1jJ?4AfT8TrEg}IySc0E<`u1YrwRRp5xo;|6~D31n6e%t*i{a(=E9v z;dQm?s%x-<{)NN!&SL!71GtNpVN<9iF@IpggX_PR5Am;t_k_PsRx_k24QQDBKRYyZ z5p0#9PSfDSIAg^_27Q1KI|Rh!K&gS14DbVn0L%b-*PcKRLl9x8D+i2X(WSqqnr7c} zYFHQmBHqq_+IzZ=Yc+QC#(pM z_=|L9k6z^B6Z__hOt&8-%%nq8nnxvZ($(hI@YzCgnHAfD&6QeW-}*|{)U&`nAC0Fq zKH0w&&ggLMo4-f4ZAjKNd-dr8)7zvP&oNE0(zrQl$vQ@wo)x-2Dr|PvDg3y^`(y2W z*Vl9DR*9W84WXBMs`iu*?>sVfy3e?2aS{2qyqZ@BE}+!pa0Q18j6Rv{R^qRwl}SAiV-2O?-$7ySRfoa6sENQ z|3gM3rkY~ecZ^W_nX31@rCUdW+~50X5}z}}9+A5Jxz}}-R*%Im=eF&2_JthQ9w3_p zBocxEEQ8X+!$U<#qlbQ4qfBUh!ru5`ZCJ_`c3k$GHrdx|=x_mypZsslflFyZwb2bL zkwcs*qs7iIAXE3cuyP4hKeV5@G=NSKU~m+Gt<1;Jf3(^O{^ei(gf+P%@`_BcFsgB= zdBf2@5t1SRwo&ideYD+eUsWjO*hoXD?CRoqD@SbHJ8KNPb4ZntCGHxV#WYr#8s_*N z|NYlH=7NMgJ-}#`y=+!o&n8byegMnAnn&Pg1t34|AI;`eNlr5l-}zoKLC&Urnh7i0 z+E*Nc^SJpOtSn$LE|kixf%-Y9v#eFCwdsNe;!Sg${DJggek_^ zRTBOGC=DKZomgJuq2`j8Fq5BGms5(en+-q`rU)~iPY$%(!2F8dwnXi@XY7vt?PL5o zi~HkfX2D_92jYVtoL%STo3I0=qxskt(TTYIjd_jxYBj%L*JUdT8*F(cxT}g zJttw?b0cwX{7F~b`@`NEyKjT6B%;>*3;=R7F*|yCdH@~tH;APvtE*>XW>Vq^XLB5C z1rhK}>8w7j9L;L}Er_0d_Bx$+Cb~H+=$@5-B_HZQGQ5nK=pSywU_skJh5@ zAMrg+K)z-&X=RA0#ik*vml>--{2!-K7FeK-jtcEvr(O;E_E{nZc~{B_Sbli|?RF*- z;4e&#!O@D)4!ntFt;ET|fCl;N4W?@lc}!)B*#zV#`v{t1mtjV9%a*;(P?$2^XLRNy zrOp+CQ9D1w?2JBi4oB$l;VZ{^V5v2gm1DshyPYmmL7A$olVQCNi~V(XaPsO!x%HWt z>#NwneS!jY;L!R#kV4^TKrFs14td}KK#t)7{JGk6D z^l(Y+gw(=0+Z<4<=Qg8sil8)fm&$woj|FYla0dfRw%2T}CM#za3k#lkFGu)w{Xh9k zGrY_O(eslNsUsp>HW-NARBc6Ss-5GnUIcYgB2asVwmqpk)0^mL`fhd3)V*|0IvB@{ zwg%5J7x!Ln{(6Aziy{AamcxHwT7H5Jqk(^4DxAR~vGd;h2@te$_ucX$iCb;~eb9Y7 z|7?s!_hTr@u{T10c89MU3*eVAOjR?D-dtC{B1d77VSE^R3xXS?Z%%GW(N&FuY?4F8 zIHmvfz_qD zrsoJvYyP*oXf6Fo4laLlkLc6Adm&Pm4XB?R`Q1#;)_}B&k9AOa!c>14y z08)R1S-b*1!~hzT1AIrW{}0bU#2+)@7XdW|$n!pG=8ApbXGk{CJuK721ws8qtF&-I zi2#*|J90z?Abi)NXaF{PbcG1YLM#ip05m$q$?(bgZbB{|B(yf40S-^f&NRqHT_OJ^ z53jxr$eRX#dx&rP=oYG{c3B)R_P6;bL;xp?DQ2f8`byU%nnq@Dbmkt329O^08o+Z>A6!#W-Nr~hD>(r)I1-78IU zRuiLBBV70W+i{A>KkTF)J({Ab-Auvuzo>;fsY40a7*6!=kdIdH?CL#xYhUfO?#W_} z(-|Rlz?S=gn>imhX-(83=cs7| z0n@~{91itlo%Y{385`f(-Q9g|AOw)8IsP3q242N)0pHx38+uk_8P6>JkdHSy-Cvd3 zGX0OU_Z~?j^uK^_zX9rFje}fwhxvS|cxd!#k=1ZcRHf=S?zKI!J8in;wJSjNEBr^W zAYe3mCdh|nSMYN;Q2RsO2q@N^-ZIP+D-KL}hq|H3T{{BDCRwTEu6+ekT$QhWxS9WA zB0)haO#rDQ1t*a0Ek|uoKaa0y{$LDd0l1KvHL{inAvFF#r&UP9u879DB>8xG@LIyp ziHi!I%|F;=QxrUk3&fqWNzbTm4E-0h891quFic`m9Oj5E@u$720w1U@na)~>tvmsl zUyft)!B7?!EYSxsaE0sF%kL=5-vcv2fP&AD2iEfkbIB_T_M+1Dkc{!IlQtVB=ilYd z3kf~Ob{orKr(WDwO;R7kR75(DS6VVBG2<^Jv?-) zD;ogI8BAX^yz(sq4VJ{w>RqJtoT0tP>F;>M)kg85@1nL7kD%w^xzvc`d3X+UtIk!F zxM>4!KfX~*iSx`K4d8~Q#p zW`+6xSj8dV_|0FnZ_)1XA=e)-$)GFVNxpH-hfjzDmmh~_a^uB7l47p;T|~DvN%6C) zc0k1!n32R^r_cgE`@*4x`?uVN-o5SZ`ogzoQPnKtjPmXX!1+hD89ut7}2sVHbC^lh%;lnNoe)t1MAXrUw z6Dk3N{QOfe-s#Ra2yYC){2&}|C=PbNE07O?`{x54!22&jfzuO=7KSc(<0naLSKu*Y z6l8FY$o76H#$QKwiU?f+`;CUuNbw3FQN#O#ZX>t$OnM2@A3pjCMb@bd~L} z$0&ThZ`sTEH&aoSuxus`oh^8Lr%J5u zb)y?bb)6;p&g+g2bY1$ye6i-;zoTEB<;_#X@N_IJh*C5EsYi>4p{9^2JLq)D$NbMJ z+4|%dU0JaDZt>(xYSm8f{Xthvcb(?$&DYB{9UX~WIB~~)MIXM1LXDT=qfjWV*7k^t z+dNKQH}%kel(ndycBLbT6vQ0MY-erl-6#XS0l(Xts2}G^vvLsyv0@VQ+)_br?2{11 z9b=9pKT6&Y3`vUQk?KW~o2!KV6;rj?TOLSL_tQjH{=WtJ`JAh<9KKy~oXJBWh~%j% zjn|*G&YYJ|bO!j$cW)`*=MD7!fI-fJ_1ur(*uP1D?EDTB>g3sk?3C-It!Aa&)c4EY z114vZC3@FaKHbhPT%Wt0QMj24DG~^4OMaScr^tH%M(2-)Eg=Rr2clpPHiw7Cd&Utu zOVcHsZo1(k@DokYYd)&v#IM;Z^t*as0r)yLU3{!ID( z2F}s48lU2Ha@WmVA{CZ{u3H)6Hj>^$Dst6@lg;}c`rPmp_jG&J2-6QIxbELUpzuIh ze5Cn^KB<*#Z|2*?NJz@BBzbY+RU%}GDUo`ieov}DHcnXpHXS$C=Mw#~dZX-G> zQE-w*NYIHp;?B9!JmZ!p1C#IB&Rx^4uC7#ydyR+Xh2K8^SxBibl^1kWS}L=htoSi| zIY5=#YQX6wFE|_I9s1vr>88h8zTDprPxanyRw>b6@a)syXwhwLSV=|IS%d6fH!Z!~xbbe2 zck{IYa;quzJk?r^5_?N zP>7!}TjSkbL5!Gh-#MZbBd8q< z2{>uWmZ!(1KQfcK;-tdV1a3XocHR=%r1FL#7#J8@n*;G3SNd<&%~2I5@Tyx>XE1Ih z!ETp*)-@KKpN8W3I(9E4Lf2b@?3>Hk#f9eGevyLRQvS*Qu-rZCnZ*8622o*{|D7= zRp#^_WsWh9N~||F8klFkCW}!1DvO3Kq@X-MIV!a=Dj8bESj!c(R+)2a8X^WA;}OZ9 zVU%piTu;Xuuamnko*m7W=a0fU-aKC2@svsVeU#!!v*3Gfb05pJdK0a`Z{3~DKQ3ls zkw=uAT93yV*m$rvl6jstPR&+1@-8R{g$fsy3U+^52QsRb z$9@0sW9yW*w7h|fs$FKC`UGu>op0t9B>o(f;6lIp%j;=#CLAFhX(;T86A~%$0qN#V z6lfg6^M%K=EqZId4JK~ntw(wn>$zlPQ!LivCK7DS3u~F2k<->T-rH~Uv`WqXQYgc1 zPJ>QI4PLEr7jj5>1SOuMp8Nl-T8;~1Wq!&($ap%7$RihuyvZy(+Q3`IRhMteCT)CI zltS0?vVfCiFoI?Sr!`J`F*}cMIbuYwm0gmE?+8bzxv$J}N}w*?-l^}^#+;+u{Y~5H zI=XmWrxz2WFl|)g@sjl>@A<@d>c3SJ>Ss@YC|`C(oc_uh6yNHx_u)6W*iBkL(64Z| zyKlIAZ`7fDdT%7GV!eKPlMN3&XJJ?DTt?_wkT$CiPQ;sk?nJ0_+AalPa=O)v3S}b( zon)V+IQCs&RKuMk9l7sCq&(NMV+w$8Kjg`)NuoWt7BVCRKt}TUgUyGFkRdGm<=EUzcSN90AvK z@YTq_$lnULE|v$o43;x_Tr%PO`Sqo+89&6}hqHigu|Hyxa}}#;H}nxPt&bLzNd}kV z+rg<7mK=2bNY~NcotvkKy?lgd%@h21?CU+xAC0YxIdPXS3E1vV#lV`sI@2A!^KkNS z6C;dO47`P=xs9cIEqML|n-6TodaUL$tU>(n<5J~Z%kOm+6>a`i=Tycj=F9T+)V~D> zWLcN^y%tr5e|;lAMb2FWR?ajBR%#&pJ7RoxKk6D5<#8w!m0t;r_wkMw% zD4`KxVRqpnohCH41O7CAduOY}CQd09UT*Hg%&Eqmu)hVvWB$eXgu9C#U)8@PG?ZKG z)O0AWFZJE0j61bE`E8ff#yhilg(w#e?*AWIe;yC@{{D~SCCU<#H9IW`QT7;Qt*oW8 zuVu@UG4`=EM0ORCFqERjnr$Y=zOPA)W$eo&jNRCMA48qj`}6zV&h6GY=hh#_JRZ;M zx?lI@dgeBkTP!`4G}IjlQk2|f+n-#Pxm2FkyQ#6OvtuuwofG&I@68p&nS%8H+Uq$T zGBp^SX=dsp$+XZ|_}h9d#>1wm`ylE>)BdAf1x{u1NLqvtMeFjXt^L#~qreKR6>?4s zS?)RafI8vCe#l0hj?Q`gb?U1sA8)egg|)90-ojeNpo|-}y3up*pP1qu@|Q}l-VGZJ z!^tZ}&6UVXpwG&%k`Y^lZ@^biay6?($~AHd-cE zFJj01x^y{p2m?{(6{K4^r^K!rq<1=R)vOUx4q+d7NOhSQNxGQw=Z-IMM|dfq?Zske z{KPJ<&}@&mpTV28+}~K_4xJ;i-$;X@M~dP=Rk}i$K2H?XN20FuQ0G>>U;HDT;fmhc zPkE4D*-L{1n9X6hFM%$ar;ke92|=K0d~g_+sD|>u=6&)w`b_52<~)JTVj@ihwHo z3=jzHTaL&f)IDJ!wl)tfe^=+xigdt8vnz#J&YQ>i*oe$#m>EAH;;IHHOLQn&-3z@_ zJ!M$>Dm>0!;@7SO>C-~Y&QPOe%{~70CU{VEdHR;s$|`w?H?rj1>P+hR5V&&JtVIq2 ztk#YZ1_LN4S{p|%onksqW5_o`f>{?Fxw|4 zN~eWDGyhCx<>%Au9cWgWc=+|2irA<1O;p(2>e;x*P(pb=RSGUOwjiV+Fro5k5gF_U>vl2 zg#dud?p+Hb*YIZEFxSE=EH4oU&Hv#}OPzozzEgjVzZ7~u{2jB%>3Q-ndBk^H<#n6M zM{FjAQL^+=jM+{#h?vzPL-KoPbt8&&xNerH2!o#ai=XJhf1?osf5{7O4YX5Ai76O% z<(1PFhD%Y(1I5#AetMkPX?>RXnWlGi$Y!zTIm{C7mtRk@BaC9f$GyuU*>9NC^dBzaszjhH1?_TO+7>}-^S~1=Zycp zgIk?fnoLIII$~u3hPrZnJqloUz3sB!n^0WYV%CR(fnv;jg7?_2I*+>SJt@cEH=U0i z6cG)4a`2jtJjpbtY`ccNziGLX$;bLD3F!ykn!1)S<||w~@{(?sXt4McC1OA1Oy0^` z9B?++_|v0r{SCh`1LaLxdgW5HFBI;4xH6hei9GP}>4C-ZcXo(5e|Na6wAB>QR65yd z{zS&>4vW8->4uBQ7vtoU*q%M&#llDD$<(au$o&}vomQv(TcoJx)7U9mC04;?;4u8F zc(QyW#(D}>{(dopE0Zlw;1!|7b{tP%+cG1+T8B0^@DWB)1?Ev-J-K7^dm;8+={u&F zmu}K8bpB)lR7)xqUP2EDxu#`wDbkR1Z=Yut@a^XX8_~isK_@`DJi1iMQBNu3)iY8* zUpyP}LDpb0t8pDk;Jq}%zH#a*Gd0nK<#pz_KU)D?&Vj2YShsT|*bbg+qsBJaw2bg( zvUDdJH(JE}iDiyEipa6*bO_11BwcqJAcoHe+%Qe++-Q3q;>vQGi8PsQglW_B#%?da zP{-z!!k}9!UN6mLl*qIA-<%P+!BK;tgnwKbc#!j+ne+6*$*CuVpTE)_dm>XX%hKwj z?)m%$2{xP@g^{I{Hygc2(^W*=ksMG7@LP&sBzlk;fKl%uP9p89!Kx_UY)38ymbd5k z64#T%`;%&AJw)z>ihDp$Vx2+~nQf2Q^F117#O$+_ zmG*$lG@qq0!=>!=qeWrL4YsK z4eQl=Jkn1(XHk!4tHu+)Nc4Qy#Z#? z2-3nCWekF4*vhl4>3$M3iDlZg+MKC8f404y2M)G!e3ySVPs;{%mwXb*O_S76>#IdX z*vzp?nkRU~C?-opsBs3(4n*@nc0ex`=E92XQg*ud(zmL_%WO-z{?L%A?o`WAKC=Xl zwr<^meZE~Pt6fS^pN0*n2oXGW6`;g zmaY2nW@M(Soz&ctDyJyc`@WABVF0EnY{W~P4>jSCajloan#HrM8A@VK%cSpE)})>G z!5;zqGe+dxzqgt5;F~9AVLg$|n{|skxAJ7rBQ&aJ7;O$1?M|KZ1w%gKd|FBi#61o! zGLttA_=8omWFB;teU+vvxM79AWlaX#Cs~L@58U|3w*VYJs8y8)Crk$CM_M}Ukn-`$ z15xnOQzyHM1tu&qL_*o_Qoah$s&C-GChZs)nWApx^k+nVkY>$U58aPG!+Cm<;-uH{ zUKizIcgCr^0efdihB}y3%7jU^%`M- zW>pUVhjS5p(k?Gdmbus~Fp{8~6tEr`<~6fAal)Mp=i6sC#2%3+%9w>$IUX3^d!BMl zamI%~Y_EyCak0EIG%cX2nLVek#vD8 zeb>C+hZOA+yEo5p%Wg97Zv4R7*IObNVzd;a23NM?x2enOslci*nXCYfOJ%mROnPd| zNtsIZV%M?u(;s$Qw-)QZvigg6U`!RAu3K+M(>KtmWl%Ec(f9&kIl*t|?!6;Ba~ma`l(Y>vxp{pu3ZBQB1Pc4b%F`rp>)_&Eppe+#EkL zLW}UbA`_2$E>Vcz^$=5eIl}_OPiMfoVEBS@q?M?;cwQt=Xn8|BW>j&B(qjE>Qr4Zy zOJ-33Q5DSUA@=^!P@fo3>k%AKEKWVTp&^iSu+=OCtx;KNkfNKB6Of(Q zvDlugJV1~5+{mD17Nq{c2sAY&orab`W}5_=V;y%B9Quo09}g~{kVlN`X1Jcy$Mi4F z1f0OWlzjPxE(0{o>Tw$KY~-c=vd2L{ zm#48lhHUk#<+F`J!;F%di=SxIgI~RB7qivo^bvE|xlkV}ckk5||A<(gro2kaaYV>L z*m(hD=camYbOjf_Gl-u3^5C^yIGNtsK9e^D){tQ7o=4v5ej-V%ic#yarIhIS_gJM^ z9lc5^VJM-V{u{HP9$rDz#(KQ^34H+Vsn|WCh02C^rm0bufvxg)j2|RzERx2_a^zO^ z1>&Rpcr)Un-hsE|gDWkY7%oU5N034V)lhj=8iUw5vCiQ(_A6?i=T*~xfl*@9xTz^d zjTp*9wfRiV%8&dWnQbNZ*ageiC*V5tF&#GmA?LmnxHqU0`*L#f_n=JJm$zs5bGvw+ zy%Ie;NLGBr4irFyaKfp~(43f*w_X*L+SBqzKU@tfK0#es5VJM0ccPmZTgVE&x!o$Y zH2s#IC_lJt!FLjE-vmyi(g7C**GjZkL>;8$qfce`A|2P@Hvi#v6Y`Orl&Gclv3N(G z)sHFrTuB!Ga#%Ra^Ko(r_Jx8@pJ=;OJ6GWwyapfoy9-jAFbjB4v=_iunuLKy(S>~y zt%#oBCW6~%2pSULBryZTGzl`UxNuWf^hMtwLkxb=ZT&mV-OjoR zW#^w}G}_bK!^Cn%8MylBU1ffCJm5QZ`(jD-#3=6LXE0@Y$}T;7aAO8(#Uj_G%X_&t z5Gq^-r4=AXQ=E$btpiHujcB-v4Fh_BMQr=3eK`__LAA(XJsM9|kUFAkXX!Xto6f(g z+Z&v4v!|FM0Fym#0a{_w97G3v*1L1+jgUr+$mA7@R%5aTSM|{9IhFtgA@VCU$>pDt zk6nDx!LpLTaiM7QF^!&A_;`W{&Z4&_fDm||WpIOI5J z+8VpOb^7LQ&CtB>Mtq*dB%@VjMx9_;G8Xw^ZtdPELIJO8eh>>M21pCfU-AO?uFXCb zvbYG{uZ`20`xbC*U*~nU%Kp?&+pm*NbmQ4@Md{p-4Q(tlw&rC&ub-woZ|vY?gzQX0 z?>pbl*-yfjFYf%hLbTz3A#?KWiE!oP=dDEbugoZ5$qwYS|DMoMz?lbJxwaFFdmaXIn|RBidyHNJ$bBqsjw(HtV49dyHdWrf{tX$I!Edkzi`Z#;qmPNl2u?M`1JrvCZL{3-Is?PrPn z8{&|QBXKHp=s^Cr-zzEAb>8-&jpaueIm17hMG|yUN+}&kEJRxx3ayXA-v(rlCKyt3~$h+?!7=e{1mKopsAZ5kh(*AU0P z1Kh87T`{qH%X`9p`fi3u@W_E@qsuL*XO=W41Pq{ict>@N!FUD(xIdjDES>utvJ7)g ziF@fyb;I86vdvv{tqp3ayU**&#zz7Uu1}T>AP(7eBdUaCCvtvlhO(S&l~?YVa^vDC zrcflgS;M|`S zn3&fx^^=fxh#byg{O4_)Tb*As@<)q{dQY3%D*C{7t^9w5hMhdH^1v0h=CFM{HkW2_ z=~tfp2_Os2m~|ldOUZhGm}7LQ84bGH48M{X)~y91be-N0IR}1M@v1ZKw5+5lN$F|c zixo5XE@$x6vh19g0#_hNjD<^6D`nWPBMxH=_|*E2XwZU6pXY6_>*lh#$7qvHpMYyv zbI5c&kWmH~qmr5BaK1Cpb-O}wN=FzGsUgw6cSZ)D{c9*ZrD5-G{q?-aN(_I-%E=7h z*XO)`nhLvaG!6m&9Fq`o8ExNX?k+}rt|CtONVi_#sZWwvioo#Exq&h)JN?PRncI8s z?3?cvi&DAQ;!>jF`}F|w;Ur=dqT!$AdM>#-u09eYynbeYzTI4)+$Uy@u|<}T#~*Oa zDeW~#Hs<>3arIS{cP2#4>ycAaBl_OL3hc%Y8Yj?r-C1R){c0*s_CQY4jnQYrCuUvm z4+M^I4CZN3+X~;t+sR+ZO-G$sMsv8!9RLp1&W$`hgM?XIWU>aZ5vP7aH@QRH#YuR5`oXcUVimtq1v#&N zrMx-*IozMMxLkLq2fP!myA_KNoIL3#o!lYU}vaY-f693rY|9XSkVs05tB zrfzQSW|~Fi6#9m5b}4jH!wl9T6~A$9V_v~}T@mY`I(6Vlhg3E;U4s;JyihU>4jJKk zDhrKVEkNuffyoVcFS{5$Y zj~cxd#RgcKlXpl^T`k(rwXK{l*w*w$K{%pZZ@#wfc~yvJtUs0&H5J%t>c*^A%ud&F zb+bJ|_5t~qpzAA`oTh1$jNRHSnaO&HF5yy3tb8s=KLzl=y7Yu)?N~qGS9_8c@X&TDUEi>fcW$mV^!=p3(!J6A zSG5j9PNu`+rx*}qs?|3$L>ARiO=rP7j-tt?dHlJ*ilGPnMr0d0HiU!UDPz11% zgYmuC)-Nx*Gq+|dozBaKt24fM?+H~cVi0hmc|svmqvyuBtDUlu;QOS)<+#a_W}K%2 zrWZp8oYRvhP2e?IJ%Oz<6>DF8JliO;l%N{|e_NJSXtjEkzfi3Dsh-CDrRPfZ4Xl>V zYsqGdAM39H^b`7^UCKj6xQprq=sMcLrRi`H=_`r2huv}+?wuuZDN`1a@X*qxS30|^ z5`Y3KNr$;KbVtLt&CcJ8e3bVJgf6x$RK0m`RaO{G`gJK1rrkRsTUNg$lB(E(e10>0 zJrPorY^q0K6hV9=5dy}~F#JnWE++4Kmn^KT3~xJ+skmh@i`=Zige$7yg!wJwXP%>s z^U}k=GnR)NHIZ7h7TR#=dt&(vk}2aB>|!xL(3pWZ!&6q=DIN{4iG>3_nC1z3q=#yi zG=ZYSe7hC!xcBKW8UI<`oP*u6pVvG9nJz8bU-ssVY|(OlVX-T%$rp>KgDZ(2#AP|Z zsNHH&BbKP$rS#*Mev0Vc`_1M@8Asd|6i%|?5OHe51HsDvR~2{6Ypqwc#%KZF>4KLx z>#s@&lBssr$x80pD|mTGAkXzb_Wx`~lQ4a9bT2sFCUBibVA!dvxoC65U@>?%UuRV- zLt%MPESV^sYH@JA_+Hf+SnD5waj}Utz{&e*Zd@3C#WT0{^2x+l&z}dAp&hIb1J|Rj z%5dIVxq9#J1}-<^4O}u%#CIWkJ7{69#H9ew#;-3(`AAfM1|Cz5F~|&Y-#@qw3VY+t zbB{TY>8sx`u-xiqes%Qx^yRvDMck!oElR1bgvQbbA6l21GuIZyOB^-7$O zoFjcV07x?vc7P2%nn_z>Ef7mo*|-zYdXF|;H^o~}UphTfF8Hs&b&Nrfj{F;oAS|dW z@X25|JO(`dqNW9Y>whMAy^%^E0Sr6p41ZEu^+!_=(W+=DCI5=~4_ARR>zT)BZ(5E2 zY)zHtbVy5Azjq~6{I6=eJI@>t5BI`BNNqU{d{&U|t;{<+7M%oSNYLRfnu|Pq|)1g(R4&{6zDt zz#jzcr4BtPtmiW99Sb^Xd;crT2etQEF~D8GQoof9P60OVqX#(df%fFU_JJuRgc#;^ zVg+=pEk8Y!7PwW>@GRjyJiTo}2XnEn>+uE*ZTi;PzI@B{4KAQ{>T1RE{;h;SQ#ygj zA#ZKiwK!kx3-H6%4hOfKVr*W(!%p%n3qB1ORU!8CGyFGlt(4_0fDy-(M3-KEw5Gl@ z4!-q~NSHh5wZFFq`MDQ-;^4t4WA=l)XZuL#SpuCT=ekZLX1;sJcRsgj>n+?3h@M#q z_Ww0=4ay3l4C{DujX+N$$>VyaDb3jg$SNa#-Ch{%5rgOcCPLQwZD|IcedLC=*U9%i(NTV8lUIKQ$Vq^k_X3<-L&p?Sp5Tae8e9hc7=#es3=W0;KsTA4 zXO?ksr_CcC%9{%#PE4zQT^@RqQ~O(D`WssF{CeDST|g|ujX87O0~!XICBsH!HMV%` z{u;zvh&L!p$CP|3ri?+R4HH>lrq&3saG1<; z)1&KqF^Zu9>=5u+U?m?PtAisD=AXCvrc<5T0Hj2LQv}p4a0ih-aV(rar|Y?ys=H{9 zYW*9$?sanKx-eSM&+}7d|IgE7LvF_;D1rSk%}%$9%dOf!*JrlWcx!${<&-VH%FE^W z+vucPOG7e)T;*P2vd5&Ut7hqp3$HObKha9q=nUQ(8sT=)wNF+FuC5F$F;U?vc7yXD z9(o#P2OMWd#12(@*%EI2!)+ zQIsBOvQOIxrfJK^iSq*?8yg$vcoczVGtiDs=GI6Nc4)$D<<+bs&GYyV^_g}e0Q7OV z6zF@o&mop@kwcr3ZQL;|Tz{xE?gHQB5Ipl_h@zyN`n0J^p5xtM7>)6|MfAJ=}tK1!1l| zw=>>%pH@<$D>|Bb4Cf$moN$I5pxTQ* zr(^!{dSF04^usmPDi{j5J|HZ*>@5dbb$sMOs<~4q4DZiiR8I5$b*n%Sf3*3lv~NZf z7*eOZ&@=A%`X6L23a#!Uj>e>LW26@*4ReeT0AaWL7%S0Tcv(B--z)`q=ui`jygT<9 zRX&vXYgFhG^aasjb{K(E)S?dFhHF5(rOE~F11qExcUkfCr&kHHbjRbt7%t}dG|llm zaSb=Q&t1Ka92gH-k?-ZEu0bVT_c353M($z4E@7=mEp0T;QFzAtah8!zuTm97tI509 zKw*=J|N8z({+YT)3|4si3RU(qldRZ#gYTc56H~{7iL69j?f;OGyF?Yj@hNUz{yRMy zgaOt9;9;V(EASL0NqnXRx6TrL>;uj;F{mD{&lbeKi*entT}ddckJle%-uSFTvB;1O z26%-e0WD;TJxQpIKh|1#bcvNo-TPP;lVBVz$sICS`kZH`M!qDs$~T;BT4Cp<(%vJP z%dL-dDZZSN*SN~9cOlBHwf3ThUbbjzZ!FJIwRF2E%QheNu1p@t>vttJ+K1(efd;w^ z2$tWs-AEuGAh9&@(F8dEF?oC{>{?^fKTW+bKJDLSc@$NhU0TIM&%N(yLj0Qdo!b3r zqjrbsVu{FQP22kpS%mogVR~rMY^wb7Nm7SWfYGM?h(v4Lp0_z)yn+&_GTvGM!+b%d zzB_Fr1O^BUFh{uHR-8I*0eq>zr+!U`q06)hq3w4+PFb^zyvsFP1mlNG!_f?lqgs)d z>Zx%1zP}}`&;372j`@w>q)TMww8h8Y#?%Kc^(`hfi0H*irBI_Oh4S|V#R)ga%+qpjEOF+tmY8VaK0z&ZIhhH_@hI`sfCzxM3h%0cd?@X_EIM zKo2#?Cy`2>U5bYmk6_B3v&a8kUNtLr#L7GPsyimB*E7bfZJgm=56SvvwGjd2frJ+ z$2DBhOH`*OF{kdz7Y}*+4r^(gX=%Dd$>J0nF;a$LTOOC-Qnh<%?g}H4ohW}wvNiaY z8YzqdAXl^?vhI|s^!EE^5z_KAOa+^&npvfSOg8VIWTF)9%=lUX&~yxfIw z6j)6W<@2AJ^N?g3j!1Dq2^d8c;O-xP>n78TW4wc=RCJCi4e10NZaH|%9<)ug?86>T z?<<6H)V~9gW&QL&9i=_|ziO9jX>QK7y|a@Ite%+cWZ)iwkHmCb0*(}5hO*0hCr=)Y zlNdVx64ijpX6$p?Fd_l&UAI6xP_j~>P{ns4eGu;nz!!k4`c3nxZyo_dIqKA3#R~1f z%m-Z@SZ`NCd;=UB32nC$gf4CTq}DE(Jmp1Jm!^DZwcFa;xxY4iXyGicCP>#Q5~!!1qqeM? z1REzKKEPncKG$L;j{mklZlaaq+l?~xF+J)PSwlKI-nrEtN1**N$L(%5Dh^A_Ly`r^ z5EcFCvh|S#qt)&9lB?dxDrQlbNlXwur@k3wLMN5=i162LA1~%FL#=nN=AVAIayH?? zv!_%BcWgM>csMluFCbpl-8l_`M4qpb53AJFV`8=PHvwf~X=K#wnf=LhZB?6v!4edB z!CSW4r+zFPxX8ubQ_*2Md3?Y#&@NTmaw0&R18tw~^a6ez3k9d>gd{GwSPvGi2%rWF3ocsd#>PQZB($AddI;%hkz5Q~^ zwRt`}UO~SaR{WDGgCY%%H!tAa*;vronazRhsT#o>UuP)^ZHS#EXE8I1+6ub={B6VZ ztsCF&YaM%d0=lN?&Uq?O`e{wt`3F1(IUyDsy`>)n{cSknF82XkY_if6hz+2pZHSch1##QX1()g*MN--*z&u;mmw08%3{05U z`b#X3lolR}R@}p7{F(f$`!lD!bzeH^XQV1sxp5%AmA+8BrANs1_x;ysx5Fmjg2D8V=s!bAy(hdX8y-n0{jg|NaddKcO88_KP zV#VenhxoyIiD151+SH32bw_^@M5R)?a#IlT?x)m?Z2Y#RnVmQq-+Am*3A4{0gjPdqiglgx2}?bM8QSwp00Y-^6D1(;@q5SKtKRAex#-+g*u@mm;!n>exm147e;%J zavkEzlZK&XCNk2{q!)`;H_Fkf2%d(xLpbU!K!Q210E0t@wqLyMagBJb17Wdw0Nlkj zjwSZj-_ZKB_^Vp&b388G%%y#Eo)D85)-s@A;Oqk)%xh2Wt9s&fi0=ui2=_Zddx!uZ z()2JLKSWv`7{eixwdZXt<~IkC)6NocW_fyuIj&Z+5$I^UL0gOzJ3HTVOnfbo_3vWDs(R0 zWq^dE2DY4AtExC$Z}MeaiI6f-r3vLzNOJ~#Mfb(|qOL~p7TdQQ5)~dTCT2iy)d@t- zn_5wZJFR>Zp0OVJ>U8F^1mnp;m6zcHZd2ZM{k~c<69SDcN?Bt~cQVYDETJ`!F^Lep z2}~7Qa1ypRs}~g9uFlATg||yx7%l9$|Hi4G$1YyXH*f0G%3g}}40?m?{tUVuW*hh6 zW3Jl@&Uy0GB$A-a(21@A(?V4fD#@i{ZQFP8qBGWsbagFK-UzH>!hG|T2^2~2fqEe# z;P4Lw9#nnkwV28lojQZ~7(T3qbNW+{KccP4Uaqh~>zf|RE6F&N+sAS}%mF$?bS8TB8ffGEE3Nd!3mlrn;~ zRz$NxJwZ8K+0N?7=jR>b=gVXB&gB+`--@1tseCz5OtDtm(r^zqBZF8IHWsuDI)Y>X# z{H&q-9W;8q>FOYt`da_$gbmb!4*Oa~v8dR_?j6jA^LKy`TimF}8~$mb-)abV>)p=C zSs~Ye2@PC{fG6*-`cj()>iPb{^9xllaGSlT{795aoaIv#fM0UV1L*vn50k{i5C`eiuNrod<=oRC7^Me@m%M^y-ftBeGc)uKZ zrzze(AY+cPBZAgpT;I$8=9;4k^qW`3*rmzY zOPmn6t0HPh)|1hML8Mi?Wy>Qz&&e6qH`MY01r-$c^TaPKA8g_rd-9H|IV>K}GENE@ zIX?X#C#aUu&rrZ3$hrfM;l-mHbp1|srGq?Sq}8sQSD`5G^*^>G9Pm31fTA1A{Br5p zO(#NHIz}aWJL}pn8N3B9$1{+H5b^urjq)_*d#1ZS1rM1fq3&IcIxa_0wHf0nBaR92wsH>0RTWW0KUf6l|x!$h9CaTirK2z$zMDIW8l zJ@-kD>OwLsi&;48CVFn9=0p57)9YkRg7M5ZR7v#xXLrppFgykGei7gU{u_Ez zhG%uDN>swca!b^euUV*tNyC13`oNVE+D|Fv#j^v?7ph6l5WhR`fYAg8_yWYU z{`R=T13U{@N=mQ1JM$mBmv#q$G9gxX&@1(CzQLPj)WO(8CxrgDR$ec>~P_s-u-^i_=J z;%Jf>y&kDr#a{efgOC2bGWtc;a4m3Leh&>@<<>yK#PdF9ld^Hzi|=+ zd@wQnk#7{>m6XzGd_sX?B*CTOvdPPI!+(tQp-~~+e9A(7o{#?_2lN}ygoDs_BFQ+F z!%t?Y1X6zFSyL8&+>X%_)vT`cJEf+$fGjF5en$puUxN}ofNuf! zLBY5NLyO(x$vH?0(lH&+|LbhvMSISSvkP8Cw71L%_6QGOoz*{-j5W=4v;bm(Qn;c0(Chnghv@< z*B5k*JfIMjX@jURq6g;3Vs%sm%c%B~L1p_53qnoKN@+HO5c3_JN8fVdZM za>bIpJ)fne{GKbjgV;(I(=yipLX{IeQ+F&Lgg`~&#pW;|qWUQB;a`B=3>h**;EM3E z(t36{8V#g;um9M>A~deSHAsI07@7vDz)%l=nO+7+xtH*~5iqL)KHNUh(P`BTY@@7U z6m%N))`TOF3qn{MR(>Urs5qP_wgW!uqFCR(`=`p7Q)xpAqs%PTS}*Awj^BDDC!oa} zJ;GKU#4v9%8t(Uw8E;mu%14bjim}A^s(i`c(0>j<`c*OgB=qa<3?n?zHj7ZOU@jVjBn}A zysEIieqMI_M?t>K&^Fdn*3+D^^-GUl7aNaO#$-9Be`in8GQWi$1QK{<{)!fD&b+W8 zmojVcy7U%~Ztk$jT;dm!M}hXHB|WedoeJO0>(XQ-q0dYx!%A41lVxj!pQsRN+&{ zTM){JS7OsY0<;<+nzTtZL&_D5Nv^7ML}}a_ZO%b$R&n?(#J83Uwf`f;m9O$yfyZ(V z0|3U3nd**i$4uJYt9!h5v&PwH1^-1M&vJq~_hX1l^-w0Xp3KIwEITxjeCNV7HAgnp zTQWu8-0UHXlda7*oe~ zXs&*F%&Yn-mNss3UwYgY;dGoQP5z^OHNX^Y=klHrxqwO8J%U^%e_b1cQ zE784}t7FRkLh%Mr6iOR!3^WVR$L9SCXo z5t@CyLYes8n6V>S_rEXSU@HGV(GHg5zJNJ@I%V;3Y~=Ni%fFAPOfxFr_~G&n;RF>o zAxe1Cf`BJUVz3e*t&5>%)WYW9?C7B- zli1lcp&&wcF^~EQNJ`W6+jOg~l+(ZF7mB4z?xo$~Pvj#`v;=!XA6#>pLgs}xhr#8& z=BwrKsqxESw|_@=jpwseHmo^4IylBxFji|K5@5fYaHVlanm9S|gxEgF_!`iB4Pg|Y zi~PP$`JG2r+6jw41<2(wC9iI_T~d5j`Z3pXB>*b~)<~x=u11LYVMu}i%4g^f+-}YbnExg(0W(x8$rao#h2ykiobrBbCxM$9 zsbLV*>MoOIi$WQurfGxS5q5vApQph8bat>q*Fd(u2r_LWpdte-$18_zj_gn+%rexI zGirtOQ=crJq>!(9fsd={L?xoYpuz>F*=E4Q0Vz7KA2rg$93X)$P&)k_z&UE( zuHmJvpeC@=zK357(5&$c|Cd4!R(?Qof(woi*&9|=-%R5bj5GX)J+YJKNkN={tKb_y z0BTWhrCr8zy!`)v3h0Q?`Vo~*{$=pJixSDld7IEXAZPOuzCqzoYo3IIFZh0i9y}@i z7+PMGVi7Br27m6zMmn6Oi8*}cEnK{wE7jOm}U0 z@H9k;tJ=U)>DnBzng+DHF&;9d(I6RDzqP?=9+Z6-cX3&n0DXLfdQ>bdwD%5Nk{l}-MQuP&+21X?VxaS^xvU?*9{G*xe^}SdwX-LW)4;eUWsK z=$ny~-%)(P%#~8q0@*ons~K{1i>|oScA~$ZP-i1jgS2*k0RrSXozu=AnR@^Shv3(+ z(m-5;#Y}WaMQ(bJ6Eo9A^!JzUr`O*%^shB3a66nd0N<5DCJm;^f1}AMQhd!z3YX~!HPV2yqqk-^gGSVQth@`}H4Lu={Y;~1XJ zooH0hsuXdocu*pyijl54i2Ut?2i9A?*%=jz7%QI~OI%br6wm=h`@9qHcVBgtzPEGS ze#d)4FLvx@+=P0afx)5WKt)i{5qT8ICk+4ke%&C}NSdsN#HXvf-wz*WK2GH-8s!f7r&OTm|L`l% zWScJ%v-m}=4XHs`0Tx(VH+afILCEWy=h-zBmQ6_2C1m_Kfsr$}IJ7JeO?-WgYi3ts5L(>fykctjUZ=YT=la;2})QX>`d z)iE1^#;Yh8xqKBaraQAxXwkN1I>uqA{N%G%WYCMv2&lq($@$;kp9sq7s{PQ~FJxG? zFb;{#x|@)Y$a|HpK5UZB&yML-khIl>#>B1^V(Vkc+#C%sMqPf}dgij&t$iKm2p_V^ zhg8wD_0S1@Ce0w3=sZ!?7du6cVmpsbSNs@uO1ylLez}{Pdl?5svs~TZi3(0Yhz^sC7Lm9qh z@_kDpxMGPT+)={7Fh!!B&k!R6o+QIu3G^e6aFZk7Dj17em>ZjpFQ&ci@Nv)gLEC>X zP5TlAtmE#C_UQrAU;|(G)LxEJAsJ|XZ?=t#L)i|!JcRlVP+s-|{Gbqm>aT+sY={~1dewudv!0h%UtpT1m$C3gRlV^Nm_nQDS5=}2n; zf=~6#M8uPTsT<;A+X-xcLbLe+IxiFwJ%|DmzY$HkV*~PjG3gCc=m8no|2f5nmnIsbmisfy@1KhF znZu~Ofwc*@Pdv9opL|hW`|)*WeaE3(=&7BO4zAf0QlOpQ9b6xKfnO5<74li&9u~67 zw55vTCR3dRa`2#Tz%XU)B;9braL{ zQe*_4Y)?dqA-8ALKk)^}9EucMs*fqMMtn?bYDgl5#5B1;tQ+983$+d#-Ta?GrT{Py zfv`Q4H{m_h6!Gc7g`0pK%|Zg>k_0JEPl|A+RVTn)TaCkDc>{i$eoojZz)pT;z=Dp; z?3|WKBHVA+eny?UCURFK!A!Lcb2w70qD%#S^EfX(^b79?hE5<8UWWcZEGkfs3H!ML zc^Ls>wF)w?@sCG856rMP?8U!%ovj2Q%U{V@1N-wk9xMbw89qy-8C;+ilFV+`TAn-v z{liprlCI7Z7cQw2|2Z@j`dL+h&zA$4 zyq$?^@7#)cN*Ua6Lry`)Tu`bQ&NP%im^4Z+K2FGD6pWHzG3If(p|jJz8YRo+?Oz7g z>y9RE%uigXn2+>zkj=jAv`o-G))>|V9TPa=vmp}1KKiCugl5KE{c$s|(Ld2$%Q5*uG*65I&SBxAUVs^A-UK>5Q(B62u93R@q4-=H$~O3Z5d;iS)gWLXdnQHFg(2=JU_eFEAgdFAOLP_d z6#7u!L!dgNBAi?#haaQ?>Sqsg49W5qqnrSIDr{W}hOA{3sukDVfM+dU=hT0RF2Lkf zOVYKT3ItoZzKs;ig$sdKvG3k#rzSH&eDl7IapBWAblVdmc@9~FH zjV%?b2WI_S_-T?a_Q6Y-j5Hwc7{Lk-Qo4_q=mF?7Bqp=h8Ttea-u=an27`K^4`;xj zud{m5d#h}So{`>YK*qfL;PGvY|K%~deg9*6!+say76Vsub%gZy8}Ah7HW0;EUv+SLBZ75we;)dT<{2j=^l_&;CcYh20ha_JVy4>$fUfKJXB)TN#Vdkwf&hG zFd^d;P1o1gf6uiI9}n9S&`*316?%444RJU<-rWRIiMt>M;K68}Pw5W=X}{s5KpM@P za>;cdSxwk2_-ql>r-WETTBv2ymYG1~h?! zmiwrYNxvtN>m)Z12kUO9y(+K0@J}K znC(nch3y-$Y1^ax&p9~c3GLKT>w!|Y8FRYK)erAz`k>=7~pU}?F^d>gNTBp z%`=3s_TqtCO^;*h5dTwHVsJE9h!td#?qU#v=MfS-7evPcc-!6H+OjwM_xhFe7<{_3 zXEL{@dmX)5dCoNzl@YBD^nRuluddw@f31w(*?%Z&+kwjoEgP!hDk-p- zIkVY7gj}MAH+=k`Q zum@SiSc4O%`9oSR!sU$y-!zGUDVFmFZkiV+zam8W1gvI0O(!W2=pjBc?MJ#*e>mJ) zcSzC!fK=`O*Q9@FcZ8oZaAA1yKdXK^4%PM7@hA%|WjGAy@*j zGprY#Qi>DaK!J4YuG$~vvxfYDvA>RR1Vjcp$sNShdbq+KN&tX4g>+M%+tns8Px+Cy z)8xPYKhw+v@Q@BE^ zqEbr0cuH*bF31?x6(7^&JL;dh^T4s{=Qve>6kn3EcB+4L%ia=rZu$S?8fr zQPGVab>F`1x>SoXTT4e(Pq^RiIS6|lW4coGev{tRTA(Cro1i|o4sW0h=k)pj*9c$j z{BYU&Shb!2O_8O?u)k#fm(JhSBC$0mT?y#Bc2+bI~Z-80G&29TdZo4%i|9 z-~iSfX^K-qq$*%yz%~J*SxmLZ)TZqBjhGtGe^CJf_u;?>Zt(Xj%8b@<5Dy5)1BK~7 zX`J~u@DLpZk3G1$>9%@cIk;;RDGCE+vA^=_ye_@#BbHL>k4)pYJ+ zwoZE|-pWYr6Fts3suTtW4btQybO}lP!rm@l#vUVn;PTPjQru0iPze>LfAgR9bc7?H1Z3Bh+6cQ?m#5d@0Qo(hs~9UQly+o>&eqf^`{auu+ca>x^W=7?p$i^1kVjJKHg10K)>i ztJT*%Sw_`sLEEQ^*97kQzbBu9wFiP$SI(!L@+FYc%{ipNEt(Ypp0*H#$&EyKM!eYD z)JgNk$kei&8A>o+qg@P3fC(G}BLon(mA4*59$?#sVykV+}fcaWJh zYHM9&eF$qXM4BxrKVny`&r>lGqF*P)nAK^YN^xS0FZ#^tQT9BEn-@qWp%}B%SrAYE zSA$x4h#g%7qtys=G!#^Ety)l}PgXe|k;k2p0Vf5SMW=kf%2riArGwI7nPJy?6e9{e zW+>UI{k6---PAeJQw)^s<0<3z4)g+11|?LH=?AmDnq+naXYO-I_|3C151;GQgs@mD zpVyg02HcMN2ae`Li#WiEV%3!taYlphs1Z%ke%RoRw`)apPRjQxLGZ->zA|3#Sy7o& z=#JU;gU8#tK0WY|a2i>=?VfSY-896LOm?TmdT%C7?K+lM^t0HO zBaI+W{M?6YWU>M2iq}CsY5pk0BT$^quF;6`JybmAJ8Pzqi@^?`7U+<8=*ISi!BTt| z7q3brcBz@@SpRB`;9S~cC+kD;*DnWSIDCS9;xCzkFfoYy2iNVnchi)_YZ-MJ7IR~- z^BepaA>>@`b}6X@W0y$y`_wZ`l9jw3A5sd~V_<;pxW~8#WoJcLxpq8KOCg za2Y?3Y9X?YnI-y2{X=8L%*j#GQuTOHT(>|#@tp+TR?}CifCy+fi$2zq+?lgIrUJC^-HQCW`CxOk0cWPz_c&fl# zFsA*-oeU~T_wZA=>jEbO8>In&NWWNsd&9PfZVY&qc-z3_46=j3yXsdYTNHI;@ZGjY zvd$+cXHAFdKb#UUS^N$|na14hC(Af^I_u^6#wB^;l7=z26}SEXvyIm>TSKddkNU(P zqXh-h{s%ozcHd)Z%=e7qXe^te!D#kL!o%%LAipt&R$9R z45WtK2j+spGdYzz!^DgLRQFFuH&t=G%@@bx`S+@o`!Jd7@2SIN!9l zZYU!<;>}Aj(Xzv_Z&&cU1`+Dra30shw-4!@;}AKWI!xkigqAQwkh=zt?2APZ{RD-( zvdH`qkb}G|8Z&Q{Ob}(P${$_2rX)RQ0DrY&1TZ zW-PVfB#FeaWdf7@3Vd(xZ***~$bYR%W@;h7SQj1jKl~CN4dV*y>hMw~5lm6dw!PQB z?#tXs^%S5wJ3zL@6_dEAMHdP@gXKl4BP&HHfa6W-17S8um@N}h0Z-ED-ErMR8+w7! z4_1#dlk0|p^+tr*YbD_g5?Ocnfo60}k6 z;LU!3Oj{0nDNkvyJO5`!!~po@&O2O>%iec&P5B?a*m4VH)h zAc+N705Ax5<(z|5jP(Bho#7vSxtikV>b_=9uRKQuF>4^wU1zoC;lqbRrM4QWqadxb zCs;D<0D0ygzpW8DBQ)6Me50}*d|CyH*#C*Sg1l6h1RWL(ZT;bt+gI085OO6yct2!M%`1wZBCa4&F9s|`< zOD2P(PpZWwT6LgJmRmc^j7!6UM@FDxH%pww! zhO(V5==VB$2LjfLm1q%*09UMvw4JedCKHI4IiLb?4IHSDfv;H3XfmgB8|Vj~Y<$Gg zvlurku2pN`=O@9z>;OKGrEwo9A;J)u{~Z?w88*V$zIskc5%L;ReFjrzI+t|*Rf&gi zt9)v|YO)JcE5)gS$jcslDdW-HwGBG?D_1y!ftE-YtxmA_C52{=p$WAArSEO2_5~YD zfPxd~FqD|f(RA$W&D{wmAo`3OP&Og)1gO!9pbvXIcq>(tH@`Br`q+#?W^>#7)vr;IVN zmSjp2(60=Y(0^Q`%l-)w45w>U-=4m=fb4_<_@ia7w4$0@S3E#rIJRakPkHCFuDBi2 z1)2W>D2~7-!7>X0TIacy)Bbp~L$_g%NqP$+JqULLZP8cLCKDu~h3Ya+eIds;!h^jR}%Sg7&zpfyCjLQyy*q^&5b4oE;Ddj}~7XJ+RM;Gph# zV$Ww9z5tQgN%Zn5(qi~7i{q^z!;x7TSmdhtiGtiRDexH;T9z2%RU{l(2byvXX_l&| z2490<8`zJ+lf+f~?uTcIwHr1dP__spedjVHJA>bnu6zptaU}c__>>~%(jQYsR{IY1 zsnRiI_O=3Ykoy1kI3_?3>8FZ_AfLqM_1rUoyQT;PBCh0$acmxwurGyUf+1JAa66`Y z7_L&mBt!DJIf$L!$Um({TB4ASXaD2&cnr6A#O#Hag3J|Gz7d<`{K}95ma0{Xc>guI zB4qqvoDB#0Pi@C2B)|CAPa)aaOF<-ldAc$f)3`yJgT+?PmDe>z)Y%F1(+cYySC{rY zs}{o6ny&hl^M~=*d!3p5wDb`u05Y8nnNp1mv%LK-2_NA>B%Znb;2hDo zbI|1~Bx_E>v=XMPKLHTmHFHTMt=sQvETSpV#g1O!{E&pr%oW#mrg?&H#(j9z%gKa1Wi41m?SD^=sIxAUdtF z7Z?X3(K+Ea9W5Fvrhr$M6w%oC{@B(9SHL||7hW6VxGcQMMQZOLKQhQ(lpEyJ+gt^T zJMdYRrcrFJwbYCCTW`u;3^MK?Jp8ZZnVsqk^{ajV;?MhvXdh2zRP%)-^H7LzXbXS@ zlHtmG)*h$jIrT1vJ_R@Vj}NCC7}#GKz2a3519tWsnH&?puYYrDT40_aWnyGs|K-#q z81$T<__lk9j3HC=vQz)Pc;yFd1wZVUiST5fMM+1x+F^8 zZklU*{FTF=Db2?QpjhV{kC%{QAlfMpxLCZ|kz@Je76DFd)OC_E@Z_RdfNWLBIxu?JRKZ^H#RN3eVPlz2iD7n!XY;P-)9&J$$&v~VbUo~#?}DTIV}SQN-~8Jm)? z00L;u4E9+5=S1WCGCiRe^aqYt_*Wjw!l?YMF?e$Xm|a0I)NwiR#ef+1;@YE*F#E7K z>jNY?Pt>EoAdBBcN^Lfe%K#XTLwHj-A{S++kdVH*RncG*__#){Xu!L5P>C*+Filx0 z+?_MUir=_^E8Y~}FLLYyOWJ|wI>?k7EU^>=`9se@@ZK>+?WW#NczmftL;e1lMdjUu z@@n;vkA4Dk{{doTPq&(8bb@r(h@{5~Mz703d&xpy`qwnox$V}VDeP-mPD}9kR+jH@ zMm+Xd>&U-EeBSq+ZnH!w3nvOg#06mMuT(#D4spBv`wlSr-jnLJXpejb|hsw#8>x!y^c@OZ5p$s z#vcHA2K0-V*n}AYx!4EDuGd|E@3vqC@$KFB5`X2Nw#DC80dC3xMI(9GaeVff>x~!? z0}vFEHM0{ba9U1`s2eoG%?&mT^kO2~)y-W}ee+rUVAVqc*?kphzhX8{QDgCC4I zKz$7^U7&dewxfk*IPZZoqI9TqHXVbaBR1XOCw92hpEhG}9Y8X_il`Zj*D-R_1gu zpe3Pd`T~FAO5Yrl1o6r4@7$m%*l$`v!0zw#p!O{ZdXW8;FdX{$({Q?zdPCIQyK(n_ z+oG90>l{y*w}`%yeV4f~s(=n|2m6}B%R{GUrI4!PWWPhM7vkA{v4zHz(|tHFzxUy! z%1CQX%@r>%FJOHSYS!y7Vu`ZueslbqvL_Re$-OxO1_zo8;Qbw5iUUb@Pj3H?9rEaq z|Moc%4Owo0DI9B|XVtzB1ds_v$r$7BuRG*q-V?rU!PHtTmS6Ao9tLtK9X180lt*8s zoQZUQzDWiQ=@6OS|2*xU69@QK{#GXk1wu^}lopfrA1{e?_Pm%u4u%W*GvwH@X(CT| z{p3Bz5p#I)TYyNf~Oe**4N`4Y~{I3WsgZc);` z>Wr_QH~Jw0#jalbjXrF5E7Bp~1a1zWIdkSlny~3?`DFK6RZaReUrH06lBLIV!qp|x zI_~o4v@-rcfdlC?MlAu10%8_}PXOb|bH_DLTlYw>tq1$WdG(2`mfpa_ORo@RQ5=e_;VWbl(Lav-|(Px8vs_;8wJX&~W3S9Sh5ok@$w!q=>0XKEG)rV@(-{J(kuiw9-+ zU3bo@rbvDB@N9R$**0~JtRTPtP6}Sf8}LuNkmrDFHpZ){u?t4`g6bNSMiAnpDZ4Q~ zXKJ=`#ZoYO7X zM#pNum7{2P4c;&f$pcCLBvu}^TSQtEQQ>xirv+pUVBWfU=!(*$QJ0c}P}4xN9QGld zeh+H!<9qf5LzK^;06Cs?8Pk}Knbij=+PPgcKu;FvegAr4QJc#uSc6J9z<@*7V(?XO zn-5>h`WqcoRo)v#9I}!~V{# z@#VYu6Bmi^v+uGUeHn7LEt0X?=fZ85FwJD%N8%}n!IA);ZCY!cbKf;WHOWdZM6{iW zI8T0qugzTREZ<@g>gW>h*bA=6CvB-N5qxn}pXrS~v=X0=y-)YlayEQ8Xo03}xtpJl zb|D1b34Zf|V40tYN$j35-01h&TwEed1p83KSyrPs&G3lZ839?zP4#KyWS6D36)gkV zVC`MP+i;MDF088ud*Ca2pytMU8~#(o^7GV!sRc6JMra_h6)VY7|8H-ljph5+k}U~!m`F_ z>K94geob8~L0WxP0e783f?x)FJ?0p|e7N}+2$;kwt|)p=xSX=T z@dZy!q(OP@ngcQ5UW~WjsfX{G(_P-+gz5ut;0>d&3CU`R3{6M041zUT>1>lf*A!Uj zh2@xKRZ5@lGIS*Ft(*%iS{8q8Uk#3hwC~i$KlT7!p2 zOy&({+c4};4hR0KOhycUJ~1Ni6>n|FYC2Zy_#?(AxWc_SyCSnSaCvn^q~jnjFK?1@ zrY~1dY`dBxMR%_k-|*tl(@>dg`SIDksQpFvK4r6!auM!PhS<7@m8>Me9rX{I8Dmu# zji-_EZX9d&jn-%F@NQ z^V-`of5NkJ+~{bGa|m}qw39D3G5-cKEytHI!uDpYjHbeo=tx{eQGA0VJ9dydysfNJ zf&Q-M6Ino}X>2xdA^th>48dgWj@APdEBvIALD?LNp0JM(KKS|an2y|4InB%jDom>D zR}=4It54`)SF$t8tU56#xyqk4iMoV6DiXP}H0=!iktHZFYEfXiQ}k(7Ocz&n1y0&l z#gk;~sC5)~Pvvp#dH6DSy)4dU{^*X6BYxzkX>m#2-2m4K?~Dqg@bk+sJMh=jK1o(0 zGOPK+-P^9}I>i83?*d?BO&ps2r2gpqE#+Qiyt55TPfjJ#H(I0W?Ay;hPibBn9YVWwEp9frl>od3PY3Umcf$y8m z=-wk0r6@BVZKREaMx;%(VFA+qT6m0$7!X~RSxszY(EH9o@YT?C_%*fY)*}4y}?nY|wT9 zZSLVHuia#+Jo z{LFFdScf?=CtZ&T)BYw|^rmqR(Azjze3ec;2 zcXU{cVAz~N*Ex`O49`jS_mN#-3t{3HFmvYZl={FoD7*S?!itC=kD>zSHF?*9ynR*0 zlJ!@r#9-dLyW2N3rH{HHSHJ$P1u$XlDKa-em5 zz2n%89}j}c@z8EC@H5R_pDPi!6woccK)h?)F&WHH4EVBF4tKM&Be&cgEl%X^BJBT6 z|K9(mYJsXL|1qcgTB~X8rt;pARC(5<+QS4E_*P47eMAa_k>KX=2lb3GRQAc@dbcAF zhO@)NIxSkKrgNLk`?7<#B-D&0%I^s9h0ZagvzyToZX;M$DPC_+X(|u_icG|LYKVme z)lf!vMNJh9OBk(eq$}GVM7w>PkP7B>g9!ZI`fx zg$h20LC0UQ?1~nDlEk^uvA6Qmc@#@pnvoyF<+u$iZ{B&L;q7q7ql}8rZn8WgzoKKb zacVqxg^{zkBJFLGcN}7V2FdQoNoJXUBX$hDbR%Fr7=2Xl+)hAc6G`DRBob+)2;t!) zjw=Zb?vCKIi69^mlrfi4riuwdZN>jzH3N>$_-=-9)=YVnRN{vZrLFJ8K;!~%QPCo% zZ)mcuD_Te3_#L*Sg|fSQUvSq?42#8kjEt~dD#=`BD6C~DEoYEg#yg%kvTJ)B*6Gu}@-F(?Q-{X>%$HWEPVUxlq4%eHbpeG6Y<0T46YdBz4A?w zjWk99qvy^6JQQT<2t23Kej%k6-uHV5C1><|ArZGenZTlAClG&Qv7`zRiA>Tw2C~@< zI!tV>qc5bJJ$h)fzb)bIAxRoy1B$Ha1|)E{wMJSiKs_*cx9OhVu|EC~DK(WrX7%mm z-6X#LbrJq0t+f*G$ZC_E)@MUJWp}IOsXfYSgSl8R^$~X^g(BO!N~?#t6C=|e**$wh zrBvP_1Qyi{m}^Ya<=>^VPwwUSnB47KIAuvupB$2;5nl+89Ft2WrXD#Y$&3ukW$5Jf3#-hL;Ac0cXLAQ%XEuR z${egMG=~H)btRJu5LB@dyl&kfk51BNL)O!i8AAMhz z?tPA|uYWRCALQCp-$mVi?P8=CLp;^LTdEa90n%u#14U+7%Mn*vbkY|);!SKzckg=^2ccSg#Zn(R z=ZQcMm49qSH;9iIKuK$cbm_q-R3aV%!J!ztG9zlS2n~}%VTHsu@aalNJCR3gq>s5s zFMOm%jR?iWq}AYoi_!Lw%(1U*4J6gOrX-o5xwFCXHs!ATe5xo7^EbV5PQ4IVuzAFXpO z=<;XZ@sgm+TJ&W7@GQ7-@+p2-@S!Qg)}z@yc&;Nfcs@P`hf+ZzrKQpM+#5xmpI!I9 zUEB0*LD!pB^XtfVrDT(#5{~HDILo5u+*Hb>OPUN?;y)q`3=GbkJJ-DK<+Soa`&Ob; zyLo@?C(kcd+tZ*o-r6Jtonk>EF+VKdnUc4g;gXt^cT2l3Ob{2oDd+}yo?xkSZFoDM zbN#+z39Uu3i%{gu^h$^9=4Y0>jVWX^Y`SW7pQWhAcGo#%r4K4zCMz6lO$}AKO?>qA zqsVcJCBEE5vD(}$q6e;e;yQ{9^sJ`YDF`D`5f!|}EGlL42ib@^+9931l~s$^J1RLUp)qBd2+{~@)iRJg!lpszAwc!hDA^En>U_=v;2*jeDHc>7zM_0d!5;AF5f=qe5Rd#Cx>~)mV zeLDDev>vF=N8D*%#rukKW2IDQQBtW;&=F2Pz(zPcMH8|1wu+9&m5g<$C$w_&I@1eK z>Zj(>%%86+842iGCCpbbdwAZCJ_C|yb1h({TD22`u6)F$Pzq1CI$6cxE1D&yDB{no z*hwS;f6-4UigYRW$Er+hdfyMSWG=*H^N(P4racx`JZgQ1l;nIbFkY)hJGoijVl;RD z_{;grxEcOuQ;!}|IK@{1F)LViu;%bh`O`;+SH;5L(`jR-mePm$Zq_@yotLh)owu9a zI##r)ICJIrtA1sEnKN`-V{poqc{fF4Phyb;niKWSQ^>XUBnQDS(3MnDvX>`smiPk! zfr7A2MGva^(~ASnT+qVaC*w8BTPME*J%>CBd_Mx2b{B0V0(D)$wyN20thzmB`u*H8 z%;45ok%dR}(=prH+!@+sBu08EQ1pvAPs+&UWzaVD<3*BO3i$Lll?IKM*Y4iQF#lNk zy~DDxm2IRwRq)PgM?|ZbYh#JFN^}|&d}YJ4yeb`tMgEnecbz-`g{sh^q%<9Cn;Yjz zB6I082hTD|y0%>w&mRDCLk7M~H-e;x%l9gV6c@jFi22m+wqe%cu}XupWwz-;N|ue@ zsWZ`owYyHlfN<42QQ$U^^s(@I@Yvl+~;Qwy*o7!1RuKAd zMYT#t$clGTl;a<#Im9nEDPH^d^hl2&zot2$mb+zdGGx$cq`sf zv@ZsKpeY_149}^|4uA3da9Oy{<2!nx*mCcA6;U{B~K(Nx&)n2%r*2ini?2ztkkt$D;^ zzx{-3ZNE<-Z^t<}=Wk!zCjKIu5eqoZ<5nX@U+vr^x|YNf@?ohgA|7LtR85zaP5E=; z7A-EScttv}Ww%ggqL2U4umpI_UmLm4Y(AhgMLgWPaOnppGqfjVX~x+TE29G>-ZIoL zyu~I(p%?A1qdQ~oSERja9o}THj$(?sKBY#dS}N5HAl|E0G$LLKIiBi^ghz*I+sUvc zoT5zu%~}SwLg!?0gZX1JdkkWd_TP@Jj?SI>mCFTeVebwo74zsS`VP~MrS z{_CVphd@dFVffu$q~}?R_L+=sm)d{pLGWyx#<|bqJ`)zJ6K4q9e5TMGb`Q*9qUFy} zgTsAKa0Nlfvt{%)@WqMdYP7x1-33dF#WF}u_JvOhKHyF>s&U80#@I-oF0BfY5S%@OZrkQRoUG_Nf!YRU2 zwf^ev5zwJv5Tm>V{d8p4 z@p&i!p5W9yDgPO=^(Uy3DcTD}i~=8ks_8X8ifbMhN@8|D*v@x!acle()*h8M#rL*c zS{cgE0`g+#yY%sCwjSl#^YZCJjQnCU4v#{(MkS^6rXGx-WG*E(blO$tfZfZYu0^~= zVB)(q2FEI1(0LpYul}ynaGxr|-FHoF@5o1aqth2V1_h27<<4E&CMNxwG!nJh`e=!!k8N+pUl<7bT?;FpjqPoVncVvg$3#lz{zI;#@uO`sY?fh zcC4cUih7MjHOw0W={4jb^)iYun-w@9^C(C#UV?7n)b~ z>n&%tSA3k6;9iB2iczgbjhGQ9M@{O&X}F!w-JsM|AJ#OWww#AS4gjEnHomthDIQ2~ zjK1jal;raz#3$Gh58eFJFd|!d=h0S0%VVr42hxW+7wGDB=*SXSWWn3&D@O0DRjY!Z z$14E*3=as;(ZVaU;1FMtXv+Vm-#f}}MK7?1x<2IKY(J2AQC}Ck&q1TjmZpE7bx``Y zZ&TMtOY$O-!jnzJK~ch!V}yh1qlGe~&%2S?eVj(SO1M1L%NwS;T3Fh9J-Ey?=U4BB znyzebFXhR-Kvd?e zT-FV8KEZt(<}^+f;t6#T2Tj6uWUC*w>UI+-I(0g2xr_v01K$Q7B_i)hR!F{Ll!>a| z{YqmL6~@Cv1sTogpyz8zmY)!HJJPkU%=|f3jEq?9 z1iOFza&L3P`eK7JZj8WBHY4hCR?3?YgRDo~kPBe=j6=XO6CNsqV`qYzsz4Ng1kp@z zA3y{(829}6l4c#8%Mm}8kd@QSu#A8$@#)VI&VFfiEwN;91{D%0wlQ!+bqs)z5!I$S zZ=DjWoJP@>V9AOqP2s?aqZVe8t?GmRV9-4e|9#mEem%BM=sDcfl*-6{gUDQhDLfpr zAt%GB7(0LigXfL)l-nMS9A4;GmzfHRUj0d#cgi{A;qP5PJmctA$jCS!fMl`-Fztn5D zzNwG-W4p8(u|~PG9;@-T)xS1|?GG6#+Ve9zgNdB(gg&3|LtBG44{+%M|!8aoJfI>Ar3Ls}N5cW8)qBQ@@p=-SD9 zgahXvNNw|^25JBbsBze28m2CT6r(gN)?F}|%$7CHs3gN5v%G_ZO7+`#XCf19@7X`c=GtQQUxn zj6LeQX2@##p3-&P4&MK*Z-4OM8rHHYK?^h}9t^qzM9zW&lEmmIwr1q+3?rkt8=%BGDnFvkcKib1fcqm@@qI^BwF;mDJ*2G{85W@T2QLL>#PX)Q9{y0@pv8%}1X;BnU}yQaM;8mzG{nDh?+Ls zdw?M`0Mk=^itwq1_|wV$IfPj_MXOzEGoMOoGh0H9fZJNuQWEjh_@3h%c15U7m{#yF z>-xEL>)hKnpYCvjRu=3cOACJ}cuUHi@aAwgZDoD1-t;TF)_#Av+HFzIaLI40_a;}* z?&Ia5t@;fW@{Z`PnuaTP)z^0!;<5Wp+P7XS1p8U{iws)2^H8*}!tQ2zTOY0V+7ztY zojI#;_%u)b{O&_S{aG1;IgL5x+&5)d^F;9Xr}mdJR7`YExe6RRnvyEq7q3-VR3yqS z?|q`7p+W0l7=mny6MeB z!__G2!PA_|mEjU~j?fc&3#%r3VOoEpIHI;0Ym`Yhg=p!FW_=E5dn_htH!;CJM7 zif2T!1b7YR#jFoQPKlL{G72o3pDpJ5_bs3d`AFX02{+i*E_|o5{mc6K^XK1Aea_!X z)3s=|bykSQ*WL3X8o{hsWlBs^&r{rWQs|mv78jpR6SNzLrocyJ18&YV+^$N&eDv>4 z$tl6c>}H32*($mQ-lJk3eGxz4pSWe zi7MnM4D52$KZjgdl}U7J>sw3S3Ga|SG?IWQDyGUJHWB?8<)nba&*@95gNtseX2BAv zuFfiIeL}~lo|HKPN8X2xWnmL`#y-8!actT_D#C0Z4C5t=yQBaQ$MJ+$DHJs8TiRXB zVymd@)pM*PTbm<`ePCzN@j|Z^>{MdHI}-W~MlOeD7T zeiat24^-oGW*yWOfZXPb-#k4}ogP&~Q`!wIELB$dy#)V*0`Dj=g0=|7+^c1Y+&e>< z4+t~25E?7ft|g9$fYPyoqIbDblw|?K`x5)`nEOQ9fOYGoiTdC+u^S;D6Tj6W|53lb zXCZHgI>oU4@12jZ-vsoFkZ9wakBXZ^woUW*xlbRq9_TT$ITeug|1OL_mz-4Hq_Ym* z;&L7k4*t{#RyS;Px3zVhJ|l~agID}zj13bZ2pH7=a9;bP2#9Rb14^R)m~naEU!3^b zweFWhD~%k6Q}y#@z7OXL7Z9)5K2RQ|TimSoIO$)Bdr}#4!n7u}r)TU@^Wt7ugf~kO zv-?BmbMT1{>(woL^Q{r#dsy>Aq*#NVD*3{hqbaY28D41>lCJig#UvTn8s4E6^!1kp zOQ4VtPciDabajBG0Oi@aMTAIUO{ifTZ*1ef&0Kn!<@b>Jp^PCT83Qxj03;W{w{J z;Df(#>tw!bh$lUn0bMn-XYaMVoHVcG3m3ghsVZjq9<5}lm`T%{fH;#e5Ko${L|t%} ztfta&VxK7vX|!ZBE>@4(3tJsE@(;~(m+2adg5E(L=ukg3El0#v4?7bZ9jL;}5&k3w zNAtB~rrucS`+)pCy<~RnXgWDcz46*aM%ET9%1j}EJ zGoY0&Uk;sWiA|DhaWe^)$B*v37`U_chmyN- z-{95`B7E!^AV02!+5opkS_#q{i!TF6Cs|*l?IXZ~%=&`%>)CL*Pz+HO^kP_7&>KOm zI(-H3TDfpg75}}QQiXhhBgCGfy-e&HWo~70S(A&VB3QnZuPnK_i~Sa}7d+93A0?Px z^U&3&g}2B^N(%c=?Gl2IP|_|L1t#<6%=wc8R%`}tbXWYFf|8r z8ZcgQPNJfnmNAzx-=?Pg`pDbWiWB=?To( z3Lb0<(3zSU!q~RNFsZlq_4Qpqago{63Bu_}wgi=#)4msF9{X_MPHwy9ZG1X*%IfeS zyHqx?Xxzbns_74kL-oexofM8?iCk@#b*I6-J(76$BMe+Vuc7GxBI)D3#pnmhn%`EL z!P2$B+}akxc}#5@DJ{P;dmOjFj`D{7E%?adG|v<@tvcp(Lvf0Ga0*UTYz=L=kb z9Oa$gB>g|JDM4 zjz(v~1H6>O6D<`KWyk*R{Jqaw`gR1hb9LGBIkhepL?LZ2ohFvIt}Htz(jN}!BjYg3;e zQ+mw3@ky+elE3`McS|R|DPP{Lf2^i9@pr9dr)r(HOUW>I1}j!*G-B9IR`u3Vn|aqf zih73_b?P5{dz#;*7N9_R(NL?1EBs7kk1iT)nn^-@v1lt(n?u0>K~Z!`{GIZ(=TgiQ zj5kLx>mwM`71V|+QDH+7AQ!&HIFv?uK9&j8vt4ZhoNgA?)`-|}B$i8s^cNNDhO90* zS?$>IdQo5Wj?;Ai8c<;IbzRt?=^gcTa*fo4Ydql)4Grwebkxl{6WoFZRgH%S7&IACj)IUG=29!kY-z@d}>(5JBJYQS{r<5e` zN{|2Ey)9A42b@(#uZJGcprfEn)FqxT*RBl8<8>^-sF(4(4TbpmIw_~P8o0)qg8B4;Hie+USW z#Swh3hwS$R#AS}ILp^@S_DM?=AGOCCQ7=#IS$>5LONxp>Xe3a+fcg73P-M+-1evuG z(BLsGsiGaK(!gVKs4#8-Ri%jW&VwYjAI=I~SJMMoA~Sf&)y^@W~b zql1;{*a6&0L!0cf)z}Mu&=yv$d{c8BFoKP~KKfVK`dC~IpNsH@p{;c-3)gqW&M*ii zR~jq<8Z3pu1M_#dDGb}K(0tL5j}i9Qz6%6e23|YtV zS2PqH;+hI9*3mOz-;C{UCKvqpVLk5Fp3k86Ne~PW*D$+S$cQ zCFGrn-JmX1Py$f{HSlQ37D#x)kMcfzqyt{W76l+z8ZZWI`T(fOJRyQE9Xlf>Rh3XA zH-|;#JP5|tGd_P_RvT^PhpzIUY4=v&054bkUhOWRNV&D3MWIG$pp=6^2~DfzoS)ei zmvyw19!Jz(lgzZh?Q;t!O{g?B0b-gy^w@T{kYu13O(Y5aM1iW+s>tT^boVJc%7HHV zD}Ea?-eb0*^>}9p!;?)t5M;6pdrwOLa}|daY|P@mivQ9k1S(!W{d-6kAgo=7NBh@P z3;x;{A+s-5k#Z$l=#mDwm&v{erYn{tGbKUfz3==Fc}c2?_$*rwxGlr8llP;qJn;6g zsc`rhwFI_eXt}7Z>{oPjaDavhJ9y0tjL%@r;<3?hPZe^S*QlI`2fyms8+U^@6gzO0 zm(@*jF8n~H=9F8XP7Ps+DZ-yf!Y)EcA{BgDM?cI1UK`wXx~D?@@BrrV(Wf4;MZZbQbmd5D z5T0cTHZpEEc9kP)b`MO^n)u;rmh;E0f8h3JS{+koE$BnP1dL$X0j>#nRb7ta$G#v`3FGv?Y~_t>8Lv0zSU1dV^W1ifmPTDD+P~fx zBePs=`1Ov}4gE(HS_Wq6NnFoKN0p(<>Q~Q$8o&r+mgc55HjfwTKt2i$r{av+qV+la0sg6)B=7Y|C|>U@*`C$DOjlh?6m5DvG1`v zCys(BBl$pLdp5=E-~&NbYVE1(fLa3m?*{kPe`LloN86^SXSE+c%YtBvc!bjDtDTsT zlOm2TgVD>ns*X$$dEk#WY{vtS>`AC(_?_~xyRz~tO-U>6WBZpC8wko)aUxgp21@F$ z!`P%f4bsCYZ5tHb8DmeCkPdNTCukOMUy1^f^xGd2%pb2HVeY3>5tn=bM)ndhKLwtM z-je5mcDZtwpJ!`)_5Bd&ic$8%w8Is#&7(I%qkix2YyyPFgMsNwCC7xHCTzhu8=_~gt2%(FJ zE(kqZd_&xI2llVbJ_>9tIo67CXV3@p-H*S3oSx!sg&k4258*^SQabKbfmmro?3fp} zJa5ciJ-!S_PgpT%^x=nd6I;CXXg%W)mT2b-0R0n82fo}mfJ1-r5W9nvhsNQ&RTP+l z-Z1>n6m&F61q2xQyL4>m?i~+4^aP2l?UmZ<&i7SI{XX8xy(O$`u&Rws*k3)!WV=)l zpT+;b+Du`CVtYa3pMRByaP6NVFyRx3x?$4T zZvMN9SgC#Qo7g!SfJe>n4=DeUYQ0s)GqE?Wz`Vt?kTFvmDY*R#FrC`R8nIi5K=C{s z@fWZUAS`zHA1qdwq;I*;eH9ehPm)D|j04=u2;>)iI(ZJ-N%)(ab3z%p!dSt{X*u80 zTJM*nQ!vT&KIS~dEZ>*NJ)6vgh!g5|1t#3O&nezA$02>{fiLhWJ-Sh6f~16Joqp@` zXFdZCMj#D>z>9qSXWrOujve##aVXHD83^$-ow)`bAr<^j+rZ-Q8FxLS>y}kqifQY4 zY0H3`$WRuWtzx2K0Q*mlz|k_5lnQ&xXg<3KDdokoWI$1d2|YIaUnDiAsW%b$05)%~ z|FBC5NwLeR^hqCsrX8O{hckDocRNCJIc500MBwUeSDky3R{)hs;m6T2N#R zg@gwtwrwGPqT=GO0+49aZ`bka0QTJQz(OH4-g=W#G(JU&>j^7JMI69C9RO^#Gl_Fv z`Brgw4weCcxZnldE{B++H~-N?5)n^`hs7UdR64Oac=ZFCAn>|=CF}tKt`#u>uAjfSU_5Y5GIpZ-v&F>w)kQNjjf>H+BqN@AN13^2!o;g!;9DrjNgsuPX8^gMMPc0 zePgf&!`STJ1CyEZM{m0}*%$OrRm{wY+ZX+q(!GIqBE$n7QbTxDZpnv4BX{?IB;Sy$ z=K%Mhm)vIgWey3Y_m11Q)l*NGh3+Z2|Hsywz(c*Z|KnK-DUwk3B$TaFmMnuTr6@|- zca<%KvNYK$AtBj9X3|2+nsqXRvJ=XlEZMg)c4POuKBJ!JJm3HS<#iV2oMz_!+}C~G z@9n~HC!NjFvLjVKpkX9~w)fmnoCkt9J@6BWw6KE{3c4s>KoB&dti(KY?(_IKSD1xD zy{SRYNtQw)Z@G}ohH1>6v<^9rH?oGRvM0y*Zxw@Q#(BOQQ!?q-}|bH zMVB$!$RylN!_i6pjuWnG#WcghMLNLk3UfJ~Ox~*uvp&4n=F=>yhFoRPqoi)h$Y`*p zao*)C6`5EH1_Bk2Y+hj4hyy*!|A%%`0n(BX%WxE;S>bZz^FcSENLT=;0AoRG$|Uim zhhC%NYk4C<9h8B*6Z_#7L7UvSB^)0tcTRd(^z=wVAnV9(~63EB?W#>z|@-9t8rPEIIU=%<<#N zO^P&Z#i-)skhx&qCpT!GLT~(mwJS*t6r!nIYRp}lSM;+!n0UtB7ZH>Wb|$KrvP!Gn zcSdl>3ej}FQ-sc~5H&4ph>}|D=lIuxEC%>rcx5`>B;AY|ZKr$pan2-DQ1{;zh*|hV z14R(xXc<*2#tXgoS`#LLh9aQ*Qqh3i$X)Y2yt$5nN)d%-eRf+`ifj!d1XFWO+^|(a zs)j@ik;4jCFuq1Ap02WqKoz9NKcmRRLbtD?vFBcKyMEHnoF?s&?S0Z=2 zBbveKT=dQlAb>{5w>Nk)e(5-(b@&5X?pp-BKV|xF#ZT~8glq9Y9{qIyIl=#QqLjS| zn11yqVRbiox(GF-yH2~>Z?*p9!F4&32hs+Ur!d31L7lM2Bl}u25!Md+kS5#ECLN%o zD+vxcXt(zdmQEynhm9r!VQ<%JP+bK10yLe{5*98iRSy3Kz8q;GCaK-9Imxjm`O6iq z;SZ;&>lva6)GZXg<|~*nqp;wjdL4;Wy8nvzE+GYuTbAmN8D?^`3Wi{$Pm;`XZ*3q@4uc;UUl#)Ok8Uk)L__X)0 z0)xl7rd-qSevF#q^8A4z(tw6COv%7G!l72WxrTuJy$*$Q8Q$ER1Wnkg>ETBAmO2ov z6zhh1G|5uMzye;s_hIw|*Q77Pgt}Gh_1R?R>}Zc24b^+2)`=S79M4C$pEQSMn>(!W z^#1C?_`oQ{9*e5ynYQl_n1mKqB>9@y>3zwM-W~cXdTEJN3eBtm*rVdhjzyi87R>{- zb*MV#V@ z;MXls`Dp_0C$iV{jgoU9*Q&S{L$u#;$y(@xhakS*bL&06Op5)S36~3{_1e=He7KY0 zaY9Um`bRI$#BE{TPS%D)mX#t+J<~4^x*{77Fi=P+4Dtu%;V2j4Kj~Cc2tguZhc*wB7d+}g zR_VdaPZqE$ZMSXTO{QqD@_3t+rMrI>X<;2*pqGF{?&kpHlP{Iu8i02?@2ca*!&2lJ z+hKc;Y!KS>@c|rd)qZ?yWWw7@-{Qv$iCz`T#kL zagWW30=V7odjXa5&NS=hc4ro`+(;>S!Z)ESiaWb)>+yT9CXQSIh0;?I|KaYzs1M>T zP%T?h%Fnw-;2tNT5jiAKrmWqn%6eRAS87@21;Q=o-p!>#j>X~_<1@5%6OyvN2VNxZ zSf!XMOzFz>@+rJnfxn37GZf%4K@7(#?Jedt=I|`G$ zSrH8;=GsA>V%yPh13Qgk11^uIle3svbHVVqhu14S?BP;6!l_U4f+XpP?vMLPJg0B_ z!|15#-~W=gn;psipz>SKg^PAu#I#+p+gof)_a0+8G%BYMv9}G}bRfD3^lUeh{$n;2ntZz4K|%J80dRL|X;pjL7o2<82Gep`5cL9kuU8Ig9xxQ) zk>-Y*_byq z-2h1H`vpKLuM2@Xhc#GQ^t@}X22o&IdFjCSXCW0oVlV>7RK-~g>RYY6{iZH_V5sSm z;$>u__>&xz34Xh8Bmi2L0Vme?353cX!Z_{cpTd|8og=Lz2qXDuoLQA&h3y;A=hzN2 z!3u@T8YF|WEPo{JC}P!CG8_FLO}XJ^3QB|AE6)1#v4{Ar!AI^{N`B}yHpusQ*vd=n z#6=s{?=f18r?=Lx<^5$_W*5+tr2WiIdjn2P3$rt)Yyt{sMcV%sT za>9Sn%Me(CVoNJIQijkKQq7%#ep#Pbfg54TgZXghY&}4&@A^p=WO`vjR402|Mt2Wk zT%HI55DEM?3_km@hdmh17jr!&pw2k_-N=giz_mh&kzj;Lfd`#FQ z==?oXkl0(zw|RnhV~XyWt^|W`cW}-&m-Qr(u%^*1+HgXE#1@$a9a}hiPG~x@@x;JQ z7Hvb}bD{4|X-j}ham9h!8&om3y4gse@WtGCGDKlxuFu<%?|7DUUWD@93Nz0eBH)$Y zL*fVnpFrydFE(^w*VOK$(RNEbeBQB-{(bUOC@+g7D#fOwL*C)Geq(@-y&P>{yXZ<& zvb9J(Y_Zn1Hv9V=^ZVXo=L6DitU8OGaJr>>Is5zjmTLCYU1*^fb-pY`2szznQT*J2 z`jd=KRYL@Y)sk{lR)Ufme@|RbfKrjhI6+|GrbFVJlq!&N*C|3StA0jSGP4 zBd_|qH+8x!XEsZGEo}Ppq=e$?*qhKz)E&I+wsHI5bp8t_>(7x&p7|!iQ;1@U74XV! z_oR`dpg9&9IR^0L1X}iU)mJZ<8?+NRz>6C=u;PYOLOv2cnK25We%jbf?yETGH(wt5 zR7_Zek=s1L9#-Qf{aDwh1U`$^X#||yTE1-QEby{O&KYi+`N2=6DehOvA_m{&opivg zQ-rzm^)%<{CkM~_+y7Bm1)1&lkSs_9Hq&srAJN_36H&W@h;8vovKTMP*S?{;$B$tX z&lVd@ch6J&vhR)WOW-&d<}(m1)4d7Vv4f^ZqJb7iWi>63BIZq3yETG>#f5d-g%A7- z?%x-%diK?cCFK{6nobRFw^L+0=wXFr7hP%!OW~mS1G0Z0&&jYr6-r44obEjR)pz4u zl-kWda5LhxF^I@N?db{r(bMsiv&iK~(ad^*_j&TxT z1jGM_oUA{hyG*jUb^~8H;S$>lXL&|W`tB2w+5ErRfVO+xyD^F_eIgq774XenQt>al zU)t+#&?34hMEk_pL)(h9&$rG7CYch!A?5dPbQ1w%k?|cz;J-$Xk4_BGzU1pM5`ROP9JWtbm6fY?Ygsj7@8!Caa?KihD`5RxJlaEKE|gUbCpBSk@iT3N121hH2zNsT>$FB!2o^ z|3LPX6AH4Y*dT}1a1Gx%xlan^!ANn2q2i&$Sb8BvK=)A@Z3}$6&%l`u+jv@KKO{a* z*CL)pJA;f0bbI;jN9g^zp-qt^whePn)+vDIEqox;hre2YAk{}B7=)e%GOr>u2QIW9 zo+A#AJ~A+x33F)jb7^gxSX{$2YAgP_!m(`oQ(+072l#5fAljiibBuiXw763L%|v zb!OYs-e!U4U~Q#PL0K{sf6)(3IFdSq@~nM8e-l0lk7xus5A9K0-SsH~c{`)fMpJ%; zbkrUm)RKZ$0T7>zo6s@~w6~-SRyM?@OjAsJQgSknI&W+nOHR?=ar(i}VU`$O^z*m} z3lf@O&4H-gk)VY8@a(_oXg~Y7LHa$DZA@;{A433jFjM2;>>NVXMmTiSF6zSuAgoPLHB1j z9A8oojTcpnHvm?YJdH<#Nt~n}o#JZF(9Vp2!|jGrpTB4nBx0a{ZLh;nUB?^V{`EH?Z{VoF^ky+E0CH6>x?l2Jc7F=xUG#DtpiS z_HIzDeJUL{EgQ~mjFM%jYFi!U(v+iNzDzDM@UpmPuIpkKLGyNViA2JBh8e6hn7fBC z(&li#bPZDKa4tm7e%xcH1kU;HPt13{8XV0ZLNv5KSLED(K~3aMPai>M4zgzXZA{+v z$}X{Oic;$!-zk;KlHot0sQ45TY)bL-f820{0gE{q<-eD5ibq3yLTBp#18G)2pmL!} zxLYdaQ}2@PT(mRx?Cz$aoAwo_W#xkcS5$MxKg+ee`r5QjWeT5uwx)kVkh~C9oL`1w zIaa!5(3d-a(gB7>a1LQ;K5z#h&YO*MeoVk6=Msf`{*aiUgPIipOVcZ3MkRwe9>+`- zm?8-#y*N?CRAG$JV;&^%-BE0BK*~57CGJn%02wxgz5V2o#U1cz2p4B=EW*3=a=}65 z!0y1eTkprGD=B*$+TnW9gP^SI)cYaaNZKRp+?XC#(bhH0_R))Mp}4cgkwPk)yPm?? zVsGD`YIS2ItB)NXaQmo|hrtPxL%1FGT^JJfIF;8E^^hvT`O{A%A*0?9PJB9GTHagS zDg;yt>C{4i6Zkp=*I>j6QW#!DhQVY5tk`As*-DLn?-5-kYM1q7zwm0MjWw@9u0F#} zAsjf%7TROsqt22M;I|&C=0y{SdytF}^*nrc9dy0prC}F;Tzz%6=ggpnRfg^BYu)Re z?Y+T>tWy?U`Qu-*PF^21|H5&T6!ZFMdJvemrV9!o^k*_o7<$eqbo{{3ohj%r_u92p z5R})N{VJ0@dvOCzuuw}R%H8Se5o&=8C6Hyq&l(+P0`PSpckk^DYrH4hN;fsAD}u&P z^d?GP(upoOQfIe=kK^AG`A7z*j*S3u8Wvla-}<$`{7e z0=zn4P4IENZE6F65Ru_F`SLTss+|wFu4TjHcEi6y7z!fy9Cy#yPGKQ-+fXhDa7CCi z6>Mk%v*+6m(zxhscfZPSuoPF;x}cYcMwed_oqVH_YPFM9w)&#VU-&bT<8N$+B<4}GW9+KAX7T7O zu$xKn`+4YrQvex?D;07V7d}_{S>NL}!O{=oPy!~91fi#XuVeDPPdfV&e=+63NR<_e z%#+1xI~s5+0m2T71ym-M`oe@5&U8 zN{lcP?2FtAWV*=hb_0-+c7!|;hHkrJa>)i$4>wpA%%s9v!lLVU`6LkJnZN@ zP5X8Q9<|BGi!I;r%;h(>a6jb4z6G(qxF@6xYxt*Uo|~s+5A|0x^wu`DeMQ+T-D;G2 z?|gE)^)_P6GN+I~tLOa@;@W@_u{g!$qTRA9Yieqq2n-jdm-2x1nSyCQ6QWfdxV~!I z7a;hjS)^oA%o>9VR~mR*BK5T{6t?GMEE4PFOjhOLHxNYze2khK`$$ZggXwq*GlkQH z+zt=m-Sqg*&&6}%3=+Fd&c7noy4Mfe8wPwT^!`!2h1}nh6ZvjXr)m$t-iMB0mlPt| z^ap{az&_T1j~?5-2O?U+=nQeVyG*6n%@x75^aL>64D%X*wQz)(=8Li;Q5kbdxe89* zku(<->7KVzBgme0Tql6Fku`e7W9}QX=9;8Rk5dhlVvK2bJ{kkR2Oxog5_Q`ZNF}>y zi|6RDdokKIcO3@#mEUUq1~RPo4#nhfPdtr|;;i})Y~4_=X?k7~j{mei|Wt-fl&E zPaa#`miWvwFntI_)2OYE)Vd*e9b?CDlgM4igSO<((){wbLf#539JJ39W}ZEP=lFc? z)Rv-|52PV!b+78Ynv@8I+}Pq~f*OdU&r;GO>XMJ`crj|OVZ+Mr?e<3Eq9m{Rh+IXe zM+ELHp~Dcb6z8Gi=g;j!y8mO^8)uu*)b^xlvDI+QJ@JX2X1-{n^h6KTmwOP~6ndiR z2F7tQK4zfT4S<^_@s3MDp#BqnRY$AA!WEKjz-a}VEiVdne~4jSHFzB_aK^sud7la= zDPNC2$_^6^W$`OWu2jXrP<1!}dI{Q(f#~+MLG$8aFsr_UcyF8x_9E61+s$1K`&fx| z9)FD5yI~H|`a(|%%IR*#yYFcL4eWfUKLCX~tTH0=Mp&iido^x^O^1YmcJhZe1>a1| zIY5_UPr8SM9!zATKMvte%B{qjI2%<=jbhN@QPGQ@Xblf-icN?weH={;=3n=!7xAp@&cY5p23YW^@DOCjID2a7RY=MZh~DO6itau;$;b3j|RSQ52Ngs=fz-U0Z)-WEO`^W~|pFiNP z2I_jk>TmO70dqrSx6Dx-rvk^>SKK-_^V)OsQa=CEK<&zcsJkM-ES*#m5mK9>V?i8H zDoVS|<9l9;s@6r>Pj0^fj4T7d6V&S9^&%BUeMGEcLLJ5_njk}?rGrL~BFqd72MbS> zQb(g%71}>o5wz`{P}2~B0knoAwct+Zu?efRC9isnfiPwP_mv9xcEo=?4)#Mt$kk3x z$59UwuEQb{*rxvS%^DrtO7{c=z zdK@7`j9*{+B^!cLOEGp9(_@RoZ@jA{#q1YR_8d5w9)-<+Eb&yuNa;q7_nkL{m7K$@ z3|F~gs(KVIUR(+-yOzRKzvdWM81QYo^qD0dSBYOo)Bt4#iIOF^@k2!))o*5k1hT+=NGfSe$BnGw>lW1BxD+70j1 zea|VeRbEFhTCjL2cLXy#-EaaOM+jQ#ViL;KQkHh~L%l>j))oA;_VEzJXx)!ezL3`@Txw z21(RExnTC62~AgP>($w3k>L4|baVvz#%F6ldEnfx&HOsvZ6#D$nCkC$-Frwrt4xXt z^WUDhB=cjmdGutjO=fcbWpHlL9jkeEz@a`9<|1puLJ6&hK+ zn1~(Q2BSp?Kwzm1wXc=Fzz|)EzS+2-Sh!xi9wS=L5G{_CNjtm8dzu1tHVxT=V1>rg zE~ox4Z?;5=t7;JxDmL87DBy8k0U2mA;5K#P!tG}_DJrM;XM%T0_4^)|l<(E12kv)3W!T{IW1A>Qg|#Yt;Vc$G~8c^3rWq(tCHjtpVfV1xZ2)j|$_^Le+p zSzdnJJu(;ao1?P$*#u8zsBWhdUnr3WqM7invLU&x2%G@=gnx(nasWjTyVJMnIlVs)K;>0!?-Ib~ERPhVsY$ zA|+`XB7mC5J+V)RT06Igv6Aqj7DLqIJyM`_7zG816>`6w!Jz z($Jg?>iZV9|M~0(_#9?1v~r_r1UY!!uAr5M)x$14argNR_B*cZTWB zyivfe9Iz1PK+!|?Y+Yc@nCs$tq_Td38-WUB7R!l(v?)0%ZEzold9O;UvetLV(r=1O z=U^J>U?zS2Ft~GWId+8$8yi(Lz!eCrWACW2#Ai$nX%d>%5KH zyq4GRBc)H(f|xSKlGS0z$qfk#%0o}PIkFx%o8z*+8(~qkDr%qS-uk6~FI(-_w!U~f zMh)xeH9$aAu1CmuOD&=v@f6b#Go|+3q0g?eR(>X!ne%84>C-vGf)hU`7ku;5@tk>Q zSd`Zh8;^twoB;75qyyKYxX7@GjDZg%4DXsI@q#snC;*9{7u4-?LIKwA_HTa{l29dz z`l*o+tbU8tc*r)1n@5&vTXoPUao$x&h&fcnH23+fRRBrB!Sg3$01je_R`9oSy0jqH zDJLb9`_OJWJ-6TnT=6-&>qWpU?>_mCR|rcL^EYq+BKj5f*b+}uXg}O>QhB&PxJnom=NoYGNnj< z#QIM-@y~Aue8TmvsTT&~{7mq#C=2OH-$}}+5Jo2lMy@nm?ofE>v;KPcTbPm+~>FIz7PyoVH-UCU2KH&a%Lpl2!C6E zdmfjnta+@_y_TRo%YSO>$vpDdwYUkVaUv6nL0AZ2oVf^WvF+#&+flH2uej}HB=dS% zDl4t`(}X&6?2gVVeUon5Bwsa})Qwu)Foo zL$+O5b!g@de4IAqnB}@lW+)Z16U_-7a6Kj%*GQ|nW*Gx$6Bg(#F^P`t${vj8-dVT0 zFZGH7VgM6iXrmp9_fG(eL6kjb;trN`vJ(sYE7QKr4&4M?cnN_^SC^jL_&-6OkVTie z8zga1BYVU8d;b`uGRI2Hd%PW8pMP49qg;`0A7OcBUyEI7f4DDT?t&v|;=C4qoQq=< zu2w39uJNFY1I5kzAEW*y!54r|f?@dtms^u3nBZ?mcr*!}w#;<3aSL->&jPIqxn;C# zN@x;2U&&D5_DXfje{<%mLq9Zs1zl2(_469NCW!HNam^G2@vxpTtT#&BF4|$&HZ4B$ zVZD}*geplvg6CJT!B$*U*$zndF#UDf(TU$(%KCsZahqT2JnHOwASWz%N(zvs84^b~ zZK*CrGYSAJ@ejb7%PdQs&Sj& zLW46K5~BC)$$$0kTB^h))$H5$hJy<(iV^9x0?EU%(}wbCO0&bp(F-mZgAU|n@-S^igavBlt`jB?$ORs3%D3%B{B z;xeM%Y{RjaX%ap5V+&UU`P8hOFdS3|_0Zfbn zu++f8^H4MoBWZxRDQ{R=@A~d8pWPxp0T2 z95tPq_TwJ%*>mS|Y@2wwm3{APtO+2d&``@iXu<*Nlm8eA3D?sO z$F%=ddY~BwQGJ5StKD_W-B)ODW`0rZaHl_rs1MU~#sZDgbB3PW6=)}eB4_m$)V3(K zLt^<>2vi3iLEuvmUS@Pq0vG2?+Gymve}Hd|R#-$bBT(@03ATWA?N}Co4&ZkB$T^ww zA0(?R-$QSqSpvBW^%aXJsH7Y9rc4PgMWEPx1}N)*Sor21#p%(^{ zQDPWCCr#)T z1x?6W9|E>i9%-+2WMwq;0zf^=2jNP{@Bs=U!snj#*AyR~=)Y|o8Zu8gEoW8?QLEbK zSqBhZ`;)Jw!r1$6l@Y5GjV7*r?Lquo!vcut$7|odGoR?AG+yDGCnhGoBEnyAE8LKb zI{1?nT#-THWI=Oq>Wm(bS;BSfhkeE{*@Dc^^Y}uASPv+{!VY2-9qBkT>3U{=D2G}{ zEMj7Y_?}-Rp9xRCiU1lq_O{&Jfe%t&rgZ(%eLqx81*&0wz>0GQg76SOdjTsYqAJRA zkIgNz$dL26lxXcpbqUXERZkIvCYbV;)8T^|NAw1Q*$7eo+J|gF$%&ryU6~q|jqX#* z)hDk+AyyF&P-~8|zE6oqYzJMaU+Q9zB{gJ=EszBp=0&x+x?sW&i~;f29`2R3PEayDVv#@ zdC~z_IW+U{d&3G%@R`&zi&Y5EeMhxRQl^xN88 z-7i93SWvm78q?O(6INSWTUl_5As|h=IqFy}yK62nYFEMch6r(#$`(_GMM#4FyT~eq zm7m9*F$e^a!}tzF8xsf&J29j694#R8Lq_L0pgs^%<$4D}Tag^dy{x@zhpoSyu`9OC zPaMKv(TgN^LiZ%a>o^bPxnuMaH;p}@DQgd?C-ZtKQHsd1%@-CIKQmwqXr?8 zUk967Mae+B(CdW$or1n5>elODEC6o~vS9jze<3mX751{-5<`4-)dFp6> zKY!1B!ADXM3dy>F@(5>vX&@ry!zdaM!z?9(=#805(svdcFm?~R??q?2Hk``;ggN3c zX^1a*O+VxwIB;iAyov)$FhE5h`J_M@SIr^FPRICQ^f(Y=uHV=7-6T;<3j)#4g>hTewbrgfl zyASWGPM&yMn3&V^(UW9U`NI|8k?3^RHp0#DfbIerb1ZrYvjzS`(1Gi?6lP{zMBjHN zD0d)`5Rw)bNUkzO%1CNcML;=gzu&toj!fp6^5EVFc+mLv=>U~7x{QXTHMW3Dfzy*b>~nUa5{Z<6GA*3%CX7vP}>u>*`Y>H35+zmAy<<$$(r`kvK# zj!pG#P{k0qeVrj(6%uBb=2B#bw?{8HwUjPi4I337b&0@4-eT z1T;~Q_cVX;r~uiSo2)J-qB;zmAlpU{;_pg5#@sDsc-J?QFBpUXw;|xJ(Pa?QcyJSR zoyDFmu5NCgp5zZ5C%5wpJh12C-F$OT{I2{8TLn%jVGpaYN(qX+t(|=9>-}~^;;aA| zjJyz^v|xK4x5!sTfTTxoO2zq{aN(9deok|!rqu=tVpBFLp{vr z>m-Hx`779Jd&b1JAN6;^GH2Fr6{v*gH^BKNw9irh`M?M?Cga@6i6!ssO)J_?&Kg(z zq*O#0uu27SLm({#_3A!A3Ox{53qjJ0n~=d6ADb2^?JHE;I5>dkhXEzu{tBzpi-{jy zg)HYxfGwIwFNAem;kxu%rh${uQEUjaly=rFsK9uzlIsP8o~Ng(5c>yJt+?+KTS0y^P)Vw-FjavouCf(jMUx-nlJ1`g(`3mUEc}#XG#)GXT4GG<8S>7QJ zJ4mz|(rzDZzt!f^$7$loE_-~B(uw6a5+Hu)Io(`kleAdS#W>bqfgB=!E1?Iy)e?OK zVvz?;_fPulUy%?cebxZbPf2)2RoGm!g6~Uh{z@2SS(u2`J1}D>FKiWiEY%^|ZZvL-3&m^2l7dQhVtv>=(sWi*; zpH_Y}OYzDo%fLXVqF?V@ZgL3gW0eOL-kJX=%N8-|K=g<-OA>;`HpzrJZ6l`uItCgW z7Ym17J=x#?Jz4Ezg2*L3b2b5U6X@iy)TMwZ# z&vUe)F93g?*a_h9I9?dT7Du#f&Vmrww*abv-lz?zXt?TC&}p?fdk;eAs{jY@n0wUe z)-TWDgto#NT(bHHud?FKY%_GO@4!X7_jg#ochjEmmBJT!BgXo7FZrT?$D9ws+Q zZOZh#Mf+u)-hOAVD!Unb7Lsm~@)ve&DBK~3nI^R+GuanXCN7<p%R91 zoE8l$ANZ(Ng(S(|lFjI*a91Hr(a&nncEv1tL8BMCj_;m_X%5PF;0X!@Lo_e}lY+`X zN|!|=JP7V_i40E%S#_8*CmVx%JT(JZJ-0oY5=Ffb?ybY_xFsb&!S|~L_Ud*r?Dm|H zAJD(Pk_0n;*uj69@ewJsH`s@P{@)Fgdj$+Xy>!D~9fWy*to0QQ5g^5-FBY~|WjU^+ zqmwnZe)^)^{aa-^DzwMLRB(Dx!|qc(#f7KkaK**N#EA1)N98@j;oJ89TgSNOm%kd< zN*|oQw#lFJy*qI`qX}{;zDYx_7|K)4J&WBf>{+)0Ma6Wd1321KmGV&(ySFVw=+n78 z9)Z;($iOHzvgsozg3G2yd~j!Rv)As@NB6Bd`>9`(o|jkvSL!rgIcgA2HVG~{QyP$qa0h^c^NB_2w$Mrzoh=XEfyWOZ;`$U2G} zGT(3o9K#I!($ee*cca<{z02yLd48)Q@^j`F?!$bSE?Rlw;@{@>!^%GpV1Yz}=qtC? z{8ie+y?#K5e_Os9c`W3-FE41KMib>P0rLb5ZFcwCN68Iw(&{@;ik+zKrfb67hkdiu z0=lg9(F)SI++0S;$&%!~^UCOa<#q^c?|W}YLDyHB(2Q;mjc|3(7~&kll#DCDI51RV zjUSTnK&819=#mCm8}?MHwXP}N|}?IZbpGW(#9|EDR2^PPwH zBqD}(Y{^4!axzjhYnaA~dX(PCDe2wOcfacoOdzG2bp%nNlxhcOEA1igX2P%iU&B4% z{3rF^k5tdw5?S}p;Z$b}U2ajUbDND*f^`5MUrDI4Cy!VqUAQAo-W;q}dP+mbls>Ub z?xOd#U@s~bO>ydkwA!u7txv35ixEs#US5WaK8L0u0gmD6Kw;iTFs>6VcTMqpJ{Apf zc%U6p(_s2?@$j&7{t$S6_EsvIP_EmlP5JJH#zoaIe$I{!VPgtbU$q*7B&Qn;;K(QC z7SSYqheddhuuz5mZ1I_swl0X-=K6JYGLDjl-JekMjw%`0XPmiGgV+46gGV z2>cw#zoT}*Tkw&YH$@!DNWWub(tcAEAvR~>u&G8w!+QtAiZ_u9KZ@M_5b_FdLAnG) z4fz_q7Yi%?ul5wq+qbv11~ZUD^8~!e?Q`TWsWjqsJo4Sj<%7ZveiU__@%QEr3L`zg zpo?r!^HmmwzJ(9OOCLhf)!{tlNaWP|^6a&wWNp38_zpbBoCU%qHHRT#q&2NW5LbV@ zP4bh66Nl2wrbRWK-$tB1VQG~SuPRD`Q1GzKMT0D|r;yRiin8+R+Qo)8Axu;t5)hiR z@oDl6=77$PW(f8atil3}1ZY|uJ`TbE22Mt-^X<7nbsVtZ@_q10{}mCU9RWSv|D%w{ zZmP{HwnAN0?r5((!C)!GGWjrT$Qx1AHO)uHkpGZSLa>e>XDuThdPNaukqUKGfmZ5$ z4vF4y*dKeIw|(McA;JQn03-|<{<+YCj(1cKI$SF##iC_z0NfsOioh3a_GWXNWZ;sv zzeM?{lsbO9@10$1S37*1=&rRpx^!LRDSkz`Zd5T#n>GN2Uiw`NJ?DxG3Nj-!4jb;L zZuuWHwJEV;XrzeB$x^dV(fj|$s?Ysx+rhA{))IPM6!}&DODko@VaMJe7J$2!g!mzh z2R2d9Y0^|*X=%EBo%O>$5EZX)5ea*}%na@d;qSZ?J@#D8Y-8bU{;l(wI~1bZFNJWW z_z&ueBpuV<|7v5?_*M!Z^MS6aIJRRmd-GVG{)Wf-I>gz_b`+VP)A9wbcR454K2|ilx$+FLHtMkVU z$EfER?Q5~jk?IduQPkPhDMRhl;%Jb&;y2Kiqehagrb8uj13<5KY zmKe4BPP-ni$+VnfDw7tdDH?AvV2aZz@_zZ4DF?}rh`PtVxUFB4i zduwFYoA#w41!Wp^fq+1jQg+8NP?4p8R1_onL8hr8px#OUH@v_n4?K{=wDx; zkIoP%bw8rsA{?B64(TeWA&W`4<}O9wV>fmc)?qjNRAX>*K*V=wT9WPSv~A?4>od~@ zPZGr^lggqshD~>f@WAq>vW>u7BNb;(7P<7!i=Y0^y_<^oGn+2)qhxnd690fLhm5RZ zr>gw%KyvfgG!+c<@3(D2{Km2flOlDL&AbI!Vf8P*IQ7&2!9S-{>mE9b1Y zi&4OwO~jAJB!zcI?B8TbWp3a>^O;Ucadyb07wL<7m%<*ec_O^Af!+0#-`04tk;}kM z122<4UDjZyx8=r~R%Xg~Q#ADkHCzTp9Ljhvhsf-a5|T*IVkZvEPl|NJ;In)0j%uEo zUa7!Ldhx}O1$&|`+V7ctzvyi;8g}JE<$dA~5B_AH-8t5(UQpqy9Is~iMm(%-zaG^G52UuZx}W-`88{vpmzbQ@{`TFwUG6$Q=CQCHOq;1$I6D5>X62yJWsY}cGBn9 z(~VrgobuP#ID(4eD=WJzuN?8{ziX;KRJ@}>b}6q19f0zoyB0)9xE0*hatQsK@ZC0w$=3Y~`d;sR zAZo^3(VAlh(`}I+eOfjn=dAQH5*ulp4ewq5LU`qV#~tYL1+qWN$9EszcAjkMzSyaj zZdDE&FoJMko|m?+`B7_IV(Haa>n5cuhwn8(Qr3#ZYI}+H=xY~t`W%LYL5YONzsaU}%V_@rUR*mkPZf&kX zb2K%vPFon~2=~VikLdf--S}A3#732)@>Jt7JU&H6CJR0u!NJNUyIstvI6ZksoP(dU zq!tfFCB*o;rDs+3mCbU_U$an z+Lh>7o0EPQ9-lIFB=_RZsDV28L~eEF&h#2LiJRn%PX7Mp5DaI_-Jk-2#=V24GnjQ< zy0kDItV%rNnWBBKug(}OH1zo8_n;-iSzP;1F`|ub3G%cLR8vZ?YGe#^a?G{&m1NA$ zb7E4@J@~`k1j9KOYUYnJfhDGcKX^!0ywemiK(5@9u)%If)CLcpNOYJXQ;N2xhr~F?ec!xItJ>n*_H=uf`mdeVAt1!sxP-Wd#r{H!l`7M>U4 zd5;~q8~Bdjo~ODDce-Y-Bz2Mcmc@Fugtt&$4o0^j(e!XF>r>o6Q)O2I=IESDLzV9S zJ~B{BD&FBVp&gl06*}~BCRS%`lwT#Ct@?%o)K`ud$ci$)=x+BL|~~ct1O%y82xnXuxs%DW$x5+2@ia) z&b5n^m81PgwKZ$I!IhULef$bBRGYl(DE4uC_j1w>xv6`N;t$CV*MdsE_C16~MUt>- zZrqoqQCqDMuZQD_9u%P-c(8?IOfI{29I2L?ui1o6Do^IJst;BNPy7n`TyPE-7dmQK z+2HJB99rT%?ZvF%!tXHlYzpf_G|I6t!+H=e@(Ig(Ua?TQ$yWRpDVDnLQ-|Rd${76m z((2$IKzXrPO2<)u@ONWv?86uPM(YL?F?$mo6*L*-*a<~QYt@|4rWll4aF|v1Ie5P>)h~M_9rEfl3q4(he}D9IQb6mj>gTO@KhUWEbk65 zJUMXSg~O97AC6b9R9vASah*ww=ieTIu0>yL@Cn~98CGfXc|QVy)iNQcx|2`g!qCU% zf2KMW6x1vDEOmrqsg@QV?6hpshX;`g&FLr3n3IuelgSx=@&zJI!(Dex&s7|y&{2pkL`>)mtx3bMHjm}8oEQS;4`n899bgnZdA_C zOWm8;FD-N9J^GEZtGgpw{O(Zh<-(~sMdbHU(>&9M;jiTD6+c(v6@)u(I0{26BtaJ|Dr2UV{b zW&-wc-f+ILJ350$J7dzQo9o;;QK!Rn98|M4)0!p4kMkAiLhFovPePIC*}>xXw)_dt zqE3!Swnx0sT!56uSL7S^nXHtd< zD}2`1@=F_e>YR-_Ru0Lr`-E$ZBv}<$(uq;uaAb)TrLJqeqN^AmIc{Ua^8Qmzc1g0( zvhR4d$6RivXJrJ>ioAo9PRaZ!Pr`^q_MhrzjcjpdV&G1@?%JmcH0SBEZ6|5H?%Bnb zp$+(u;j{r|v%kMQj6B>(J?vSs-obx09B=a?n8(nY&Rpc%_tDM%H<1cL^A?}SQxeC@ z0%-D_ererRfjBQOpM(uU+9{0$PRaf2sFeW08S?Mx%EPC}NHI1MHf+o2VClS0SGr^N z9W-#S`Z6*xXbPu6!_K9J&WG^#-_!5r3AwKiHjBQw=Gi4S<6tmZZvGB74E{z%`x z%G^ica)-yy-dSQ%MMD|plI6r_cf0IS`CiA$QNHf(QAy_l58s=_oZognrI$|ZJNLu$sAX2M zfdtXB({Z~RW)8+YK!s&v(%A5+)3jruWEi1t58L?8P)%e_JB#XYjY(igXMm`Oe_*Wz zZwa z;Hzi)Kikde;l{SgS~2HK#SI$aJ7r|Y%b9)V;gL3R?z-!{lw?vc1oM`8Z%Jea86HWJ zDdhBO;#g{KL^r?Gj$Vm5s$1}6J$=%QMHlJLOGMTRy~6W%gefq)+Y0q*^d-Q}Ye$9< z7duI)=VxGOa8Yn=;r9!_ScQ zW8a%_a9s2OlE@~ZYG&++$d1rHYj*G*O`A^Gw513 zvE8vkV%@~ZuA;JoGtwNc2JGB3HPhcit{GlGc#iI>rOuOXUGDlO=4{(?2}%c6*7Xyf zh#_&uQQH|z7`b!w8T%$&8m;0sP`;Z#M{f5Mu3wERg0#w6ot-8k#5Au$s zg&sM7f}FLhLU!t8ivC5sC-jD0g)V$yPoJt6ypVJxg!h)%%M!fHe+guLQ74ue|D^P9 zYuJ<^9p!y1&v7<$7rtI6pL)7?fSaS0s)QUeEqVZ0terv92ct> zzQBRYA$+8rjZTfA&igmMFll1ynxyUBI@q8U(OWucFmnE zNvwi9?yr~7E5F|FbkJ@=z?m0yh+W5lmQL*W=zv~^${lf=2tFr?B1!gZ2Wik?YHR5y1^2@Hu>U*6fU)pi>0vmWX} zHy*p4xzh3l8TmggoTp6R>TX);`JqiT77H&KQmOt*HX}dgCC_~1pmRL`GkvLZ@$()Z zUS9W=!NjT8xA*G2aO(@xH2s(?^{pot2OO7+m$CC426`DG`$F8v! zWKj)CHU26)6^-R85vyoCH)V9w58x1(1lPW!QjyzfMOeApcZkQ|33L%EPxRmr8s#bozi9fn`g;7b#x` zK29>F$LR)))?I(Hrz*6y(^ON~)3f)Ev88}L)31?Fnl4lHW2sb{_yHdVL_QyomnUl^ zUf{>Uu`ea?pVxCm4n=+d+fFf~!)_hcg2_;RMug)<{!S(odk*BuYJU-iZQk%fsy z72Km+%jG>j%Tgg4e&AJMG>t|}FW{R5kVc-Q%?9SttS_#RePQk_15aXLV4)ze zR>A%R9sT+)8Dahy4mc<3j7o9!X8lUtVy*W|BySLOj5%U<35wG$nF=y?co;#&)ZaewzRcvt@@53X~#BGD4FZx!`vcz4+J~o@{1I z(sc?8ybxQW2BEeS8hWc|AAGN?R4eSYpKZ{iA9ZxUv6*r_d!m#haQjl*Ol0#4tT*AN z9=a~Cx(+Ib9(eWVBN|(@aq6}E^>c$j3w4GT2Vhn#6c{v2GAGyJr(8s1pNRF!QTcD4 zS!wRbkQ@)Tspnp*f>R#-1z=5bCND*K%b3>!c65%GC?<0$V7jMgr-|RnT$t~#XOZ3! zIfQxsIP-u&UFqpTv42GStXEerm&NCGgqR!&gfl-pkRYw_l*?|aKc6>obZbIhYf|Y| zDgBSzCVp5)pD1myyX?vsHDgq7R=z{<@@<@@Q%84Vs(#L+3N>bnRVT;_0 zf{N|oG-)tmpf|s!MXYTFAn!I_j-n(vL3UUKlqzK5q){LXCi?>k(y7EpY_Y0-jd<958cfHrvmj%pOzycia*)QC7a?{w-8r1dL zs;E+SqF7Q>OC~#UJd1BABd=GV$m0h-N@&>HuF?pV|*Yi~C9q$O@1vFwekyEjDe8p2Ayrm!>KEX2xXJgnY3z z+a$;R*e|4uWS>kP?LR$yv9s`#ZCJ1|(`$IV3!+%C3CBA^F=i&!0T_%!!B-=4QPQ{& zC#l7~!l_8_8E0ij)J0!@sOHB5^%M3sfbe6;&=c4Z(Ruxkm3S_6rs}~2iP=&0xw#iE z*>nl0T1!rIIUo4;vNv9kTpzN)Q+#BY=G|dz-uRFJ6jR$0ma`(?DQ4eX_(8QO;k}YN z5pVs+^Lq_m$Ik%BtBmX>OivKHl%qH-UK<{IPCZvV14RdDh7J_+oH9CAV=2HdluAuc zdZ!|EzztaECMB5Rx0ES(;yW0ieRg)$USnR9rU5t=`4eQ-`D;tWYHG3Z%(l5bIoFL? zo=k%#az=0PW6VQOzHF8>qv_~)<a2Q+<~9}q7Q!oxs-7U;9#A7VfxxlLs7nM;O_8?TlDx+5>bR|kk2eg>Xi0U!3q zR(Rp#lJ)q>fEaGfEYF~mve%fA!>-yB=bNZbN{1Z-4w+GU)i9@BR*!Uh{ra`9ohJ9L zy~YosnKD`iyOw-hw*!HnVL zF(nUexjSxwxoh}_1+eDySCgC09gW|qXHE6FN$|uXB?s+J@A|J-F*WTq*-CtALaCyD z;zq%T4IhD9=xH=}a-ngQ-V~ zuh=;_NVbhnF9f>NxA@R;avw><=e=1J6&(Ydei+;fn=l~OGMkNNY`O~V&06t0rzPC* zZoWfzETxys9n&M3k1$3oF;GR@PDOehRsp{mprCEx!}~DeEQ;Bwi(?+#q!z2(%eT{V z`Ux*`8JsJ{;R{(}yDsTV8vFd`a!_n`YnvzuIHqY04EGrW1M!SAmi3 zOseGzrM5L0Wr+LVsinI0der zyy0>!%J5*F_AU05?x)L3OCv0~e!*_V6Ed@3#tM3<`%d3uK#$TP-Sm2y>VRPRlVt&C zY$_cO^%?uHUkxG{-xMA!`2GFFT&SN00#d2^>k-O=T0P7TH))f-7S84OpJx%-s2v#` zAiB0xZR){b+`Nfh>wfW>NUCpYJs8qt*)5Yg|X6iJ0tj$q;Sq$`(&0&}Im#1!&?CTuBST3z|f(D4hp zKjCc!r8tp7#_=nD>z7#WB7#STcn&%kg8;*u!p|^afn^xhI0_)PZPNAe7RD+IOOic5 z9VR#exaY_rsdF^Jx)^Vr^w|v4eQH*#UsN)nug1MMHT!OKrHFKvFtTj|{+^!D~1 z|LFZ^g_e9QEIQj%!+|vE=4DUY@oD+B$WL;q7{%X}y?BoPb~d#sy+twJ@45avX zJMY1~@WaS={*Rb!>FiH9o1-^VWrDcvdS&33>{*9@SZpK2SWm34-D4vHL$rW}-_B}1 z`dj#`>ro$%+(6V5t1^}B5n-yb1_8n%>U#>V?mwrM9KB(}tG+v3Lj0oRVUAz#EB9XPGJeKM^=Vc=4!@=O zYij@?z#YKIjnGHCF$?M03=CE%>;tX}c*q_g8T!*Jdl|f5hGa3KD_+u+>2qgt?5F3>icJZOH|9wfg-$ z*=eE-0wO+XB7CluxH~y9tkLdMUoo&Gnx@<(&c5|xTmiD zFVi~q<#acJGlT1L%$cVBJ=81=vMx5F#}H7_|AX^u&rN$Ufg zwsBYTSx$D*xzw1iOsuaqk(TeX=AZxat=XOTan56KR^+7Jv``Lv3}L%0-sgM)yYP{dn5*mTw+#`axiG0A+XP%Bt?ttXCh?^ zgPcFA!UWJ2aj{>Aep~UuP@CaHj1XMT*vXB4@PMT^G@^$O`h$cVg*tze;C-Og%;-O~ zk)IW_m(g#yn}0gKm{zEIp@be*GHzo2Sw_r>&4vNs)3=gclY9Ju(UNTN){c5@cuSou znv|DcsAqa?G_?3|_O@-|lHI-j>i4AYraFAwSZsE*Z@(|=`~VSenR_`SX&eifg(%4MVs`BryoBrkZlaoHz2s`=Y8j@*mZtlY>eY{O)kkxYK}%@ zC$9&2(|~JtKuMCoP?B<6aP3gqHHuc;zUEesC!mYM%mq@6TRCcJ{UVbad}$xq01{^J zmjJH_E)6S7N2vds%r7pv3y0z8?zK?xNKXjki_I{dxmfQWyPUv1{vJD#kG*8gBm7+8 zjz+AQ8vph$-}Dc83ozARIrmA5LRx+(BXJ@OZ|? z&fytZxL@?B%iaZed-z8m?%)?cje-JC&muz%P=Ie7!hPe;$Q?^2J%d*>H%)XG-oI1B z5tK8Qx4feV6ep!$#>MPo%PV{&-FqeN-BM~7*kLY8GhY#adv;0xZL*PMD>HRh+Yd|0 z2;@EaG<`oK-z_E#oHEsmj-%_SqxO6HjCVLx1^^QnPMf@_C29v+Uddt^!KLRg?f9Fb z#4;pCJ!yz8ZRI1~DxejdeDwOZexB4gv#kts-<n3YT%{OrIPF1_7JUK(M@^hx_eL@A(1u=PBOc?wkX{~12B0Hn4V>n10 z&bMtF;dKc^Vh!0A>6hskqA{Vq5+V6!_gk0$te?^A4v>Nx?PjXaZ}F?qsl4N{*}>HX zt9^@}f-pb5L+I9f!j2r&eb+W``1{*Ub!@KA&fg&R(jsU-qKSiRhaX#?rMdQcQJ9|x zK#D*&U$PYyQkVfciwQxqCNExb=D3p10z0LZl|3UldLy;HW&?9(dj(gK&dXgB&*`lT zTW9NsMI}~CvddjHtu35nqYL{Q^+5yh8itqIc$mo)wG;3-4{nM3h0F$po63g1!e`-R zf$?bE6LlgsS>V>L>Mh*x)OnFk`D%k=1^U!u#Ja)242MZ;;VhvXp+u^=cCUV=H6Zdw zK%@6I=D`~d#n}r@sqNd|OmSP{*#+*|R@68Kv*wS)X!r)D1qZ1=baWa1u_0CeYC~mG zXPvw9^2dR>d-IR*Q)49Z2r? zc~3OvpiZ5T6&gFIkzFC!S$-E`co{b^hFDd5trLcCb4aWt2^3$rGannBxnt0>n19)l zv#9;?ne%eOORuZIG?!c%dPpVX>KpHN6VVTm-q%ZP$SL;%Efco6nAf*H>~=VOh;aIc zdP8$lX!{Ipc|Y?PH(v&59}sdK82gxwS!`(RntNT?zX1O!_=Z0r{|)v_PB|i|G+3~9 z>{v(FYu4pmK3dv)^(TC{+K(@syH%4DN|E2A*T{7@`Z~XabM*C9avT0~?m(cQz$%Dp zuqoT`fhiBqj_Z|Ev39W8D=9KeSOx-`=-?1<%b0>^hft5mQ!|sj486OSHQ#eIqv})J z90FyXv@NBk!EtiFqgF29Q9bp>n{6>}$FA3^CtABSTXWREhtE&s>jwN@IGEV6(eECM z>``Ps8$NlcCWF7huzd!0l*KK;(?S{_ev_9-9Q4p`-@aZ!Pc91i-oP_r-nf6dg)z-! z++c>|?<=)iA4Zq5h!G3_1{=hHzPGUT6;9&JPalCr%m5f7G*wF^J^uveKXEtzm195K zdPUm==LakUlDx&zheM<%=B}|;1QsR*S%)x;287_4IHlK>Kby-c=ZzOA$vjqTmWbzL zDQ}JSpdp68+Ua1(2cTTA=U#GCYFJqw34_n;noVy4PbqFQ_Wu3*v!bfB_|arDpJ0eH zzH7a1d{DIeMZM9>*J?aBqp!O+<#su7bbF1Zmfg(1Q=_TKzH0g{rU$bf(M{Z!Po^By zXuIeiEPp%59~o1&1nrAp89;a00PV}uYT1`zbexQ0c-I$IMNWXe9_hQ(>ef@`Cr$5@ zL%?&>ri>*;ZjDnp*P8R{W4_$)bYELs z_GATK=zcr-o)6&>S%R&7g8F|A?i3PFW{{e8wUkP?!8q6;4s6M)v5%BEmv`&BU~ z=_P$O^nh6H`rRpum8{52MT{A_NRoUoB{+j6o?bziEhE!Q2VXTFo7oKKxrYAsi;iMy zI;_sb7S zN$(F7SQd|^9s99#zO!@j+3c6Lu{yu4ex+otN2VT853O+@%BCboK21qljy|o^n{od0 z+pI;!cQxl*;`Lk>T^QTn3cV@lO9!spO>Q6uuf&ctRqtY<$8;Y>E zV7IKv2))*)ujY1yUb!f|T2bHCbml%r$}I))zZL?-Oz_wevKz4cl!N39V!7Uw_{;|f zQva!ax6+xYc=AqRfcg|mkZI(kRojThlOnwEFfO7Sv6!*+vdj-Kw`5fdqP5B~_A^F@ z6&Z2N@^5g=r{r6J$U7XxJDfJIr1!e9+`Ea3KKF;dW2xEdP@ zspDTyWm)mGv0#^&kH~i20KQkj@vw(>b=N>$dVex#qn6H1+4)sl$JGf}a|^5o$NTG~Li%5_kvuEA_}^sOXkI24n?yN(b{) zf^-kzcOPNzan||f9d_V(Ms!WEymuu6>wt&3wNLvtMv2ajQ+I)t4v-prz3?=G^UNQE zncsh~A@I1Th1H-mP&GCcP)*mD6a1Y*{^HeD&Mwb#UD*ieS#Oehs zk|~N;Fy;>9-~hWhRt)!CNzypZE}U^WFg^%MtRDpZxE;|GyQ?IrMk`6Vni+0QxN<#S zYXN97dIecu4z2`C!b=VazHR_uWyJ3d3L&0Fv` z<+=4Y@F7{i8k%Y;WOZz}NO%c70eT)|zsUU&WQsFbPm*#wN=30yxjIgUBeO(?E^|lT8t34{&zwQ*u zjPQTEuR>E@=(+D?TE0n6rN{K4V)k`#S9{aCU)6|dJ>shYq`Q$TD=t2N!^6ruW6Oha z27NplYKq4+XPj40`=;@{Ez~1z%($GCPU&l-(tG$rC8e! zVKCsXns(m4BVhr%HFUoObzHq)ufFCz#)&&3+BZW$rohWK>KeKeE9$?=jB%GURc#Lc z{;wBczOM`kHfa@iDi$xMHfIQ^zcH46zW0iexa#EL?;`Eb&%eL?JVehmBHQC&#GI8z zh&LapAkjf~={i2#ML$d+b*vHL_1qt!z?&$Zt_fyQxj2xt4-EC}^Rt!$aI}EU3Mdh@ zNXv9Stk1S!SI~0+sPczsB`RMc?rGrz=y7a)@PfFoqwsHk{Zm0E{EA7K2DW*ZlQI!# z&2u~qx^(@S2z9F5QHDeHvY*sA{^1NHHp;;IW|*wc;uaQ zWm3?hF244^eQH(!S@cRj$oR%G_=?r%p2?-p0q#GBKROTssJI&!FCX}i@rJT{8z(A~ zc#(PE6kqz)H@|cnF^1!)@;#c1I{C#{Yw@ z*GNv?pBT0}Y11mOM8N{5*%^F(Vm+J_k0 zkySCvaAwD%x0tgV@efxI>@ZJ1nvvA2g-9(WaLq^x7#gsBmMv*VQ42SC$wcDLsx(k~ z%1l2*-4hD`aQ_p$8SgwkzjK1{O(ux>+5n9{g;UU7N9_gTHGSGidXV+|M4X|f(HYmC zJNZS{Hy{=fC}cca7f6$y&??B}2%|47Yq9|rfeE-i0e~)93R{bAmUG=s!{q`l<;Fj}I52D(K4hAhBh!3V@>t!2 ze&GrIv{9U$3AZ0O-#`NfEv-2c7Ef8VU^>pU>k%E^9m7rO07Zv|dXC^z)c%p^eoHzf ze{m>Apt}j$-K9qs9$v~;b*1%{m{zzzjows0 zF*ERuxXHho8x$*~>;od@YodcaFVEU#!zC9DR@8USC0j%mN@c3KE=*b+bs7i`ZpnTY zclXsFtbNPF<3)9G(dqVmf97re+}__t(0Q4V@T!0Iq~jhQk)S{B3*=;(({4K|OrFN= zeD$ZWIk?>VJ^%wlQo-vYy$I=)ppKnw8DPD!8>y^^J0DE*_IESxx$JCEk4>(BvaCOH@AI~_y?8eBb(?b8p=JGZ z8>6C^BsJOU=+rLH{P$_{FFRvR^c>?}#!V7UINXoB^?#b0^y4mGAirC|i(-F9w(Rg- zvhJJs<{hl<=jZn>ejSSFK%*$^6RaF)H9JS_dVjjk@emySOxS6z&!Es-s3LN__~;vk zB^Hu7Pqu93*s}}1skM}|%BFxFWJ}!!Gee`w`XU@#8i->hW=9zT8KhsB9^s+{-eXBU%LC_Q z;Q?xdumm%8l;If0MdhX_py$e;Fk2~@kv~c6<9T`OFXC)|Wfg$z5eR8&-8ovHe*=U) z?xI{V>WMefJ_bX6tABkQt_~?lRUaOWup5{?l#^Z>VsOJvG^5IzHinM_fuv@O@wDDe z2MvGOeG-?Wp1%%G@b={@+}P%~Wu|zYO$EN~H$n=qgX+I*t8wLN{MfBlY_DI%aunFw z79eI6$B#u0x9T!1d6~3xWrbFv?zil&%@!A>apugsq2bSsns)`T3a91M@mx2hR(mZ=Lg$+t(QY{50j@5NLdWXcs^&A&R4CE_AG5(L%*E=b1>?TLf z`S9|j-wdz={5iSOY{92!)LwY<(OSBLyJ^p+3NHGNEM^Eo{Ux4%2?S*ThIYTgGT+B5 zH9nRry!{Ul%W3m^6`1ST4LR$~{i3BC`|WEfGO}nOvCuW z0E7Fip8&_wA9{)GE7GTPPA7d?zqd^kGNK4yx3>8N(~bYSdux1Qs4-Lx71AlP`f>V- z^r5KD2xv1j42$%c^@$I;YT_hAPw7)bMOz-N`PIG<`a5)CBa#z&62Bg-2zm25>w)de z?fa5n>=DU5Yrfew<0jCMgiQG7#wqJgSQ@lVXUBJ7e_A>R5N0hJzhfDJv)$hb=OuZx zz}lK(Az%pRb$b}Le z6P%ASEdgkqlkfepcF8wiNjZY$oW9MqjjNz@$0`P3epx7$;=0L3QVIe^v}Udf$KdEe zo&(4*peK18ZdjIi`cRb2BBnyHw=AwXfQ|+ZJ1N=WaomE@IS6?@wlcW*hF&+t@y;h{ z&!DFo^9|Vtz4sn8j87-p+wEGPKK#`Jax%J4-bgLo`E{YSOOikasu*174Ht?ze*B}- z+|b0Z_ioBQ^!46GbGdCo3soYb=SzdOo;@RkqK+}vl&Qnz#Aq%=zkyC&`3wSj6OIBH ze$8_l3<^23g96Wui`WTdgDAy4S4=%A1=LLGxgE%02`&+g3fylN&QGkK7-&@pjz+@R zP#}SCUKEt+hn%3A&Ji_(X;FN8)#$@nGxZM99fozqpH>Vk*e!njMul`1p zbn{#@%AH`+H_18UlI|nm^MBl(h3eWjS86IhNy1D1x%K4ktIFDzmKHIUEPly9VLQyU z<;ZmLEZZx4Pg-9BVpyt>Pd5fKGEz$qL8$@OZ^}F!YlV?ls0qu_(Ed84d%u3L{LMS@ zG$jGzGtu8Y9+B||An+Y$NYy$VNJtBd%d_O1G*wV4y~NOfe{AaSpQd>W_XTzxa;h!G zskS|?$d_`}v7R_*xxl;EE*)ZcRvP6$7ljK>ZsOl=7+T!z75*&}fZsw2-+2Rd-~W&* zLD%l~wAqFFFXTFvVZz3bFgGc&erD*=I8LNV=eBuji?`mZ=j6T*4CP`NKMIQWtVF|v zP>8Wr)_M07E(|wYgBPuMpfCRD8L-PRp_elA?J(7ew#(ii5zlDv4g)h?Cy?jkek&0KexcDS?7T=Tb<>0&64f5~7IkH-gj4Z{5M!0#I} zd2QC7;rHz!-Mm#k@z3^GreY)JHlsFdl#Wdf;L({9hnXBeyJefrtiZotTT82{`47CM zd1rmy)e?VCl*Z~IZj4+kvA0)V>TS@w+#;Xa+AT#Tam1(yEEpS8()ZyWz}NH z^)Uljx$&aS0Ai&1Tlm$coogHAG9=~90p>AZG1ra|PDcDRL5VA~X~P8uMXh-=g$Yc) z8~$NDzARK*rz78}@P>!;*fkM0MjSu%VeKa=ah>Qx_kQk1qPI-bF6;9ygRFSKmH8Tf z-g$NoZ2ksKDP26j<%Km3@n5ckQqi;)BPn#w$Rp}CDGE&B{>%8getwAgN%V(I4p4~z zk^3X=ElJ~#?-T!5<7&&^cQ$i#w|x5++$xjzd&Z#)(V8Cd*K100Tmhfn@7Mu8-o6?DZkG{otCq<6>>vrG z>@O9Z{rJF56Se;`^iGpS^}wl{R4!{JO5_L&dd~tjLf`8kn9TN}AlM8t+M&Z<^g}-i zU4iioL1`4S5|sRa`FrdmE^0(2qm2x94gF{MD)`W=McyJ8pP$=-na`AUC7b>JT5%ap zvL&2Sm_H!0ZY=OgpCnE#;=Gz1hHG>k|JuwNxO@pA?Bl9v2GM( zkb0XW3nb=NjTvx~g3JVm_U*WM04ZmG+`~*%(8nECIJLC5jlLe*tkn>^hyOtIj$_sJ zF;Y<@Kif-if`W(3$ojTloNH3ZAJDT`%*MK{s;z$2}dV$q9!Yv-U2FqtR3 znBTc)5^T);D(JMt53vJ8bCjKiC!ZPlxIpO2$REWfttV;9QK6wIa-tafC-J$>HFq6V z2(}6z^Ei;#^UI+m4ocLn$VT6$7LSFBA~XNasLc!z0F%osmYlFP*zhRw{7%@E_uT?g z5fqeoVX?l(f`CbJVL1Qcb}Mp)mGj*X^%dxH?JdfqfQA6Q5TQ4S}+6) zp*4kB!3dfcz6HknsPY7;ET7frv`=Hh!qTt0f(Zk6$JazhPB>&vm*Q5B^G@PQ^jY9A z40}6sn2!0ByL8!?M?nDpa2uwL&R|v2yS}gi6&j#_zyB)4AGj50Q`N;M6ia%;!(Of) z-0=K;l-&HHV=T<7kNg}GeauIJci7h%k-UJ%?>p7K;~8*g=xt?yyR+O6{N(2ar~qD} zQ#D|Ly>Y8t_Hk5$tRSU8>`j){Uq+avE2K{B#6(_0&{hcAQw~w#qqe|gNTQgTE`0+j zQ@{r;s^^xmLdm7b=zxMC{(#ZU7<4ETHoHPuVe~G{EB%2W$$~DlDE(C29TNjj?>+h* zu=xVvn}VB*d+F-aX+OcPHo0qQT_n3zZ8SjG?LH|0)+4Ne9iBw6IIa6vVr>00U-W#BpScw2)zF3WS2PfJ zVQ&iG3}Oxc5vr2z#QV$vula9I?lyq4mrGT+53mdgg!X3(gS*sX*k;mnx@a_`9Z6~0 zt1FItaEA?mWkNcmo@Vcy3W&dkyCtALyc!;OFUrsBr($IIs*D14FH#`R14$FSRXD(b zsY#rI2D4wJO)83w`60voq6L5(i8{PKa!LV6lOI4010sHn{_urO9q6V)^JZm94mQmf;2bAu&n-*qeUya)4AW&zfPA^05x_($rKS*4yW~eCP_g!R9d)X+aHi?Wo@TfwY1BXM0b!PqG6Y`UyZ|R1& zCkmLvRw2h_!^V&ZdNBK_`u*1hhS7JkxW({V7&NUwD3y-5`$Y_)bQ}Jm77EbdVXG$f z3ngC%z#N`y87eRGhqSw!F89ZM!*dBDA=Ei6a7)~3l0kFv=6D9Zs`iBZzg&b(QXd7} z;6jrm=UwO4IuSxmJjfn@&>tu=@gD*y3mz89I`;ViWVA~~1qrAk0A16Ou47z9-!RWdX9zVZCA)W zidNBhhyd5v4}I;*k^r5mMR+HBj9qR%IBQ|TeG^K{gP>LN`&ToK%^$R4WJ}t96}U=4 zBK*AB%%@>QgFp4kzH2eS^}Q`Zw{1?Ea-$58kU@_W`28QPl^i65apS|TNtZKg7PCuB z(=M@AKn{3et6}(`Y#2#Ezc(Qg9Mj4KYBA8IYw&Ot*I@RbL_lOHVRQgy(H=J@uoYC~ zPqS!2ZjY{Bk?#fZ?PM;>L28?+cx{7W|5eayfgBzlLsrK*sAH&3%zedIfsN$GCB!%s zZ)d*oYOoN>J2qS~JX@;vZNE<3(JSvhO^GoK6NHQ2;cbaj{7sGu;q%iNgIl*g@%i}0 z_E~F9iLZ^hYyMR)EgW5eOwd`75?+fig1!h27$wxcW8b8J6mH3spn5ISyX#=if@=aL zteD_14|bMkz6MZ?WdyZ@{Pq_L(}E!ea<|M_MN_amkDZP4ZlDG5_d&P6$TrV! zaeHdHeCMRuYjIw_kn9z}U5>9}&g$5h2-N4?_-T`0gNl1(9i7+WzBHpS zkN~F)02&SdA6cJ*n$__+VEqhQ40t5!6;Raw|X++%E;SBTrvN=Ps~aE zxO|7so7cR>Sx`^niQzELzZ-#Q%0BBcFUbS;jBR~o&Vp&npY^Hw4?*Aw+OlShEmxdh zSYC6$Ui4=;U@0{m4grM6*esL1uv_CdBjyLxr=&rdWQca6i?!s`ij5so5`Z~~;t8eL zr<-?7!|KgDe2b)6@dOZtKVg3v)a4w?Gz!T~Wo`)@9=4rrm4HeW(8mWV>nENstqo@m zBD^pfJg$I*7-%T??M$Xr(IA84tZ8RYq%=KSf)I`u8OoDw7^&X}i-HtB$V-jo%9RB; zz}|Nob!njyuR2bQS&IQYGh;x#9zsSxp$*QeT@JTyry+u;r2+i0Ur#TF zP{4#8?*rX8u*i;P)Dq?R=rg8*c=tOGY?e-c^8~j3Sz{42kk~6^+?)}B9i%aO?c>KC zYdDi)p~70{4yj-k>S7;sF+m*dMPry`!~jJ#ac{=4&h9#ZQr^ zx^9osjrS3g!Oxl@C!BUyH%xd8a<4c!0Hiks3T^O4`vCZi-d6a9;7r=TMP{$6H^w9j zd=zWjP$_HZ=dk8EdZ45ScQu@7mAkTn7i?8dh1nNk{WZp-Y6+9{jXb5_SX3T#{@p8h&jhrk)XqoTGzy%% zTfxZDqTJIz zB{z)3S$ib-70r^)KwsINf58MuP6x)aD)d?9^EG{AX|*BRiM%|{8|;Z9a zTYEksuqu%tCEl zs#2YWN~gUb?_sWO=D(iO!O9L8U^sc9$)ZuOed<<5ez?~5K1Q8hz9G_i)pS^a$cyG? zo!X8%jVuLF#sSwhi6gXFMUjb9rOYK0(JYaPo*p*Ur!z5BD z3{%}lN;*?A)^u|Timb;^pqw&63EpO}3?(t~t}MNfdhN5$H5FItks->O{_6!Gf3Nf_ zexNHIwOvJULLaQ6ciWotJrk4+#j`9gDGS8k3Y>zgua1KcexF@&Yqk)W4v;kq#edjC zl|TtN=cWopO(4t%T5d-@3usL4^Fmj}4MWFP-S-=w$oc{303fO4L@2IzqJQ0vCikCu zKpcL;g-nW23A9!5KCQ18?isxd1=jDEPr1zv%@FeXBUEhe-hF(BFsEBUEneOmT`RL3 z*v5PWq>;E+-XSJuw12CV|IPO+P$G6=9J>sI%f=R$efZuO1RAbsS8xASMIsXJL(p6b z$2vcBR!ScMn@Jo>TTdAO$T#|R3CPq{++W(ljZq2%TGa1}7f`nX;0Hczl;r<5bv6j~ zfgo}tus$2gT##$@Blq;oQw!8pg$SPtL0_=V7nTSF4ntzRgua|LGnc;WycIwllxRK8 zaKtB4Xno3UiS}bl43#&5cwa^3+{5f=qUpnlGk@dzkCXy+1t}=Kwuo{8w=184QJ>)@ zge9aG{2Rr0;kF4@-)fk^57%LfzpsBP5=upozU1hg5^@D5rrVlz(q-|)fc|5v6L$<` zQ-VrvW_AGkt)Rk2ynozaI+60b;l`!uQ`{JrMNR!TMesUvsbZJ^vVBIY1=y}>>wQ`l z0q@gc-4Z(rYR_qj&I3P2)VnB0HS9Jy7+h@-(==nV0p#^y5v?TP4)x?9W`@MTOor+I zR|JAvr)A?+=wY+ss}Rg#6mEKN7<*!c-H)^2C-X~)U4mU6mpaM62Fnm4OKAL=rJ99p?uCpgJPDSPh@MB{?TCuM5Qmd=RQYX` z#zMVI;ddOrzJj}jDv_dq4M#+zrs(%%#gY#nteZs1@YJ=73A}qUhVpqIn6qE17o1Z-ulE%DI~%;j;$muD|jbQ<1O9U4)^tlAJXY z{^$I3Oi12iE6PW|fPL=5)&a?283N$Wunf5~8CK^&y%y}S9)0?a#QrCU%lneo*~}Zp z_QAHA#Mo59&1nq}oe3uukPkLi;^P|LW&)f#p=I6N$%_g5Y;s3$Xji#jWBbAikqbrB?DL8FI;;25?lj-Z4!^ zqhAI6N|5)V3G(9E1HK#yF7}$Kg{~o9oxkz?1KGtF)|On;y?jtn$SAtXfcbhSCq<6` ze1%x$1sS%!5ioDE_nisL%Qwte^X>HR>O6hDQUqX9-wiUcWdryGy#?O9kE3~8G==~q z&~B-(SEL?vK&;(Scub&Xp%mrrr7DL$JOLI9N7FCMS1|}RsC2NAM*{{19#_!()Z|~BE=~yWVXEff-6}G zT4?_k^%e4n|Mg~GC8H(*unLh-uT$z|8z0mA?O4W$dYOml#b~sZMXOo(yv7e}qHLu{ zqwuCD)<_S!-_VV6|{w_Grf#fF{_G7l!24=QM>bSAltc{#BWsn%g8WMO79U%;F8LA)bSXo(ljjqo~ zgfb%WZjNKw_wF+cmcL57q5Ij)%kriMAh{Fe>2OxWm;`Y$E5 z1Zo0{l1Ax5)d^fZ7(ZdE6f*SYm$pv*O}LMxLU$9g`esAr6zgZiyP+Z^Fnx?#@(I|L z4t=-ZV;Sy&z86M;5!`KF;N}H9cRLOJ3v=zIX*eL(%4%A_lof6tJ?k8y?v;AS7vAOz zEhuX&T6bxl)JukIX9E{wqg~v8+_^H+m|mfNq1i$vHakrX_3D`+QB4jqK)1UYE{-BF zi}~Yhllp-eo(5erDVVh43BzDnrHmVEm^jA>ESSonm9I8oxuY0M~&X= za~&KzZFZY}ga&Szs-+i5UvhUi)hDbYhl@{Yx)S~IU(ujYOw69CvqC?>de2G--2+M- zQP@sGya6JNxFVp{GWpQhSsh(|c4W4W+)Vp3TIfO{9uyQ2`9Sp^R*4qvbscMK0+*tV zxw*e7t)RV0d!<#I?N4EGF)pPt5}stJ`A9>X!0*a>aP+~9mRljVh&%+?;gHEY+`udP z+alaqW!km1Q}(vV@onCU%dsZiN6VN1rzTZ$Wq?fg0?wWFpKIIBHixms?1*H1MosrM zT$I%|Ky4Mg@6YIruUs7d;jFTmk{X72@PA3RI4%9zvOZH$HXHg1Ofx)(ds(Yng!Lum zFlj&^eNM<-&V>Ceme`|!?^#FWP+77m_=IQ(NYd~kvAkUmx~drNh7Du9b`Og8EXTqV z0=1KE5j2Qqupb1U2Ojy+I_X0H9qJ(2rPOpyw{jO>yn0MCKR~gD{OMf3Se=<0d(_sw zCDd;BE$;7XQJ`Jj?XpKK^A&scR+vQ3KS@{y+&c3ilCxkvbOcU$@$0oKwz87tgdIcZ zS@-U*^@Ti5Pjr~@;-riQ0%|JWV3TT@t}orJSh8rpL@8@*X)j*o^Xly~;I*Hdn`@HE z?KW&Rf7vvz!A~g6)IQ*v_`StljVQGsGBW)|C;^ zQ~>uQ$_i=u^5EB_9v-OgUA-ejRYzFmNAcE75v9$PR4vLmr91igqda?!*go9xS)<-? z2LEZ=<5|-SmRB61h|W=7;Nba(+5UC^j~fw;G?oq%C-+9oU-O9hTOQgRPn4)f6o0pS zHhA4Q0v81t$HpTjdx3NO9?V#97(QjlkA`o13+>D%2z?@1D!eoR=|>47iJUF~AzvFU7m zO26Dnv&!g1A?*qn4hP`0>d0UL%ndgWqW_n^8i4@VlS&G}+1qeL03VkeV9&Tjp_=0oJduDKBV zwm`M)G}lH)b9c&KqzB)M1HF{nLp#U>h8#+mg@7*;1JYF~4mw7b!T|oUQ{Kxp4C=EX zm&r5n6R|r)&Y)k@cKUv-(M3C7h9Qx$gi87xzQ4Fur#oKaCF!$p3X9x@kIlhP(!RDn zH(p`HU7luNjCflf0L0ydAOzQ&gugIS!T$;Z;%R-=K=+xapNQ-}V%4ZO^|pM%@GGgJ zg4Ks&CHhv|clueg27yA4h~O%KmwAp5s6KKg&h@|9`%p1be^EN~5s0H#k{DBPj?Kn4 zH$Uz0qlYkbl>3%TqC6ZDbiQ|9gA!tn)L0@LEF!6Et~7hF4gqwM0&h779yAABJg{Z` z7(3qv;0hhn$G*MX%hNgOF!H<2RjH?;-21X0V;TGcH&bwojOBK{;3uEnzqzX@ z-jcgsI9VpCZpMp$`x3g}rnW(fI6`mJ{O=vNm?@f!%~{oh3h(!FSsu@A5sy4}*{u-X zgr@=7#6syK#dmv|Q5|nb=FQr)mBsi!o&_`#_ES>Q&5nFsuvvVC&3~laP5Y>~xkInR zgZiKDd`{qBWB2rkiV3uG8q0a^+X&OL;WD*j6C{7D}UR^L-n>ODv3L7 zn^Ms!3tR&eb{_Rnu2~X0GPfeHC2G8JDhtTWXXqF=8f6-DM1JeYpzEcaix){Q8G!)4 z!?;DGYf*dECcEueZ=OxdVM3yIeOK*bDZhrGFn?aZJi4Sh$mZa~=2)w#LAdeQNgUjn zO&}`@42?jOCZgNGVhYkQlvOPP49rFq3@|A1q4I5yr#BBpccc1p0+!YcWhvj&jFbXU zyH@k2_bF^PYwpf>i~TZv@1vw@R4`~_Eq;4U|iRutfE8~b$iV$5DK4=O>{ zXHvH%u$fP-?Rt6NIa`{MU6W$^u-G1QU~VTDN7`hL{ozZ_@j~fs;5qTCH!=6&Q)9-? zgGMH|nAQ*S0R&==3W>F89QMU7P^1l_v8D6k0e;oz>W6x$fxzDhIHkKNp$3`C{iPyL zbcNu+XJeOL<4#fM<*md0-|^tizynGOXY73faG)Tk*{twnoKeK8=D{l&EV|%E-!Sr@ zIJ?Pz$JuKObqvuljbNWoh{@WKcUkAb6<{lO%HbviqYx5A`cjL4_EIUSMO#ga>eXJT zyG^oWCXTvW^^IlA2Q9ter_rj!h}@&o*|RGNNj860S7rtLrUYtL|DfQm&+1Hkk{yKK zr%Oy_R=4fYb>TfY~Vc;IY?lrDV;_~=?YIEQLx zjAiv!9b~p?*gen{s2=&IS8}?QsNVYJ6P+d#S4In`lJ}26f6&L062HX~#`_7z)_;w3 zk=|EC@HR_a72Y+UmM14Y-(x8hexP{s{CakFTQ4uKL8*h5>FG&fOGdcdja>S%_1#_H z%^fQKqw|>f{F1^-Fr`D$T&|ROGA3^MQipSSrd}E8b566*l?z0b>DD}G3g*R1O~1_S zfUBj<^vz#{t7-qLfTh?hv`?$JsQ-${)gAFK*dJNxPe|P{ysv#FROj73;gb{-N138k zdgf^@4BlL>dFIQcAm_={9z)Yd@~uVLo2W0cmk(M}zmZLXWpoX=PS%=oh>BG(n~ewT z1S{^BZaqutboM_PTPc@VNk(&qmZhY&F$JAFE%gN~=N=U0ju`3&JBzn89xBqC_cU0j z4u^})mWvK|)+0n6B1&Op(Eod@wgzdwb}JjPu+Q+ha#Ssuu!*YfHP1=pNPC|jwbwGX zkWzJ~f)v`m1zHpSKg!-StjVq00^O+CK}G3J0YRw(Lg=W7h)7cqr1vVp&>=ujL}>zw zG?5~`_YNT-O}aFJ5Qy}a5NbjTxeLE@&b{ZkfA)FIpCBY}@~$=4oMVhRCNmrk;`& zxq6EEOFg9-Tw%hC+tSq{>;mg1bGC}7aqN5TE#@Y2?T6s0X_RHHg=1W4?Wg3p?uOfl z;?ku?CKthG&0B%UveC4k1fe>S;+j~O%;oye!DuUBwqd2-gBM9*{ z1o`Lq^T!<`V@etK#^YRQ7F5twVfSi}?amN;^tUhQh?mt(r-pq~HtPZqc&%B&g}BTX zbnX9tWRL5pqe3oLZ-4~a2sU_1ASy<|>3D}zxI!TutYencuqeO%OX-sF{pdu9a~5!U z`7lMSs@CQ`5hBt7FE20O4ifQwv(~VsAp7(BxIz*Mu?`CtE)JGe=fi;G@Df> zfcOmn#L9%@w(l38t{+oeZ9n9I=@>V#`UNIh$Nr_j%*90z(A%5;oi0}kDh8kXPjTXv z-R{k`{J6X~#>DZ<-V}A0wtt3oA23B(Zai2EJL3DR4tsY(Z4IYmgPW+1q~(x%3|ueg zv%XT0xJst509xOb*$N6b>DTb~g$1m^+NF|PxX7;r{gWbNfugQ@yT@tcTj4Cj#D)cdlEizOEZkEv~Xn}^F2$1Ddz zORs@vjbHqTVBsE`DyVv5_EcFEb{cSv0yd^F(;BbO7ydj6it>Er<=8E zj0Mq_hRffh)>SY}Fw>GAcQd4P0!u**z3KPY-d{DPGl;n&$m1>4?B~7NxjCBFYSOmO zbin@z$G(e<{B;DU1ZQOx3tqg9dQ-*>?0y{0NFtZGosAjxkikeE(JJ_;a2ENm+-Squo^-8ed!=t?kfI1)^93Uu> zb`B0PfzDPr`Y>XeW5|+7(QZdKgg?x7GWlRfW z0hTmQiKO-47w=R!2xaR|TYU-I$M!Aj5!1Fme8o8PxY(~8U)IBjPcf3>o%*ko6~`yJ zxrwyC79x1c5@Be#XQcn52wbR3e_re%@^oeu7y zbW|%@sOmuV>@U39*n(gnGDDQu zScf&p4&D_d7~An&uKui0WLm{ZQ6J+6`D7rRTY6`Vl9Ec@GM9$KWVe z*#US>KcW2g1B~=Y08*Xo7os4dXQXxtS8)C(^(w@e^4ltfv9D#$E>Hh4L?(ySut|! z1Kmf{?_qw_pBiJ$u-jUxo&j{L3too^5& zo%TW=(h^*;wLcdb=k#Oe18$C~eT`1pTZ_v@_zCw!Dobs<4@i7zKE8^P7j!nUWG$%Ouj^Y_=Qek4pZ8 zawh(7W7hvt!rKwNT#S^lf4is%7hQqB^+&*=0S{~L7c8ZupWKnZWT!SF1Y}str4q1e z#-5YzpQNszcP@Lp7fIQTTn3N=fgW3Jz2)vk;9JX1@!EN@o}4CoMzQ+v@W(<|kij4M zi8nmQPTl_tCONhy_^33OeLU;zxQpc&l{R5<6%>9$cT=UzpscNq0~CIHGsl%Un1i#Y z@v**L4V(VR+deAiUV?0s%YD^B%eEhxL5g$7y{4y5Jm(Bz>NW{03&3rHR+vT#A2j{b zkRB>9?_df}K*j-myyc1={h^TFsn#}4L9grQPc3&R{eV}Nkmk5k(w!zuHCvO|GF!}@ zkD-Uyiwv&vJHyWhQF+Ons>7>Cb^pK>k||}QT-O#Ju9*F|7QjFVGn_%_E~B;%P1{gz z^11?_@b|bRzf-N5FUoD~1w=P((V&S!_Oe>L*x1(F(vy@34+>hv@~VL@TlV0e#3++!@YY*Sa0|RVU*PJ+QF*)iP>ameqsp#G@NyA6rm^RoWO!PYApI;w5oB zLF8GHyvmUH;+$`>QR$KaLp#4ndu^Ix{X5dfD8_VR-d=}-)w zKc9?ql4nj)9ly}u!;{`s$l68F+Ie;ut6fBrxa%ibYl|50n^vONw_*$Y+23))L{nkk z8%>;5%u;N1JS+}zD6aj6btQGH2=Z1PTq)JN(l|eO=6;i*S{yGsL4*|r642(IhIqq1 zW0J>L4d7@s(bB!4_7DM6J~B8BS9NuXVnvWA=J(_qbHp0rb}Jv_8jo)wxy-{fM4t1T z5z(NF#p~%W9GHc`7WXIhZx5OELq%CySb64wFzV;x2^nk<(|>gUV_q36{;z=vNhwLk za9G&kv1`fr8RG7r$iHczErMtpmNWAKvHM~95@r3;GL5sB63=-U7%rCiM=Q98zoM5t zQE?|%bHJJW+u3-d8oRY7?*>q`Ovj>6?uB6DOj9yIAYnjS1?F>TmsGRG7b;^LlARPl z8%^@1srth_*W_EYpe)Y6$q@47gEOF&Z5e?UqzRtC2ly$ywE$;8sj6*UAH@c0@zC{QJ(1$CL$hJPCs6FfE^W@<~Xk7>g z;&7u4(FAJ9F~`=a?=2m4ZTjmt!}{F90OUi_-{_|;ic%W2oapQIwHHdOL!0h)+9FjsMUX(Ve(YHu>Pyf%f z{u@-(7ISJ0#$o@+cKZ*Btw#G2tB=M6?ANE^J7+$BnMOV=zWGGMep#JKks*O}oR9T4 zQo-qALhnzizMa_RA`*S)BA5Ok4nH5>e^H?CX3Di6Cg9%-wvFA?ri$sKz({|EioG9f zYS%Bj&&<(V1U)QP-p8qcDy+ddWI;G>ZvWz#n%I=7q`xRg2Q8fY0~hh1XG_2W5!TKjj^ur)%xB zt9FU%0o|QPCxX+`(zqlAZ{-9;SaP1CFMSgle%|8bm%QtN=eeF;V@&zwWt)b@&oQru?pYS}rdfNha zSf^{fj>did8f%ttQ5Q1A!!b1LgtwN^eDor0H!(3+o;;@_doHKZu|I!K#Tbt~SgWu3 z^Y+4nJmyFy(H~zO)iolHWCugwiIPq~0;o=w*bSrw+~M|{Wi;`k>R@vXUtPZ{5NPi= z$}yX4vY9dJw3a0y0gHAjGC-)Gcn8HqTe{E0BD6x=Hqzu%SqjmaDn`T2x0%G&UL8iYfAS1J8~c{RiNJ7yRifO@)*sOYtvM9R2q{6Uw*7a3{ao>3k5LIDbf}{`&B; z>LG1;kRO9ARbRzdbV|pW23E-3xqVs4KMDAli)SY5-19}BsBV6TS~Jxus-{Mt()lo_ z^0L#^U*8<^98dN0$u7GJ2l`RJU1ln>r2pBbeAKrq;`o;YW$Wm<(e?xWo2erXPu)cJ zvb5M+wt7w?oRH6l@d@3yIZjqfwE;8s=XPEZvSP}LO-f^c=Z$G*+N2$8J z`1GL5aHT*<_PlZtzeP|3;{Z|)p(`Ebo>NDhgU)+N_op}&-A{oxAvu{EDLW$`Un(Ty&oiYP=S+|tEq56=r35ci6W`)A@P ztN>FbwK-=}p!%YeTS#Wf1~nv0-l|97m>5X+$<`_xrYeUeq1*^L;#{U;2oR zLI0p6a}@j+d;XYT>{;}M1HsdE(nT}_0)F^7j;6SG1=rT78Ncb(9P9H*yE&I7xch5{BE>KR(20FyW_qi z$cxS|ddTp5_NS6TEz6>e!q;wTmJZv}j+cWkY}~b+#WVZ=Ks0*0phd(9y?E>vf{3=g zf~RZ*`eQ=HG$LdkRaF*Wu0Ank-syR3d|SNH*ck8djdk+~e-J5FjoY1wypJhk;EjT< zr08~oYr%ccipPfSPKbz13AuI`B`c#Z?$Io5k9JjY36x$|;eeM-v4!3HG#2-n*&RB* z@e+5Gwk9QgYpvEnfNYx4T{AznNO6i8KQz(8oaYdD=*JMaC%@`#Rj_rSa%nPR$MPX!d!PQ=DPGN>9+yDpwP z$7hp3Lv5Xtx7~-cV5Qwe=jdT$R+20vyX-y(V-9!q{IiHXpBra{>5^k%UYgjF1^;@R z@y?p)TCSUn#rT3xWq^@fI}708Or09@d+ODiZ;U@hE!KJKB{O|F34JR5DV@mnIap_( zJIcGHZu%a#z1*ohBgCQ)a_+wD8}+;kOH7#s$%V~3_*T=&IhBL`AKH~Hz=@A1J zqf@JhZrdw}@DSBs+h_zY!XfeSX|YIMjK@$v=9SNr%-PI-9u)GM#tQnQGD6cLay!wD z|91x$v~x>s&}Ycw$yh-WzQ%eG8@;NQqRau2lxEz;zp;g=^vk0^KR z@!YlCNUul)WtfD83eLo; zV!qUvi~WvTj9blK$myV!g(iec%mJ^aS z_PlBv4?P+}4L2v^j$+rO^!DBa(ncv5>IMN@E@ec2rs}T^QR{ElQSfL*htG8oVQ}qsp&e-K!RJNL z<6&v`h<+VKxhZ<8>eKVavUw%;PSS(obe~3Lj!r*6u&jg9X=$5NKM6ysHPCzf&>B0Z z6eGkC!c-+~z<2Jao;Ho@)EE9JnFXt%446alk0-nXh3${<%dC|vySFcd@w`xv07N;t!mXlQu{|%7>v-pKHWi}HbMaArNn%Ft)9@H zqn++RnMzmD6x6@N*_%kIyzHZ^8x!NTgLW*QCX=uoW!Bv#K06Mp@kG4!jXDjfm0)41 z%x-3>{ax~>&v^`<+->r;M0BO&MxQL<&upY(JMfbW?pHV{Ao|O?ue>{XN$#u)hliMt zo8r}^hzU+rRR^0yeS7DjSY4*w{ze8)I4cCo)_M!-yeX%6xPH>af6v-?vy*Rkvs*-4 zN5_i17oRRWThemrez6Ji^-KsKm#plB?$&%&Z(&hUI{`(BxTLWA52xSu6_6R5)ANp1 z6)vzIyg5^)@`3h4s^e&p)NHtTfoEbo6WLg%4QXcVjvKpjfl;`k?{=b{$I;=Q7kOv2 z)T)zi6)VH(Dd)3|i*W6iXWTT=&5uxVaGi&svo%u!Jh@4CDG9a%Jno9~lB3JM^6=z0 zds`{zcJUA4Z)B_WX6l_sr&pa7e}r->(0KDbJ4bFhd8zgO8FnjVG^ng-0l)#l9c9>W zrn8}7c#i@T3j0wx&eC^(Ia|Nh<>uU;l_R<$w{i?K{ed&0yieu=Uy84om^j7YX=fpE z&M1u}Y+QHhdV;hcZJ!*ndSrn&Gj^78M4+tW%KIPi4|WqCY`gq8$ES}9`Qz9fGPbam z-~{Hb(c`7bwCZRhhvM_Rs@PHoS9iv1(^8{7U|L8~V`(xvo!F3!9r~E~%5|r*dk^_l zxk;+J!1j)HVz*=*R$`dZX{Q!^U9zK_2fCQh zQGNAkYgMbLP$L;$`D#rjd&R5KCW1vG=N`)bKB<05OLH!GWXE0oZE0O&k?I|W(KyHM ztY|5={MFU3rz~N9#^tJlMZK;|S1(UKIq{W;lFOUAY`Rm-tcINk@S-lw{^Lxjy>*c>k_8zfmojD>6yFMOl5bQFuD1eyTCMLQw z1l_4E@+$~Yz4Kx;?wxf~243F?+nT`$-aLNW0_G(Bp=g}@#i%U?_-4wl%2{|^#`{=% zTq*z5DwNdbX0ee40#84QA9@}UVh9MrcPYo805{K8$BWcAPJzk3;2{-k1*>XH7SCiE zna;eA0RQd$WHf^@%&}X#b!lk?Qv}|dpb?bT50FTdzHib1jvsSwJqsfU0 zP!T zB-V0e_>Ab0splypwVoi0ck<-zp_VD7l21BMqx$8ZTb5l@T7_VJ0|BMhArqOX{<&hU zZdJJ3j0LkG&CV$d4gEwylBNQgeA}L`ddME&%0=Clw7RWU+l^SeYpM$iuD70Ab=G2t zuGaZ|dC03mh>!2g$uqRAQ8$!IMor*BlauO+ppkz5t;N}6AB}hRQqg`jl8|rrUxrtG z?t%F3t{Yq}7;5RPOz~N{jYCn6%u|drdueR7k|p=-aTELhcw=rt-twS@nV4L-{umJ|;}@oUT5S@PRw7v#uyeis?eu5dhzBk%8&yNz?z zS3Vno@da*vIY@3DA&ayS4E@XftDPG*9*rGDIV$cirB{y3jAJbknxl5s=!IwSVUEgd z$cvJXFY=sRaQ&9=JZym(g2X?AOPqe*F5fP%7f6jt!h}EPP8!Sj`^v|iuYB0soAsVrG&byIk+q@oXHLkqFW>V% zqobch0ZpWXcP_ zH(|mG^;IlIe!b_e^6K0CdOfi&+io_KfuhTQ6>VK^(|gD9w_rGvDA(M#0e?=5@YvPR zW=R8jqwE?!`slVfT>DSfHIvgcET>di!mQR}Bq6crgZa2${74I}SX=Ma!fL_i*~STy zEJ_E2XZK%RoB{Q?dGIt^JyAf{E;E!A&Mf`~o9=hXLI$jb1EroHpJq&?0yjxmgfp`? z{yb({$_Rkt@nY8JStJ~;F~mGcT(!ETupPyH$7xf}O?u}}MwW8%H9Ue_K<~GXI>mh6 zRCj2Snm7=$s%kmmcG!V=`FMr(_TrdqvbSio|0~MS#X<%%D zT_w#7ER>LY2vlv_4RaSH6GC*ROiU|3FSvbTgrF*D1D#*-2<<| z@5-ZLD=D8$mM4-PQ|m_f@Y2j*MvKsyWOelzdYZ1h)*8igQUCm_$6c)xpDuRs z$NZDDzRO3Yx`Ubfa_VMiX%3gY1$3%1{e0r@SZ;alE8c~(&d{n};e>J3pPjmpoUgpk z;yFZc@4lB@ea~+wSYfO8IF&eDY00XSD=%LjHi|y5SH1yloONh8n4(Z0;xf9HwwH%) z*i61Q1fL#+?rr=8Bd72B{igZT7nuTbpJ#J%b92v0@~nMicZKjO-Yp_JTabS3lE& zL+##F!G$^C)66bz+o#o-HAJ}7KB6Y4~_Y|3QH!Tw#ZJ@-u-pS|=mOPlq zu8J8nnW4glC8N@CyUA-QOQ;YQER`Xi{bs zVx41BYN7nIJlI~3-@w$R^JY$wMiV%!gNGNoklO?-r^R`9G!aX<{%v6Pm78Mv1s9hx z?Uyg@VHB{yg<_itCVe+Xn%WwU&oVAy*T${ z2^90~C<@t`&3#y#;R6o$sslb60@olcl(a-NT@aC5v@?s`p12x~-E`Ko_~}G0nUN)( zw$3#YL@B>)xbAgTAv?uiMnh`)6fnE^{(D`(sPSmuv0+0*MGA;}(?8{c(vUNI$E%CDCXj&FU^scuxw~8tV=_hjv_*yYZm76ucAUeZGoc5^HrON9_E5% zP*+>qItk<2Km8~0QW267;ks?<%4fd4q-}0!C^{6n@v^7Lg7-_W;+h0>p(RYDF}QxM zuDkR>iSdq3PXuw{8tMG`^RLIP{J#1 zq_}=fMvij0bwjYVL}7hpddb&_u|oPzOKI<9gSR+`*B`2$cv0>-4h^|!9t>pqT!mA; z$R_$7WKY_DpfTa_P?AYv#>B`E-}YET<6@19_mL@rJTh1~lm%48NY?4v*V7Mf29_0q zNlB=guW#Z`3qHL*($N+mc-lW({VqD&)6{okelS2WtXa=rkx1xX9?Q$)Z#V||_ZAE{ z$RtEUnzgAYw!5Ce(lrA=qG#G>?RO9qAKe!33vvvDm~IkSq<2KsiYOdVl)F@;@saLN zg@L@xZYoe`p3{)dR2wt=5{kE|qAijU=|5_@q?qcSPhRg>n2WEd{ZzracG|s?@%Eas zulapMfdE;)TDLneMZKM6kXZ35A9`6rq8?WyIf_3JH;#IT&JWmT&5@V4M5>O!4B^b` zbe|GaR$gpgIe_!?*`I|)x(Wu5nOY^TK5cR<_#vr>hQM5}2G zIEqXEzB8mDh&F1Mm&gAety#3vilsg`TRD)*CNkJS`>&3FkR=SmPH3E-{~kzqp#A;Q z-}7Bv+yBJS!}CM4kV2u3BK9d}TFK+&unhg=A2khCtr^>|t(HCwudn)>-1LiMILMI? z?7B0Y+$f5=VNd9-o@(-5Ok$*iXSlphQSf_kB+u|D|26um>l(eD(G?f<+)((SD&I>A z2U~S}B#Jftku>X<%>DHW`=Qr8q8-C8-qJFXVug)EsZO3Yo9~LD8ogBX2X~Fs)zu|< zvMk<$3=!oIg}JW(X@0Dhue$lMA}3HMnBKC6DKD@W2>AAM+!0ho*P8xY3o!A7-_sBi zW~0ThHSbP#R?=1Wd6*ui+=A@mC);5#=4(9g3< z?=PMkXa>1kFzcC!M?Ma-IrOD-a?Xu=S=I)|NFVp6S}2p3>{_Dlr9svpLOIy}5Gdvv zg+-C(q;n0Ms_KSg`TXQ|W6q`6V*M8ff_bN{5qKx^tllaK`D)yB5nPhL$5D4p1|f(_ zu()=CBswyrij{$)gPBQwQ64;NqTQusgb6uUN6|?nh3?z)_dSts?ha* z8q3A6&^7dz6vfU*DsJdEWpe4N#j)R9LmmyDk)otMXLlAgptq4ub`qX2D(>k8fldXV zo0u-$Cn4VbIzkz1_5>uFCJBeH@ZP$9)i-)er9QfHs}tAyq#1xBD$BJct3wH~_CXFKvWsSJQR-$2qAt9nOjElB*c3^OgjszfUk zfYh;uh;}@w72N5yG1De>v^(3UkQ1x}`+AP1%t&?^z z&AdX5BpG_8541E=aZDAQNz!MSbNA{Cdp}xfF`QgjpJ;EH+WY5Gc<z$I{4c+5SeHizQTYxj2Eys9tI7 zAocnxi3_PXbo6z3qZI0zZZEM*s4wsR=piy}l37{uKxvtv495;nnVw=INp++dsz!lI z2V<4kEzM9>`^|6xQ)Up^>o)KL&;c}AY>Qu+S99eF6%dPEJB+O8YiK0>mk|pQ5-%0q z^?&yWrh1c|?9-L!unSVVdlwZhEC@cDs5&q>tvAv;e8_DU<6BrzcXXhWcB|maa#4M^!M|6k;HdeI|Fqg< zhLc0_n!P6ASiT-I39b3teZ4$Y zQ#Wl+sWxO+*OPE|Sq2x*qX~eb1%PdE3Z#^AJN^7NaWgX(-S_qmxBAa~a~<4$xddO1 zsTW!cg8Pg9P&ir|vYW#FlUZ}Se*lF*bo1a)=LB-4oKUP3lss6qFEZ^Y>ip)4clT7m z$afKod7JF_ca7XvKXI#AY%dKwe&PZ}v@EaW@-0q>3MkQ#Ke50d=rE7N4}^lI)aE#Q z<}XPV*`TzZz2Gn0CV$nrrD5+)%m;kiNv=u6>%@BBJr^~sx3{;{N>2K(B4gQOgk@r0eMjO{1>!H+BwF0Ge^)|6NODFb<2v2wDBvVcRs;Bunn$0q<{jj#n_ zN{@3_;XLbeD6M}VY(fo&x_TWh1ZYpx-Ff!CD7Uh(wUqMlMCli(XYvl=NT~DXF=Pe8!cIp4Ux$Zfog5O&$u)O!X^Lf}5+2Bj&r~Mob3P zspns#T^+TmDx;(HLzp8c14FJ7XuPaK*e!ll=f69%^*SH?*VtT*kXsRzswvhUw)fFm=dR|Ug?$p%b>{OR&Kuo~MkrU-|`)&3uMp$QzCcv!*o2-^j4aA?DKT>T@RijLAQ zhr|E#PiDamgr(kI5SD~iE?>Z_C;4CE)y%vlXiasRt`1j5!>@2T^n6TC|9fw{$L z=)AYf?sQr{kGM7sIZL zOK`J4Ke5&kWs!9J-Lo%UH)0|+G_#$nIb9&WukZBeH3kkC(t&c@{(uy62w!sW-qxZe z){o?_TRVQ+=5fqR?+8=>y-Z@i3cLGV24P=@GiL}` ze&zK}Pk|R{o`kTI{FKn!y8wIX7*OG4UuVn?T1NCw^|Ci)~)cO5B&F7Fk(1< z-!eB<{4`jCZ8L3Qu)~cG+2lc0Jqw3el7n8GhpPy*l5x!_XjR}k@8qB{YI;*ZxVg-F zji&1pxSyxz|IDWNI!Kx6!&cuQOMYu$`VupbBj zMkBXQ>f7}faoLxpKK3IJyd{2@%$oSE5nu(MGDd8UbD-sj=i>`2jva0h@13A#h=JbS zCIn}@ydNIGzR8^ylDxVdxyb!OKy~*py8n@aw0-4!Hn|c?wCP7Ok}%@Je~2&dzua+h zLHygp?fRSeD^XT#<2w1+ue^#~8>=s3n)5T9C;n=in2mt8srBX1tXkEsR@um6LhZOl zD~MS4A6*6A0{V6xJX9ai;%fH*)N|F@vzqvgf9J`oa)DbQoeQdu^VV#5BTo4}G=Q72 z;@N?SpwZn9$>9YI1B~vkWw6I^cYx!*G;gYUf*AF2+G9t%zq9&bc_>?{C$SFZ49w+0 z%xTnb*ewij{UEL+Q>l^%8|th;&$kY(|C*Ct@_HpusLbxa=YL_XX4OY<9~E~3x&eqs zWl##7IKo$snzS5O2kXuqoSx@xa?G)v7N!+7;#zbNeBc04Q8W3 zLndma?|HU{@}o!Z^Wh=Z7(>)Dia~@v(1i!DEPhMYesQ%J)h@mG?HEaTFNccX5UHJ` z`vz-g21nM_uaZvh^($&8s$$Hx-?6UGgo&Io5`Q*gF+QM9{hY6*)aik9>^MdYazG+| zBLW(-W#hjJYucLsBs#~iTTpwKzG=z<{4bzB8VcuKSnvV_!yCaD=q)tnDSla~^%@(= zNWufLW|hZ2G|Nm{S<~nK8o@;B;g4U5keEZ}M9{y*S_?+R?a5cw`h>|G3mCjBb52&; z7Rk3G_nApJm>57VENS51j8ag!wMm9W-L8UH*VsRlT6UbqaM5%PJQ6&V{kP>@)V(C` z>#F^q1JGqo{LhAlyGGl&_Fzi)ne+IO;%xCu3>k0Jcv5Wcsy>AJ9||af`b|q`DNrwj zDa(f0K@;`hM5S%)U6avD#?Dkc~27<|Akx)U@&ant@{{cvVkx`YJvbYsw>S{C(WfS|y0^Q1I9+pPKR zUc5Zqqe-DkoV$`%nJ{p% zOQRz$CT1Ei+ZFs5RVFl+e9vnvVQ3glwjpfpZYp;jhHs&7R3b)i3&66{Y{}$-Fcfvg~zsO&aG~LA|48}WFc@-JxU!+#l z3_kIX=8+otc+77g*E=IQ{daHFfwFe9{40cD|LylY*Dk-6_Br?RFb#0Fo#DhB-D%hz z+>+Y<)pS0SNF&S6J)&E@iIfI5^iLTfCT%YgrGfvV1;v+NjUz?!cc8b zT#fb<5-Vom$Z^msoQ2+tRy4i~aqb)^K= z@0WIybrN(}TS&8q2k`vSBf4kOXuP{SF&dtvXnQ3>3O5$@7oiCqC@Xoewa{DGz1%8K zIj}-Rl93>y9G6Z~zjH*-wdbRbvy=x-e~+8Y%Ig<8YJGSW`v}XdPbb4AxOQ5=VZ^${ zOkyHspkhbg!!+Fs`UxzDSy>0_P|qGh?vkfxMeW^N`3+S62jWm`@$A?+JL%fapFJ8c z8Wq{oV<^fQe+%=(l(*r$4yW~oTF3R-P*7cFx@fbTA63@3rCb1}^>f3bNJCw%q^P*A zjsM)^Y8jRP6khl6%Qs83;rk)=JIZjyqg`$v(%MIQffuI^8$L{WK#EWcFJ|Xdsym|r zp78@HiQh7d+nmCD&{3s7Y1SPp#NGl7H+PO}nBi#QL4#`#+ER^-jKclN`{n~_%6Z?l z;Rp!tOJlrr!iz~GkzMn*6GnVlqsE>|y58ub0@gLMW1tJnY+e56jX@hVOroUgiM5n8 zsMeIRQ;}g{*~BrOyf={Gs;!&MT*~!(Wh7t7@(3I`xVJ7#!p}DL%DRQik0v~^ekY%< zG?S4)*m6-GPHY9KctugB>#wl>#t-HFgwWxNdsp4>28tcPCEim_9(^^$zlUen!TJ?A zJ6PBpmmK2ILlA>;Ct+{{b#LVY(j5XV?Ufh;yWK;!Z--Dn_Lmq&{waM_0lRSgC+qd6 zqedSQ>d&GamqhlvoE_*5T)XLpR#zYrEML+qYyMBCz)iEShx!IMC4lPv577L)`jEs4yuW?$r2i_zD|rIG6$T=)@U|?L$r~8j@lDd-J|W>0xQqSy(hPs8 zv|;tPID+oI_7yQjp0Eo!P&UV5Y^^nsG=|**Tk2&Qw_}qCEe+9ObXo&Z+hZCVDeh9SNNH#=i5&*#yz@L94E0tiHJw@R;J@wlAG4-$=?B2`* zdvyeD?l(izi(OeTLSnK1J*vp9x@64B zq3piq8|)+)GBu=sv85|UK$MaY^l!ck(yb3IM20p&@N{5 zk^GxpjeBZOPw>DX+P#TRx=;z#hRVt~&=p~9>MlMK0Z24uxC!&BdS1jRJ-$tLO&(00 zt-+ObKgekG+Bk-gT6Q#>9>Re~)LBq^<@jFGSQzEwNDRy0C%O7z%hK6NyoypBm!7gS zzJ3LS7Jvr218m>q0KiIhptv(9X9Tmp)&Cfx!&pJuIKWP~e@3OBF$*n#;hZw3;a4BtFT(*_SFe`(65R0rd3oj&;510mL~DA{cK= zc9ISu#gfLag{p(aMwcg7-WA^lFPP3kE%BZP#h~7af(w>33D{Y-Fq0iXy|jb6PwMyU zA&q@POX++6MEiZ?cTUicr6zf8Y9n4FAHf2|*A1BPfXW>r0U>-nZ4LQSbLrn_^Fmar zbNbbJ7yn1m!>Z$cG0OrMbL!qC;AnVKKMN^*d9`yR-&?HApcOz3td(v(y<8_$<#u#+ z?st59_4U+4e8NpCZMY4(uo!UbSbwFIDaP6EV&Kx&39Vb^efst8IeYtokNdo^;+h(! zI8r@}v!Kt-Kl`BfBQQSO5HRaiLGEIo--};Uamd2gkXnZ*KPE}x=f)&3dl@T)UI_N0 zsNR9|Ro(ed9r1L9JFosB?ZFg$JtMM{4JZ|xFyQ=CmV_ooegruG-d7tgpx71q$ z4YlwuYxLBmOkIs`R}A@mu$CF)WvGWXQe}x%C|+qlN(Or8-zJZuAI>dg=cPd;7r?#% z0%V=pWSZKdidqxhd%7X;4F^|U|9_z9rw}rz+IB@wwAbia_CP}5-z*36*?Mbit8SeF zc>q~H`uGSKX6&28l#TyLJVuz<9K8O)-yUcb?ep)L@cCVkHP5lA zD5Ivk&_Y$2?F>$Wo}OM42WP`&jf;&Nl5*0XKKB|XL7KDi;Qyn*#hjc}gqU<6HShXz+ip1L zQ$8^t)D)B$#y^9NjAxj>z;{-xb%UY53le6_A3BOdoTtLoM3C3O;iA#B;o%OY%wi9A zskc`d^}Y824B6V?z4a?i`9jBPqJzk{+VR5s(k3tfseAw4wv8H1OR|p86^(Bs6DO8{ zv(`UD;(byr2A7)(@4u|<6%rBYuubuM57^#I$0EI-2X2FC&?tFaSvKtaHoSrA4D&HQ z0T=z+AX$&Ko43+Z$W*%|C*w+s=B$d$$JS9avfB5(>_sqvfbUp+f|=D<@+-K9AHg1( zR7lDiT%Ry@f>x}e5!paSP|U9guxHSbFx<}Kfw2LD=|ovU&%^2GASrmB#9cbe&{4aO zp4M*>gtn={0kzuI|-t1uM^A$Ii6X@IfXXZYr7A0+&K3?F zlCR>ecS%@i!v^m~xO z?G(^ZO=>K^Sv1iPKoVU{-3|J>kCI=`6crKQAroupZ@*6D=r4VAGh;HEn!fdJY8|ZL zd&*r6P}=cc_?f`O07SUXnj^_hcjgb1lWP;m^5W6g7fD3ip1l9)AAKeFh^WifINk;+Et0l&5c<8e<*tsa46fif4o&sMLQx(N)*Zx#x~I-X(5&DTgVb2 z#u8(xM=5({34>(Ko-GDLWtqsnW{gqDWEmdYO!ohI)ARkl?|c0I@9TTaakSBKxbOSA z&g*l2mh--QUHe4s^2Qg@iQA=Z#a^EF-n%4X_)lquZxhLV$$R33d0&RarcUe5Gkpg! z1xA;zH*{v;?jCzGGIheh^JLGcvi8iKJ4Meb@zKC1dP}y(gL!5CR(Dpupl!3{qlVRA zmRPNU5YyssFI0JU{=sY3fs?XjI|Bq9KmRuELR2tT{{5@L32}z$z_Qzu$5{sU`0azl zP*r{XUk?NXD)+ku)oj%yZs+1nAIMt`xkl0yKN(1`_%(|qJKHLHu0pT@`#hs+d65x% zIN*2<0dzjDtxU{+$ejC{b!1GsyKb8>YTtxjViCTxvokX97A0lX^+$xxz?-K$wePb} zZMJ)V_}Su|(f(K4|M3EhJq6qH+1oy8S4cu6EThlO@#A*(+u#q|)fcL;B+|69IDbE* z;z(n{xI;+SU5wTs1scQbD;;pmu-q>AS+w_lm#k4ljHmb?Ci352N3D*>J{$z#3ZAUJ zOQ7ZHR(Q%@5PW@R`GBDFIhNz9dsN#+=A;*Y%O^YE#_%*Ti)zJ*mWjN}r$5@k6~v+W z`s1lI-t>Fd*l0@&=HeHFxPquAG3+0doR3u!#>dC^r9$l_1nxDwL_T_RP=U5e? z7w{lx|=jZF@_I$-ANe?*C9y!A{VSQ|(emree*- zalChMnTo2)u>4~C2i;i0R7`sMHCF{{fjP+ePRGTBou4n}b+ZvAWk~YX?W)fx*|>#t zJbK%eK(CWRvwUaecgo^NS@X;+3SZh7zWgJl^m1D7p3tOs|{M-Cohg> z=C)+&h(6@6Pez;8Pzowy==0yoL)jb?ZBP`)2sq6&Hi_WRL3os*i&O zUCG!7UE9bgy}kslGxnuYCwp1*o|han7i6x{)IhV|&jle_Xt)vgbZNNxuoO}&-cVH8xoiG^NNn$YFd;SOenCv-3;HU1Zn(4nb$=)`s zt*vb~{x$Ep+qcT?W9L<{DJdx>;1U#vGWihW3S6ZcPJunHtkCTq<~T<$P|mz}m9oeT&V)@*aH#EEY;_6acMhy9>QPN$)SX<6`|-X|Yig!w zMGcGcqFHB#iH#e0-&a-^CmmZ=*i8|~Od4S>@_UKffJ|n6NxgvGM6ZKrt>RNdPBVR< zZ;y7|pJ_xr6{$T+1qL!xJC2Q(Uzz6M+QaRrp(1ZTV4OVD8L?vQ#bx^ycneOCLCD|r zzx&{rqgR8q(J%otV@VoZ0<*h3ssVtLs~WKmfjIexgPX`=MOLZYwdl!#cy@CZC|6zm zUy3TI84YP)7xVwh-y_Ad;l2mEZ?mRvx>tD)9{={;mXw+ZlCT$1X#eqC7a<5xMNrBE zTI)xuQ;Ca08QC`XjRiOFM14;yt+|3N?L@;4s27v7WH-S2UzX}@QOmIX$^WjWE_BWa zyGCzmpZ!@k*>GxN-t*kE^A2Dw=2KJ=-`f-`dr&a;{$F#b-unp$8P&1nw<$*syLPka zR(h*{F5&^FGTFIZJw)JqPmkgRdTN$Gh#MvMjjL7Yq-p@xp1J;GU1)CQN`^%>OHPZt zb<0r%RD&q7r=;={DR6er_?6l+VPqYBY1D|7Y0Y>nVtHMDLZvPK)(8P04G^(G53Se- z=^b?%iFcC-+`Z%X1?ItJ*_;8oF$HVD+I_-bG=`r1*UVqrcZ=Qs_Tjl3rd{!=`9N}> zb@=!4ge%aA#kqx4r%Elb=0QjQyDQ6#DOw%A!xP#Ol5^_ov&~y`s(L3Yc=8SS3$kxr zi>%pQ?QHLG(`XrFyqX$zlkw7#_eG1NiTJ}#R}=CUCVf`REJpX{7#nJ9`vKe29-zKr zkUTo^-Tu;m@yFaF;+9Lny0eqrTU-wwhx(@&x`$g%hR5FKx-=~}nkP3CedJ=+%L-sC zIn+RG>l4?07D1Qkx|B~scQ&enP#eodjWpNbwT)`Zt9HtIljswc=eO2OV?-jlblaUn zo{%(66kaR?aW+ha=&G%twxffF1BL_o^@xg)@v^dE2AQ&h$T{`8f5s!ErY=EbCT)sj zeLaNzuJO~2c>o@68|B+9F7oW7l+@{u5*!)!#)4+y>$Xzk6N)51-*v}wW`a$O5?kP4 zcec#=?Pak8_lRZIReKU5MYDRo-ldZy6 zeec%?ue0K&18<+#*ExLzo{Zp}{4fqtSCxhS;%%9@tx)z&mdk7WyJ?xoHMzs`u3Sup-cO58`m$f{4-?e* zc)FOG1#k6T0fIfrDJm1b*+vDMm6`heUKvME{vt!3VEWn)qg9QDIF#VGuWK~T?1&76 zW|CZ2$5$wRpG?GN-`oBvWUHECEW$K`c$_p8w`<>cZ{7y!;=TMA^?v-hfZbkcU+deh zYSu(1Do?l#eSQ&1fB7SXHf zQ&Qo1OqI6p8nx#8K3Amn4}BeuDaJzx3_$yG%KiU9zb)DKOyxjJsuU}!6Pp5hTc6ds z-j+ET`H$XKjHGXL>*eqDXp8z2lLM0Zy&MptHN_1&iRQA5!4BiT5UklPT7RWtvf0~q z*YERQ;?p^;KOb~#HqGSP!7J$33T{NEs;9x928!8b;~B|e*FHfOGX#tpPwlGy8Z?$v zcKq8v@vdmw{IO_Ujnb)zJ32YclGp3!%3Q|$z!(gHLo(}=F(K|j3M59w!D&c_Lyxcd z%(k5RfG$f_iIcr3m&Q)z`-3c~!N0HB{W;O@O*EVK91KSNx#InCo*?E? zEjd(d&yyE01bT6HKnG+ry+6zDk^S`t*>z0J&~s!S=@65yRg0a8@FE5uVKGsqQIOr`Lp=7I29Vk@b^TJS6y0DZxeC@=|>>tCu%uGG~j zB$lM1RI6m!yf9~}jD{d>utE{>KO`^cofS@A)CIc2yZbioh~2$|OKzH&v%Q9sB(iAb zue~8-OWntOCDL@RUr!L)Oj`!4!4dAg{2O$wJo3Bxq5o}4*eng{DU}4$Ho4n%ggpT1 z&W-l=6Nr45nlD{29)s~Iv-#I6p_(>v(6PfP9dgQeJeZOEZ+4Yj-X3#=aRW@X=@KW<@Npm`P!#I zUUavr2@A%^I39yg2;04$>lRv*eMTgVIV2+T`jH+80NG*VG!%>~L0 zcXwIvGTWS%+-La0KynU(7<<9JuR+6qingOkyAkPeQB%MAq9lH7CXQWY{sr=)ea%+A zJ0Ef`l)KVAJg2|={N03g=-^CV);P+LgB+b9ghfJz&B`iujPtlP6qYwl5Kx5@#a`!H z?=;7wThlcKlarH`gcN;BXLpO}&-(mw?Rgc#IIaJ({>P`Ly9K=syxuE@nSV+28otMK z*(O`psDt&1y&zq9(6BFW7ZESzh;f@^9GgSQ5I-R@2Sy~eU-QUFXN2@C%oh))cC>}J zXq${qab+#UE%02_u71af&*H`3`WPmv+OBNLiPQ7c*STH4IL6g|^EWH-T-hkq&GJG? zgeBG8ZuaG~u52M?vjbVxMxDF1r}`I5MQr-=;x~P5WI>tz^_%b%L~%s-)MXSqM4SKM z0jc|h*`-d~bi_%I2$mN`*EE^|c1E=|79g)dZLc*h>R`&QjHoRZNQ4MslHR2ntj-wS z|F|8A2UedvY`+@}JDlNwR_;^f2WKfaz;PAkBpLG2=e3yW7C&Z=fPwylA_W2VxRKN? z8DZz~5Uu~!+u!sF0`+<5w@x{|RaWAtn!jJP z^6$sbPvtJ%6EwT?&nPEo4%Y(--nJSjf1>2n`@*kJ6aR!EU8tO+hR|~gYGgBc z^}{lWsq?=2>!_GX$S5P3uKmI!keL9m3z0B#{o|^`3D|B*PLW{kI2dRzW*z3vmOsjB zts2S`j6{-77-S^HBpr`ywu98@^@*MtX0p%Z;ID7KZeo^8E$<@ytBh7NGIMH!yMr&z z#2SKIvRf0YaAuA`ICzB3fw0Nc8CMwuMK>J&q;E2xSW4kfSq=J{!hsN2_zt_AbjX$Wrs}h>!n% zdvH|3lhG%kFxTJ%Pkr-?-q0Z94AAs_6=v__kVI;PYe6; znExTho$n7-dA$ySiS5ZPxzP9A*zr8=&hPEl z*yU6QFYrJ&bvB80Funre`P$>{vaE1p-m$if?LGZx+W|UzgL$X{;0c5-=G22h=(K5W zRCwO&WqsZCYQW-)4NBV|c$Ac0KK>&O@rejYi1|RKax{oP6j!wV8sD^Z`qYK1_-gQSvvcn z9Iuho=#B3}`-^Kyz5^#2l8yWYF-Du$NdQ-6U|cER@SXHc1Pk+&&f(fWq3Q5{`#*=6 zgXK39+c~}7iP^dL)=W5RCJCh_-xGG=pXxe5PX7(|NSxRPq%^&>anEJ(EL_1$>vY3R2y- zS0>&&#h3%x_Q-tO{Z7HHI%b=1j zAA`J0#4zd()lZ_hA&&_{Pr5)^$$c8f;c7a z#`WtDf$-tgI5*FqpP!$2Za#-w>noIa;}e@B)*4*pHRFnABE{kFJ+QC;kT?CQ)yDAq zOX8N6wt;2XQ21w74d0$<&J?7?Bi&BC_cT9PW?<+`Zm`~#n5L;x62P9TQbUlwzF3#g zAl-fM#vkwT3%g%l2k{M<$yyIYw{MqXjtU6_C=yBnL4I@__aYXCja3p?jLj1DhrWRZ zyTrAKU09ZaZ^+E;@90R(S|r@P?%EuHeYwHPrQ|DcG<66PE=6>XngmbK7%qBRwqIbD zHO^>FvEo0L>#`)w6{UUYq)?X9UB?qnPGK*ixmW9(Z@TMd@a+N#Hoqn@u@e?lT^NMg z#`*+7xU=+k+rkM(+Y5*^|8C7ykPIT7Akz;DVe$6-v_+BnlZ^8{g^iNvwFF=K9RW*0 za7?y$hurmfu}rv<`7$ZTm4h)0y9#1_T1qJ(OxlFbVC6d9WScsVQ0q$`&LB)bIiDgE zjf@O%CZ+@V(H+u_5y_ajE40|2ko9Na;)d_RR)Ocw_vxbDz#ek=tfksl!N|}Nu%&Na zcaL$XX|^8_@y#5yjJag`-?LZcXHnGQw4+IvUmiHuejz}YYqE$got=I;zGGca>d53j znpw!nnOE+H=;cXdOANePuo0_9}OkNkU2hPie z)$CS>_Qm#reDOVGi!}^@o;yp0qtHf!gxV&_leS8Od>i%1 zw(Q&a_HelQi_dxMf_>!2v$7{zxVVEIL=Lt9kBQqx<4;(VJ3@VaQ2(oJ?=g@QcgZy7 z*&A$m)Y1_5`+GR>7_JTJn{90Eh>t!WLF&a66~i1cSK8laCcI`Ty9|8>E%ccza(fLS zW&|hx2@L?}sJAzcLIe4S= zDyQ6L=?oNrgzYEqj0oQF1cY#6O|&Z?V1_=qx?6kh4w2S*!=kQsHJ{S&Frr= zjzQSvwvvT>}S0PhrM$xI=45=4Cj{RuQco_~nvW|4r+_ zb32(!V6Rp417)`D{Xfd=OaqcUIFb!xV}^)8cCO8vCHBET)?CE;jQ@h9wacl<(-?>A zAu71L@Gxz4Z{spwFMXEQ>A!!J1QoaF)p{}#f}qOQ7&u<8F2HofP$-@^uv5}yApRf+ z#e4i{t%pr>gSAC59%&Q4_CsHQ%cNUW&6YhLnF_)Vo3qrS3reV+X43XP>5?bQPSh-K zG=7)x=-_?x>u3Hwy0WqLrpk>5`_sLnC!R-hX0Nq)ZSrCLP&%2k^h}MIdDnvSyii*^ z;`I*f14~OG%yl66?PGK~EQl`5jwIc=Zi&n6x4dHFYiFOLrFAjm%UgSdNXzr1=srP4 z=EyXuYZ|LP1@;YMg~Y^uOYr(wAo)HW!a@$h-GSX6t*0O+d*Xb0nXR0*7=kh3T%|L@ zy=6A3v7{nf#aKBCv480giP@c156zvl%h_ee8LnmRXtL3>)cV7=L}<{$9*z%=*-j7s zS2z8Ox5BQ6AYcAMGj^a0MVdPLZF5XQlzP4^DUyc#t0CzS4f zc|WW5el4evqcYtB%;?BXDvo_CU1Z-_hp~^gJ5y=Fj-a*Mc2Jm}RD{9TfihCqC*5cu|X5 zGn?|(?dAk*=Qat5V?wF_$6bB{oAHP!X%A)YVzwU};}&y0ltu8f^GrTZLY(7p7|fN+iwL*hj;^ zKthb|$v3y)g~heD4hE8G^#8|WPh>d4Rf9RV%Fo}(pbDh%pF|gR4-c;oyTn@!TgvZ; zkUwGyh}fpySeHr!OIj2}{YN3C)>BI+?Xv_Kxt@UEKff6ZiZ&_f||!^hpeN4I^afev)+(>new^X;F;M_?S*j)T-G+>_?qu7d-Rh)|Dw>~}_mXpPp(0HeG1SD!hlML65$(S4H#Vhy^wLrA%j&JLX6 z>N}?&Y`CBu-S!tteQ}?}0pA>s&2iNR=a2cP8AszzJhJ<*CL_C$F7bK)Je`J%#wY&K zS^pJID3f3=N_#b{PK(yrk_;%WGqtZU5r_$I72(zGm%k2YM2D$RQ%NuY$fOK0-oJe6 zlF5MadJu0iCu@$t-0A(IVJaUEGi(N+L4c`1OZMiiCNQI~veJ?hMJsu=#wDg_l=i?erUf?fYW*;SWBj>1yy!G%hVD% z4AD(_Z`Y=LjEOqMX7-yP_faoMAUD{9JRsApCJ%}z@ifvbp^Erz_e*y+jydLxF3Zt0 ze4Rv2PIGPeN;mx>qjf#rc~$0zpzwd|dq&Hk?-2?gD!QiPaWS!NIZzhJ+=66>ut6`@ zPVFBf5OdZVIM`{=n|fKvsoc<{WT#?hV_|+EvJop>)6oT^TyS8g8MFpCYM98U+DQ)r z1*N0qkF+-=uw`297Yo5OHb}sQ=wu;w%%;h7(Mz9Jc>Zbp;z_TzgM$tw)mKs{-JR8_ zwV2}9k7N3w`(ns_!_XxD;2+W_VI(Fe_%d#I2x%s1{nvRC|MWEe`ai5SlWvKGnEczH zO)kHy4(&@+rWQ=ckK%!DXB_Y@>0sB(`?0$F)Lh2ItIC&vq z;w~$i_=MKSWMs-ux=nIBRIVG?MDF$ghTK|y?=4|L7JB~7e)xj;M07Q}SGO6O;wk00 zdGMgu5_E6DEboqrtCw(fc#DGVDj?uE+IuafT9S}L7FY<~eqM4NW}|$a5?bK4&Gq++ ze*Z(cj)S=ImNqGHOxzOM4wH?HqffB?o-v;FzM%$L)K@}Oo@|xhc@h@g^c|yC<8>!rrafye_NQxq>C$R(WZjTfLv@}!8Hdy`5oV|$9*XwuEgiK!cs>X z;85gfzlRy4a_#OlTrQ~tRE~TgT1xm^oJkx)wjN<|7HdP7%Y4fCx8Tq)ws30x66!8AW*I& zqQoi#or~}w72gxySVO;tcI>tXtINwQ74$6>onfzq)}mG0#C|DB%O$`&N5OAe z>Z(Sy{yGeMz1On#3KVzf*Z{RVhB@YX6VYV@US2CX-#cY=hIjlZyW+K)`aX?_4x8ls z2va>zeay_Q2*}D3iFKp6XH=;sE#JK^{fX$iQCn%k_kAr=C$Fwenf+UC|8c}XK_Y@+1JZT`1w}qy3aQIS5>%y>Opm(4j~+(y{jp-a6a&Q3{oJ23*Mb!xvUax zZtA1aeA~tr?wsO;qkWGWQXJuLkcmwva|Oz>)uL@gwP6gEldG$%UAF;qJ|sLT@+&$!#Xax*&ro$;Xllf3izhzfUa(VMDOn;> zj1lBjBv25coWZG;%hf1dyv3}gD;xfx)1R<5l}T&u__Jxosc>`F%jl$W;)0shhcBsx zTK(2#+Qn^pkn{XhJ+H6~a&mijUwR~x2-(AsCm4~^8BCdN)>Mb4#&^)Bc0G4;aVg3u zEMlbnht>cUC1OJP8rJ|YX6#n76~EACe^~3%Z%6qPfSKj<=Le6}F4T8H@>=t*(su6L zI@sHJZ;jyZLS2a#FuRUjxU2*XTN?_nm3zd)iwHC^=0xlerE24oowt-Me46ixbA?EC z5O;CeMnxOJAXJkEKftHZp;;AXKv%A5UXIvUzjN)TM#>gvnP*ucor<@nrb+p8JNsYK zZZKL7Y)bb&#Ol2}ug7L^t@)A?3`lMx$Kc|C?Nj#O@XRVir|3l9sSpwR{U*2Iy1Jm9 z9=bMCxzzNdbQ!D5&q2mK?AyHPR~C0#}Z$LC-mdtdG*K>~idV z8l7X+)^61@u79mr18M>qa32j9`?7OB-M81)LgwrKj>KRoXeMb6Hgf&uebtvhzrH?j zZlfppyB+(ki=XV}ttvpK0zX->=}l$QY#*#43k!UYw3}1&aDB41Z=1Au*+0~HfxoQ2 z+K-oyBmPll$@>ba7Qb=LO{`q)0uU0SNRR0-Exg{`!`K5mX}G$)%Cw58J&Rb&h)o0@ zc#*>h5t_{g=G1j+0U8vlE^v1XP{jZO=&aUq-orE^)9sMst(1cSUTgKicwF-!@CeRr4vshjfdh*EH(#dw2m-d0%QaSjn{I8!hE~0 zT$1_|l3#>f{A-4qB6AV|G05IPDA=~!mWJ5Oh)|^4yW({MAHXVr*$>E9U{z<7Ds8qYGnrz4#tbX4EYcc zvUX~dwffY0)!GNguKaF9Y?!*C4>1$;>ZSt6*nXA^VUp6iO~O|M5JD+L3Sj*?-*lug z_00MRhc*=%%L88lzh19l(`npY*w$pPnAt*1@yML2ZQIR;ZIAyno~ zmf+4rW_{Eoj>;e)wqD^0;%=pcAbkA~uD~8H7OL(nbw@hE?+pPc9*iUu!&wFlyUO8S zm41Z~F(BI_wUQs1@2s<0{w3yh``xoz&Sw_e60)uYEp9YcthDvS{h=4CWXiS1+vAB$WOpsC)Q<@ACia?m!mk$LsOq2au6l504`wA?JPQ6vdMK*{n%VXP-;c z+QmVUqaEw7GW(`ky>m44 zevry0#Ai^Z*11wtrt-b#ImzUmw4%CLp4Fd`+s5BZ^`Y(bMk4QQrfK&lVT`V+uOVkkFJW!e zYT<$VFrN3b+=1{}3i*s)$SQ|mC(a=cl6&S)#`4dHT! zv9p7W+__GkFOEz*JjWa@`PP!B z^rg5>a2Mn#Nw5#%ug2TP%}gtx=J;hONrBDU{*$lJUs4_Hq` zoq1?gz!`YzTz4CRe1_=id-woQk9A~3bnvUA31)f&+ZHm4y! z-=-A3XopUswhl)ch&b4=X}qT0;^+cgj3j_(l%l zR@`f%3T#)S0m>WK#C zMtv(qFBIE=cTLig)G=+EqY71{2jYi!#m{kK?A7EgYS5D_h8@-_Ip0zG>R))i=$TBq z4+yy1i`eH^5W7iW2{Yy7$e;v_boQSB?Xl%8~iI2l^L>THJm0#(Vt-}wqE{>sl%X|ZqONK7lq*$jOEbZe|Da63@uS550?4Ol{HBY;lpBW z6;^&7oNmzY`Nrxa&0Md|ic$PO3fb@V9DeaA$xA1gpdZwt|MoJrXknrZD<6H&!Qy4c z-_j(Gi@_HcP$lmsgkyu*68gwrUs2A>C3OxiUEyoWSQb6G{&(t}#||{ICJyRNy8MWK?OwUmady(Drhkub zzFs}^@2mL#uh(ne@JQm1A?^b=SE1~Pmep+X0A=^F6Xo<$gI4Kjs53qi> z!V|Qaw_EtCjxbt`v+low`csavw9jIMsA9cod6eT5?$ieBoKLZV z^qY4>;j8Pvwg6`rPZ+sOF%W>-{0xiiR$AumSuva=ygJUD*Yire=KpsrEahW$Sc+~V{^#higcJ;{5)%SmR{!&x8Xp_6%6Imt zXV=2$3bhM{*z6}Ug*us&a`EhniRjm^4))_$CvWEu8Vk{Av^)8Ph@G&=y0+iYTicv1 z@xe-?b3B+FMJO}D(MGVauSQS-a=f~NZGTt!N~qZa>L@#HzH~CRN$MGPMfOz*dmz?& zFYU(|L0Bi}_VxF6nvSTA?Yp2Ok6pXCfW>lA$3IPke+BFp&*lx)ypoWCK+=qP6|sF67Ig;6xUGl%B}qMkODhR zJ(UjV$@10RI*evCZf#o@<+9gF)z`sgdef$ij=!fU!(lpY^gY?Z>2P@Vp^X;K+5n}F z+Zl0Bi+113*iu;jv#h{!a$D4qJvJ`;Pjlvy#uNRvODQxoH8Oiw%mui<2ny+^jMh_{ z9%Zc`3RJ5?DhfpfZ2yoQ-QyjQ`aq0vUDJ8|*J;+XHXpe|t>*Yj9$S|YjeGh3kB*ian>SfB0kz`&;LXI|e5fg3^!g1Z zvU*rD#!nOF6bmTk1ZpFz?xZ@^W3O-i-0l+_Jmx>>?t8|m#&DJBq14}T#Geti!?r$H z1FOSxSSQ9cjWbz`0qn=)mI{AO4cAu8?pg3n9J`3AP2NfK#^JOSw%=);s#l*cLaWtMvLy>Oyzm5I%4282rl(-*h(x_}!THjyTZWlt~~;)F)*1cjVjmyRvxO4f6XCYO%yfdep^ky4vzA%u!WOTCCIO`$H zI#f56PVYvFo^ggD08VtFmEwgU1;*_bwEK7O*W#~byB$I5N}Q41A<~F+2OSo|94MawomwyWDi_il8y9B&4ce>8v2O4qNz;B}W7rekpkL!TX!9(oFG|u#S{R3n zPra8zu^tJJDi)0kb^#J^Z)%N)D#-0>KGT4&Cd7+TQ=>6;Qf9D-=LdO6fppH4wYFzq57!O8q+T;yt1)m` zsQ(39S)7_*tRSybkSyfc{mU%N_E+-c036firAYR{^ZXN~~q zakkDauvBb$JV!BYec;?=bQc9B!c@xETxTMY>#+P#i(anvehufPiEK4j2dkGEn^@o>d0UHGPQwuwT4E(y-YJWdEfzLTV#C;H z-DihAtnvLc{$fM2YR>*Z16;Qm0#wlhl%a_{kvQAWZS$jh4@LVa=p>7>i#F?cKV!#= zjOV>89zWX^M$MEqnjd(8bg zieT>Dks|m8a|gVv%(DiM7u1()AN@f;w_b3O8Z>W4V?R&Ij{%gR=NSj0-sC#=}QqFs30gcC|2?A*%(Vr2$;$-2h`K7Uy zB#Up26<=P;>g9DdwwF|qv&BTX`Q5Ou*TA1r9AiaWoa3GBq^tq@HdZg-jW%4J+&R!gB`dNI=nv1^Hle-t6$cxM!Px z$eJcmVf(8headL?KH*ZlZ8OHC)YYKWq*S9EE7FCITk_sGm2#iyk8lgI&WSDh7c2?W ze+I3cI!C&`ACN-XQcY>qJ?kwc-y1ay#;Vaux5UxK#Kwi=kW^nq#*!o8om^P8ACGp= z4&$rQh1AY#k{TD`Tg9oh13XaJk5A+kkN4m#9eRBJ7U-8+dMfwRZ9go8rU8`HnA`L3 zi{d9$e~Pnhq+|YY=-@NXTb*AspNOUJZi#G?x-;TAH$41SRzL9etiyfNKC69=!1KXC zGcWuD_jCSuS+kI)qV9icwR!cSo`;`Y%W#sk1?XJVUumJVl#?}u}4s4aDhk} zAsz4j+eJw|j!HrL)6MQV)J?L;S@Q`{wE8i zE3kw*S@Fe*eY{q+P%40D(b7=Gk>`aRnL;V|qhGO5hotu6U`WfB#_A`#nyeL?X=1oO7Tr>vz$)njp%!0r!ya1pu zRH67T$-D)a&OCteM2}n>U!g_pQ-Skzh9{F|7Zxecd6WW?2lJ`5sG?`$iqq@~tY zyJL6&S;;d+!q<(Jy7U5B6WnWsQ9sspt4r5x*%)-E|CQRb6FnB-D)S6s2@04=fi6@f zto5WPvD?TONTO@bO$aS8E5_OE!2(U0GWqz#3)^4QcYvQqx&Uzu(l?Ax_AqupX&zId z>n@F{!0P{una}w?FF^E|9M54i@bYPJJUowAi&-+*(D@<|^`W6bn1!IBF!k6F@09ZQ z!3YbPpN26J^V(3B8f{lT^&uz9YBm6UQJuaXl}3q$nF!o;f$@$1H(gH)@uho0#a(F< zvu-wdaFx6+P7q^lQ9JV~^81V?v1PjX6sSx#PoeI{{p7oiv;~f`3ims!UYZ9LnSOitVS+Y)|NML5h$qgS2?FjIN)+s#wUnRQy!GSd52FP|ax7!=B)IC~M?E>ox2zI8ie& z%ugh|bxj-;)Wcc~rN2-v7w~Edwh;s>Y(E3!iAC%XC)$6F!M|i7X5k}hX&+)ODra?( zs4)$!KQ5#M<=-y_b2i)Zhmaqp@>$ytfd6D9brd@v+iSLE-epNv|-Qn%lUD~jr=IeSjj``$nB z$q<_!_^`<>W@}Q?94D~#5?!i=^2l*HKOg|dZHVP>vdElZWg-g7lpH1WiwB&x@o5rN z32JH+G)JGMvarlZf(c5q+Vl!^3{bxc_J2k?d(sTK%*`Va+Wsk{B<%u%TdRXpE1Ip> z!C(m_ni@Sv!HqCVkJ1IciJzoCIsET~NszGJdcC*ZmwR5)#=a@=VR)QGp`k?-ZYD&R zr|NtcZExvqk3jaMCx_vn1wH~+^I#&{LG|=Ne7}e?S$^R?+1MD z_Oh4>peh8q-!(_KD)U8Q1~F&)r95{qB>^LTGn+AsBTr;+y_-ui?|NIl$#?qXpG$5V zd*F{Bb|!F1MU6g?Dro{LsX@9+SikxpcO^XizTW6$A#bury0C|SDceEdJNw+eNTRU2 zT4t&JC8eULc8j;f_eX`&mxe6|j2m=A0ZCi+sWd? z;i~%wDmNs!$Q<7$!enu}oUpb$ou3rrx|b|Dr05wvZ;P&n(QW49Uazw>{1L4}qXCzj2QIWvYlv~`@%oH~SG@eTisS#}im z*u;$$5ywbka!ktL`%^|A1|TRIX>0sk0+kcTihe#AHXJsbHpIpo45<(k3?Cn0{2z4t z`Z*-Cbz1;u_?PjDOhFe^%vpib)=xb@f5B4EcVCWg_)TKUPA-)rExBuZ^)-hOwy6t< z^!pZ}HLqj?Wy$Njd`;`2^a!aJp#`tW!Ntu0MM2O7IT(Ol056=R%2>Lg?;Pd3sSIW9 z_ecEkKxw`qNXRKBp%-~BJBR+rA`+JNiNYiN+An8Vfr16e&+M>czPjc5SyHJSmkndc!1bH)uhBOCO*aBh??!LG3 z^?diYORB=46?XUFqd$T!;{H9$_4chQ|G5D8zK7Z*7Cpn93gu7ywi-p)!O@BYV5xyi zS_A~-=1p0bo1S3{B;>7dk|2=6%53HZ5CCK*h*~_r`bLI+{g~74984Cw;iY67X{g0&wgnsxPwK-Y4R(?<1^Rc7 zRV31u!sjow7XL$RhD0TG-pXO>@A^}nl-UVC@_Nzz7b)KzPt?uLCD@3%OdUrw+?g$f z9i$o8JpPG!`GnLEYZ`RK9oyD?;D;GnKFV6220}0)<#gg+n*D12Z9ME!s(ua1512MbMF(l(xfa z+Q?j@(pGm^m${xzpS*h`5b1Wn&L9b-lm>or(YxClD468;=;yEBZ2j{VYS|l=y@#O0mM~OJ6vk`) z=uHy{)>jAdggf~Hd4@>1t2Zf5CG9;_H$%SV=%5cy2W4zzQ3b`I3l0nrvH=7RThb$! z*A&7%Q}sov@W0Sq*gQCZo8swNWAY&UnUVKy=o+u=1e&plWovpV=AMI#g#%UT_gY-c zapmc1QcK?@e(YlQZ&0Mt!DUo1U(Ljwc{~p1QogcuOGW7h!d;(drE$kBl{;b#L28gQ z_WS6}IY0qqadbjI*P0vv5U?8UK#pO9YC4n6?m~c{nAMAlXM$=206-kDz!E$@r18Gj z(^N9ViD*UYct>+I_KP>>EcVMf8iZzzSIMml9wYSu17m-Ub9ftHYt+l`K*%L$i9rnqmmg6Pd%l0b_Km?N#6_YFHEw1N}-S zE@=-^RNoM`%Jxrz2#CP({v1L;=Og2Nr3} zYqZgeJ*hS!73)AKVN(`xD^tQr0Ko%~s6iR}*{dmejU4FW$2T$G*b2u(#Eqp((sQEvYuC=mT`!Jr}5_bI(Tr(~FG2EhJL%y?mYnIS8vY ziy>e~u+op^!E^XJJ?1grSo6LAQ4-S+24QmNyaUe)pBsbnFSvfF<6hCL1E&|drWR(X z|1h3Xst*5cQO^{B;u*F8%{jmyXM3nxaCP@lMRcbmR?SKt~RL;I}2T#G62qvaZu0y_!{A!LOYC@*R&RIaidq zTa4vsdV|%i2xGESf@edFN%%e)o9o_;RK zYvtM$Y%Q7*_w(1~cuXrCqtXrd3RzS>uq9}C?0a3FSvwdy1&5Cj?!rkDv_{DURuc;1 zZHJgNrw#l0jQ7)2Fi+sWH%Ucd^d{3+n%y#*rPh#!r)K+Cb3)T}tgVF$88G~pgwK_m zH&mW>{lO)5QgOP8H9S9_D zcBn+-j>4}o{@98+vx+sbGyj`V)jOq}?~2bKm$1vjFMt3i^ThtOU6rvlJA=MZB;3!q z+dFphP&m*Xk3iKpK8GsmaLk>LQH(TM_$gZ7*7mZTX6H~)@z)zz4p09UKfIykFuS%K zCKWwjFMZwdT2k?L$51igCd9z-+j*l{$y{}w;?=FW6y>t$d(AUA^%*giOX{r<>PH$m z{PkP_+vfkTz3&cdDqZ)rjn1fu6_l#jho&M%x(yjcMNx{Bpdwv~6bTR@I*g(sprRmM zK|nePNK1%{fYeAAghW~*h7f59fsovH1)M!+-*e_LcmI30&$AzNLLh5>-}}AqudV)G z;;r?<5#X5Jh@?2vt2iuyxUk_9%&vgXWcJ##PU9%`4WODDz6|mlX;!jL{mGVFuCSL| zaUQw)?!>2+#N15c2X9t-CCJcPaVaC6FWL3p2&7L25yN{Th^#1w3zKXxYOg2&$Y4D; z;S>UJ3bjSGMPXk47{{j3lg!3RulBAkX&#rv!I4ZLJMMho+CuZN$p_6*CM+)G^x)z|s z{N=VW)~Ti)sZ7v9aNhFeNl?nXgc=SHxe9NnWCnq+i44^|y3XU9FqlP+Sy&HP91g2T zrKdE0*|nyH)b>(0_Opoef}^p4Z1<1^TMfaf_$425Di6UENV2q_a?%0w2euMd!?*Ye z!I3!=Nwo9I!TOoQ4AQuA9}|P0s%gsfI74Y~&pA~#1Ph_0VfV^8Ed=*fciuFsV^>KbhNN zA~25ZGWTGbg!iX0c-ATRo?KFU11S z{0<>ikxEoo&qefOgGGn-wp}1%JvaW+k%q=KSZq>{MR=-nOYRA~V#v+9>U{5KILGI^ zMzxu;bW2#?B&P>R%Up?4W%BMHY*!zhtDK7P>mtJ9{+Cq-m1%FUdpO&k&T}Tl$3!Lc zf*NoZ>bJ52NhnMW2KpFb#bz8jpHx%?x`+o4qM~4M;4$+bymNh$h?H;4s#VZ<7*JqR zP02^4xL{@!m79Q;jIFTDqqCO#!#$;_g^r_7XcTq7$pul4^zzmzG;=lQQU{`ipcLwM z!d+Ge#**iPfg^gGD#%#Mvyi@V91vMRQUlmy8(*wtAQM8xN!^A@31 z7s&X#qHk=QX_wZYKxIjL+#Y@!1x=i+CLwD zeT#mf4xy0_({~SgxB&f!8t41Q#AEet?be&xK589j=*BWw5;8$i2uj|SOth?NH)lJA zvn1>dNO!$lZ@ub~p*BbQv+lL(_fpbw3gAvphJW#!6X>wg)97bYk!l-vYF%Jy3qVNq zPh;iHep@AtpIz1Gy0Cu{Q!tb6#!#db(f5N*JgRp+fj&7eyt?x~yLxxY30LUzOBd|z zi6wmxQ$rbhMmc4MAl-p%tpr|6<>{+} zTFQur)SaFmT7b0t0?q1Y(N3%$NoIhqc!c#okXF>sgQs129)M)pTj6nIWwQKiO~^d1 z)b?t=5E;T*JAXj=ML9lY`4Y22WPraT#D}&ZpmM-1sn`X3Ri8NR{=IF-I>iH@XU6#- zP^&EzX3+ie-%65FW@)qFMsRbLm7e8*s=Ypzn<*4t<%1kqV&*_&vwqI*c7yN$adK zXCcBtikeE~3~=$mE#vMUFX!3|)iQwsAsGgasgSLgoY{Rm zb|;$bEqFV3AP0~t4=mQk+WK%_)QF2oGl;uMh+raS;d!CZ0W`5tuQgU;mFlW}(rgX? z0HTjZ`!InVMzNVf%E0nQ63ua%3j(O~SqSWX)=60zZmu>mBo{>#(v=Tv24Db#5I-

    $k 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

    EXZ;;nJ$8qbQt29DxmtXJL04YD{KUe1HTZ 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

    EZXQNRTp1FniIct2eo2RRy{`5c9 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 KqU?>~r~d<;$FaQt literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-4-240px.png b/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-4-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..f27e3d8ca5b4623611cd41ad9470c37acedd73cf GIT binary patch literal 12172 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 U(Rx05t)xd#me-K0kueMXKO+^%#Q*>R literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-4.png b/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-4.png new file mode 100644 index 0000000000000000000000000000000000000000..d32af017b7b28b1eed37609400b40240efa8cef4 GIT binary patch literal 44577 zcmeFZXEdDA*EcLhIwDA-C((i+dJrT;8NH2O5+ced(HVvmg6O^XI-~cDE?V?DGtm=_ zGK10E7~UcO`(5v+XRT+g_g?q&;knkbT+VgMKKq=r_ddV9w_pu51+rUow@64x$N-9O zv`9#qdU7PXqq((QLo#|bEb5*sb1}Hc@~s^bKJ1)7wQ&iv>}^0n&k2KpPc39WUSFT)>j|j zz!NM!cv$&4%D7)X^f7*rFp-vo_nkZFcS!Zvz^A`R=tJKlQbv5td7F!_{ChpDd_?*0 z^)1ys{(og6kN-Q0V#qnnMarh3!NLlcXB~?t@_xjHSy7KC^h}JIg(XXSC+IR^FfYVM zvIxm9yvszCqr#4Rd$>JZ4jxpS zPIU~<+$oXV|08(5RDXO9@{~G432iUz!8@uByPvA4Gc?cVw%o8$Q8pi>8}D1(lOArDGag~Z@Am!!3HguHT)RBAlxAIww)88wUJl`0_rlW2ZzPmZx9sT z&<^DGcp1X8wOAAY38r8J*X!%kML(oHP)0TxSZ{hYuc^%*(@r3h=suhaPzvDOxFPK4 z9>Tk~nSY#!kDNQPL>Fy#+s`V1*=B!k{PE)`4BJ>I!iwjsl4 z{C3($6uCC~DK0FYRq;Jz{fNYF5>o=Dw#5K1*;C?V_1Jo9{@mL6c37^kI@)eQYVWZpM3>~_pktd5%V9(!{hBd7a7Y6_gAhkSd zjeA|v2#a9fJ186Tl=QPw`nCOK60SD~YW(GW>QRp}=08^RYG0&VvR`1qK(AjO%!~5x z`9+@}7#IM>4!;v4%tIQN6c;-HXW_f*g+EWG5QRroGu_7dKre3^y$UmfD&81da%@yl zbf_oAdc<8kr|M~y>&Ld|CE^zgt~>oL9SmxF4wqRs1CLLa{>iZL=rGx%B_*!GCzn=Q zRaJp#wsxOWMuxG0hW4y>L$|_$*~-~ZWY_{4LPSwl^3xw&Jub2@=P~KgV9cchvOnds z$ptaaOwqY4FsMYHm-J?MykZZg$P33L{NR1qEO8^Rr(7O6d&0wSp#;aspkXPxq5L^3 zb9z+xjOZOI+(r?-w5T5@hqAr@eRudmFXPyd_rm0v08hm}YA^@fp%qa836#K z$8LE*@Pceu0d=o7%$?qsd=&Z^T7FKz&daiX-@&Tc_XXCyi4NfR3jUoRc$P`EE zJc-3wM2S`}P%TnOBrR48j92Y}YlNTjEDeCmPw(hi{n^d-@@n7xnCN^bqtB}_g~4nG zBFY92)bWrB)B0s2`xvqvpo{&XJG9^6f}4|k@71hb-Vc4=UK+{mST_Fw7wZOA*=)YO zt7sX*Pu9(Gb3v4`f7Gv;|Caz5xb zm5QP5iON?bWm>r7dG_om^g^B*aMcDUmbvMbihei(>U`)igj8i2!RUONwE#;&BL}m zR<@&!jjYgZ3)R?XV-8xon_s9U*YpOK;w1Jwdr|1*_et#c+Y8jM+dDc_tiqb#73|r~ zZYBwoVxS7Ajb_^4yr>i_!e$hoVQkM1hSL5mv}?d`DPgFend+LK@tlzj{K_=(G<(+- zR6bF?eG?W@Ihxx;gLh*;h~?JP;bO7y40YHHw?->D`f&D0zBFRsoT&!OR(X8y$|8WL z#m(R8I}Q-V)kcxnyjM}hQYJfA#&S<@_|&d=qHN$D<__$Pw0GD^(gA9&(EEF{g8f@qCqvsJ;31v1!^?iDU6lc`YO@0ac_z2ycTK{$nfn726-(+w$q7*h zfIUZPz}%fPEtKZCNbTgtHt-DN_L&+hF!`<b(uMJ(q5Ay1^M^@JF}8&Gwss4Nn^=ANG>tEXNGGB zI++>-0UPA9^WeV8p9!N6Z@t>))dBJB2^-_@`?k7%h4fY1B7Ie#%|KrOv_wmOH7LU4 z%&t0~6;pLxu5k;L9Y>rCisBbT)F}?h9zfAKf$eZ`-F2~qb!>*lbVdD?W$l2EE$S25 z=q;DWYm_n3vHW-o)p1k}=DK8i$1EjLB%lk$*i>$LgryPwiy=U$U6A-!2*-4QDYzQqy%?<`xz6ez=rg zwbh}Pf=QSyrKDY@+X~?lPQ_q6FUWq;;A;LPU)9KW$3*?-yTh*_#H3fiLTb4(;;cs5 zK6-Mt5E;Kz8h-t}@~0~0Wj6E4S2|WasTOsa$czUkpL8-RvQWJwv?vR|oie4J+X1D$_5e zsVAYP8Pf=-RE}h`F$=FwSX}NGiF$Fm^MuGWEZ zVK{DKJI>Z_guABUC-d}fIM?!YPD*8{oUcMC->?P99V$FZ<)Kz%dr+@M*xnzZi;61! zON&~~$0yh*Yj;onIeVW|D+vS_{}Cq}QbZjPkjvK4qS3MV#6TL^z4$lW`ghHX`+DAn=gb;OKc16wW5c5R)a&@N5ezAfAarib`>UC8Fd zg9ksC6R0(5ZItzy#gY?zEkQ{Jsw7y!Fb!_{!+ z9>!?1c0icEzPmQXqoo~}-_U1bEh(_MYQW>DxAM24e@Du>dc#;FZ{`xWES?#~zD%6i z=-R?3Z1E~1aFFx)!f|QW>|Ug)kLa%R*y;L1{!@2?^WVv*^FdF1J2ZV5pr0XrJ&ikWR&;EGxS8YAp z@oKf@B&2`aRJ+OaS-pu->QTM8PFw+9^+wjz-sUyz45%p8&mjBkaEcsFV72beVpKi; zx^Xm6CK>Fn>)}&Cr=zV^XjZzF@e#qbJO$cYn*sqfee2S__NDUnzgL!CL2xDQe}YNf zc~-WzZrdc{22DTnf_-r{`*b`Pj!aV~OwH!U&mdqvg@!c^eKpSC>WbrAsIlqzqLciH z8mQ%ggdxhY@q?*Ae?<@WrZA#-`iz#9ShSi0&Q!@Z@SQ#x83_RwW<&{I?| zGj8lk9d!}Xg|QZz=TO4L{X1`I`++MCh?JSC_CC@f>_WjAo>R&0(EO9fh(@iFqqqpr zbn9R!^EtOaHow@R`jL{ zP(w$fVqr%|6w-dG#!ViUD}s=E*WIJQuG+NYH`7^iwE@;F&^_jnRvDCAaH8>?rnoGVbvH@rJ{qI|SrVP;U=$UV^C z8Q7Gwu+>U!TfIP>z1=Gt^lZl~dQr@7@{?l|t)A*x#Z z#+Hq1PgZ>eZ^mSfLx(&|qfp#_dHtr*_fsp zB}-%j%n8)cg7d{9v4RS!b&Nae!>$1^Zbe;2-F0gBRsygO#ua%m-N_Bagg%6)b)_UmFOfyV;Jc59IS0TNPF9E?2syNpp z#hHd(Qb|ulQVn$dyTS1gUcoj}_>*5_v4G1Pxu0$>HRfA0>0l~80D>nX7Q2-ac4ZP7 zx7s-qg|+cS-;~5>vF2ggM&U$38r7xs^O5E3S>XobQveyv7_X+2Bgf!XW`oW-Iv?-m z2WQrIe`@Lvmg|ze?M62wKL9eAG`@OY{k12`wR5kkV&+~fksj3~e$$O9Lj0ADiq|ME z?6)i>=L2QF1!J__8cxLC%MvQK-Ie9-XH@E4=JFKkn0+sXvG>Fau6sH+{)_A-(yT6) zXOGFdM{(d;Qa<;${5|A7^m1noyp(iC-av7_gpYm*DtA;j<<$5I zIY6${Oc&~4e+Bu2;J)0*bp%WcU`)D(K-7!&G{1|Fh4&|8vU*myx!utd<@7^lCy{r%oc9*Vt zd_|9(iF(ttJzaH4ot!NonKpV{Jwe$vvKr0I6Mea_B6el{D^F)~q$UFxWx?^}ja~eY zEd7>erP~HB3QDmH+iz-)In?XPfTxWOKuP-~cjl=)7%3^tFfub2n{T_p=Kx$n&o-+v z2x{+~ZHF_>4#SXj3D)3^dr(K1!_g6;UP2TIh{|UdULWK2P?5dHZGGUTz3BFlfiTWD zDmB7{YR5023CDPQ6^(2T{skS`Dp%D?T#cTWdOcS=g4S+iDZFbg;2JqY;T*5Y646FJ zI8o^M$D6jawxC2^MDdaAxHszLR9KFVWsZ}jB~!D* z%4d8WEBrTY4s6ipLe8R53$LV=VmPaxy$a89TXuFFeLZu{X4=Bhny?M;ZQ$)uOk^lU zh1|X+w7+DIc+PU6q(2q9`n>7?s|uTad-B2>BWUP^7yY_Xi#@2rO2>;R;+pd({ib0? zyivJVA(olBSE8jPv-|*`b65>2pkj(%Hy?l%Y^xcC??>*Trq|ANas(4xdupO*qZW0P zLvj}%NiaGf1D7I_WPgTzi^^pcD~+m_(^@hvF-xWL$yJPXFE;y7YUy0`LCUoVrwvp4 zCiZ+JtN)8aT#{aH{7l*Es={~R-n$e`2KW_CQkiXU+^k8=sI$;c55vGqWF`-q!sd7s zTm#Y1Gm{e5DwD>T7K#O#2G81epXOy+4UBqN73E$c2Xy@^Y(!593zmQuF3i1DZ}FE; z^53=JhDEWmt$d?Ifgjx4!+Q+ui7j1C0|OmCmbnV(Ls3a}^F$-jR{767D;Yhknpd$Y zShg(Q+W_^z%u|)@RQpwUQw~bk-N&E;4l?`N(ALfL0Pu{Hy;lyqGbK?#?v^kNB&9hvk7P17e3im0V1yM> zCnuVcE2h&O^_lk1gTK1fc$*|jpS~_54b80BpD|dYpNsXjOnQKF_-=d2^5Rq#izf!z zXsj14$y7Bt0NsBSEE#*1I6Oy9S?f0e8q@(=UrLX*bap6zlEG5Nfa)!Ob^8A5)`*A! z8+Msgc_AE!$&VAJ3s0Pu;wQ}qo*sS0oQ=Sc?IpH__^(R&)R@k8e$V3mxH`;(g=uv; zu;RhV+%1If@9gs`1cfHkRK3jW{Q)72+Bm&IHce`=zYesZpGa&)!^TLJ;|qlI@25E> zH9#_484#Un1~Sq9p~cDx_!{_Q>f}1`#3{jWl9dspLD;<*OoQPfY-rv69 zcsJIOZz!Fe2qIe$AQStbtF-5w{ZovpfC3s&ux*o_WoFZ&tiSg`>+!I)6e=BqS$0N! z7;3i3NG~5yzfDePfgl6Q=O(vD zy9|`MEhn3K*RmUn>V-IzBK`WOs6Q?y0d$Zod@F6*q+mN)qQOffttIx_8ai?F$Nkf1 z!u7c_&f!cxc7Y#W>a#8X_1N9zbKY}pRbvshGF;5o@_VTaMYrfSP3quNriAxJm%f>@ z2rozZ#Pt_#O3eGGqC4xWULHPa3nv~gTzdR?qpqcTG0>o#(K~EB)#hD3TT-;|A@@L8 zlL>{RbsV`~(ORjkqgRu>t=a@53|^pL6O}Rt;9Dbor<`O_3CiP?&y3Tx?eL#Sgr9l!OJYxXiSid|YhliL|5a(-vo@tSj;C*af zO-P*J^UU2>=YluKZ?sooCl2lVM7xYN@AP9lXV)PN z?-3|^3Be7}^W`?G>o+Y<*ia(VlaYAX(;_BX04}ZZU(_KZOd3eL-#FiqcV$xh(9Ujd zcR#uFjrmU{6u#~XijbokoPYlhbzpS87EyLhTwRuslCG&6eu?$nc`K4-j(hwoU>?xk zt_*H|h^1^}^5aE$P@H~A{^dhk!=mo=$pY@~_t@m|*8;jE#|h+(O}dsX2H8AIR7qL| zGcb_;?X*%Kt{yB zf>eYZpu^|zPs@bn1vEp_YQVD;oCrHGLLUyCaXIX(iTUodz`!lSNT7Riyl?2>1#f}5p()S1qC z=(Kp&Xhz5Glys;SW|>;jlESK+ff}VHf?6!hlR9~;3kRzk_EpqAI5449F}cdU!8uyu z@p!4O9_+6NFp+P2&-j=7h3oQ@e(-8gqS=YxbxES5;P~{Gt&XTnmN4Tkz_2yBef0WMI$lDT8ybUBu+k@E_d0#QnPyZ(T4jQ^?PqklBTnE&4KL8)+4pfL?Tdewrk()h6?Yg8wlJJ@_DWyTnN^){b$9z06E{2k1{*Br=?!J~i&@H#+bhsf-niN{9W09tP zW$K@3GUv??PUJWnA|cEp-oGjg_wz3Xw|K7ECr2Z=&Cj#65Ep#8)tJmy_;|AGZ_zK0GXp5^XQBghh0J- z3T=g@I_+oT;`PF=7o2`o5VC6CWOD_~r8Y{YEWPW+Xa7ol2>T_pd0qXd;%GX=Ruh(F zt%&HipAy#I-cm!oxc+G`VI$#`#7SrdUdu9`()KyT_QD2hT zc9NBb?Y|>C`hqAc|HT44ELIu1ZLz2fD8cV34n*aC#p_7CcMTG;(*lgJqj~0-${#xR zDX8VMURbZg0p{^RPzg_Cu@=0dG~=uu-?AC3k8dN3LRu2KT;~hJogtyij!d~YijA2H zR+UL>G=dkAqAK<`!+J5MIBL9FeXzd`qt9iYyHsq#klPFn@V%wk#9FW~41jJdB=7go zmeQ$5cPjpTQDBEcc1B0Va&B)d&xwFi`>KF0dRefOdDY}{{g5Z3)EBJkP*llhha9c~ z&?g%#z!@j#cX>b61T(whn=VJ4k~%`iAXxo^7GXDn?09o5hOziD(1RMlws3nuSo@12 zeM#e_IgQc%iW0vpeL6wdm7I6cLbjng0%csks`GU$AL#gd-qM6s-WGu_lHzKQAAAR5 ztJDMHz08aCCQN908>E0*UsG#X&>x59ZNb{Y8&|GO>Xva~&6}<`S6jnb%Kb1(!i~@M z&tox&AT^_TbP(s{VX&`wW7!ZjYf<$j$-S|^kf9ZRB!KEZ2s>$q2(5cb! zY+k9e7(7Qja>ftXfr1GVI`a;5jSy$grDsQVC9ejR38Tt3Rn^UkT(r#d0M!e!THT2r zh(5$bfa&S)Gt6Fw*h`joUyg{(IzDwwJKk*b!>(a2)}CZgiJz9T>TI*89PqFwF~9ok zqe21uzfY;&<^uoGqa>gIKd=9P`XK5(7BeZN4l}D3F6btCf$M}D^Xlnc|3|{6W$QTW zzb`3~|M85J-wb~Ee~ZpJ@W19n$5YBNSX`%{o=@|^T&wp1CIKsr*s>0>mdZ@oJ}XT@ z)^)LWxbshG`@9N!yl-vXqPKPAT~jG`e@_(T+uyr!>oZEh=Tu?RC%;pKd02HBC{4O$ zY0YvzaB6pbclGY#)g~c$!ZD^g)v?;vR<0_X!!)y#1>9LZ`8!CjG#oQ=kQ>;t-cn*P zq?>yGO6X+4Vw+vkC1-$4sOyevsBxR6@mQ$0kXz?tMkyNDr-kFU z1Yg36sm0m5ssn6I{@8wpgHpzC1vZ4jNq#^z>_e5#QBJF-RF`YsTW!aFs638#tZZIV zyF6J~dQFEB>wdP%={p8VKX9-+=im_Y^SYF7VQ*~s&{@M$i${Lb*hI1Yo|@*=iO(Nb zVVw78?H^y#zb;*==ltWNk8fS+8(gEBd*RbZ?v{4dPg;gP!*PE-=Riu!XX}#v{?vsd zY*^SlCCEk+T35@gHL%YviB~B~Uzw0)TWH~0txm;KJoR1$>@m#gN%TbnQ^rhiWfH~A zrFP_%;h}K9PC(u=2R6eJkc=o&l?GS8o|0vEFwe@!UsU!gGjw=Ahu86{*DxUX9GsJX zMbxbD3eDW`>UYPLSEm5W<7tu%-C3?xDDiJs14n4K=GIYnEO3h~tyEDH9Z3cL$?^B2 zp_kyyR7=(v#lFU@%E5qFk?ws_+r1!a3nRJjTnB!b6ve_*<9ZyuxQSB$`yL3<%cc-_ znrWch+1ZOB-UuJCFrm$gDWgN*w--dSHSc~`udXzp+e*7#4R$H=pjO(sB&iAcyuqCE zP{a0@%P^lNTvn~HYepK!IL6Q;FuCfV>dmX6+e%#>URSpCNjThdz`!y**G4MShDK5c zD^}L@a{bn^ufIt8=^($QE`GgwxiEbg6}oQO6lX+OHAwV4xAZ>o1^#9?Po8wuUVRtF zOGr>s-$%|C@FBt=tg9J@M?X0^t0GQ!0ttHqzGfpq%%-q{u1=espQ-^zoodg z7&ri1u*RY3+4D)|8mm8fqG`Y~Uvu1gQ#ol1_N-xins;^TLD6WMinRj*BZ++fCYxQg zvDJeP=+3OVt$g2J`j6V~?pTnTviKXvL5qzMrVPach%6s`!4H?XbZ51MGd(f%>TisF z$!MK7^!?B>j6VhWW8I}>a09*mAmZb4>x!8No}MCA2jJ_7-f$F*W+8GlHPey~4VGsb zcnL#zhudb(6{fukPTtj4W}tm=tlBQlS%BApG-Tw>YTyDLa+)Df+bV)P{iu;T9A7*4 zY9_;8^5FdNkw|p9SIj(le8{OEzGc^V#WJ6{WX*P6;mDKZ5E^cgoZxuRY8h@lS*xo`$8BNw z8`5ST@sa%6{xAkuV#~mdu-nKgh6g*_oxTwsh+gnhD_oRF_!cBi9D?08`n`&i;S))k zfy?bUNbX^Gad6FT*OvFsnvL9Fi4L4JY(InC+a`Px>FOK#iwL_=aqc1ZPvoPi%bNB4 zOya20>a*t~9S)Il$=iEO#~&zcdYTu+OWz36x)@%kfafyZbT)prs;x{(xEDLSP)Hu$ zr0;i}g`*BjH`ye~ra zemo<~epQCUBGmuq((+m9;WC1)=OI9e7B38Ra2T)ND*@ZsWoupAkF4|#2<2c~kg)+2 z(Fx`v>NV6!XLx>!t)P_IA{aFXyhky8;8ixZUjBJ1)hT50G-1p6q>zgKa8}{F8N%c` z7q9T3`p%^pp`F{x&o($7CxH<9G5l?_2Tq2A@_=-aWK?IX+CN|8u#KHzv8ZXd6GUel zF_wI6my=r145RPvf>!JY`5qO>9%mkzO*Wr0C)W<H&IUDQK!A*EcGVReIv zf*LSlS?Mf1s`LD8Px`zm`dWPC!cIq#8q2G^*)ef`yxbjqa4gCad_?~HA6%JygaZpk zS9};r9}HnUKN!PsyN8q(mGR|fLiX4a@s7;2OD(9sX?J$+Lf~tqz;`^dpQgaOMLb-M1{p-mi z&zT6b^ z*B&tNc=kYWzJL?<%we~dA8(HMkTFa((sAJcD>wNM5Je&$vUQbbxkCeRadUp9SLyiX z&Zk6>@mcWpzHz2u^z(B*e$*wxMyc&|C>)~o7B;7ySHr$D?{Pu@#ks1#uN`w!X~TdC`_gJ!g6K(Q(JxQ!gE08 zCJ^(}mCQ_kE<7=3n23O+jY_9=f}6#$(_V6zg+v?J=x(ShnRLi;eLKVnX(D(d-%|Bm zfsffZp9*SMm=WKh-%>ScrnWnmW`$9iJm*@6)`7m>aAm%RMF<1fVd`04SAFF}TZ1Z{ zI8yYac)ML^?Ybsog3!B)TD8sCY}n5cXSE3;Hqs>l6|4n;tgfe|=EzMsi#Lo{$rFCM z^0?TI6G4dR6a4S47p70+zl+!w(RNQ{wnIkPP%3|xUq|Z@QJx`kUs;V`ZULt@9}MgFx!%EG z?tYASGVZmP?PlY&QflVPs0sgLqlu_e8}Ra{7dYQ`%LPP>0wV&ed|Um&G^4DyTPvyvHVm@#_=wcFHBgb-KaK_w&X${3(xYKkj=Vt2hzT6M-lS!P%z~RP%x9PN- z=aA7`W`!MtSk^om>+tV;5+2#LrN(Ts`CJ@gK6mzR6Y}fE@@--HX~J?U<4YkwVMW=JLa?Y}SjL;aWxmQII$A?h9dWtrcE&ajTJD%3a9uiM z&TPp;dw2-Af<-p@^(D)YwG_#~c#yw84ZSC=B9AUsuR=q`tG zx(A(^I}O+rACEfe73!-PC`~AUWA~~EH}$%z6HEqp`D=cN>{eJGPQ1M9_hDtxbIJ1b zI~gG9&6+)N;Ylit%iZ~^hnq*0O!S8azc$NUlF{NfoYwsp;kwBteCk!E99b4OR`BcU zu78ptPY#dxhdviHb|shuWHq;(&+*u&`DE(u+KZNhb|3k#rr5{F%}wZUjZ*EkJ)-Ox zhbK~?Ho3DITF=z8+Fz(34w07TO^1-(hMs3)$+#sARMVMPxpC3EzOau>U-lyQB+!-z zIMWuKUdEj0&C&EY+eOQV(Q+;;oVq1hs%@!xDJE;=iY2Y{aQx`c zezH(@7_C({l(4@BTK)q4KtOWR+K?va*fy;maZf1r?Gy2&r_MfCu5nknXI$<+)h9}W zZ*{Zd*d5t5RJN$-VOOH~V+DX_CzDE|lp_&MN-lz@*YIn_Q8}fBu9T(}4gyW!N* zF{#oT^*4y$5j6CY>PBP54!{~j6q6=v=*#U{l>AiwF_Ljh(3UbAH)Z7T3tLrn7;1fk zfI3}iktk_lnRE%e>U&T?6laE3U$c*1z9G!`7zM>Soeatn%(!DcAhxk+d8k8{@6a$gUOa=x<( zv5IVO1gP)KdHjP!k9A*vrPk1Xo5aY?@#WIjI9ji=M+|hSc91k8!$hFRnYoLtP1nU_ z&LWBxoWt+)h<@u=KFWHaTFNc_EwF(ml)O@#i2spWUJuS|s_+h2*-<`#y8l`sFQ&S; zQGZj*@P~`=`*KG@&sTKeOd+{3oMXMIhD5*K%P;t z28*Vf!T_<5bIB3C9gpXU1>Mr8uxWj3xiL`?|5i_Z`>j~@(4m-pJTih)Xfj?*w6{|< zjDF>>2d$_mWiAM3r|@F8?`|CQ zKee>fr4Qa~5s!15dPc_kRLD&4mlL7*E$O#aKcZ14^nT<48}b@9eqo3(+1YNHq1PXwLJS-^wjTei?9!O`50`Kg@a3c$PDf4e^%mb(*5R zpCY1cR5u_H%@Y9pEZV)np=&qg&}c?f-hN>sU4mhfZ!%E!LT3W$lY_YmKd|{}Cs@Zx z4y&cNZgxE%l>HcD-$O1Z01HYfBXd(br{XN6(hAqK4pj5E7L$`U_NbA(@n`Fm{D!Tg zR@a+?D-?4~rqvy64YUg@ZePFdSRn24MyVFv@YwjyI=;xM98^m*hm_I!4JJl0Gi9Q+ zMdK@1_xGL}P+6oEEuh^;J;DaETjb?!2PZpcDep^t@nI5Q#}5?$t%V!z%QUgN%v7s! zp|~>n-uqrl)2?xwG9SXuKkAmhkMWk)C9^!7@i2x*|>6+SCe3uMiKo)V0{w!OscX)E6aL&iL#!cVrYK;{Nk2p&O~#B1*%_Dosm2H^cnra!>0Rmmg>HCBt-pR;SuFddBdd)HafCnT`eTYp zxuFytzFTsw=Uv)&Jw2F2AK^ARtx3n6ARs|pr{Nvc_Wg;e>ajy@HSzUZ=*Ca!T_O-v z1yGUi7(c6#NwN^RHeJqsJ~cUIpqo))i;CfXTDd+JSXe>3x+IaMP?S6PyHG43NBCts zL2a|emt9rAcsX@7o%3;$96C7$UOj_$P4&JdU(YpQL*KmqyL9$LD58t|iHR1*S!nN=Q0+q7IVa?xpz=qWQ89B|Lt@_uqwn*_!@A6AQxn zvmU8;_dJ^{l(X4p42~gM%OEtB*$OAUZ_TlaF?EFVWtX35~qvQF2`| zyxEwAh^$$yhy;|KZG3T^Nz$aOqLe<}lk-kH_B-%CAae`%NjvgzA?jNv*n8Ppq>*oi zKi|JaJU=@Od4o?A+IJX5w7f_)RjkOKj34;6{;GbCdiz^{^p=o9&bf$v$+r%Vml&;! zpX>ZEF+`(NDBgP-bm+})U%hR6JC`$Lz?U}f8BI}_CbcEe)%?fj!Ll>l*o5)w$7ZNm zVyPuLy@ULvRH{(u3ppQ-4iX44IABni->CQjG3mBT+lQgvn?CrDGusI*MY@xA1n(#l7@VrHlC+72+tWW@Dp>cfSiYcdT%TrBd>RXQDRF=}f7F z$mrv}u@MV}262XqQJ)YqLI!U(xI;2ubb6U`>|qOh3CA`QqjR<^!;Ubs7GINx7f=Jq zNbujFM54d`FHLw{P_$f)m(e(3OVPvLCVDk;FN* zL-zM#3oAoqfF+!Jc6>!KI?D&*iNt9PJq03?WikjdD0G>rWjf&&5V1I=HrKq8DT^0& z+E?own1#N`&=d?y#(DV_up=3^>?RtWi7#uSwFw(~3;)T$#ZA+@`Vo@~O}-n!&A62Z zDwPk4G!;%v1HTW|8P8QtR~RkK=EVhGw$QIGS80$se8udu*}QC4X4>=;kVs4yb8D2o z;9I$7sC-9tA?#zdZI|6RvJ()E0oJgO^6zoco0SyTOw~M{z&l{(*XbIcoAfcz*I3I$ zYaS=d%)qTmk&b*joUyG z^J+OQmo+&Z6OG&7v&t$_*rI_DA!v)!B8JRto}7>DQ%#R*z2l8wRMMZdSp$e323pxEK-YijD`+h}rr z_Cto{8G>2DT}4c~XYXcDnt#tjDdXtNwHHXmN0ILXL5caIz#Mq8L|Yn65jg0dTOO$R zb@A6U>vEf701E3NH=3&OEI6|I@_=T|>~82QTB5a_1c;~}>Amf_KHkh85LwnBSs|~T z043^=z$7ZGtp|w$(7k*g1EWw}S>iI~apA2aNN0Dek;q7%6h2Cy?ndLj^eB%{-7pk7SZp$CH%T^?t zVbi*nCgnJQf1_0%C6=F>u~^A|5t8sHmAau5e6Xe+qBWKD@t-??tZA@sva|PQvOd3j zaxS>G#(FM2%6Z!T8~=4gc>S$jV(!D{s=|f4_^JhL?03Ld*^LJPVxDu#*r(!9*3g~n zOVrGaBfXM>9I`K9VTcVjJMVHU$cHYqI z^-91e)ma;*E}4#~{krp1UYqu|N4F<^d6%;soP7p-yjIF}3C#(% zqJwl#kA5tfFg_U(D6U&NT4OdQ9^Nm_bJNod&i@?eRyhyDf&l*%-NTZuOm zr6CPDt}5TK=Ta$dOH5w9<{D2Wek$A|yq?~z>oA9P&<4#F80 zo#EmVR-ZWmDHAeAPY`E+oC#u@3S9iXvsDhK7lnb|q%)@3jB{O!K?p|@F$ z)iR_?elVZ3#*ygwC!gAQE5y0(Jb+G5Y_W(FwMciq^MQ@W~0Z+p;HE~;qdVA6HfZPWf1GU zc@r_zfrHXwugs6o=fd(+146P4dwV+y@0Y+R?Q6WXwS}2&k^o%93^3jopjw9%uJFBnxCJ)jO^HEW*b8y^Zos=4!NI?vl0}PM0F69 z_%=8(hC>}gZ2TwxYO7aUvgf`TRZ&Tas+rGLfLfY(C*8%rx)6T`D`1B^s+~AW)qCJd znIyqaA3uIA3Emw(8=9R7taF<2$UggW*X)gggY#-~(Z?LnCdOv;0Sl|9kq5Jeu8fv# zAsFtOlKWkmF78>Ln^I(UbScWl^`@>Z15P(r5yNi3cV977&uQ$&e7!DLl&xJ!HzCxiL`(E-+p-h=+)iW=8Tu2q;H?Qd>H(bD%c{n96Gi- z{&F@h=qU<{PJY3R?C)2Rc_hEanR8lE%<_czWb3e{v0NLL>N1SY$cR7`>E)D{-wg-| zsDM*>I?24@4)(o~Kk{6e|Ay?F^QT(BmK_URz4DBdl=SJdXB`+sk*1E0Kd?x*ZPiua zuIwA`Z-!k^+2=dk+b<~YP@X?Lv__KV{fo=X=RM2G$>}$N-RwN?UEzOItrhe+abm*Y z1p|5i(2#|%uW1!SpYS^36xn_QfqVW9`!Utg%b(sF8BOV+i z0Q>RdAwBc)Ro|UD-`gbS?NLihOXf}Z%6F!hXERJ%@m2Tk-~UAVaV6#{1^FWSQqc~h zep<%$<$K-jiOlfFQ%7pV>BOpXlA7;&_#+f_CDMrhE@ZRw!Pe@~$)(eQ$r@VKXOx=x zjb3|Pr>7D_e-~(Il1=$1l3jg>{lkSLQmXDTkg$?8B2`#l|D3+OxxsT2<;auybnbJ* z?KIk!=T^Rp@pfnlA_GR86^j%?+y6d4@jfFQRP47i59-hnC*ZIiC>?q*=O=ytqh=o; zp(WvG*aT@K#O1MjP1!#D?Oe#4V+$7-`JV$5Vkb(POy75?IDn>imJ~L6b@0|<-8ck~RGlO5 zTVKlSu}2jGc`3N_y#RkyB4#e|ZXToRO5Pk`*2p(E<4j;aTJb%c`}0+9!pr<7rKU)u z3n;ybS3tFyt6QROX)B8wdxtny{J$BXzgVtQQXT(wyLxR-=Aa$4MHre3#QB{{ReLE9 zd(Ibl5*}0mni=Ii;+V5+Vj>D;txGU6zvacVulRa`*Pa31#MXP={2|6Y)8!HwI{)if zK&O~bRt{@pOeLMX5;rF;bc^H$b991)Kvb5h#G*xt5-w;;TDtNtPpUm|+XqrsTiOJs zGov0Noe_(q4Eg0joPM@(Me*mv);~svOIE!f=K{AaaKK_7namBn3j9$~Ut*wq9 zW*Jxb*lX87uYDuJ52pqBpLpW7Y^|EZn0=#W1N*r@E&-h$l9uh`LWWx6DunVa&94TI z`?YLdHXU%@TL0t|x~?QD{l@k!fS}CuHu}m#+S_k<5{g(J`n-m0-7z)zMgR!U1qTHM zId@i)nm0=yF-d9qCj7mds~$TSVAed;MMKGkI{bxWyJ|81NM(Vgr7n~+#M@7#$x9LA zUGUt=@)p$timdzU^Bputd!GYw1NwAhluW+YT6L?}W^er=y%YZbkoFf)RlQOFFN%P4 zhje#?bSof8i?o!0Al(QE8&GP~(hbtx-7VeSY`VMiEX3a#?|aAik9*F&&tNe2*sOTg zlXHINcP@;1-%!65`SUF^f$ViH-moG5uhWfQ9NMCwbPJ6ssx2Nz%d?j#FHC0csiBsK zZQxw%rz6e&j->Sfpvz8M(@-oP%n%AyqmEQmKV80$dlj9ZC$alxB^;7`wYiYxblJ8Q zQYb}Ah)Z(RUcO4rKI+fX=9CWeFnuFbr>_D@mZ?DVUUOvFepOw(gl9S1wl#@TFC&LN zl9UF_>d*&$WoG*P@Lq3|9aOlB`ol8AcD*xO!QZ^QwxUDs>H05?-xk~QH+7*(aE+P|-yuU06PI%1@I`za_&1a+e#8c# z<3VmC{M!+srenz@xr0DbKSD}vgF=E=uWl49I1+bhf(~vJYC?MYfMX$?WgX>6oN-8}i=@C#D*n50G7{Pb8t?LbG z9b{T{{?0UflEff)*84WWeCQDC`(#l1fp#Vq?8y2UE}QQ48E3o$@yzs3y~n}GRwpCz zdXE73VmbY^DZh9YEpB1;qTnVd;`!*CgZ%dJDyvQyb75y2-V);W|JB&&ulSGsPYfK; z?zK-J*sKTB@2~R_#_#ijD^&~+)d`i-8tklhJ$dWbWwY#1SYl^wC^!UkrYGlb)`Guqwn|_Me8-aSx@akEQk?}SHAUcK5#}v=vOVz6 zn^-IBMSWh~Fk4^JPeg!ntwxlsdO4EO6pLU$CUB&|yicUG8vHrD(Ex1afva25aHM=E z=RyEXMV1LM^xy@U>D*{kbFv@S)vql~R&bKrD7gNJoTgdr8p#p7RAl^Q_yUINq=cG& zt`X0u8IHN@C}Xdl%*cE|v~d$M>HMZZY@6G_1SfT&Wvsb)W3JKpbD!GXmLBQ}BI(}U zU_`04uIodw?fZVi`M?_zMYEqQmGIS_J8`Z;T1vNU*7QH>tB-d0V__o>-hmDyOLSQr zH9qdYVmo+o1i7t()<}j(KP~f2BW1!(-+@)$&HgOrifRa6Y2@}161LPp)a>R#`p9)n z3hj8gg1zpP*)%$8SHo_46*i@s1v0ecZ&0Vj#1*4Rd#zpxxjm?QJASphj0m;ZLjIjd z1|HO<+NV8XhmqZOB{=dzv1hu4PsT`96LR0}doj_cccn?5wCSFJu0 zJ0;XEIRg}sh*W#3nu`(_D7pw@C}IW_o?bck?jKCm+sA~RVdtoA94=UNa#QEf$+H^1 z*&Ws29ubeMU);?K^ciZnE=g5bN4iTORykwg>F&NGc_1#<1;L)9g5n!<1MW-K2uE##D(`$b#-Wz`XGy6YlKO2OYXP}TS z56Rj>eWjxGrFHuPms1)apxy767=_8d1xEDudKe3n%lRwHj`pn_Q6rvkR59J(9WA#m zs5QDv+J3p$OP3>wcQ9&6lR|;ghu)Y@5xA5qfDhc8ZPuN1v)?*TF;nNhS4N40vp#rt zA9BmVcM~ndEWJGvjx{hAepV(Z#4z#KuIRvH!%POx$#?CjkE4P!K!4T;=CfcTOKymPGEolm+3|D)*zO^{et%*n;AQ;!%aP~ zch^i@%Q`Q)7vecSzWzzo9^(UH3GnhDN%3|{!wV&G!$MbkL&|7h(z-|$$pVqF!BS z1Sq??M``Omue=SexdMg{oN?Ajht$T+PL5d;g|mo~jY|ggM4gaQ?JwKE-i))H_I#hv zm%e$kh?x1cKlFjyRebcnO(bk0Ra)|G?3s#Tu{lOEW6IqqUPsQzhtyHYv*eebc9{&5 zDicDszXxBL{kV@h3ZmZ?p8IO^l|SHDGurJqJ-DV3iR>Z`O)F1e-I4bULVP#69M4VpRMEdHheWooo})xzrh6XF;2y;*pAK z^pSlDl8}sSI77SEojW1z=1P@Nr&>I8i`t;r0pF@|2!gywr7m;pZz=I_4btRr2pHLeLXh8M@pO z<;Yj2OPowaw(2?wtw=KOQ+F<71G?TPXZj1@vo1t== z1Xx(~>U`AFulG_}q_H+OH#r0a1BrO8mK!e@+s}8Wj!P#er(YMJUlUxr^;lj(w z=>=H%WQR?+tc##a9eJ0_b}x9_%LOMx;HvbDjAHuw6elMq%Qn;XRF8oPr#1XkEIsxG z#lp?VimPn4Z?+&d``0=-uJ?)#q3TVj(r=W0z>qQ8Wt~-K_J?MEiJZzsB4cc4nh3-X zh?ad7_s=%ZuMXGsIGMutmQJ|FV5aQVal#Xrn0d!(0c;m)?Q&Lzy~hpp?B{{UnSG%& z4(D9Si74y^K6qLPb z=s0VT12I3hkraEp2PRLu`2$vmWtf-S>iYemxRmYB$0kN+a4Q3S%Ui4~-$af%^4jHe zM|FUzxI7oA&!zik+yJEUAFqb*Vph(&vT|B}xQdoArVCR7jwBt?^A)tCznF}QCy4kr zKMvXhF2SFV1<7D~OMu2Wn~c%LSl%kYAEi>#Z6N=+{EBz9A$zu7M^2&-*$|t1Rko7xw8(Lvvi#FVrl7vgJttUq>KYoRswR$Io>I#25YOPhRq; z?|ZAVPkS^_B59udw&!Am2zb~3ie}rJXFnVhQz@Dq@X(*j|2kayQ)qECbd%lIx!w;m;kvQGuHQ zuOd={d2NPKmy?44R0MebO>K?m{)x``fnRCf)VuAF2A~ytd;3ySjuk^4mnUu$<=$vic73?*Txo?wmvmzIbjY2?-~pCoJ(?%Dn##AYcG6>y!Kb`;G_gPuLqd`~_8a@2nUbWZ|fzGw&EH7y^ugT<>hg%P~Z#kr$5v@9Cba zpv2l^MQ#kN)QmLKzt%my>Me=WEe~ks#efS$nUH{44|c~Wh!J^KuVQTl4By7*$vEFp zNLael7ByGqVJ%<>%98$jmP|I+AFk zCCJw$Q`JF0KJ0RJk-$6&Z2Sm#f$J2CfOmbnQxbnA;Mks)Rk@9TepTpNC+9cp()7v| zG+9qZa)f+KZegE>oP47Y6y#tKs9%iBOGq?MrTQ~CA>Y#dmEPkwhtI{l(zD;i5Ux8{ znJ!OCC%mM`<`|MiXC0aMk2s%em8Koj_(pD9a{M>8mK@uLU+E$JFbA+mmy*Xz3fPJv zzL$W%n|9BH*^Er)O7HUAm-+ptF_++;EpInb40htp7a4bc5GLMl)Q1jO5dJK6@u4=< zbhRGpo%aaK#r!pr4K=$(sUcwZp{H&z1=Cm0KKip-Al9sNmKiDu(GA*Zlx8;p#>H_fUcouUtDKf0rsY#qu8LCfT1&j} zwxxuEa6;jV>~&(WD!^!Hp;_B}Kr@j;p)9L?#d>}|A^rJO65oe;8Tk)1DGiYsge0y5 zCz3+4N$1$}ttpiNG+d(`4kTGXdz$z?)@LxK!x?pa$o^Z4iMwSDHt{t&gUabdV~{ESBp&N= z+z$4suTe=u6d46c+QNQA!cF!9MPHaXSP*xC?A}mvAW$i$%>h11hnkDFV`0+o4vF`i zJ(gE0bduwXj9DqQBO(!2 zY5y1>)0_n_8b%zAs~e=06|Vj;BbElq6Vjl9_~1pWR8$!cxq$U-pjK-V8gKjz%2RR6 z*6>{O)4T~8a#}s(V)~zoslbQW&QT@bC$B-$`_ck+_22qbC(KVR9Ud)+S<4C-fvNJu zAOABUwtH^AG%^hWgKCaM?7t=bi~bDl?ttbPMa85Or3ffk$eR({3-s^dwg&&C{$&bJ zM{BnI&(Htgjg5^N@heYb&rCe^Lda!ev@hC0S#3oz6(*usI=_@ zWH4l%*os1_rdyy@qNSG3K)hr0$0PK3BR0LJenAJoZjEoNFWvAm|8PNszM|YzyprG- zuXHgww&kIkd&s;~97pC(sQd=OAJxW&YG)49}6m$!B(bUNw?rSG7wnpU|< zeF3t95qiK#Gt&{E@L-u&MhtzVmV^^HHgTj8;uaCIcW1nqxghrpQ?ST=BGp{FcuY%O z=j_RIyMdNYw__9%R`e+}<8yW2XQ6iufU*B6*NzS2G*#fvREkq~>5<>#r9;l-EBHs4xY^&GVywHa*HJFl@MWTPgt~G3~!~W9(6mAKh zVl_SL!PpE8bxew$tPCCJHiHP#LBaGKGA&p7-d1-nZj#A5%2S$&Qt6t5HrsJJN6c$kDXJcP%TEAFys7UEq5D zja|k|XbvbOQj^w*6qlE`$!G-gxJ<1u&047HrZ12JbaEE7QSbIh=CPu$_Q)PyhcuPOZXH}1Po7M(!E$4a-UJ3a~A3m01r!je9kmb!4m@sQokPPyg^3V5>cm^{&;6ed|i*hdcU^`zT-n`$?AA(m)`_|!QI{c?-8WjHzez)UPkIx z7d5-56EuEJu)X)AJKmJnYvVk4>kui7KwLLf?0$($jEdH^SWlYN zhT{42C-gF2vHn&YQ=s;3*N0uEcAw^bu`NF(?ZWO%m5d0O0 zZjRQRhiJ3iAK|(k9+4RaK5~&FxZ$SUBYf8MkWc9xX?8^&i6g)%s)hII-I3w3@TtC< z+XCWTqRCAmTf1M6=SANQR2N_FAf7dI`Rq0)wsp6%3aM*{N*2%0RoKWAus;y8%IkFn zx$_-cj~i@)ic@cwtB+T=cWWNT^xf`>zCvazanYG+$s?gBJAthwGT%-B0|uw%wnP1x zA(hFohwc$)AN?L-Aq9l+*mSBof8XM@p{H18<Y?|O)XbRciZ z5-M^-f6)BsKH%DXTi+ZQOvGzO=s6^E%iQ#EUVNI13fy9zK~zNP6oXLY(J0Y*KmAJa z(GjB&b>{;~;7xuFZ1rH(GUU+}=3!wIZ8^FaUC})cmcFn{4^$3=E>U-6axdZJN;7z7MBnaiX+RH}e{T*eqAO?^YiL zTe}(7Mm)7lxQ!xB6=3x7m(ww>^F6ngxt&u;?40N9`SnU?pv4v7hOxl>`^z-dlfx)i zct-jceAN2>4`;IHxaa#*F!iZek^TQpN&Zh3ML}8pZ)$1TI5c2tJuImL(E%(URb{`7@A?!46kf7H8ea|o!sem5&t{r z<*4Wb6@Ue?esW3#h7D6mqP8(JGk@0Ce*q8|dX13Ce_rUi=aYgWNdfq|2uiJpQ<%($ z(>MP5wLFgWzxuoesOI&x3vjxLF<`nZ*Ar}=!U zhSz#gLRXhGQGxE{L=HY0V0eZiMJgb+H~{nD;NX0AcP9n-ihd-55+k!~2mVU~;BmrYV*CJ{@}CYxqWWd2cw1ZB z&y8~6tm)fCGT%|7n{n!M>hY8>fM`VQnGyX;Ng>;f?=&HQZY+Qmofq*b?f@#7HgWR~ z>F=GXat&x%o$Pyg(^M zd_QlK4_iIx2iD4*iuyp!!Ckh*#aD+?XU&zV59dkFogR;Nbb(-#9)F|7vM7(SuO+t- z(ADA5%8-3kQ^1PcoF0^(Zv5H1M=hcqcypVoP0`=fr}=u`eOoS{5x9#FBu~m)4@&hD zyzK%V<6_#b1we51WFgD8TFo)*-w1@!E#O1$6e~b(wPWGFvhc^tvXwl$`6|8TXWL}z z!o0kAMCWfSRKnp5&R)Da51UZPRz8ghd(-cLV5#*8O|`Sz)#U#;v!S+_(y^NEx~$;A zBugD+HADu{Y7_Kuc0k$3h57~WM}_X9Ko|a)tgOis@L|_@k8GrgXsM|2Q0m*X&f;fO zn8K^1LCCbZb(hN-SH=u=W!MsKeHTaG-CP_US@}EMXr`5U$~3_+?WRRP!@3h`=F?He z$5D)j`ulEV6a%h>6L;wzbZpPU8!pF79?~|G^b<{E;tu|}XMKV_c^Llv)NOfq`Dw!*hJ#|fNcU`}1D(Zf} zc=G;I-)PBWLT*cP>2X1Zsq{Mk$DCq|=&uBfuATgP)Y1VuhbM@w6_FngFo88f?s4=r ziP-KWat^;>h%QY42`K`^Lr^3H%MZr0Ea|MO%$wNeH$hidCluDY?(CY^)fU32K` z>KXk0QL_qg4lhzUUR|T7*XJQM?;{&juxN%w_Ewz%zRGS1Itd@|Bwl_=yRc5p-urTj zcmwyoK(-TNZOqMAmQ+BcLUtlBmHM!KKY^$3a4TFyNd%fWS236XXn zB}eVNgkGPz4vNPiHNrhoqT7A%bpgB>T>;C?nxpDRXjVNSY+e^69M$K%`xSsrT_k)W zJVg}~X$Yutt&kczsX;^Y$xTfpmnfLq@3#-ea(u)Ld&L7M%;MKuHhc!yho5xj7CBtr zX@+U(i&(SpAn713pa#>&ZT-w{!lvT$-~UVG7*l*lbW{;TZ>F$AKx_ibe%W;1zW@h0 zkJWqP(x9*JuoEC)dF~tN6hg~*RWRPJD|47j)heIR@F-&wc^)*hzlwc_TF&E<=cz_& z3BCXr)=xjokJT&(da5*abWqn<6Z%UC!_DH;zK}BiG?*8AT4Wt2DHlcl^(>^`Bc%2o zLc$2?^}V6P-X$#Dk3lD{KyLu|jy!i%?Cw%b!CT?L9V0my+3%8wX=p@A(vpxM;N<|j z>ygaza;HCb;>Zx{5RfuWjoT?=k{p@uMCW`s)SPlr^1h3jCaowE>^P)h;tdwX>(eiN z7@kO}yHP4|`UIb~N5W=H0^ka+KOqSptx+91FBBE37wRPH(GgAA3!GSXWV{UZ)%50s zc`jxJByVv<=_H{Y<5#~{-+$p%Jl`xBxiy{}XC@O2={f1nDEu;_z%FPd-U`5%iBtx@ zoNH8*Ij`e}pq<&YS$pndH?Acqm?i;;uO=cP(fo;%QzERSKkDp#bcRzyJrW3vPci5lh-u@FzG`hD}P*GAso_QGW zP?sr|C*aI*oX)E#`_KzBO0!V*z&T}bs4al+0os=fR8gIwOmbJ&cvv>wjxVur6O74V zwVio7SZ1Nlps#mspO9DPktSDGZuRQLn5DMh7^P}u#~4*G8HTQ2cpW1XSBm*qzNqnv zJ5uflaVX5O(I52ps-+IJ2cg$xH~aA<@DYb*Cm)(aPj;to&aMmlB0BEP!}742$V6FV z&~`={H{@r5iKn#D*~g+oLSwp1V@Z<9B+G47Srt;}Q1b4i8tnL^0d@aoFN1C7TSQEP zuj98s%_JM?ozaP&(vwfhF|#bimFHWPobc2hflBwO<63Q{Bg9M*bsZJDV|&e-jpjP) zJEuFNtw<39g4d-S*1O=%lyeb($INqq^ZrwnCEYp)$%pFoTgkcceUB3^O_r|<3hdMs zf(6kNk5$}#jV_-~cIN_CtW~Q+H|D~c&95}uY|9=j>5}aO??G87uBB$DnZt`}v(Y!F zoma8jqV?2CBK8AEg7K?GOTKS!RmvNWVX7`tQ3^z~G<^ zVCqy&DrUrp3meD`PxFSX9?^u#JR?(#KPq+Aj!>Iyf6|kiblPl^u(+x^U9D<(xx1S1 zp0qu-Goz9Yuz68<&%&Hq!`+#hTEZ~ieuI2FiAiNu#Gw%Ik#JbqU@?NQG^5*eAcc0& zyRdxjl=^DNmi&6JaJjgAfs4a%U*Y5X{2cL!&dWVEE!3$`qsZV!{0 z2-KTO=|-y-J2D4`k^-lJ9U0IqtWEVx`JKHlU4M+V=zKsjh4){Qv+;(^=VT9jB_m^- ztV;(f*N;Nv#OBa*VAppeDuq#|P3cVNyF4NiSueAUgYa1dNyNSa(lcqlsQivo4vx@; zgm?}tjvd?$$=m5CLQJ!t`(?9wAN9(6kvs4Xl;vR6YMd~n;99TAw|LS-usQHfdw8vu zC>WK7XXvFqQ6`|1B9UCn>v31z!@Mx3GGp##vnI!2;+;>3kFpcIb|K%0X*^lHBSi9~ zWdr!^ACIp$LOw+MT@FjZ(rU?ZN$QdxHKR>jGKHl2KiXFZ8&=3~t8E+turva(eKN*; ziH*h2{0oLMRBupp%2s&2cAlGKsmFI6-=z;IhI$~H3xDhDEU0!BMEef<1+;oHGTzw8 z0UtYgFBK~UG@X~9$3L*J_#sEUGL_?cg3`(s8?PMHuQ5`h3kfQ-mMZECK8D5e6kx+} z8?k1-{lYGtgwF>^m?vX)YTrpjz8#72V_%u`(Os`})q*d1q)bEYp&ORV8Jdi4cQwLN zswuU#=Voode8~>(HYS^$;!am}S!ixT+lTs43cty7Tbh}Nee`L(mBGSENm5{)3n4yI zfKFh!E83G?+U?DK%mga5{ek=dzKbnVY;uRsx#QLXyFYSvmnvI#p#uf z2~8~eG&7|f=DSc*|5uQHp_(Jl!?X^obV(Ut4$L7=}nr@F{ush|+o>+j?S;j`0s zfu(*nfYxQZY-5{85FKlp<&dQ)mFsMZ>Bi8or%s4dw0Kl2+Jt{yn_P0;3W%#Ue^er1 z`Kua9SlUHytVB>OawKK@`#%h_wcXy9ZQg&j>i&hWl+6L=eU6l03w!Lm@ zIJ1>j3Zm7Eu?$p+O!_GMKrnqepg(fQ$0zWm%ei0ckT4w0F5KGX9C+E``|0!JJ8xbX zZXy||NEj(L$_9R{dM$J)0LtTAejqFtUgx28uUP-YA^6W$q9|kTRiD*Xp*F4T_!0v0>4f^6%4|pPdbgBi1ctr(kztvH|gt& zX-0jW+>BCV?89QIo+pUs8p%wGHNBx^4T@#f0v<3-!65+KH)#i!$C`^-DBW6uOKIjP z@VK`Gh>tYX`CEo|5H?$l-zXTkj!I7lbqAYH34j9DtTt{h0wZAHO3_y&I@_n67__hhd!^guzE+mk$*(fH(-@l zzojAHfB;bpl%P~+ zk2ZS3loO$mjSCf@9aq|XsZ;tSU2`;yTHFGBu*!}JY9@=VOf2|Rg)S&Tz9%Gjpekem zBx96R(mU31@zI&wJ7@itrz-A%Ju`9^vG-SC`Rvl^mZpC9wF5%Zra5=J7S#169vLlF z^~-_yPCHWZxhgJ9lC4pN9J7f@+2el`@D=l%o9(yRIXYX3L<}dto+g?#7yQ&8Ccbk) z%HSY`M&E)WFS!{}bgU-RkBeG5;+h{r1`zd6j08zvm&8rs=-zg3HqTx4*~ z4#lL4Yl_Wf)&mZk1&X{(-GWN(hN&)jTDST;%-g+l zQngFDrusYF^cyW}&Z@FFuyN+p) z5!G9g?1BIlGt>?srlmh`9Jq*3O{T4gaeEsCP0s;Z`jVjDnTl&h^p+Q;qoOcsTCHqB zAr@bvx%$=S*`^W@(svfL{qp+-_og7nYv_Rz;_J)RcHMD?Lv_Q$QZ(mKLTW|%OxDoV z-4Ql*zxPqU{0wg8rnBxA#@*)vA3?KsjXBJ-ZnJ09=GMIFa4($me51Gss^=!?!UJ3u zftctU=}(rD_tshWv9dL!rjp8|{6$zZ!st-0>y7KcasW!+nO(ZcWa;J1KV?katNavA z-v#LJ!pHH#sr3Qu^Q7akU4>h8Jrve%b|)b-w+seBDi?JNG|Sz={r)nZu0tw@( z;S9$`|1rEMNwOfwISWfAAo;nMt|=+;d=fAHO`0M_^MeVeUQi1y1|o?-NfYdvpV!_a zRBznC<=_*Ki?j=kU9tdP+Tid{9>x*~ypf{5rH(WJo@fO-lbihz0w0ytvMhmDs>oOleUv4arf|h))7A@1DLs z@wabZ0NBsq2Y&Wg&u5g(ffA`8LU0eDQd3e2Yxs>7sZ?)~3&_;|mO=-EL;T}-jU;Se z`;3oSv1syk0!gKpz@r0tHlUsH61v}OCqGxughtu54Qh6GEiBR_ZrhDyO9rkqo}#5uP0pfpkRA=Pl$q%gez(8uymz*Xb^8}Kc z=M5xGjoV3=hI|1@$A#@V;T+^j?0TNZ9wTXC-=uG(R?b$ww zv9^*m?g&R2mwZ;SNRH;{wPIv%x)`dm<{)laG|^f{4puJ>3{VBv74JFZ{f6T!f7+L> z{p_H+GfMkV`s!VG@q)40TvT(4fTakgp7?Q4*5?x`LA29oNKhbHeOGs)0xd zO*id6BR8(?n~Z&F1B{Z|Jo$+GKS4li0h{v9*~69&qDUhd&~<1KxyFa1djc=KgmAQQ8|;Lj&Dg$J+^?U*XlVOECUmdRbby zk;8oP+brX==2)@MI_kb%JIo2|9KQ+%m46<+-K`V9OIAuMkS|8R7b78?m}refOLfG2 z;Vv(n|M(ygV@qOj(v*ctvA8w7=j7(HYiRQEac3;?tVj`tv39Ty^|t!s&u4I%7{b}Q_?h!Fgp&_K;NYT$jW+FYWn@e~TVqt?M3n<8kH3`aDC2J;O_QlZ{WPMoXx4WGok+o z&G1z_LZMpay(&B#jr-Y#X^)=Eo4O3GNso z%kSr1a`TE5-0`cnUHaMwaLjGhJ@;qJ~C7o9(I)lMkEJ9_z5KVCp;G%S@* z<2E$%wlPApiyHOo4*%R57Nf@OTpNt|j%6x7>eO5EfdnNK?A?SBE&GEiAXrn5+d;ol zjORYgio^@yhQ>TJ5Qu&@Z)PPa7$z3%t12rA_P&$(w%F@xm7E=Yn>{4%Wv}Mp<}=n7z`)h#hgHN{x15e@c!GS^kk@$#YNS-p99aiLprVJtY*?&mU0T@7}&7KzGfFq zJT5Yy4rYi*=Tys0Stos+iGC(+*(jFM-=^MeXH8H@kS)v!ROr})>b-4uX-q5vrLY0k zW4IIuh+La%ES{8)6TQer^EW(B7Q#flUFpC5*ASAj^RSXhFd?p#Mo9(^Z2#{5TvkUvckF zOeurkfYEM$mL8}6r@F-G+wB@JO@CrWxUPiUhF`_4LcY^beu~`22!Tyd(s}^}IEzo< zZOv(C?S`2?sFLmN>Z(~Nq3gOWAoH`KsidHpoKrQ~S+lT7Zj}W#MtUAPsjT&NGBXmVCq|6AiwX$EL@#+;**;yff)IHEGLQmnSxc-SE?gh z;^l*;%9ng)@7*}e+i9|jGblV8bUN;6YR993hF;HF$v--}-RLANF1Ndc-Cb`_ zWJA1pop+zrJb7`82y;CaNp#Kstpw1_t63Yc#$arJj)Wwbg?|YK~dW;ug~}E`ddusG`EZFXAKZugnEz_ zb!;Qs?vhfjr8s?8MX6$3jQn17bGKpar#bSV)X$E01}!D2|A^Ls^nRK`m-ABajAeVK zTT^Tmr2kYdT82nLwjnh$Dwk&-hmy(|&o0T`%0xTXGkbZ7A6(%cQ$}fVi`ln zcvKurqrc_Xtd1+_HCsZ7i8;(Vuz*<;J7L!b45?3fO{84cX$wZ{pt(x}{C(UTD(ueA z({>wSRG^se=m5#U3}Z_|i@^c~s6K*>c#S3MvTgMaNc4psXRY-LJf ztcl#s7eo-qH$MVjQ;)9Muw01MbgSLOi@1AwRM~2m0Y`04CnQVJp(T_h40s#XZeZg< z5GYT3n3hX&V6phmV!5%R-^b*u)DUI$Xsvz@xm-(jATWmla~?HK*W^Lt-4&UgE&&f+ zQ^N1LSn-`wbHBd!i)BsZAYLC&qR3Dd1_5TgO`ugf1D;Ys5UVujjPF>ndDt8~?z?V1 zzwT8a&stdz{-X{eR7(Oox^LY}7+hC&fhxKS*lhb7x(jO47_HIDM}THAznUcJ+LrE! zR-i%M&X{^tUPkwlfh0z*fUbwz3&Kx+iDIfU*mvM4sVH04U5--LbTP)sB(+AGFQprj z#sR6OfbR=-FONUrpcqO=*gy2%eMP^<()^En^@60z)(;wH|6^>l z!IJSx&{&9yQNKJYZZD9-h5-Z7zuf^~wb=$^1QZoZZcA7|xb@Q#V$3X!Igl{IQ76P< zve-xCVY`;lpIZ zTp$>yqYer-Pk#S@qc!Y4+04Kq!Y|ULLREqtwA`&L!emYeN*m{GY-*=f>SdN-0DA%Jf_a^gO<76^bI$(1K)3>WDPHutTfl@`{RBY|oe}_Wmv0FCb-OdZ6{*q?2WX5a92u1uujc0{;j#E?v2_I?B zAIx<_elvo{qVt8+h-qD1w#3FK_?D=0P-RPenA;J}xc-n>E$&qP`+otrE`(m4o)xE# zHHgwmO-+dBKL%&s)g`isG87_n#$?K_$D_|SEW(2jvoYO$TOgl*m%bFDv!z;9Ys*=3 z=*BM~H&r+{ID_`Y(Xi*h56+mF3#7mf?Co^=S?pS^EcMl*r`uPH^qCl0q7m0u@h4^5 zvCc7!E-u7CdP}==yscZmq-KIcJwx7+KHE;DKpCNHsAG#OSEXtVkj>gTi|`k;Wt~Ha zz3T?&e%PZ<9+HJ3IDWHuT>De?{Wx{<`XWT%;69sSGpGipXJSgG>>iTq5VW^D zx)D%DnTLc+-kI_`|Alls!XX>CMOy5cJlbZPfvQBntB~#=GRA#RC!lX9K)+%*kx-vT zO9`tUMmm(tUNW+z_mUzY_OBqbN3@(b=E|Jx(#x`D$~WcS+2$UhL0RAs35njflfB{5 z=L{h;mu!|k!~s3!_~;5o@z->yE)u=0(ykYUKiTU_M2M{(MTOfpQ(%+4Rff+|t~x zy0e^P)iO9th>TKK?vZ7gbF^d>#=~|`@DI$Wd|;c40pI@iM+i;Ri#~JFPiO!OV^EL%CPf3Bm!^$-aGa_a zyA^LDEw2XzqNHrlQT9rsNrz{wE5QCkB_m0m;y_aUbNT-#HSK@i_Wwa9n?5-$Q`=V22^Ck;wvn|H zAZ~Z0Xn0CZ=%x7oq$_IDx|^YP)fY7OS@ebSb!FMTmeN2*^|GOA6tVcgXx8 zS+*c8F%zNnBUYnb;aVAa5Ld~z2RB;kO6#VVDd3l0{lIt?lZS`WcH)+dVLi|zat7z84#ww0Msrf$$<#B_?R?d#Pjw_G^jHGkg5#p>)P-<~(6t!; z3`I0fs0)RdR_eULb~-?6U>5Mk9>8#!0p54g77?oE1w0tKYfDb0&ZIkyzoYGE93)Obb6neuCcKaXbQ=hY~*3nr^q znwF9MvP%asgR_<)&b*pBid5Hw8UUSgoaTi-JH)8cuPI2nUjP#pmo&$pgKx73c<+yK zLS@^k1}1ao;}95J60w~gz~E7ie~O??XUsyTcJ4;Bv-6A()e=76hw26+T+J-dKTVOW zTn6oY86ZUczuNoGsHV2AU921nAYeljjv_@+Kxt9}B8qgBDqTft=#T&jMMXeRKpEJH{R3{<(kGUVE>-_F8kU^*np7 zXKI}zAE$ieGiFuQh<-(NfIjWsouxvydi$2bo1DvSG{JkEpIrM$ZI;(4_2#tB$s;+B z@K&+qbA_Z`9}f}b`L!~a*e<2*9A&ppO-%WuCkcPE zjrh8Am9g|kU+-Q099H0!T47lFb-ADi6V(aNAYnYXkY{Uu4unn6!{Fmb6St>M!7oS3 z?c*;Uo5v?fZ=Z@M$SN1!4(S5YYcGJe84a(mkFG+7d z4jXdIyr$UInrFCiPWuqbqCBT-WtdmJZK`glEbNLomcMmr`(L7T!c}uM!u#Mr3rV2R z)buk#smCGvWK<9+pq7(+Os5adWFvwZn%>X7MSCMS>peXskg4bK ze&BS-gV1T8OZQfUpQbh&Di;|Y47mG2mY2uug&u$Fw^tdhi62iNbNTRt)KNe*z3I#x z3~^mO0DjWP5W9SnzA>1E4IEks?CGLyz()&a@$A?R>N&}fm3g$!%eIBj^CC{V>X)ph zpc=@277J#%*(3SVJMvq=DrUC>+m!b?Nix`LE>&ytCOtsgsv=G_{*1y;Sm{Rhxf%O^f1i(1O<@H5w0CRxRwr<0C(Mmwe&EWA+ z;;)NMB(vSGdD_gX#mC34o!~kk`zR^%_3;62j%ooS`K-9vN`r0v^|eIP4(YOqn~$c@wod2uMmjItf|<>9cNa^1;a7g87DP4m-( zZyFgFdKQg_HQ3{INijEufOhJ6@AfOntgXBw3mUVo+kpU8+>X{wRwX*3J9OxEn5=<~ zWvvgLZSDvi0OvvB%YKduEn;ZF&Giy$$b8XF*PO8zB)@Y?@w z&+V*wq3}yvLE3SjusT0p1FtREQ&L$GD=~L}yy1%a0+1c1pGT0>MC7VT*7VZquK{K? zO%WUM1&^E^pomaNTcvGxy`-6KAk!}U+aQDDpz+s6s*IiPTDG}}U{P-tUz3T>5x_b? zjyrB6zK0IS4n@wcE|mZaDl9WiPKI1RKXCrS_&p!%1m6SXGv_n5`_l&UXo>*GAlMmJ z(jn~rCP1$3)jU`q7XG1CbvmygxInrNc?RRA{&{|QZoc0%wUO%ybEjBlE-fE0LaZJC zTHjpAH=yh6iuw@HshMil2rqNi$FllGWv2;F_}Z|=S^F`DV4?${15n&cGMsAoX;)Kh z#Sm3ZNT3zAGb8xa45b&2>j@eVzD?3q^dnxbJT%b16g|;^^>?=J+W=o8L$Vv1T_*x> zt*7w!+n%8emFF!o+a7KwZjAKAmwA1?u2KCnE>*;{+O`pGk8mnjOWp7}msA)U6Ly$u z-#a_fyT+AOzBnATJN#rRpT7oMiY!W}_m*@DX3$ za*J^2kp9@ZSa_!NvX$$j{^;f|{&c8x%Y8I&j8H{_7c3*FrVZ}^MzUrrld(sgUbDjz zCo9F3rpM17X_r0Hb8P$wz^NfNHgiK80yY#ZYio45W=$NUX?NcHBMu57`8Ad#wG@k7 zS0C?ACs|Gn>v!qBQL+qgtcy!nP-rOuGIZZ%YMaTHm5*umCa|LIw80nOd*8nKI;paE zyecW~{d}z`?SvfS{dr8iEY@suC_GHvjH0UwvFjpznz2jZ>vGw}v3ZizecG6`w zt@wf73^l(%QkU+N^YFXB+qypp-pKW*!{>WOcAOWaiA%b#%gibMmG_p?_u&H4!cTx? zX&_4HTiuK`?2lOK@OGo1Gbr;tuv9P8Xhne{0YV{yBg`2&pRD|yPqmEY5YGLzIgPd=A~&m4=Z=sfvrK#~7PKFJAR?P1+AD9jMnRVUcX zk>@RJFqkclNM`ozo81AMW1M(%&*yN90%N8R;^TZDKIMl|@4Zj{%5SLW9Elh1zuWjM zz|njW*@8^mZYXiGSFW6!|Abh4yB7L%Ne~gc>6Jsm&YiY+JR=lgkG#)uo8B32?qlDR znU`%O)psACkW$aZ8hJl@OX|iGWev=oJ9unp!0xom^^q$_CE{{Y`a?y$n2mya=82i<)2}64ug7eyrv1b73JB2?S01^1m>si&NudsE!`j&jYa?;2jhodDQ zcxDQ*yKgX5&cZOdQsfVrvcUbfWfie>WlQ8LZ3OMC;EcSQS3!bNdFgj@P(Ix4o}+ibQkd7*rjyf>05(Oj32qwjV;)h*%> zulWjkrZR?>?LSmcZfyW=rTZmYfo~{s?5)L`6a{iR41d~1TlOv?lP#5WoJ9XLxlNWY z)ALVK`1!0m{3ONue0Q#Cwe3u95RdPN)o|h^3Flr>?V`-~p@l@ZgNoRU8A`BT82@&N z+V)NUfZUy1&R@I536ztfiaY}I?W2aYm#vJ0Q*~|ySW5?A-NcvO(O+GnF6`Z2;+HqN zcHM_>!7B%w7jBCMmSn`+h0F+r*>A_2o#n#GnkHpFHS8OE)98x*%LLqB$UXIj>Po!b zer46^D906{=?32k(BIxXW3%6Nby;ZOyqucF2rW&_1y6_%JYjnyX{C$?Cn!`fr`LTW ziA%5ziaD&UY*Dkz8$!QRgV9A1oGOwOS$+~#@L9{FseGjiyMDQ4kJ#H(N z5hSDVW3a~kU1UqIgxgwz`%smR-*g0yCVdUruu3eafHIANKH?r;U)COGY`Xc z=jRGn4yB&W6`)eL@7GcJkKF(cAonZB>{5q*=59R|U=PZnl-IQku9!}~% zGqmXVOYZV>O@Mc^HPg=Bt+yNT*$-`|2Vv%t?8gl(nM{&qfsN|>)HkOO zF$TAXUj?bxdrcF$pZZT19tH4T4UM_DVYRiffdBbS z#_O~rFSxW?Z0n}(TmNXR(h?q}|FU_d$I%D2m!-ca_nGska&yh?+2Up+r>0grpsTxqQUj)tFybnZ?R!6 zj$+Bb(hHmt6!=?En2YP?W&VGX&;9R{~JX{*H<9f*Qy|#s5gxCu*(6iVV%JC($yvihTWi6wer;U z-n3`~k80J*_vqSS2U7*HeplVCEqSU-K}LCXnKs;EZ$qDR1LrI@Nfm?G_qxZ2#Xw>F zxfa{vil3KuC?FfMHBuv_pz)PnoL7O9hmDT&BsB#l05cn8>fu z2;o0noKK`?SEtVmv;`f&eIL^j_{R0g5^FDa4XTgt*u~$kYAb7JxtxiSMJco8ebtpY z7JB0G8fo`Loy{2vMbzErHqpgNKcAJI={Q9U(2hG%XR$Zd#Er`_b_!C8_!GPu0c+UR z3NfzMQdqmWmkgk@l6;^2^y>pf3S?@0cRZj~Igs+^cV{Wy#$KGoZg$_!ScElT(qC+q zhg$Q#UgL&3q4%ucp4% z*ZH>$3~f`lcjQ0tZe%_qXUh;D#MHDt-t4xl4tPZnrS zBw$O{@I>K;0fB<8lQi{S7Vi7jsim!$bv#V7{Zn}CpAg2v_hhJO$Z)9j+TnT7nmnKN zJCd4JVuIth?_{z%ABG;}d&sSm=K_$s))3Pe)sd>PNc)7g@0_2p!j2m`CIR!wZhrw1 zd{S<)si#&5N*gigZO2j8f2gzV zkE&K2eZ2NEQFyMcMK)orF1V8qaVs){8ctpdt{eMHv<{QsSjL!DuMgXAQfIMPYjuNv zacV^hFR;U~yFRHD*~LI$-*qMfZRPPrq29y>iZtYo*k;ez-Xe#rKbX7K(aCO4+iABe znCcQuK6s~)i;L&A{ylAro~^~HvA;f&!-K=y@q_lJCCWs~cQmi&_U4U62j7ZBN+Wk9 z=iEEfq2{@dDHf$VP6BVP;xUoD=vnR;q9co1tore~bfzt(!v~KgQCo1(c9r^;PJ}@x zq5|z52aSlDsGkjB;hyuEs(-&BN{r!QG#9`YjyBJ>dk-y6C0BS!_N>F5VPN2U5W^^k zcI$QTQ99FgW}Xo9lJaqx)B9xLj_buyXe|hCd2p|Nybhlp>&%~OX)u=h)(HS%E{a}<~204O__pe?oW0`K4A)7AuPuJ8@MuU z?XdI=ed8H-Q_-5s=m(xZGD^3^aUbW_7u4*%8_DBfv|lHlBwjv{z1A$o!pS$a8v)0X zX^w0-hA>sCq(YX3Mv#f&TK<7%NZbcgZkG15s8fd!-A`dMS$NBCx22adCKrZ*J@&DY zUbDOpsWU$WJ3*RBEF8R~0&ykrH_m5mHQnq#*@ZqBLkYb1Ty5@VoHnkss%uzodW85~(s zj@d}(z~renY8NF|LPyqauQ|VmW^00IIZkt`mw6&qd9}ufJ*ApN`kJbFBwETiVVcPx zl`cAp*CAOqjJ-%D2~s037M)51t1%EK!)?{bmytb~a}EdOm_<)b&P|NH(mV{fP0{UV z?LIWI@iQOr_FjDdlMYQdj*pdb*8#x3TNb22t-+9OGB`=A-ZXeaHKSNWZ5*hwnVnMl{lTuh1&L)TV&QEcu(X^9yT7Kg ztPGqxTJ)trI-Xl?5w*HEs`|7=enD=Cvo&fKF4b4+ovYxlhSVwCHaP9ogLdgNw zl+qH{Pmz`uwb}D+N$;T-g4=ag&MJ4xv#2*?jzc<}{PGu6i*?DQlU>0 z+?nei##|4&?A$rBs4=K4eMsv(YIf(`cJ2z&DvJ!@tp8`AZ&H|!yuaKWQ2#={WsP8y zfK1P!+<70AzcQ|XR7HAgUv_LSN;!qI=@Cp;?T?v%7FXsMO z1lR~Q{!j_D8!1%CT*${4x(?yS?m2Hb5IT#8F*W5ovsS{Ecs_()tW zE45ayHdV669MCh81N!3hjWi5-PT!8bfnYNViQw;#6S7B7^3BAA@(?3bu!g9~U&c`8 zK;H7#1DcX~Ac8SxU_k@-fwA4CN{GlpB%KzloUSDCHyyD|1gmxY&!G0F$z*?P-tr@~ zUy6d)Sd2soi&Jvn>F11ni9GnM^n05t)w@blR=oGb*!$GlZ{yjGCL1Rn5}nr-_ehVh zRqc;M?_CxZ<-z+-pLF`L=8)Vc4o4%N*hMj*v!;CLeH+Q}6QSct&9Y zU{WV%^$Ch$ExzhQN-D_Ydt9^BP=jBFiF8sl91SKVyU0`XrPZ+?vy6+7al;(3@d}NWXR!mWmqG3~%SA1Mrw=3*+V#8_Jb>6Ka4IHDW9Sn69@~#?p z>BxI7WN^&}KQ&-H4UmiJQ7rOqpE25XjN-mjJ`s%kUI52Ob8v8!)A?EV0{EpwI+DY% zZ1B{koD}{vJw>pajcCw*LgDs}&2ugU%v2#Al_764Q96GLs7RItgno=2Mde~U62vq& zCiZ6NKs<=UOBkfn@-AOs!GREssw7{T-4HSNr3}FAb68PE{e@u&hccKR2RACk6P-VH zh-^O)JV^2nD230BtvyihmUWf?RRY4R^ZdN*~ z`QibAr~)1gymORbq|%onQ*g=+jOB zQ3^(su5@NQ{Xj(;RX2S98@ zEjX_7%_Aoi*TEOhxlzcfx_mB;-|O7w3Cp$X+$UAu6Y{~n3yv%173h6h$ z^x+e;bWRPoQmJZNZ+Q-C2@!dr{rk4*KB_JRJPr_4D%>6N<7!``;nAgQAV;Qh;;*09 zfiD+Zof2C7R&XN4qi$&4#k4jzeVL@Yq-o7q$(E7O2t%`$_^r9q?RO!G+BL<1Yh%V$ zYZ~R_wo<|k1(sVHViNJi5*Aj<&Q2ABkMYnpeQhQs?Dx1Lb69ODtL^-Cs*Ato7>Wl# zf#M>chvTFKq~D3Ec7tZfH7V7aQ}K|GtE_k9J#BSBU*&q;a_Ii+9wrgEx?Z^G^d(UG z4SC}Xy(O9{@a21jRm~)7$-rKD+f587q6LhCwoDV?126mJxVTJuMd0%K$s!egpdW(6 zhjNo@0!_HA2Nr~~gKRF!F3ak;e9p6Ic|3Iu)qarc6l{NREIVzHBsl6&^s5xPf0rlX zzJMDjdidB}HBv(-MK+#hltvwSh$`LQ)LbS~uY}NJiwSGWHG<$Hhp uyOIA8;Qyb|0RO+%e@2`9Km1-PZ0@WZyzLQ7sZ+lvhyHz&d$7AtUi}yI*zA@7 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-5-240px.png b/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-5-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..190c9c7c8e02e23f2a1d8ecbf1d2d8de0cd0625f GIT binary patch literal 11473 zcma*NWl)^K)-{T|1t$y=7&KTIT!RINV8Pwpo#2we-3E7ecXxLuxVs1YIOn}mx9Z;d z?vIx0>U#S5v3vF2Yc23kIdOE9&nQq(Q0S5pqKY5mi2Lxc*wD0l(P?l{P~=dOqC(1UX=m%^@mdGJH=i!nEh>*o z&NW&*bbW2udd)0}Ld z?`##Ae3y#c;X?ACvI9!S?rN?h31NBLCt*~+>Y~goY2AuR;@fkva+cq-)k4nyAbhX3s&Zu$_vHJtNtxY@o47B1NQ&A1B_)TlnkmOYz!EE- zQHQAXs+#1JGPyPj3of_{##0kw7Nn9nrqqu@8ZB_0;TIYY<>z4N8seB} zFU0s_(m9}GeLC&zyyCUZEyHF5mQJlglcnSqS=!S9JBIxv3n#Yc?wxxkB13W2l7g?=g6K!<*hZTyF&?!D z_jq)Ga`>`rnInQ7x$qA`hMCRF>Oe_~<%N3z@3S5YyC+Az)ohyM{Y96+BlMv;21J#Z zYQOtH2%-ny+WPT8g}PdeOxOVxa4W4ULmO#C zgtfp53`zld127J)I1l8ELM>4f$S5gMmPWdSkyq=yFOBb+Hp?*T^E-9huUexMAEFAQlvNCaWQtRilR(!1OtFu;J%W$`~f%!x|Y^JL8m+dHO`-Pe^b! z`>qUSim^b+574j^nLFknO=_BAUIS2c`A>EA{nisQv-|H<)E7S6Py1U}{V72H{c><_ zW1gsZK=u74ESw3KsUtRnYlNWln!Tcab0O;eS@mf;gK}|kW%O}E*E>ixN_HdKT|2@! zg>b?1BAp6}vj-3MWyR5F^y0mn?0N-!v-&E-ihc};{fEuU==>RCRe_%e-(ZGdmqB�ggzyZ`=r)7f=R<$g*@W^#Us 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-5.png b/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-5.png new file mode 100644 index 0000000000000000000000000000000000000000..edcf681014e13dbc8cf2ed8bd29d0a1e72fbee99 GIT binary patch literal 28661 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∓$H)pmX?skH^vR@p0r6B+VO^D;cQh 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-7-240px.png b/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-7-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..751f016e8088063f9d27a02f5e20b84243d6d1f0 GIT binary patch literal 13994 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-7.png b/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-7.png new file mode 100644 index 0000000000000000000000000000000000000000..23adf1ccf8daa3360526174c5aeef026b03d5d6a GIT binary patch literal 35750 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%0AY$~oWN`>uD!0t_0&s}82EO9i4LC;+ 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 G@P7d2c;z+# literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-1-240px.png b/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-1-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..a8d30d5a18d6b4ccf27ed3d0a10a1af6c2b6aa61 GIT binary patch literal 7911 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 yoaO5IpR1Sa_`WtK3eI7y?05}d|q|`e{KcDaO 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 PkC2yDmdU$o=>7iyR{$ui literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-2-240px.png b/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-2-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..4c30c3727c1b23a9855e2db77d4ec25f8d14ff7c GIT binary patch literal 15821 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

    @ZfksuyWSg6=| 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�_ya@lR+21Vj=#6^6;@#&bK-T4Wptph4+JE%0l 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-4-240px.png b/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-4-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..730205ce6d5ce53de66c9bf035505f516958dd69 GIT binary patch literal 24147 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

    Dst@yVDst@{7{^s1~G}@scUVAU~P;uI0 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-4.png b/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-4.png new file mode 100644 index 0000000000000000000000000000000000000000..fee9e0c0ace1b6bd17365b20ce8e942ba6c39d94 GIT binary patch literal 42191 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 IYWVwq0Kp8)&Hw-a literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-5.png b/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-5.png new file mode 100644 index 0000000000000000000000000000000000000000..4725e8d23bc94bb8626f8d5e0f0f0d333f14a7c6 GIT binary patch literal 29946 zcmdqJWl&vFxFvXTcZc91xCM8D2X}V~?sjo^51L>hxCVFk;O_2lad-NXH?QZ%Ojk|6 zp6MTRs%`;?%{g1YZ|$|#CPGnO5(SYE5dZ+7e3cSY1^^&I;Lm4xSnwUE!QdtE7X$|> zEoT4#wfFr4kxY+D1ilI9@>Nb8ZVv_ul@I&T%JdWfAOn0A`=ScWI9~PARdsz8I>#de zMya{8pwkmotIdCCGG#>i7LcZH&9F2|)@s*6&}dcu;}VM0u%ZQ_^xL{^oBXfkK22j8 zS*Cmu)q;(@{B$0x!1xiXs-J-@9YSL~Z06s_kfEG-CO{8BO*Uty?D2;T=WlEK&TIQY zVT(4LLE-P0>Of5?y|CE(HH2S=g#o^bv4dPG-mhfiO8NI+E390-gDoy5fN9<|ocK7?%f*pK*x0zZ=3?YOg%Rhu=x}L~< zWA3g3OOp@NY4z7cNl<|Hf!L8;O^;eoNp6RNNVEsVf9{wIpx*?HMEF#PEAzU?J{VTY(c^dn;cLHvv zS$&BqBofRv2JDz@ut;ZC(y>NTqr%?ESiUbXfa|V-QoEq~9sE#iP6)u3v0XQx5)^}V zS%O^R9-4a%CtFtZKmT;4|%e!+u~xFEmYKS=3i%jc_H=YvfYBWw~- zSJ8mtP|c>9;N300^heTU#vs835)*^8lWOT@jrQ%L1@+5ArXf|+76b5Wgo}LSY?id@ z$F2%l8L#{XVf;sOfllWr+zl4^8dJO zmjAvkB%eh6`%A*C#1o=JP0j&bH9OLf$A;GI4-La^LeJrrDOX?9&J;)FfYgX%pxF05 z$5^^=2U1HG6;_Usn(fkzbXbr@|Cn-FzFNrXFXxf$yBe-0#c2Rh)J}P&J4+RlT;4kA zDFj5ltZdaI4HKSqAS|Jkfd<1#W6W~(k}YQo-uwP&apYuU`$TdC*!8#LWWTqG>1V^A zgbuFsQAzoPI0i0)Z$DM`oGV_ zy?27;GV^$KhF(sScuqt9j4XH5*ahXk?nUjz#nISDRc5sMjQwESS+1yTBeid^9e3_4 z93gF?Q%R^a*x7|Yv0H^TA~JKu0ew25-fVOA^=Q%D<8czHmw);ka#t}|crb{t{NlHh zalh2=yH#br2&?5`+@iDZy49kxhure0ee||U>zpC?v_KkFZcA#eZQ-uvwUBgHa=OLK zctS%Q=4QLg(&6o88*8@gv-s#d2tduKYB5tERg9?SgyU`mi}UK=d)3v z?n8}%p%gb~XUXEo%GK3sRXf_@%&I>}FlNxpxBs-UO;9a3HR-z`c#kN(gO(dJsp*;1 zJ#Y�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 X5W2-=?a{QrB0;iJO7BV}jQsx#plx$@ literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-6-240px.png b/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-6-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..e060f32a30819363257ad90375289084e7bbbf7b GIT binary patch literal 15930 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-6.png b/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-6.png new file mode 100644 index 0000000000000000000000000000000000000000..cb7e1c6ee9b9594f1a72eb1220929071bd922e4c GIT binary patch literal 26250 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-7-240px.png b/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-7-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..a47f6bc6a6f4e563139f503adbf844c4d61bfe00 GIT binary patch literal 14014 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 I#f^XbH!jmdPXGV_ literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-7.png b/docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-7.png new file mode 100644 index 0000000000000000000000000000000000000000..b24e71b4c081e577bb7d3ec87cb1373b99c64b84 GIT binary patch literal 36822 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-1-240px.png b/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-1-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..9436389bb04bb4641ec306d845681a98d42d13e8 GIT binary patch literal 16136 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 K**a3 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-1.png b/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-1.png new file mode 100644 index 0000000000000000000000000000000000000000..1c82356b23832e60ed8a772c4259e3ebb68bc4b6 GIT binary patch literal 50837 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 i@AH2V`M-N`>$4*tTWb literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-2-240px.png b/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-2-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..00315b889e3443b4e599d2e0652668041a815747 GIT binary patch literal 20694 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¬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 N002ovPDHLkV1j{Bb6NlZ literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-2.png b/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-2.png new file mode 100644 index 0000000000000000000000000000000000000000..8a0d05ad9525926b04a0d0ccbf2341804e1fb3fe GIT binary patch literal 61679 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 ZL&^0etyOULgDwtGR1`H7Dqont|6ltH_{IPL literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-3-240px.png b/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-3-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..88bd270fd316e267e81630a3b3c2c7749eaaa524 GIT binary patch literal 12403 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-3.png b/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-3.png new file mode 100644 index 0000000000000000000000000000000000000000..18ac67523a0b21f7c1d04d3b8609bec5bfa81570 GIT binary patch literal 37510 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-4-240px.png b/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-4-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..f887b6b3d3b9e2f1eae33ea1222d5da605751603 GIT binary patch literal 19165 zcmaHTWmMg4)Mb%k#ob+tUEJN_Vi$_LQ{16gad&sO;tmChyK`}OcXx*Oo0&ELX06D2 zlKjb&oOAZsdnaK^3Q|Z2_y}LVd_j_t76*OqFF)5BIGE2Z3)0T}=MLUpTGQ#v7v#SG zR){2eWP;Cwu+B2_60rMUp-?EH=_ODpzI-A5A|o!M>YjPp@lbC%=)L)HgmKZz)1J96 z-)Hb!gcJf5y1q<_UaN}H(zpIi$hxL{H&^SeW^d!ZWDR6fX?6B}lxb=GyNaKjgL*!# zB?Q`+IKN>w=7SeoWE$6I-xj;|F@yClQ0SS$nTm6>tDYM?-hW?io55TSQ(9KYN?OKn z-B1!xIahIEvl{zQ6Xvob6rnCJDQbM%1#7WWfjg$KhPaDb^<0UOSPTr6alze2OVo&B zuUoO8)<{%;0#CsgKQn$iqn|^(Fm{zFxb(}rz=X2=ejgzbs2dKP$-syc?`5%Z@o|xX z_+R=U`b85qYH9fb9CD!OxZ5iyHq4FJjAu1Jx7 zKJgp!26wg?ZU5X_Y`(b>{uB}>&q6MnG+d*>UxS%bIaP9zR0}D4Th;&)$_A()D^akz zxbm2-wxexrm+HDn8x}fQY+j$Ee2;MarI+P z75?IZ0-;z&063)OzyEJPpd--uh6j6;GkT|{qa)~yd$&$=eeKlHGQf7U5RJ|n1Kpql z!#;oW`rL7BX^BwXE%-D9flXoYL>&5Geu_n~a$tlEg+eaDjk2QC-=DQg>@5uh_6}CU zlpNV~hqq$9a`>ZYw=XP0?K68}EU*h$h%oWi6UA!?k5jCcNM3p?q3*V0MyRyG2)qtG zDqmqY04;Syam|Dbj7w+I$Hji2sgtid8Ye2_OBGK_69_+xyZ53XqUw708U@uo(e(eA z!eK~|f1Uf&Ym)bSr{&bzE^gSwUiX2lV>yu-a{HdHfkZlxEHufejff&hgwbvjFBg6B zkjlh~b5IW35EmT=q8|j`VAf2cQiIr|QNN^UZzIAN3)}_%^)q9zn!3gUSyGoX{gASE z0GDiPB4S8TS)oayPqJMlnibKcF=+IG*tA_+YH>)RZ^dMm*y0=$qYtWAZQN*oo0UpQ;uHvH0$P|=wvuxEg5ILTk_yuiSKr6%tisoIS>f4Oq`0+tM zehZs1czp%y6me^%t1REAN~f zbBhb-W$|H}!mRjs$DuVyLYK!J-;2(JXV-(vlJ$9{_XXdF!H|v4kB?Wob|=%b^|Aro z_wmlB1w>zD_71cWCHqB41MJe&uw1(cVA>S@KrP@~Z*4#GsW^bDx zM@hVL=u@iETfyvZ3y&y5&sI!2EdymK@?WaFE@AAv8pi1L-w;yP-|2{suJqpq7Gw%3 z4_!U(F5b}#xW}72-&vb1YkYPn-uLI+-1qo86>6Ht_9~I}y|?&UzUsmF_PTqaC&taRv&XL;1=0C}(mD8I_ioOq4X^Ke z#N%@h&Y2-Ze!PyTz6|(y)2~h7nfSOCdNbC!IY&^Eb#Nl+0z|6XWn61Gq!F)OR@xE~rwehH{#kUaWID5G9vQ+-q3ii5P_60x^8|9lywfKMLs6jDdJk~|t>@d6ZL>@~bP;90QJ6L7i(KVp zV&Y^1U-49%97zq^)a$aFZ&X;teu zui#(ffSzZUd!=mW22I8&3*n>JQ~8FG;U9m6=huGy*VOApb|1`}aXa4(6umbzKEvp0 z0Z)IS7cdEFP*BSF_QUci2d{fo)Y%@l+dIE0b8i=lCci^^e?JelLZ+E({%_UXo!Fxt zbC2^fmEAua6IlWQ3YbNp?6W(ULf*fSf9AepU|;~{n9+>1KPPmG{xbGD**j?U zdSWe6%-KI%(C;0KxhXQAB>R1WBV=IJ*?YT6XxJ>G&&%&%?eDhn63eD2BsFWp!qM4P z^sv5bUfmhYKyuLh?+VhG&FR$6#z2F!_-recY-Xh3`DOQKJ^Orh-E_43`6{043FE%` z&kDQd)EtJ(0X~we5w3q>3FoaPui;nH$9_K+cVK?zJMzUFOxZS z;tbc5x^~CWB)DIPbL+YKc*y%^=>C`y5AUh%DQ?(zJc1CgdE-O?lzAd|+=b(h#2U{l zhV5`8(I>=Tr`m^n z`9?O=qC`g*gLZ_;`(FZX?34ZfJs^+5uiR_IiZV|o(avUzl_9U4cFs@pP7>H7*l!|0 z8h;E7O9gjNUg~`VEdkVu0lm zL%tj9R&-oLkYfkv@yY}G&G(ji!bkQrDj>-ISrlgoq_rSkn>%?1hL_ixkvv&^-)v!7 z5??KZM0fzyx#eBszp=X1xXfC~hOwc+9tqt_HzQAwJ4LelPUqA`_K+p~dT z<_P(D`?BgR`sj#W!?S^d%@cc%(-}6bNr)Q)Cszv>ZkC9c^;iT&9L4h*TBu9@Zz7SZ zFdG6n=6{_P-Ts?ze+q4TGP|1?J-VG2_&iKZfs8Iii$JAOA`VEaiJXzzWf|NI4h<`5 z=YdVK_dgHpm7)B?P%|YR6~^7@Xzx^^GiZ%F5;ga{o2=`qYb{2K9wOvxB~y5V8?IQ-UCK z6Cs7IBr+-c9Dr_}-Hj1)r2z+h%3bU0$ZPMhvyKf}$lxw}Iy zI;7CQi|%2_$WXCGvw9u^gA6@GbeJN{&1zZket9xxUf~}oW^cYVuaoid4YHN&KSg}p z=D1&3ZS+)MOr5{66h1SJ<9{ zttuVwTdToqtqNQKi{=#*acnNw03RGf6WYj>uwaNJ9f(d6zc2g=v{&#i=wMC_e(&U< zuvk$m?M6M-aA!^tB@J}p zx?x6dWO8ySkeL|Y`W}@=aPXR7+3*Z=EU;ok6#5wgV*gQu_!m512);!^= z{|4wut)9FvyifRAGhTB+5rrs0GYQuJm7PV9aui6`tz`fHM6Xz$xZAZ#wZaUC{Wgs*~gAaaI@~A zm82iv4r2q(UpL?*O`+1jN2iz?S%)w6Hx(-#XM|M6-=Ht{-%uvbL^5 z`#yfPq%!v7PiitLqNuHo_E$QY_*g?<={AmBwKO9~hJg6+B!UI_L{h}Rk1~+dK>0}) zwzjT>h!Xf`Z{TE~3%_F;KXyF9f*opK`0&x!XhxtigZdP!p^O9Ncg0UIV={d{gt1;G;)a^kBB-&$Cb2U9mTQ$D zg~A?I4u=ZK+B}rcBa#N1Ffy42OPpF%eXwAjK?juUJmGKK+1^ctxfxt9 zD%TEqLMW{=cXX8Hs$*zqJ}Ma^B3KmghYKSXWT-`*8;0TX2pk+omDr-)h%A0C_GqxV zKl1=?!$oy9*%U^`$!;!UJ8+v=wN3PFLmJ}l@Ny~>?(ibZV8+o#*{rzDN})cs;Gy_Y zD^S8f_OeT=I2NJu8hRUt7!Ssv1*73Dkii+VRykb~8z*wsoXxWA8eYNwGC*3bYr#i; zabM!kF$v%}y+>7pVfK{MXbc8So1E&8{h~*NYT|6>_Sx=ZPE?Q`sYaLbq-ea?&{{I7 zV~=7znSDUV&q9*z=V8qr&Yde_IdnQ6^Vqk-6MVeXrjjoF#3EvmP|Mn<{2TDKLl2fOr)4-E(;;uAUS`M`Lu=N@Jj%pf4g@AG=dYW zO;H1)6a{dy1$dm|1`G(oIasvBA>2Uxaz?ar@yg6T$O9%&Mqm78NPfntVuM)RpQiB4 zXFpE41+g2z`=y=7@?WnO!7|}Q+$NfMSranvpvy&(b)mw7B@GSIVPweBR$pxztOZ|v zE;~)rh5}xaK)A^~*Cuf>Ih7Rv$x2Nt`L?wIR{1|k2(=F8^b7b}ew3k7keOEu4gR#i zb0t5b@Mf6ax}g?SDT5VMX!J66NP7m6ezx<}d^fRvQV=atu;DhhKX<%^Of4dqKyrz_K zbboA3j2EYiq_~Iw6=#GS>X%noB;!hho59QF!D|Ii3VilUc6%9f)NcSJQu;1He{WdrmUyBu`5Oe$p zT};el$Xz9dE5Y3)Prf%4%que`8e5Ag^!(v7w7pcKsogqpTjs>?;*}1-Z>4vI3^ES) zoPY!o3qC|zGbypdrt6{Zr28vrA!_lpyKN!(&=`3+K;l75gM;jaP5vh8CMdLxEA=es zy`tl+d!u-c1#{=6R?jRiN*si@KhC7kVz54;n5EEt-5r_@ijkB#ZzP0~4DRd()uycUpLMqRu?+3I))(B%9| z)1nJe{Y=j?-itE9uqE@OH znJ)0L@C1z>|tINzvS^&YeuGLxYO4}3-t9;xZ%7JT1oDo3o^wrb# zx5=rKJ09<6!e|=@)PpaTQrJJaPR9N+dRLO^k4-NxnYwwB7^bA9r;*_X!r4rpG#uW) z&=?GUUNs2#f8SLD{ZMYv7c3e1fc0gBq=~*qA5#)=fk}VS#Lu-5C7II!FLc zcdVj7_&Wv%C-!1RT(SjAwn9U!K2;W#${W zXP6onScTtVAJIQ9#&MnnIY)a)!;K%Oi?h2vO4Xgj!4|#-71trMwoQ&Fywuc5s6=8O z$6x^jcjye~>WaFxc2xirQ?kF9yS00Nzxsv#@aV-A{QFh6t(TBW#Uo`gi7jzN&I@+}KCwmDUVztQ~-cna5+P2hJ zOCrQE*-NT`-mVi(6HP*sGAeL-TIdDAgK1F7VTg$)Fb+SI=``Jwi zgM9yo7;#>d{%pmc#3AlO#9+KXhB{@^2%kI&CEPOA0EaH{`Kep>_NAOM`JtD_C9t_z zhVhbjpN%=gs?&?}qSeiLNXl>qXNOXqyI1&oSBVZ|zA@Ym@ta>v0^K$#ixbrdUckb- zS4y?_TgGk13Zj21!9vx|b#rI$Ob`lghJb?i8@k_EZWM$5uY2~Blat@1(xOH-@nWRF zfU+eI*`QOXitx|=HpUa7W{0;WI)Cl<%F%u+AVPKEGXz#i5iw*X0{qen4&C6-QkVNM z)i@?=7P>DumR8n{aA{O&4(R@3_prD6?2)%=mya=IlER_)01Ry0U?&}w9D01JgEo-M z=2&sltiN~B(dG0AaMd=1FRd;Pj3(1!^8d~9Cbv-@F^BKP9i62GlhGr-zt44&u{lJh zYedDp=S!!=yy{6@5bf-?5M!uZKHTIEEK4Y?S!DMz3~R8P#EJOzM_(0 z+BOLn#rjU&ebQALSFNX_D8B?)mtHG(6hNO(6Rr%O?voeU2hU08i2Ms6HQ*-nc@EM? zh4gh#@mxPEjp^@eT}bNPiY0{;9Ly|w{c~9+*}gWw`*CIGJFo;++}e|*`6Bs_Dx?gQ zj|AI(Vy|O({*~Q1b$toAZu;tW|M_(5`-nDpELZ`bYc3%&bwYEa3jZ$*D|oG%$X=qp zzgeN1cBZVj4w1$7i_N-OuNVScg*J~$azyEeV|-tY2L=Z{_S4J(@;8^_y@`p6SeqIU z#Q@|*OnL#dtAh@!ouc_!V}oVCb^=-UI1{L)(BN{jG4gz zAr_S1xF3Kb_zAtPqU^kOzO76(BiUvt|5p=|s%dM|tK;(wLI-3TNMG;&Ns%p=K57a`Pq%u|#v>`uw zTf_J>u^+m76_Ru!{@E;jSr;lC8Lo4>wH>FVo}TO$%HP=x`8rsUuLZO{>_|O;z6J)R zcmUkeM&(WjOE6hzKJF;7fEXN98fBl1IA;H;9fy70dUqLmfqXq>nB+YVq*8cMlsw_6 ziIY>1bycWoI&G0mKG~gF#;ZsRX_|C{nlz8&3p-)}?d6ijdf&Yx_q{Y*ZCgj!(Jzf) zQW^Ao+5vX?#7}l5$TIyCjnBsRu_zOwi9={bK|(%@1ezi|uL;VQP4lI|*Cu}A@$+Ne zH|d1&McSgUp5NlKzuuG+r@BaLv^NIPu|WeG#WJ|Ta4ft~W9*1kI_@#jOD*T60#put z_s`UK9h^l!(fmZ=0w|HgjKWMce^Vn+jx%hUY%lBu1Udx;aEEI^xgiuq zN=Zk(6t45MjuGmU>L`car{>b`c}2dHB*U(2YkiL42I;&wK))A;E@6kNT=~P&?#y9( z_`rTVcIFXNeZz-9UxPclc(@C@wpoXq$2PZOCb7AxDU@%s#5Us6noVzRFDdequ$K7u?c1^& zASU~T{`%(FmCC8Le*TW!UzeQLBTblY&VVlnLHwRCNdKO*^eGl~jO(W<5;*WqA1vFK zw#Qm=cm%ELrV$p`DtBb%y?sNDcM)~4 zn5`L_Rqc_Y*LG)>OBBZ(BoytGtEj_tl0c{8`M3q^c)jV~_d+mx?N~kD+019?Mvp7j z-)>RGdtpz?)?_lYW=gr0h=J@4VgafGuU!VzIZ~L`uLi=~0fs*nGQGo%Rd!|{l9w!Q zhdrq~hPLSs6fV10NQ{;_Gx$bN=Lp)b&n{+`b&Y&K)sRzM8-1{i3mtDbDGb=vfnf^t z8N`FDVI`WSrmcS)WSciO%b2~B2JWcG8blw=k^G4^`tQ^ zGp*kVy4K&ZF_>L`KSmzykwsy?DE&@jNv8x0P(P@MJW!J4-0)7K$&xKPXC3Dz7kec3KYxxof7(JhJe<$OBjQ z9=GAO-Z=cH%)NdQcP?!$FJspaPHr}mH&_{RBWbxt9bNIvt1npG|DvsQXlF22WQde> zU67y*kBV|>2cc~(o3Q%3R!dP&00h`Zl@K-b^o{SwAcN;A-@XKr>f@Ok{p~s5XXWE- z8;ktG<9W_+m0?4fe$=Xoko5iApxKZ*b*M>(>)>D$;c}LsYg1nhTj6vRw~M3S+6m4O zCiRqP!sx+~8$oJvK#B{RCl4`fJ>XQxKB&Z+N6Cei$^yU z6fJ=xR3@#I6uI0|>!6Z}G+nYNl7hI5@`P1MkzIFj?4=Rl@@o`S_1e1na1J!!~Tumlolj-kyi$0s` zqjT5B+K&FmN5m?Z8|aD8^vq~xhAm8Yd)NTgXEW#I*|9+|E_Kl^?{ZGbhLQBrexQbo zL01dBN%;Dhyh&teZ$CKNt}QIY)A4dpzu|P^>=!aDaPz8pa#ossrqcT6z4rVnV@Bb& zw|Ck4@b9F)Bcs=eR?zdGZ?vnE{!**FedBwe+r4Idhd?#gr1M*%;hx?e81~^?pNP4W z8?lfw%4MRTa zh>)MmXTbY!P$Tg41u@v0GF`7ZX2+C8KEa4n3iY`l3VMa?r_18cMh$+SOzu-BZ|{Js zGQ4n@S#4b%`rchtq~0bp3zPiII^qt!7^AXKA;Ov_=d8XVCBkxLXPusIV!sK{sAt8+ zX|21ppT>7W6*fXd3pY<-q~cU%v*jJ6f`CiB=)CdXv&5J+-Xu|$eg#s3H&sID z2@W&bvZlgVWP&sXCgBZwL?{6+AF=7J3_9$*Lyzgiqr)YZ8F`zO7AaHBMVWFH z8!RyZ=kd0NQi?@Qml9!ejV*U#mC5g#F5A7c9fEWD6JwV_q$$>Tk!0$O9gsziH)&?> z5wYAuSPwQ1T*DsC-~%ek8{r~r$&Jk6TRIoP_Ld;n*DKRtGHo3r*x6Pp4M!?7tXR)+ z0iw{sP8g}YhL+|zPgn5xo-U3-{Dvip=xww65$w-4gp(9t3=;%SyY}a1N;8-<_@1KF zFi;xc=+mtrQolhdBbum7dURSxBAcC=wNPy6Ub=QGB$#_TF<);U%2{+|}L;HXMdSJ$RewSmJ~?Zm;s zC5=`EQ%AqZ$ksaNfL5C91Nuo|ecOhxD^|wJ3FZj#%8R_JQ4Kd&kn?pSe~bMSukvhn z-F2S`4w1T(C$;Le%GQNqUO8aZ$@_~9BUCvNRm0tp2b7XH+ z!!=nN#-#oS^-sL{1@#)I9TVMvts2Eon^Dq8pA0l>9{4(G zt;k)AC{6mt?&Nkcs}pmec7msDP=*XLR;c8euX;@!j;;Wp*~xgwKg=nlL`X^Yrm9U+FWn z-K)BfN3avv*k+5(HE}0z)X~y*lI&EHPYe#C(FFNVCpC`Fa3;%RXb%$Qf|@uhO-JFrPOV>{}@jn#|F~VOxgf1TxgWY5O{D3zV zEfT{73IHQU8lktwDv>(=0MT(xMlz3RR^7_V5Ac)>YW8t_MYs$QGFlNIE z{PP4Oo&|B|-*Vi(S{70AQ*Nd#(T@;7o$Czj9>=-1jr&Xemq0Q}mnY2=aX6!mgV~%{ zc)d0;pP$F?7jIu%4&VqS(bO78R-bNgJBXVyx?M6?fb@2{^tc>_+|gk@U&=5c6GT}Q zcVB1?jkIAzHrWtGzbAb!w#+qw?CC;{r9}5#l=_wdVi96xW`maDuQQE;%n?adV!~1i z>qDjR+}6G?NI%@6Ar>_08xl>`^A+Y)Cp~E`4M3KL^P8vOYSP;%0acPuSrjSZGmMHC zNZo^bgz3XBUNoWuEYo4LwuaUiW!R%njPMEnV&fO2_^YK4p~U?@XnpJ@(_@n2#?6=i zHt8h29miN34-fiDI4Fpj-Wv~x>>IIzO9owRO7@#O8b$t%a8M#wW_M^__fXk0Y#Voj z#E1uvf1zWX@=}2e4fcLZOo%jPl;!kpI4OJxKpD6Bml_mxY_2L8WQb2o7bk11jorKT zJ2GW(b3cAd__2smfin7p5I^N7l9+F($(eU26l?%T5+&u(U{PL>3zCZ5ET0UtiZV7scxY zz7g;K-SXMa+1;$FcOstg-krfTp$^fSIC)0221y`-O@A^>J|7EWB!EwCZQ@)6egz1w zNq(zV>K^SqzUO31xM7%3oGHDiuhTI%bbyTVoA=*|_=Zxtd>$i5(jJn=T>r0rV0RG_ zit@=33rYg_8IDhCJfYp`NlYQz3!TQ;P>Z-Iv;Y2{Sd?J*8jrjzRwPG{)cyWdb2-ZU zRXkpttix~ee4kULzCIOBLBJvW?2ambvFpM6Ck9qBGlRpq+$7uSd0p+2fma>Svm`2O zc$+)?SNU*XA7$$`H#muKAz6KR&yf<=r;HU|rf^``gfw|>NH{!a-51X8K9e@ySW)LI-Z18R+TDs)@N^j0=IAJ4(5w#aDri)%}i zr{b72BhY?|QwfyD;Xb}y**bY^8U+FkHU5EfHu6(HLAd=icg<0RAf>XZU$4{qdOq_Al%J=4biT>mF?1>vU-y7q7oE)QyR1sX51t#x6UE+d7 zdQ#II9T&t&EFE3#ykvS70l|qVD>=kUhMj)G+Ns%QE@ju1chFV$W}>9g+dr$cxK1 z=!0mkg~E%JW>95caW=d|M9m^+tb+}lGUh57i_K|14L)TLiKIOyv&rGsEtE}hC%*;d8t83@3KHJ2ue=**xA$e0gjySv!TE5pbxaw6#A8sG1 z69dR;*4SC%fnkNLf)lxGq%$y9Da^TbrV3*UESwy2Q|l!Hmt{ZxH1Hy|TgNGs51(#3 zZ0iM_{YptIV>yoEECTr{v_&P*0oZhnZA{_0v`LXE5T01mDguN~hySuOyF$TfAEvPJ0G#zL0}?KsNZl%es{hWpE;#eQv4&{oOe)_om08K7jee~WYsmqKR8KMb0fIb1jFcUIF;;D9p9!Fr9 zA?}bkd83J!BR&?ADsnwtWbTOSrh&hF=tPl|Gx=B& zqIiIZzx6|WFq}z>zlOhsz;So}yE&;q0XNn8;EDUOo1^3{4C$rVsuC^se%4(3af#yR zDUSl}F-mxZqhju-FWCH&_8uPBTrv2U2)>te;SBx!0t1d^dCup{#gQ}wC&b4rom%G& zkxmys9B#^|wVGWN&WJ3w^KFH}tiC|^9@gNCi=te`x`A-Vf*4)U4mT}T+%?z}3tWdR znk{X@ir{1nKwvXU#ZKl3*C}lr;D(EHWE0OfUCG57_C6FRfkgyESF*@|qf01&qJ)E5 zVGT=oR4O0`V%!uXoOQ8%7S?KoKtq4E5TYu8BpR>O--iNo$r5etjt6E9yDbWNFq+W_zaRk2z~y=PtEsIXLM?i@cH{um5+V<{ z?M6N2cqp5v9&U51zBD1M>8PJPeO=v>9L@#j3jkBIh)X(}rD9Wo%N%SKN80O65=gOSmD3CSoG$Dn2deG#iZK6 z)3)2(JP1pQO_AZEBw$Coh_$aGnDI}k5UXZkTs)_RWY?_ zi|t35%;MVAQ=2}{chR9x;DTLd9G)bTsh1!}fW&`+$Mo-sn4D|4&m@~`;}tK+5h-H& z)*4{J2E?2L#tHWk3i*ULM%b|yhFWFtyS!T-)2nMPe@i8rtXq(GKb~btu3jf4Hzeh# z_ImP2R=1tHKtxjuuDv49OKd5YZ(hh#`YsCDaW1&?tz=px;4bSMrfwLv2WxWo{V`L- zq~O~}vzwm0qs~#9kHYiFb#dF@OGC2H;1H~#(Vd0padX{v zy5ZIJkF9u4t3YGs5j=jPN+AC;e0=^2rc#dNT5@ftUT7nK+L|1UONKcRfc)u)l`}QL zwcnc2XZd*nNDuCF2(&D`4aOMIO_6PkPFqmIvVS2XdD~AgpRZ*z&vI&tk`1@idi)o_ zmA3h5*%I2npNE2p?tPzt@ocl{(a8UaUtAg62N8XOPKic~DsfeSI@;v9`6fw|57ka=T~C zJv@FfXVtdexIjLP640_L4+PUy9c;e{o=to)pD{nkjVS7AWPTrWM<)}DQ7DPXx5Bh0 zO8a9W+cTTRdd-h+bZ)&`uyO$w;y1D~Mj5|3WSiMGltBRo3^*#-e^eaoGTFQ5^*MZ2H zesU#+DGwdZ9ZjxMf;vFZ7PlZBCjC1u(zCUV?X=+eHXm{}+n)PJY}pRWY4jmd8~1tY zu)9A=OG|XG1%Dx^T7?m3Iw<@*RW=({64{&2LE7DEYx>kqtr$}dMU-d{cb*2*4xdWk zAIF`W$*G^C?H%hq4cC2s5hVSI5fYL+WXV6e9HV3`bSXh)1fEgRCqIlPA!ZbntYQaXY~f*ep96pR-u2iPX&9Wb z%s&IMbO3SGFjlz5G6RP#VK7iPM)corC1?b?XaWP=?;^NRj`MB;M-;_nePc_d;e9Ax z`LuZ;rb(kIEN($T@*L*>ocX%KD&05U*H1meI$p>kqMKhaN0OE}VpLp7RtrfEb-XWT zD$4#)Mh+0qX?->46)mNfIV{+_UJRbFXXm#J{)uV*O(y){uQ>d!&9^{d6%MaSs2^e& z=t7}%nAX$@EX7HKQ&^&t{YWZ*lF-4!sKXUGwyD&47x9#IAPZI5uiLaDZ0uf>RG})4 z#la+f8tMK7)R+jI;i%jJ#_x9<)i+1JPXx~BW@JzGKGnq;h%4GUoz0WgzE4)bfCT3j z-ih4t9Kp5$W}g@B5m#hr_X%7sX}U#fLud5M!V~E-=gHdCg-u>^CgCV?ct_07wFJ@?>X@!**_Y8bhs|~+i6~S z=$(4oEf3cOakA#=%XfH8SxL27qo6?9G`$w)H6HQP=>8?;wUI6c9veH zmnHG=gybh0aFD!HU{N^JfP~JUrVArXiS7q)c6k~EFA(&QrhZvRTkrjZpmJ>f5u`a_ z`_NsuOv}i=eK3j-g*J(v6tp}Tl8Z}Y6(Cl%(c)){HO+BHc`0T(^NDj?cCWE5d9^3Y z1VTc_PJ}zb-4W#Hw(C;U4AS}4uLbd`fM^+icrM#@GJV?ovhT{cSrsBtB5*V8FqrK} zp#=&#jx4^cfOynEGzUTftymH&7Kg-KTL1fLLAv@cP`V4L$exi|sA<7{bcgAZgh72W z2yiC&P8aV`k_qtPf5;MWe<)vip-9Zh6lqxjw1tDWCe8nQ!_l z`EHkWixtE>j96W$?!x6Ca>Yu^cR3>5g#O8vU%iR9w!^W?Kc4D;gz9Pb$nh_CkeP~6 zA*#f)i_W=3ie}Ltd_O&1??y2$UJp%bbfYDJSg>8EawbpK;#htYjFSC2{-;)B@W>RRhWApuyc5}cv%xbkuDdHdvE z-03`lX+JTMmsiu$&i*Z40Yj^tzVQ6ZIN*{$r0hhA;YSU7LQ7)FKaFC&QZza;vr5_T z#fu&p?yPx2sWY@mM-4>lzl^h#n?tH_lw2ZWs(tz{?QzO*q`|0c=AQ*~?-!oB-`)so z)G?UCM~}*oonF4{RVNK5Dd{7yK!2#wBchQoTWD2?jN0?a3@KBz{_epe= zA@rwAsn$dqYSG~zv8B5}j3nHzSYlsw4|TliW%AYVVnEbKf&P^$`fYF`JsqUEOV-mB zYD;Sb+fPh!z*5cyk2WRa3;PVmyudvA(%@(&l}x3*O1F830UPJ>U%IfNoj4Q3eevhj5a3)OK}74}tgsc)H>bR+|D)U@HU-&HX4#vH|H(BB-ir_;K3j>N9# zLN|N8z3Q9Sy<)SSzx|fF+CWh}nsrm$vQ!}~t@EVs; zL>;^e!+1*oOQD>v3#Vf-RaNu<#i;*Fnrf=7q9ETqHqv{<>f6hhNV6h%b`sK5q2CEp z-PdS8!41~K%rlw?mXRIQ!1ccNdbFKkT<>94%5 zXvYh#9#}H#aD#hp(r$8M=&r&x_{aa;;Ei~Xyyr9=@UIv-XCL>CQrF{*52YH{d2B{T z^6ZBY`F@1)^G*C5<{wFT)8*d5{}7o#!D0%d{@0Vx#cZck{PA-$H#bockS`4DYcqEP^$ve0y?Hh7# zs*_Xxy5jl5FsqIGGu&{+eInJ-8(uDq=Ny@5eIvic-Op@E_z(8imDIhBYz2|II2m9f z^`{N9NalR?-{j0Q{+7KoYFQ!<0USB_#Rn^6(nRU+ACd2>aRj@d3mJH7wrpm^muZWKyinoe~X?L&Q$fQf9jN>-lrh zW<`{^7d;g6rOMN#vj8~OBi;UF(FtK_Z34gY3NR~Nd{qx3v?LnTeFZWCUeIc0%0D zG3n}$>yy1;3s%XWQvY&%Q_x;6o6N4cJ{L30N{d3&Krl~)lfw}8h56mUob$H;@q;nF za!n`C&mvtv9vqx%QG(nFEnjHJo<{OBdmvn4!zcvXlkuX>8n^F)-_KoI&Z{j&Ds_PGZRA&J!gkB_n+mW z3D%UrW8Oh^PtCG_uE(y5?SoBI)<=t}!6{EIYU{o3Kt-b8wf3tvJNvD$_=RnnR+cN* zk}0t(T+9%A>t00Bn0&&hb`YW{a5G|NJ+9q^Z6`_4DV(9h$4Sk8e_cFJ9wgz|?INr> z@+d=9^EwyX*P~_Dks(0;ZA#dNrc#noGLN5(5l}A8%m7_s*`92LtQe>YXCSIZBI~cR z`v}Xkmm$|?vHZgERebrA)#~SwKDGibJ)ANIJXxEQdG6s986! z2BRPs=<9@pIM)2$<+xb*fS681iiIldMo+#Sw zU|$_Yj&LImehWpvaK;8-W{ou%AUUX0w%6UbT1kIG7CLVlx26KR2Xzm*-`E)#^S^Ae zAd^j2k`$H7i~>IOe={L8THD!uxZ~(yRc&6#+PgRoyphpP-VxZjM%(K9y0F%K6!$2| zfZ{0Q)HUMZ>q75YeKh+O-g~l}-YbwKsxNIhD()>bM{h)7MnUqq5+&3;@fEJQt}sW-S=gb6y1wX&Lrzj&XA@((gvxFq0qS)KY`61Gnt#YtIyLQ z3i;r=oUr?!cJC}MXoNW$QZ|a9gTCg9xBEtiC!7XiSqT4EMvM1Uo?%=&|>D*t)J`ypW|$5osa>E{mn>a%z6D%q~;yFX~; zx(%$KSc8eDsEKp`Lh0psig@C4OK}Oja}Cn($mXJ*!Y|R@!H4l1d;9x(CIWQiw3V~~ zyNx9Z|8vxEG5`0#@~i?nvec`*yb^I_HUWoA)jy@lzjVp-E+%3VO7j&Xk)$r!n>v+9 z8;xPOK50AN)yKzYb4!6(uySpS6Tu6Ei7#5OCDJlYiXz?YP>_oTsq*TytxSjfXx}Up z1WgcDjq94yl)T7cl_lvOa$bi&1@pQJnIn(WN2z4wPz{R!QYeWl>=yXwE!_5KBuMJR z#7YXX1Ppqy0eixxI3`jm&C42%;b0?bv-iSz4f=XmWu2~IEk<51_&;8*>)bz^4c)kD znJl}F{r0-RO=`5t9^^8gpF=7B#KYLm@J6BoezD2P(53=RTK-02JhP>Xke1drf_jp2 zv`UmUEm0T^ej@|k7_b4pK(eq+g`~>wq%+J>5mfYE;~V* z3(-C>tKB|J7EN5i@krcHVHyd+Gg=BUF!%|#>V=vFb~sCH?Db~{y>mMQN5dogJEB@l zPdXK_C;5gK3Weg^q{0=!rNCsOvlpMPi5mA;XLuX*^^oWW>f~VJ>yS#$HJYT!?!SE1-z|O+c~0r16p3$=Flau})t7woC&(y-s`ARz+crdS^3B#M^VYTtQ%b-+=s=76i?13_pB@h7*x8H` z=74xveekkRj}Zsny0*44!R!tn^;@jOvxCW;TY06`b<`xA549gLGHAYGc-UxFx)q`> z3nH;`1`7>U(Y*T|zB`nogT6CLsO4nA<}wSHiQ9rffB*c_xxZuH8Ja!$AMcfqQv}BXiMK3V90L%99Mm|pUl?KF7&d8-5tU8C(!zsjG7QlqAXuuId zoh|VNFcYsNPXsxS=d;eecO$IFA;IE|(}TQmnwuE`V6H0`CT9_;U0AS5oTz%gQhWu% ziiPop2ZVRo1%>Z5D~NNTbLWp(vMZY#&ZQ+1p~YVA)S*0EMdn(XD$=AcD8a_;ty)|G&k2;} z^gB3VyYKT(ubv_(JYR2}$cXnOC!Bjsr~l(=2mux%8&sMK@~ETc8H_suaqJn5YY>acj@quvU%>ao*y6QB;$erLaQ%P#(7nAyyf b&LqsgnOYuzZbUJ^raFfE5LBdw-XSy_DAJ@#3%vzG?~ni@AfeaL zl7Msq2?8OszzzPszxU5uZ@qQbUH85F2kY#dv(MhMXXfmg{h1lQ>glM_U17OGMMXuY zq5i^vii&!Uit0S-(#5ko!hExo%VjrpGfyfi`d?>%=Mwqp?@?~jdTD5@&@R(ZGjK{s zOow5psP0o~ym)5hm%f1p2i_*aPyhPfyd-5p%i>LD4AM8_~!WbiuOL=0)_-^piUb=Bx=Q|DP{`b5O-_0LR zVL8N_<-pia@6PWBD6-4{#`gufipllZwI+XcZ?q6PN1=);l%8>Bisr0EHCGZ!#rm&x z?|LZpS>yFbG5R*C^6C7qjB3=Fa@Zv7hjFc4>al6p)F`kP@B~zE!iL}QsLAc16?dOd zn-`!nm>_gW81c%uKkk13M^VNec&Zf!k26f14Cf_Mh4@EyxdJ+6NBq z$Y;0`pQ+73E>KZzjc+AhYwHFo>7-$T)0F(qr872gQ>YA-@TwFp$pskie{~`4Ug&aI z>dQ_Y8}u_auQaE2JX&RwSfwRs8Ti7hw?t+5d_Zksqj7l~BG{qzNDSmQNN{HMDCSF* zc)ZKtFf=irMMkq}|BqIVoIOe{!aw&LMnfi>!%2D*)=|j8TduT#5b&}@-BFWNPhsHJY{!&aJ_cM5G;qGx z;gTnWa{?_r;ZK%Y^y^6LI!=ER@a|QEJbcx*n9M$n3+N8?FFIDHG}lsFN2Smk+nm{?khiV4SYoXNnFl5y=*}ixq12S& zizo8NH}^pTmCyua@TxKjsSEesO2B&mA`T49d5c6>*9|^E1%l8Y$4D88h)w^Zz*by_ zoBu_dbS99ZYBL!3dTiLhq}mC;^R8tN@9NAns3=DQjO-4M`mqVYvwZMGg;P0(6s4o& z!InLF?}|mcx@KSObwxBGm0$|gJvf_p&w=9^c*-!I5M+Xh$V#)Ubu%AWrZ{U!cv-b;Lys#-B9oQMDz}My9P@QFSMH&}LtB~T zu13ijuKR31(`1h(EeV01hC6+AX&YqJPRa)0pwpyKvpl)(iHYL>FsN8S|q=15>4~fIS zf~zdj9_(d0G_rpPisq`_6idyEja?vZa9XmW7z{r0SVgh{$jbm^d!X{1-1Oy01H96lXMKF8!kIcuj%wb(j z(__cXyO`+I#D|X!9_$)@cC(REjCUY&(tT!-?_%Bx{xn!5FiQ7mQ2c^g+~1`E&W^l@ zY4%k4;CB=OM8LCkYc>nMHbA#a_sbR1M`N{k4a1%Nmo{VH2UDktd$b%H!N^6}^i99?!BZ7l&m%?JE;LnZd;paqJbWvP#_geB>9m zxO!)Cj})q&XvFN>R8zKJve4Q+4{gysv1LCsvwg`+0PKlnKL6pX38qUm{vAx3%{k5N zK?|Xe8Fnrvu$lXC-knH1A*dZj0&~W%Qe(B7a>A>mSVxyFN9qy~0WaW*?wvx$8?q1B z@X*NMIJvEikf7b2lA!-)QF?8mIa$zH4I59A;~ zc!S6>WCBn8{tylHcxrc3s}x`ct*M!3+YQI-!vITyRtBeK5W(m?Y1ot=fh_{O9~x}8 z>3wfPYlk5u`$%BWv>Ya#H#6RG>FI|WJLk@G&h+tidT08{O_bA8Op|&Qz}5ezAtovK z9kZlG2~9q?#3@qpGgftK$-KU<2)6(G$i6%n-Ey_tlA`_LtwYt2=s&ptVpmV-LezZ$ zeTRFBmk(LN!k)jLhY-$tFdAcowPu}HnZpA2L-Ey-;`UM<0S+febPqBsEh%PINiT;z z#VZA);Zg7Usj9xm0gY%6K(mc(R?$cKf)?y*&KQ6y#lnY6znb1%Vt2Rkbp|hdVTb1= z7utpVN<@>(dh3!#1yk!H(wB2xU#){M3+!JS8X%_Kn15WHastr6>mTG5j`L9IpDjzh9SQN3N{f7duy(-LLt9XyU;0YLt|95xqmbuX*d$-GLv{ zu)oJkkUX_JnpbVj!X^((x7qR(jx4j3nc?|*{udd43?8Sy=npyl;>&Pag$%J-d8Ezm z`GWcbr61Jtalib76#?vg2S%KF^s328-pR=3=Vq_wCBNK4;!PODpJI@Gc~#?X7beOu z@ig!D&Ji>HHE&&2(tkPr{klJKA`gdSTwvB@D?Bj$bx`o#v#(jy$q+R+kNIDP?+!R`P1 zZe`6QdzY@rHjx7BPNGl}yEE8j2FontV|MDj#GA!FAqnD*IgcHEX9fgbK3@;RD)lBQRSZCdk!j&vrBCBA13!M=l=V z*9Dg$;~=?a`IUxIZRo-444}n+sEdUOdMf{n8$+s=({k-y5u)(b9i7?kizYQSP|in^5evr_dzQ@v6o7*S@?0!l#~v6P6X!qz?uPkCnULgWYf_ zW`X!bxwM2(xKRtEKjBZ5+7ujJ@JHGE0ieOFQm1v<(3iUANO}297PKFsBjAw8gJi1_ zqMJ52t_c1f6r~%GPpGrq^wlW5w-kue4LClT5wJNzbYb>FBY?h8-boSfaX$0i(8p1y z2%A&z?r)?cR%KU53VC4imAz5QT**tgCiy!|gLJCO2x&Z_YB)@; zci2$3Zso95%Cf^c$F3vA`!nzlao^vU%uBVH=cwUD2akRaH+jBE*}G7>zY<~*pI*+i zj7d zYed9?#LnKk9T=LAtOALE9*-#g8H2RS)^d^_*aV7s95_xaZ1Qq=5CYxfbu~o07~fVZjW9*lX6^d2NL48G zo_(it78Ah=a~w`1{Ip!WK&ex4!^?4b7xH7+U7eIps`%iNqanCnk~>O zHGeAKmH7aE1igb@j~&ZX=w+WUIBk=97cjE4VC(odHEO!0ljmsJG;?_IHYe2cj_@c5 zf8)G1!QsG3Y#*_EM=*Gapo%d+DI!at|N1H21Z;m76%_R#L)zYKn zlDvm6N?b!UV_HRDiJ7!OrT8V+^SfQXcg!wYm}F@ft~mCR@S~pPcbClEO6*D?vYV~HCx$%2R#j0@un4G^!F8EKNYA;V+4abphAT0eQb&%xovvQ8) zJijP#%d2Wv&510<%bKfV>OE5Z!%(jJ3k0HbfUXUHAEZx#8SU<6Tb5w;ilJ!$ zFr(;q>E)rdxhWXp5RY z@P?F{V^>RY)9kE8WsusIk1R%4ib=5`J>eN;)jZt|;Wcx~`0;}b56LCRzt+C|2WhJQ zUH;R+5u98L=Y>?v==SHX zTQc9fScze^^gcwv7ik&T#|A?bRVdfp7E+(sDa;OXK&UvPNRVpFF_WrgO#yaPePjC? zviVuh1Y~HxBr(zMqD*Zlj zNsV(A z=kPXcP=55YjFlv8I539klhGmb%(YIfCGxT=>o}m^~rrV_B6B^Ot+2*=v~O!r7f) zf+$RXuG+=GX9=ZUJe(vj74e$PKr>rzRfR^af#?S0Gj|X3xC7 zP*b_xP$}r!&CDE3^PiY`So5q2)-c(E%=2u%YMo6l3H)X&ANY*`-RXZr|I&>| zfgqB|(d z#sUvKwp5yPCbC!t|Ne#0OwKM%Z=0wrKKk<~aX&+#ACd?{=;yM5pUb;8t=zXH_IB@P zfw!x?v#Va;yol2zwGfm}HOgsrf0)nU1@>UBy$YVko!)6VfV=X{Hs zfjV1Ku6lTBPpu^j?MxE4@oBYwlp2e%A(6X3jpF;oc(sWRCu4K0qCCqzPAc#RF*l9z zu6hgKRV7ZU0m1`=qtul3M)Q*R`6E`|S}D%EFoS}Oaetff!_{Y#{Zh{@uGE*{C^cN$ zz^)RT+=|r=axOBsqYiZW4t885#5H7rx$BH1&@}RXwli9mQIOA&sB~|9@kDgqFN*JU z9fDI-HwC%`e$|6-zez+a8GT&wU)6Tpe;v=~lTzMox#nML>PByaksmqsk6&Jr&l-WU zxXv)nLLEZBzNPoG!^Ia{c)n>bP{NjH_Dhw+A8Qn*jlEhKORD{xT9+dmC_7vg%{sZ2 z%6BqV)Yaq&2QvTpcH>M@?DEC#eL&b{Xkw*8PKL)>SX^$DHN3OI+%6ya^LTAe6ux(Y zZjx6SS@K;y)!{`c^!k*n`PD+m#&r-P>!RL31b1HZ_D2D)#H`3-8l)fTjWO%@bWljH z9O|U2TH+*C1`uf27%UQE*!JD-@iXQaL>8^?%GzH#ii=yTH+llNTaj%2lTfp|(lbmG zPp;mbTaXhcw~NZev=kPGB*F@*eOQX83^}>7s6KcES!0iHNk^({Nlo^$cfo#Af& zRFWto1T1gGJYqYJ4<_HT?*F{|A&Ld1D09ZfigspVD8av^Pt0O}8B`X1*XgkpF1Wxq z9%w-bF7R%N3pr4OAMU=4(h_0XGx)%YT5@dX_$I-*1j@d}Dh)h6KyuXH7dDJm>@xpL zj+byb6bm4J6`*rTmcV>mT^s6;A*%>0$QUl11Qp#x^V^WzSGRE<65vi%xKS+g;tiW@ zIup0I8rXval?!`z$y{Rq@5W(a%kI;2}5( z^wU|(m@_xr_wT1_=}Z3%hlzc7ckH>%!h%ER!J;eOR3BW=-dSNd@0PB>GO@O%f>9x> z0;d`~&kkgvdt>_5dGF`eDQAnqy|rzTlqNp^*huD+Ox#>E&S-ZgfBJ1%1w?+Fz`T4m zj9WA(Rd~Nn@v?9)@sCwf_#}IIuWQKj)@I&g>i)A1a~2&BohnQXqxh^2;(pb&A5g7(~>F%mQCbgq(o^yYOBVGZcx}zxj7#I%c*&8 ztYu)CQqUOUQeU%UY=UyROaZqjMl@E?v#nRrer)i>BDZSRbv^tec&$IEd$+_C#HC?| z)vym|g&HR$6&m2o{X3^+6=b%vy=_t@gER3MNyBzh*#yUxyeV8Ae@Tek?b>Q%M#p_i zuH|nQ3QSd$K<=4_zSCmZFF(OP(A^T$P-30c(mj#Zpt+}{u=5Lt6c-fK1yEqs`o>e| zF{e#XH^wpiVkSd-ecpNuEeJlPgS(pER0TY*!!uTYZH%%SarCXjH*bLb_2 zv_MmLqOr4)LqLJ*=gkZkJ+oj)I?X)=g~dVM!AnMlwvMC85lcIHpy>8ZKvvafP>9W*2AXn3lYc5=29}HiE zI_B1ghoD)Dv)at zES@rFS-}Cg%RjNRzAt@G8dY^qGS4X&vp7th!{548=!$_d-{Z6$$y*R`LEB$rFXd_WDPg=)#L!Y3FRK zY@KGxn4u>6)2akT#b-@-`A5Lv42FQ@!S_Zr^-8?Nd8+0YVR62$m4r0aCDSBVx-0q9CUosLJo$)rC zH{~H+9^o3_j28>4n7;FYVxqmZJ}jEThDst#wLBcHG7>fv%Um+k=d1o+K&ftRrngv{ zC#$PI0nVWZTU{nR%6=PlS|0H2@Vox`#06k&%=sr!pRsJ^AyUXhX{l0RX_cIiN&D(I zueHxz=>#p|4d{nqrs9q0Z^UXPl>Mn)zjNOMGvC|lJ6+-a%id>{4UAj#{&_bp+?UuD z>8MQb%~6f|zTD5SC%^U1W;yZGD`R=H6#q1F0u7;VooN|5VwZVSkd#mfQ1MOVS($#P zA>m;XozS5GXvI4lH!xf)GOtCJeygDSJ@SV!x^1tR&uPUj_1|awaBYaH<@G}08OIcr z`(Xwby-Qn%o z!St4K_xgc?)Vs2-0-7>=h&=k0e7`xp>m05Xc0AoCGsnzF38|Y^45yPQ@AI>!u9RVq zgFO7Y3XV{Mx&z`Vj|5*%ijkkz<)UXVt3&?@3%ssal9~J0 zJ#hTSe^N&Nm(YGMnfQ-N$6FnHeE*20TB*I8+`F{C@%-N;ZV2m3vj1BDyQ2>O=NQrd z2})Mys9N+(mQR!`8!;i&1hRT7@H9n7HSGoY8T!W&1G)iG$$6E9t6I^M0V?^6y%wir z;DlEL7-Mf7pg_;U^U=)b%VQ>IV`>jx#>13~?hTgsT=`R?r$*uUocw5KlEq;+E`J6L zjR7nMmgpO5u6v7SrzJ(MI%w@}@|#S_7TEb}#ss25%;6A0ha1#a0d|;=*zKC7<(1Ry z-9}n(w}GczwG!XkU#AY`TYmNB)s7)Kvlss8F#y_KjNO8EQ@xD|40ipC-8@MDumU(r7^6)T%tQrD=$ z&6V%tYZqj|f$)B6Sdgk5TevZvkQna0=v8z{JXHnss3}CG^Wlk~jbrJ1@-(;byq?jEIVZgEoiD7}ELhby@{lBCWS|+d)O$`{AU` zsmF+=Ep53m@0-WuOWuJ9OnsD3aOq?tZS9mR$C+~PRdQ3gI!(yUFqFInXF!4q^mV-m zQ2&Kip<866``UVCQa@moqxMsV}!x(WlPX;!DgCu|^BL8D!zb5H&ARwU{ z5CB~?cjR5?N*v>pBsGXq9wx;-N~D*`=MFsIe`l%B&Gj@1z`g-ZXU1ohQq*n2vH!~> zYjce_O@_ebdry-xWAR6nF@;9+5K(~I-5&-V;-h?xdd!<>BiP#nwMHh#Pmef%AHS?h z5UyP`gh7*41IyDUoLqMIWKkSrx0cXer<0#Tjg%oD5totd9-55!y(xc-YOdbZFhdXg zWX%NpM11gL;3+3Qt8^u z0V0J?Hw2D^G|Sjz!_^TZTYy70G{UK z2B|H}AkCe}hlA!WMxD!dGD-1WdlT}5?s2zEMvnS6gKi}#yg=?<$hwTYd!s~xR@ZDK z(%50RbJ<4&3)joX->*XGgZ2O)hc0NRPWJmY1lqc4Zy&|IK6>UGiZ$h&7MzU4Y;>dH z&6%2{AT8m>-qxK4TZXm#9*8KjRbc7V1W!XJ@gMFlL3`|@Pg{Y9PcNtLifPG=1nkq*yC#hW zK@l^kIM*VQGD;r{f0dXL+)THYUpVVL@?N(mVtuk@0)i}0pX%!+gX43LE%TKi`%TIgl4C~;z zL;Y0C906~Ga)Fv+)Y#BDVnRANipsNY@Tk&bOpEjIkdS%5o2yon?e65ad#Ub`hH;Lq zV=NgXsk0&bc+otqF9$uBQ^nOrW&xc^W11;U&?UQbpV!^+DwB?=ki7R=4166Hp|HKz z)itDqi-#!gorK8O$3+D$ps~D4(Xdl2Q|ZQyf%djCKy{OTt#y7xzh$Bb_p|8!OlS_! z<9Lv_{|M9hKr)5@VxvefcMsqgtXgvc2#Mt z%5RMWur}x51Dl2V1JrQ{Zrt_zqq(qEg} zgwPj`($*VkD>JYij9t>u#61vnHgZm_QB~MA8bUuz|APoBqv(?&n81Ay;JppaGFh zMRm6M2q;ll5GwX|=b=-jMc>c-(_CT2n>!DWu^ejX_5|Bqu*zc_iHX_H&8{E?K; z5q2wJZ~WHCmrvK>gWm_9S=qd+v+rNOrAda|fIrSB#!7OGr{4EG9DK3aZo3xerz-=h z&lqAMb!BjvuTN=5Ke&NmDEip4)5B%0{QT@P+yMZotH$xJl>2y!H#;Zr9KX~Vd zrYlR4rIk{tRWjRf1yf$$r&nl5T9KM)EBoS{U%rl}fz3u?z-tw_ZKn8M=6>$g@$S6{ z^)6Q2V8V`4_VQ&d4QpY;rS_10`dr1_Y)mB|o1aA`WVflf>KA(9OeuAGQb6>)QZyWO zPOLa-y^=`_&mZlvKw0TR&wy5iL;5kpMh=I$$e1Ob##b@7Dcc|OX+@wRWmkIW>+17C zR5cL#p3BnM>}J4ZaGvLrKVWoCfdz*5LeN5D6X{3YO4yZk>fYm#^xw@~QJXOT#!TM2 zS$o1pp9^x&X(MMdDZqB+@mfAX6Uy)xk$FQ&%V2F5;L0W@Y-F>{t8hd6;Or>>AJ?<_ zI@NSqh(pHTcswz4z1P0eU0UcgdrwwZmTVwGkXD?3%E)+&uTzgmEd z`=+cDb@sw*rLg~UMPGj$0PeAz-3l$g@IL{XupP2)QIH8)(E}<e|G}gW!OVaOLzpWY`pDKbv`1ubF~WrDrd-4TyO^_NJt5+q+tBAdB8OBf9QL z@6OhxXx8zM(hpVmq-gF$)Ot6WeRH14l@)UTdDA&#PD91!Aa{v!&J#0;^o=WYMNRAp zIh_g!Vv@!&#SjT7Q@&%Pb?zNq^@K%imt@ky=SG8eRcDD_cS(Csb1$UCt$qL4M`!R$ z^~c&^jidoc(kAN(>Tv4*qCyFU@GinA`VE2DlX_zbe#`1X;PN>tt8L(DOX z5}eFKei&wfm=rm-z8UM%>vl|BYK{>!s+DL}8MkFq0|E1m0!*QHKPpb2Xn;;8yyTsY zme}`LZC3**_|-x3gP$S@XXk#YpNORSf$Uy(;HoF;wZo{9wt2Iu%|UTf^{XV$8`1(& zv);Gx7BsvmcGK@&XC(ZPZxoVGytn(iPY-JgoTqFd&7#%xD#rL4WXln_tgy{YfdGaax)`o8j4N z+S0(r0rLjkC--&^$Tpa?55Z;6t?Kb)O5PWU0=pS3Swzw8vxX@NJG+=0m++`hl{(+i zD|g$RPc9^hIRr+-ZFV6Y6Lm_IQ_Eacdo;J9#pfAIN(Os)$rEoVZfQCe+;qjz(856% zzlEqJUp57--x3;>s}*kERwxe|EeWxKE=>lYdJWMBhf^n?_?_2#%L0;@8hA#FDUbM1 z8A;y}2LwOSPVNjg-2mLpVkbGs%fET%r%0pB?Smwg6K5;x8P36(zg3pjln`*BK~S97 zrrlUG?P4pxtE48>+#Hmn;M+AgAsI4tJT+~5&fyc>4!txmiz`J`iy-YDiiD<@ue z#!h=F12f;?7R?`1RuDAt;oAv@*)RRH?lZ+wb}IB8iA1wZw#uqb&m z8s*0Rp*DsH*{(YBEyt3_S4i5wLA-%vbmjvrIKG)RyR3c4=5mWkZcEb4bX^%++4EM= zc!2KZQq$N#WisS%Bh#iEqfW*;vL2&VN<#9?a8S7gukN#NHHiue4;b426X)$)wIMUZDc{0Pu^Jt?Ktd(~MJVq0S23Pvz;I7~rG`{Y%Gu%Ydm<+Fut zh~N?mluBAo3v_n*LT1_ByNDHitoz&Gt&t7GvzBS$m zrQn5`$N7uqE9&@MN!BLaOrkV1xH5z~0jL04Q zsqB`l`qeMhWB9FQj5eX zU|_%#WfEQ`giv!5ZQn0((~qEwkTgvkU{Tre|8j^41bs;%1g~Ttx^f{KC1sFaxkk0a z^@4|XyuHV0IqN0@d0g!asK<15F!mjsNu}u`XF_MHbq&gcwhmSc49>rL3bt)~ozLVd z9)K#5M9Mriq$lB&kMcxvTWlhrs&Si>{t*Gx{O*%f=ulPhK zScekiKC;@nCH-k7{0F40-*(IkO+P>CWG;K-+TGIK-(Z^gp}CU@)K?byckxIDjdhL& z(tWj6rPuO@b`F29Slj0%+zSwCfj+msn`Mq!y)QTZ+iXqGHnys!ZUgvW`uI-}lvT8e zZYQ+EQtFw(Ro}9(YkU2zr>|xBq@Z-BpXAR~9@$X#6zw!zwc5Y~jW^|k6B-bNKJ!7Y zM9Wi6VK-rl-6-Yi>>AS4kl{bR^Hhwc)b|MmK_%f0l`BdLDFf9E?#tK|OvLm^ttTmR zBUKV3+Z^^SyEtl{`IOb?%cdL|^OuUpc4SRc9w1jd@i})2VBdDcTPB+b>N4wjixruP z_e-5aRM+Ziqvw$mVV}tWe}YrLgaO4sELmu2a+F@=QX~4?ACa|15s!Ke{l{N&6&jVa zNSmgN=Bn2-l0JmRWIRCeh}?OOUi8lZUVnJw6x72xYsd5D3F`Hj&DYpy(|a>@wVBma z^TC6W2C4y#e?PBd(~%9{1s7MA(#o|K8+>dlE_BpT_RPTH_H%w8F_;Ps=gZKsDCK71z>iqtX-Oa>v)aZs#(M9nq?O+}mX1?S|R? za6-OxMoW%fs@my2|M4N|O3h5&J;Iqez~%@pq$DZ4NHcX72mg#SXWj^Fb^-J#oi+t| z6fl^~B>kzb>3*Ow!AOKnd(*$psY-G(O=_I>8}7u<{e1N`APkIHY~tExh>yfP(@JC8 z4t{X6*mnkg6WlQ!7-cCg?WaIaQ5Z@|0xLI&)|4glOiGwj!a_D4r88wPGP+!-85@9?}R07)iD7@yF zFg^mrFW6wA6)1wEn6uWh=3EA@LlGm>ju_-fHh0R)e*n&8gt5CSN_6RHBhoF zWx0An#XiX_;6;vhVeZ|I-Ie}&fqetxQh&VF+~$K{Zo3p=E5hO9A^d-pMBg!&ppuHS z`)wFTmw9s&4P{I{6~3X2N(BCh1(|!IUtEuEJ(v{1ZM9$GyBZ;Qb)M00hSR3TBVxzN z|4vo5cgOIp*34qB%k)msUc>5wd?r{Sg~uK=rxa51g>$urjkUI6IxLQrtr@A zUJzIQs3J&( zS+iuh0hp>`_8w&CRe?&48UkT)N2rO z1PW>tbS`=3@v6|mh;e=3?dd1wB%wcqlwaT2ptBV(8AXH39|tQLPE(r7s+prP)-+V< zDfFA?%1_L{j&wU+yJU2eva;O|Hhj$zM!KJDu$Q%JfCnsTNsfqHO}?`JhpPPp9I$x@ zyzd8+&m#&Rzmi@I$!=Yv=}gT)l#Z{}WPppDp_={kjR@jo*~%UNUMBK&%#*;dqKea{KqOOueVJ96qVh|$w+q_w(s059_n)_y@*2a7me(5@8~Nx& z9647dDew4QxxBG5*@xa>(6Ca6U*hM=0Rf_{lXEl}A~ zT@7r>w=!kV)1Qkkrb^-A2}FY#mX4Hn*uGh9smiPDX*|#KMUCA295cJagw`MKro#<>kUl7^RXY zB>1>;h4`_W9sg_O?7aEZZN-SekK*WSo6ihQbyn!Z?(`k1r^z+nwQJOQ;AFUB5iF}4ijy6=kf(qPqMyx2fGz=mjw<+=K z@~Ya;kWCfiIOs8u*3h)T!QnHXc^aYGYPIFqxa4=W6#}^)h+CVv!6)>JKLMm-tW`=d8i==f>F;v%Xd zQbWh}TT$7_m9#Qf0KUq+7j9lcPn-1SZ_dNblP%?-{drnQhyr+T_X3tvEy@uLK8wRY zrNzy$Z(U4WiZSW@5jEZPNZ+6qIiV_B08m-zO{{cjzC$7*(pug%U!;i6qgz!F5^JA_ z_)lDSrYeDlx!pTBWkOiQ3KYLAQ)rK?OX;d>HZV>#b@I0?>Wkf}(=y7Yj4L?ZQtCYr zZ{mcSxSg`oaaF=^<|Q2GX^`CE}cQV|LX05#!f<3|0BL=V}d))^9&A!|x?Xq_(^??o2I| zY2xe*M294Zjzk6C6!uXElh$6^RiaE-hjUGL|6c4ltNNN3UP{P&lkER-HaJLpSU7fo zeH6uAl-PvJ(9lRC>-HWve2G->-!oCwv}nUg)N%_fY3(K{!zI=Z@c~|H&apL*Hle7^ zrl;{iNVI@mEYOV~G)Ov>0y4DzOQ7+pirze@RHK`ytjcfjdy`+^Oe-Sl!EBrdMLv-U zdPlP24Xs3PN|N1F-nMewVYqZ&|IbBxDsHa|?i4_|?8 z1%G^NYo>f44U-p$dIHXMRdVuIT7LoV{l5G4#_!DRjXZXQs|BSFuC_2Ryx5%W0XwML$tM z(qwdI=lH*K0bo_NbfRG?$wjm9O910+ya0XD(}wxg9%SE4p8rm7i*i#*goJJi%Qzm6 zh5hFLXVjkyZ`p3st4ZDY@vWxSc!W_Qk1qU!fRWGhfev>Mi+2e5z!xQ)*B0=XG)yUF zyhn6^xwRohsIhDM*fGEIg-MDoAO=s`i5pX5t4Bm4@j?9=0@gN_^AX$@FJWz788M_2xwOolnl?}#>%R(C;>XIdJxYb zAqc{9P*9UdPf{FxgPwQ1=?&~jt#pYlh>{8$GAE5wd^f?#cZigdl{y<0c2HT3SZRUF84 z2zdS^bFF<(DGc26MUApl73K%&wwg8EpIb!)9aZk1VTGa9KuWQkhquoI$`49B2s^dK z`d3sS6b#3Dzg`hdsaVXU+n_KuH2i1U`h=>S;YW6gQ z^5A~lUDJf&>fWX83)6yvf)R};hxCGXsnTHUI?yIHs4RO4! zB_So{>(xj#S2{jBTPoaoY(RN2?k)`lwF_OXal8~j>86vZ2wPsZ?esPJN;N02a&mJ- z;Zepv$nym!g%I@7COtwIB3}$l+T;)dJfg(ochq=7V$VyPnxX35u)PR{peDPco_KBr zrS2{k>aPte6s@@*R|IaOfG)aJF2sYCOz?@Gjn1P`&kXQ%l-zYvYi5SLzk$2Edqh-} zF@=P;*4EUBPZXl4j#aL;!9u+ac;qs3K zH08bvx~Uk1D(gF?>wKf?qrOMq)2ZEJv+ORVqiUf!%7I^qrshO?v*o@pLC~K<(g}K zgmL6s>wI=g>#WQfR+XK~0t? zS(aC>QfsfxOLLE4&I7Pl1n*RU0sHU;{_o+gXnHeE71MZI+>}(k)CDY@n&#ofRA&gu(~vd z9f#Zi#gO{^sb`|{`XHPN*gfD)9)@eW0&yvudz3c9-tlV#_)&U{=L@;av$<6%m93I; znAsfRRExM?71DZ&n}$c@u1dUCciIelB!x(kO)tzjs?}>3=BQrhjtZ@<_S|V)d^iE3 z6=L4`6a#S@UXv8(Sy`C%Dp+Bo3LO{`@@$(?rld=qX2P2pTo;-MFHX6NrFwl*EgF`M z8;2$Qh~jJC^sg7eni+WbA3TsSf?G5Q7ypSz=-o^`t5ZYh?iE^*~+b1nSQ18LnqyTe?pg^@4SCV!a-&LpVJD%oC?7W=_`P5nAm zK7pITn(m3P-9Y+5zl`U=wIPYaJHdMpFR7W6R+uWG<5W(usVwI=FXuyKrmtc{4{#zd z9$@Xa@-c1yRW#}vdkmw~dtqjpk|WF%7h1&p3p_DzJyS=BBxwYB{& zO7lge7+I5l6#Gqr^`5HENJ&aNmY(`(j8BtVmn{`JIZe(_6K@2um5v$DR>Uh03&%Z{ z?EuHuU@we2P+dh`tdZ#==2-D&eJR@7?ZrNRx=yPn@rZ{<-fQaq^W|{=57igrD8v^l zSd2}vwX6&htlug6TXozqO6i#08CCGJd27t_dxf$W<>VeKR@8nFl(;s+%G0Tm<9Wy@ zy5KP4>U!Dn9SI8ycPpL4UppHucjp#BCyC7-^Y?g8&aPbKKV%-bN8ZbbQfQgF-;vy; zlIPGJHWNy@4cBFO;fxJb21Ss5=1c3!9~eK+2!sx462z0UpU`;|n=IABwT0rP(jA2R zy#LQ#kYC&i1nBP0YNd&spRyKEvQofU$*WT7bm4hVdjNIY5z>Fkofk5-B6%<{OsW)q$ zUp}w@G#>+fq1zPzSFpBT-g53#fl3j1xs%i9AaD_oq9dQ%*T3qRso4!k^JIsV9YU}s zxp6lpV9^2m5Sq#h)7H^(8s-#1Ja+kAc6~Od8L$3@mWM85iWsFbU)3H+Rd=?oDXhfA zYpcvIR-(xr59X-Xx3v-O0;XqJ1abZ~y>Cpf%I1bkR|M-iLSQb2r6W@Ma%jM`m<`$w zl7Qm=I|-r%CEr}o%ZU3la9xW_3Ug%sr%9gqQj-4Sxrn+VCH`UYfm;9Lrkd@Ceth2Y zd>vzG#l?85zv^)F>u(4Jo-@8GFq}lx*S{}op?=u)mG48d`EHW}*vs%aC-}%_IMY`B1C0UyhP_3zQLfO&ElISsoKb{NT;}{8-2I@HbL;p_LrgrG>5^0!*md9DWpr(C7-PY_M2|va@Ap; zhr-fqxTuZ6O8PHdUtW(o491xpw-K*nH%Xy8`midt7b{9F3qE7?525CQ)SV+&uB)@F zKF$b;{K$N7s3VItZch@r1_GVi_Ss2%Y#dK}k0SZyhw^zS^w5Ew_u=b>Ut zm&65Wdxg=AF9MynTJHLf&xm=B+u%7!77^a+5Dw2edWtgX(21NG)FkeHDXTk0L zHgu)y5x3;s&V$Gqwnbh56|?W01z||QXt<06`@8}vmy^?r?cNE#?#Je1Wg0B@>v<2k zEhh_08TxoU{tzAiM5tfNd^;Am74lJbD-d>1zj*wXc<)shIa$&kV z{>}mg?08;oBb}DJgk&=H@oF>gJMO%VJyp4^uGW1Hd5(R(#<*l`^hY?-rRiNS{9Ai4 zPVhEBtOsC)soy06O)QQNb-m4S7f<&A?wwooO?Ig892iF;LQh3yAU4Bm*9RxGBiLi9 zt3w#M6x|&_1<{I(c?HmcH$B`fPq(iruEf?3o}P|>mwLPu@Pbl4+HPsTY`$7ooN`Vo z{WTu=h&7IG^$VXW*H5%yI>&6bYq#HQmLezgKoM8m*Bzn0)NSsa&Qi-Cb*tm(MR1aD1i!$=dvCdRC7kN?=C=-|-bCa=3K zv+d+d?}v%m{FKKl&@0rSyY^|Y6j<|;7b0lr) zK6sF-ddc0`)<+!&jhaQqnFI{kj6VZ=YT17JBgAA4QVSUwU<16*_BbMxA-H z(%ror)w?`6+r+DWa@;ItId81pv#iyi2L}1+=i!WTo z0o1=>1(|~(MjKdV)~qIz$%lkv^x}7ewU>#<3UZ(pcLA=$>m`co_O5K+`$hfv>zlrP z#&y-l@WqXKS$EfjbK}VkQ*rmZdKK8f3@WnCa%Cw25-Z-ik)n7n%wF~fwt^V4o%q17 zKn&|OO7bkdvRKGmU`%zPDA{9* z)Rw;TTVS8*#Ntl!d^4|w*ZZZv7Im^P4R^!{y|*jA>ySWrLd9}QouG%mO3G!+jUh}w z!)P*>rXOpEzt}xl@cP$D3&v7NhjB~n*g`RDN2hU%a#svwsT_=dx6AIb`mp^v;%gHP zvVI)#(eQVo4zvmZspiz-#|k#Rdv;oP-|9g#?u;a} zk2GoAwQyPUYh8CvFe6IsH{>t}Z7dsNo3m>@X(tpedQ!@_5^=<0pUh5+YDoZ@7O3*Y zrV+P=GOqvbdVe{&$B?8dA?|9S42tLt5VP4i6(w4DkJ=e`dYy*SrWknD(I`O@S_PHJ zK+poqEZn#$bCPe@XE_p#R86(jOEjkipv-TaznAeillb;UypvO@xBMb`PL#RsWR;Oa zlF>u6%Zj#hq*`c&xLWo_V0tVG-zU?jZN>kXiTzUXO^6ozb#}MQ1I>Ph0}w zP)yAI!uHu|(}NMm9ZC%BB`?>@M5Q7Hz2*CR-eor^U(?-Dqsw-x^D*t=Vg8NIKD1Zc zdC9-=r~%1&*_BGASi>K&z@?a0i?F9Mp%SGcVU?!2E`(Bwh ziA9=nm}<2-$fTO8Q4@LtuDo&4%jLt$2jbYE674Pu1c*V@Kkjsh-N5w)mDf$2nLEY2 zFV2*W4LP|7sk&xH6C2G4CC0Kbd&)Hq<@UDN^w#og&6bVwFu?s~xeHs?vhpAX9LSZT zmKXGEbyye}*ivIF-&@Fs{Kuw8{l)j-ba!|#qJl%1S8=CfH&W4l3Z^Xwk?<(^_o7O5 zMp)N!Dp5W?iA~35=wXEKY;uy^)-Rt`Q@s1 zC@t86!?lq`^qtz~ah}v0Cu(G;?$4SU(Net>v_DhYo2-g>4p$~D9D2MJOIwi6K${KR zjxAKXu*@o)`4>*XlR^@^^>i_HXR~v0zd72+NU>e&f51YvA@TRe(P`O@R*y4RtyWJD zE)F5#DwF4n3TX;xR~@RxzyhP@lWgvDWkt8zOejG|7jrc6yIUcESt&-U^~$|>@6^!k zD84tV>h0cN!S`3Nw?UmbZCW>++&-XV$RE-4XX}nS7gIY)zFs|fM^2u(+0LW|*yrc= zstukK<8PCP{R4qblcrRBQhp2yQXyyZWJ-JfL!N*05Z}h~Lu{-Hxkf(TND$CWxabOC zONzr7=;*%b>cVnZFLw0eN}(C^G}Naj99W#kwf4 zD+X>FV6 zJ+}tpGFV^@KQ|>93vWPMJU46@!oOVrzy8m&^8fD857RJ_e?h(#e(k6#oU@L_4f_v- z@)m+RZAiKdj5soaiZJ&-6D_2e6Xh5HnOb%fm2D_r#qORV)i%)G5G~{nf zHyIYKc)KgjHmuENgU}(4SCloR?7M7|HX-`=F@!^F3RX2!kg|$(ksT=}c1mOTLr?;v zyy0rTQ&C1{^4XA<_SEMC6x6_60_6ssu21@;-G5?G1YfLq<7#(mj;`b_>m4}Y0+z5J z!CtrOFeFRgfS^S(e+KLZ+_{x7`d3zV>2O?c|9>cda0&!Yj1e%08UL>gWB&o0Qk9sTjY&jBpeljdmO<^@S1lS zS_gX;pAClt8Rl+>lOIkVqru?3z6fC1+#Dv?7ba1JI}yc0cnx_)_BghaFHY1=?W~A!e_5U9 z`rYF#&=fhRl=yIWS*bHV7&fmW zG#tcJpv;%cu4J7gc#oK!=2)-F;lvctFvLH37rXm;mO}%N2&A6sX+_}OTk`b2hC!B! zMCw9~M-H0a<{y84S%7nivL{<`P#s5@ThjwuA4U2SHOKnf`vBj%GE1e_nMGHa?eDf# zABEZ&RSE<0jH~lCJkByJ2%K(2MFM{4;DMmM=-K+KCZr-uuBA6SFn^UsrluMICkMy) zla9KFC3!5keG&&GeWwHH7rc=eyFXE&agbx(p(i`qU3HW857jSV| zb`xAbOY6aPJWXa4F-^3SD<#}}DAFOUxw#%r-(d-m)-{w2`g*r=z8BVTy3v8t82YwOMtjd+iy53ky4F(%g^y;Cd)SFk6*j zYcL;U(mRA`MO>Pu92B-Ysm7oC`=|QiX=dC}hp(*35iVu@N0a9{^5c0bbt4CPr6A>qYu+3Wi}eD263v_c=wT~e z!#)FM^#kFew}74wvmAn)NdA2U;rG47zk%qD0(iU6 zE%X1yp=W&Yl$>k6BI>OLeozCjy zSCSnFEI~wkAxQD1>Pa4#3p!s0;zfU`{W+CtSCa;0N84VYN7bf=JmTaDhn8{;H%l9m zisND3`oK=&d9BO)c)c-OXG>vbZhmr6>O~B5ypt7aG!h>w4pW1Gz4Nf3z18ydx1GDQaaF+B)timp6*KYfd%d=r z5i;Q-=&VlvIFWp^)6O(V(=5(WN``~@&CL>Ju^LoG?1BFViBCF`|Mnw^*S)RsD`=t4 z15HnF@5zm=a3sBll>1OyiN;j05}9O<^0d_o)1vKjU048)sm;M)wOoYp%R&5U9mJ62yD+Ax;$1 zt>*z)es~Q0qmHaAu|ooB?4lTMmxZzw#q z9~mgD%-5^l^ymSzN`qRm7WR>e@v*8Bzm)VIv7=!G4b;iA@4Wi-IM4am+f`fUHSrSs zv_X9@m#}dI1^Gh-(%bE2@8R`ymO>9@o4(KcdPS}YMXu_!UO<#yT?Uc~Xbh`loZZA9 z3p_3;=5gQkUa!}N5j>iX@Lg$%LJ{97-veWdTMM{ql+&D~?Z#e?Bx}1fFbQ3y$xQbG z=}(BB3T`jADM1}bBNnjBa5j7a%gtV4`W()`o(`N(QlAL?9=6=g9-=}8x{V(%KS-lq zf18kMJD2w>4K&R~{+A2z1Pc$s>$XpSdfg%G`DWw^&*tEP;nw+u%c{UyJ<>|Ij=N~( z`Ou8bB2)}oO?;h^cr+!M`-B55?lDRE1{50@a}ty8 z=+-CZhV(c4=ig_K0m4NGs2<*YdO^Om80Wf==UOmfqtfdd;aV7il72kh>FdgST;F`` zes873rxYlwPf}?u(af(;wSIg*26FKj-_zsL1l!^OEE#u!`ocxlcL zKR5zsbV6%;<}nCYcUkFt{8+$N#&xw?c?CB^p38LJfaZ0x$!7yxdhy{z!~Jq%x960K z|L!$O-Gaecs}szflP6|PNznV@|}IEML6!JN)z1Jt+u)Mq(Xh{1;1yA zghk`^znk7KeMq|?Wm>r>c!&MDTP;b1{E=Ym1m=KL*30RNaT)GigmVcJi`n`mt$++n zUPTk}v%XYNSqFw}-@N>3POR*ruXObQnk$g@lv}#G#yGex8yK;Qlx&gk;37 zL}y{9J#QMX8Pl2eFZ-4jtXnN-@ANK-F`}Yw#PNDP*V{ZJiSwF_NLoFs@gFFL>MkEX z->XmHo)qc7O;tvFA*R#0e7jAAv#C@zmSc6j89B$8iA|&pr)zJnwP*GAIUvESjyIY+%kz>dQpe;wOk6-EZ z)J8rs)gTP7`mDyE%tgZGoS0j^?0q_7d%v|^etG0prUFW}JVSMv_JV8HLEQ+npZVe9 z@p9xzzr*EDqco*s)Y;hfaJw>y=&1c{pK$d|JS%j1S^JfAYk-vf%%@ThiyhVd^6i$H zQMYTt>$OETt-F(#k9&m_WzZ!b1RQ&ccL-tKfVx+rQ4xkCQiB`W(CIPuBa5z)eWJb; zIEOp;yd=ACEKvpa8zf-`@eVW)7kl}(x_pE8x^QLWSKbzpdZL?NOkU6+@i>=X^m=+I z81cNT^&-@)v5;53PjfrsdK9I{PlyKSlMA|g`8eT4EaH{L{C?rRXL0SC zZ%$_M`zmQ$bb2{#EXwsjspGnj3mS=~%WE`&NAeO6x0?Lz`J%h`-Pte zHf2&+z(U|){lBw7kM_a1%^J2Jz4zqAR^=K9NBET|0FFaQI3EB(4f-UZu+RPh4f}tc zgKz##e&K(;iy#w2{r@kXgqrdW%42DvH8wcc* z%K!4J?tOYYj<3+uXq~tb8K<97bkS_zyUfgnRK0J=%_RiqqM@m%?OJ%2B_uIg?;|ep zK%{_`1n}ou&d(wW1--fAak2d5sr z_@0$8*n8OPK|L_(mSaJx+VK8uHz0t=rM#GmMo8>6E-l-n+-C}ma*4^oSA)#^hJfBEpB7!i6+58g4oBlZ}jbzvFHbgx2j2l?> zcj{b-+|aS0TBZSYn?KX_@D=!_00(!O?X_@2nKqH~uiaGKffR08mE*7IG$lWS{b9Q7 z=OHWR+6Q2idWb~B~wrW8D+VLcLK$FXr4fqU8Y>r6zE zeHwD5t39*sr$bW{d!_m`vznBqW~v-959@zcd+OOB>oTdlxtqcqj~VNp4tLlnIS6Us zH7WI&8&9qu*|TSLdr(W=8ayrJYLz~1t4mP}U77d5Ib)hu^*wA44l_67{_2Trs5LXV zhm?4eSe%jsB9tbPWnM15?{OGN@pO1?`4M~QWT?psGO$-DXK3D6W} z*N(mKMfL8LM^StVz19;B;PjguW$H;p)w&5`S^m&lXjVtw>zAc{uLD#(!slH%qA~`~h4Zcq8|xtwaOCY5~<~V~wd@N7M22{>JAkP`W~v6d&6xUpE*kh~uZPT3Y>l^BtA5~M6rUTV?E#l_S&kdYMqM=)?m5JK2-r-nvzBEJnW1T+7Y8<5T?3F2TLSj$f*F4 zFvrt21JbGmf4DnY)?_Q8LHqpp&)}|(=YZQ}4HljN+N34>M`IvTCLc*3+uxEyI`K(M zcA6LSjNeUNI@eIigD>yAJ${0vPr1y^?`%%4rb4Okc6gpEaIsW5$MMw~SgZb(Bjuf; z!;xVZLkEgBqf5&Z5E4 zQ?{b+e|*Bpo#q4+1e+k}EQHd~9eZO8o3&;98_ik#{uj;z7h4O68s=JCh*xE~NFCx{?#vX5fy&MOKaW(idr{r+M5 zfo>gxXO9+k=T!>I6uQ1R!%ZR{>NhtVaz67>7Y^pM@;NzrgrFBqDG^q#AFz>12j5ln zHD+_FmEqOBO`44o;3C1oK0E_I2OQgGfjj_frD#Lh(iG%2Zx_*9s|0o!jQ=t)?kix^|boI9{3eOaRSjdzjpoRq`JfU6>_wO>qS_K zX+alxeRZox)J7@EnjZ{+&T1*8$NLOJ7?vVR9e=Et)berh=UX+Xpt`a7%!ttmI5 zyE$FAKTL0cWW^?K3Cd8ODh^Ayc6FJxAT@g%Fi!^_j!c;pj*@4I2a?ubUf4DN3UnNWkkYzY%CJbjNt4NPO2Z1=K9CcR<3o>`%m`uIG3s1l{6gR;(t$bdiRNPQC=$RR}g<%4BRmh zofB`;&F_N@(jP>kv@AJQHOI8!guyO+4~R`KM@RQj3jP{8z>#V>TY<6zruNypewS23 zB0d6az0}Yw)?+A7y8-^ea$~vNU)dh8z(ykl9#Pid+m?)E7ckzy^5z>Mv?Xc#GwCzQ z!#0d^ZKo4h(2^0oBDl{KPnyF$}DI7cqC4E^-p5S<>!OJ^L=FR$V0 zn?TDxz2AY=wl#nab_7Yw8RAah3qeahHy0-(BSj;sUA5oeXNMFs1w{-zP7c5pL9AWr zxu8HQ1{zWrnEwr6tl*9vJTq1h?1o0>uKjGbC9Pl*4+5$F;DVaoq0!H2XmIeD_|sIY z?VM*)kNY#M@gkLa;{`o4rgk%2gV%o9~5rOG}nUWnM(NhFM8t;_< zdij}wFjrwAd`)ST)9Hoadpt}~T`vCC_IZaVzn|jvVSo@qclsR0lMJGeq-FBH&ly>m zwhGCHpp0vbl=@&D$)G>R@T@5ILB}UoVYgAt@!_mNV^#~dazpCCwVk+$diU&m-U4vq zc=@KZ?s&;4Ba1OwEPd=f`%I@e zMpETBUare@p${lUJ~YfDhN?uw6uVr+hgmzXUDlka(-Ri! zOa7s`te0W?Hj)5o3TdkY`H}tIu6kI)st2Z;o@Ns}>Q3Aw+f!kd0EQR%LcI56(*4*- zy~8rU+L4^)T0&M#T^F^X{@Y4RAXTgCioE`fH?nVV(RI!N*!4FMK z#T1T*`lBACBWBFR9@$!OGlh>w`izG+9iBeAekXHqiO|rj`j^$SDgPpLt|cWzD?*~D zVuEvy>QCTW87IPJq(gz;&#|VSUWq$A8GtP+F|dFPxI{|_GdQwk1o|ZeRVFnV2VxJD z0vhN)!T!wR9Ae2%Xa-wt(?-Hh{^;hsFk+iHlNm@$$z2y}BNWu>baCC1hZnzah$-fm zl{Ue2Xr@~mGg~d2-_{CVyhkqDEbmySWB$vaMn_HT zrhRZDSGS56pG_J3kvO7X@d6?H5HD2^o98scGLp_UEJYHBi79e{G!DY z6!j}wG$uYq8jl@h__8Hsim!LciX+~}q1ydy5V}NZ%6M82;aAW3gHGg2I0iAsajwwSJ zyDH2Y7od4LF09ElaGsL`U>i4KNi42EostbT&*uTjcNpGjVc{w|$vRjPq0&NltCP}f zhSlfH_fB|$K=_4Wj{OZSX`-uPemmZwgeq%M0#epjs7s8&2N7<5uI)ZO(=*C=ceZSu z9wlIMq!W0T+Vv6A9ulI|Rx3pM6M$_+9J9pbcL+sag+$L6Uj{EoL!pwKD**6ytRIll zs>~B-ntHZ-u%s5RW^phumeM3EVfk@Ilm7$rPdP$R2j3p8r^liIlwZA_Of?LdZ(GdX zqj?2P+=S_Z6DqyTxw-gMimuq-`F4h&{$31WHP6KC?8rU|H)>)uzUm!3jI;N3bg>Tr zXtVmdEPa&LPOZ{plCL66H)#XdeEiNjmlEy7&o8m+j(`5xtH*J*T7 z)i@YJ2g}DS&zeMjW(-`m<903p$|j`)H4Z)EFM0Jl1E!WK!PWOEmNPA)#27v@=n*34p#XN}g1LJe#z!~Mm zbGjt|O8cN(els|y;=ts*9p~R70FgoSp_Y(d!Ded(Pl8P*)|G0MUUbwvx1p|cf~$|p z?MI1%i@#0_ms>!ki$$YZB@EWupLt}=+%i%T{7wsZU9rH7v11s!9_WG5Zezr-0Zx#} z+DUVqIN-gD6d4@1t06zGzHmt(BTU{z(`+czo4tXJ`lTBCw71M-%adprcWSxW^@R<{ z;_unhJK3UteKZnYugo6-0taLj`2_6I7e+mZj`dRAd3i?jm`pNe{S9@k@U{wzIdefT zr-o)EN!?{O&W1QqcT=rz%lWGPXd-$?X-OEB-D~*4`Td|m?f@D}CLMvV@Py@O);ejZm$Q_O8G%PzOO#B~Xq>(%fM^6_rgw2dxKvT5lksU;H?3~v#$%a^Bm7M%ZJB|PK~^vYn29%4 zRrIES$wNHalZ-9tY={?iH^rK=T-yzK%2vo@iJ8`TFChaO@0ZrkZJLb-s|hCUGG2WPvlssK@njau0eTe;r#tBoeDonn-84tw~6WS4_ zB2hdFP__D;S};=&Kw9DsXFKb#KD)i;gO@!caE{5AqnGSlHS9=lV!_~S-Pm123&O*o z6w-LG+;UK7r6rODj72!Yxbt}`h&A7-0f(4}t#k6hZSw}Qb~JBVnHE&?E5);X=9eAP z9`9{vb}hc-&~px7)&PE7#o`!6dgJ}Qx|{oR?D2gOLRoulqdK3KKsDp(RfB7a;5Fbr zJLR@kvcZo<%?Cd7PW~jvFiJ+^eDXPhuRmaQXm8Pk*7Lg(QlY+!y^G~PI6>2s-tjqp z>Dy6$mem>kxD3P-2azCyj_f(L2eWf;es2o(BW3Zf=JNyBk_}wW>ZGW*bvbwF@k`+V>iVo2MbHlKbcC7!D0t_ zr7z`nMHCI*R*HYyx_^1l7>i_v+{_>lpdiJOwX7Fsz!8KK|FcKKA?#!473OP%>>9B^l_vLXikRusWf5qVuN7 zJNrzMblvmumW75haUl<=ZE($9Ud|tgaiHkR9?v!t{@g$F`(upKm%CKTk$3}%{Yu~^ z>F##vEL#o)71VNW(i2-`n4BcM}(FgaOls02_wq%C%;F(|6XOL z(LmHzfk38-k25N10;{S)=4*?Y^6jX=X7oyyyzlj!LyA|3m7Liet?CvtX^jMA0*hor zHQO+O!^~;F&{+V`f?(vZ;aS4e+Hd6^O`$10WU5J65OvsMFB4bAADv(ZPNg8v)Rfp| zYXg>mNQ7jpKqaD|fM1_eYN%yR8d}!ox6U|A!5OJHO1%hURTtjpwp9p68&jMdZ1lXP8K{U^e~*ocH84KjPi*Dy_sRrOfyupmqe+q<~c6 z6@7~vK{Q;y!zV^f`>M!Hig&8xjx8g3f`G*|h*kwJEAmvDk__-kf{ZE#a#*7-#Z%Ej?ZF${BOyer8<0{I_0{K~0w*C14> z`MAmGgp!!tt7OD)knS%_j$Phof=d$$yS0`j2&fShHT0+>>|S8LxS2+!+Y@poqPELx zkhBa+c1|NRE-2|AevJoHz=KS)J4dL{{Nt`gxwie$@KBx=dLF@4y$uaVJWG~|3=?S& z({v4&n>5=(+}ut^)9(tMEj-2GpuG1w9b0YspMN#B8`Pyugy#GZ0A5mSpgs(sP)^d0 zSwlmUY*s(5gZ40OqDi_BD1{btYQ@5&wf$uwx0jlQ)XhqGf~;`MQ|~ zFz@J0+HGo8VrP1k8;%m4vfb`+fvN;eZ|WXiG(^U`(17u~udm9+^)ifz0iF8tVUJl6h`Q~3 zk&?r|O}zuhcUriA2|{@jmY)78btUO#hsR#LAptbGn)7}3?E9L5?IY8**x=lW?FLJG zzOq>zzaU8pT;|NY*aTAUq-7(3P9%C4_aSEs?4jQ9nMkS|iU;;L=hLUbz@Qi1z3>)# zBpx0bx8bujv7HDuy@{xUyA$Ico0fyCJ%#kTa5`wjZT{)ky~_Eq7)>u=Pjn1GyouEr z{;Q7yjCkdRv{AdkU>M3+Bokd$@9@9I!YjD0eF61C>mP6b|WEZ4-|5n_R(u)QfIt10P)J8iIPoe z8Vfn2)1I|C@Gz^uaB6oPS@tUMQ~t!hzBy4F*Xv%<-1tGPqMn38c=~*(zp=_fuI(@b z1EX~z@s9wMK!BdrL98@wSbZe{ULI{Ogcq{o8Y;mdzLc-iejN0`iQte6jlfDhCX!{` z1?&Q=%NlC`-3otrw8w5!ty6?Ne{qpo-r9NQ8{eQpD|U&_YBE-CI}nuFrYi88Y-(1u z$thB27MrbI>t;p=`*qE5TPgSSbiTfhB*Z@fT8e;5GlNboL&%mmq;F<5gUemdyF^r<0aaM{t)K3LuyBn3 zt^8X62LY)kqVF=M=`Op0nT<^bl>~Oi+P>`)4!mMoH>`ZWuU)b=_x1H zaLx;XH&Hr=U>*qx>Em7TipKEJKNxMP;^)&bP@7FFU4B; zt6M|KYLzL3@Bd!1!GEdF77n0|!?dLxW9PjC=<5V499D}TySDyGW?M-B-`W5gdU;t{ zn;2O2mmw4umv9Bz`ow?qw&m%w4k=LavKN5@UH;2K9y^qD*NGcvzm2`ToV)^#^4x2z zsHh0Ld>dP1==DaEIZ=tNO$6F>7Ey5gFSUE@P|7uICeQiK7mZ&Kpw2(D_D@gkV&dZ~ zFbm8?+7gyWXb5<;FtZS$|eV{NaSxU7%c82EH&W zQm=$BR4o-15qZ@=FyM+1__qry+I3kD+Q?%XiU1M45sqTsfk$M{UyoeOV|!DDw!Os8 z-wx-i)f$~F_qgEy!wA@M%Bo5P$^?7}IjpkNpwr1>HyniPv{Iiz9XX@yMKeX}z5scD zJ%Z<`t-*1>%xsEANlEG7nNo{gj^OU;NdirmJugwaQ$Mse0 zP0H2f#a^4W9*4~OX4`}K{go4IQwstk!V#lWMG)c_x-${lCwt>^=$h4i>+$M{Bs=JX zP0hoI4LITlzTZqvd$_y(^5&YM@NB&QeMC**<^DXpC(6AY=YLj2SXVRa0dd63EAP(=PJ@4}Pfng|;ByFa} z*dcX5JHs=Hq0VOa&3%BJF7Ckn&;BROm{{1$r;Rj`u81!`NA^X!>$EtO5zDisZ_^>q zvtxfISTDAFvo^-uP~(8m3$?KoUueYx8^J7ORtd=BH#Z^!{QXUH#}{jB>M^lPisYNK zDXv@tYihA=Ez1qtVLlZVM3*yqytFZ5=}ocp$Jh@i)YG2 z1A6;A4XtOc$?ugOfUfDId9xo1iF>9P93fE<<@qd3`6isIn|bb5#{72!fet5cH61X| z`gRUYp{^Jai~X%m=>DKM8jKdOi@>@HEN7V)jbF~FykD$k=-qa~XY02=PDetIUVo~R znhiK=O2q8^>|l+kYbWRtzc`j=aX}#>efcB}DQjrTx2&mUIWNX* zUY~3$KjBC%-AEvlZ~XF9sU|2+#Nn-wC*!5HWzT3gkz~>qkxZ;PWN`q9jwoA5ytWY|`6abBCBSm0c`5=46q6`gCQjWgnj{z8DBdI- z;^Ax2el5Wgy^#r3NMEj!Ziiz2Rk{M6v7NmC^EJ!nm|9;HPzuA5m<)k4f|)%uaRET>0C@H${Em)bgRGNY}H3xufTprs!4S z%V&y^F|n2H5&?_$-Wn*!YVv#lp91Q*kMvcBN@yJlZ= zskl7E6IuWgg>6BLYObooa{y#fmW-|7o--!R_&H=DX}tA_H&VD%BF~RU2LylSJz{bc z_a{iKhnV^nTc@*W^=}+nw782T3SBJXw1Al**05-%r=&m}KglF%&yYW?>=@SIP{)RE zg01gUg>rFQl+C!{RGH4vz|=VPky1Vs9I|9V#_7UG?DwNc25%W|u z77$_Ar;_~3m5)bBy^@FJ4Gy!W=#`b*;V0EHbY5F`?|UTA9L?}a6%Q{?$JKXNa?RXZAo`@lQl=}hgqb)dXtsB}}Z6d>~;T;04Y6n81r?>tmhff8-^iw`ut z-fT;(;YK%kQ_N@W&|g%CJ>g=cP{Q0F(%1As##E>osC(@bCXaG|xR{A9SCgI!0AEb0 zMwhlef|;Yl->(4Gw)H60atGPbA|GbqtbDD%0lQv|c;YhuQ}4pdvH^IkDWtM1o2O9h z0KD>P}q|1wLpNDeKoQx65VGvyq(5lx)qMZzH^<@t z7(gHOy#j<5m{P}@EJmTtANoD|){cMjWP253a$!k{?Ep+-*g)Tq1qE0tu+SNL{y7Ov z+l&&RNBK?uW#&<7@H7wP1PqYnxX+%pEYxH?Y3x^8e2%%j1W%mG)CE=f=@lT)!cA$z zeJb9tRR~|N5uHN#`*qfdbwMCNf8F{Zzh!fcM#s9q!*y>UdIlVSOyOcRZG0}jIzug_ zr5MSCIz3Mbz_aZ!wXVNWRt*rgt_m5%7|(lL-Lb~WA2~|LGnF`QKCK*asTTbMUo`Vv zaro?a^9$tu(0fyrVnxz1_Sp`1uE=v+XD&A&Te)BL^jo#aSE!va`=F`is-wyS=b^*a4 zRr#c4EA*=!(e2S|H;-G_QVV&Ml%7Q`YRb4oN*b#x;|-Z<%A|!31f;&-Q%jFdRyb_#iW%f_T3^L5ps4R%Krvn(=K_eM}ql}JHFQg>i^eGPuVxGF968{<~Nv@bSv06Jkz*( zUT8{_FMJu(S5^G8>sOXRgHX!7UkleZ)XyRISWuQPv%nq*(VF-BvQl1zy=6Xs{83*nM~)JbkX=6Yz}jPs5*$X5MExE@lh! zKIdmp@3%+|0a8Ni=>R5PXiGb`YLZT4xd>#$=%~<*iQBN58cmsvJy#fLK6%3?#8rIq zQ`?w>sS6dQ)Q$~97xKIn4$^qcm)`9J=q){}-j9bCzzJ>FIwOEGHcoP1$K>fnl~WrZ zZgBmn&{yDfaoHBo7YaW8a(3nhNxtwyTbYl+M7Ol*XTJcDuP=8sxv~`~BMp|~=dT>|% z``!n48VPoaYQ|@HeoAdr27SPOBIl+f(K*1c?&)5^A0RDoh3XaR7+5|Q+gej+Fg;Q1 z5}{i^+3%H;=`|Kgmjq_WSG;#!R9+6tJTeytlOKdG`64x2WM2Lu@TVVhN&8)%D1)K? zF5f@d(ez-6Tw89Uj%9h(NBKV=%*ejBXjYS-9~goV$HTQ&UG<%H1{)&YIl}wPa?3$0 z>NyfkL)TM2{@QfcW%+CDW7gyoGnPFMd&@;QLa|OrZ|?Toop?i+?SU4X;$qWc&TiJ^kQQc=X!2!7eVpaodKe&wG!)0%R8NAX9&Qfp9Ae zki>f=k+duf%h#@h=gB=9^&Q=e`mPiCVD06v(@p0CbM#xkpZ*rrO+`GW`P9UxQohXt zX;Iz;U&+hcX#P;*Tt4jSIRg-7_Ny=MfnN18@8#NlVv;ve^GJObav=}ob`fprTzTbX z|L3pGo`ycmiQN5Hjplkg$-p3TH2$T;UN%UPk`u~4cwte(OA#gw#D1F!)m#k)oaB!$ z^bFyl!+NEiBemZ0=77x7grJidXYdEee`k;8>ir?B~b5>E4qDjiV2u zwVv?!Rq}`7;jF%^x|Ij+W*gQ~cLmzkyiz~5Idkt``_vhuJjp@h0Q1fcYw5DfKQq^vf#~>Y&Zyr37g}R_5#KnH|Dim~FIesdes`+6+Ot$yko{|~W+ga{ zVdUn_H!_XW0T)B-3>Ka2^R80S*+ga zzbvY?UYU2ta0!O(-HK1rPBys|u9j3;f^yf{N@-#DIx+p5u@yta$eZYFV~CBbR@dCZ zhQ+Q`T-cwOkI1wrnpYS5!}w-$SI}M*v`EXNRw&-9Kjc})J?Fpc_7kT0q-&*Xn<W3*7FyX!LSqTQF4L5LO_o2 z6JR^_vRmtYM22hVbunMoZ<}=Q#TLS4s_2WLv`?SW<|o=W@9&Y zuYeri)>`(i6JtK&Vx;Q%5moxLo)h1maiiY5&U&{!$IZ>USlZVhFQ9||dRvks>%o|w z6I^W{od+cKSDeX3jx!{Nx!CAYUV^E}foR40g3aO!MU`qWsman9eMn5dO7c`&YFM+U z^Hxp<3$&=X^I)Sfcy0+d8M+1b1!vY(+nIiQ7?$IBvJTairt}*|Q}|OF+O}#2F@s>Y zB>3NurbL7R#t%ASiPn2#(mXtB>j zM&nG5veb4Gi|cq6_h3Kz$3?8%6<@9#PuJ-!HXn==dnbpv2|9@yIX-#@=xwuFk1J-T z%jpj@vU(uB_GyxQyFjNWYNKRaswUHk(Wg<{ZnYUTDxEjM70dVf%3Jrj)xv7{!1!PN zZFL%9E2b4vIJ-*cXO`&eyatCjs?3|7MNU4x$*HL{faJ*q(s2-Q^`5X0JQ^#tx=$P% zEzp7P&jx$;Ch`MGCyXCI{+4xM+x%sY5osfz^6?g(gLjOZK|ehxdl5vWbII^)el(l! zy?bUQ$LRuecSSEQJ|4*0=?ObI+9$2gAI)N=Dv7hD1v;r7>!St2;^Gq@9=%yHxj^p| z;KN9<`KFk1p3WD~xnY!St@TvlR*igq9%B9$!_x!Err!M=v6wK_7-qV`!1*-Y45}}< zL061^fq|M-9Jjs@i>8}V_@g69o2%ZZV_Sh%>@DqFZz1GN2lBPh8t{pZ?$=Yg-(_^^ z_y#=aRMc11U%UARc0oxOQ?J4E>kAOA_h!RJZ38M~*6 zFZzyuUlGjtJ@3HBtnz7Qq#^I`Q=OP@U(vQo{AImab>aR25ds`LLp$Ife6*@+{`lkR zD_2FomRmbonV95%`t-niu~ly%gw9+1kITPHw5PQ+Z#8NJ&)1sJ{yu;HY*puW@zgI! zSE|Uu3Pb79g2C}aAoBl5YH#SKCV zNxuLk(+DWWA|`E}ER%OCL@Ld$%HbI!Bcq9hMbQf;c8~CI8+v;B*Z*ny@7oQ)(Z4i* z{~C+lYeEOE@kxwKOyI~B3nmP!J?edC)E3aLo~~{_BY5Y6fiiC)9W5zwL*8`c>jCZ% zLDxUouU_@v-jS1aJk@Xzt6NhgYS&@`Bw#H*?IdoJ^^tb6Z(#uCd=0JrZ=YT?5h|MN zLbjhg|A|kNFz-k@72@YteY;?jnw^&RwX5qas|T$MpZ@Li6B!$KRotcs=(sEF?AE+3 zhzlJtx!!!z5v(Epl*WAQ5fjFHb`%&$#$b^j^R$MZDw*!|1xv|E8Qiz8b2AdYE*R8w z^ec#7In+hq;7{}tXyH;j>+dY@LA`X%@84gCK9)X64Ntg!NUpiQskY}C@%G+Mo6l~F z&p*Y?sHqk3H?qVHoTq7;F*?sx;5e0!`7qWeT{SeVE!oB`@jF4XI7gzH``k zRp{+QAK^W49N-u{H(v@vdt}D9D$Vxq^zcOnf1h7&pGOT7!(Mlq?|6CQAUfvu1%1ypHrhIf;?GACz4WI!zwc71lgL z-m0yI+MoHE6&L7X?fjx7F*58HY9D_keHQC{afCMjCn8ek>W0E_fL-4}GY=q>zm82t zIi@}F$8(MFSTEmb;<`$drs?VLJ=Epi|}L{JcGNn~W6HtGgEU>=LN zj~dzcBD~hq_<&kLZ+5P}%MCKE4-`(lbkU2)B+}EjJ1G#Kj*#NQlAqm&NaUbo^zLhQ z9xKeC_3c##bwh`^=Uvg5^u_I1=NX*FqdGy;iCBmw^+i_`hdr0~?y=J*{lYCI4!xc4 z(abQe>Tt-zV)Lc=OuAAA^zJ+I@uu7(%rB#R9leh@tV<{2}d?@I8=rp%<*34klSNwgA5W`Mzw#DSBM{0wkF>}+9;MGTbEOh$1 zi_~W<^q)wm>k1!0DI~@EwjLSYO(S9qjG*-;3)k}=&F3*;6mWP4n>*_<=BJ-L$P^$! zmzuw!ST4)l@tiqMn8U+-yxVqT>>>o6WmJQFCqdd5xXOo zlj5;%l3)7Sf2A)xMSivPLV+{mUnNZ9VD2*Wc%IWFOu2g>{7*KZ+gN0w+?ocJRY<5b zCv)D%saZju*(bP{i#6#_Y#$Tt#@_j%B&TqBNL;~cv{Tj#3?KVgTi2xnFYd}$LIyv; zY6Cq@pV9Wj4P9=0dX696FSjBM4K)(3t-?~nVAb!zpjk8+Vir#_>YG^M*KdP{V0c!x z6zY2?_Fe{JvE4mhkScY>ddMX~vM90ah^j^$f>iZW5h`8b&&O)!*Oyy&zZM+T7b*}e zkJDfVn)R6vO2)NF8MwjNX{}y4saq0`8(v!I(wO2J`!Cn z@&uP-6aOM5)Ur~=S&{17-?nUgHPQU3uJgEm8JhbYCCELhpgnjf3RsYITIF{nqN@{I zy+e2;Ql%DQx*)Q|JCCtrr}nSkpt?L`3&t*>o_9mma(Ym`!^khm(d2MH&m>)Uk~jP8 zF2BN%He4d-u%5(omDf>yRcb*dyFcra7sv%A(q%cSvcB`<4mp?|yZDXsk%Rz-%~)n8 z56-;8Hp=fYw7m zTb-N@-$R}Rq~q*B?tI2)p;eCW0YhQi>=;CkNDe6TU_?ox+gdm~CZ}Eu@BgC}tK^!a z*B-GoH4)5;pue>|?zJ_Z-;>L^j&Hrm zy+SnY&m>g?f#rk$Tc+?qiTL@%qC!Jp+Y5mS>VR^gXZ1Cz)Z#nBQrX^(W8+vcL zJ=2rVdn-Ctrf@PzvO5i-q8woBnvfn}h?lzr&sk2(*zLFTK9|$$-ae#a?cJ+1T%G97 z#nB^T-6%_*IZA_V<{Vv9OtuU=&QOsik6<@LQ6J?t19>!>sxhX^9Lu-s`NSa!t>wW! z?5(@}dCY0(Lnw!|BH|Q=vU*27NXf;r?>N7|b~R*Ft}P)mfpm`Vr867(Sk}Uw2b98IQJgZpW^jU(7qB(%vd5ke&npkb!|g)_5{3R zfh?hlyIE-S5PFjK&!tqDLh3_Z?$>5}rDX=oo=TD%Eso+DED=e~f4}j-HE^TghwDll zxvVo#!ZwC8N7L^9aJdSij776@RUSGO)_fizH_dt<;!}^F)p|FkfemzvHqMcg5niK2 z=pu)CjKWfb4gzl?U$1&xm^g6 zDNJw&w&RM)oyj{qs3WUVoJZ>NZPVz^;&9dqPyLj|*lOd@){MlXIwz3beo6t=*L-tP zYWS!&;ru0V5OO-9{jwMFPMl{=!Ht}~l}|R}&r6tu;8(^A^!hCA4sPlh9K&Kcc>3?f z^i6zmyddVR>cZ-tWkR*6k!hG$N#T97dU5eu@%ZB7bvKQUuvmf> zW)_DKg~Wrc71kZo3k+mied;h1c;ZYvQaU<9q@Uv2&wZhT`Qrrl7QY?X1sQK-g?efp z<&%B7dim9I-bROT!e!*hX56|E2iGT8n{#}LB;I#bdv*BBa$(M5M$?=LL$!6fr&1GU zE@%v=Z4S#Au$^BoT9ps5odC5~zZrR$ogw_wFyRAXvc%6eV1r~tmDH`-@_8bRe20P& zH+R2?IPkt|4K#-5QcPCg`8^*|Qx6NWPcN}=e{WGist%8iuT*u%HY%gw%|5~8w8Hn0 zKXSC%N|`E^koN+^=6wToUevQ{Ex9iqcLm4~j7bQlM<0-wFCu>wX|bN>VYnsAV z&noS34dCx?HP_luf420$@#Nc#7`Sk-_swjDZQ5*XJepMmw<;Gh?8?>cFoirgWz=2H zs?b=ei?C?D<&-hXF=~Xt{{T?H*4s<$x0O*IVX^&XUer~&Am8NW=}QWQH-?=9-iq7L zK@5g=`q*oWmn!?yMhY&RwPxE_51V629NxWGlLBY64khza@#*4K5anW=_im@gtdD$s z{O8?QewPIGGaqQwO-ow@m*Tx4Z_G0nN6qvp7O)h;z`i-XvVJ@c|DkNhradA2fahoN zA84|hs}AsRaUOwI3nZr3LTTQ&)y4m^vK0V?kl2cn)xN-Rhp!e9MYg7eV|-jlzozGa zeg2xY1`u+G(>aN5hkfklwB&6kjl7z3;49aSH02x1`aI{kQ{^kNLDRw#xwM_y7Ua9GmOqkWXKR6MHuD3&XBh<|tcR2!JL_zfg)YCYIAm za|gl(ryb>0I;4rJK3*5M@6*Put$6`=(A%Z;=i_t3kBW88F=Epvk z`UWW^+@@DxD6n&ZyizGRes)wm*=(F6a5_Eq{wq9H7B@{K*X?()g(vOj@*^^Jc~{2e z0W@4Rq{$^xhd(?fAYsbeb&D3}7KIbh^*-9ttS#hOTeOOD<<9r%XnewS)dx6AJbV-$ z^5kdBkkIAyA(ff73N7zWQ(dGO>9vYv(eY95s5ow^LrwD=aNG!orJjyHSKr!VSEBrW zNKYT)i*7=C;u9f!vM(Id!|VxjbNVkQDFI5Sl)x)5 zAldQd(zv4s8w=X@hD%^)U6!+&|;^@bAz|)rIN-@OyQX*g#ERB-bClQJh?q$_*?Dh!<5jIK z6GT2VZZ_|1bnc2tY{Emnr-57}8or(ax2FKJHZRkKde49jxj$>ye{@PuURmET5v{Cw zJ4hQ5rT6U|MOgV0#ELx|7=WO(sf(y+nyYE@s*@Y!k+nCEANn@RvYU9e~f`X?kC>Wcv4p z91qLnn!|U;MNv~q^PKsac((xOCZh_LeYYI7$Bbx}jh}OjkRn~1gktYnBu~Z2(7l8b zVYO}=>14ZgN)i>D4@lw076$i0buX;za%*l@SGW+441kQ-9y%}L1x6Rzyt?h&sP__1 zBU&WM(-~%YH9iwyTq$B2~`A9wSOBSbuv^7D%RCBX~&aO?uN4Ui-g8gwDH(9C%GkoL&C9v-z|s_TWC#Hb;sOknrtf^MItzWf__ zO*T9ylBm*T+}$>bJ?+XZWBVNLQLh>6h8rV3CeccDwUnoxDotC>kdG~tpND;K%=x?x za^R7`I8uX-j`hOtAOaNm?;znJ-Axa8Hd0LzJuQ8ol&IK)1(Rl(s{SVhwKVKc> z878WX|9rUf*_M~E&1tWQc-HkO!-?x%3HyZa5Ft%3Q`GUKWm4AAB}VIZo}SKUx@=-z zuVJ&?-v!87@~SFUX&|2wHbKn7Bd}C)$TI$bTcQgv7*i|RGk32lT<1*967S#Ghb`bzxME7FIONo{{N? zxyyTvpP)Dnfcfgb8K$P_0egDmPM$gp>M^J+?!#elNVd+#Jl4PJ82RgOkp->aWZDzm z&1XPyunzl)_2chX`5m;&Fyorw7Nnb$(3ExV;0m>R)*G6}*nOPFe|CXJZ2&CVf1%U< zEsMTz=HJrq;r~&^T8XZIT^W%ed`Cq%9Thvx9+Gjc!p7wuhytAe~|EJjdf1Z2l z)ZO3bs9dM}O}BM0{AbJm!QcJAH+bq)L*-2zc>2T8yLG#uwl{7D&doP#kry1|W1#g# z9zM4L=7n<|i|%7I9b6|1qlOTTSt>K)Ed)#6BeG^8dRFep>S35LjRirENj_2|hSt4{ zRiYcnYUFrYcrGxe-6<;6I?zI0!_=9Qd7v+X8oEl5+r?LGA88c?6u}ws^l#r-n7=7m zal^BRK2E*7X>`&NA&VFa@>t0esvCBRiGb?Y4WlC*t<6P`B6JF$)Mhp*sXJ8)ZGq_P z;SPrQeph8JOb-5u4WmOvdf2I7z%$WyBAfR~tk)u=&#-&fvNT#ov$=0=d4mJr@Wlnh z1!e4%MZQzkhFVpq6$ zrGiFS0MV$1cm_o**6%uqXGpHLqv6t}k?cNTZ2j`j) zG3?9=t;w^5mXka-)~c79>shrijgrj`G{pyAS`<*W& zHz|7JUT(Jr&Jvj>o3XM~xzW%kOJQBfyo89xlrx2kDLUzXTo`^I2F=y#qlWZ-LF$WB zm5v)06*k=kcFup&-PYPxSZ)3F#=3toWjK5Aa1F`6D0XGIYZ!-sD3I+okhQ}o`}SZj z&z71eo`;`|&8k>%;?**n)&0@c2D3d^ zUB2B{zP{JRkR#cu!sS!>7be_WuM#voKy}xS<5$hrl92wT+ai@RG;ri+Kha$isZXsM zZ^~YBjT+9!>;q)P)v&g-iBR&i{}>rG;jZM;5$;Q#cABkAIclh{upq>ZMC23d8sn|; zMYY4;aTqUI41KrU57M15N)2QZu$jMC?I0wnfb}ky4?qzVH~F|n0|($BvK-}y3k-gxZRB44>StjSb%sH<)Oq~cQ@TYaa3Q~ffJEG%~Mc0SyFWuYR|-8|ksLV0B&qD*w>1Aa1w#BlDjZd5&( z9{z(B>W0B#C*EcsUz@=SAlLMA{4Ri;nZ>di~*ljt zkw~R^QqTU5r5R7|-t^oUX=C0eU*VQPKVcjj{4veTqU{!3)sp6i5;S)i_7s}Jy~DMw zD)MU$!fKwaSEUK6D?+P)vA>*n*~E4&R=+j*2=>~@Kv8$!3sJNkvvg(8l+i@6uvQ~* zhom@Oq1DD~X3~8jKXLrjI_c2+WP8s0d4XP#!?E&6x2m_hNTReC;ED5qB(W76t_Eme z_Z~J8Mcx1KbS;Ui4zM@aI`7HFlaaKY7Qqi-r|5MN@Z7cv#XaPzE)+ zAqZ)P6`2&d4Xqwnx(?sGSD%mLd{%;9rM_i+s9_v4zXF1OOip{U1Wk$k;M4pg)w4aT zSdm+Qd~Bg<<)QVvR&EQL(W?UZFj_U-Zvf;pN~q-n)7KxpB{mDqEwb$UFW=5_J~dN( zbtvfc%vo!O@%fCjzOhl%B2^EWHk~0wpaN{|9?8vORJd?C8W-p8t(8l`MwXt5pVz#b zH~Sj{nYmf`>zdZGu>Q~tl!{?kQ~tI`m-Mtx^vuYmlyZfDh zP+muq6Xz`)7{Iq+MS@LxdQVL*3kh?MZGVf;a8+QeGfnY9$;KTCo4k%!mqp`>Yd@!1 zrH4nldT@lbO*NE{EsAsy|00iSkzQnvwsjEzmT7(6?lY$iPAw^x{G(0Ev_0a!Bz=7l zJWk&>R%^p35Uz(P8yLV;l#C;l>)=zZ{$oi6H7q21!c675WG27CQXJP_XSwz z6if(LfPRVF-} zBW*SYys*764$o`rL5H0r<3{qVg>~UC^EaeE zUk?0BzB`7j&T(|lRAwal?iY-*UXyM}a;?{ZU{kp=C8V%!#$2E$ZJ)@rVGYjNzxG9F zzJEf~C>5)1cT~e*-89>G|E2LN?A=Gl85i3eNUYN^m%(qN%GLumO<(b%%LW*pks(Bv z!$htpoHS@?eT6q%)f}~WCaQZ!jaZ_HJf6C%lj&U%o#&c=Zzn}#b)on+Xln3} zjyUNb_s6cUeIm#*dih(XOtvYA``CcOYD}e0Z=7KaWG!izIcVxxesdt|X^bmE|I~tn z-1yMl<q)Eu*8rX;tM-ZNGjD8T zt%hEy>lZTI29RMfj@(fbReaya5Sn`nr(7)fnk#B;0Kn5@TEVIi*u5UZ=%D^Xx~AWN z+V9r?0I0dOFPsBR?V-}Cgmna|K@Plm`*F!Kf7kDl-jXkHgqHYDeS0j|`I?+wp>7fH zchlbP4ya-Ig{^kPk2ZaWY%SefWfg~GXw-ck)=4M$wak(17rKyQC})jd$`2Y0HyYNN zEHM*={(N{{a&{Ko#$A|43t0f@SSL$+obO)j`i9$grx))S%WduR@`ls-(t^(-*1^i#o4?|LMmQwMdFvYr&lLqK#_3VCJ zPU9o6!(=dJm%-5tr4Z*Cm>&a{P)VgD(*M*?Atg@*&c;x~1pd zTnk{8WjhwB23?JPPE4rw(%^2fBj?C2s&v%s_iK_OM4S5>|2zDZGI*wq)PrD?av32N z%83n(9?I)s1_hEY40f`+%}4*77(&2IO*tzwAE2nuXvExCdQ<*FRx`}HZ-Y7m8y}bX z_py1B3O@2-rk*)hNhb)mdZ&o_H~M|OSBHsp&z8k;tQna)e+l8(Fl;AWeniD;EEaw> zwheX9!+jFN8Ct%xFt1%d7Fe9CEfKq-n4uX(t(m?(IsW0^euQVXz<#c55iKyH#oH{& z{Wt?u`7gk$=kq3jE;hsFGsQk9`@?IH!(A*H;j29*7pp!mMu+SSrBI7b1tgPDpnEd9}1Sw|; zc5@}2S``Z^6U>VPu%*2*uUZp>bk@3Qv>ZM$)H;JP~$w;#>mKqA`fOCT;OSH z-KxXT%xMz#B$YyON{@hW*S-xZQQ3}&3*z+vlLF!`-SS5ftLvnx)Kc@h(Lm+F+H<;i znYK*((2VeOUkTTEXB87c5R$v_c0wT-RzunzEHSk(O>w>C?$0Z7J94}$d?1sBSzEZ* z^FngX?npKui)IT0j=@)I@D3yK6 zfio2*2JC&9zHf(wquC_QACb-0mYRw$@SdXUm~ou3GL7;rW?kA2z?GN2_*DcZcwc=by^L;T@L)Y2VQOSBUz*2s`0d03>r28n3%w172Q5 z)9I$t;2&9C>UgUZzz?NmhU3Vomo)0G>_;#SS(=zy=7Q8Be8QT#u+xb;a|iRPpPQ^q z#z%{%WGdxrFc0uesIc--z-NH&3u>&t^se=aCH}4De007jRVsMNYN)WctX`|uaVS~i zx5wyh4Cvl;f zJb<kc|!}xs>M5cab$ZWkbyTE3=>9b+d7ak-6Kh}_<+FVBAO>1b3}(hHqX{dxn^8zINlVZ%PM`|WAQ1C2m` zaiod#`LedL2PxC$JQlKeEjr)mS3k+Hwwl>DU~bjMWqa%%zjUB%UYOU2#k_N>B|WMKPMB;KIQP?K#G_y=|#jS|{tyLcZ$ zqc(d^^;`DY?0q3V<3XLoWK5I2w8-e`yAe!C3sW6V<#+d%Uxmd#5A~>*#tZxZGs5W!WZu->3^Xhok!PIuV63UYE(!@94p%6$U4f2>&1iO88y*5t<6^jL{g6RRPZHy6ij zSbyN5!mBS|kxeE%gLBG{_O6X7qClSMewAzoh*=aAHGQ!l&ZBOiEv9(?Za<(EV~C{i?U)qe_bFI~`=-E!H@Q_Mo#L;i0`nr6ZeO^-R@>=@l9i>m3Wa3JhrTlm(SZu$uJc|I_u0rSKT2HMt71_#*U zIen%x!jaxOWrTkIfBfP2DcpJL&K$%dRGsQRU7#Bg?W1+i+H76u@Sm*2mY?ktufFHWQk@LESw3ug$%5k0cwe6HN=nDF|o zBx`#g_(`kdaF?}iB^W9rS)oPD6yxDoq~HCun6@36*JjbaIHBKA4g>=XTkOkPM%UyI ze`@nWGQIW#n$TG59exil zz4^&2G{l?jXMl8{9#yY@;dx2oCQL9Q50=KmKLcKhR|;W7XT zAf%&Z5yMfLIFs3tq{%?C>9g?tkB*HGBUG~$2^?6m+PbpILHyp)E822NM3kf{<|utY zsVR-RKGfkN|~W8Q!X2@0nN`eI-Tm49)cc1GVELTQHdp?nz?va<~_QqYyhSH47y$Q4=jU zFk^Sll->AyZM?6>yZ?v<_yNhOFF)@QRtlY7$M5g0(l(_{ThBWm4%kr6u_|CX?aYJ> z;p#@wLMTK;4d9Defu~hFW_J3IO#tO6cLTX6^X-V!4LZ-%)~SKByW? zGWsTN<6m~Ad?9JKw*7?FFu%)p;n7EI0nQ!h-JxEnMK>Sw`iVK<%C0*%DcfAfwn_NQ zed_V7dH=q@R!(P4%;IS92Xo2jovSvJWo>S4W7)gq4AXs~R~uv9Yx4));T6yaeXTzb zTZWOrNPS3Pn=voI6V^qP`-StB*2bAe(V~2DY@~z1>!$G}iAu#3=k_g;e&fhz>(#z! zwuSDHYno3=EOj#Dn?Zj%>!p*9My2Q}Fd5O_ZI;H|Ajj7_#ziV5`>n8zA-DZ*MxtE% z6;1>;1j`S^q0=W`ELr+-xm6>K(|Kqx^Nz-xl(t$(%w+_K5dH)W_L`4 zUAE;LC65o{5FzkDy;ii2@c|2u{X7up+??-`Aa^%`=#n}uZn2DenQov0gAa!$Jh2tS z{i%`!v*jUcgRShSo735=)AANeV=T==MvKQRjvFOF7&Pj*^j3Ze%WjPBpPS)wHQF%`&0Bt z*o|!~XDdQl20#nE`@pdUc)!^VZN*u4nksdNwhJZ|0hXI%bOcLq8DCCmn;G>7yzK5= zi6#A)!FLj(3Cs4ZHL1Iz%H4GnfnoWBo^ZRGI7uBKM)tkrb{UHC5f~r4=A;ql(X3QG}pj-5bl>*im zbw;CRW4lKhtkrPuZi%}Vy%5btLuIV}bMcv9mj z!#Tdj7PT>-6V5}{wD~?zUL2sGBTDCBb6@cm30cj2Gk-OjvsUE@HP?9MOj5@Q;IR}zzV>HmZS`EOpmOxJk(GXi_gW zVGO)hS+61!BiMxRUvRoxehY{yWVpP>YZB?c106PzOLXyGG|5BGj%~~Q4Bxn~i?r+y zy?PMq&NGUT)DJ3W0~-Pxw`lRAjlhTa{;2K%?LhUKoNHmN-~`vK23dXXhazE@-I-Ug z0%7CrkC*KWYbK`u1@||@Dg<+$g%A9LuXCJe6pTu$GmS6A=rj+oVkPyWs()kaa{#uk z{F@8x!eYVO;&(@Ojk!b|a0LjG?woV{6M2yA;HbF1Svbh5zy8&`f3M~@vaY`PKOpOT zROo6GD{nvl4)p-L9kX_THU04T5mnbUqBY+7dw$o5*aSmHej)C(ras^Q1Vg(&@o&M^F0HrR zx{!I|`rw3o14?B-=&sSZ#4#M;h8`P#T)Ss7NsEl|4Y|}VscifE4Mps@D^+Nf(x{AQ zzHkp=Z*(|w1=AXqiAS-%8}hondhQ<7gdyjR09m@I>FqY|ZZ9HXKTwf6`2W33Z=3Lbh+_FF~I=z7xD+uAPyx`br8LXyH{On4WzaWW%y zeLG+W@xW7cT=i=%>S0@V6RtcorAKnO{1`Br|EIvff%lEU^exKy_jF#A42*RdyGq8n zi)D%=+#d4cFrdtVEdffcx{hkO)YW=dj8sx0V<-PYcmLDv;Whr@1=If<)NY17%oG{> z2!}RkP`S_5f1J3_GiUu+cU#wM42CLKS2_bKDY?KQp~kZjJdGJ}5A8O{P0uW%ZFU>q zqk}Q-cy-6VBy3q{bOv;<&S}Q_@||V-+KhpKk3ig6F$_{Pg7j{zAe919j6HYsyaG<`D{2L3gOyw;_xjpEvSk4x`wbErxk`PVffvUmdC3j86gf^RHnWrh| zCVgO-PP8*0s}9$teyd%a;-kB>(bE*I-nCT!G!Dt%re62kJy*EhkU_rrZeqz~M)bhS zuCfF17KlmfQA~n1=tGLBwP!X6Z?m(yOc!FMt^wpjviY6w4e>AE<36F-JI85D-sNo3Wm`)I(_S~yU~s3(ALtSNu+k}qsLCOo;wZ}vr3ofqNQ zBOhEy$sjF7P=hbQ2beCBFcTtH=@qJgkRpuBI@|N8zgEAodIsfDCl;$C$#%7Car>8- z;FF5iz!tw33MRU($~(ebrbzh=bh_D+p!)cvfV964##D`1?|@bekaXVvNGc?;6@$7l zWFSt@_Oad*7#E!r`!v_6QU6xYX@v}pBQOwG_~B6a50nS*`1yq(`F+&;VMG^bY~4CC z4VKt@ykzVs{1waRf0{1cfKMJ}H^z92eYYx7J6@**9~iEBpKV8$m2mcs!5w;@-?*CZ zKmYmv;-mf7(fji#xFa%x2yd4^PrFG+*<$d&e&bW%um3oZ{}<8u|GCM({KtRs%>SQ` z{ohUn{hz`1zhSUNye+pF#pEI{Qfu){Qpb}ie?ed(xv5uv~vv z)(05C4xVT_?v6Umb2Hv2PrNnH&3T^y-#V-SQ&d__h;lY#9Z>D6Zb9{^5bOFkGyrU4 ze3)~rMNhx3^zM&OfHhsNp1S)~NbB4@8yi~&picVrtKsTk(1*84faa?B{rh__Uc4yY z|L05=*2ib=h$Vj9pPHKT5~Nq)OM6 zWnRqL1s7UYDq*^%XZFY1bG!>dP}(g4U6)mZZ!RF`65WpiE^we+1b(JWz*Bii$y}O9 z49J>=aQ2>SDW+$-ntxjPxpHLs)^JW*T2*)uAlRcR%K+6DaEr&?y7a&!>q@A9qC<&> z($5Id@d3Z4+!`bGT=iFHxPMnf`#pEw+BGx zBlnRHkNy!3(jKW{R55B`KVrTKszcLk0coz@`uX1uZTX`G=;p)wbSw^5X;HqlfYNLh zI%#Xw5>kCt!Y-?6K8-Hig+HMO5WvaG$+?7n$$)b_rwy`5nhB)>e!8%hv5Q&de}2Ob zsLD2t0VUbLim}r_IS|SmHNdmXwg44i@?lh|vva_O$2aI0?&Q6G{hB6017u~i%e3{> z1nF`tSLj-*s=jW^|*lxaV~Jrv?lf}x*5Ke!kmPJgwm=iL%{a6 zNKu;Pj1w3n?#`@bNva^k1-hijvkTH92T4zQ4_5>ifEHc&fa4tX4j)fXst$O_ zPB*4IrnDbFJaeRqU0YiVEMVBZ2RyrQsY;BCcBGTX#9iX2M=; zYUGDt0T(6yFa1;e%&mttcCE_z^Ry{)Aywg*(tq65@juMT7NLyK_rs?g|OB3)8`4MYivmp z5$WAenq)p+i)Z>WOgPr%<$GhyNa=o79oL`5P zl*=I+q~ZCNB5DL2sj}QTfdJW5R)T(XzTA|F*$G~p-Bn}{RXcKhz4whW>^2=(9@*Pz zb>hk0Fdewtev(Z-G_E{;4>Kaa*!`30hq*baqFPQk3yieGJHcmuKL2cmUh;O=x|dMi zSmdZ?4qeX3XVq~`jmV!%9VToP<$u2fZ~5I(X|M#ied^XxOB?0$xNvfQFqO35%3l9t zw;dH0NeNcm-({!|a(rRd=gjkBHFlYgDqDV(mY)N+@3G^Y7~QEXCEs^fhFSHT6WBBC zlpxeT0?)LIsE(+%`|GDx#_1%!R@tfIwWV^v>+UseyR=ho8rgECm{^oi`KTprzVk)m z7qUhgBb!UA&lgwSeZNy_;@)eBfz4Zd(71H!;EGPUo0 z8+?QLit4W_88184&?nl(r%zd6U|V%2G--pzGhE zNG}m45w`Y>ni&lhkvx>Pp~Cn|_X&;f4Fw22yMp#YZF_63ufLXaiuO|inhtmU zir*Xd^G?6V8Tgyd;#bG_R3%17RH;nk$3zy;hE$l-FTN9-`CqEXnK#W-g@17=?e&z$ zF^a~nRm!~xTw*%G=${;~*1H|HWK+lI&Gsjc)g!}+nEFPw#2|OIWpPu3Z4X6YkgcRP zas}yyzb}=qAdG$qB^@s%)+xVdP!(OrB?RsagvLeey(xiA6_upq!FCzuCmX9xtwaZEL9(ER~o13ib*dLU%nb_To(^?!! zmAT9_Uh|rnvSTi{HpVCPbud<$Yhr&WYjXU>sgy|wRzgKNx8Gb^9u8eP12Swivi}tr zBT$hwSz4K(*U2(y|Cx!%pp5c-lrt82483)|?WcBv9lX%OnGj*xzSH0S{)0}`23J$Q zGwVzxKg>RLuEjeXB3cqGuA{^E%cMJHkEwERZ9I}|tWSer+Ps}=8Z=C$b;J1AdavT< zl4q$mn_7O}hkp~XA5V?kzH!CCSGm?Yzr*JwH|Siv+x`j3-^DgDkl4kyPB38gT(l22 zpI1GaED7^WJuYkyv6N@0CoOFqA@)Amm+a~Zky#^)+l_0F8`dAw=TIuhki@+;zKs(l zlI_u?1Y0<;s$GX{o?F;D(kyIh9uHg5;B3XH6WaHx5L!S9FnOq&2+85Iu$V}bbxz1y zo^bZ7^-;XBr9=H|@7B`b`ILMe&IniCNBfls&~cD`kML}>4QK04g*w!>T7=DN``x8D z`?&SQ3XvdZ-OqdnX^S#TI%>0&3HcNKd5TNBI3aNezPq(o?sJT611A5 zc60ZuHdC&%;zP*z1?Y0}js2Y;lgYQ{@)-E`=Og&zdYK^42cr$$>OCe^Yih8yYDSQg z{p#?CCK{+Y!7BD??J`-N(!=7n2Zk zl?=w_S~`2%8fJZe^h<1fw|4w*U0r)LTUi%RtE!{Tm^ z&pBt^yVl-k-F?p9zkTlhU26jVK|kjhcBL+>KKX`yf;b9~TeYge9hopWFj7q)qD?of|g4Ti(W-($X*6gt10nsB{gO8YG?^1F(LoX2#Tow6gV zD(azH9nk2V$5&)oZ&I`#l+7I1T?Nb~STjRJ^5$=f8Mw!?AESba6=ittd@CI_%&*WY zXV=EogcMFDMN^ly#=qi!t&nbksgJ9rqjKei7r|a~cmwzfr%pO1R^1l`F}VIBHcTO( zf4f{DA2|veuF7Hb1cD1e7{A!T7dQ$2#&lXtwBX>z;I`9?8M>a^Y>#_X3?tsDz08fj zoi^i+R7@wz|0#_VkLlNNaGZlxp~>O0tN1O&XEl3}dXDfOM@i%?mZL~75Sfe&3`CkX zrQ*ZF!c0rf*`QIh*T!y%{@S~RX$IHtEG}9xj02cWE@#6 z;-Ybtv#=9wO^0L0b)N_j6~f69Qt<8J77b_}sywYNfti&y*r-(%ea`$kx9Ehdxb*6G zrz@gm^Fh(2JpP4XY@s>M{~?7Oe_o5+|NXO|6A`HI4aTOIo+B3tKUuReivhLtgN}dV zdkIW0{>C3Z6m9FxEh|>w(hoKL993&~0MAmTNkaBWJ>uG4EPTgX+8ue(DrWN*n929b70p;cBpuI#K0o zL*&47MFYcYup#*kg(M@TDy$13E?!C{9>us-ctyenx-FvFOJy1+?R3!UO20JFjlf_7 zQlWx?M58(ynRy+b{1O(JFT)GxBW0t_Av)y00?fgs#QVBp;V^Vd;QQa07F z^+9ByE!x{~^q|nent2JWBrImX_U*+BtHsx&-sSXHufu7B^RsJ`1x?}2-EOQpqJ7Ce z(g$kK^OOONg9hCd>iTU7Aam3t1e*Hb?7wMX=1 zBd4K{HmI8xp8Ru>!H;YDJPR~TKvwLRbRM*o7Sr&FHTEakI)jzp4IN+8cdCyptr&G#6hVT4Kx-JxNjp8TIYcJlzm zrv&?K14UkHnUjyqm!5lk9)Z#!=<6tZ@sw(Y-iMOtv(eN`-~l5vQGI7iqSxM>ApboS zSO}O)3@f6Skts~ArX^lEAp$4aH-bVcE&HWiooj~mB(Ze_Sap^kEa+W%GkOFx=2!l) z0Hoyc%q=73M$rj;n!`g!AoxLj0ViOP@r~wwOHdVWjofCJ&_Mmdn9ziS=XyDuR351b zUbu$B7Ex1b!WfJAAF68&_A_VPrX|x|0QR#pr!g3SYGHDVp3b{1w|o&Gedk+TeR#j$ z5&&*a&+Fop#v;Z_191dMG!p>pya(ASnXJ?qcWY}ZLbKe+n~(#t%)QgNl{futb^H3S z$>)b@K{XF)S`ThqB3nCTO@1Zbx2w{x&`sW9O8&dOB3W8&epj+M0-xhV4!Vl_VXb_R z>57V>Hn!}864Su-d0T1W(6@Q5LltKyM1wa5KXI+&cp4a?t@l)`?cn}#)6lk6U(uki zK5Rh4?3qtwUXnRzreOKv@h(-ooRi)SZ&KcE&`ZNm8XZEC*fVentKGNeH4{*RafJ$_ zl$%+~*M=BFd3IxKdfGGWCoY_^i$hhsb!X*j3xx@2m;BJ+Pz?@;jOF|&wS|VOH7Uz$ z1EIpxL-pJ6-%>R@r=__o$G8+SQji%T=P3(dLcWp9qcO1>Dm|1cEu&O*X-kgVHAA~; zl(+feF6KfIe1iZrZn_hS=cnO?9K4`?{0W2V#E+&?5qMV15-$itwej=wD+K9I>O(T* zJ9PbvjU+IW@)h!(g7Q^_c|l}o=(n)c> zi)XhNcW@sm%hQ(I+(5P-pTOiV4GfKq*>#dwJDyoL4NxQRjpKrbn`=;krOu#heq4H#1~`NQ&I+f zojW@ZLZ;G42B!ulymlPZS4DP>l5`+%??Lo95*OLeeTA|4QRAWGPfTt$+;FsF1f{lW zJ^P%ztyGP|BrpI-*mdff5$$;V)`~1H)3<#?<%W75=8?*O7rp~B1^x{Css9g>eGmxj z)2XK&SZ`GazXME3q?%y{GT4`ns^`{XZF)ZGseA6yf1*G3(1%&2b55NxZxtDWKr4%p z_&lLdc%EuOAQ0C18G*MpAdnsIXpe8sxw^S^I=+KKmKmV*!jr98KmHPPNb$nQ3f1Q{ z5h^8;%Rk}^2sER(hPN}74~nUWediK<++6d zvCJ#otJD~hes5d*gw3SqLH|PAKgw!90?xSn&%j#~*$EuUGgAD4X4feQL<8y&Dt~!7 zuQB5HbxYA4=6+M2sj&Uae?Oj_JPv-%H}4AyL|ZLj$|Ijc+m{i%CfGu@+y~HuY~Yw1 pOD2s)>r>qIKF!7z7!UMx^Gn8Y<<>SYP^Ir}9gXtw;Cvf${Xf91Oo{*i literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-5-240px.png b/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-5-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..900117241e5c2cea72c0da9dd302c49c6f4ffb89 GIT binary patch literal 12405 zcmcJ0bxdVXw;fE-B8N=zp_}O1A zYtX}=QuDQDHWX;Nq^tzr4n}ghS$H~VCOM@u03=Hq@gXuxTtxp>eb+9O(Nd{#O||#a z+zk#AP`5Wp*rH)U;T;1`rt=H3}T zqPbv@c1#8(Z;tEZZ5pquf|MG0wh=9E99G;Q#Iit=4fSQAJ<{4LG}EEeq6bXIB-b*J z&Ys+`4fkGsA){#5q555+uE)weku|xqD$81@uyK(gPKr>k?M$hLD_<8=Yx$gM{l1$^ z`RJ8-n5E>-h-5BnKuK5$8f)I?B>M&gPQ%TdUq2Blm=28=A0kf_@aOHhMTB*%04Wex}>3 z@sjGh-vDG|~~i&tuvX;&pGHW$&4F+cChdcmDDnmmnlFL9m= zxulGv`QX7N@gLzbG!8>ke+P$z^E*+5mq6OL^%7~I{uVcLVi28BSJT27ZXUH{r#3Kv z?0q{yLX;@f(z4YQj0TySSIR4lP!}O9GjX@J(2b1PhQtlJmhFGDZWcFK z@2gzhCuDe)%e{8YeO4DMGfZewi_?ie)cb~Aq!w5BQ+ZmGFT1XilNh(b11VZQNYbLt zmZSdoYFjl!g2Mx#mCjQJupHz5BDJGgC>FF#ZfVyz$OVOy5KD!xS5a#NP-Zh%H3G7$ zUHzaBO}A!*foasE#WXSl>X+;597j7$loDYpaN8h}UKhx>9jaBd=j70{Cp)P+ASjoS zxEo2~Aq6nQDXhTF;pEE??%a(cJpm+Cn1T=aatz$@ZMpQAR(>hLs$#<`&1Gcfl~ps- zK>OpV0~e8uSOii8!@tA2;Y1Gp3PZrZmDIw9!Nf7dtLMtEjM&DD=)*@^ZdRgAE-Nlh zMixN{O;pT{0-8fDM1UoGX>b=RwGG+xwm~VqJ9gP5&|+!nL@EBTgExr7%onG%721TI z{MyAr&R85f?o$V&Z{!vyaMHTv0tM=ot+BX*7bmE7DU~yG1e7?cd~9msOPnbFWznQW z8nntA{VgcXp8Bz1E#BJwE7h98{UlVeIAaBxQ-sCF=^GZJQt2vl=8`uO3e z&KMUvNBLt(6cU_~HdM5HmcnK!@78|N8ysa;o@05~l_bud8(uygnK|qtim;Ufe)$pV zS=+Aw^5rfHc?VG|_vXId*nZXNqsL$U_iL~NH0{>S-xZ#Rt93A1=WD3R(ff0x3!6zrjqM=o%as8! zNv@HPQqAuCTl(W$%(JjNU($Rm@RMn8&|Cl3LC|xT$Na>2y+ zPDyys@;)E&$pg6r^90_acY1qc({U)Q9VYB(&%UhWzw!CDh68FoH3k}&j0e5P)YNNo zdH>0@sf;B%wDC)r6>d%4dbu-cV^e1&q!8ko*a~{?pilG!Ju;e5;&e^Fe!Cy3dburq zJ-!xxyG|FLG+=!ThPIiyxh?OOT+iI;5b;e_LKhxYov;94m}{7%)V!VOsP!{z5+a$r z4V&yAxV%F<)AtPQ3wGbIzH@!5d5z)$v#O8VtoXlEP2>k8>svCv@A7~KMqfqthHK8s z{rbaR{?L)`xOCrp#7bt2wn25j8gx&gcfUG;g7}96)-KJKnmv}*E5$pXmo6?Yw3D67 z97sb<0Q*T3PFOSTQA)rdpbeqOS((Bl5;x(TQB^|_5%6u>vX-9H}_sk zdvQWF(=9i}-y7&27h~uitGAwxmXqNh?^QO*v0{q3)1FrIU+Cr+1Iy5bz$QUA<>`yn z6>!(yu}9qxO7|p!eeW;#UdQXVjD^rMa)3 zz=26r@DGX1Y0K|_s($%-^FV8-UV>^9D&6Qt_+9f>ni6YXCwZP8Z9pRDHWL{@w)FArb|_p9DHL3glk?x{mBnb zP@?l3AMx^v4%Z?)k_DvqC{BIf6L~S2AbVtaf9eiO2)a%c*?rT@e19wtQZhos;MBs! zO*=7Y$-LO)Y8)s=08_1Q_BT&TpxoW>q>LkQ43t%`>2?SHxbW#rZPTOUr7biSXqrXt_}Uv`-zK|XTXLr0pZe(X#S!vt0r{-{Psp70$ji~A z+wCA^vIVFTeQ{y|e{7-k=nHJ`y}Q>a(a?)~d>Qo4A^*+Ns)k%u`tR1?A4|aj5&c`w zE-wov@2FhE!|aNbiEMcg3!I3NVK5SAC^&{H6ohC{rueiH2Be2K@5i4Ht*yW8k=)*S zVxs8t20OzdWWaTuHrIRa(%chgw;rNtVZ&-^vA)u&Ee3AhUW=0| zxUy=07I{8gS;uc}4F`iI(=o(WFrthe+l|1HM%2b2RNghyu}&<=1+TBEQUGe4ou0`? zH%o9b=!JD_|NSMoCTUs-s*pTyqenstle7XZg0_OoP`nqS$sU#wTN?Jzro4`lnR*Ws zut3s(-@j$a^(;oWF>4@k*sW zDKp@LgtMJ@u(if8LQ_e+z*;(!w&&I+_wJ}7mupE8)Rt5Klnj~npHVskrIwoO3xTPe zy*YbN()@sBFiqu;YHxCx=HF^|j|e@pIQ+#`_9#)*T%|bWS5JxTLYO3E_(si7149Tx zb*X5**ukBQGD*&jIJx3r99F>sM#5Qdd#8*$CtRH8-GJ`A@sTg1A+ndtbQV!iD6s43f_!|+6QR|N~3rEvK4xP&~a%S@Q>{a0-oieMHqA5>aA zVvyjK!bJSkc8m7o<_P9rUwGXN!a|2hX-OgQAI%W?eyiq0n^RR*oA|sEn{$2pJE(@NkOPXW7{fLmo`=;B!P}RxbK^p*&)g8!)LN2D)uJ?iEf2t2M8y zb;NzVr>2h0>o%dk>1)J!lzN(Y+gRTKOr~SpSs!Hurnwn36@DQV>EZf{8+KX)F<)So zcytRr_b_F&L?zTG%3n8b zW|8OiI+Y@Hk}imKP-`!r)Ai$NwNj%B90|&NM_Zr{m8^)z~^~Ep$46CL?4L25lex2*qRXV5P zVFS6419r_SM&qF3i!b%t+tCh8dyn&H$jIKngmWW{ofw9@s!M3_Cr+S-blvZrU$$X| zs`vOx0y_RR_FKUeHK2muhC$h-0x|cgHU0-%4q2X);rF==uKs}dvdVdTVUNPEkNyOc zvm@yNScMMnXfLnmc#oSI!$6kDaubu?O!y+EBSWaNF~_08*{jbB{_%OtbwR6z-ID|2 zwW_ylIK7UWgLMJX9#L?bk1t1N4;MI2rfrrtzegEpRDMR=#xnB{gc6QRMTP^&3DkMH z^$(g(2uaF@R8-Qxc%;@=vS&7{ap8dP@yC4zn8Mqv(!a_UXVkb^uF~4lGo`^WLx#J> zphd$yE2n%$4wn@*V>#cpXW$g1O&8jwNF9xhx$@5w$SXGt199*1e?mjt-PAi=L3e(K`H6Wz$Gp|QNM2)E}Uf!BuwyT&HeY%i6ut4*E zjRI}2g9FHUCKubn~@b%U*kx!=A%`nYT%y0?8F1Uzot9HeXu+#AF zQ8rSHVy{RV)qjWG=zc~`?j-bA@zshEV%k*t=QgBF06LuFk>f;xayexNBci?rVR(^* z!HA?c>0nX;19tO$HZds>E9%(Y^8*uw6P)5dbsq+pg_41CXdI4jVRx=l6#T@kD&`9G zT|fU;ReaVY?iH<)Zu?Dvl1kS+coIYJe{(<#JGq}POd$11Sj1asIJRnu$WLx%j(MnK#J9tquIAdp<4+&Og znzZA}%g0?KBMV>#P@U+QzzaC5m7kx_`0OKzk~-QML)o){4QN)Ow*IzNFeNURr@b|r zB3(?OIM;b7jw)kHfb>ybeH*31UX+EwHq@zA{d1yxyyRcuS-n$ij|6}M(jgopDZnP^ z>PobETUFB|0gsZIeH&?%#G}FHD|DoqGn(PzgZ+(~<{=M3!a58cOqwuZPW&1Kks$3) zg$UT9m~2gF(}Z(B@R9B!63!(QBrVvTl4A*AJVZn67mClsy~Kxs9XUB}y2yrmmm}iN3O<4dTa)NBU!az0Kw-42m6GZz)@t3w|$3VXo?`mQvHAtEX=sz-J4gQ z@e-$e){E#*v)KMU^9Lk$UVxAEsjzh93)OW(CxF3pD7gD2x2H)3P$DqEjQF)5$9wlM zHyYL*r)i~uN{+0DIrH~5_<@4zaOc0D2r_><(|I7kb0^-Gj;AL+^tiZ3Os>FqZ;_PM}Ht9U+%8nb6qT z1XHqwi_6l>GWFnCIMHdijoa^KG36YBLA-QfS(bc1FFohn;z)Eh;f~wFW|Ae*Il^ucV}Gzx%|m`Mx4!3z4Ouhz-&RKQdAwj~ z|H>_`{KQn&A*V0gZudnbeZxa2TAlSHH^4|@1ywKkdL^n+0kWzvFl%su%fyd2=|YQ$6wi0I;T zOPp+j`(9w^XldD~&fRIb&^rInwtdTu=aOi&6+QxkKgnlm;>kye#@?rlJswkb1sL&i zECeT2y>iNe?3J^l8TD#xlSi+`6}fr` zf@qPf&}l>arPK}yC(_1KD4GgoaZ0h?+pIGtQnl*>ttsqa7bG%=6zaK0QufUQ~2q1e{txY`)feqL`q zN#3keMvQyr?+zaUtn<0i-t={2HFDs&IhKHCvbxbtgWSO|+bUvy!nCf}<6rGSfTiNG zGLfxH?j*y{AmmeOM|s%j(A&hO;KKQbc-NOoCT0CY#OoB|bT@m$Dr!K{-*WkiN;{IT z0$$4VrPn~Oo;p&#@FYEOop{CtzE|W=GGtN?oX&1dB?3Pj^cq3;gpfuuYoJ^Quo=UK ze0vf7Jj4#KrPqb!VM9L68843q5^-glrs5}>^x`IC8CZgCfhe?XJ9T3Ep>+ zA9PN^lVP+RV|jRhTiLX`9@7oKwtAj@-rX&>@_)Y%;;TBCjZUjd*?P7d`gYL8cfY-z4lU|UYCE?1*(Ax#c zcqStBfznNiy~ba?Prg_?#gtU2e)%+zO38&q?}-M5$uMpg(JYLTx%V>4W4zZAbgq%Z zC(u`{A}nzxAxLTZK?8ydOL~Xj#(53?hQ2(NcPtC&Sz$ zO$w2DlgWEET$%ZXlASUn26_BxC8KNnXpq{{zT z_eTw|&YGDq!#bA>)lLby%ZAM77#>zrjDrSWQfzL?v0+fp1L_|RV7Xl!j@FkUV^u|- z{^+$os~;~wS=iwIc#!rvp@Y}++p<6?pL#sTZfMYmjaB-oNMjqFth??t#A!|kh( z(j;--d9^`S=zc#vx6yl2hgh_Od*6Bg32W4N{>Ba|UWOX>2yExL)t1-xLqc)M;&zZZ zK2O)$-9E>=H9I%EL-^_~`NDq*wYGK~`<48CKmUax(=cAwj|||9slnAZ!@E(bJ!Ori z&d4ZuwJjlde;ja}2w_|;PM>IMI?k;attph+wBeNE7(ThiZE;s4GY(r3X+U7O76U-k zhi|EK+b~O-L0FLwXC_(-sE9j_I_~5$+WirN5%f1Z?3Y3&leS^30@zILm^iBTC>2k) z!;UViU9@?7dSyXQMTKm~_NP0y62pRY=b*WxITGW{*pO1TZkC8b9d5A;eP3dO%@3*F z{d9JB)L%5|dSz6k14zr*05pkH?&+;maV{K6F;tmjcMs3mtu2ZA26!a9vKZPf2{GJp zg%V^dem{Xa^;djC-aA4cR>jL{xK(}ieXxz}(3-5LeU1R%*vl?uq9oG$3p);Duvsg< z_RmF2WNlHjWTQ#!VOL4LrR%`=hii*3zk=>+qPpA=DK@!2cbvCoM8vcDYf25)uv`xZ zy$riM`$ez@{VmopO5FR4-yXg9gr60?$4d{009JZ~M4x>sSb*Rgf6nuMbZnx@RpPAb zx+W^o!F#@ZuSXdos_&C6<3P=^@BNq`Et_6b3~=RMp~Y_o1qFgt{?$>%Tx;--ned;P zgv97bOpru>NU)V^6;G|gjUp>gtBvi?1M?r64vc+XcD$j%cQ+VMnhxBBrV!<7(31nx ztlg4V6p{F@-x1NQtcuF)+q+0`nbwVN-@eP_0kH-cbwjRK4B>qzUt&k!NlhSaHQyx0E z<+|;Chxex#JxCCDGE1VF6E5JrNiNoJtA^1 z6OWBk=HPA2Gq+B(1;p&`QqzIKSC4xtYRoB>X^g}o9!Ue!*8Dhl9HewDoJwqI+qa1= z`0JgyPi|D+JJ<<=t+3_xpOk(zySmI)Hv*syS<<7Vw@7|UQicS%-r|T(H)im9AoVkw zmVLk=-{ib`#C{zq_Y%nUM9Lv4p?@^HNa2F z7z^bWS&1==sb2wPh;2$#nd(Totpe?j#(`r3{r(8Q<}b?&3Jf#Rmv*=J9@9%(O4a%$ zr3z^EKZSF&0$|W!pd59(L()wGe_ULU60gzb%H0fnB5P~>xKa9l7ePXF9zkGz&GEi@ zEm4Yvygp2%!BR})tgP)5o4~}1i(=S5?>Hp!2DV@i^vz*?aG|ChMvPR2_BegJ)HG)S zp1QIKkhPX6b>f9{(2|Gbx~F>U^DLkq0FA=N#w!cx$~`%;qfA725V`8<*wkUkj$p?? z>pI^%Na>6^UX2jMRaG6`g$M2`-$si~DmJR41HakhF*I-?HW9Cd^#n@xdhgOz)2 z!#DLpvF06KE zj+HmlcsrHELP+*g8F|`PFr351TK(>9o8C4FY>cr74iRy1p-7l%$V90R76Rxqnuq-- zsR*YroBK~XhZ~5BQ)19Sz}S+48dh88ACaq;pmYk0YnH041|Aq0if1ftdXC= zq$OBfE3GpJK`#sMVaZV(>qXn%6ohw3C#5X6sYQkc7H0y^0Yl3^&yS-ul)@QwP!aPrOe6yOn!ig=&+9Ik zvn4v4dcmWT%!5|Q~v-JfS)X^HvCB)u(SYtY0npRP?evc)?U1B7EVj-r}r zd>(Je4i1*k8>~+G7g4I|cu4z{S}R%}PgdH?rZJaVgQklF3XADgtNtJ|8ik;dnNCN-P(V(WyTnM)bH|4&q$elWo6lfqbKLw{ z;ITr1#c|AugRRwD!6`iAG?dgx={1<6I~z%LG|=w0fm1!5)TsYYN$aN*9NwuQ-Hs)d zxD_WbUn0)(sBqd;oOlpR)iL%$8gwPzX=mv#E-t~tt5f{c{}ViyxOvEnhB{o>(2(3D zApryR&2%hR98cVo5Kd@gLy{8He@iA&#`J_80KiHZ+)sEWk*;$xz>f&Q*fpA~mY+S) z)Jhe(@XBZ*s{7EZn>ppxH4>{a|Dy-LfipJ-HK7t;B)x{XLk@*$UWoqCI@1w)#T$4G z5m=FXL65zTaSGp|my=yy{7j;fiV^DWo2Xk4y#V~lx-`n7)LX;@863oh_Gxbe5x*8xC!nhJf|k&0Z(LJ%l5J)}&ER~o5VT4KIeI}mh@m98%Rt9C_zIri z--|vMLH%x4@N*D|NlxBQ;pMOI*%l?6OHLMiJ~5%}<`tvF9U5oe^%2%5mlY%}*00{Y zm~1Vb5RKB5i3Xw)t-Sxf8Av9v1&N!vW_9%!+xlk6zm6s3zml_fP*r1GAy0gs$d}!R%FFrX)!E7S;_2eI%WUNrP*HPy6?UwwEq>!4E-66j9=NoFZB9{ z&tkPnm^Fd`AHk_Zcm)3=C>H#dSd?*)* z+N@7DaB5#kFX0~%XC;nWPRUV=#~g8M*p&p^M~bmpy^6ml8eoopc!!r#LfiC_6GnO; zW&xf{hR|T;_@vSFij*5(;npdE=iPz9cb2zP5*1g75TnoE?w5~CWg0tg0=6DlgzkE8 zIu&YEz_A?ZRof;nKacn=50CVwbT*CCuQG{A3JtxS7p)bl)&U|=@9VQqUk-oI{UZ8Z zV4Q7k=Ny0cAfy=mS6k?otv^|5k_{;8SV8(1hGgkF$$g2VYx3i&&N88BDBaD81HXB!p zD)LMP`1T2f?1Z#+qeI4C-D?t)cXhFUbrU!Kqee00mNC!~$aKUlSEs?UFXWj~TEFoL z*rFKo4EG0#+jPcU*a|ERGKFZut0{fmKmHg^{)S4VHfELPM&qs|!TE=n?^}j= zS2P1mvPHipqn0)85Mql*t=lk~xqMjN6W^aqKEgb42d0R#{32v1Av+9*4-jUaXr4Gv38`e@eO z-4lbIi*|TwuG{Prh1${CGBpXwIg@pooQFrK23_(fd#iP@+mW>0r7VSix_zlM^@5m? zfK;J#eZZRaZO37`W_#kt?N*qzrw)4f(DMG>;%olhkr=pX!zfoZ13;@iZBH4u;v-bh zZ?a@;{Ez^BQ2&>40|0`9y9zK7W|!7)()I{;Ya_mKYse`3OjKW@WhVt0cp84>{dCL* z4!lrsG+FalIIw^6iNGT|TjqrbHmXvuNzKSGG97Lv;VJ36lxfo}>gb4+R2XMAX`$Xg zVnnC~?{t;xby)qp4BE@KBz64#k&Nxo`oS*9pRIg$pWO+9j!xl}nf^fdQ8 z;s=)?=qnPpPCQKKCivFldEfOH=~aO22#<8dM}tSX>r8AOnIk!cIQ%Z`HQksI7pZ^& zMqEwtTwcbmcYdC8BjEM;4>`+*nYKHOwpMQ1qPF4#%+}wvZkZF?Qi%sS0k|(pdzA^7 zhtq{RZAY7Qe4Z~5W&lkjW?SoENnNwwXOQt$63Y?8Td4WPgMak+8xuAX&N{6cw3w9= zzLCE~8vc zvtg%=VVWAZ*6y>@6!0=8^344E6FhJGb{%a|GSC2}#9z9+{_O3sTz76R(wX&oag%4c z{*-`peY!6s3|_Cr13qp-@aT|)bQOfQ zVrl{dEmE$raeKvMDpx43I9v{HXL-f7dFvUX%%oWNAqs{wZPsU1-3dkG5X&D{D0i|fpFpo?ytbk1HE>IU%y>ifTt6alUVVRiF4u#ACaD? zE`yM7$dYjR{7qcWPD_8`L;qfI)-r+qxFP>IBL6Wf{lC2V-+KA~#f8`Zt!tMCY4m?d#E^p)8@Pg7>kS$f`sq{Zl zc3Xe|gD2Hk@V+P^W2ARI->?q*ndqb-_x|0+#un`?KVxKdSmTy(STbs&dA$?zLx6$S zL1`n){*IT9Kio=pDk7X2>|J7lwY3b`=_j0Bp>X0f7X_*4RW_>vk%6R`bdm1y*>hb z?Z9t=jwyzf(mEz0Y6`k;%YGD!H|tVh{V1fYNQv>b zJ&x|V6Voa%uG$9hV`>cF;h><}H_Hg(N@xJTowW^}>}sjd1Y{otK9bl|4#hiV|B&j> zAmjy-W5rRN2~vGhKta3zIjMF0+jj8AA4d4VJW-ZXiqo>ITo-%;^l1kIknVhQKa6~X z4>Ac|Q=2zjd7I4xwQw!$9HYofZOWd3nP35IL2GJ&1I7s13NCO0@NNC)!*WT~?+2m}I}C zTYsaF>0z&h5+iIPEW;Uatzya+`);v^l&`;0T;mc9nxc+B-N;~mAW4gnLK)vK#WOAo zQi9hwnktYkZlqoNQddWWc0^Z>V8Foo>K%QKzCM1tjvs!&pAdAWp@VW2dB7W5TIqVf zP~X}-EbbZ7i)x^kL0Z-l^wXUsjux81=oZwCD30*UGzECio#P9w)pBeym!MOF5lvg` zjw7{je0)Y>YiFAkZCv;HJKGyR0sidNFF^9TR?yh<8(|H?I|&?vA~DR0+SYV_-yfxG3%Y@W`wP#8lIw&nD3`)cxh(C)5MpM_8!hdkf@h;b z+Ru|r9Y&k!{|2{sK+-e|b+*|>RGu`{0wuX8=iBawU?67BeC|%SX3Kk_q}MX<5A=c2 z#y$`#FUUg=cy*ZOLO4&m2EAC*cDkyB$pEEV=-1&UZ|ndllF`U% z_uM9l*GE8jlM@L@bs8IX%i(9uGWDJs(i5>Z+jk=uj2M%)QXd+R_QlT^5hM?V0K$h& z4j6!Rm%4NX;lufQ=%vqc99)*qok+G|0I0+8E_?f#^v?IyT;c2>P8TW9k3usVu-k@) zrwj}Vv}~PL|IIJr(u;Fx7yQ?U4{5iL-=9pY3&Z_;K|=?6Kgza1T+C9}C9{Nv7V&V~ zA>87rNAw`&?}J`-Y)z@&hX8CXsrggetcb5fnz>%AcOI#h) zuk}rFj@&Uv8wCzi4^m=kIP3NYSw`yO2X8Gw+JQkDdYn}+@m=Uw!6 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-5.png b/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-5.png new file mode 100644 index 0000000000000000000000000000000000000000..7824a78eebdf047a82d4d2f8baccb5bb0038e153 GIT binary patch literal 33929 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-6.png b/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-6.png new file mode 100644 index 0000000000000000000000000000000000000000..262723f68e2f6c37eff426709c6141f2aa6c1fab GIT binary patch literal 16696 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-7-240px.png b/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-7-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..fb67e50117a615104ac2f5ab63370a84f1be03bd GIT binary patch literal 12321 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 XU(-y5D)YYM{V<@fijtM$27&(tUB3Uy literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-7.png b/docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-7.png new file mode 100644 index 0000000000000000000000000000000000000000..8d99791817d5f543a950209c696120267d4b704c GIT binary patch literal 35009 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%0A}Nc#5oBijwI@UfSgj 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 M?EZ7(#k;@#H@u!*;Q#;t literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/default-azure-credential-sequence-diagram-800px.png b/docs/azure/sdk/media/default-azure-credential-sequence-diagram-800px.png new file mode 100644 index 0000000000000000000000000000000000000000..91682fad0f55d7b477241c673faa7e5b97678d55 GIT binary patch literal 23309 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 LOQ`3%*tq`yW*O5| literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/default-azure-credential-sequence-diagram.png b/docs/azure/sdk/media/default-azure-credential-sequence-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..e239a91d4f6f29fa566cf20f5ab4ef1a08d854da GIT binary patch literal 13034 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/dotnet-sdk-auth-strategy.png b/docs/azure/sdk/media/dotnet-sdk-auth-strategy.png new file mode 100644 index 0000000000000000000000000000000000000000..9e5d3ae47e507f668e1932413f947f22f95ce94a GIT binary patch literal 17936 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/enable-managed-identity-azure-portal-1-240px.png b/docs/azure/sdk/media/enable-managed-identity-azure-portal-1-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..d601a83a4f19f5d73a4fa41b36b9b270032314a5 GIT binary patch literal 9038 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 UZ=lt3UH||907*qoM6N<$f+Crm7ytkO literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/enable-managed-identity-azure-portal-2.png b/docs/azure/sdk/media/enable-managed-identity-azure-portal-2.png new file mode 100644 index 0000000000000000000000000000000000000000..a3c9a78172970a45f8a7ef4b838ab2f957deff77 GIT binary patch literal 57504 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�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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/enable-managed-identity-azure-portal-240px.png b/docs/azure/sdk/media/enable-managed-identity-azure-portal-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..d3c0f187003a4dd4e83c096cd5324978b50ccced GIT binary patch literal 49416 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 UZ=lt3UH||907*qoM6N<$g8dnsIRF3v literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/enable-managed-identity-azure-portal-3-240px.png b/docs/azure/sdk/media/enable-managed-identity-azure-portal-3-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..6ff33c937ca160195caeff4e2ef568739cb09f05 GIT binary patch literal 24596 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 P00000NkvXXu0mjfRDmo+ literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/enable-managed-identity-azure-portal-3.png b/docs/azure/sdk/media/enable-managed-identity-azure-portal-3.png new file mode 100644 index 0000000000000000000000000000000000000000..0b685fd774355a9bd5f2eb4ec5fcccf7679ca3a9 GIT binary patch literal 55498 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/environment-visual-studio.png b/docs/azure/sdk/media/environment-visual-studio.png new file mode 100644 index 0000000000000000000000000000000000000000..5834e9521e23e33d1a3e9e758443375654cdbe3d GIT binary patch literal 25283 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-1-240px.png b/docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-1-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..2d60bde98398338ad0074ba0fc25c3b9ec3e4881 GIT binary patch literal 15183 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 Wf=H!p`2HWl2U#g4$qI3k(EkA2G}!0> literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-2.png b/docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-2.png new file mode 100644 index 0000000000000000000000000000000000000000..f429261c5e103f9d6f42b749be5dda8ac40a70f2 GIT binary patch literal 30079 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%0Aj#wfj$==0Q^j72UE>kD(Q80C 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 L6eUZ<4gCHCd!Q7N literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-3-240px.png b/docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-3-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..47342477f6bf0e89dace0acb664c192216768a2f GIT binary patch literal 11464 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 N83{%48d0O*{{fw-J^ugz literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-3.png b/docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-3.png new file mode 100644 index 0000000000000000000000000000000000000000..75816e304d1fc5a5c4616ab071f2c2ae05cd6faf GIT binary patch literal 31787 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 W`E5)ZX#so;5fl0JzDVfvkN*X9{7ZTO literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-4-240px.png b/docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-4-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..dad36de9ab32fdf47e79fcc557b5433e85b0152c GIT binary patch literal 12389 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 aeavVXHek78-hUB*`68ntT`6hu<9`99b3{D= literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-4.png b/docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-4.png new file mode 100644 index 0000000000000000000000000000000000000000..e11a264f362322d8e42b26ba528989aca0d0f5c5 GIT binary patch literal 27438 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 z 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≫SiofVm1Z@grY1BfuznJQx2FF>_A7E4Rt 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 a6Y4>`uXF^#zyx{_$nlcfMe_FnxBeTJ@UuPu literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-1-240px.png b/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-1-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..2d60bde98398338ad0074ba0fc25c3b9ec3e4881 GIT binary patch literal 15183 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 Wf=H!p`2HWl2U#g4$qI3k(EkA2G}!0> literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-2.png b/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-2.png new file mode 100644 index 0000000000000000000000000000000000000000..f429261c5e103f9d6f42b749be5dda8ac40a70f2 GIT binary patch literal 30079 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%0Aj#wfj$==0Q^j72UE>kD(Q80C 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 L6eUZ<4gCHCd!Q7N literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-3-240px.png b/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-3-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..47342477f6bf0e89dace0acb664c192216768a2f GIT binary patch literal 11464 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 N83{%48d0O*{{fw-J^ugz literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-3.png b/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-3.png new file mode 100644 index 0000000000000000000000000000000000000000..75816e304d1fc5a5c4616ab071f2c2ae05cd6faf GIT binary patch literal 31787 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 W`E5)ZX#so;5fl0JzDVfvkN*X9{7ZTO literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-4-240px.png b/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-4-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..331065c228a95ec0c7b9125c812896d32f7c6861 GIT binary patch literal 11047 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-4.png b/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-4.png new file mode 100644 index 0000000000000000000000000000000000000000..fffebda95dc2ba72a7dd8cb100f7715b949ce497 GIT binary patch literal 29245 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-5-240px.png b/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-5-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..d3b0d693ebb098185b903fe40a83b9d32d54987c GIT binary patch literal 14043 zcmcJ$Wl&r}*Dgv(Z~_E(2rh#UZo%Cp5ZooWy99T)!Ggo!?rtGC6FlhPF2U{2TXpKa z_x?Ed$F1{K&CKqa>fW=bd-b!P^{mxVs>(7SQHfFE;NU*W$x5ojt`~4{??{jlVXd74 z6f4*T#YtAz6%Gz#=s)jwY0MZTurHC^D7Sxy6dv_d0pq%A%>oJ6EiN13$H~+!u`wAwCdp+FmN z`?ABMLdQAYPb#DtLDtR_m7?_%g)Q^S045 z^16=wiF@k0mTZ$G@So$urP14`)u$iNfBl>70?R}C6xNPkm zp~R?0I2yvF`i1nDq2H^gOU3 zLq_yQSLEp-!FjucqT&1>rC~zMO4#wkn&`biZ%1?1T13agTJ5vUYwyPE2gmLnGKf0E zjw_I5W902+UUZA?^}^_K#Z|@m?BsLLoyv6mWt7o&WBwc9eMGyp;bwiKFCT9*9mF@4 zKHo3>%g|_Et{{gi3bqY>41O!Ts)k04p4KnRZOIr!1$+aa?j8&SsKGmJZX^~ZZnzIr zS`+r5=V6oxW(E-AY&{3+gV2-F3!{oiWA-G)1C9GT`u1cwS65-UJg3kFel)m?C+f^n zsUA(qSp$HM(1VYZ{dOpeU9lUVYbVVz<^+GOkw5kN3@*YV!r<&Asn+Ed}dh(+M^NiF3NAXm^g9RwoA zXEQ|aJ6r2)_qwFI-k>RMUsxoxgBxHh03&i2Kuf7lnD9th`z%Sl3|dz>mYrl%P=^31=Z`3tY2h?YiMaS{c#p4iGMI3XLP--I^`Mx0_pB8~kfQ zl4)c#WgW=dA5L4PC(Xdo#LHHv*^b=o#UQmAV72?q zKO}=x_Z(-Z-y5oLnp2;g5y4YqYHpqy=DP1>y?;F$H8*ptT6uekra1FyQkMi=W;+~#> z$A=t#SLBGn@}sx}r(ILT&vuGFrYI(6*v7CHJRmggKaPR}r4EaS?j8QX$p70_{QvCa zA@klYHTJkCUzR3v*woVnC)CR*+ayRSe0BN)T9&uxHhmzt-uYPGq%AUXwtt)0z2aLs zHikpr=JYCLPr&MQ(H9_JGN)wUhGjYe72o%Mttdlb)foka#l^alLpSS97VLc!C;B*) zF+f#D>ca)^t#n#E$Z{j@wrs7-TSW~pVlWzxGe1s@;F0IF#5Cgfn&2;f!Ui=AZ zLlDpi*82_cwqLBmY3pKG66~nBUD9L7_Pw3oI2wit=~eOu+#=*+-JG{4_`#s;F?ys5 zugxO6wI=vAy(y@kb_$`0zZ5@NjFgRyjfwHk{PjHYZ+iRKF$!AWBD1-RR%1-}h~i2v z^e_;8WXeBA$fgSctWjL<`)0hkE2)C6RUki}VxQ+;YC@@=6*X#EevML*aN^Y6sCbN|%+` zmYM+^zj0h}I;8eT^`q7nmSMg$PsZRmrV`sEJ30o1Na)~J-HO3hj z>s-|HW?dEvg)*R~rloCED`5>RSdwn4S4fKF%cwaBouYq@lYrD^0+MRyK`cW^$q3Ql z^@|x7>CwJ+{rD7mIJ@9NFR=2lz$ z#Uqc$cN_HiJkL5H6XkqbxCpys?)%mY#=gGMW+Cm&hHSfy=9~}XhV=}1B`M)pyyNWX znx~JvnfY4&do#Jj?e5?}@DtYQn9{w&@8AjgWWsDEs-}8;ela*9e1;vD93pD_bwq?avQuuI!j>cHWj@{ zZ;aO6L*~PIEY`V^LqY_Zc8W_#V>(xP|Kp%g5nSh*Lm`eDYmO){+0J)oe)n)e zQ^Hcs#IQ`3@gIsjA;*Y|NE2<$7F3_;bLET5TdUbhu(rQdjU~5rHNZ!BoVwiB7*0@z zwsFtZ>;5mw`d=KHY@?Q`(AoK&R2_=tnH&~YYEypH+$l6!MIB+294S)|z=0vz`NwhK zCBhG{uEjHLekitAgXgb5qA*M44Y{n`A%xN3PAmB5DOON)p?>RXX{ilg?o@WiKl#YJ zY+Zwyz)oEq^G03R`gGJ3G5p4pm`azY1u6|U(8-KyYNhD_qyhNUgy`5&l5kFZq>wwE zIbfW6g`37#4`dTwPvO4kLSqnJ5wuA2t2P7z30d5i(9l9eijXbi3LP{V85vRKj#~i{ z<4T#h*`XUO5>Zf$HUM&z=|e(7fI#3+Fw@}Rpr)4AmPJnCg0OvJ-gL1l#qk4}>~mYCugX2{m9UQHzdMqb}+LJU%{#k_3d5uvCl>mj)NZ zGz;It!s0`S82aEBHC)*EdY#z%dX6q~wo;oy!CYfq+!(39tOQ$5I`T%BJsx`SRSZm^ zqa5_~BswE`RX|A{J6m_aX*ivfnk-#%=#S4ww#Shp(9BXfe}7@+473c0l#~<#YX(}v zXviqEzX2d*i245g`*M)9gv9#-)yUV^05BMAZErt(=(g?B?l5|W;yewS-3?8*!H$VH zYNn0=A7pALS$E`mm8SS{#M|Jh;eIR|OxRfak`?%lRR(JipzrODt>wh00tL&uoA{P3N;T2l1 z+$3;oX^l3aKhobOveB)(EBZC-wRT-UoO+aHh&IPB*T`tilf;YC4OR7g1|3mmol+;A zNADC@4U|cz!wu-A@lkjP(GS=qg;I8WDvnm+k`19?gMf(>%B3i{ZFJkRla15M5Tf$-9m|N12}mY=y<+p4%Oe9yDC)< zF(5yw7}Xf(R!XU-_a)~q!5O878Nf+xO>?~xe zvPB)cBs~y_>Zf}BmV3EQsvQ!csyYm$SK-Bzmy?&q&!7$+Hoxc0LI;&{2ni_){S+2vE#SaX#D5K~jrAL8|2L^8@+YU0<|4TT(dqYK$N zID%`Ab<(9^CT~_`wiAOeu*D84O_HS{BqO2Tyo2679G)H*b#z2~QHk+n!#qr^c+VGs zTq-Q&nLmFdnbHa?J4sr{rL?s0{9j%ezIc1{!<==BC<7>b@p$4gb#miqBSShPhyAw&ojw*_~aj zt+5N0w3a?M8(smPaLA$g<+hZfqU5EQP*Y1wqOz4LuC=W#RhGQzH+;i{h~K~E|2hzq zsG~$k$Sk_c4^v@8gh+CVvF7KCWa#Va$^nU`+{*#q>VoWe1c|Ep#ZbfG$26l0Irxpm z0OT_7(gB8wpY!QcChM$csn8+CIsi@)5oK3bE<8NE*!cLZyNB}XN;BBh8?(zY;8I~@ z6v0)vfs&Fwi5G0{aH5B(@=3DhTMb9!?KJ3q=|6Sh5D<_zGkdRkmp(!;2vn~qP9312Y(%}-aV|$=?d(h{ zgb$A%*lGWU5TidL>8am>Ixeo|jw?0T;b$n-zki)HW`1yR(06`UaEt*|l2~*njUO9z zXhqXf%Z!vhJU`FJh#NnoNmAql0u`Ck#20f9GNy0@bCors+|YmTi! z;e%V50ZQFXMrKf`n}<6L{+##?%AG%XDCIX7-8ae^)6LxB>Z&0&W^c^5YGq5*#;P z;MRpdT8bKRa;V0JN6p;xPHy}V;Fx9O2l(JasKj_f%>e?>4K#7g{Nm{a1|l#giW;K@zItRZkRPNdT@)95M7z# zI4(Z!6Z(e>AE8uMcc&S5|AzO{^^ss3$Y@-+2`ns$8aA^&GA~LXMMD+Lmcx5Ym)WTU zyhlUm?Zkk+AOI7SLVep4bzD3Mz>up8hVp!TvO-BeyQOlwu#zqZ;Z5~Se1T{Sk!8K%>p{HegV)gygc(UK-ZtvJx-dD}t z>^A}al4BmafsEOI^=(p`nVCtNaR`xPQd3jYq{z9IrKqyY)@u$xJygIq@EUJjNQ zBJb5i$T(`e-)uWIGc{NjGoyp?l=JIgi`lg`Vei+k5M;!V6yX9+B2`@Re#&LLbTF6+ zcF$!yd9fKH92}m)+`uLbCpy<8sXmc*DBBy5`TP5)M#DHBFYkjORVd4v3-yBi za%81Gub_L{tYE&1`%>oFjoYE{?p%`wnb6Mt*QGVzxkz_G{px+(t|!uy-RTYfZrc6t z!$>m*wc==>Emh8x8HT!T5y_HaQKonSMG-tc#ouAUK(^i2W&Pm2}*=VXunfjce5z86~e28ljFMK>w(1FxeO@6NokrjjPK z_Bmp_8>Ftm=iQep9^nu;1Vi6F+Q(6@orbSQ@mSkOmV}!^fsb*ukn~G6y-y<(qf5=# zT92cqC##oK!n36QWf<3cNnCLHd~FfD>jHhAZ_f!2cN@{=PWZ75okrdu zisv07X$YNhvMjB&Xj{m}L)=@6#Czv(wmi$}f)sNuIpuu8u}d?ngEPMAORikPVRXmt zmXJn&sOOo+rvW-ruI!1i>A-&+uXnD#99k(>Jx>{a=gVsVo$jm=S?VGy!~LQLaxsdj}H?{X#m1eY1>AX67l1%zvy_z)N*Jc2@jCAR>-( z_1RDmx*1SuPjqf@hA^$D7)efBI3v7|{T>kD;1GH)@<7#lGkIRuR`47jz$gCq*isul z8)4u&-Q{f?YvbwZ-1)$ZVqQtX+Qz;xb)0i%ZA4Yh>ZU=;+^oBt``XKERYJ(=jd*XO z(yFTx)940%uX$l+ncQr0B+e@h{Q)~@>|QqZ;dr6Za@Rlf4{mN0I&%gqeQ~yC)zT1D zZ_#<PKET;M~iDCN@9 z&>RShJ0?S|x-v(;ulF%-V|Tds5nrXJEqmIrCm$-hKKefY0Y0iMe`v8Q)<};(BJh5h zb+2|sx&*Ut4D_@(qq-q!7Lt$?h?4&l29OZ|XxHjXX!VN~foQ8D7_{4dm8fg}0a(5q zg?au9`80rmJKj*$+5Jg8aybbi`~S=k{WskH|I!Azx^gZ?q)p4(`08?J?`>Sd2s`#l z0DKvHN7Xa;aRQC#cQ?AHReWS1@_mtJ($}V5? zYBRm~(kP43gfXG_y1=y&Kjek_YM2HD4k`R$VWK0YIV`3zZ^^^<#`M_;%8j4A+1xFo z+hNTZVdzg(?ffa`H>cf(f9O?5N!2%w3=NrEH5bk6U(|XRf?H*)Muj~#MA{oRa|I6* zo-*Dq7v5)qI~+_me4Q9DIRwN4T$FUMxC?D7TT>5GkdDv5d=XqhG91`NE(D*m&ajNr z7%5_*Ozak6K4Vh7rdI+Orway=2;(em^y~0dY9fltl+_G)32G4uI(#p9n^Xx@w(NAL z8W8Zhx&qnmHhP1dJW@}mPpAwG`it&rO&8aB4~02GsZBSlK%@KQfyfpuf(+}efbs3V z*B41MHQ;HBmZVj+CX?FNujA2p%#OA_dMj7mR&OMyFKk=RQk%paYPfickgGVRidiBF!vrqRN=cXtO5hU z-7-#=PZhc%2|ZKF%DF;u5S-#Jzt~KC0yHvh4AS%Nz*DAw)=Au{}N93#WxxO z_OBCo?~h?@6w>5k}K_s1;Pnq4UwQ@&8@*z=`}?{?1lfZ z>Q4{w&jT|e`20#^nzMPJhV6+VGAj(%zLuT7+x|7G3^Ow`eLoP;&TdN;zdJgX=>TA1 zUL%InQ{OmlG|JzpF*C*a0xUAwq7HXNW!k7c#UJj5>8#f#cuIgTTJ9^4My7I*GFXtR zm-`K$H9Mfo7P9)$@YCYXn?tSRRq);Emj!ON;+lt3HGcScCA(?|kl%KdDKtc@agF=( z-A@M8a1;GND(2}tGPYTYueyyUT&~CBo^IKS5J@$Mnkl|xxP+0ZpA}Pw`=A>3g_MDR zZA9l>y7x(xWWJ_N?Ld4MH#L9`pC&=QCViG4Zhog}OC|nxcM_S^^qA{}qqXVNci#(p zTg&M!v?`s}yr`CU7o-lHN=GTZ7-GdT?M^gy5#taUVMvWQoM!e=C~~Z z2V(FJFC)j@D6qMx!OFI?&od1^(_{pr_9Ui6OS7%JBiwrK>--?8Q^idaXOx;vyvz^# zXf5zfWGd-e*zXyKVmFK8B{GLg5+D+<9y&6@IdvObUpzJLy74A*_FJ3WP%vUYe?#JD z52)XP07s%bmcD^c5qX}~^xD6<)g8ym|KFLD*Jd=LU5uOhU_k}$6`l0d&nNLb@J}4H z<2hV>j7fi~F_t0W%EUpf*2ro9lTYzyt4PYC(Pcm4vKOGP6`ESwGde~R-VC9O6k;rj zPTTqflizvS*%B?L$3By_RlxL(o7 zG`Sg3&R|}`pX{@v@fk+jC0`9oeBENBSES)FLTX-3U`iWxx3JC`9BZZQ+YEa&D$Xq7 zyWV_p9_6<_?EZbUnVF@a#nS-- z+PYU`F<{piE&5(3>E zalQF_UFNZMUc<85nk2VHI25bk_L#3~XA_B@A9UJ$$aY!jsSWI#KHhK?r(Vu-vW;S% zeLkMP@KcN~`YVLPF5oX2T97{y_PZXb5%haftexrD z4hZ*AG0S9S0zdxp_?Y6s$dCuudoe2$<(_N4AMASHZLx!&?ri)ff^LQP(G`4ndejFX z&At`Tqgv+vl zN3QN?t~pkulbnw^Iy_N>Bmbs^$FWL^Q%h1#*&;hfHUIkYgk{PO#5Y|e|48_hIq$gh<=vmA+uOr+}F?vRp$@k9kYLWfA>b)TH$Y={0 zUGfL#c1TsW*Lq{r_O`@;Y40@5;*#$clA=A>h4L)T+j3WsC@im^1q^LStS+CmmCpr+ z>3c6wZo6+ugFEo$sh#7=1V^r_DXf&YaAjn!stlee1B?)j<{}_~nPrc>j|u)Dd>MLC zlG}?4715#W+Si~T3w_kb-w#gY)epxw1PC+WroX^+uKnqJ=(1J*@Kzg=k11XZEQyzW zH1w{ufXxjsKNeqPR1kOq2R`a6=upM|h=wx=Q02S|^>XzFf{XyXzW z@W?qU&fsRwNIa8kG&kTTm?EPlb2Q(5Npr&}i_%f^IPpr+T<`n3HbkB9B9xU^M9MEL zZjhCcH~X0hOu_(x|I?(&wJxYE6_AxE#_X22IQzA*s8`}AnWzc)X*buyNs z${XRrEH~&3a|f|s5oO(X*-I~ai+!tr9!r7$Qu(a8(jJ@ zGuyf88Q6WI+9gpI4;is$niVwyzMFMb76_*d5>JJ{k! zq57{tM-&P#l z^vV&^BH2T3_m>A)31ui@mH|~X>-i2()mn4yCebAT(9zI-jii>N-?k4huY_u+z40ZT zCB%&@^b;!8`h*&D?_VZ6k%D2Bum z*BAnfk}k?D^@c`;VYP-?=-$5sbS)m{P>=qnri}DGte)(@(ZX7b@=r@6ieUnyVz&#* zg(br1jf56EqDL8#A1!vvH&!k3u}VY88DA%?Lr^Q6F~~&ZXSdAeJCKkCEDi)N``z@2 z>s?iW_#$E$8lr~DEurZ*|fA=o}UXB@(zQ@km(Rlf9aNx7(4;&8q+URs) z1llB0(|6eD_5^#Uq1K*?_D469l%qWzh`I+!7^o3f`nh3d*{!i>tks^D`rIHcGyz@y z#V!8yVXaID7Ra>>KP^?K^`%QaZakB?Y&>8@ulnBv;m7Q}9o4cc=MKF6(J1HsdWchf z$mfptK26^)R3hT`lcuSpZN`kV14Y?wT*@z8!m01izj0Q-xN`)K$)`7I7j?bTh_2vS z9X}#v9voUeEkpmIe>BS@E3PTX>zG;Vos;~VJ(Vk{;6@bcyoqqcFkA2nitjOj?T6?i-v~ypnN)~x>?X5G? zS5qLjw4^z$`FLUNR4I!Grre9<_f~jY`lIK(jPU+?T|Za)n$2xIz&WdW07QQT#Q12L z#g%e$Yc}I06p3Db2+n`SJqw<_7)DxrxZWouB{V;7sWd7QsTewx@I6%N`^|k^j@o{H zz$1M3*R@KoH6F$Uh^D!YvD=y)H}K{y%L-=@i_XVayX1=iLq8o|1Pw{ zRnDP0p5bZZd&yj+P3fJ7#PUV>BZO1@OLY!-Q>*$0`R+m0NlDD`cJBld--9*Nnmd$> zOfO??TzX4`EeiNZb!Hi~sXo8MzZ01Z1|_)GERID`=#8la-oKZ2LGAWmV|bw2#d~*a zcw!NdmTmRAMWOcBB)vI&>7kL}^3R_+irX3Y`V==F8P*gTlt1;}hr*n!K-R^7Z8I99 zy$A|oG6l#CI&Q>tX$*>svn<~m-W`(@hR8;eFzq>M0vqk2@>ArZ(n5Lz2HMjr&39Yw zf;RRx#U(ZvO77gLF0^&>=C1s<_^f5a89Qkq-F6*;M3-JayvG;n>UvH_j=SUYX+a4{i61I{5};b6;dfR3o1~#*U?l$$oV6AU z$QU=aVHJA30ll#(Ds1IaA5UmjB+?p$CZ1!gQ%*8*5XXIr(%fuYJ_W}7^T1SFocpyV zigG2g8(n7)wM=KrQ(<@du~~{_-MOS-@ZvX+ht*>Y7Z?_7#8qL~l=pnVAAeWueLtvY zT#hIc((hlH9#n!&E2+EW{+|fr-2#Pg?DNJ8nGU{`RDt~beRAn0g2=IRQo~PuHC5vV zNp0L;`?IZfV&0>>YSIN?#zvg+KXFymHL9opBxE5^9p8hxwe&KFqr= zaxJD%CB!6d#OcbW0Lnw3$q`xeET+%=hX6>-3yu~q$~-C`2++#Ob7_=1?B>aj%Iu z5mHn)=bVJo`sQ8S~_ zs#8B3sxqKG{Gw06)ue~9`pbG}D!ko)`72{nI5TK4ViVX=5%?pGSfeZB9L^nR4LWtJY4nzuVTb}lz0|AUCR7-1j=lwit@gj z@4dG*7I7XQP3{$T3d{IbvaGxnSVooeNAPNlC$GYq$b=)YGe-xcK2MPgDLX3n?|1$h z-;dYOq_XRJ6Iq#}uw*x>w|r24oXU~7OXr|B|3qh z3f<1a*}2+uvAwqiwX<#SHHVa4YJRP&tB0?(bar}kP`-`3-V9fwS;chq(6qYwYa34{ z5T;FLBIf#$ek!joCcA`$!a`010cpc4i)+mcu-5jjyEVd}pwkA_ndtO+d@N5H*o!%- zs?+TuoEk1GT|_D}KUG+YMKI-FZ}&p?I8AOQe$(J1_TCCJ-~23GMr~x;X~&M@dT|Z2 zyPFW40rg$~QmrRvR-9Ah=&=9XHhhJkq|fJp-UtpZasPZvDiU48H|vhf&ALmStsS^| zo^1!B3lraRa2&xy4I5Cx%;9))E-+y2+IZ!u7$qMhB?&Qhdepg#9)HC{Xwa?lBj51s z32AZK>P$~l7>TkV`@qdMJp0K9kXBMjUc&E}SLV@!JjL|wpNL03;r6A9U%2-v(o*v| zWrE*HhRrto^y$*Dv1j-df{8%K2tzIM&j?V378E^Rn(-U!ksi}eKII8jj#SbzLEnn( zP7o8f{BK<)jx`xQ&v19lfYiqs&ipHjo@!0{W_iq`A@qEX8$ORyXxRtLH+grOhk-~cIJ7f)H~}ixV)26)R2rG(*pa~ zzusco=1lM5xl5AxO&ICNd^+D2XC1H-?MWhA4ID{M@K0Kqb?vG=|Zqkw_c{-h!$(#96U0l>Ge4c!?|-#=b6hnxsIhua47S1arnk#IbA;?Qu)eM@H zV>p$6Rp%weHAqIS$^C)okVK;5mqxUnn+zAg_9DeIOjlhGMyk&SH1LdPxAFevZm9g- zqF0|IjFPg^X^7^}b5^ghH6=*k$f-6Kvq$iM*_UH{2daGElzU3~M@J!RL#|&hj9O5f zU0p)Ykpfo8BtdZxr_!DwZ&G%>=lJNU$7;#`^fdPJkgwtQ>OHY;Smj1MyenQ&Gjdsg zx%FDTF;H(g$-TdExqS>|)srgWmHC8;C&pGB5R*3YGE<%$#F&Ybe{5Z2AO{G z{sHlKrS!PHU8KC_X)rXIFY zQecC@i9E@aXfzSeqXr!#KCfC8?xA-Jvxw6s$J!NyQu`jQT)3y{7<$nD`hb zx0v~iGhq5Kq{oi=YvH0phAKAJeg8yv?zdo6n9-&X+S@0}291WS{BgU9A*jh5EA-`) zHc$%fd};nYWSZH5*?az|mmD|B2zL1Kj^IJ@M{$7$#~{AjX9s#B90gdJ9>&=J${=)B zI2V+(unhT*0w-5_S({7$(yy5It8u_!O40z^$pHvx*qx+QsxT3{TT@RV`rbjE27(Q(y zImX{!_gsTZDEZj(qC_B35C1m~iwOU7Z3x+0M^w2wGr0-w%_oU-QImEwym<0Re z!s#vS02v&S4BolW9iUpH{^w+cO>m)puW_p}K--)~D;W;W8E^4p9XP18k}%pk1dbWF z*l}U(>;c4l7;6$~qEqys9ADphHji}2i>Axm#NhjdH!=25+iZ=ds?~H{trv+|M?(I7 zLv>*XvTFNqC7zoxO>-!p>Sdgl(O-bB0zl))VddDGt(a9>KbUHC2?!F<+HK7K%|FXC zmEVn5Rt)ys$I?U2?!1AkWY1$#Z^|J(`E~Jt1imkMV69S2oR$1^{)6(ZenDymAwPaE z(ptbVZ(MbE5xIk=S^RIb9%fyQOOx=Jr!Z>Z?V+?hQ5)8z6PS1UhXC(*rJLf~b{K?F zoAoy3Q2FxD79TTy1Rt0FPfd9J)*fncKdiM!@6F_4a5@|bGwJjF65pH0B65g#%#>y@ zfiKtdp&pLVn#PxAK+j{N8sdBMo-Y1h@l!P8m1}J|U7f)S$Q;y*-8pq;g?&F9o6S-k zW+E+gQmTJv5Es^G+BI>qvG^RdTLkx;E8J*~-`*&z=myz1-@k!Ij|A=}&vUWPT^Fmx zv+)U~u1}o|V}@7DLQCO=Ziq9wOBsF|_z2yE80%a0|&=tWj0eRdD6<6vBYef+n6 c|25DUF>-U`3abuwFbz&lN?Ec--1x`;1x#LVSO5S3 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-5.png b/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-5.png new file mode 100644 index 0000000000000000000000000000000000000000..0811978d13c82f196346a09330b5018069cfba8c GIT binary patch literal 23053 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

    O(AdgWD!`WxQwN$R0PWwp25-Mu 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


    *5hq_EZf95jecPiu_VeH zDNPn{Z?#@71+>2vc2S86&#uXv;3cK?KpaBuc*Q>Em>XUzvB{?P(fJ#Iemzk14i zE%AbNitmX$3Xe5D&evfL^nJ`qiC-qd%mEyW^pq-0YIeS}J(E2DGQJOw%SsZR<3I%Q z-Kcu+>4=zlfmHotx@o>+}u(ds{wCx0vM8uw=V45j1 z$i8J1kR5-m@aYvRac>QA2W3`vlI1uhaKTBMFadvxF>lxSMT+ubF_^X5f==$~hj5`+jUIL_2C(a2L6_x1yxV1vn)Cz^vPhmq(5aRkP-mzeJ5F zF!aGpkw>S_tUID39TT&izrsHB5}}4M5-1ha2)&6Kt&JLt?RS%&-Fk%O3wG%jsZa$4_y>;3aKTS1zz6G{*X+HPPdcyAKG`e`$IX(9 zm7^8meRch^-AWH{n(v>!V}lh5E(M9=oxB-)BfE36Z zc#z(sq4+zw=V(m}xmu$YQ(@GJfDB)^jkQ4_LD?P6@yH%JIP$<(uEbK>rLHoO;ILpB z!8;NRm5)i0-2}+kV5!n5z)u3ql_%ePv4}5>!Q`*PJSUU=Z@jG@=TxUB+j@D~&biHY zWe8n5`AInaebJEkmWM$LTdxnPlFeQ8eu`EcqhOVgniv2U% zQ#EL)W>#nTc7oVD9#wOfcmAiu9sI%AR!yErT%3!#2)Ci=UuPhD(UD`Bq067o9iUEn zQ|J^`u#T=c-T}QYB>F?N3l?jeuaJ1N9akELN~um-TIu;#EFk+^;}86sdOf5P8;XaA z;9EpA98ZhFPTOhP?BYu`LErZMi3(z(o(}{{<4Q8K>b8;=?8vL$Cg3;|{D^{XzvM$a z$HqhUd75nPeaA{m<&V6c`D+~bS7bPXz83Rc?7o~F!J|Nleo~%94eK3d{=_qH} zg)==RHrFeerc;N_2TdSsdMzPyR{|9$cO_F)zLG{Pg_{i`fIkRPZ=z1BXI%Hedt?J( zZ7L#1Y6v(HrZw_g|7n!MCh=$NxwP6{t9TNiO*7%2Xpf zVMI(5nzxUSyYE@|eK61#Bp8WKOD*tf3=^3D;d}i5bglneg2(^6Ki11%Os=5Ob_>UG z{fFjq=C}G%;~|Fb!R1#LIZ;u{dWfjefbjYn^NJG0VRz)7OZkDR(FTntK z&HaVJ;b!H}-WQj$UhkeP%Ln=(Ot@Q8Wr!4)4Li`j-gL-jB6LkM%Nt4T3|z`3~xxzO7_)l4uQ)2BIPX^-@9&$)tH>vg&4@L w-=l@}em8A*I9(UUE5X1Sljy&x1}}Ief`5l!j4Co;DW?dsl8O>#VunHgA2m{2umAu6 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-6.png b/docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-6.png new file mode 100644 index 0000000000000000000000000000000000000000..fb53294d7ab38f376e1e81d1d2db4167f23d8f9e GIT binary patch literal 23283 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-registration-azure-portal-1-240px.png b/docs/azure/sdk/media/local-dev-app-registration-azure-portal-1-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..2a611f35ee9bb7735b2567d4796fb1bcc3383e85 GIT binary patch literal 13563 zcmXwgV{{~4xNdCQ_QZD5v2EM7ZJQHkV%wNZY+Dm+V(a#I&pAJ;t9GxhRlVM|_oH`L zw331(A{-tZ2nYzGw3L_%@O%S2l3~DrpDqQ(yucHvtBRxuNZky<8E^n$36KYXfHWq; ze;7jo$FNRP+O8lVNWcF(Krv}#fa(}=-t+sq?|aV%O&Ya=AR0QbK8A?|E_?=< zD>kF76Bh9lsuULkIyHtIFVCS@0LRp?YBDz z?k!cS*7w{^;5+ur-|V8m6wUtI-F>hOwD`AMK)0mfnjYMiq`8N;T8|X_ylk_441PprgNz$lZo`eu2^Tb59!i* z`FekXjfKVdQ>eeA!|UIr_7Jm%hDHV!wqhQC_Tv#sqNDD-`h_jCkT#pzP8{47+fF@IRa&q!w+>9)l z+y6Xm^&;=*&jGCvMU8;Ki{9ZKCYpD5OV({{_eO-uUBGV_&7*pJDE+j zl}uFWzvo+e<9*!y!pBSueVgFwEBZdKPm$&Phu`zGVQcvPwwg#Rv;&-1r%z8$*S@{= z{10z4x#@;p!dcDf)+ zk%&G%^Yhs!IX^h<^pH=P{PyAdpQqTqa&@Qs9Q+Q+(-zmAOg&!mu9X%S(?&)8Uxt?6 zcNN#|+MG)Yo7d@~Ml~5JHXEFoLgriI%jxXaI!*>pyLOy58l0~~Sr87eYAx0poZkUV zOib;qt&N$pLsc=#Ne|VxTa#>{!P|FnXnKLbm&dXX{wR^Cg5Ez_v zi7mu&l~M@lNAy*+F+}%pJ{%%!vQm7iV;XC{9MK*Y7F2wF-z`L#4%5dmUe<36VABc( z1_-S%Io*^}5L<#HEF(e2BerV}Oo*h2JGK68!Y2G0V)Q5}vpOm6x_|4HrHlPg)>d1; zTTv^a+1@a*L%p63{ror)B8GwB)Zn3uai$`5Xz(`oF!4Ba`;{eIUwad>=ax(@1roKX z-@fSdqpMTdKF)wjLQ>c}@nm6f*`zk&h9M8cC`W>>Q;>}(7%a|!I}#>ee%7o6CPG>c zd#ej@G%RcS*_eEv?M8=YUA8NFKV#0u$VJOZ5JLtZG6}aEL@#X{&HZH+p-@9#QsIzT z?p$jC6_s0mfkV~omu#6O*YEm~wR+;JpEm9b3gvaC=Hg%h=b+|M^08WRdH7=0n1swF zj`w9-tU_BL;9gu=nSD_A*h6uiB~5u^S-v0Q#MzQ)Vg+?nhYfx-ZciuSXFh&{TtlVN zV^E-e`78WYnAxh6E3AiE2p>-0XUq;fr_5sEEc*;L!&$foA5)UiiH8soSf%`eg6s41 z4I|y2ihSKvdaj$rlRkAuGxA!(h`MW@53QEoYUki$Uhu6!oOObAI|b%pzxy>?Xe2@& z*YmK|i)FRi&R-mv(!QSo(irC29-VrfdQYd&f`6R(*M|7=<_6zv$k3uSs?(ol>W-~q z(=kA(TD`^tNV8hBM-NJ{bI7Le*%rHsxVYLe;5wyTF<52l>apQ@T7C&Lt5vI0O1m^9 zn7LdPMH1_48;Bg>?tB;0#1wL%fsz;aeMjzP5#V2)U*+ZFv_DKVT;6~~bJm;k8jEj< z2^z8C^?@S~oyC_e|0lREeUcyX_O1g=Um(Ifp6V7Za z2>TGHMs=3VTxl58V-E`#0=s|s1Ugx{x6q*(bD3DjBvxuQ8nt9pIt*JzD&Kqg&E<;4 zDJb#jQQ`4v?QYU%hdzGZupds{+sw-i$(?dgDjvLf47K(KfkxiWpgp(m;PTVcM$?xM zYE(<;_RI}F>|HHCxvQ(B!zwL6Kx|K^Ay4`+9}mXE>x*#5TI${ zM;d03oM>Azb+y5~QE_R%KvPwRqy$Jrwe|JE6>Cl$Ex*K=$L+g! z3*5W1fwlxsYR0tB5IG<{Oijr-I$lSFj~E@O>B(tIXP|)U5MLsyA#sEXvu`VL@{W#n z>uKylXqee_Ma+~SAu#_80lDHOAYcbwL|P`(OExbJTC2!i765EDR4T#daDX+RsnztF zvK4@VEslZZ>BvV;H~c1*jIiL&k2HYHgf}n?lcMZH3kY)n~|RY}H!mcR~50V!TgOk&NewPsBb z>okTQZOS~JHL(prVEZMkTTGw;V3+ZT)RPFAO(Jw(E$lmrq`s+!3FrI1NMAH$J< zV2nDBo)w{tZp%0r-bD%)$MObK%FV~t>i7cMQEMW+QDMQorACj%ECRw&+XK>{dV7P2 zSy&?MY22wC_x8;W5z8tPbVI_|{1v(aLxg;_nHWS_ol}A>BU4wRQeJLluCdlH| z+s{n7SC)d|v~{?4kn4rt{A6m3foolTPHq0agL>TQdi5GVvLd)b&e>){ys$Z#@jcm2 zZ*Ol02L}=1d%dqgvTz7l5b`{EQ!i}apM<1V2(hvJ0{SvlH& z+XuH(vvRT~@~Y}Md)a5vDlGk$UV)yD1@zM7Co_LEGi*6r(hoXFc*?CxS5|urc7JbO z@~#ubx<5W>{7C;qCK8@7x?lPO>Y zG&9@sNRHr}{~Z|kgx=2rSKhn`hd&#ev^k8Ja9u_1Ep4PocAOEEQ5IPeG#DD{%O}V| zE6|BO$f3|m-ru3nvcHO8 zs8SSH$<)-A7{Gx|!RLB7crJ}FLiz9i4)=e5vd_nm$pvnvltcu_?-W&*F=%rS8v!&@?V_TcY)8%@G)x%Z$ zZo;rhZDUrQ^{|Tcs(ZmKbXWNzZG^GV+kCkxOOq;09e(?BsuSlwMH~!Q`npQqRy8Fy z^(%B}FmvsK85(`ie~pZp?nXpwGN*D>u9uIi0tSkWN^xys#NLPVfnHDR)QLod#KiYL z{wXwf3gz_D0s;a<*RSd)z%|6rJ`@&yti5q9eGd4G z#RlqdP7h2@?NgiduIYM#e&d#uOa-8bq~t_>Q~XYQd++au?zlV7RjXWb0zMi!D2crE<|4SL7TMDHr6{(g|0_+@hNS3i0s@$>JSER&W)fM3s<&?h68fT=g= z>)8Hf!8dYkclUn3=;`IZR>h|s)U6>?D@p#Hk88os?CGHUsr6IGPv{W?j()?&^tpS; zQ6YuyZ;z?>zcufE=T)=YyNEC!uZ9he*j>u~FR@FRePaFx_-O?MK-Q;!>3icq3(z!a zE&Y5hz!bdSdOPb_fN5%UU6Zj=E@?t*)hl*M(e9s@)>s7vS*e*pAFQ&FLTzTVWVUM4_7 zYG*?bWph(hO!QoY&#K2>!NF_myo#o_J~GL@e~k+Nn%-@}vWXKW3HTT1ew46hV|r>P zt}Bz?ggNTTnAPv1#AJ0@PmCldCl_TBf8fO)kT|MZt3m8@T2whcZbVah;Zu~PsV)O5j>X*=irkYYbZ-Ly?sYjK1W#!0}AtN=&?53oR@>3yy z7nRKvCPbOo2<3+V@rX$^@Ffy|GQp>19av=;xXa!6(^ zbIQ!g2$4ZI-sP<=y-KyWw|6XTY$KT}^*g=z$)gDiwrn@NX^5W@2&8grs6Vvv@r}Me z9X~Z>W#PTwPw^d<1`BNicMbYK)Toy+4=0e`NOjz@Bs@Jm>9J&gE!sC~{ZfgSC<*8% z#sUkTgGLy6c$nHBiUc^*0NpSdSb(mssbB%N!`wD847()RppjCB`Bv*|Ugs+O_3nrL z(P|(f#W6MYtz^j8OJe1Y0Y-j``CX+`Ow~tjAcN2?M5kLM3QR;>>l{*q!(9{8Y}(xV zXSHY%@j1#y(HOmPMK)K)zuaAh(o*W^^U)iyrU!2pVP-T9bH{x)f&gY z!jMUvQ4YWChJLqZT*>LR>A45hlN3L0!c>8;;I&ZEZeiKcZ}Mnp=mfkPCV7+6x1{q) zklPO!lx%xvTGCQrTdUzrC3?lf{7%>zPKiL>P z=Z+C8E+<)YOAIv%j7PF|v@`84apcnJK9lbFC3uSCQSkY~YRTJLTRAEdl8dv(&FC=i z=1ZTW`~(wsFS^Xxn47me#F4`R__kjE{HG3=7dC{le+2sTeliks*Qi$?rV4S^L0?)5 zy{}7AG_ha@>sA+Z%D@Jb9G`gwpWwziXkz&-(6?3!hp$w}FHtA}*WfV8Ml zb6`s2?(CdQV8%ZE+S!Rty))0=t5Z88r^r-KZ`q8SILgNA0vi4^3+IHJDA~DNea{y@ zy6S7g0=Li78vB|aR=tt$%3Q1T$k0SZ>-rA4e~UM62oQpR3}1a5D`*jBPy|L~C@?d_7hCVCaW|Fep2-Oj_ofe{C$xT#S~*YcCF*3`6QdwcuEK1OT~ zbY^yTJjL(d*18c53`?>7P?HwzT0_IK2vBUj8sYwzTjQBt{S}QmSFPOoa^8 zN_l!}Gh&ADox10TS}(LSG&E$!3F9l6C2bWZfjMq%X;GUnzY)ZMi{?NL5CcL_7kHl0p+%2n?GWKK=R6oMi{eF=j6*;WQb^(yQA8YY zh|28i?(Xj7go5Ss{RM3lgjc!Q;iBRt8I9c7EP$}WNI_t$Ou_uI(b+2h3~*`Sdn?DNN&H-*GECm)0Lci zC#oCd120}aFG(*0DQ6qx`AFK1i6B>Q`mbfl@XQsPk)k%i94f=yaCX4T z8(d4iOnKM^1w z@_7dsI}aY*GBPmiOWdJ6`9n=B^>N)%7cZ2Z`C76W{qBg>ZKB}iCah8SwN zeVLe;V4VWn2xQEZr_i|X+`5~9Bco?xG9`mie*Xxluyb(0x*zK7>@;)f)vF`H`%4p3 zY>kJOW{!(ir%^3cS6Nx99I}n{q+0N%#*Vj5(&C_kein}GV@QCcwsYb)zWo6kQ#_l; z2XFj~&03#}M4Ood0}jxEEc5{^CC=7?si^{B%#78EiIFk`ZMwH73@$!9$lbb+F0nC!CFytN^W5JGL^l!ZpT?L zdrKh1%ek_I5p3tKAIcLoyg}lZ%DU|^dwNP!>iPBIO;fEzvt+|ju9}sX7oJXwHQrg1 zJg?jWv6g@^pC-t~r%Rt6g~%GGMZZEb=m7oRIqUCmKN2$uNE{7xJIq7=$e9h5)39Wd+a7FsiGUmz9A93)7|BT%QJIOSZ!>)jR@?vaRif4cWY!&@Zqv zAb^aeED_inXh(axc@)F)|L0Yw;rq&3d7r-ri==^?xvAwX*GbH0Am`%e zuQNrV_A0x#jre%NK@E{yDs_}$%ZR>5CgKmI(K_8=Sy|a(5zuBw`NbMT2nVm=x9()T z0lCGl$&qxL$v4Zs=9lo2BBnrkAHTkrzYyM#GXBpLp!4=oo+c*zxzoREFL=##>9JDB zDFSLAX~Y`B?1m)?22%Kqyg`4=d`8q(6RcM~83x=;&kFHaW>pP{Kev5Zjvak;y0Xic zFVKF7$RG?62>3j_;5!N%m03f81Ee#&cCu$rhW1eippgg~RGJ$hC%rr0W3Tz2i6cW9 zN3rt_Us|8Vg}%R@;DKb7vn&JIA5+x@0a#Y+-$hpD;^HFad-BoM?Or@fqnN+)Aa78k zM?ye)`|KMYrqs@Gleg5;K!K=Vl~rB(_~;Qrp-GRCOccaKfWpV!c zqnvB(cPb33I7_+=rK+_2qIW()-fyP$)-qc5&@v}g+Zs%$kOS^8XfVKg?2rb7)#>F#2C-P-Kb)Sjn@$I6`p zH>atI$!}goplhaCO8b7CSia|Gx?Zr>*yw9iFS@y=-T-TFsyRs260Z;Wzw_(=z6@r$o+J#!@5bbl zw(7QD>o{2Rk>X4p@A()a#)=g$*fpd}*UFHmTD8u}pr9?7)vQ*RMx&J0z<@N+&H!qT zM<;H*v6J0^cZNUC-P=GZf)ojCM7{Y5Zdp;<4vol*%ui!e|ClC{?5e^R8yaTuR%RL> zvD1L<)*2m7WVZL;aBz3$$ei5APBX_rNfGqAnY+A{>(o;=!%c&fUroK(cS2w1DyN0M zSoXh^)!g5;ue2J9@D7UCXXshd_7LP1&x zmVe#*_cfWwl^TkIyK3`l-O)r`V&W6d(IeQEWr;!;IFax8~ES%VfAEsq(xFa2C<2qJ|H+ zMjZ1z7#2CJ!eXkr@02x!k??>4Kwvb{8$PCj)K6=cFC2>VRQlXfsj$kZ^oulPX`=Qe z^|KKZ1z3vn;|4w_3NT?W-KO<4QbH=z+ocS3lPQy_R8_8iE<@-gEvSTFb6`Xnq`4+w0gYTTh)tslrmRL4TfGeN4 zNhl-SpLFTh&ny=ka2}c{uUJO(7%?!0Z(rI;oWb8iN_#pZj4FW!6H3c4LZja{oK=0{ zM}iCKR$z(~qM}@l6Fu+dF|o2wH?udWT?Bg*6csEraV0) zwbS8`#hO~TP!^=ByOA^Dkz$kEQccb&CxUB&o3Tk(RvudtA@=vGh<1Z{I#<$PY4(<^Sx~01y(3&{Hp}LTc_OYV zS1QsX#=^2ifG6}T{KbM&nB%i6xcrB#D&`hPa>oAWSkTF9H0wezLD|BD=vCc;Y^w$G z=3jSVw~$bWXFelCq&8TjhydrNI9;=C2-~7U%LueN$y?w$P=ws0Sxn;1lX_x}%#wSg5 z2v8JXQjze#C_LvM2D3oWO{C!-L|Q``IaQZQFvKF@d_@T$c$*lH#QY7HU_Ak>a}UiN zh_x`7D+uV2WVqJHruvLhZ9fL)*&q9mGBvn1iL8PmHngz57cnMa!J*RM^XPj3!GQZz z61y0m26bT%r$XjaE`(5#G9`Sexl3m^NS?!}U91986?ruf4Rn1J7YeeD;ZqoH;ko4$ zsQDsed_b(ortZ`ar5|f?d#^QcY|akyBBYj0cQ(@E@L`bqgzPOm zsmcTKV#=T6dYF)*e|NNMg5Sgl_+qO6VTiPj_4P+PzSKiAM`EuWT0VI()b;y533He`#QV~Rdnk5fSQg|xe7yM+*4wJ*TeBG7cX7+ujyVVx;W~PT4n8FIlQOB&{z9QMvpw8t!yrJa*Db#12nfc)$`Q!9-iPx-?~Gf9`R!hrhV05_uuSX0tc>OYoM8&)a- zJ(IP$RBo`_6};MA*NCnL`LF9D)7NI)84|Jsj(>(SD9DKD76*F2bm?nftU7Cso z)(<3nMI}g1Maj^s94g;|jDIW)4>=na9Xsv>h6IHda1jn!zZHm4LGb*AjXGxGcAlMEC?QUE` zokJ~8q?0rai^0dZ3Bpvqg&-5Etn?y#Mf97mSCboZ(Vq+a11HfHE4o5L zj6Ih*si(`Ts0mSzLXIz#gr!1EE7=8v!-NbE6LEGqSHbd2dk?b3*P7of4=M%#Gn_*< zSQcG2Rt|j)`3h)UK)4hr7T(?PRgQEGx6ZKK@pkQ=0w`_~x~RSdE2~W=dTZ8f@RYK7 z1L*HcM?_@>7y!!vNX6b(6-)^XSut)2UOBqi1romm!NPZ8gva165{yZ7a>!j`)Ur&+ zm>9^o!LXvJM0kM}+pRh($+4l7A$c=nCDO2GLDN#is5t@&_qHjeIZ|-#C7Hr1Q6TOl z{w>g@hM5yHM!xWf>qSv0#BdPzP|?EAD7{*l$B7nn&^qCjar`L9&+L4I))+{LAY@(+ zH4o9y;7A!EN5VzMKGksRi+|^BE^_Ia*#xQAPeQlDl|gHj1D9|SzHaRvZy7UlElISa zFq1L2gSK+Fq~ac6t%!`i`zp|FM04f@9GIldR1xi=x+48U90d63A;jvD+PNoF_K&Tj z5b$_WLO;tSR({QZv?rHKI1BmeKYpFTth|aS--NoJ)g_ z;fhEF{|M$O`-l=O1xE-Zrx-`feHl9|{uxfZx*cp1X-mQ!Rbf(8_Zj;5!lJ&5_aaC_ zP6=O_KN2}cdDK%79~!ti^(w-{01J~~*J?j1hFdNXFFI^^mO_aSX6J7*wj78J**6#i zeGHjUTK8e_0O4wC1j7|6T)DOorYwXp-bLJ>fUwt#&P!jAu(86@Re|IHy!k4Sa@`f< zR%d9gV9NCwbAmtT-~5B{(2&8e)X%0<^Jb#^6M&foRACkedD5JAmtbplK&S=g5-bRV zKMR2|crI=(35)H!sVkXNrr90V&xmgqiXV7nMiN^$tLUA0N;=!j7nWvHrD~5Vx3zw? zFd8r_Z3Lbun&?y$Uhy^t_RW=LDMy77Coym$^ckl2S7V2GaFm*~GW{V?8OZ&sYfrx! zRIPDQQ4!CF9F@CD#ln6(N^UaAdY&{)(?OrVCZZo%AZH)E6_+cg+@J@41*rYolnqRh*=B5tgCdVXozxA$ltp^7`&lrS zai#E6P>Q)d^Y0UJaPyacRGUK}cWuFYhZCGQH$`rQu~n<|m2vrM ze;`TxOhP-v@?axMSYNyhJIq6JQ5iWh@)_FNdDF&Jx?$QG`+6cTs{c9mz0fdA_RBa4 z@;U*eU1O!t{}AbGfbg+N5!pxi_pcB*P`Vu0U&4fi-MOPv@iExTiC2$gyB^;Pf}pbj zPt66}A5Y2y%<^U)Eu#YYX+;~X+Novb%`%2j(A8>r=g9Zy*0_HluWHi2;cZ#Z8<@`h zOdH#{&i`B~BuEe{j8NX7l|nxj;b^m=;;M&WDb_^k0}_fV?`;=Ud;e*kR1YarFOgqR znZ=Ja@J3NBwL^7p5N@Yjmip5$$b@IxS z>)mIeK`RD0&7sSLfN4>y8u1HboF3$1Hid>-fGdP5J~lhI6sN}PDS<9WZWZXD+({ss#N7O3*{vPw4GL&m`O&p(C$birMxmCqdZFGgCGIbLFdYJR_M_~PKA}Cf&lCd1kf0Y%40nRf5UEg z5BtDawnLY_^Y$6cg7e$LpHd9^i-mt*d%)~7D4MpTN(+^66xI^*(5^YdBECq(Z!p`M z`NTZb2coI4c?8!85B1zdVZeimTVBVVsano{RzT||gzJ448f?$`cws&6Yx!`~31cB; z5QS-T(89o9VM+&+HPkdIcu*G2Nb+vUJBR>IY5#fzP1FjGWk@8fe98V965QGkvC_Kh zb#^g>(EuG8A7$Iyg5znIMGF%Tbd~n&SPahxEJgi_bO%TiAcR|W#NZWuIFW0&WMeT! zHWeB2BrF{{yQ;QO!JG|i|pTu~VV#yE%QtyVz4Ii;o zVMEY5Y)bGeW63|=rqmk3NNULBpa={QD$h{DdRkkeEQ6i2H!Gm}bW>H!;yXtJdvF=` z6c;$)TWcwf!E4E}zOk9$2cTN<5hryJOJMOKEW*_CSDT%M$M1j$Yk7hWD*zS(&BHhKNCY zhxXRj<*P{``uAlxnM1H?rSM9BvJqgxwOAoTNRyI6eCMqsyP4-Pei-j~%pn0+al9uq zdz^;hahq5yg74Dfr!Hk;HhJ<<$lF0S9bANo(ZBD|XjT_$_;*V6`SJGyrDTa#N9>uJ z7^3{2k69CA6<{`E8oBc4jfMMxL zJZ}Xy?FftqC5fg|efi;bDl_pUN8qsYyfO|%+^Nw45G$nX}-)Pk)m7 z@8Q~@oCaVbfSN5Qts0J}vptLYno*b5#>^DJ*6%_ll&*o4ax(AuDzo|&28<}egq63v zl$YJ$RPY^~`+CXRya<@&)A_&%xIfSJt{NGe8lm-t8Hbclo=0Q~F(6oQoLAJEP_MAF zJTr#LufR%Qk5k5yvGbBet(lSQr&CiksSn6zQ?_x(z?y9DxVQMx-HN6w%Eyh-3Ey%j zX;I+VLGP9mpXaQMR%AFu1`dFzcLViv>XuSj4H3nJp4L6GquEvkute&KVclBl;|(

    5GJ$3*$yXJbKXJ=^Zm(WZKjga^O}3Jz$vqzypBx6=>b zP5=oCS$d8Ng{$h0GYu+!F$b3@Tt&3j2x=uE*fNXH5CjB0nTsUIvqLxW>xrFPBpksq ztL5CQ_vZDCif>$UEkS|`Nd)a zR9}qv_q|cf$GWAypA_@~>DU8$L;Ds%@Zz(S+1>b#iNX?_neleH9{gqDI^|#+FJ1X- ztxH&%;Z^F0TmJnP>c^St2FrEw#Hn6u+D{wfyZ(<0FqR~d#GRVUD@)XtfeYV^Zs=S6 zh6$Vm#7>p_H>lLX4F3=ImaCJglJ(&?9L5#Fg&`^G`RD8bR%%p*F78u$@J@na%U5mu zF;_=5nt_e`qZ9_PwoKkdg`aaiUL08N5s=ZuneurW#1hhCGY(S782dTqX)a^i9LE_? zDDGH`rhYkbuqYLq)alx%@66kL2TfjX2q8|xzQW#yh6-U^aqY~VH2d;a-o~#G)p=g- z>pjbC*T8&{EPN)-TeV=X<%x@t!BjZn{_)~mV_KL4w^viX^mJ@>r~%P&KV}7mNR~($^*Dq^SK3KTQ>D8HYz*75WY| zT9lvtD~}dr+O~k_IBUGw`r>Kg;@osgdv>z|2YhzZP-o&XK}+0Ec7>ds(Gj^r?>isz z#&ON*SoXk>yb-wHJX2e>xoN%si8Ptj%NX>Wm%7gi?3DGa%8E|-VjA##2mp&V$5|s3 zdiGixV%=rMIFAt(72gOB#bSjYou<#DOM1Y|AIqtpbVv9?Gia^5dU{4e2^M^70seUO zGsGPIgn7maYXuTbIP`p66AZSWK|OpykIy4!#d1fdJxL8X4U`BjpK95+!RKC~#TXoY zMoH8jz0=AFk+cM$X0C?-`56i|=n@Ah*x|69JBIXBmFcWb<^5s_5bAf<){3xcYc>LM z+@_e1{1-ZqER1lkP3g0m<3Ta0%Qh1|D$AJUGAL(83bIPK@b)KQlJeFdLfF9u&ELt@ zGUg5)Y+Yp3xzkA1AOqg_j_fTqtnVAmH(55M*$6 zpr{2gLw0lOjy{SkmVPE;u!Sdo z4mY>9E$1NEP+|-@?#k^qdINLq$Z6ZGoV1T%k&SamuX}Wk&|FVd0L8kc@Yg|JSZ780m*G~A^PHG2yUR%>ka^LCG31$;xP?$uoJc8G*EPzc zBS~m=?B$F#OF_5;9l5k!4MK1UAA6-VcBN~N#_!)+RJhe^ziwJD;^kX+`92snDJG>0 z9a7jOM8%vZMBbyrztF{F&j$|!&jGFWjoD^2k?XfI1k5sMyV1QWz*XVC0ecu@H$*6f z&6v63Ua}h2zYVy}%Y(jk6Q`gs&)kRo7l(6syDovgT4&PoAwC3(4!a$SdJVU+c^fR~ zlAP!YR6r!1bEZxMn-%*3xsAUM07JRsBkhHN=UDg|Pwk)jAkopO2ra%PgAwIsz*k9{ z_lZeFo6N%CRnQ_6(r77I2CD$ltsHZ#r__#ZzDr}g^zI&Rj6-P=UOHHd%9m24q)|p@ z8>rEuK3ZRU!2*HFzxbKUJsLid1iI+rkTM{h6Z7)`QAzQ&>c5Ie+E+zlt_5*3bEAJA z7M4`3jAVV@b4c674`3~z7)QdPfH!h)eiMNFg7dp*-)a`@2Y`0^+%2CcT${z?yKBd6 zLYftF>nYPVx6GT4^3Eg7t~g0|jLV+5+JUzp=|87By7tkUlWEK1GTduV(YxhoiFTWH ziDHGnZI~x5HL(=|l`eB_F2IM+l6O$URFv9P?;1KS$ zKvS}v+lZ3U7zuAr9ob5-WV=#aE1ENDYUFpan!uqI&iPGoh%cx=KyPf6ks7v|B`Fd& zf3087J^q{Gc~9eZCt-VCs?hYpAlIvP&M$i{S+{}4N;4wG1hLBoamwlf#_ESI_{Qa8 zt+6B}@plrXObP8y0ppeP$UxDJOP@u4bYUF9$7rsX?m(0jHwu<@6`D(TzZf=IOB}Oi zs$`C472m!Y)3c836*orU&lY&Iua&GV_1?uwne$V0@tM(o+R|$)tlcAM5)sO3zfa^`HvlitIv|!XHy~sYB?v=m=@|v}y?aoDh0_j5zX* zV123tmj816xB{z%h4IVM$tX^yVWLKsgH?|aJwc(yZpU@&k>3Wt0C;79idbuM%v zL@>CG;@tls3dN2ji&_ss{O;2E{%sYRnJVac-SRJ;4txDCOJuA)9Wd3#{NC1)_h$K zl=1iP4bHvC+}qyW;6apErbtXovQk=>7A6Nk6${z!e$~t?SWz zrVkTgKuQrHrH)(NdrG+(-sg{(06x0}@ybGG7)|d=5=xRjk9uXSB+SNGh6AR;gXoG_ zql|}fgY_G=m7{bfipwPp`Tm}uFxcNKvI|K5HMTh&-MIu7A~bh%(p%mRFHTu-ywC8K z>Lz~qg-Xg>&n(A_vrgPrwc*9%ZHmY^`68EFM~W_ zekcQNZuJvo8Txk8XZ!`?=xp8seo}@SqS7lL%HDB`YR20LNUPT7xCx8((lu-2E+*1+ zn8&z}X`M#iW-Zm+pq&XSE+M3T9h955HcUdG&r#VKJ}QaEmVLvngdWZ?mnax1J{oI^ z)$OraTx9KZZT6bMp903kP97e*U!oW%YT1q3Dky5OK1?jswVGmslZ${A30LBl3YE9x z^N~gGe+ZaTs7Ff0T4*45&B#`J0XHBz6y*%T04_g9NBOk7r|r)(6zDY*|t zuH`%J6}UKj=cyEW4zMFCsF=9>1ESOoZt9)cjTwU$Z zDE{VJ?uHv+%E}z-$7`^%{W_7F#=|NwmSr!UpH>8YN_!XYE5bTTll(zMzkMIJCFrXuQT-(OOK!8# z!fNA_(sCJ9-S^O7yWR7%(So%Ne)=A)|8aI>lNwWnfdz~qfkJ3c&T6~!o#qUe&Dhb=vVuz<)WP#Uw$b;8 z+Y|?1cb19!Lt5hjW^?zC#^|C#D4n!7&a`yMdaL|<5kZu*9^IdoW2F!UIO3#%kqDZ3 zANaA6pvsDkdnFm7o7+kcYj2%=x1viSSGCanyWQILX;66n23SpJVdLz z`b{-@BUStI#*d*PuH0~sy5HH2#m{nvR0xpJ;JzVdEj#dfPH1X>A^mVHQ`aU>pC4R3 z6=TMf3g{6kV4;4fL}HTEe!I|k5t#Lvj%MD(epr!_I6P28WD2*xX1T*xtXsV^olwsh zjEwm9F?K-c&3njde`ujAO^>P>eHQrie6Zs4Np;Ruxma+9yoWQWC}r@t-RL z<9${C+9eE{mq;h8@9%bw-<=eVKUh2ePV_=d^gdtZs*1~MbWaCU_43ZO+7^igPrjMY zQFwb)^G#+jD74nHRfi9PWRP|+&#8-9}i=9j2E z#M=y}!k4NIQN6#uzwYGno=-R`W{THqQkYYNk)>E%5R@T| z@a5Fvl8S$V4#pHr+Rxy2O${-}v|D1pU$1*GykKF;u39DTT~6U5?9%I4IS$S_nLFnt z&gy$~&y>9)f|VmARe+13$c?-uZ!4$S3(@dbZyD*%(c3elg#Y$z?TBqxxHTu#2$ zaLAv6z92YAn7ZCl;7q`O=7u1lT$hBdyD5hbj{D+)OY1__=P>Y1s~O*Eh204tMOA4~ z;oFw~^j)-!@wM542D}K>KB`)K;+Xn&5otfm#mzEF-{@#q9>^m&T08yh+5G~Ba(v2v zxrgM+;VleEjcS(G;-|JHImb|kOA_GadXqrA(4HO}yUu;^Z+MbD`>Dl2D$K5K>Y+ic9KpK#I;#85l_uE@viMLs*S)ysU}8)%FODToTq7 zoVe+o8kpFL+@OI=Rq$-Jj4XTX9E?V{mB;9=Mi50hiw3`mj(nm=05-g$1JN%eUpH)a=gwFtX~=K3NpDsg>-(wp+{0M#y(oXWYK)JrE-Lwu5$NoC z$CUs2MXv-8O1GAg@R9WTW|u3n09d&SxS`gx4L`+(p$szd&A{GO{?dtZ!FsdNGFuH{ ztMt_`n6y&etDNnfjtA*#^MKX*(uI-@*xg<4uFLtk4h$hcUsq4EsV$Gd`@;*-UuIi0 z%?EYRP2t@r_}%_?8`ebyrhKh++jrf*q_BV%2G~R>p0a?Y{&R@eu_6}gwF<)&lw^-) zjvWj%XG6v(LNq~k+mINg(tDH(RChpNnpg=RGu$0IZ@1hWx5f_Xml{9G3guA~YQ9B9 z!Q9zqIb*iQDP`l?A!73)KcLcYvZV2Xi3$-vK~!jqjOG{~Ka6P&8$r|vZ8(J4cs=!3 zUKrIfr<50_HCRfKm{dX%wGe%;OS>mle=B2fsiCOnRMayE))v!XJ#E4CbVoNO&bM&k2TlRZX4F{`9)BG!+*M6XraqDbmn_e zI%LY|Id?v@>&_3O{sNI9UtIb9$1Bl(*?>Kx&dMEB(pt1=NkGNc%PYIGJuV~JhBbA3 z<=a|%??^&&?m6kAA!xb|sA%oqmu2!5O_NIM!wTJ&-H_>E>~?Qpbaqr9c)H zg*i&S1zm_rrqV|>K|+jE7A#MgN!4W=a=l!}&^{P?V}@}}=%C*bqF2kK*!Tn5jVGWvKbi z_!aZ~j4s9t#jYIpoB6Z_(%&tvPgvbXsvey(nHZ0A&UkJm^$e}9u7on_w0$@e)5#(r z6KEeOv(P$qOYlnF=KHa=v)vwo-$*`2LT|uR-(32EH~)m`=L}bNz%#h>a3pC&k$AjS zMz_8kLpoU;1dYWKv&<2g_NGiQ5(tAMB{`N!eICe&thd*&Y=hELzDXE7j%5fe#;)DD zwNt9iUqdz&L>g&zIB7h3OJ655czCL7O0n9B%LV(^?QOe#$FG@zcD^N_tFl%vZ|CO( ziGpd^ZVSH~yd(Ox%~|uxZjzqf|LErdnOwR%oSRM*RJcZ125x?^#PHI10%@>vGWJb& zkb7lvW%#`cf;O;4nOxMhvmybTU+J(%X`4=87Z^E!o}xkSZ}!XcXaD-uLI_mETF|43 zU~-14D6^n~RZ;jPs*WA|bCKHzS@@RSHH*xu*Z9;b*k@yN9iGo9m2K!lQb`DedEfM( zHxKOj+&H?y4Z-9Rv8{=1+qP}n)?{Ma)?N_y5ZSDTi-PJgK zPCecI==`1z|0OH-4FMMc3=Hg>gt)N6*Y@gbIe~-uT4&*m*nVx`?Znj`!N8CQ{mfHFN0N&-@9Hv0|OgWG`Tu1(htcb zx;Zjqg~qe^1lw3Y2%0PS4DGqy*E|C4yC)Xi{ zf~17F_(;6)a~UEkI{MAL-oNPat1Oq0olleeR!To5-F!lm!`5}=RQC{!~02uzj*ZciUi}$lzt|r5Kl}@2)!D} z1rswp)nn?bw~OMH&^Bgi9ZKXE1fFUOrDYENb}-LDK#L<>$oTMAWmYNKjl@6c>bMoh zR;T*9wx%g!JZ$>zbdJH)d z6{!Qyhx{ythcOW3_L0yzkGhKfBG1f&4-Q-{=yZ$GVNv2ng2zQ1dzm(lBi2*jrA4E$ zr!kUYKfq>XN1(|=E0_P_2IlWVfxyWMaW{3(Zzqfr43>g}V$R$LUgMU?y`kh{#Oin? z#*?$sqnXp^o`-_L=Ud^x-hFb-7DxzU`T9-};h)Vo?%>}A-~+%!-0uwaC!2&OF(-`g zV;k_k1W3+T4;~s6=d0EPxkQ|9^e*Z62=TBT*=qNGdM%xpv?^WYx4Bso?r|ZX|@3ZNp`=3js zvcI^G=bG-Pm^vP(W1*U3xncdE*WDksR;ii`miLdKseR4OHz`i~1xw|#8FR9|Fh_CG z6Bmsrx~%QoxAy7l%{RHv5ZThv=8u!_cZ-1TYZTo*vCR*}n)8L(Nu=D@vqU&Pz4I6H zuJ?7qn?1+r+jYKo(y3-ey7%78+XJc1e5RSF8*E>HTi@MNs$=`E8`^HcIi=Q{p-QjI z{Ux^-?62LG-Q?z)x#Rn%G23@!L__sB-rCQtOSk&^pgkx;KxuRaX;-U47y3fwmvrKezAOxj)i>-oC9AyH zjc2NRa_RH!6cAy);c<)LVwvgKeA4l>^HZN)Qabyc?&4(pZSvIe?xCh$$EMEV0#Enj zo<@(RwcGoc+p;p%?Tooww!<-6mA=+cGFVCBu+h=h@pMk)?ppD!|EEvL!3UdV^WW!F zTc5;XzI*p9*~HDa$F8x>x0O$k+NFb6Tdm#Pci2zf&8K<3qJL)g#_fZte2o*ipOcTz zJBNJlG06w7ysxic-#z5&Ia@`A0nSiii!L$oqx}&^+nNodtaC|-dC3h9OC<(+r)jonu?6)M;YN!JW&h#gUOz#m%zegF?-vnO@Y){KrKmB#_?X<4vqK_uyXCXXWEVGH7#pxZ=dMt56TDUhSUr^3nKX0gZ z4bZ8DHwj=iotj&29UPJk?-9RVto@*n%!_;XPMVaFj;w1b>^O%W`YqCD~6@pYg^YZOI_NlMdJ9#*DXm$c> z-Vi#-#NJB(g0$@iG4W+A%E1U4sN?26wZ-F|hwyFb6T16;`a?=KCb(L6gfbPyq({NQa33OBr>9D4GB)~6II&YP5vcgu~^!SpO9b-L;jcM!_yapME=hS7(8@`Aoy<} zvOPEqT)Y2Lh0$1duZuR$32Z!ZEyE2=7z_8d(u0d+(ao5l@x7O z!gy}MLb(Vk-)zqjc+yA{u7oA?Ej1Y)-aQGAZEIFO45>d+*npbTlB;8pw(hrGRI1Mt zXZ#&i7oVOU*MI`GG`ywd66kuu)a~K!rjXuOe1tNiABLL^(XgMdc*gzX+0Jrg;+=7x$Qhat2~+L+fpXb?cHVT_?{GFEFQp z;}0khr%9$s_lggDDEoT|2M_OWC-~JxJVjEx;C~4Q8Tfm5`R>KrYVEZr+?gx;wTb7F z#{dNyJn&=dL%VBS?)&+`Bc2E3VRn6+HUXd8@aARl=IQRsNB(=w>y-KC5Ep3JdE*rX zwt4H;oZxmD_t=is!rOJJ-%j|Z6a407X9n=t9doa#QI)`?O-f_Tdw4y<);gXn0GZOsCM~|1<51;D<)s%nNfe*fH!z4)cMOhw zX9wnH_Wll$|5h;xLt<8lBjJ>v@B{Emo>3+{bICRi2pp{EqN)(6*MaRf>PRcps9<7c zpL|Z$%`YU!AskJJQh%!O-(hpV|3_XhN=A8z4gbRCZ_LEQCRyANy<2(biC?9JTdGKE z2Yv65SiVo)Rt=tFzJ=UYWnIPWeZ~kd^(zpYH43f4*7xyRFaxD zL3Z?DtyLO{HlD}njknnI3u1-@G>KlE?Pq8z*4oxOEzC4@Fok7e5oE9+Xc6$15e7OSqph+4}k-Rx?bg@_tg+)K-(gCU~?z&& z(h>S5l&l*#86-ufZWwhh?$*ch2{hJ8dCw0;G}<+?ROri(l&W`k`D25sbT!2y-I3bB zHU1S{s*DcpR_Uzi8@OaB*#{IGL^RT}m%Cb=RbMdKvCNrch|IR!9atuP*Y+X()Z9~W ze_(GmOQS#3(b+xz`Gz15?GY2X?_Skqk16NY5)MV$O2Km@^CQ!UJKSJDY;YGUCXis7$soODg$&~fAnG6;Go6R} zyS{xgZ`0Vo1%ByqC)vRc^LM zB~6<*y!^T7k9t+hAjULbS+%UuNGjyD@Q`HykX14ST7v|w`8NUw>$@rl@gP9#F5qR6Qh&o zaIz|ewH=*hb4&%{q8XOoxweGK%Q-!oc0>gxG;(SIIy zB5?wHg_w6@F$K5GaBqEYDAi7z!zQKq{($7ZJZ!8Cl;xU8IxLACUKs@_sGLtd(r3p| z5&&+FSe)cGh)qANA+9hC231_5?+?xoEc2|&EoTV8`C;cK864hKJ9uNIGj2HgiANl`@PKVW2-h3ry>%8K0WBnanEr-?+e^071;<5ieDSus zYj`{T%_+>PR>GNLuxnZdCi+c%z8S(?sAlcO&I30|I7)MR%Vm19Uj?n}26__@5!ggn z_-RX7gr2EqqFEci@M4&Vj7KMZMor-{41%6(rqz;06!vWxQJz+{0$q$>fq@yWYEtNufL8+Y?}LHq&yRpw!9SZcQ_Hd^WNK?0E6gN7RzYa- zix+95arRi{;d#o{S6mNQIywsViQa@sqOl_ob#1@^Mge00De+x0vAh-N)h<`6Q#@x? z-<>XihW}9MTu@FIQM$dNtr3lEK^9)%)^N&-`y*71Td=jQ-^QJA`U5YeX2$%?(bzKg zFxNL_>M!mRn+hXRV6{VNaUIE`Xt*Z3RFpJ;!9W6Ll1Y1w;^fd)Ehq2X_U5(MC18=W2)8=cO88j-a0EWy~)nMJa6uNVzuL|w%h zOo4X!Ld9APVd)es(_bPze{JB`ViU(QP@Uow#FYDVY)1OU=A9}Q5!P*D4|6<`i3fxd zg;2g<3GkN3qvhZMIhObJJ%_{0aI^h|`dE&Z>94~?D%bQZY$D3^!LO7^{Pl;fvye05 z`IG7Wf62?Iad3rF3SgpR2D*8L?402}(Z?t~H4yZE({d6ytk3-<2TTq$dYZ*kkzAog zjGd#b59hwq4QCUS=o7;oeY29D7vy-79mQ&q9@eAMlz*`a|@R_*(+ z9SIF7pvvO)KA8Ck)$f1gX|4d`f|1#;Uq zfe-o0nADYU`9y(ZS4PzF;s6ookU(t#R3ZSh$Ul5CODO9gKccv@3WPr>f<*gZEtykS zZvGWC3-22OT?o;6uB8bRjok!WMG?s816piofWV+%)`L|#} z+9;DxS7PcHI9KPeo-eIvXEBkee4ldlCv9f((NE$@cLpc?qA%{MJwgPm3IS;I^7o;} zJqqZ;U$I7LXSLIw(Dc!6Sh&9}P}l%>HVMtcAQ+D$1g5H@NXG}rii_Vx&r4jBlyXR1 zyP0=ijNR|Tz9(K#F2MhOXZ}#3OtQ8{bwXK+f1{24+IlD+9i9L0S_K}SgVT%?mCrul z;R!_FkJcb3iFo$P8&QBdy)Q@^6Gs{zr!YnYcg1~)0YsFL2Pi4yceQ-^k2u?HGyid# zf3JMq;s4@UAK-smCP0GoaX<~s4ZC!I5&(%}eQDG$D|)&_e|-|WnYVGV^~&pixr_9o zbm|O-dr!l&7T8m$RRca_zR2-;@STOz8|IxJ{m40^ec5**P+$ z%BAz)XKenOKU(X7dV3$eGwwM%Km3w!ZRZKxoK9amyltSD5cwrx-gy@#F~Lk{2Ja!x zbV6mDKdDaW$o35T^VOXM;qJtvG~827*hPOg_rCa`@DTL7YCL5~YO%usFhyvzS{aG# zyfccKv?=x84~)@|8HXaFHLB^UaJ$y`+kIb`)Q;tER#--jf-LGqI0*`8&+_33f2JF< zCGVXCk2iFH4>|>CvM-HJW()t7%;NJ+78e%4AV^jDJ8F_p7LnJ{9d1DO%cy7PxKu5t zo;Sh+3I16ev;bj>P&i_f{=L%DYQ1G@XoEl?&)@{NiHCm)VE1}w^_>>CaEXwC)i-Ls zRCa6C+ljVcnAiVwRk#YSqUKM1t4RB<{AOkTF+~Zuo?aOZ6+(R2RG$2HUu)!orgutA zE}8Xll&o|?n4eqQ$j%%(8qC=eEZ`4yQO%si5`56$!~|J*TCYy|!;vKe*&gX$9I05n zM#<_KGZ)wB)B#MqTar|5$K>8IhFZa-rYif>U41vd^yBiXB@-)8MA8KIJ(=2fzU?Nt?G;(S`;|HOC;{{KA?vUHO*I!po$;kHlw`S~ahN@Ycnp}Ir3SL<&@M8xDjXmyR z9LGz;#2{*PI>Rwp&6>F2nnN?P_U`K7GbU-y{ly9wh|*bBR?KhyA~ zv>pSJ*RgIXW#c2IbUfcl7@1}H>?ATMl5MbM*ofH#oo!)7mVi#0Ru|_5C*~tSdEuzZ7Ru{x7*om}9__TgW&gPOkOWMtktmf+fS+sdRdO99x272$((LaQc_Pgi)k) zvzHKRp-wFgZ+~v^)~uD0f)rO(rA8qucWZ1Fw_F^neXht*^~x*uEBbRdXq}$5R^{+L zM-SJ?9zHasX3s48k=;zMW1#Po5u;wZ8E+)^3J{Grd!Q}CP=ENj8PE{oqUY;|#g zZvM>Q%ug6v@{pD{elRoh27v!t-6W(J zC_LVqrv?xqRHcsV3Cjae6z73%3FX33ZS(yPPE7LIK6>*uP7+4-!f{r~l?yi37}@Ef zwW?+aff&OjSEz35$k{oN;tA=1iyjISjU-FVKZ9s2M12e<3zP5Yq|ayuu-O5b#XJbl z+~=Z*+N$s~{7`0XF{emyULz)R!hQ;sLTtd{X2=&E6x9>JE}9kp3xRh&V*x**9T*}5 z!RYx{Cc-wv(jc2F)Zw1yOBv9V!P;{La_J-U&-c^`ATV5nGwwa}GjRW9xS$Vn1J6PY>BSHp6}QdLb_(YOmp1a@f z>LIlG&gr(nP|KAs3;h^m1GWStsKhTSrTQ1He)8;k8=|j~!6{7(#|uRK>?AA_&Y46)N>vu+6&1+NBbsK+C{@`=BzQ zN5&I;7kUEsZC=%9sYZkPy>k0B7>px`oQu-WaHWMUq8#tAY$0jmOZ-YS$iM(Z7g2`y zBBX}YT7u3;XLRCT5?TBfbO(ioH%lXFUfoKldiKmg^O_&At!qa6!2anEgFpncf(J(RyN40uEdv5jt4lADiT0a7&xQn^=;(=@*b2qhvPfEhkdq_*dlis{3q)S4(&`wQ2v@wzWCg7EIBPk{Y`q|~IwgR` zy3|Yf>A89a?mXei&kxLC;-0guBLgBu*w|H8*2)bB=cJ|gh~ey<1C?lGJDXy$Bnre) zrXQ~$8NPiB3OT&Hf`H}@b*T(DA7o%jj@DcXGo~0R@#3T(AVJ{4-a$)tsg!8s-dZl_ zkX-woR3S4&DR#w!0S!${P^d^--_6}VB)J|Z89ikg83ixdk1xt-P2=aKV*S4cgjoZUrZ z>aji}Gg|~^blxe9AeFFm^m?@Bf+oRjec>{k^fxOx@?-{iK(cIMNU7+r;^;%@vwt-9 zXJ<@L31O^OusrS4mbM*(PYZO6<9X{BaXAtA95rmolCvFDRA1;-Kxrec>~G@22Dc~tt%hon0;PJMxLEjizRMbW(7@~wag zZU6OcoUj>(M)H_ss_lM;iMEMVBMZ2*{zZ!9VI4r!qkur>z*_Tfxj)Ld&htmbK1}Pi z`@t}2$HU2^opHdS&eNCkL!(*DnW9n9&>2!}VYUKcibbi;;fhI4V!ou6U?(pLQ|BAnJYD^)v^F3DAnBy!)=e!PL!DfTa z+NWGN2mc+xy;@?5Vqu5P?VoNwITm$YONm)pI$Jx7m`bXD)~ga@ zjec`^pS)8jIu4JdCnyw-FQ_34DK6Ju$gfqBc7UtUi3+nHoi`p^Xj}Zq+$$i4GHP!9!1i{m9r-%je%*J3M$GP)Hp>hsQch z5jgwPyx6-WAfD>RIsVTmM`uw?9?wfzU;i5FIo|KqcAY4BJYHIKmK9P2{&y9iFN}eg zDbTtdFogINGdysHKIVe~JpvF-%fUbF3wA7;lUT*XRE85BDjmVZY+|p($p|P_>u)gR zY(HfWBX`JBQ!6q@l+DFEJUF2^?t{y=04||T5aqsN0ZqOZ}YbrRIJ#1)x zf{;t3giCMQe1_1?EI02-ozPXd-?{kn=LhtZ?I+tawhlkoPi5i~lw{(y!09~@OWP5n zQaFU(@-Dv3E9_dcy_@Ugoy%r=pi>LwH~Xu{$!yKDCa)Y_9T4Ed5$x!3&y|Zu(y+$* zf3pCw?Y1SJw_E<37w_+Rp%EU_jORTj-K=`V*$^SP&pZ&gmB~C2&+_Q}KkVuN?^FC! zT>FmgF*b+pL`Cba|IT09vs3qM@NE|!>l8!~#@=7St-PAXza1d9zMhPjlqGKt_3jq4 zZ|t2ZPABYMy?fYY!unLM5)6*4qpN~Hzjn)A?L-=NKMmTUo}!VSN~{uQ4C-INpxIwXrUMaBVzb&Uy158}H_P zX`glj#$}3;uAmDS;Kk@|m$m)o;`(|imH1}2=j5YKW<>x}oWF3{sz1yRTS_mvHk1^_ zf9zZ2#T~B+t&bg^)7{m+%yvD`tZ z%QaG0W3(*3myaX97moShd@@Y)`qxR~aK>57g*HEXuVk2aR(`df6S?d^Q-Re|Yga6%0}P;g83 zd$QG{^=l$Lao!squRjdxKumBrNHE;j0~oFw3n4aJ?n1zDSR=A&LZ7#dlz1f(a<~wt zs9jKASsEJT5^xMRqXJbtya3M2*3E_p(n*{0>U|s1yEGYhj0z&S$JO3D+*tI=n~?Y` zbk5&AEx<)nVtjj3g%XDv0b9ENrGzQ77*dlYNL+xz7Z$kH6jij zc_T$nN#?tbrrp{WfJNpj6PQu4({_=)3m%lz(iK}_K^2f+MFtgt>edxoa|(I@3*t;_ z2IGVK_4Q3EUv=aox%heu*v)X#L`0MzaO)PBBjg-z#%BT`v`|PwLI|Py-(ep$4jpG*;fSusCgAM*gv)S=bdG_TV585?8zv6})LAB&`671sre)+W0bUd$eqxog{3OdO8$}>qF>WjoRi2Y-tfzpt z5vmsN44%v|60>_4BS&|@u|5vkgR3ipBCyDE7n|I7XiS&;P#7CEqolpwND zJXMpOojOX+z4K>#6Zq1q|nSe4EH1%?iSV-@U9W5FT7Ohb|^cD0b&k@Y3;f^!K35wivYIUj`__zcq6iP>t&{7EJ*Xp~;!;S)7g`;RZ4H-&NHuIkK{F#klMOBQ@l48xb-! zHKnKVhh6a%!f~QiQnh%6P{k+2p+xwdZL^~_dUn!A8}DgM3Ah9*yQYehS#O>>SZ0S} z$#8y}%qnGzcFHm(4>jS_DHblC%u=NuKY=4kNfjCXeI?Mx`ZD8V-necfg#v;4QUBJi z?X8Comg{z1k<)T>4^I|p;fRk|X|uYW{Busx>*=nLjf!j{`6VAjY^X@9FEFC_aqcvo z*1Z4hI?_dnfgTT}+(!^*_Sa4D1N88}k5PhL3f+02@?cb=gH zriYWgZO%|AsnmF)t$1ZrUBWf7Y;{|uSE+XHwKVz)L?Q)WY+45}H?>*{FmMq03)kgIqrl z-hC21szXf3Bq-4Fe9w@QCpEL$?E=e+f4A0!pH|FNI#^Z;5S_3XMb&2R3|D7+TjUHsd*Dm;xwvC6>+U^G(5?UFU8+SaDCsL+svL0OXmVxa z_*e#VdS*U}MhFWVd%h#MEEZ^>P-%Quf?YCWg>~!n1{8-BQfYa0%CzAG@)Ku|)_2zh zCPxrqMi1G91{afSy#8>A%-6k@-7c z#6igr=<|VmZWI)aA1hhe|78q4-mzk{-4RMx^y(K#^ew7T$S6||)wQ*YL2SWm<-cqi zIJ&$7Tuvz%mmqBYQYIL4f0dn`E3E&tzgYlEZ|6b9$&`p!U}3C~HQ~k4L~Sh-C^8S5 zHF`Yx8#y_Iq#tu1((8}{nR_!Jpx$eYTs)HeOC4M|M^|5HH0Xw|_knHSU}X)L2yO9l;AoH-;EdSfVSjw%ZI~JW1g(2%#kyFakZT&6`6mRz*Q(EMqJ6rYPA* zuOHbyNflI3a7msoInDOk*xE}d*}i<>mF%j(%q&t1vwr!_z^>hBT3h+XZ#g`-%lX%6 z!}c>Q=Tl4ls1m4lTPjb;9QaAE7uz>I&T~TYjrm1RTQp(!K))TAa@W4uG{7W-#??S!3ondHf9VE*?+p;9=Qu{-ZZ(` z1HwczMG&;wvMKN;3hvCBEyPouSye0I&tpZ76?+1a`WL8 zGtNXNRCiqXG|9Y_Q}lo8Je;XW@xOD;h+|HuC7Cq#y;NJ9q=qml&}0{>+s4xZ_$4!< znZRipEs~23rOqxd(4~yRHDLUI&2-SKsywD;;_KIHnOb?FYsa%>G#ir%P^1?%wM#6j z{I(evFO_3f8L6w|Op2G4j>$Lg=e3~2E!0^zHMERedB$jok>NxuoV`#OF}*GxUD9_nW{31i8UjFAs5Tcm>{;~eA38S?gZnhXPC|zZIWry zDk%m-hp$VKFHpTgUO??+6)Qbvw11CzK;Vfab3T9K4nPEQp3_4Jbn_9#i_e|1gptiH zXJfS`gW2*|&ha-gLD_^8amM`JEcvIBmPt^&c8SJF5=PXMjLJ?bp8s{dymD}A*CQmt zEv5VRiXuw|CP^LCx(fa}gZ)>MLK0$~C{r5siT7UP8`PQA850}30C!4Xk4gK#FWr_n zVS4?7KX%WyyKA`h&24vbDXdu3K3I<_l{i^)-dyE~BS4T%rgEM%Rm$*@v&!10@Cowa z5hly)08p`Jyk%L0F8>u!3o{!6{=~|n@GWTFduU@}P5oQR$;dc3S*!$eIw9ZSd}N!{ zi4|rExr2pc73^LksL2$GacdfCY`nn-mMdSz;pZCq^zD7&cKH4Y2iM|JNs3>XphvKl z3xM^YFjHRPm_%{coW6F0jAH4?3D4k}?9bsY6pu~P0~Hpcns&4_uZY}TxaxR^`#uwg zBcOD?l-esoB67|IpSg0EgKce*O)l3h#lk$cvC+DNqM@x_ul&qPDTHb6hP%@u+wlT{ zTIz7JnPx!2JSwvikIy^Bq&oWi-u?6+rp7tVqzC?@ctY4Phy4j%JA3W*kY?r4i+U4# zGtM%48|L3;&8G!3f)R05)v5ZGJ9S?Bs9`xm)B1*38fzP?3x!*5n0*9!JxgCmW?dt9 zml&7Af&FoCM#cR%m0&mG>6aJW@zN=U&F)}ZGKq?W=tayn@IRilR9V$x|+2X0%_?f_(RzX|TtC!8o`DA2j$0#eE8T=<<14fc58Jb46<5{R;hh!hQ?c3ZJI-i-tvDPKV zpx8_G2A2ow2_ve@D&i`VjQlz3B?f5>Qj0Av0(o-L%2i>>Tq)a*35~(+gHF?qt` zro`Oq8$?Kyi>L}>7yK6g7b3ao=XrK^#=yn~)AM|LIJ)m(!~`7M$DdF`XN8N45FMDg zmY)Imo0G#EWxl)Q4(^UiV^aS5<_&TbiT*W0akPp&j3pNrHgwEZk(3FEg&o7_=@p{W z8IerKlpyoFyIqbcTi?MegvhL}T~pu)f)#gn&(M_mgrZspvb>xsLM(4kEsa2I$q7Il zo<>nP2&ABpVRL;5D@Bx!mPM7bI7^ir*af1mfS7OR?>rzyheXlf5C-W4VZy)?f=R|B zna?hgIJ!E7>;K5LuIO7i1@-Fn+!&gQALA~Xk{56$xzMVOlC8Lfw3aizO!>v{fSwWriG6>c zr4gm#8=L!NWoI)D$NY>FCzBYWdjkWIgON_{{KGkIKNaU0yW3-Ft4R2P6`lbDmt7YQ zkA;P0hbyxhGrczfKy;K6X2q1_By)r=S~qE*GqQ0BAKYbjYL^M%*Z-Q@jgD3>N-2no zDG=GAo5UwgWHfi;N~;i{%h5CO$T4e}b}5$1XBb;phO1LTTB{2;78|83D9ac~CNP|5 z9&pO`{~jkXbOnJTBR{eymY$n66h>RbY;LozMVd0D4}{4mAVMu;B1#|KcFs)7K(Wnxl-pZ(2)4U7_Cw7j~1IaWo*W7x$sbVWRcY;p5sw0Ty2{uX*x1Qhqu}POB*If zgf~^VUYhBctilN{NOEoth@^#nj1)pKTPRN_MR^6e6OOcUSIE32lsls!IhD;N*1ZW! z9X`C9#p`%56W;vF(){V$%$suPep&d5XXkiMVTe($7Q*J#fZgvieX`hG&ViQ0;k|=D z=OV9s9tS()*}5kQM4}Y`w+EArCG=8sNnvXQN+Ona_p$jFw^ zO4$lFjq;22zQ(Da>ki!5ZtKB~=pL#!8-kR9nfG2f<4(v&PDbu;>n4 zcW^o$rOk<3jm+jl*l@w4G=J+W-g=5`do_#&SqRYGX>786OnjsFEH~Hrisoy|Yx}yU zc1)vMv{T17$rv6U{@D-D!XJNlyOHoS&5SN2seeU$n)mge+&cQ^DVmdOuJAkjOYiIJ z-N%-fnuDbH$gsZ z?D!_7PS&<#u1}6jbwJp_wTBFZ$gm^6lg!`)L_{!>4w2c?DX2@#+%+-2j>Di1r`#y2 zdQwK=81GyZQ?+fu1Dx`(BwkPtH$PQSW-0HhIY8B6cg|Q+KDmT&#;v{AigEbk zg>}IUu&&fHXM>TK5SC6QKuAhZx>QYCyf^pE-lAY*Z*mM0L{8PizvF}wZ*mm~KUi*S z5g<9AB>*{b;m;L1x@ku@YMwr2Mi(7t4p@n<4g92O~uKKT96| z56<^;+^=80=IbKLP&^Koac^lULxw9xx@eEiSV~qWMSUi0fopHJOo9v=90@ZePu^V# z{NZc$%Da`CmMm?_?PUTqDbn9O+#&+7bV4&gC_rL9tdjUhXzy2%L^)E+UxeRRD~?3@ zLXu@IoKSEN=QNL-t>7vC0-aALF>O`yv!Vtv%;XwF9y1F z-K?Av_fC1gt*3i>V{?W7bJMm8>y)T$r|37faf5>Sd_5Yui{(s}u6R>PsV%wbf zZKj`}=j$u6WMVnX&$a2f_F{Y9Dkk_HpMBUL0T%4ftYM)49a zhxs(jbN!PO{l41=F7EkPquh+0M|Q4(Yma~3FUAljroFG;R@SpIkv&MU4pP#sSov-U zs#yzr!H$#5Ua%~=xF+Oe9PJw9YS+nSe_)kpf{Jl5Fl5;N{!Q1_7)l`Yo>A-GB$rV@ z*TO2%;FjS$vwt7r!J_9I{@8Funui(zl?ij#TpuF@pO@TQ^2&;-fky%?t!r9Z`-IZst}2SHVoftcA==tGZ*9j14a%k` z_IS1a_uiLPT*XAg<-vu4KK5k{Wi#`YFF^cIFR;3rO=0iMnJY_I!(@ibs`}zq6Bw7rD6StrNGeI-6ib42Fx2XJ>fP~z zW6x5==p55V`Fy^%WX@9hYnzuVlz3cfzT@@bCkVu;XYCy=>6jJqd-N{VZU7;;HjeV( z3)qUKS~|fyt766*l>R|i7&=@<=#-|N*3Sf-93t!83bP>su`BOi^gEYOQj9k2z1={B zu6^fT-q?MvT$=H-?LS$iI832euvhT$z9oocPPD>DNxLHJZgbDQ{JefN^I!|jM%%51 z@oYa`pg1&d<4yU=!TZmY0dLkUYWF1TzL1yit=Ba|rKOL3HI*s9d(C_v@4FaSzicLd z`-JoY@AYdvh-eJzUgJ4(+$i4;20-foKrmI4hx`GU`pt~iBUekty%y2GlwWYuK*Bxl z;0-F5OE{sNT&1M$CsdfKy%Dp0e;VfdxQ6Y<{VHbZ_sJDtAeqK&YJd~fw)xj7#Qs;B z)sjpC0j5tscD<7=+612%Ng^w*1ilpu)THNlPR#Y130Eq*;yQYRCncEx5`_y-3NTwR z_Vy0$cgZv{#4~3Rh1&s<;oUEQB_2sQ>Xp#QalMu)-$1@Mx0Sw!VCqg;5 z-4%~I-e{o>qt%=;;Ud>*$Aa*Pe?-zv)9!6br*tghWE#|0OkK2ZBqBq7aoay_5>jx^?sTZ|4SfoI5tY>u8E-SdZR z$Si&pWXFvU)ZvyAKP3m?#FFZcP;KsPR!< z)0f{C!0;DW$dp4+5D80x`Ye(@auHMxdm!`Nt2Z%V)`yR8EY61D1B86ByFqt=puDdRhlpa}Ts z_sr$4&@m>hC33vzxEQHrJ|kDKn$EF(L2(F_fpZ&-wQJ$l}-&s<;pp|ksW zE^4Ys@NyGK%?Lv}KHgK0A7bFDVf1Ztn>RWo&}sVggU(g#9V8}jGuMb|62c;e2|us6 z{cM>P+o%70UfJ)Id#KnaSZLJRgz-Ye zQLLJSEQ`OMNs=TcjZb=So>0Zf+jDNm$fR!fxV&w=7Gl@?TqJjkXSTQ$n@en3x%3Rs zrS#-B zdE=SY(2$iT8tc?@O?v73fO^Oe7FRa*^om&d+68fAQO>AYm!1oOziGZ4AJp(J6l_69~)>%JaprtDD6+X-&SEWlg1Q}ioWV* zVPqFgtvq51`-O%oG2FU{0hm5lZ|L2f?vTfxcPOjE`q<6fH z-*o~^UpsDwP_C>%YMYb~k1KA!1sn^4ScvdY%vpxz`L$OE&h1wGtb-u%r3}OG2 zpG0Z(egyBkH{<&^=t`Dh3#ku7NBsNT!Re`M?m^~^Ok&E|*x4Lu5StouHfZxDj#TXVN3#{mdHet*eaD^HLZ6@KBik`vRee|2 zxTWnI5F4Aa>k7=L0AaoAi@f|nVWB*>PczhrlbKO0UnzgjgB0*pXcRS)&eJ_nyl>9- zsG_!R!(7iW99%3#H>t`fYG?C|hrt}#VfV~*Z6{o{)fZ&f_sm;bq=n&JX-Gh-!u6iGGhma z6pztf*Ks8p@)%^-aEHLXy_1sY?VV&=Y1U!*MBYvTKUK%Nbtdeo>G%Vn0s@1bjeYoW zt4L1w4W4_}PCHwnkF=ppRB|YLSi|I^<S<=EoFl?{gkv zVTJ9aJtJ-!jQxl&0_rmewqT}U9jJAS45Iq{k^E2Co~bKEuR0rmEwI+ zVk$2Y3Ysiq(cu2?p7rZEyBuRP!TPF>vIh?|<5K@|C zEbO23aTM?xz?q2SeOl=@damJ6Jq{&W@{msOK!Kpk#ugX%6o#{HH~J<+|9!jb9dvY= zoc$sR;bwNCam>_OokEK>@##Tocep~vn&3m8%wbrb6$EP}+_=)pT37-8axL&euy9nO zAR-xqhB#0Pk*osU+Mp|b!(TXJ*(M1^B#3F}85&YW-0AzUKCrc0iGI{(B>_|Flv6!T zEOYe2xTl&x)Bupg6;JA{8Qk306q%M(0TNDf!a;z=pl{a2=wvcQ3`S7W9SZU>6vt+p zi@&@tf3c1jLf{x?D_ctnktF7Rf>=uFo2DK?z;MW6Q0jOB%X7mqW%|)*3O;(olhK@q^TcZVhF-rpItYaMt_0 z&inoOd%TDpJjkNjE>$%XA*$!U8Rqthss^qT_tI6LOm2#_D*eDxOz*u9Q2XfvT+R;@ ziXWymxO@>riJ*9pXfk=6k5@vZEC%pl^Cbtp){}}I>$FvqtBj2hH0gT_-X}VXff!GX zHN8K8R9UO>EH~qezQFkr+S8s-RWED4`1}~#`X2K*t{pd_?(*F6{pF7Oms25AnGe6+ zs$2Y`htD6{K($2-y+bB{TP@BkF0+WE?O=JCPGxgD@vT=hY?jj1su~ecv&$>{=H8>r zdHcJ1R6s@;87lzjZz6HZZhUfJz;L#mgI~2_D-jM5la|hdqe8Ko3wB^s*5#!lUS32g z&H~prG|Pg8)0y81H`>a)D;rS%_&pc*fo#L(%>3fSRpz&?^MuhXhvzj~wKl?CE@jV_ zHZN`$S~@xUWnZ+YaaT~fGk>l*e6w}+ujP}wCI#R8T&)zAlz^GNJaIEZe199#oSlC3b#Y?4@PtR5HDdD6Isc|L0OjV76 z3x6U4HCePm*j>Jw2gYEYu{ z-G{=D^w2Vl#~af}9~AKO=Rg&Swe@$hAYTlgaI;?J8xqLl^tIPqPHg*S2Z#Mg+ot{&eH8Efu4`yGoY)UQ{ zhlK4csU!?4nubN&Z@mO5DR%#fRw_;HQQpMFJcypLnQ}Vp2pk@u_2&f++hjZS@xb?H z)xYJzU8JAEk*O@#zJPKnA_S#XMFQrAWe??^pGbzhRyB=MpR{p3`rI?$!Kw|JY5Hb_ zQ*3YY9ii}!_9vbyRP^qddoZ$LvFpf}HLp$rZR-Ed^@&I5f>h)n?6-tUot}qq2(lKt zxLP*_-h5JKR^toGvyZ-xt$+%)uZjjD7i*hp<97882aU{(6!cnjB#DBwtf_rmXqvqdxUO;l<|C0uR$a}gSIVq% zl&juf+3l!W>dtgE7lZ{%M>qPV3!gUa*4nW?ED-hyyt?VsERN{|AmV;zNShvNTs?n1 zSH3aAP-ISXWMPq|fy!DfY0P*$Lf_;4zSoTANp3-8)Y@%JT*rhxh~ujX7#~;Msy#;^ z{JfSlaZw=o9+q+SHREJ$(>;Ghsa@~JBmh6xe!U4+!n2T{q!)cy&MeUFmH_JS?{~0P z%rlBMDoG@%<|NDU2_HWPVrz{S<6xzo>oYSMd1 zagcZN^TX&D?IK*ux4GOarY5b^~B5sexb*W-E%x20&Op14o4O1Y>|@ToF_F6>hY>VKg; z(5D$Z8VW>11PqM;_o(?rEybz%ja>}x(U1*z=8*Rus)IUpjQcc``>^|kBp=-Gu5 zvz^1kLo3^-MYC?qJuI+C!oniZkyIgQW>(hR#LHGfmqCWt(~N@y1<9Y?N1+xLyw`42 zD0rtZKLnYw3ouhS#=w;0RyQ^tS2s|KY*H#SAuRTHiQd%srcRM1gX z^-23TJt~wZiKrRC_J7Ymr3L{bZQLVM7Xs1$!((}w!ngds6}tEB@9&eucX3c6Og}}a zJ-BZn(skqCzZm@@!zMdN4_|C=saOb+>aHbivWQ*liMsF4jI6x#e*%ZyfR3=}h_KF+ zqFV_T3+~!JU%NdkEV=-pvhMb@seQ@Amk!MF`qopEOC2Y4xrP=e4l=0pu^XLc-#p$Um@uGh)xoT+tS)aL2E({= zbk?}pE3ZnCIg+M?{Ha|!Ql0}oSzge1%P!JDnPjh#h{N7*#JVSBG2PqXD9DDShd?v>E@>KmoU`!!*w zuPXSi{s+2k(?w5vH2Yui!$~B-&G1}D<`gtY8I8;13D-6A@uX+&0#(A<&@5!}jDZBa zkM4sFt5Q`^&$Amm55L>JXP0X6h@b1=Ow@hOio=?9Xp4avR!~PKaGeem)Pg^1V(uDx zOZN7i>cHU1(bx6e*;zlzg@e0%d1}ByM!tonx=^%)Lc>h#Y{iS~6bf@nlnL z-;zu8_$vk+Kdnw=9ZSa>knYY(H8&-=lHdjI^tLOI>GtNC7uB`mm~)F<3`+QYhOF`j zba3x`%06TY{4yUodN6Kt-D-dlwi(80h8}yb1kA*c=Bv>*9yP>?T}ffb+q;IZQ9M z9m)yERuMAPpOHym+L#*lpY^7t^L!IJAw=y(be@rRTpRYr&B$0`Lx%Kw0JQRju3(fV z^$+$*7;~XW)vfA|M_Q@R!>x8U{WQywY_4cKopgy8Ji3kA4$MN739^Nhsj_ZuDf6Y* zkyo2^(JHpcbs#oM?eKwM`VxnX7Iojf1BPCQ$mA4JUK3XJ5zc&4mq&c_3AVK-wX9I9 z74}z@6Fbb1`LPf*l@8_eH}$+eO$zv>L+PSk*~RB+Lc`6wt8|}czCw{7 zh*J+!mjXx!oXV47KgQ?YxQ+Jg0=xSVK|MP96}K+W^{SHTsm>4E)rJiP!pZz4LF+1W zbyN~D;W~N;BnN^VZNG^)1Yv7O>XH}(P7+%`xS(gOryPTt+fO4Dkk zlqU$E@6aM;auv6{{LAGlv?Vvryq>H0dRQ0Uk~Wv43U&1GMe{)t(2oH@{5vWRwjnjL z(Fc(UUKpFd=5>#m33J;Ii$HWrT+$=&UH9Nt!)u;;+_yK?IPnT*D?W7EDu>ODqr9D#O6Oe8J0Fa zDfDxX?fimx#Y1*(%^-is%oc1?4}a_$+R-^JEr3<<%M#Kuo(T>{Bdd7XUIzsrsOsh& zwlYUWE59Gp8qn?4QE^S**z|Won|8m#UTIauG2wfTGK2>wJHh6z@(I%4I(u#c|76B_g#rbl~(!3|y*w@HM2+`F(Sj|}@Z zGxUoFF}lFwmN^$+86gcgW8z1X?2%;EY78{-CWsMCVCxfOGyH#RnEzL!X^YHsUl3N%j{ z`fuFY&Zh1DH>=9I&q|&5Gei|^?3x17eD{|BGk=QwX4oac5-pgp52zYjIk@4%nc+Ta zV3kh(y?4vQ4QJx>;00Eum8qplz)|fOsE2FGeUQTyZyH3ri5Es&Pg6c^>NE-Fn4a&}5p&dkiNahEmz3kO%WKCZp#1Yttca`{fx zAa)*TOAB$-t+42UWy=u2s2$}2DM^sptmX=^N5c1{qoJ{;G18nn;`((A$$PowOul5v z+A8xQS%T&k7-BYptTg`|m6|_~#7n;@LjMx^Qkxds08QvQ@udS)Xx%A9)XJb3i7fP| zPcc+aVHC^x!EZ}_qKv*Ju6<1im##5~2L>|YZbP^z&{I0FQScjnEqW8*@yNuS9n zut|98y#<@M2-0td$j$@F8T~{L%PRib1TcL}LGD!7y@7mNmlr{-p0be}UXClQgZJ$V zgoK9E-R|BF-;z95)z~zBt@(h1jUi*Ij37E5fLYj$G{!kQ*3E%o^3NI5hkzJ%8!mKg zHwRkC)Lb>krB_=_C*9)#E+NI$*K2LEq=<5ci!+1hDdNclop!I3@3u(W5|%`?HGuaMjYtoWzJ zbI<;gM9e&SO044p{4+>>_nA}@4<818%8~+!vM;Zdfh9}cRw9PaHPj{BeLKcPN z1mJaw5pzG>aAbKPqmSBtkKcH*$9J`d0^wyq-EKIeB%+(VOq06u#D4U^+>6YdyTPw6 zxyVyeV4h`o$9EFbPssbF+83JcA*XMwQMIs8OAAAsMvU4K>H9?u3E$Rqd{0HllN=$c zaf*#?bbEWQlaPK+Co14U+s_EV+RMP55(EO zJH}m;W*?BT6+1vIe>4#df%v^g*!%I)Ms>KF%RAjBOIvTI|5eYbv9!5YuG~XS0{g=< z_as$H5)_3_^!7gO_sUCx#mus=Mm%3{m_iDS>gh(XBxYegDX44e#cWMiRxumuU4~XB zn~TUJ;D;n2!)>aI0^6$XUNunO_T|z$|3kCObyyw@3fq$!KNLuCopXDPzN_%r zBps+rYpc`b%%U4dhC<7t#ToADHoP01Ufwf~xICZ0dc&U?KzbPR`dS`vkWyq-tKe!YD~?&rh4-(eTBs0 zXl_XJ#E4ym!R(a5@tjW@URUr-`a4|kb{63EYmjSC z=;sLH@Qg+;BG-hgvOiTcm?K?L6!A}(cCb3&b#*_!f`1}7&Oj<7&eeMcla;y4H@F4# zy%nJgr|a!+)cc7=elh;KySahb*Ct%;wyer&u+X}WuwBn}<&JbFdFeV)phB8@@i>5( z0+co}F5=$Y5~RbsfI8rb@2cs#uXHmd zJ<)@vxSUlcAwzOg4Y+;i-EEHw&RzE4xHya<(o@`XKR)=Q?n`%@vL(_a+=E6j99VHH zY^vjnJl*5ynj2ytc$VbL82wUqYNK@&sc5c{)qUW&iZE>*cSX5?%GJ+f##;Cjnhfxm zykz@}`yW^J8L7A$9iAQEceCO0B5u)Pw zY5udu5AcLnDObGZpiVAVu`Ms@``@B0THnV^({94kTn2DP1l2QCrIz#uX@0ZtKaac} zKWcZO(~JfdOJ!SRdH|vs$fdsUi)4XbhN}BxR&GJ-e0rHi-9O`R+h7Wxr33fnd?+$J z6cJ*LG9>IWIzn+a6fI6WpoIELXMD7Lliq*Hrd^l@*R1O0E!3i5hp zs5Fx|U{`NS;`!kX?k~0U47ncBX>z1K{i^Zq*ry{O>4a~ol9PN3hGQE^FV#lScc?%a zB_aCb6aKWbg1_5dD2W&dCo#!^6N`Bbyhe@-4=SAKU3dCe)eh54em%<$jyi_wo zn4CJ(r2p`K=f9N#1pYN4zoxg{r>^}5lohd#n3*la7IQ9%9F^I>St(0&&0kl!emW-Z zg1VxEmYW=Z4W3C9iu^!-{_@H(|LSOiF;)FHcXlB+MI+|iAy5(ih&`bGuBC`U@^8M{ zYYNwr=dUj9Iggd96pV*ep~t>bCLgyS@9JuJsq{f%x02>3u2D-H1zXwpqLeN_C`@tK zWxlfh6T4$0EnwLhaV{jwbF!dGcr=ux4iL98)Rktxlrg6GEZ7B|7{p1Gf~XyLwl1AG z?kAp{K*E=`-)VPc1aJ?>KXGvhanAOUd1FQQ6_mHnM%xJrbv-b0tZyM=A)Jl-d&bDv5JfkD?1MfQL1~+N@7-GLoT!@*TOx_%-N5Bi%}Ehw%Rg7Ut?@ literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-registration-azure-portal-3.png b/docs/azure/sdk/media/local-dev-app-registration-azure-portal-3.png new file mode 100644 index 0000000000000000000000000000000000000000..b586204c7f863db10f490848a7a89cfa5b2e9acf GIT binary patch literal 59926 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-registration-azure-portal-4.png b/docs/azure/sdk/media/local-dev-app-registration-azure-portal-4.png new file mode 100644 index 0000000000000000000000000000000000000000..90a1f0c670f0ba2991657a9d579957a211a31e83 GIT binary patch literal 56928 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%0DD+OYT^|a*3zikbT}--_q_Qc-Ki!Izmqs5v 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 HUcLJ-;=ACa literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-registration-azure-portal-5-240px.png b/docs/azure/sdk/media/local-dev-app-registration-azure-portal-5-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..63f63fc7af1750657c17109ca4b4916806427bf4 GIT binary patch literal 17090 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-registration-azure-portal-5.png b/docs/azure/sdk/media/local-dev-app-registration-azure-portal-5.png new file mode 100644 index 0000000000000000000000000000000000000000..c9e5636ee6b327be461c7b2ee78fb46ef318c8ac GIT binary patch literal 67158 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%0DxOjg`S3iwpT|EX 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 Zy(jv;v0-1%wr_8imsXJ~llbuEe*m;#7RLYp literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-registration-azure-portal-6-240px.png b/docs/azure/sdk/media/local-dev-app-registration-azure-portal-6-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..e2f2058391cc8abcc30cd90b4e7f50fb3a4e9aa1 GIT binary patch literal 4740 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 y<~_h9Xe5#;xRno2#mifzMiA0o&48P4qK{w&=- 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 MBq}3PD5UHCUz%BEW&i*H literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-dev-accounts-overview.png b/docs/azure/sdk/media/local-dev-dev-accounts-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..196ed814b9801fe0b1938ca6803d69a6b7ccbca3 GIT binary patch literal 62216 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 SOB0Is!1S2a(PBfli~j_8n+75P literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-service-principal-overview.png b/docs/azure/sdk/media/local-dev-service-principal-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..811e535cf7424c1c8dc021d78f68311d3a079775 GIT binary patch literal 53046 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 Z_5K5ya=S2_2*@bal(qjUz5D3J{{ccw*~S0> literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/nuget-azure-identity.png b/docs/azure/sdk/media/nuget-azure-identity.png new file mode 100644 index 0000000000000000000000000000000000000000..8e5cfa138a1af13be8b1ab1c89ff3bcfe7c23f44 GIT binary patch literal 79820 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%0D4%D$u}-zG{4qd_|}|!{_{mK2}6z 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 f=j)ce^NcWK_Jq6(z>l0XM5^HNGoSwfwyv3a literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/on-premises-app-registration-azure-portal-1-240px.png b/docs/azure/sdk/media/on-premises-app-registration-azure-portal-1-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..58ca5abcecb176835cfcefc295b400ba7838d62d GIT binary patch literal 13807 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/on-premises-app-registration-azure-portal-2.png b/docs/azure/sdk/media/on-premises-app-registration-azure-portal-2.png new file mode 100644 index 0000000000000000000000000000000000000000..1e3142820baa800985efa98c5861ed2becdea2a9 GIT binary patch literal 25073 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 Fe*tY;vU`Mw{0 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 Npr)j)SOqo@{vYl%>XrZi literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/on-premises-app-registration-azure-portal-3.png b/docs/azure/sdk/media/on-premises-app-registration-azure-portal-3.png new file mode 100644 index 0000000000000000000000000000000000000000..8a9146f1ce69b6cd42c233eec31b577e01ab9e1a GIT binary patch literal 69426 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�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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/on-premises-app-registration-azure-portal-4-240px.png b/docs/azure/sdk/media/on-premises-app-registration-azure-portal-4-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..31b3c554e0dc82a2ce29f8b85d81321bc529b3bd GIT binary patch literal 10592 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∋0<%MzsjO~7Y}hCB2~ zkxn&!+ID~(yT&Dx)R;4=ZsBo^P}y?2tPI+(l~@(FYsnM0vc_2YxxWOvQD;vLO4cXcsprbZKPs9 z!u*0pGjs*9aym#|j_B4FB*OTBAM2s8)ib1u3-qX>jdA~WMsuGh8;=KV_@{E@ErP98CUCER5|NP)r}NO-mUOp}EP9LY0_{RAKaY zQ~cU$-OoWeI+6j5T3P}}l^Ik)4{E`D&kQ6pwrC~|u^Tb&CDU57eY;ISnStUs=YNQ^ zGB0v0&%NCkp%mG~zwF9#&WuRZqxeVjpyQ=56=^E@X3GM{J#6dxDNk#aLi-tV6rC_5 zA(>e>6-Xk7!vru|p_EpQ8gKLX(Po1)AtV?(Qp!^#NVwe>o4AD*egm7+#C3n*DX^F^ zCS9!USv;>~4_#p}X;RUMkmHq3c6?lu*pN`njkh|vJ$6Q>TqXt{&VTOUhDNskdD0;@ z$8xXJl_#MJLj~j(sLZu01INOx+{sMtFLGD^zDRoWJ3oPW0k|8V@C^g9f4bA*!1_M8 zr}r9xzV%KJ8<=8Of$Q(v-5%}uK@~78D_=H633aT;0sWb}uzb<>aA|SJm6n?@48%k& zb=^Z7rVcvZR!n8>8Y|DXo{Fm6O zL8ha1h2Ou8Ys7TTfxc09=RiZgwe*GY1=OP@DPom4%$(zYt|>)I+yU2MY|JCxFB~*+ zBviuwtU~=4Ib>hi&<86;n0&+}91M|g`T#yPpzipHVy2&Coku^FG^a3dT;q<{Z(BK2 zA$GOj67TKhT;i~CsQs%sm6@hN;td^V&Q=zz5zkNg8I_+g?;QglF|5GMC9+D)vp?Y{ zuXk!cUFr$FEl7dJLg^VYQ$?s8b7xYuI#Qjn4=?!EDCv<8i^HzcdddoF`$ov1)dQ6b zfBTU@4BZ#BfH;9(9p$##)Ti9~!|$>kPJfqx_~p~2$e`N@;(ejkv#aHZ^pq$Li;^!@ z>1l@P)1O^VN5ejikMx6%ekL1YDy`EF?Q3TCbQr%#M2MJ!AiSgUo6~O1PgGc$9-g+% z*}upo3tn@7aS6^(=$C){GA^Fz##TC7@i4$}S>iG|CB!sUbWk|rMBYQH$xF#b!$2ay-? z$cTibP}c6%8cO32-~#oI?!>_nw+l~TE#keo%;>zm(j=ucgI(BnQ^i#u9IN%vAkA?ic@bETtOC@AH(&SqazEVm!KTA@8g+1Ga%59 zKg@I3e|yD#jgwLR4ywq%us5w$i#FXZk`g%~h@)5QrT?ha9ir{^826YugZP_T=3-yU ziJkq~vb()>>qpN+?c<-aCgdSoT(U`1(w~$luQs7T!1}AvF?~5VhWw)&r~8?F(=QW&Twawt8jEocNiRJN`$r3 z`jW_W4+%}{wFa0!Q5J2aP!-uOnFq`lw1I48ao2iC5 zAacR44gYq9Q-@y^p+L(Y*;hcn+mBsW^Ok_KCNCa+6HZujfYVuvGJ?A;%e`m!KMI%{ zK#f;v_`MsZ1`xQ+)l(F7a{LgjJS{>@BMIOhwJSsl2u2rJM zgV&u^vMwrL1LK{9xBP+^3+76VU}0Y=Ce_y!3-Jx|wHf zhLId?3dZM(^iLx89}a3i#XvSjVklZHO2{lJO9p>!c>hR0!|(i=F|NGuu6+l@3ad5S zx%l~|(4nF!54>|N69(Wqix)|)RjZPqqN?#_V+u{+q!76kdeiCO$lbBJ&0wuczA%m~ z;9W)}0M#3^L3*@V4`I}{qozhqA@u!j8Btl$$ukw)t;jdgFDDk>KKU+BR(|JlQrkSnj%-Z4 zxANg@J~#Pm#Ns~njg!3w&bbGu=%M<9-574~&UtK7g6Zp{j`zz0M2kw>`Bjj9|ArKJ zZj9g0)-CiXWMjCXPMQGoP5FIRsHt}-h zCNY=vtYx5v&XEUxvEuzde5&KGXhEqpjO-<1Yn0 zKitUxx)xwItxNmG0KH5DSfAb6f+okvkRosPJBv@Bw$OwrPulMn&hSNEv!SHNSYm?C zR(A~65wGgq^?M=BHWKuJ+Iz&lwZxw$P_AA>1xTcUYX+%Dzy0Lja3(tbqKT~@qwdAG zF9wSJ62brTDD{-~y0vnC`KOWj?~Cr52ypzrXZp{J1<{MsY$*z84d18#JJavOSu|i> z+6b5hn3UC*yLszBghh|x{5#3II0~^5fye?rTe}J%Z}$!lr!C21gO86bh7E2@#Q+$i zV;=%}e>XgFj4S#@<=^d=%>Ds~MB(anhc1pUjPKD`4Miae9w3LWQhe>Tr zT-@8YQn}zkEW%iMGl1bnVm_)Cx*wi+k`xmorl3G528;3Y`@Hq|XT|D~6nJr1nT|Sz zl=SLO$a4Vxzr9FPs`4#6HQ@Tnsb_&gn}*VW9q@&nA|s25ipna$f!VSZ{ZE6A|7%c- znyhlL2`L8$_7Buoj`sGjrI2{KS>Vab^2f*Us^=wib%|fdMRIbzS~b#kK%xVj-C+DO z3amAawExmzggzxfVbzCriaKN^Eje5blNuR9W z7fYX)CT9NP_Zt~$ZXdfgB|je@o6{ql~?`Pk`;k}#b9N2t+O8b%NInY!0 zO56Pm!fKamd`mh+c#mn~}~ z+Oadj4e%7`D_68!B;pk5#-QdEA=ujn%_9JFlTeOk67M$j2PICzh7e*xcc6j{^hXCNVj`M%>9q7_m1)FeM0Lb ztXTxt)fNz6F~3XYrO!O2cW`Zw8+=zQtCde{pW5;*A88He0Na;D zR!M0hKJ#KWan~Qi8F?x}yn`7fuH(IDm_<$$2G2adLA+b1?%P5g`mHTz_P^WuS3V5^%i(K-KQW=5v(hG<-*;YX9U(p>I@L^x)f27uuT@+eU=HhK5*N@ZY)Eo z@5{`Y4M=>i4BIv@<^?seqPE*S20it?V)Sx1pg2x`GsQ*%bTMVW@}g{CFRnt@i|;P& z+gZi9M^UYuqRQ(r%KKXf4B46y%)HUHsxA=(E0==Ejnc#H*=DAH*2D8LE2LjCtV!XR zO4ld;Hb8&V&BN$@2c)&{p77?Pez*c7hE)@Vmhq6)4OTD6jk)hf{rWm!d|QSu#|Z1} zQ>}~3)b|jt`Tp3_@BlOa;yv^tNcHlDzk3>4J)diDzTJ*4xUIrCy4j?=-Ong=bH3w| z(wu%@cXsbdw|vxr$NwpH3a&G!x}A@va&sQNzTq7z zV4Q?uKH1&&q%d6cWVX&AlDJ9LReFqVD!up&em-yi_IUlS49U~)IoXl(_p?n%m*#;L z3fw4LMPY@P@^dwMfb{zQ zGBG5k#1<&RH~Rx8=TGbQuWF7}21%Y9LN!edV#TNy6M$deW;1bq)>`vbZg`%Uy$QX} z)N>m)SNbGj@TnyD>rc0A0-cfE=Yi=WwHXvt<7#KzvF+z*bj8}?nYz+v?h_gU!piHJ zw@e0)EZFTc_~Onxo5UXWDx9O1a%by02`k0WlQwcAO3JUZ3ixh#ge_eq+R~fKfwTMf zk5h}57lZZTnIPclu2FOtm(j1E!6fY}BbE|m$CC>X9lR0*vSS?6P{uay3bJ3Uy-tM2 zD}A<1Ln2g^#6#252iK`H`0)?Z`Wu~ob7SHM5#WcD_8a9DZ8n16!^+hMoh-uy$7_Tr zv*)PZF=py_k~|(Zv~_~)RTc(uk3Ny>o;iryA^d_y2mN$USbxibZ$I)N>~N%TXCz6lbF5?brOPxYGAvU%+gs}; z)Rm#HN};xiqWnGENTr}M^yTPx+|4bQhAPV{?B(QVzP4$$egHyvY$n-&2C+5(%t%4qk+k-FL*aUg@5gAvpP7vpb7I-xJQG?w)&LIxq#riTy4eWEDY=!8O*%x0{z+`;sI&l!3CQ;Q(uBk98f8_VHCLA05=O2^pK+(|A5KT?!P zabZnrukQXj^fj;6>TquH;0;uydy}MHa=sd^a1}}=r4FcL42BKRb^-`vGc(JVw4Q&^ zdAcYY-#o%^Q)3`v=;7b;?)U;9w%fps?6`QOWlHatO|3sN18{upy@7-Qnt`~8r!sel z^DYX{-dWPN1K2Y2Fl+6Jg}IM9QL58+|L&2KTv~51JMs*;7Y|22=Z@|yeNab1kp2Z&T>S_y0JWizq~}!v|ca| ziXni&^JJ_T>4s8Sg@yCB&_!&{SQreGq3w{E!rVVpFjTnr;LSK6d`l`xKy;OaT~KrV z`oMCnd&T_zLV|Bh{7>rh4WCVWSu1ohIl(b%vw$RgjI8aNmy*Itr9uVgHZmO1>7ud2 z!2UWbJ*#{#F2<y9}J2_q+=^Zi$_ zwRv^RMt@z!$8kl<=c-OR+3J7%~tCSS5^3k%q zGqw9yfp?@aDJ zJWrbimG#LINpoXG$Ydd{_R}s0P8Y{=ZH-WPpv;kezF|<+6UJV^@0}}obUTbZ#bFB9 zHJbr3r?cuX;;+YBD#o^o7gjs?2eT<1&klJu=^?BxamFvJrB3PL8SXuUKRQNV$)aWU zQD0L?5=!bE21PxhFrSehJ;Bjk{3(p_f!n~pCuup43ueo_ABw8W3Gc?|YATChyZ8cV z3TqDtwo#@&7D>hrCOKWpiBRNm@*J((R|bvU9bw*e>`A;Ua7 zTLN&0?_Es3@Y!LVGu`OZOXX&^|Hy7ZMQMiAm!(T5=^#Rhu-se7yJ=2|FMd@@DmnE* zbP%FaZw)RT6&K2eYpyGAjvM}eRQ+XKRNwplff6DL2qH*_f`CW~NS8>7lr%V$(p}Oq zAe|#1-5}lF3?V%*ATjjN-8D34S6fKX6hOS3~YPCASCkct!o_H>LJ0aRiIj^%D=M*DGIz^GngN}PNVZu$g$xWr?q4I?Mb4-m%;ieH#6 zV`+rb!i)fk3<{GAbSI8?JMe4wt-UT0Z`Uvc%>i0kJc`&zLvw&4@-)LeuKDgGwj*wJ zW3+a~COtmq$(`x`e0H`VTo?&vuqQmkV#3LM^Ohf@%tpz~NR4j7U~!T#xSEo}Vxd^z zaj=GGfvZ2|qwgB<;adNncHC8QAhJ_%KDWA*?@hKIZ646&%?d2&uvnJ8p(sfPtDK)1K ze7K6Ck1(H}V716-Dq%4;o$&*B>$4CH6R@ zZq%fVf)h979hzceWR=tD+50QXxPE|1K*?5xJ1-mOSa7Lad+UyuIQp(xriui>p3Qyn$CuGsd8pEIV(UWsz^ z-YzT_ZE|h$-4G=u1KZ45c{#7CmN$&=?33|8AE7>Mb4-jTSlFO#WQaKD9mYHcJGfkG zT|C&)c`mlBi>)EqUEU!RFJOWU<(eeCqsU1La&;@lM+C$L>td?QzH!EBe zl=HcH`V8x=T11I=n~tw*tS#q+gR&Xaqjsa%tQ@5D{1n(UKp{1LBRTF+xS@ zNtGM__4NaXFy{)kl#0;++bi~&+Zvd4!eAp-#cG+LnXRz2!W9+w@EmODYNASXHqtuW zc5uBpDVbGMugcy^pWUDiHayNG8O)0bMnc9yorr~|VyZoT{7gF;u)9@+MOZAh zv!0pOe{X|fSH3(K2R>E?6~rUX|?{T2dl3`Li%_5{NmLU(eitQr=Wgl<_uP{P5j@OZUS%kFT>E-roDW zCg%J?f@lLa>TJd#JTGt?+8@wdEn3}P-JRmrDx8D%ID~rlC067}?RLSpd}|#03yE{! z!J{jO`ZEHS1W>Hv4D~ew8Ihj=cMej!ZN-aa{d! z-kT!Z&}Nn?1mkh81$^~f;A?Bh7_EP;a1yeg@~fIR9$bVCxq0043gf|} z6c?@nG2GUi??p55pv>(yoHbt9n!;V2ogIs*3j3cw&O*}=ahomc#}VoB?4~}G3vb_( znu?;)py!q?4i-L#IVB*AI&>OC6$-XXjA;n-pvDA#xd3WE#%N)ExDAu*1!pzn$s z1#heiEl1FT-n=;sC@V;<_b_8KhYrc|$6z_D>ZIr80cCqJsddoFwf6D=uJo&&HSmRu zl5s`-pW*?*Jw0#1l89{Ux1%^40@8W;hsjcVe9<=H`@0)g{FHR$o?)M&cg`aSSwBtm z2FNu#zf4a5vYdSBbkM- z{D+S5+r3;EO^<&RG(;AkGkGj`te^KpEcA);JuTS08k*;&v3OKz6vE{NwCuzu0ZpMa z%LIVPWhKUwynZKqJFwcLORa-xh#rY-fk$QUM_+?VbxBE;Fx|5I)*JDi~J{VaSDDJgKsYtgBv#FYmds5n|5^2Z2Gny42pUZtCYZ7 zzh(o4c|x_TkL_`XCT&V)m@s#_F)+VBZQtfs(2v>9A?|8Yh3-o=YpZ=9yZU0kvu^E` zB+U?I-+o0}7CxBC+__{=*TbY4ff#2rR%}$<+5xht6q7|uUnN%9htxUz49(z_kYB=Z z#Au>s?AUdg)0H)yVrD*~^sM(svGNzUnk}*jt#-L>AJ6Hc@HW#zxAJYl@*fSmG>VsX zl0!K?$HBnf%U+J|{C66>4b3a9^RT|diRDiJDr-uYt_QEyKM(8K4kXoVdM0N_47k3z zPUEhOuz|+MfUx@W(eQQTUmpRHX&!G1?ZcoF69wHj0+fcJ~9P^&r_PR+- zKiqm!N|3)13z#puPOBY%aC@_!y^7MhSp5Y*SP&v>8;1le+E`j^x<=aMTN@VKTr6m( zrC69GCXv@Ip4JML%{cGm-st<ENyi}T@j`^lNW-U82(1E0@8HFj060*McPlj0Rt0{QdvCr8)Qax0~YpUhHD&p#!Z zJ`-{orrGH}ZPPMXuw11epCcmjd_p6!S6^CRF}cn<0b>xb(((vtA*H&}B2)a!^LCXQ zZO@$yMIg<&g?$&Y^gz2t0O=7pj=Xu2d^_rLv3v?$+S?aSFzIw-)j@%y9nG*D*Y6Uj z(~-6Vg$-d#Vr8bMUi+1|VqWoL-g~+xH?G<%!^&>OrB`yTj(cSnBZkP;kqcw1%iY(} zt3n~YcFP?tPd%RlQx_&}A6Pw+oI85x?YS60e?4Y>N?G?)iqkT;#q)K$R6dbrCehtQ zF9wmXU(iF7%wYfJSn<(K!<-`CEt^=$t70YRu*(y!H(KzbwcYdXlC$mem`xEY%r-sI z`*!y9^U+&@_d^&2Ie@7nb!}pDW}-8E*&+Si4F>J&6n%s5(c^Z*N~%fQ0_4WbTUI=tgDMvGKg>(T#Kj>%wb(+DdG)u9*BHE8jZ(A|_x}Z@|96dy3DibMC*pcy94? zcTrw9Te8#9R+7XBm!`#Nz%^omX2>F#KYJO9phQQpMeS_HeR_(FA6>7ha%gS$0gh zaxph@YKr2~!P}=4rZ8YOj5a#_LPe~!ZL-Nev*aiPf7W~;;4K|(Nj>Atuz4ZFy>3%i z61X2w)ok}Bc?tBHYcaLOT9~*wCO)i(kv44CN&cPb2$e8Mkjp}JWnxn%*Yrp$B_$&TJU^N*cev$$UB{PHL=WM9xBRtf4c^mk0f zEhWl6;Y-sQz%8|JU;_2LD zQINCnm_^PpF)B52$WuYTbLfiBi&#CU{y9`%1tt;RtbV#O-B0~1t}71y(TKcDO?iO} zH)JfZDnGrllkP;R-C`Hqt{Y~R^)xKmr!hbb@5zXVJ(;?y~p<)DkS@-6+kA$ zgyf+~KiFsO5e4ixren%=NO*G|dP+UhyT!u}2ug_;yzhnfXh#@5b&vcyC6p)DwE+2N?xG2~iJePmvpHX$8h}xW4r>K;w7eM+cTXcrjuNI*9U0a3_ zjMk`%Nqw2^1cVA!MxJ-7h;2$w1K&rpzV~=vqWc~Ne8_C4kpx%oX~VBn)0Zl2=LThH zZ$*R(?4$^2E8Yk9i1vhyZK z*I)iOoISmVNIn=`>kt5`~Aih;{sJSgPSB^egR2>Ol~= zZ%B-4M>)9nzz`JRD&5fVHsIf0!6z%u1jDD_z3Z+n26n$r#=ATv{J$+K7}ieX^WWF* zf8wQl)t?uav=M7W7nhU_3=IztZ>RZj|H;QP<_#7)zag9>#w+OkefIYDKEn1gyyKt) zHm+XgTX&#UeVD#V>{`lG%_)HbHH-{#m+!3FDav8Ep%iu zpRL33ngU=qAm^F%dqzkYVt;e#R9RWs+utABfBXFY63GjzeAB++3cv(*R-k zn6iy18=adQ98BiR-uwLTM#u{Qns_pR>4fz)W1~2@}d34T7ZH|MnLczVf|Bn93nVFNL+;TKs0Q_~7KNydYDxlIAg1wUXm3Wy;911YGm&q9 z9!W=1_2nyPlL~)%+ZjPd>DS(U|7Zh-kq+g&#<)h%@A`QdxRZyW>Y(}lqZa$+hkQ1(WIJE~J%W?4AFXs;M#jd*oZtQg+gT%9 zvAmMqRyWhdFIa>{ZsMM(|0Y$exDbL=VQV$+J}9E8f4*zG48rECvh$4A6+|7!T<}ok z1)HkwBGzwhS1(SxUW6Aoiiss6hhm_Yk4J5kNpJ}?tOV`XFwHeX-m5jbmN%3*ju%cT5o1v6$nva_@sf2i3ww3 zVj>U_sT;{NT)TV+>MOsI-Ie&eC#x3|+2pLqT5AJr3gJJE{f?~H$sB7-<9Gd#3-Y@} zsM~bFT`X-CxWjz{PWy9UVm?gJ#qbvC_4dLQ0~>M3eOuKqr!)rvOFNFyD3WND(GG{L zaY)Lsai`5vqrQ(cKIG--1+;-rt&oL(hY>$C0frft1+|iywvBF$J zA8p~#&nT1s^8%ny9E-I-%DtxJWTmAU6ScKpg@I~r#VC7=1z~+y%s&DOE+doudIh>u z(?{r&alHSeiCqXVWu+;VI8}u)DQX^d%h@=5O9%6~>#52L=hn9zl(2sFv+r0$aM=iN zo+Zc1nn(v83jXHo-VlXhOC7G$%tupa}V}?f0bD# zmARQbBq#5N9=9Y`ZJ?wr{~n7SMmP0T)qdjDO6Qy~g#b0rytK1w9Aepka8{rsEd-@~@(!^$#mD^Yoii+ZTFBN%nsm{9I?SaF6brII!%W`av0ldN zk!I6fPRftmxau1b-H)hCTazK@zUgC_P!kF zRc(8u#*0B*!tFOC{kAxlFduH}a(%t##kBQlWvDD(N1UfY%mZ zaZcP1CTDW+9`lTAbMiPY9lR?)Mp@7`c{Kn!n z(4k8W2_R0h?VwE|b&^qA$bhtc;48gZr&E&F9eCFF6rU!ma*4`j=Co+^Htfu(r_08% zo|(g{L&oh~i+*NOn2T|$!`pi6i(cB&D-U}S3*EY)9uhCT3d3NSrqzYthG>anEo5pd z>_FhM;N(2qE7b%!feJ_vsD_t~y9hX$%vAKfsZ9)KlZ{%lulodOG_|WVYdOR&0snLj z{y>p-B`tS!G8ZOa9+X}6S@Z5;i&m$%sVyZzD%Wju{;TM53$V9@xjdM3sIvZy=!_6d zg=U@CH|aI*`E&3vLN!75=Q_gqkP1zEN83?MuA4y&A$n@N?Sh=eZhM__R!TrV0W%x70C}JB{VEBboEmM%V^|A<1iR$LmkLv@39W8QO&Y zs#giPMT+q^ry+@9^=bdr1j?hxlBqZ+a|Smuk>R)u6uZvo;|$X1>z=P z^4@xr^t$+P>D2v@J*Y8MqB{WONDa&my~k6l&XMxqV%61hmfv1^?=*?j2_0X3j8IF< zx_a?cMUgrd+xjNm?1yQyEAS3J!nMarJ_s66IX4$v?4Txnclu9=#ba79(u;^cBJb|{ zjc6Xmqbh#41$Jw3Z5b!#RaYS`O@G=}2d4lFloB~bSr00d&kCc>e=ZMNewHRw zPxGB{J`8zZ?ssv6F9~`<(mJTj=xE|7ip9Qcy6VgRar^r3s8dEL0CVb@fWhy%+{93ul>I*Hfyo<5 zwvrn%)gb^s%?Mr2mVG6KKzVv5*Tm$zu#FcRK5eHA)u^f+m0wWQRBl$#N42K;S!+Dy zyL|0AGgELbz9Qd*UuySt11s-*87kTuLmcNxk(%WI|ygUeUCkG-Ol(c@bJF_Q3G>*(%AL7oOzL9+tyV39{ zJ-&_tb&+7X?;q|{)&k5OdaO{pZO$jUh5s=8@6!QY>8F#)`D20UjX1Q5MJ@G~_6w5K z3Itz}3~i{Rmwy{A_O|Wyt5wt6D+~O26^#he7j!6t-LGLI13rYq9>G)}DD$38^Yc&@ zhkLc2w|s0P{2{D=^|+qaMUtpN`7CA?WCzgjM9uIMh1=e)#1;bX*Iq-@le7L{>95hOnoL8#)BC#v zpdMdc{p)d3Ytf2{P}~~46=5CZlC`VxGVD6k>^Rw%AMJHIUMhCDi4H?>m6?V@yhL3W z0EI|}qssF!_S(1a0N#`gMf>H*C3UYsM%~l}#IQNq*$T+-Idj)HdR4Nq@Qw5OXsZd6 zx}~7}oQTJ1Yq97JyEiH^>RDhFzsOB1`_pZmousWO9)bZ@)$28T$v}qXLnwlp`i@lk%JCQk`Jj2{vS5QJw6_xkjaAg z#eG@RSUvhBK%k4=yu*Ghc}cNvqB~xEjt)@WPAeLG#Qg5k?!zo30dBZpeVGQ~={yXi zPD=wuG@RAvGOaLfl<|GpDrmpOjTY9}*CMG>Jra=HZXtBJ1^T*L0J|V+{rIA~f%&p= zd?iJn#*2-zW?ZTvc6G~6c_UcIk5Pzy?{bn8auhJ(WaD!$MUqJEX@$K)`=giqV|$a> z#UaN_#6kxor1WkIqqp|Bqpw+t9plV$Uot8A0A7v~fB*}~SvTN}HhBytFo8VQ_^}N%mo1+rM$18}H;GrJP9OvX{k%#mE{v463crZ1O z=JAP+t^Sw!n;78}JWY^dia4 zfOk=C)Yn@w-^tt4bS)B(IBjut?5@$`ia%$@Fr{n$l2#-EgeUuqwOw>5Gv{XG>Rxkv zFF#>l4{0$eQq7Yba+wujRU~}7ug%+2a@#%Exnw_AeFseMguZhu@(+9^BNVkAe;EtG z2X?&ZFHiZ-p#3B7^kz6>MB`oR*Na>hE?aCrUqNV9t{`U|56R!ZZog|k^*}D9mCcWY z=~>lfCWRKNAivqMXw@;#KU1y?7|L2YW#bI{jmJ?@=R5nifk^h{Fk#z8MpVE|Hj$I7 z;$*rV7c-g9u_7azd{t-2&_=%nKGTo^QQw==2Ac26s8ZUa2wVw--(wpu++3oMPZo*} z7OKQ}=ns`geCj?t31{j%#d?!hmyTSw+--3Eq>4_}t&nyZ)b zupq0dn4ha7L%GbbkB{47JJnnLjT)b?FG*&9PsVL<8(kYY2*h~e-6m*?86&&-cYT|t zjC&?cVn2KY(G=Yb7Du|5#wsYaDFSH`Z58!)rEy_p_>?&++0R2xWVcj+SPdPPm1U85 z@c~Z_N+#}I)I*#ODM>ya#GBpFCm~){{OIX(Gg$`+^1oXq9I$sI8eod9)=>j1uMkuM zF%HW^(Cizsl{0?-v8>9V(WhxuC-ant>l}1kDGhcUC(15#ZOs>UX8LF-Zua1T)Cgwo zz_1SgU2>=yggEe{w~i75d|N^ze8xl-^T=Q}HBR{JON~oJHh&7gH9cfGWy~;k`Mu1G zO*g67BD559z4-2$_&4NPd5#}*%X*$LsOCN0@T6Uzu1%;Upzl*4)Y4fYBf9y+Ctd#f zTtJ+ClmSld0JFNREuy2%_D2$m?9kg#RL3s z>Fw=G9&O~&d1+o~4CwD85kQufh1NV!2fAATBE)ILr^>8=b;{MkhVuF+s!9sN zf@E6j_CzI|3tWp>~2-4nzS?OI1&)9A6Kn(E5FRR#o(%4k0$ zVo~pmh8oXiE=6gR-cp5TWZN6l)U4T7aVukW%`;N?Z%R2$iLy-x$xsAt2L;sso=)~U z4}JfjH(R3$J5DvtT5hJD+@QVMeAM$^JQ^?B_4yZ>3}^^*C>nRk!fXKi z5L2Uhw3oOROX}|Q;T4t30R@`LnwgG)E$|u-Hx40h^Yp&f0@d0S-<}{rQ_S0^x!D|! zkEWuuT=u+n`QK^@_5`mbUi z@we6A{4I1co2O`)3bK^~QoHOxy|LZs(vP|#hDePsd_D6W78S@nZAvHHVkcGu6QS|H z(<+pj18=_y)p8Mr4ASwnGid_vcG>OQ8k->?Ez~$}HiYNIDwIAy#~+i9U~|`dwuAiE z)WUbhJDLvy8?KKf-9cB%G|9r+-)Rhnc#BxA)AB^-yH&tJJC^i+ao4`#46Sam;jE=7 zlc|caHe+dKau+gwSy;&YlR0+%K}S6MEWS(2XE2s-xhub>=&;X ziKjLVy=eQ1(5h|Nvs((og<)6=S)aJ79e&d|Fs=TcH358G936LGmS=uuJ&?j+o}s;a z+f{7Za!NkFX$ZPu4aL1m2PIY+$kn$NtJB8=+;2*?Ap(H-GgTTO{24CWtBjnu9@TMk zV1`bQzF@%F5w&phY=+}>1h+jg9Pvt<`6=kmznJYl3zsD4Jc%N`O%3eLGLJMj)G{gxp=`~$L&w%|^IvzKv8+#f zayRv}cud0e)y)PJVXAOgT_jvxC#K(MRgxnR^c84aUpEX%SSt0vqUKDi^~;Undi8%S z7sHX9E0I;7n1JqPC+_bjuRZ2~8L@@G1H8~5{puW%j%(`nvKgFoe8e!kF0b#?RJnkv ztg2_>{=*@*w+7iKZ|`H_W3H!4Kg<`ySj0re_JU=`|d0q)@?<=iUC&! zZB-@2V@45wZ{4KoZ(~Vao_dQlMNxCqj135ou!`gQ7CA(F^373_Ts^QxAE6si_-?AG zM)w|cPHUknsjeZJDcLZDmFhTp9Dze?Yh%xpa0gvz;#{T95@m#a@jOESm8-M4+9$z{ zXftB+=wUaVp}D?=z?yQ)H5H8q<=Pf>=we(=RW_%m*==w!*S*y~+#@hZ5YhvC##?E< zEgb85M%lzTL=y?rtd9m@q5#~O-SsRxX=;U9E5rXIY=d~nydrx|wWY^M{rI7+R`&jQ zKB=Lp#g5p$8oAj9p+o3)kHE`KV7M1{3h(9z z8v)~1O*g2PRZ0Q*rxEA~mOl4k{X(ir-%xhLo}KUpM@PCzNY}Cb`n5&Bkg%G&mFB`gM8MFuG6mg%0sGXCzuaa=PxFaT{*1yj-0RNL0`vKn zmZSk=i-%(m_r?M0NgW|gCN!ma1LipTJwoMCV}vkExglrm}iH__ecurQ2qCZ?%TUR9k08 zI?!z;@NdClv98SF%>!VmLLcR$4E|i<_Io6GxJtyzeKi7AmH?pTL~Ww+D;2o7mHyAJ zG@kAcj@)v4{?o@s?{wsop3LS6RNE6H;fDs41SMW#v$ilAVUT+OUeSZDdMjRk6!}2( zzWysim*fhv>1wJ-rKWymOUE4@c{veMSp`bWrs>}Lr-|uCiGB8EV0lKTe#F_pt1%g| z?Q7u`!Bcy){VvN)qV(BEyDhG4)qB_D!z`)kL9}H8SK4FFhysWN@Wp1*79G5sxpYN> zh9i2hn!(zVtGjnA?uRWaL40@Wt{$_k?NHp3-n*h~7X|8zxPA0j9WY%4k^a+Hi~z+>%-*n~|67e(KJlW@*Xf4*E_Rf`W+loC|n! zs3m^~T~E?oy&?;;wpoJ9+PLu9&g1Dqy+uwo^U?!>S!BrsJlCNO{Ma4d`F2Y@}*w}?U{CEe|gOqBv^ zFQMi0A3*7akErop0V{Ek6%L=~^;$F7t?<1(dvztp;Wb_+um9nt=pO!|n70csR}f?^ z0O{R3ZjC!?Nj$pNm4hsuB?sF5aDkpPlo!%~{u zYGD|tjL;p+t-}rTUwwNaI`f68#VpUMDr(NcsN8DNC=(J3De3E zUy}PM-Z*n8DnSJZs*hF+EHgcBCcg16ntp{47 z8ZC9)RZgr0EE}Kd^;4=zNXR#wmqRyz%9%oeZ>rlGojsNW#u~9 zUFl-Y!07%Uz*I*zRf<)*qFpPc9wV^SziwZYP8?RW!aCWJJV}!Dm0T!WZfe5dKsyBc+O-i90nGCdQGv(FQ`D z0bsQ=+JDS>k)3|5hh+w0JG+uD)?gxvBkn5FDM>d2-XBt)<;mKA+})`Fq`Ad;7Vj;` zYJp4_wD*3z1?W}{$n6=FHM8prW_}I^CKb5H(s}9L{XmsH-^hlXql)Odif4GOmr9%V zmRR&JaP%+wHOV-?J)oBke?dJriWdm(Mdmug@)Z?xy~&1-L6 z?IJp_uXi16fa_tn_@^}^(24T%FOt3|_`!HWUL5-`9s?aH^=_LP?i`_{Sn+?xfP3!) zoqhr!T0AA(gh;MZv+K9Q>cB@a?KDY%so__xLNb|Jb!DCMLP9Mq$CdK9wZ4P5-gd0fEObW`W+;`An&zFLKp>F zSQ|{f-w}v8&@zgJ0kM}hx5Etv-$1#c7s-dyJF_OJ}rd$s2e4ALn z0fKV-6&w5f_89ngr%UR_@&B{K=Sl8dz$wrnj^s4#_D_ep9h;2B+i&v&;r5M=iV}ZK zjDzi70#7Y2W(6D#vVd72TRI{X=i&e3B*+N8`S!#gvrS_dF|8yixuQ`~W^HvBV08ao z83?}VWnpdezej<6?>oq-Kz_39>+k;tI2>l{?djhDCKfsemML(bnU|Lra6|u{3JA6D{ZTiH!GX~?`oQ&uk$}3zjj8`NNBqjb zgC_r8p`URYASmrfE#_VK6F~Mnlk`y>AueaN%98ke@%({C9yg>b7tngiy{#*4E}QZm z;Q5Ir|L+L@JOZL#nfGL?L#EALIGbw!CvN0JfI0R7@q(_4~A6i?Hi34j{Wl|6@0`yZadCFJgWZdazDRdo@hR8fxm zwjP)q|6uIbOT?%9GfTc=xGw?cIKXMMLOLioj$!%9cMC5u+U#&>`;#d{K>z0ju#4@Y z6aDHzDJ;a}E_blOkcLU}q`&^(F(g+86z}aQ^Hc%#R_1Y~7soKMi-O~K${TDw{a1k9 zHgi*)erBSVoh`4t0AK%UTS!yxG#(8=(9aX9n}6n(n2=O-DmV=`+r1UIw^rO}cvswL z6E#4~utt@BOU|+IuF`6E#^*`S1lhf-)=$6O=A4tl`J^R{t?mm#qTDySi+?qRt~2<)PeJT*-=Kt;Q5uw24+)gXomd~7rFZV0s^GU>CmiA5 z)4g^Fj`{1!WkcY~zL*d*3SwSU2dH_h2lQy6LXj!B$NV7LAdKJMtsOy*4e?tCWGn^A zKW$`j#GLlymQUk?;OoQT7Hi|K_Ka-E1^IH3_ic;W1>`z_8m_S5-Hk;Ry4OQxxGKIp z+1CCEu;Oexb%i69bmgVbeG<={&Z+@8(@uyFdkE26YA{DVU5F+>p_V&5K~n_T@w;wu zzqaqj@-!EUsQUVw(^(FV?=6oYm-3IZ}M3HO3eP5gpcBHZ47*Pu~_MVls@x|nFHu67Fsd}k~ zg3FcNhQEd%Y2WNv8y=2u*0$}b)3|d44RzUTL-Sfu6lZQ`7r7F!NKwj!CpY=gI)f_vE)Nw5S|K!c55I2CxUXGh#wysN7lBbMQ?0W z8cvguV2LrA&6plmPkw>MPhEAZ^ZuHy1pga!rMqedGAff|&?m61!+ltfRC5W0>2@|}&`rDKOuuB)vGf{ae%sF#yrWhtITl^a}W(-=} zgGCEvu0Cr&;0A_(aRDdzAB?b)zz@xvO0#Y1a2(zHxNY^nP#2;PoLFzxcih$@NB-Ie z$feIMj9hhd-6ZROU8ME2&S-o}DBF8lO}alSom-Sg*N7)^nZnQ1(O{HJt(dY{qR80w zeIdo*A=&Zhj=)Ct-{mm(eq$^KCc#l!@I45xZ7WVBq}q72kn$AysdC--d_6VBE{$OL zYSNm(acXpg8)wm2%=hAWL6V3#jwzjB{nbn@S}P8La+M%GT7811s$y!7AGSwgnD652 z)}SYrWe50gt9I$+s8LTTg4hm%3GH4P7{xe*AjmogmY>zc0b`1?()*l@$i?9WA*BAG z6|$Ib-#J$ade>Z|MI5QMWoyw$hmPb2$S^Fk2DE<9I9IE!PY&1%NXu|!@!7m9#nm(m zdJwi9!GN$&J9{t)^L&vU1e4!!nQ!V3#LoR~PxD{HA)yKNYo)!NSr@(yBRF5(gk+`F z(SWxtvoD%xZ$w9#URz2_+OQ!;$Lm?P4zSlx7kO{deE+eSN&&JL3vV&P(P72PAX?u@ zv>|K{LW{@(Dar}F1m6j}n}x_%UlD79!dHySyF7kb_lN5Qwf42(W`t;2!( zw66pi*qJ*e4~w6(rE~;OD>_A{pW2w2oPBrIArJxNBH+KT0ztXVm2FARk<4V&k1v_+H{+kO6?vW>+5dZnMq0RByHzc#j3s7 z$YV~?+cb)9(UEY}b@ke&S_YN12**Yg6)bwG88#9fHCYl zAZdpk3g$-m2C~O-1uprMH@A%m+12P6c?^8?rf5naGx!zSyVNk3N6%x&k+K?~Iz`N+ ztqS9`#tT!_{kD&FbvuzR)&u|OP;ywU8>0P_O{6^=T`zerywq=Iz19O9DXY-p_k>h* zF)=&pFTwshPmIxh*=L`Dm0S@5jVK&%&;{OoDh*(ULj6RbMBWj8~P1oxQp@#K8FEb zs}y&|(obdmzkB09v?j|w2V|QPrj+_l@)YS7O}NH#oVUp@RnbnRm|eT|4%v5Z!ei*t zjQK6B{{P8UhAex9(;q-jE6aKY zzx{Lk%g)35A-JAGSbBaTbl7L!X-fjp*U5P+X$2Zl6ZWw?I{G`x{%71+! zLzC)2V2mV}xhZ4+d{>0qTz>#ko@(1PUmY*h`7{7{gp8lK;rNFJ&rV=qdp#h*pIfkz z=9l9U$&65q;Ck3DNq-Y2QHpKT{jtS@%+fI#leJ52!IBx6VZ zi$}!G<}d-|W0+YA`#ImK2`W^ks@-49R+n-MO=M1~5Cy~BXr z^Yi*1ndxMZ6U_B933Hx-(IbTF>}M02Iv7ll_mhAmiaSwLSI;4)#xjxt=r#BEOpKaE z7Jk34J4_aE1sVB32Q?4n^z><1Vmp?6Xw|JXVSi;N+P=T`>ImD%jxw-ta4SBeW#r41 z|A0NLwVDHr_En7Jvs}H+dX6d-HY+f`w@aPazQi`1>Bo$EZ#iq9yl&^9p5>htf43=E zPS-exDY|@d@6nov$u0ZFeZfh~H?9RM{Iw6N8B5AxuO-W2zjw*rgNnbTJ^53j$$U41 zD+%J83Xps?|KQYZbK6i>71GuD%p^niWXF4ZF-KP|hciE>;Xf|fS7PQq+tOTnsPXQa zfy)W!-=P5j{f(Z;06VXd`A zhGYAAf{FIPy3H>OdoL%G7}t$Ltq5GiqHKR@loKoDvH+PDXAc8H+{2K)ipYd<=92(g zIbeIJ5eS=2Xi8&R8OplRA$`@mmikkOr35hj{%`2tnW@~VKS{?+ zwLK85q+f* zC9)TVvQx%VBx@;z>`b!njGeJWwiuIj?6O4mhV09TvW+EV9ZVXGeF-zxncwyPyzBG% z{`)(R$NVvK=e68>&wZWqdYP&~@$m&1IG$&SYe`rO& zV57E0CJi}ZXwowIY=n*67ENZPLAdN~dS`FXq5?Q)h|1o=*n`PMvuf-~u;&R~XOdgj z?Tly7lj`4NfIQQbc9Su`mrPe>N1uOw(8RaShj_lJB-a={y0yRrDmnoW`w7r0A;qOw z52lCFYc`M{qfIaRR;L^tYJq?h?QaA9>X7LR<;To3G7=ELE|c7>@$Yy3<6!FTb9~d~zZFk+{1T3;_7#ubc&=m>^gF z90hV^lmT$!kHle4_Pl?kmH~i2{#wHI{hmUw&(vd8(`6|kCt7oBL&!S*;}f-aDzhu^4RZ|)2TyvH%09{M*I?WEhCQnCV;4KaHh zCi?p_%LHh)U3+iWL%icn*ENoiAhUC1FDOO0A1y!{TrzrHG3=KM5FViCP4*q_#Yjy> zR-)AWe=a8XkSq(3qxGYLDMUULOQM=u4Oa(UKTSgkl6bj8)5ZFDv0R=T_xd2vW2lE$ zpQW)K4sg>^;Y~A=C(KDgcT@ehXBr`W|9A}3?cFb$ou!{U?CJI99CusmX>tWGlkniC{YTmr$r1sov0-sHu2ETrU6)`yCdb_n@6cHD zKNPBFtUGZT`HmL`RuZHk?@O?Xn)&?RZ9;b54}sGIC!samIlX3Tv-Fdq1pjo%EqP3T zuyAy#g`jvXiL(EBT=qGh+484#7I&UP8{n|o$|aymjTyX~iDSchHzcD=&iZlqDgUBy z0BbU>-lHph-TtXQiXNM9qV) zX*gO>y86tj33K4zvj=B0YW>V;}r{*ju0AJqiY)hWl;HwJAlrh^M4 z1?EE}uds$DPnL%`UA_FenWx^~Bh)lOJ0x#QvTr8;qCAu=WnCYK7Kr~<~ce2``Z}g6;csFOYM3WQTTwbGT+N0sAQCJgB^!FtgbS=7c z64(NkMoBT4|EkDv%}bRhhENJ&N-mN*)R@k74BIwjv6*^UpuesK%4~sX2tzP89`V0a zp%m#f2sRmhWG=X?NZst=PRKw$oYIPaH}j=ZZQ0lPT>=$ln%%E?&-#ZcoGYoZR0hXr zh(?yfEoK@nS{BSejF#7{cL-*4rCTnxIY(30l9?+7*Kaf{%ozk1(m)6q5w-`R0qSQb zl%mTV^`r0DK?Pfvul7;=;OxEb+4fF-;v5D>HSKI>hFF=@3w~X|(BkdpOYTLui4Io0(E&eZ9q3x8LduJ*Ma-8$7FsY+3pdv$^Rl z5iZ9Z+c0J#;z!s-EhSy1!#z0%j{F^i;1Nox9RvEjXV3aYYK-U1yzpl$KFkDHyrapt zEeU;}%?&W-pYYdR$oh)Y`Jp(c;_EOs&~&gO@3vfr1BjEdgHHXu~b z%Lj!z{81%wPl?7w|BESg&WQ)9{#Eebre+Fj4`l-o0=U8as3V1bIs7N+Vm#LCAcp1@ z@Fww;0D;NdQes^b%7a1Ph5S6&ba8qIqw` zZPDay`s>SH8MdB_W1rNGGxyUP`aG_&sEw(_Nq?T-l%mESiP{}DBIM_%(b+ZEn@XDh{$uXoRQ=BGrFyYqvxbzN|J?1W};V6|XQ{0CxLaO?iC5XK2$CtZrt#P+(b<`+lfhSV&uz5@OGU>X_n6Itl z`A>dfV^exI-An1}^TVEuPMbg$d-t{pNcPlK#LU1=QS zjc~lcwRu_UfkX`3i5bOE}@gaj~)UJ6l2^8VfP`AR+K3oBXvu*y#XKru6T?-0+g^Q$FIsz9U`O*~~InlN) zA<9_zz@yBCqA&+z{8ESuFL%be(0e~SiHd^mR~|T@k6dcU^U%FuM9tC<`Kd<}ulHWp z&QkK*tQ?u5Ey`e4cyQ6X{5GaeqSq6<5Y(VU5-!R zREMcab{sAm8z}_*;*wKRT43w5aTl5D3v(i+6X<`@atXu9!uX=kHT<|L3V#;)u;;x<41cev)8H|kL0&P( zK{rzw{UaVt2bYkmkn&y z);E?{B0jVAe`IQM2)s7)^%iyPty`R%x>^BsvZF2?7N3MJ827x*94i8wmN!4gzC(gP zZ%7n-cU@ky9u4!!HaNU}aBV;Cz}B~e)Y*6nxwR}M*Cv!W;@xVFazgpYuHh?VGj(x2 zUcwQ`GzJH7egpope6)C{4sfQNo@sZ5%Q}rQY(IVUqZN-$7ic=S(lvfpKOJewM4EJ2Eg*&sri(gJQ?mK_)?g z6a5~cRpl%d6Wrw=l3lLVhOogGda&>ryATbeX~(C?QCb8|>tu~@4n z*aYKn8btkH&;>{{$AZM+l}p2^119Uw9kO@4Kh5Rr41RS!o|B`SUP-?z*Dgdyj55?{ z+wex>Lc`emcx8M)CLCtlijodzD@12t5BlS{B)`^@ZxYgJ{IeG4y4Viu$Wa08ED^PV zL#BBM8GpuQN36%dV9Bz8y74qF8POf1wmTj`m4V*p|=F*6XThKOeCr+E*zx zeE$3}ITc&E9%*Q+dhq+T@jGbdREfsPSykXMI%8N_!X21ZBNKb3PvmZDhI~c*bj7{O z%5k5jnwbRB)L@_w)CFW5tv-G*`SR%b{BWPgkR^NVMFM*@wEHQBIh<#Ax|CIPQZJxx zdQY6GuUh(2z|`ea)NO>Wl`Xjg{@DU&#W^m8H_cYGfKDn{_{NC;?d zS0D(&;5a|{7LB{ZMcvwqLu_c=gaX&Ioiw`}?41!d63tGYT32G$m~8}Gc9J|hV;#P^ z7?--T>kq1C=2`g3M4z8!>RFCLY#B)hXc{pWo61EqUrG;R=UVfs&yJwiH8`j_=O-Hv z_e|q4>2xVpQQ2lOhKpflC)iiEXKF(Bpo(nr3#5i-m_`!tgfeJS!!tf0k!2)DFP-}cJ1EDv@7wQtzF-=e3;Eaz< z#+jP=?p%x1ZZ)N#V3>HUq@ar#$u2nFI$Tz(c)qY+T`#d+CHh!$+ih;J(k|m_A@qPITeO%xQtHY>-8Y+{L@xZl`ePYMi8f}XVZyv`Z zeG5X+3g5-jf>FJ~3Pa|2taP^l(yd(8WCbXM0=gmua88_XfD`FH3OCi$?o35Si^{c8 zNqD;mj%^(BWQd{WG@C&7Dnr+v^S)?2fZ<9V!BV-vid#`N-)vmxl_$h%H($fMo$_st z8S$yQXNvgxkzU%Nr3dNe(mgs6^98pHS}jWFj9SDHAKelmMPm zxE>8Hzp??FJQ$Vn(hjg*oc-n@((K-p4f~cpZqTt8s;Ht31M4%hM5{;~G$jK5f_WnH zD-CKf<0WUc_?8$1QGa_|vav5ZS-IU6#M~pP{T4}ce{05;sVHy=4v(t!Z=HAZ#fwGU zG8&4!3=?rRoWvKsmuYyHxg6-8j!0NPN54{=WI6TQKFA}^$vTjUx7%J${lQp$Z9BB> zdd>#l3|lp9B+LP%y{0wV7I9vxs)ReVYwyi|@2+2C>H;)*3!47cU;aZTF>`Wh@9>52 zH>)j&WN{9}ym!-5!_guAPo?|X1cx=;(Jvy`HLebBTOx8R)2)Ma>481V>y2@~`L(|4 z`>z6P>|vhZ3?dqh+Yp==Jot^s1#*D8D}XR1EmWJ zW{=pbBD;iaN5(dOO`}=z?OdfLd9uzIuQW<$$)Df<&><=DYe$Mh7vUJYwtOTBLF1-3 zV3k8RSUn4RcQM~}x*LS=DRkP_{u1}uTBF&wpei+5dHrE6gHyzE6)L@wz*N=td4Ced z{P}AxQYYK%SM%V~n6HMf!3!K-*GFOpRF!WjN{G_IYI;=LnEZAPqGn%zzv|jXu(@BA zmOWTD!!j-5o3zUL@h(^9dSOG~?E}HVADx{$EQ5CNbU0VG8w<8-;jWgWaO~41r)_2y zS<}{H=>Ww5jLggiiV)4Ekc0nrAFwE8^X7P%Vj7G6-!*j+Qq*n2% z?Ad!ejs@N?tKtsc&(xRR9Il%gmMq&JjdI8EHfYBvBD@-4)4=Vnv{dK1;y^3y*%G%q zkZ+rSvC-MYN;>EAm@^=9G}g(8Z%x~NLeZkRE;ehEmfgq`OQ-WZAFyssw52 zr7QRAIMN-(_P^!r>>6=D?u#6jL*t@VEHy-}-mJDopl>W~eFsdUR|>qFmA7HiDeiG< z*W6LJ^}>{d4s$g1c|+g2=`FFzFnUD0!8;wLymHz_|C~%(s}J39%UHPU>r=n`HbmNw zHQ*m)6J5&urBdAdB4RRY?mNqH=5D)Y?k~E9P@lijp`N1e{jGDhvRFlUr}i4yvJW?X zAh+!mChb`#Orr7KiNmJRsoP(0I8)TD5iIo9dCyit$~67!ft9I?JGr{7BX1_Psnm`Y zcbX{y{=iDP!0AlyxA^xg&DW54^=B5did5{#f>X$tOxl4BZt*!nr=^x!HB-FTTs@d8o@XEdX~QXb>AY!j7D;> z_AWrXRlCOJg?_TUIwl2+BB}_9b=rb6dN2_Pno$M+_uAhN?JFnJA{1mN@81vVsP&a}_b?8=lMV8+)ZS4yyVZzM;rAaxb6#f}Bs>Kf z*Xn95NDu{_=N4yfhxb`R0!2~p^|j_5B;^M7rc~s0A1qmEK6^J)%GeXA zwqHxC7>dPwt>|U zT;%6G7d8EEw@ZzUI^7z6OUjJP4%0In0930X2E%Y{xH0i`MO)-Wi#3IwvqOGbTt1Eu z*exqF_eZlyH;ko#SBZ$@l*BPvb2&6TK(uea*Q%x3PZafrc0;-KiV)gd!+oWY5%;}1 z(-{ReKXQ}OqAxq0?3KD<=@U4qP=<4y8gEtE2CKYr6xwi{>Kx0mja;j4_5~TEs?ydp zJs{+B!B&o7iD`F@X&x+A>5!i2Mh0G4Qc<>$8RWGu(E~voh-4r8y^T~`fbjD1@ws^1 zQc@b)-%LmqC|Ujxy>qmH8%L23DwsqG+LRRg^4I3+$!_-uhWntF)HbN_~&g zf&k8K1NJ!1UtGUebqYNEsC(@p5%4p$Z+l=vXj@)3?UiR1pPnt% zzZLI~DGM>MK4$ zQY1UKpWCF7th0>jYLaH`IHVPE-=8WXA;zG_D>_aWpO(B5-0S5y0^aaCENcMJ+t2bh zher0&N~8ki^8O=pdS0Ed^8YEO*UJuggMZ^FQ;$CXZy1R7WT*5;x`dRX|3-NLy78s| z+pyAT=eRw)JbqZT7hgl>tyxPQ6Nv-9^v}>!q-4Cw2sekYhDSl6LXDIE9Z&7a+y4zh zh1m}NH_|o71W^}0_z!A6r=oAs({|X*ShlJCS^g=2R_8v9WW&4_J=F7=0C^}1-1rOJ z>U{dCqJKR}s}90DJF@OH*XBJBV6yjou<3vS=MaZ%tZ>U$V+}7LMKC$b?Kw;>}R1uIWe@I2jjH`sUe|dy26$0L=ULg z@U|_-={#m!#9ka#g^zB3!|2_m8E zIaBm`%tOlUykoN7rdMR4c63$0UG5%ITu1caR|DRqKAqI>%)$4TR044iuzVh(Kua@@ zaXlpm#qtk11eosBa%Er~W<)^0KF|rmyDUz1i}AiKwzBU1SA&P9&VrBW?%tF5Ne_{{ zVPE4OiqKd&3%_!|33U(_Y5GJf<$UZcpBI%=)CYmtKSY2n8lrnhFd=jQ4acwTvb49f*cJn*TRUl}(Z!q9t3$Fcl@83BAyYUo%vF=x_M`86e_6#B;+r7d=R`WBoJ3sz>nz|Nn z%glMspi#)k*G=JEri+R{Pp_NsJCxVU5_9b_iRy1)6Vfa6YoKWX2WcCk{bKXT);Z-I9j~Wc(x+b*+PCA ztOjQTZie$E^Xw)zjI1?{a0~sg(inT`n z+}zw}cZmzCq_*J=XzT7uLeq=imniO$Nn%|1fY;QWWG-qFkhP@QhDEuol82hdx=@D_ z653lBV_>;xxb1DS$n+=JABQpYTH@e^?a+<&?$Djfw$}Nae`#i;a2T9J^wEkQzkgDQ{?mVb{r^3htNhn;RPx& literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/on-premises-app-registration-azure-portal-5-240px.png b/docs/azure/sdk/media/on-premises-app-registration-azure-portal-5-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..8380cbc631e897a96e7490087122c0d5cea44ca7 GIT binary patch literal 15693 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/on-premises-app-registration-azure-portal-5.png b/docs/azure/sdk/media/on-premises-app-registration-azure-portal-5.png new file mode 100644 index 0000000000000000000000000000000000000000..cca6b02e9841a81dc0c00ad1e5a56f8454078fb0 GIT binary patch literal 63043 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

    HPRzQ2V9?< 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

    FxIeK!n5Lq&QHGzA7hQtUu z6Zv_a=i+vB!8*S8r9Ig3Ge(+>`V>DMGZ;dM-xyMG4dpi;5o0QT<7tuFSU%M)BWHZ+ z>K&MBY9g!HtDZ2VD!uyQYVtVO45w#GUZq+F92YVR%n{7Jl+h6ZK~slwxfAyz)=9UA z9F3mnMPaPXA`fnd^ZC<;e0O*0v>07p9Cfp>1?Fb6uxF0UM5Ds*;DU{OenMO0pJE6s4($&w_S4p85BjW66aSzF-)heeIXS*C z5cfm0hspFLrH=XjrmSPwFSiO6HQMac;L3u{8r$vDFv~>x?omZS-rOow^U}9F%yKr8 z+2bU{Ba8L=etmmK<(K7*kFcX%)z?DWa8W0T=YtzlgU+w6uhYvXgC~an+-@ARluyHn zy>ut;rj_M*u*!5N6F`lBZUF@LBnwh;nhKiOetNM=`~+q@U&h%xK{9a##9A?UYGhiW z7h1RKwW-LK@>6uFb;h|2$E!@|%!23+lng6~{p!?ITV^I&L?`Pe99T>B2l|tz++z;( z^B)(sSDDN*(^$sMR1)*gWnYpCWJcazD1kQbg@ zNKkMtc$V0HRz0%NS(l?2Fm;q$$ZIkUc~rwswRC?qxXY=%m}Z7A_ngSs+<(EVV-<77 zfAT27-m|rnETg7m!D26tkkTsSz?(4faDHRnCr+G z%_l-jSqiG--aHici~S}*F;Er~4mZccYPYj$iFj(g1CxL}$uL>vQFp&HxIGwg!vPyb zf2LV}In}Fbz4N$-mAR@)a>XHK+IA^Y?PgAJ2p&%T*q@zzzKV!Q#ytmrWF~B&=GI$~ z141YC*uU`^H zS^*z{A0oNuqpqC#1V<=mX_;s-HF%MYb{AhfSX8dj;JAgB^)z?x%LopPf0si&IJ$oP0L51(cs&K~abaHOE|Rg-yIeD<_n>~P1?BQcAwIDL z1T9v$BMZb>sG0*47LICXbrp3*`{cp;HkBEZZ_j>rGOJQH<%djVpzT&A2ifoYHz2k7 zC$T=&bjr#UagW&7Ojy>&%pl~=q(<#QH_W_Ux=^H<;xuR8`dUU{T#JrVz>sfrZ}B7X znp>zC_KX#xoTdc!`a03{_uv#l^Mz7G5aVbgtO$nI(Dm$x^s9Mkuc0xmHY zuR7F$EYrhId+^%r0buwzaL|(F2_UWIg3r$DWmaQaWuOkowZ%-1tEZDlh(0b$t3|Ta z67uwb{e0t@{|(EQ(k3A>WLUyw^g%L`CobjsKP|vG4(`6S{W;|p3;5-EQ#qP*CUO)! zrjVww*Hy*`YA{9GMfJ|U zYh(r921liBTM8Xl0=lx~MhazCrG|GV)`w2>#&`g~8^m|j=2FL>-Pij;f zE503aD5N;+l4O5iahZ#EB3`@3tbX9JCyKBws`@&ZK z_5~aaoQpH%3QL+WeOES0E5y5fepaN2r=$z4lgzBZquu7AO4uvs_P4F1RTE7w_gde# zrmRnX!@n{}(aZ-r(!ON)fC)&D&$3-(y^*S0-@|`%1F2~Du)n2HnDy!Mq6zEMX{Hr3 zvW^zI=uG(4?A~_kDKyoi^gGCsaiHF@-5&xbYFjpB=Hp)oz)Vz3bDspQM|L|PpxSEq zY8Vv~qauc~>K!>n6<9B1%@t7Jf+4dbR z0MuYlPJ$w1N&Jl9ivk<5@Kwux!06#DgqhMiNRIIX%T$Z2d5b4ko$a7j7u6mq$K}Gr z;*J703aMX9iXX=djK0nL#?IS0;4*NAmKQ)<$rWI_?vxQcF=8FezYjWM_?14gbZ=n{ zZzCCI(?Z&umTlWipUT>7W&!oAZ=s4alcfI&w!!m-dbdx{9{7KJcxS*blsok}bH=wC z1lc@_5m{0p@GMCd|u@`~9Ug{H6Wzi+{t|8k)ZfSucRzv~60OB#Pw0hFr(% zj%dGw^!Z}0l|QdN8DVOZEh^Dc{$vZs_ry+*)tL()GU`>W@CN@wMY=Cy23d^;fTDWA z%>57rKcN?e^}#aM@VW9?%D01;LZ4;eS0Q4RS9ca&s^D+=na+2on+#y9m-Ri|=tFuC*U7?1x)uAGL@Sgi$<(5 zyITBR;`s6YSbCz-2Yxotapi5~T~#-TDB=-Id4(r7;mJvCc+59KBh9hbeq4MiV=A5dGLUQJp2Z=Jtk+R>@MuqY* z5?OQ`G5T}g9WIv4bOE>z0i4t-5AxIuv@y-=_U4%<8M+pEIXFpH@&!EPXv!vzo) zAz{JMTBXJ#(WmFoUS%Pn@W-CAP^zuR5ltUYUT1ZNqwT>S%+af1E4_oLPzl;%ijkeE zG{QF`QtbDm>dRneYV^|r=7|>2*GYTc)fuGMlX7^u)DO&Z7nVV^IKgY_pcqVCFd#}n z=2qS;MUeJbGr72g6APyMv52=?`CEV{1CH5fwYo#(x{ zQ|}*uT5Jme;9&6#DPnp$Y6~UgsK2GcrcCTz-Sh1%$GG4D0zU-6hi4V@mY82yJ})Wa zOt#};?l)J~%xdH`ZU+K>oMefn@~Ue-JT#TB%*(#no}0)Q5j{;-(Hp#ai*d4GOr3Ue4=<9N!hs_>*=o(hu)* z##>nv>O__`%%BQ#4{Fj~j_0U9DG{xQorp8 zKWNncgk6%X3F?#h3@IZC*D*;TEem#{qFiJa-~C2+kK8%@hE3AEwb`TN&fWsEo=pCL!9&jm|hm)wDw7w{FBNTl|D(v z{W?VXqGcY8Xb|@b4UDTY>Z^t$Q0=hpE?=O0>W_Ya%M_Cq;uI!Gae~}dxAWUJvJx6L zZsFTWqB>n|!j)wYroXJJP`{dJ&hn5ii+t*gox5xNwj;a^n%ei7Qp@E?7~0LN861uw z$t>sv!06NQ@0Eqm*q7)!lMZJ=iq{owQ^4IK5v|S0W_xbEEw3@qW#~K9Q^Os+{SjkN z(fIX*B(Uo>twMV>ayg_A<`NJQ-R zSX{=3!w!N2j3XDXeGWT{p%}U0)XmJ|ugtUn;Kkf~?MMDyq&5CkbYZBkKNQu6p+=(r z1H**muV5)ttmo6%-@4_%8L_3I#sB+*eZ?!t@OLv{`3s-`pJWvE{{Mcs(Tx!ahkys- zxYBI;Zdyt_sN3lQh2zvK!s*K?G;xQbM&0LgB5H z8SSA&rsaTi`#+Kp{uunX60d3#ZjY~|T*QC$Jzu}Z7^`y$^YT_edg3{Q8AS!y)hC|? z7&GwRLEUy6ajrf1lXQ&&y_fqmB57$FK#rJ+c}RnLs!QJLYL{4KlIRBKWTHcs&?<+r z;+Xb}!}k9{M8tG^3e>=U(= z;7_HVSG*%)=E@#PdWT~gEaitH%zewnLv9_I#s4bZ=O6Ki~IaT+HA#XjJ|~MnWS2?%z*!EdrMDm>_h*QgE;it zC%-SE?ZgJs;tS#?Bq+g?ZIw0#KOet&x4Z3^Afg%8Cyg)W{obcto`R^Nux2a~T*L^U zfJ>ZrT+K3(OB$f$6(0skSnLUJ)W{xUBZ7##vs}J#Q>%#VA|wD_6BYG4&QI~Ru{zoo zrIa+88Kl(nxGS0=jGiC=O0z6n&e)M0dO8TNvKkfL z4d>DtyrFSE)jyMBLjQJNay0|}&0YhxMSm*AXTm}CbK=Ze4Zi`phj%+t;KGjJtq72W z={}@ zTQw^|xWyNR!>6WtoQK6&qe!;(wBIFdYipZkA)7PZTxI}+vM%p&cqKj*de?9g_gGadJY;$j+|TZ?kIl;c>AMs%Ow z+D8g5dq9D7o!S?7 zY@xOg7Ts*nPeJz@ibBSdiML1n3HW#b_k~Qwi-kCul|-Cm+yUV2VF>@(4+&`O13V7G z`5zapr)z@+znzV4Oq5$W5tvG0X}|LMQ7sQZEMf$XzS1!U(NWqOwXtepj96ZabA+HJ-}oSwb7ydRUI zUEM5`(sT5NR!T|r+rxZ*&xEW>e^k3ee-x~O%^~j!5ZJYP_0yQo0Eq~LbE(|f^ifAlO3{)c&%8k`6U)>m#V zl_Sf2mj&m)$;BR}S7fJ`tkoF>^Vu4n-4i_hX~4{8su=s{^G;mddU)w9>%+`5w9D`Vs|OY`7|xtE}Bp1)Tp?Cf{x!6u42jTZ$d&6aU7^73b8%8@IhNP>Fe zegmfRL47Sj3sCuO@#hs}mx78!#E`RZ`}3M+EAV*D3(Lv#R%35|WmDP6$aj^^6@%4? zo%I8Kbi8b8R(irPOiIdC7fbOsiSVnKWV`I2D12;^i3TT3s0XK4m`~MP%H!@mZR5JF z_`_wocDKfX^&MvG8!+~TXP`vY;DZ*ZimDX*AcOQPU>sqb{lfp|d;-mo9d?)JM)%0@ z1Az=l@4iHgej}bv=f3HI!J=ECV#LU;FT{jx*>TK16bP7L=%mNH!v8G*m}wpv6-6?} zCq#cFhiPWS4>we(l~Q1i(Ct|o|8H`lHNk#W?ET#ulnoB^-2R!uKw6>0|NfF$+&%o? zqJsUVde7B3#F_fT?hq+YP<3tS;eW1W48PusLX6{d_?n0gNOTKAQ%Sxu9|KX?pIJ-} z`~RLA`DbhX&y30c$A{;)V(`I$5yWbxn;k&f&c3yLCk-a_G;J_^r99r{Z4sC*Mhn3vs}D#0G>tu1wQ{cCeh8iv0= z`yDG6kFx>9Jz#m0+Zl0S`_EDK<%1@|hcbc&NTPkqRZg0?)_OSe@IO(cCZIH(_sWxZ z1cmezETx5}SsBiki4!v6CkFXEK8}b~h59AgpR=M`M6}n(>gWwTT&}z9&b^@|Ax^5C z1x7WdAExKE_x8if`NYb`Sptdk;}+cWR^I$Uvnz4aG#FSgKF1g?@8D!wqqXtX=2^<{>$u7H z?hH%G3RbT`5n6#%5&*z+L}Ncxem)lg1iNbiha?a06iN7!;I-MW8rJvlK- zj?{gv`r7Mjn{Vvd!M52QRnYp^Oz<76wx$fa=5fMRc%T$7GSEt$1vtbO zmx(F&eV+LgHSR&T&lDXY-qY$&O~d2~PPvg)Mx^+lu35m?jTEf)&#( zMMhJQtwyEkx)5@8A7^B+u%9DFl3vwMBdHmoe?`BRBFDR=I6bB_6icG0~eJ zMJmG#zeDWZW;hdIhxg({ZROY&`fK7A1jejCD($$eJAA}IzKRuJx~HWxL)LUrqQkGO zA?v$CMOMnPEId~oYxzi(r*H8YB#)Ka#3n~5zd+G1T)Qk_gsYHTl*Cv-E)X6})R1rD z86z?i4Qu@}pmy5tS=Nbp-gUF=4o!DV(}js~t^Khke4V4|sSC7$6n+S&=L z<<~6>CT|(O!U0@u_eYbIg(lGL`PYnv&JV>k~;R`-iof)YP_Ar%lnt~qG z6%;-$z8}k;>JgsK9KOFfwwwpu-{QR3KsjiXSZ{%`J=c>eEFwWQZ)cQvez-kz&Ri?rOiY(67u3>RTWyZsny#$-qtUyF2>@8zPsz6Iw zqL1RhQP$Syp*P>ad8W-Dwcj`ipKkJ0?=B(6UM6(;XZBdZ_~FjBL|a~3qRlhu@Pr@F zR>dSJIb^ZC>!kE8pR0#1qn;*EeY*G8k%#%A{K>zfl{|2HYMi0TdFxtn(Y@(S2%GX4 zj&T<^LwJZzmz#oeo}*R!*wxZ*oRqr?{#PnrYrnNEBCw-fpPyC~*;;o7?uUDPm&J^T zU?2%=Pi$An>dITR9zb8?2=$|m0PMIyw9(Cczb>Gh&jZZ7r53h}%g0%kfKbii@FyHg zhQ2VIQ<>vhUus)Jo|l!C{hOZ2kd>WIokv`W&^2Te^Y0)!JYmt~TZ3Ot)e>Ckl3?tk zUL=+kExX6*KQWUH9KI#LE$ZZ?aI3#q8|4YwSu9v0pk77+EfraO?p4Q6%`1&?y>t0a zI9&q2F_!uzW7#)J`kedJIJyZ!-T_K=%d}$&x6xa;sZFos>{Ko+pntZX0<(;JJwCOS z$lS5P`$~3})56Cx@#FN8+&SH8(v^m$6Nz&dnOJRn?7SS2l;%n~G;l+^%`(OUnuztx zdCi@*s0Xr#>Z5(ISM}6o7l5VCW8dj=`0N;bXY@6%h0wJ|+z|=Eq@Bi~kAH&CQ94?vWot@jpM=pBQ&+Mx` zYGP)mm*_mZJk%D>IE3o%Y|k&ASHw=!aE}p70eLMKc$P0`qHbRn*K?l8&dOfuaO13= zQ5AX4$vImdISK5Bp(N7j~~vBYeT z(t@Ppvx?|}Y>VD#D{$%{kL`N6|4z^y{dVb%j>ZcIm8O=0|4_OZ>qrZHTyV7jDajMj zp(n5pzGWlXjEj+G%}e)P4kP`OWkn3JMuufm)1l5KX{_I6r=pvSQJOVL>AWbLN9|6= zsSDfm(4J%q?SK(;4G(YV404rT#c!gPrBoMoXyfgeQx_hB$bJnU5Vp&ZvS9ihDBttgRJ)lK&0vt`8Un)dTfM&R>1+q)HFnp#yLuh%X0~U+ z!R_uWC)b!160-mA*xTy`9Hn&lINM*o z`I#*o{B!iRYkv)^*~gz{a4llHXcog>Dghg8&UEqV?@ z$Z6~iWJ;Wc%}XWhsUIE~httM@Gm2G23-SldpK8GmIbkUVw~X^B&!>1^?_B3Wx1gl3 zx))XiFoa{RYp}F=LW~;s->_;c6d=9ikVr1nwgf-x2LY7D7YK@~|u#V{#_B)WUr_bJ-Y}7#;mXYE>Zy_hJfgNi^smOb9 zt=cf^hyhPvS8pa1W5u1_GOUYa<}4aP>Q{kW_6nd#wH5;MVjpZk>0Whrl+#yQd_ zRI4V`TL#tezn+-t6h`a}-}??%^_fTw)tGIVKnWv(*^x5AGZxe)?8V7c-bcn3*eOOp zJH^A{f3gc#W_TgMwI0C0V~+|TX{GIgj8P>FG%jX*F=MHX%Q`P}J?(#n8*X0fQLK}; zS6erXf}~q75N-*#a%)D^x-zZuWs0R+aaKy9a=xc&YH;Cst~ozYR$mtqrfx%Na)7CO z!YDGtiaJ$e5Aa})M?mPoVDEHCKgfDFCV$nYF#{m97OLk#EUpifz71!9SQ-<0{l!iB z{4xGk{ScCe{lk+xC?b5Ph4TPahaJ zE!On=(Quew+0KYrIKE`nQYRuQTs&p@@N^IBc1==8%bEM)vKFnJf%pgBEo|b{Jv=IV ztrb{Zh4f%Hmjlj^rcr3mM>%aUWu~PsaN&65AUvDSF~As~HY`7XTX%ZmDcM~rR^{p$ ztV!<^$Y@#?vp=WsUVe79v|sDAe!Q&92=0zNYOtD za66Mh%AMf6wq*$oSX3VPw)oPeT>WOPYql5vsfLJW`$F)i?o^mCk(rrbqL~zG^YTJo zvDiRAJ>8Pqt$5mg3i4Xl+s|i57^~gfgYg=|p%?tR9ghY_yOCvlTViyndU1;16SG6B zE;KW>2%*jerws1Qw^LXs$$*u5Q3$UE0!NyNsqWL}e`Jk21hn=F*pKy}_M(9G3f|3# zolUm3dX?1Ett;L{oI%6=M*H;YU2AFZ{AfM61y>xYUR^8#1pG;FzC+QK+;MVRy5l5! zN{22UEc5^F2%`s6H}XbrTQ~^^t3_aw-Fe3H?0+SZtf5;L9++EfHTK#w`K#+7AO|4&{sp(5v^bu%T4F&ZX^^ZmieC+;1CkwczL%2#RyxJ zHPDLYf@0=gq@!tS$@wyhF_t~Ysc;l0zl&RqM%AjK$NwW{X<5(vkF?GOKjCeRcpL-G z2nVSOe;CE#)2*mP;NxDzaxEG2KAn-}B#L5eXqrxte) z1N&#YscV}i3NWQwrRy=fT{rV*myCq2N_i;AeiaE5OA%9gOU;h4K)LnP-TTa0iHmYvPR>UL^P>E<0@%W{I=DOY z^%NFrGPtX|nYZlgrC~WH*WNTgFR+9&Q8f-6-HzWU-afayB~N6Tt03yvOvK|Lz5^f&=QATh?H4t|_0$_b z3j6TfCg| zG}-PTSDbKxM&MD$HnAf9!B&~#*a6TgWD#Aq7#au19dcPaUI)eGcUmR075@1D)q}`B ziGD>KVFjo4OqheuW`Nq0rxq&kV4!oCEBq&Z`M+r+;nkx{x~R2 zOAI3auL5DtCz4c>k*0ew=EvO+&*`m?p?mHg=OG*UttTO;%Qs!(U;h@k3k)Qu0T9M0 zd5)c5yCcucdyd{(shv_DHrz1*1X{0J8YO@4YSyouJjzwIXuzl}7k6x;WgO)Ci%2E~ zGoH(}j67b_&p#kR{)G8VkaDT|)cUK?nYQI>tDZFCz4wZofA{A{{6E=Uq^o8%#diAY zVSp@b8H^}MF#o{RkIKjmnIjEQT$@)*N@M>c?Q$qcNQ6u82RPco*z#Id!kAIYVIE@16R_5|O~aCf{PbFk{&Z=fR%%8TVJnhpGuk zu*r?jI!-FG+Qxh%FVi|`pHY`XtZ@1B1@8wTU-G#R-zBkJ$DAO1#@bsm<~Po#a7+Ps zDGzo5i8FT=^mbRd^+rIzO{qSIqI#Hrj2N`1nD@!oFaY*>m{f2v_AayHDUxt%e20J! zO_(6gJw7r|_SvcpncI>21{@F`S90s`DRl}&(Ve@=CH!k?8N*jN*GK{uo|gq*E6D-d zi@e2g$$pVrFX@&Kt*q60i+M3+{})R281E%O%4`oTUtEDjz%tOks^|WaN`Is{P5`X` zh)_2YmIe*ft8MzcfhtS(8PJmB8l&>!Vo?i>1Uvc!R_WcfFzPIny0#slw+`mvghQA1 zh>fYyI>Kkuhmox=5$AFRdb3jD3~b?ZJ{cn-oGr-ffCEf>uUVHPgBDDK=vdLR2d*^T z*1{qTb?}xN+|U*e`CfE5G zSmJH6s^D57ALLkoN&@IP$BpA-JKnq|K%P44MbyHbS_Fmt#Cmhn!KvoCgp@afE9KOJ z>oDwiiTEuYBg3*_k_E-vQw>N%)lWs|pe?p9s_|5hw-P&8yL1R4;j8&2kk$imVX^0L zrMFs97zmIl2FTtKfNOtQR{!88|2-S=Zy%P)H89_V%alpsCG7HizSeWwOBy&!&l}EI zm7AzIYmPYG0V?p$c)T#YHa{O85AFi5gJ6D)5Dg-XOoJ3pn4lo*Qcj!kq>v;*@%fD1 z#rPu&`dWxP=bEpo@7VifO6qd?s$ddMUkX|^$1HuT#BSz)wP-R22L`3?H0!`p_#y~foL~Zl&eF;F zATnj#E|l`RUie_Z+@4C1y^PTy2~$uxg=s@AEW?1p5D*W(V=!<2j~u(aS4&~UxcZs` zih;ml%bcPKB@uwiA5jK3ol{x+Cs!x*2m0H5bA;Sc71Z`q9R+28kHDCNi-@x3D@LIH z?1m_^2=GwD+?&C4R~|&@YE(Jym*u6>rA@UPLy6dxGujY7cmlHx^q zPUS0mYMtJ}qz&CG&u~AoR<&c{1M*F&ge-lpu}f}<0QK-|j#P*Q)0;I8E6@EXF$%oD zO0q8%msF1nzU)qiOsbveaL(?PelpF*UnzneIPrrqF*5Z0%)_E&_-gJ8rEw12B6|dG zq4BAy{h>jZS+_})dOBau`0qIB?iXx=|BdIc+QCq~yG_*9tcdYhE5l$eIJ0nOQMx5w zMB`9hFtFDoVj$6#-FGI=GV6+W^AGFgP>&C+*8MjXXHJI9#9t3k8U@mU$=5(Lj8cZC zkz4;S=Dsp0j;;%npus~(aCd^cLjoj_pn>2P+!uBR9BP zM{KEbIJr*Ad?tfsV6Yj4K-0Of>EB65&x4!W(PVlvId`Rzg$M6I5;WQnYjkv9^CP!ZLSTxD+M+(*RE}pYOQY)XdX-P>m_z>HdG37` zM>NW@bSdDr%}JI2_A9I*x8!PJO5y3PoyvDl2O$Z>hq|rDED|?w2CRp8JL)pIgRVMn z&?*_i3YjF^Pj)+j7Ri890Uuv_RI-a^{G}2ddi>58kY@9^=am#L$(gbGh-WUV{~2ZwsVC@9uuuupmlFCp=_L9e7MfE$SS=pstOb@qA`4 zfu#|3RFS_1;O`z|0vHI7YamEMTKnOhuIyuhZFAfa3zQFB`kohu4i6d!?fb4t>-RGJ zIVWY$>*^LKzhuPLIcg4%OBT8U^i#iwj)!=0_@8sP>k6;-RhgNV)8+b_!4|olcMz<+Mo{mqrwU3XJ6ljw~0Hv3ijx$5q#0qFd1zXLXMIJ8(*z3 zZoqx&HmFR64N1bj!}+_o3hvb+)3cB$M)5c5ILA@Acj~>g7x%zAGy|m1UW+8L6g>OU z`H@VDL*av@xoqkcJ&k{B%iRxMszZJtAz~?dc_!!%$Y-^`nV@v$;RkrA&Tzp?jT*PT zR$Z{ClgHX7GJ;@;J?yf)x%nANlq9S6vDjHFqYv+^1n_yZld=b|E_2q0!7(Qu z4Y;o*h59liB4Z9eva-h(z`bz&CRI#)qHLoV3%SJJ-d?qHxj{a~M(}(GBciMJ-aNk$SRi-`D^PA*Taf$yt9t&) z`Vs!R{*q9JXu~h&cf(SlH8S@ErWpwfzY61+)~9Y8ue}oI1+IVhXg2aLuyb*QICb(9 zQ5Oz@TJ{4+V&Wt#mMC}Lg;c%hsl-t+6)CV;2W%)en{g)XVTLd!(5z*5+HNYY`-zhk zD@oSnz{?(Z|8n7Wm-Ntlr(D{JS&%>C3lDCu!FMSjw)U&dvFWSPIPS?c=1`U(>VCb; z{izo4@~{P4mLAjeBg_}w)Qe$K5ZWWpfw87?5%C`L+^ccrIvR>ZKU7fx zWU4j-B)xO{Zx{>4s!xBfG8HzwR$EAqrD2ggw;DQMIUJ=T&rPB`pnZv5t#cT0 zXR&(;msE@jexm76RqV?(qn)?N%!pg3e@D25jWVUV1}eRD8oa+fi^yqidWa>Rn*z6AnsFZWzFnMgUK(*_;2dP`>ZpS5o88Y)Z0Km1$0W6e zCK@y)MhNgvoDW=mIt3MP?P{2QZY+*CIbm7dPj+)AQkj^Ll|zxG-f!le*m`H6ZKaJG z-lpE=O!#HDj&$zg9hY-0sb)&nyIx>N^4*#1w8G}#JG7;UQnv)gR`uRaIr)?_{qUYK zc_!mwfpXooYY8jue&)Q)9CKo4((BpX4<(f3V>~e+->Zhd)v1jEd+6 zccpan2yt#;P}-*wi0v|CmvZ45XWQ@D(Lk5LU{M5V9X>D{9PxfX_w5Ie;y_66RE?H;uskiFL zOWL$5%KL3*W(}3Tp*a%$=&;N^oEaX(3YpB+TAMf(-QH1nt@u`vn9%eFq)xMR--IKW zTbMYpc*TVz`nroM8;JCM3AU(mR?nD^5_XVhxMTf{pwvB{y^#C1ZQp21hOAuE zp8v7vTLqTlx1U7SAx-Dli`B(`)k;h4OPA1L=j3ko=)$DFre+bu)|cYEXEZ~4FFd!l zU)ZHngw`sVaMn`}$m)A@hzpD`I8^sxRTy-mPh-PKr0w&QogrrLav_8H+Vkey%o zoPg}f)y~>+c<12A=oY11HY{7XG}i}K^P3&cHsiG>S{x3WtURP*gX5gc!r0fFs~FQz z(3Iwe5_EL7Nq$gUYa@}GZtp>5u$IUdDRNKP|^QL$J0+r8^W zN@^L-qK+ycB8&(DsU=^><7C3Hq#y4~AR<`~+gw-9GHA8=YP;9F|F zLKvI|FU&{H`DQ9t=p1)XzE(cb#cJio z(BL2eb#^=hT}sV=4MT~0&fY7I*J$gRmgon2=hX@E_d`A5H=h`vIn-J%&vZ78g`Xb=}$Y-e{Quxh|;w8w(wHv6}PeKjs}%wOr*qU8^m7 zJE@wU_tFDbi*-Lo#QSQ?lI%za$7%InLDEq&>ZVY3V!iu|c#_V4X~ z;2g($(FP`TLetIq%*iRB++lQE6>E!CN-i^`9+cavSBm%;cD0#fKU7kDr-Xx%Sm^^Lwr zb*R!qH2Tcu`{Ez)Kv$i*nh4i5Ash2}2g>x73aYD;Po;#7Sa(i=cx-oP@TTGA@2`Fa`QVFTMo`q4b^ z-FM+O?A?+URBxCmh5FGkn^}X zndYy`&pCb*nLSQte8!!GF@H<~>RN33ycFoq)Pr;sEf5%~miU{@uP_5%)Ld3klY`Eo zs9)h$G+PUxoQ{R=A9JdfF0&(zm8jfz3Q>(ep}KqCMqArMB@Ww80&LGy1NTTg;2$i8 zu!~i)K)WVL2wI=&W-3ZqLqs2D5v>+zDUmAGr`~9xyYnA9;SVSiOnI~UU02kO?e6>L z{MIogd&N{oVkTEtKAqOJv#36LrlzHtrelwqIH)?cD9x~oJ$1=4J5PB3v&`~6*LAHT zncDIN959$R#B`&{(JNb+hgcKFY{#Wd@l>XGo20&7owm^@S3F7|9~K#?uus)cip4m# zhD?@fV|`QaoZYrs3#0DduHqPW*5?39=tq;8#yx>UwIKQg(;>F!4;=8kx$} z0gnZyUTF;_X9fNxj?iJSmoev_V%m3=F-E_Ao{`^iu&~!U3~T?IUM#!vsAOxnrP8K3Af0{OFZ64kzn!TL>i z#94Q1$L7pY0%be4r`aQKQw6bi*`d?@!R3RO&E95{nCz^})rWSfVo~u z?2NRmCm*0IWa0=_NHk}H?C3cO&BF=P+D+KPzL z5c%3?Nn7*_*gu@k42&qFihho%{Yh#M%l!T%;5UOnc`Ms=y45>}+xFgzVzdU&x%YM| zv_=Vbxg%R9&ac5R&fxuGo%OtnR^--Ld1+}nSxFI-yVcf!C!nG^u`8(o0yV=sI0S)+ z=qBcz`~mxm^YJaZOYe>?bbfNbjAZxp_ZL$VJ470d@km%uSgiZ}j2TMaZVs0#tr>`i zeDrcea1wL>k8R)F{{FVFmC(yrRRu3l+XQKeS?C59YxI8D_XbT2Ew#24sM6~sX@-I7 zZ>h^Kxfo7dk6zKxe7$mL{ErrZ+xxjXc;i~at9{4(0=&P@QPsNMCI%|fx@eZ*Jh`P5 zUzw+DMr?;>Bu13*M!DjXU{@*CP5tiVNh1&#tWF>dT>&CGpi3@-Nr} zZs5kE{VAMEaBbtpD1MRB)i)VLRtZ>6y;@*8FBwp}_A91oeB*x@f!KPw;;lYYSmB9) zIsIvJm+`DibC0p-^07d=`+5s)^D&I}-jcE^rD4zbC;kU$MN{IfX(sg)vsmT}4-vEB zS{1plI-2{s;J_c`g^Xu!=0ja4u9R|T-++<#_b4#Y z_Ww5wmN?J zIQ;Mb;-!xNrY`yy2p+QdCG_vDXn4~8=bvzYAHF|r@)e$Qe-^7c1Yxf~GBN*$aM}p` z?;E`!`}d}?#0nk%>;C`GU)#?6)AonxuP;96_PalPd_9ousxV{pp921^hJMPH-Ud+d z>MX=j$ZKvtwV)Vm-1mI% zJcr*R_@Ad{es5tv8jtk((mBS4 zf$h;Qlcpzp#spT>vY7NnDknBYk1JshjQZlK#Q(Nx>~_r9itLWTJ{^4eEykrklEa0fWvXiek>(jYP~&7 zQ<45+bz2{&e*RUzwWIulKLfqJm|&XY^E3?&9eVdf7hQC@kI#*O`JdVDVcb`T@M6Gn zw(WV$pY;*2*xa27wrj!&;Sv)4Pd{UlhP0dFw(+HuNa;$MI~{f59oU@@a-KVv%fQkINOff zB~}4`P@%Brt5i%#PzyH~uVmB`tV#gf&0Ec16n)i;sx z7xdfKb`A;IX)@Sz`+9xy$~u84t&eQ6qa|Ny;-JKGyt*dIbV?$`8@u?7FZo#U6ys>1 zV6)h3jdQficOQl&Quk>*{=pqx^#q>jp z|71FSLd9VRyOgaC`3*9GUWX{lyYz`m=IalF0n!)jN>NQMK!Jq``*y zl+pktLdpKAL6u zDb{Mq{m|F$s9hS*)^f8-*>DpN{#70u91?LVPJSjDR5NKo#IHZhXWmRO_!`OGbay*9 zaSAUx&OIw<^SY?dBa6M*&W}PTOoC16Tu7z6awTx&gni+9Xyp#(2%r}D2oXu^oy7d%_sotw1fMgL8XFp4;uqYv z@Ft%27#ZigOg`e^BoZ^ z{9@tl19tO*myT5X32kZ73ggY2&FESv{5m`M-K^RAEW`J^+THnJ$pYNAs1{R7PS(-% z0$^M<^OcNMWvM`Kz9t<$-KF2SB(r!rTxTe*p<~)E8he@kbU`)cj>|{^@vz$Eu<jop`Fio>Ui8b2RTV>u@=8s4~-(gNMkqqsFt!B*f`}dc8eUE zjTBXZH?7*e8*Bj?1NNR?jnZiUUDp)Dja&-(1Irxq3N8)kgPo6^TINBS>-&=jIhFEG zV~^{w#07%+sl&apGTQG6)`c189q4Xdo;8xA>dUxIcex4sDHzfi40bOQ(At3tb1dBx z4?|$0Llz$@9^kXZgV!tmh4!OqCZD?@Ud%8VlFJh%%beiER)mgQ7G}*`0?>`MvR7=n z9PNnMlf&btC1o(o(O18e>HOB$XWRB(T<*$*+Td$SZ;_2JvXwXt6C-0(O|ERCeazE- z71H1cO>f3$A?1+hACSq}vQ%1GHJ3PlDz!EwoF`(VNx-wMX^~fal`Z5XolsD0~-(9_cUrLHEG8g>^ zG$HSHJUdJBSbxEVe-4M7u-ye0AT0d`1vfrEi1s7opxTPR{u<_Xzpx9WR)~}3VR~v>sfPl99~|7;S}jf8O|2q7mq6Ifv)rt0buBos zv{}Mlyt?@JC8URkraVciQar*j9QKn_sM0A)>eZ2he zEzT`7S2zVB{nfLvVwj>20beGeWxac|*6@Ig{uwge76;7l-H)&Hb9+UiAF&n4&l83v zvMbSC%DpWGSPqvuSjZ*TzEE4>QGJ+~DB^c=)VTv6Hb$vWbJjvF|1e!D`UGUXV@BIud6b7^_D`g{w(Z9KgQFT~mR(sh{IOmC$VYpVSzV9#2^ALij$>*^5? z*`TT$P@t|Y>6}@MbMrn37--ak7!Uv+wWkQJGOBPOHr!aSxj)vDWBL3*Rmy3~TT=cp zof1kThJm$99d1-aJvzs?E`Yop^g@AYiL;pP{!Cu(>s{NN^mK*gTZI*;C&nzZJBKXY zftyJf9uaCy*n^Bqo%0q8FP=Gzr2cL^zSq~m5}4m6m`3Fz#eC3Fk`A;5&a$?d*2hbDSYLYv zNLHdi6aLLruY?3Dj+y+D$mcr~d^J#7o1=r969%8o4=BCsdBJw%P1(8Kgb*AGx2@jq z?<$ulAXItb>`j6s_;Fh8h`axrhg`;R6@KfT=LvahM2G2@;$KNQ>xmsE(KXB5Q^a~%*0rMa=PkpA+I0?LEA)Oh+SNro@BT>V5b}&`*|l! zg2Qu3XSJ1De5#2HGR3@gwV`vujHuOHem{5PEK;db(oQldT3sZC?Ro0beLLN}Qx`9I zCc2#3XJW)|!7|d(LKB^z!_njNo^BjXhyzJMra{au;xu1jqC&BEYy-}~9c5>&H=fR* z6PiXH)*)pICciYk@b)zyYx0GF+3>w}GOlWN`guI(RVa||y~xZ0JQe4ETSt0T#&GPz z@!CY{y_#Jl%M+u6K;Q6kA0qot7tajvVxl$Nzn#hG-kjmMj9hv{N$DdwCSDZu;~-== zM`n`OT|<9V-T7_$@tNr_4~`P}W+Vo`fhA8*I(-&Wi}s2wh+^V1k(_9KULTiMxZ71c zqd}X%*UWP05sbE0l8Ijw!M$D&V9XE?7Sd)YP^%qxo(?5XC$9|wFIGo%>N3Z_B=`|6 z-ar;F8653K5%e5-0a=*S3Que%SpR}J)Ya`3m!UTG{-Y@X%8kY^9VxwKSp6p7JIaib zA|*naR*hA4EIDzCY%1Dl@Y?npK|)p-u<+$!?6gB4Xv1Aw@IGB#nM^cHsoewPrRKDK z@HZRAcs+sKHjUsp&-G+-GkEC7U|AYFPk`+j)}!RKy%u@xf=xd7N^JdP_fKe3{70VD zC%eFS@waPSezG>(_U!?6d`4}00z>`KML9Fm&$}vq9xkfXMK$4*&F2@TssI3jqH0mc zqIeNY4f@6273ntsR}vXeyb2mL0;R`BmL;=-_M6f;Ro(4KT*>X90IjI?v$fjadHHaG zAVC>BSAeYpZkxByY$E2y(Y?<8HqhCbxtt1oLcYS_1sA|zH$G~`8-5X0)3Hk{h7VR^ zlzNT&deCF%bob9w@ds&bLc=*6F$qWmx4Tn-&4*otem#`u(_)cacT-5&-7%#js6 zJ~CXx(WEX6W}cY;scvAPWIVG4nV538#1#MzDT#@&}|+JQ^|? z8eQ6u7DZW(Jf^lm{NjcEJPS4K)aeh0m+C`6>R|@)x6JG=Q{IZ1UyKvL)_HNF+25;V zDZDfDDsUN~(5DE=RVVD4?qD_|&<5_oO4vP1LrZlGhZ?jW|M;whi#}Pk{^ad1iiHlf zWzriBVHf+4IAkl&F}$xm+&LtWFlY-L7}e4-zF*cETKGJFCiv*o%)2r!80d@ZPXqCp zhe-SA9Q?#q7tfmfYEpkhP0lbsSCnf|yHS*`;S`LqvV}Si?nKdA>qo-q}bhB!Ie$PPP6ujI@;%k6RJ{Wb5PGiyFQs3BOIE}{ zn{T&ZRG==c4rfryyK~+!odkJ>l|xMX&gzM!o|J{FJF>4dW8Xe2+I?h}@+|w7n~!K&o#%;0 z@p-fG%uHb6PJ4ca1Q5Y3ohQ}(>~l=I6A2cV87bT=;6QCI+5B2Fs=Ut2FLm5%xV6a$ z30YcH=$Kr!N)BY+9R@jqAvi8KAtCO@3W3$593{9+qugD>=sMH(ET;F46i@GMZ$Y`} zuY7e)6Nr0sOedk@m7`r-egwpm@Zj2EB81fsyzK_FKfZ56WbC0?Qov)yKh z+XU=97f)77g41KFL+mezXzsc^=lB%%rPhIMkpcuGl|G{i2Mo*)Fc_OV0L&}sB;sxw zi?@6pYQqvIyU=ek6M1>5jX!(6Qjl`}6f(=&sgZRwcn0#Eqjxwbf98uHFm}E^=ZdYs z?cZ}p+Feyz$y8fAaXysO_DTYnsQbSbhA9+#kH^o1T~hK8GhieOZCmYhTUyW%(L98;zO2CPQzB%)}1{xP>Oa~4zzoy z7#JfTg9Wb>OX(xZuWIh3+b(m<=%bRhB|C&R~0@9~7d;X+M zmHWDcX0_RwI?M zK>iHkzL5U?DLixc3r|kcS7TRYN-3@pX0ciVDYVksKd{1bQ}AaHxMxI0I$lue-OFuZ z#*uYdG6fq^$av%)%_LMhDwA}srhP^l{B4H2qP9*JlBn8MJw@hlD!|DSl-E_&o+&+1 zfongSC5~*v>p4<|V%ZDxaU&WEFltR*%Mpy!h1XrGr^>O-ic}33!1g z(;MY%ZBbEMLrl!(A6t4v^$%__2C(-<{0E;f1wej=sc(?<0YA#Kc1-8O#F^A9c5H+YU6RuwE)o2dPPX;|-&Sw?wk!yf((VDl7p zX58>Yj_3$ppfp}m%EQ{!(PjdnYfQ4;9Miq-6JiYCX(b>5i>a+st0*8T@er7oCN|$? zaWkIPkuDFGW?@Y8ha{B%|F;A1qKHN8f)Oo8E(%FzIWm^D3^QH+u9MKbhH0r>T6p+E44*` zk{(RXJ_;BDiX)ZneARZP)oGK_$3gap*b7>&62IxGlpO{ht-EXg&o;f`JgD>ra;USS z1Mg;eKLCL&E7lUt2yu%Ql#Sx8jQQWp;)jLy{=;4_va}U87GyDp4#~FeOimMc;4fcS$p?OCW-OnajFA+euYf0uX(9ip4OtR?vmj6V70znBB&$D95={x?G5zrNN6IFjiFtAAmA zlU|koq9*>Ise}Iu|G;M05nCrA_->-kfZ@DV2yeoutX8*aMeN{-yVADjnjlLvn5 zb+%yr7*6nSfl_&={?Ek5$kj^dUu?QGJ~I*>%)1$roGzswkMs||u4uS%{=d~Y$qtlZoR+rv<2JfVL_|bPQW638aGwFB@cPepycAFU#ciE5 zcm)F1f|dq#$Li^QopxD5vi3L>4)Z@-~C2LWcgw@r7-II>QPGaqJ@F=P!I%x0iuc5hllHBG3(> zbioY5Z0e1*XOlXc=u`>Ipu+MwNqZy;03`h^Z0quHGzH)N^XGJgXY93pekP7D34nmH z7kn?H#0Sby!ppv2C=9r~7xL3fxX#O#dT9Ow)|y!W_&P!HBhuBo#_5fxM9Ve;``$>q zb9v*>z~x_$a2gjHZ;=Bs9e$HnN%8WMB*-B0QlP@nU}8_}(y^CkIe|jLCnIlj@NWG~ z-as*MUBrdcdYTnzOZ%p!UkZP_$4C0&tRHZI_ROZv zd`TcL=r%wgm;pGyP8Bl-r{CH+#lwwQ1aZ56>EWe;CNW5BuDQ&3DwnOEDyNixLMaWn z>Q-&Vs8x6OO+1tQdeY?3%H!uXU^%F1yfIs0OeW?*6OB$oArnop34HwZ=I@g`ytfD` zhD1@UU(JTKBCxf40SO>jU_ZvOnEeLl!-|qZ$h;)TWyJ{ye#?gisU+|<>a*l0c({0o z%;uyXu-UMd*QESYk>3V8<2)?q%AH zTFLkzzFEC)y=;H>=c9_Ei{{uNG>pgerh#h#UW#GxXF1UI6NP4dn; zq^*8BzOmQKTk@buio?sL;}KE4&G^a8vguF`PRFYw!!6?8w)x*LCWhV!lyc*B)VyA_ z6R0v9HX3hqzBdfPrM!5M02=y1bbk7=gVSXMqR1?|Sx1pk9-6Nl-n$S8n2z?`R?q>@ ziSr)ax@X<=o4wYPb88Z&i*v3uZ|sBlSL;s1kJ_89q;edkFM0OFcyPQhgGXpgopi#X zdahs75S@7BHRkz?Nv?cxf#%I68yHLLz3e=HW#qBA4EGR#+V1BFi(uN1)fey?**=?j z!pO>WoD2}?FGCBrWGxzy1_<*{wPpFhFDXNLAuV9uj27;`SU&l-{j@x zA)g6-qsn+>)TQG#6qPxgIhvyE2Y1ngd=`hpQIZktPvt@comO?(Zze-T@3-B_T)PM# z{-oYlfFV~`%^T9J9>L(Tlm#Ju@VgBjQtZK@V!HzgqfK+ub{y3V$K{qtz{0>#2#~t zRSj%d3Sq<7>tKV2wGbOx%g4{(J3E`=+k`%I_*dW{+YI;4Q=#}{W5Waxc7TB@akMv?wiz|F z0d5mERFKgbQRaVPE7#wjtHAe?>hZB--5%YW$yZmXQnNw_ z;>q!Edq8opVsR2#be7bm%3|h>c{cl@lcP(ZjYCgLpB5XJ7{=CC82mN!T~~RzJB0;R znT?oOb*1p-i{hz&T*a?|2kEGN8>TzECw8p5@^t^-m7A z=1opR%LDVGmnXKFXBSh?;^O^KKe!T1t`5t9)YNBJbt-NGh)Qb*+5y>K{B8xd%HoU? zs0u|jPt^RsIW!E_h|2KCs+6aE91e=^GbSVJX+!RYkU8OpjcXl8LnDGDy{>5#p<)mV zR)e8yjjc)gxw?nbof!lakwu8c3(0`!&-1K=!7r5Jh%KsdUo zb92{$F^Pf65c(`7tk$a!p}bZ(b6>&wQ8D=@_)CgmNH}-@A$r#I-%NtKGkAz8TS<=j z<+BxL<9+X>V+R&i1gt05{6%f@<0r-Te_K7{)nivcj{{;Mp_yRs_dG!zv^vEbHAHAH zK2xBEbJ%l=_LZX0+h}t4m6|t0`>_jA-ej}CsPwSsBPu;l z|Ifs1>%+j_K4)AYxU6VIyCEd6_ctntjh6)UK(WuVw)osH7m(7zzZ6=2m}Q{arcWr_ z?yh(-B*zwmvqdoKnxsYhJMK^KH4dkrz__&beS+s+UukY#S?}cU!U;tgF!kefTQ9IF zh@e!JTP%1&;gI=ucj2$!w}GsZ4NM`cCNt&E9UkfnjduY6Ku2v9QUd64Gi~Pgy1npT z6ZEK$UVfurm81o5mY3zWkrk?Hp1)`2-x>J$U!~8cFzLPvyw?B#8W*$(04O>v+zi~% zdbFD+Umxo%j0(uxa9sc5gh^VP@{?l_{S=i@i8D9E2&1KjxiTqjdz&ksIM*e}@+}WJ zKVwmgW#R$Wq$tC|CWLA5mvHD=Ey+45c;JzcT2Gt;dIDi12~n(9H+m(ADEmJtWwbrW7HJgflG}cQCxsQ459QPauM;Y`56Wt6-#zM z-EshoXnb58cm6)0ER>cWvDpFqA4TifWut#IX3sfLWTZE$3s(O2olyD2oBwk#R6s9y zGSY`f;pQWeFR=(A^j(B3k(Zs0^u=y#{@%8I^y3HKH?K{+`Mz56pOtjE-O+KQZj*PV ziX~jj;gJ&Hb5mG6c)a1P<&F^eYV7g?4P7g^sD%4smkA8+!+a_#Xn`d#+Mi%&C}qHt z^t9|cf)&68e126G(yIO&AMp%U|0e5ixYE^by|NsTxYJO-%M3SIOc;a~M8F!R_?fFkxS^K=* zwyZN>oZD;555rB@GY_|@t`EW?@T{h>7Q2Zt}_2ILpM3^qCOw$sml zC99X)x<-`C0O>nki~$t{{}^Q)P3fh`$Fb;=4kT~4>lHa;wNK~MHF=)PJym#DSLO`LE$R5=bui&STS}IB4DDksl zGN{6X|LW(JLoZC6YSIDLo_+Edd1}r8Qs9>iK5`#iK@4|Wtr7Z+`NN6^0GSuhdnhk@r5?Z z3*zFXfFs?6Q%|)}wdj?eSe#Qm?Qv=Xq;iRGwI2fZmx@!+5uk^}I=U20*r`5i<&rJm z68p2wsasW4xX$|1*V_P8@Man08Yd>pPpEAH?kl=0YqBG*rRNO@F$*i`4xuj&&DrhW zq-=kpeg9Z01{&&Ns}Tvf(E|*+oYsXcLA+LiTj_4o<9mF^LAH|OiJtEHklr~c-usd; zs|y9JdYc_)-!k?#x~7{lv`G#+If@bt;M;567=?#=CH+WjSg?xO>2E@b;j)L( zH}``J30uCpoYB5l*{6j`M?g43bTf72Sfi%WxbVjL;*%6%iH%iNrC|{IV;GZo!p4X2 zLZ_tI?$vwwF?tHF^jRXt3tkRw+dYU$j%l;d$3^euUty7SiYh89?XaL5k9RUMLLO&K zRpz4rq7Wnm-inEf>nzr)O5w9kvNJK2^t$`kK^~|uh6n;@0?r~eA75g1j;-=z+tQ^0 zQdF<|Ro{`2pQzGUWKBB#2Ghh7(!G-*A$7*n%xt;-G&UQXE=Yg|$0R`DX)M6x+5${& zLo0w?DmY<>1NlwB8Zdd;n2&~~vAUccYp24eC1 z!}sss(=jrl*|=i-UEo`m^}XGc`(4 zLcRgXOEfe*(Z|f*k5M2{u|RbJ6V`G2OUSSG+FMu%ZWUETNsB?SH;9cUf<+bahkB&M*h`bDad`eTJEjN>XP zE>7~php!TXYu5UIuYDewHWex>d2JO8)XNaGEVQgk-Wd9fCTydKdJVJlTD*0O*GlE@ zspCJk06!1Y*p~*V&XdcxYnWM~ba53z$;aPud>>s9Itq*^;9kVpBk-(g_zlUibH>k= zP`Wfw6OSEuXA;n2OG~fioAJ?bv-!gVpWd^_$*$g%fBgLTJ@5lC!OF9c8*P|;{M%dp zJ+;Is;2(8&p)fEHOFuXK-Cs)S8sAv#e;cmUc}wG%M$~aUSx9udQKDHYD>RoHtNQ73 zxn*x}){j&m1c%&cdC~pF3xYTUV}(mPrQ1@W^*vEtT3@)?$pnuWa3#(V4qH8AK;CeQ`=9quDBP=KAK#1L9!cF-Tw8i>@bT4h8)+{RzRJ><|TYj)cGOO#&eEL35n`2pe+Ye!>%nv=72})ub+;8EnO@R+JFm<1^q8e6SEK2tS_R_>l`MBH+4O>AxOcanIeRPu(sEB`V{H>;{6g+681(s3^ZZKK7_k%9=K)6 zi^IX@Wssp~VxuiCh&-GFpM42OPz+MXbi*GmqpxARTc-!4WhWB{>J)H~|54j_2Q?M^ z`(is(yal}q-B=A>lcMwPJjf#}Ghr&swaqtfI5r}_e!pp`sq#8+ zi^D`Nll~=rCtd3!^S1W=YaqDO(F1Sj=r5e*5HXOlmEBMH+mA9*H{WQt49pBr{-U<(6XGPTGp<{yW!QEj4o59jFo=#s%-X6 zRUeQG*v;fh4GFy1-$AK`U&m1>m}6H<3JNK8$yfXGrco1-MI_X&gw7J9_$A*+?b5FN zqp$ID^X}GH`Cv=29vPQl9%mAYc)iAremv{V9>r+PG)hyS7#Qo4xHV+e_7}Z1a>l14 zoS>1BV(R0mJ*ItPW?*WVwbN1=^lDpDFdnlf?8M|38L`2%k5c-$dEL3|@qB4rmCc%u zgj`eTQlNdioW!aw!kYNF%y*mGCsi=%r`5MW?mZ>R!J}fG0Jn*TQG`3)1m=B-39;OQ zp?u#lpxTa(&XnmPan#Pf7GlHJkik1H-)mOwBriFI`B*X3zbB7>b+7@q@!cUD?J{{* zta}2O(C4Tp2{j?{M;|&f+232pVkl?gDD&VK%f-2j78E*sVzb+x;!HO&nyUh40qj##zW2=RuSVRE@nAhGO3$nq|{^Fs0aRJ6tT6{vryOpfoGu*L6 zSAWkR@zvLBe}wq=IAQ#5W*FJ`omLH_y)0+-*QnIa1% zrK&*qqhflffwKY_O*yyXg(O-kKCQ|+y|iewZh%rC%-Kly3ZyfKnRk`7Uq{UdOmK!x zA*q0Y_m0Xmuf2CeNa{=jwO>nF*hoq%(zDk76($jnWgQDimmWUmL@zbWRxwXgxH*fD zy}ame%}&u>Q!4sgA}$%G=n(f=6WD;eBzlXaEZN$_&5gjl8kuCh4@o=At=d)a77J~H ze#;(vkIVPm+AsSYntkU&)6a_=_BFnE4nVCgC1VG_D}Cy+xzFs$a(*wQJouq$W?;l-0fAVWx_0&JHA1hn+q+ zGJUB&s0M2O6r#a$Me|Fy;*REC%QZe5g1UMelv~uQvVXu}VE19Zbi1vfz==AQ2iK>S z3(M1n(0H%^2LOnUB&CZ@-c@i%x$>ZN(au{=i0&`N9hui;h@Ne8x-jDpOy^96iIdA; zb%Uz>D7={r4n0&tOLk$Ew+KA*?Za3oRoG_GmXDXtjNjq3OjQ=~PX1N=&Dtf;_1Oa& zIB|qtQvjm;du-jFQuujw`~44(k(=WbgO1=FK>T54MYExX%x+TzV}+`|(dVl7>}FAn zqSG65xsp_-Zsf+VaUdvij{fCi5rHZ(wba!2e25QrLD7--AW9&OmjRa#jGTdYX$iF# zd;JyP5aAi$UQIjI6FYoIcU$o!cq&O0x|DBJdnPQ%j-q+BBIzS`Q=J8_9=hk*{@ut3 zw3la4o57(X9n?j!Db_BCVWg)s4POY1)q#?O~hx%|(IMUiGWjt?4z zX|@IUM+eQ@x&%rmO#+xO-K#l5^BSZ3EKXrhI$ryvvV3emrYOFoza4S0rMvkPeWOb& z^;Zz#Dy#IqP*mFyA&7V{n(2D79KfNM+)WwZ#cRTF+Y@7ZS7;b5JKbU@DeA~DpAu2y z)Rp_3v%A(Cvw2SPefhA|OODCBH_OYDwgrHXR(t9gWsq+)`G~$a6vzJ=jUMrGoG=*m zO=~{fvy%!s`kd!<)nn{xJ0bEz`Vk;%B2W}7^5GrVRn3Nd4M*>V$J0UuzorS=UxdWZ z70${Aa|oY1JX=P~-7U=Y<98-j6@b_Y}UDA`~AN?hgZKCi>;Z?S7GrV;cld3jufV<`;}%qgg^JI#a2 z$lr{Y8P8s=AV;uzACX_#B1V29J!+l?wnuT@!d`mg>m6*SOt%5RVSz_C^Wa6p!?@+q zEz=+6SA>#~)J%PJx6l>y(w8q^<~4*|m+lV0^t1@BOHDhAh_2=2TX7@W`r@x>J1bvW z1U$rw2-1D2>rhDwGA<84Xvz9uA_NR9kfd-p&0?`2NRt}Ke(c_SvJM8(5*?c97yX^6 zdW+d(dlJ;xQiIZ$lB8Ys{XBw+MBJNP{vI6GjQ=S;*uQt^w2+67cy`>9BDT@^9Dw|! zVR8oD;>zHvxmsVZ)tZl!1&WcGY^jxzPp(b}tpZ(zRzFueV_r9iEadxk=xB;ues$`|R`OCo? zjT?Td!+J7n1TrRa_|J}ZE!0Z@%BKQ{X#&21KCbv>%en@10GP`{f3sr2=wzj6axyJ_X4v64(b z0MR;@W#V>nud>lhw6Kr+;TQG(=MxgiN7{L&|D6Rja7IDYIhyGlI6U$F&*GcUT(3*d z4m44jk9IYJ;+(a|_|f=eB(P;%zm-a@JBvg^SGoU#xNkd#G9?%bggfO&1zAsyNGi0A z!veb-k!JnkXjNvd2xs6Bn$1VO?55=eAtQRARWcy9EK+E*HAEr&eLUtiuJnQ*>xXf7jPx^h*5*Btlf2jGadh-E)VurE&_{qDPPj`EO1d0y`XL5VtvSY@;D;2#P=CIdZ zufxQ3eaDg3=EA90km^`0A~Tdsq|~(>(m9e^@lwa4|2g~Np-tRhuAFMu<&@H5+g@CS z&YqughxCR|27F|qzCYqxOm&Od2bzhEMiaT-;E6~@VUg)lvx8Z_!H6jbrTPi!bEy$y z8yYf{M-xIeJ;s+x&uRRJYgY1jYl@SkK?>OIW&Cs&MQ~YC!ay@QNdY`LbqaVS@k_uy z+MSHHPFx`dtOva^xwRd|H? zpkjJ+3Cq$A`Qzv(PR*vVDU(INKG1n|t=J6(&09DWx{XPa-m}<@0qgt6 z)Mly4LlJoBvtG|EA3{svoxdDt9o(lcZ`D%!hi+DwBZ``SUiQpYG0KT-E_W>U@Z?Xk zoWM?xrs2dO=y?A)&H7@ERNwZ5XyHAds$G}cqj#L_T2g|^2gK5y!v32>=d+bh`<0ZK zbzU`Ke@}cWDH)YbCp5UE7=Q@ae4|yvpegPWpwVQ5g(pMKlmk^w3ZjK|Jz-;>9)4p-b1QMYKh5jAdJIr#=YoG(H9R+wMfNIKWx zrVT75sncHVZi&?MrZSc2KV$D1gdA*Y@YahJ=bcU61&voVKJit1B2sXs-TtAG*RW}J zJZRQI32#G__l2sb1DOoV>XX)QaIMfuYt7pnvnx{YM4I=fj;pR}5l$?zTtu+|avzSb5kz zH#ICNVzE-Y&V|BWx~8QPvQPq3ONpb;Ol^<98uja;OOeU|?G}%!Wt|F3|7}(9M->Q9 zp|U(7Y3(5z2Uc334iEF-O_X)af>zu-$AXRunL1o&y%vIsyOsPZJ&NJql;;52iXb=8 zpo}O58wlM-1-s?vYbvge(YPus!lu^_3^Gt{&;DIt&Vv8jVX*E~i^`X9UuM9u-ENyI zG#QKVw6!c(p4L!z?Z&YV*RCf_oQb5V%FD^ox1WOrETnV(ddSQi)7da=`o(5*`PnqN zO6-ppsUrrKc^9j*)h8|@aM}$(Wy08^bKn$GJBb8WEU5!&t?V2g;GY=aOg&<2a`LOI z3-aMld?l3sqU#K=scVC3>am*nWeJv9$e97ZadM-JGWdk>+WT(!bT;wTv%dJW^^G1GqxpTwq z=1EgrIUssxPij=oaMDMe;xni9q$|LUC*_ekx75GO8Z2$sPn(_%UyL}dyo*tBKBY?) z_wYUUY16ly>umoh@PyA?JZ-uUd|c+V^8Z5W*{h%9D|-U;+Hz&X16#6Fc}=P%Bko44v=>S*;DH*7l2|G^-0-IT*i=;AAerE2+J}=u;}G&l zK`N?xJ9-`|SJF|~w3KYAWY!-U{{WRGq5gY`7~sEvWLTILmD*>%1?2H>Av8`mV3toI zu{JEiMsrb+QEb{99Nq^*y7tYp#j(xDyj|0*Drcq0&ue-oOM2rI>NM7Ez^5W;bRA!r;gGs*1MZX3Fxjp z+L>1_WcdLKWAXm`Jz^TNZo43G@!73>{vNy=E5N`FGi7FJSN}Ig;CyR0cOR7z>o+_X zLa6F5*+DP&Fkf8IE&UWyJ!ZzB%jJyR)ohl&!?V2obubX54ftTk%xiBE5|A=ulLq6mt+3-46R|iS4t(D*x_V^LZ@_)rPRdX< zVI(=%|8pGtKn}#5?N;KTTWfc`#LqqT0D1WA`v@B_f10}u9)2hIX=roTbH{53x!tK36z$39jq+1xhfF$ z#K;E))ef=;uDQ8R-aYC9f5!2#ATWz#ugjij)y@=TV0M4ri&-}8uinALD|x5m>P82O z?t)Dnx%rKq5(#EKCQ;koiXT%7!BnOpfRDZLlr_EfwI}zGeR>urXW93bgvJt%MjnxB zlJN&M@*_6L&W85TxyUP0;5|Y##lIlR?iv-HtJB+?r!hvTxDkIz>4Q`sy82E#3rG)u_a7tn%TPk0DW>bsDLl}vYs&ktgRl$^+255o^>u5IvlW(`(FA-@Qj3bc)urOLBxih&!@gMvx*Hok~OPVbV2ua zl-z*f$er|*F40UCtzcCvI6`E1^yVht5TV(>Xwp{NsRn}U9@pb@YWjmLUa+Mtk_PLI z^-R@?kD13yu6SbtXkVxpzc>_A6kJtLJKTnp_WKC-<5^%29cvUlYfBs8XVh!$#HQiE zx~pi4`z-~>Kn1pN?X6CN0@#D#&6$D`rvbF}o^ta3e5MK&gX>Y0KeC%u$)6r zxXqeM=ydB5w|v7IjFhw$lhExQTk~;O<455e;Nf9T@i?K>^Vfcq!fGxoy3x=>{*;ba zJ8&#%9DZS7*iK7%rX_Uv`m^=Dhs}+xKQ7USRy+8|*BXNlDg(ozD<$2H3b9JsQ*Ha3 z{_6dQ4`RU={EMzZh^5hD{H1d2-D}ou4mx=6437l^bFTb*F<$}G$#Pby+e-Jx1OIUF zxI)1T%h-EBKzlHm#HN3A#Udi05u3uzUAkeqs5Ts=Z7B0{YN7DigNYFe14GX-yO(~n zMSe3Oy^h;D^VQ`8T#bWNO{<`;$k>G0cav159F+lvJ#m5bH=9KO>~$dZyaMv&wXq_? z?mG50>RY!^i4sz3YO!52l*VtDr7*TAGPEXFboVh3b)Li&yIuL= z*iiJ}(5iBeM$g^`WU*zc%)mHmJf*^t{zWE~C!|ww%)l(lptVHf)j4$#CBj+=8M7;Z1&zqwF8YHoLamb8=5h z@m7uem3G;G>zi&FF)FEYr)ow531`=)_B*57+!=8i-rQjAwW~2YL#rY{f2p=>B1J|B z<7;I;bV*r`LBo%>-&{wF3soSf3at#Sb^ZMImBQmxKZmUmf$hm8mByRBL2|hZww_W| zfgj#MU&<3$z` za`LaGoTH-h{F;@6DtLfXQXl5!FfJgLWmcB@;z_!WjYXSVWZN>>@6fpmp4K{(xBjm{ zKGywCBbUR3Kuu&v9kB%PAm9yKq8P2sMBBpi+{+I5C^V`kx-QMDWug|dS{i4zO$xDJ{NP)a znA{{7`{k;Mio;VHcY7)S%!BF)``*XB58*ThK?g^3d^$7|W4y;xH|?W|OESZvo#Kq? z&wk19ziGxOxZXpG-&U_YMkr1fhQsy%4u9GWp%+><&5eK2b@+_M5l&0>W2*Q*x2kOh zq$Iz0URl1;4>*aX_0e$5!uBprfKmm{iH8_yd*BzEoiCy|Bah+dQIOk^zFvjoj*5<) zwAkRb>bEk-z@3W)?4s_7b;=b)SF_FU3<(sw1cwg|G<|RV4OD+age(EPWrw-h9#hy*fj2jvNP)2-nr|BMH~{ubzDXjlo=VC zZ>Gv}MHXBeEkNBucZTYnuX3`*tvbK?DZ~*`Q+kQ5(A&0R)fB!`L%<9j8YuozBFcYn z>E|Oss%Oa7^ z-?`1zuTOdH8koB%oEpO?S4bD>mvoluHdoprWhKs@(g`RVeXm0*?3eJ>2CyKSe+jcX z^UHHrlk-5^-^waKB9kmj9k~5I!}uT+LKwv}Jo_yD!Po1)!wtEW_^rIO$05%ZToa&Q zm%6NUBq?n3eh3K+WI*v>P+gXVl#YP_xo>7e0Y!#j#{6fPb%|oYls~W%PUy7K()4%2 z4}N6D_aP#-zSS1WOGm2C;nlu%1h68T54vCrqDvwG$pb6`WBPwchOv1A7Itn-+6uDU z_2fimPvqA#|C+6bkI~lh=kKju*ZOsMLy~W?_|}1;e%m-g5x1WoLJmg~bJA%56#8Y| z6V^VH0BpZ%26v)#=2_P;*b)NC&B;pjE@okvk)WeCCdJYuz74adrJ}kosGJPDo7h4* zY`(*Jb`iO$0wM{}!AHQF-?- z>za)JBICM%0QD~`DkR19^xPH0ZV&7-`wRG(LCq^4QM|U5T0E^Fb_%V}SxxB}s{V1| zU8?@VOjq^Q_D?h_eKVi9Ryq^&QSv_OX6+RVt&tDR3PN-RLCrA$$~5BnR;nRO#le5d zmLGvapYrpa{`0?=j1l|M%A#-H^dXFy#j1w;!iqRw6wKDaNB78MGzK5R!qbJTCk9_K zFItZP2V5?$xEj{1mi})RcybHcqIE$g1t599%s2Vg4`t;`$5w3oZC#R66lbDX5jNGl`zD675}0N(*HUV`N$`iJ@p*{Sr)nwLEd zZD39>xB}x(54glQDkfD?{(@0dL~!6;5bTKHJwT0)9Z8A!m+y zqnTM)0w!#}yO4biRTdkOE_{xD=u)>qcGt>_qN~srQ>;aM(A2Qz*7f`Ht>p2fi|@n! zImEspKKbpj_Z+95v-9Eb)ZJZDjb7V=S^|KE{UlMJvS_0qi(2)`kifXxwtS1naZy4% zGfCs%hQDj~S@M!ExZ35&%)Q0saW7-y3bHw}5Z|v!nybSMo8Xy}AXSY|#+2v;7I%Je z0{E1;pW8DLbpTHpmVw8;P+-@Cr3-k+@%~3G;)x5YMlJu|T(<7s2ABZT?rsFIDwYT> zNCbiB+=B>19fH(pUz|bwz=ngloswfxKS4Cl`n8rW4l`gHXQ74(BvytM+AtgZfo$#g z`-r=$V|>Y3cUOMaFq7L58GI#KX^%gtD~F^P-A|PM^7=_E0I3uhOm{#^4PP0%mUZdv zeYx!Y;46(puD(@~<4pW@5xa0CsD+7Y1>-^Y`RUyq5BVm@76r(0BWc} z8#ba@j6>ZGt@a7@Gd7o(g*S~aw4NJyjpdgH4ASte%>111#ZS0P%O3cis^7aNJ-zqb zWW3*fOIw-Nm(xEz@rAHPH+M)kD~TnhT`v#r!>P$Z+#G&#&&qve?A_n;X^`c0#FW-7%%}IDs21otu3#=D*<- zXZU@9)A^j{sI@rhz)#F<(!TQ{J^Ei`ES6JpmRjg=z)=-xVW@?-Yv`^b9YZ*LxOQP2 z@XH<(Kd+y}NW$N0K*`_3dwirr{fA+MEAD`$Mcpja4{ib+r8g$2_W7F)R@`nem+)&F zO@pA8e_G(FpKNirok?^Q?vmUj2Iu%r30Ic;N{PWJ& oaL92HfHi>P47&5biVhuf;#oGsZMmaAoIFikS?6illb7%R3m{g~fdBvi literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/on-premises-app-registration-azure-portal-6-240px.png b/docs/azure/sdk/media/on-premises-app-registration-azure-portal-6-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..bb100685f279e6f652d87bc22bf60343f2f14d60 GIT binary patch literal 4629 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/on-premises-app-registration-azure-portal-6.png b/docs/azure/sdk/media/on-premises-app-registration-azure-portal-6.png new file mode 100644 index 0000000000000000000000000000000000000000..7eacf77551d3bba1ade9ee78576e2f8f86e63337 GIT binary patch literal 8981 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 literal 0 HcmV?d00001 From 93106a6afc06c3a6690205fd23663a5fa7b5af68 Mon Sep 17 00:00:00 2001 From: GitHubPang <61439577+GitHubPang@users.noreply.github.com> Date: Fri, 6 May 2022 11:32:40 +0800 Subject: [PATCH 127/429] Fix typo (#29305) --- docs/core/diagnostics/eventsource-instrumentation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/eventsource-instrumentation.md b/docs/core/diagnostics/eventsource-instrumentation.md index 72ea3e9f5e02e..04eb229637774 100644 --- a/docs/core/diagnostics/eventsource-instrumentation.md +++ b/docs/core/diagnostics/eventsource-instrumentation.md @@ -156,7 +156,7 @@ Events that are triggered more than 1,000/sec are good candidates for a unique k EventSource requires that all event parameters can be serialized so it only accepts a limited set of types. These are: -- Primitives: bool, byte, sybte, char, short, ushort, int, uint, long, ulong, float, double, IntPtr, and UIntPtr, Guid +- Primitives: bool, byte, sbyte, char, short, ushort, int, uint, long, ulong, float, double, IntPtr, and UIntPtr, Guid decimal, string, DateTime, DateTimeOffset, TimeSpan - Enums - Structures attributed with . Only From 216e4d5dcf263e4565f29d38d29f00378c5ad9b7 Mon Sep 17 00:00:00 2001 From: Levi Broderick Date: Fri, 6 May 2022 05:55:10 -0700 Subject: [PATCH 128/429] Correct incorrect info in regex Unicode docs (#29304) --- .../character-classes-in-regular-expressions.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/standard/base-types/character-classes-in-regular-expressions.md b/docs/standard/base-types/character-classes-in-regular-expressions.md index ad8a40d86fbc3..93c42306d23e0 100644 --- a/docs/standard/base-types/character-classes-in-regular-expressions.md +++ b/docs/standard/base-types/character-classes-in-regular-expressions.md @@ -396,7 +396,7 @@ where *firstCharacter* is the character that begins the range and *lastCharacter ## Supported Unicode general categories - Unicode defines the general categories listed in the following table. For more information, see the "UCD File Format" and "General Category Values" subtopics at the [Unicode Character Database](https://www.unicode.org/reports/tr44/). + Unicode defines the general categories listed in the following table. For more information, see the "UCD File Format" and "General Category Values" subtopics at the [Unicode Character Database](https://www.unicode.org/reports/tr44/), Sec. 5.7.1, Table 12. |Category|Description| |--------------|-----------------| @@ -409,7 +409,7 @@ where *firstCharacter* is the character that begins the range and *lastCharacter |`Mn`|Mark, Nonspacing| |`Mc`|Mark, Spacing Combining| |`Me`|Mark, Enclosing| -|`M`|All diacritic marks. This includes the `Mn`, `Mc`, and `Me` categories.| +|`M`|All combining marks. This includes the `Mn`, `Mc`, and `Me` categories.| |`Nd`|Number, Decimal Digit| |`Nl`|Number, Letter| |`No`|Number, Other| @@ -435,8 +435,8 @@ where *firstCharacter* is the character that begins the range and *lastCharacter |`Cf`|Other, Format| |`Cs`|Other, Surrogate| |`Co`|Other, Private Use| -|`Cn`|Other, Not Assigned (no characters have this property)| -|`C`|All control characters. This includes the `Cc`, `Cf`, `Cs`, `Co`, and `Cn` categories.| +|`Cn`|Other, Not Assigned or Noncharacter| +|`C`|All other characters. This includes the `Cc`, `Cf`, `Cs`, `Co`, and `Cn` categories.| You can determine the Unicode category of any particular character by passing that character to the method. The following example uses the method to determine the category of each element in an array that contains selected Latin characters. From 4d2f7bbcca4704ddab75d840656e6562a87bfadc Mon Sep 17 00:00:00 2001 From: Maoni Stephens Date: Fri, 6 May 2022 12:03:58 -0700 Subject: [PATCH 129/429] Update workstation-server-gc.md (#29307) there's some confusion with the term "processor" (which used to cause less confusion) so I changed it to "logical CPU". --- docs/standard/garbage-collection/workstation-server-gc.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/standard/garbage-collection/workstation-server-gc.md b/docs/standard/garbage-collection/workstation-server-gc.md index c1b48fb556675..4cda1217c82a3 100644 --- a/docs/standard/garbage-collection/workstation-server-gc.md +++ b/docs/standard/garbage-collection/workstation-server-gc.md @@ -34,7 +34,7 @@ The following are threading and performance considerations for workstation garba - The collection occurs on the user thread that triggered the garbage collection and remains at the same priority. Because user threads typically run at normal priority, the garbage collector (which runs on a normal priority thread) must compete with other threads for CPU time. (Threads that run native code are not suspended on either server or workstation garbage collection.) -- Workstation garbage collection is always used on a computer that has only one processor, regardless of the [configuration setting](../../core/runtime-config/garbage-collector.md#workstation-vs-server). +- Workstation garbage collection is always used on a computer that has only one logical CPU, regardless of the [configuration setting](../../core/runtime-config/garbage-collector.md#workstation-vs-server). ### Server GC @@ -42,13 +42,13 @@ The following are threading and performance considerations for server garbage co - The collection occurs on multiple dedicated threads that are running at `THREAD_PRIORITY_HIGHEST` priority level. -- A heap and a dedicated thread to perform garbage collection are provided for each CPU, and the heaps are collected at the same time. Each heap contains a small object heap and a large object heap, and all heaps can be accessed by user code. Objects on different heaps can refer to each other. +- A heap and a dedicated thread to perform garbage collection are provided for each logical CPU, and the heaps are collected at the same time. Each heap contains a small object heap and a large object heap, and all heaps can be accessed by user code. Objects on different heaps can refer to each other. - Because multiple garbage collection threads work together, server garbage collection is faster than workstation garbage collection on the same size heap. - Server garbage collection often has larger size segments. However, this is only a generalization: segment size is implementation-specific and is subject to change. Don't make assumptions about the size of segments allocated by the garbage collector when tuning your app. -- Server garbage collection can be resource-intensive. For example, imagine that there are 12 processes that use server GC running on a computer that has four processors. If all the processes happen to collect garbage at the same time, they would interfere with each other, as there would be 12 threads scheduled on the same processor. If the processes are active, it's not a good idea to have them all use server GC. +- Server garbage collection can be resource-intensive. For example, imagine that there are 12 processes that use server GC running on a computer that has four logical CPUs. If all the processes happen to collect garbage at the same time, they would interfere with each other, as there would be 12 threads scheduled on the same logical CPU. If the processes are active, it's not a good idea to have them all use server GC. If you're running hundreds of instances of an application, consider using workstation garbage collection with concurrent garbage collection disabled. This will result in less context switching, which can improve performance. From 70a94042b197bb2a929699313d1ae0f172cbed22 Mon Sep 17 00:00:00 2001 From: David Pine Date: Fri, 6 May 2022 15:09:11 -0500 Subject: [PATCH 130/429] fix-29251 (#29281) --- .../custom-provider/Providers/EntityConfigurationProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/extensions/snippets/configuration/custom-provider/Providers/EntityConfigurationProvider.cs b/docs/core/extensions/snippets/configuration/custom-provider/Providers/EntityConfigurationProvider.cs index e270089709872..2bd03dd780226 100644 --- a/docs/core/extensions/snippets/configuration/custom-provider/Providers/EntityConfigurationProvider.cs +++ b/docs/core/extensions/snippets/configuration/custom-provider/Providers/EntityConfigurationProvider.cs @@ -17,7 +17,7 @@ public override void Load() dbContext.Database.EnsureCreated(); Data = dbContext.Settings.Any() - ? dbContext.Settings.ToDictionary(c => c.Id, c => c.Value) + ? dbContext.Settings.ToDictionary(c => c.Id, c => c.Value, StringComparer.OrdinalIgnoreCase) : CreateAndSaveDefaultValues(dbContext); } From cd1c0135b553d646faac394c419ac96763f69655 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Fri, 6 May 2022 13:09:31 -0700 Subject: [PATCH 131/429] Update package index with latest published versions (#29318) --- docs/azure/includes/dotnet-all.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 168d6d5752f9d..3e06d675605d3 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -169,7 +169,7 @@ | Microsoft.Azure.ServiceBus.EventProcessorHost | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.ServiceBus.EventProcessorHost/5.0.1) | | | | Microsoft.Azure.SignalR.Emulator | NuGet [1.0.0-preview1-10809](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Emulator/1.0.0-preview1-10809) | | | | Microsoft.Azure.WebJobs.Extensions.ApplicationInsights | NuGet [1.0.0-preview4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ApplicationInsights/1.0.0-preview4) | | | -| Microsoft.Azure.WebJobs.Extensions.Sql | NuGet [0.1.304-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Sql/0.1.304-preview) | | | +| Microsoft.Azure.WebJobs.Extensions.Sql | NuGet [0.1.311-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Sql/0.1.311-preview) | | | | Microsoft.Azure.WebJobs.Extensions.Timers.Storage | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Timers.Storage/1.0.0-beta.1) | | | | Microsoft.Azure.WebPubSub.AspNetCore | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Microsoft.Azure.WebPubSub.AspNetCore/1.0.0-beta.3) | | | | Microsoft.Azure.WebPubSub.Common | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebPubSub.Common/1.1.0) | | | From 2658affcd9221633eeb44651c8e9f1f2015e9c4a Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Fri, 6 May 2022 13:10:09 -0700 Subject: [PATCH 132/429] acrolinx (#29316) --- ...uthentication-local-development-dev-accounts.md | 4 ++-- ...tication-local-development-service-principal.md | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/azure/sdk/authentication-local-development-dev-accounts.md b/docs/azure/sdk/authentication-local-development-dev-accounts.md index a0862e9675248..5008d456d3c20 100644 --- a/docs/azure/sdk/authentication-local-development-dev-accounts.md +++ b/docs/azure/sdk/authentication-local-development-dev-accounts.md @@ -118,9 +118,9 @@ Next you need to sign in to Azure using one of several .NET tooling options. The ### [Visual Studio](#tab/sign-in-visual-studio) -On the top menu of Visual Studio, navigate to **Tools -> Options...** to open the options dialog. In the search bar in the upper left, type *Azure* to filter the options. Under the **Azure Service Authentication**, choose **Account Selection**. +On the top menu of Visual Studio, navigate to **Tools** > **Options** to open the options dialog. In the search bar in the upper left, type *Azure* to filter the options. Under the **Azure Service Authentication**, choose **Account Selection**. -Select the drop down menu under **Choose an account:** and choose to add a Microsoft Account. A window will open prompting you to pick an account. Enter the credentials for your desired Azure account, and then select the confirmation. +Select the drop-down menu under **Choose an account** and choose to add a Microsoft Account. A window will open prompting you to pick an account. Enter the credentials for your desired Azure account, and then select the confirmation. :::image type="content" source="./media/visual-studio-sign-in.png" alt-text="A screenshot showing how to sign in to Azure using Visual Studio."::: diff --git a/docs/azure/sdk/authentication-local-development-service-principal.md b/docs/azure/sdk/authentication-local-development-service-principal.md index 28a5f48e2ef04..22afd3f50a4fc 100644 --- a/docs/azure/sdk/authentication-local-development-service-principal.md +++ b/docs/azure/sdk/authentication-local-development-service-principal.md @@ -10,7 +10,7 @@ ms.custom: devx-track-dotnet When creating cloud applications, developers need to debug and test applications on their local workstation. When an application is run on a developer's workstation during local development, it still must authenticate to any Azure services used by the app. This article covers how to set up dedicated application service principal objects to be used during local development. -:::image type="content" source="media/local-dev-service-principal-overview.png" alt-text="A diagram showing how a NET app during local development will use the developers credentials to connect to Azure by obtaining those credentials locally installed development tools."::: +:::image type="content" source="media/local-dev-service-principal-overview.png" alt-text="A diagram showing how a .NET app during local development will use the developer's credentials to connect to Azure by obtaining those credentials locally installed development tools."::: Dedicated application service principals for local development allow you to follow the principle of least privilege during app development. Since permissions are scoped to exactly what is needed for the app during development, app code is prevented from accidentally accessing an Azure resource intended for use by a different app. This also prevents bugs from occurring when the app is moved to production because the app was overprivileged in the dev environment. @@ -34,7 +34,7 @@ Sign in to the [Azure portal](https://portal.azure.com/) and follow these steps. | [!INCLUDE [Create app registration step 1](<./includes/local-dev-app-registration-azure-portal-1.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-1-240px.png" alt-text="A screenshot showing how to use the top search bar in the Azure portal to find and navigate to the App registrations page." lightbox="./media/local-dev-app-registration-azure-portal-1.png"::: | | [!INCLUDE [Create app registration step 2](<./includes/local-dev-app-registration-azure-portal-2.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-2-240px.png" alt-text="A screenshot showing the location of the New registration button in the App registrations page." lightbox="./media/local-dev-app-registration-azure-portal-2.png"::: | | [!INCLUDE [Create app registration step 3](<./includes/local-dev-app-registration-azure-portal-3.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-3-240px.png" alt-text="A screenshot showing how to fill out the Register an application page by giving the app a name and specifying supported account types as accounts in this organizational directory only." lightbox="./media/local-dev-app-registration-azure-portal-3.png"::: | -| [!INCLUDE [Create app registration step 4](<./includes/local-dev-app-registration-azure-portal-4.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-4-240px.png" alt-text="A screenshot of the App registration page after the app registration has been completed. This screenshot shows the location of the application ID and tenant ID which will be needed in a future step. It also shows the location of the link to use to add an application secret for the app." lightbox="./media/local-dev-app-registration-azure-portal-4.png"::: | +| [!INCLUDE [Create app registration step 4](<./includes/local-dev-app-registration-azure-portal-4.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-4-240px.png" alt-text="A screenshot of the App registration page after the app registration has been completed. This screenshot shows the location of the application ID and tenant ID, which will be needed in a future step. It also shows the location of the link to use to add an application secret for the app." lightbox="./media/local-dev-app-registration-azure-portal-4.png"::: | | [!INCLUDE [Create app registration step 5](<./includes/local-dev-app-registration-azure-portal-5.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-5-240px.png" alt-text="A screenshot showing the location of the link to use to create a new client secret on the certificates and secrets page." lightbox="./media/local-dev-app-registration-azure-portal-5.png"::: | | [!INCLUDE [Create app registration step 6](<./includes/local-dev-app-registration-azure-portal-6.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-6-240px.png" alt-text="A screenshot showing the page where a new client secret is added for the application service principal create by the app registration process." lightbox="./media/local-dev-app-registration-azure-portal-6.png"::: | | [!INCLUDE [Create app registration step 7](<./includes/local-dev-app-registration-azure-portal-7.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-7-240px.png" alt-text="A screenshot showing the page with the generated client secret." lightbox="./media/local-dev-app-registration-azure-portal-7.png"::: | @@ -92,7 +92,7 @@ az ad group create \ --description \ ``` -To add members to the group, you'll need the object ID of the application service principal which is different that the application id. Use the [az ad sp list](/cli/azure/ad/sp#az-ad-sp-list) to list the available service principals. The `--filter` parameter command accepts OData style filters and can be used to filter the list as shown. The `--query` parameter limits to columns to only those of interest. +To add members to the group, you'll need the object ID of the application service principal, which is different that the application ID. Use the [az ad sp list](/cli/azure/ad/sp#az-ad-sp-list) to list the available service principals. The `--filter` parameter command accepts OData style filters and can be used to filter the list as shown. The `--query` parameter limits to columns to only those of interest. ```azurecli az ad sp list \ @@ -161,7 +161,7 @@ For information on assigning permissions at the resource or subscription level u The `DefaultAzureCredential` object will look for the service principal information in a set of environment variables at runtime. There are multiple ways to configure environment variables when working with .NET depending on your tooling and environment. -Regardless of which approach you choose, you will need to configure the following environment variables when working with a service principal. +Regardless of which approach you choose, you'll need to configure the following environment variables when working with a service principal. - `AZURE_CLIENT_ID` → The app ID value. - `AZURE_TENANT_ID` → The tenant ID value. @@ -169,7 +169,7 @@ Regardless of which approach you choose, you will need to configure the followin ### [Visual Studio](#tab/visual-studio) -When working locally with Visual Studio, environment variables can be set in the `launchsettings.json` file in the `Properties` folder of your project. When the app starts up, these values will be pulled in automatically. Keep in mind these configurations do not travel with your application when it gets deployed, so you will still need to setup environment variables on your target hosting environment. +When working locally with Visual Studio, environment variables can be set in the `launchsettings.json` file in the `Properties` folder of your project. When the app starts up, these values will be pulled in automatically. Keep in mind these configurations do not travel with your application when it gets deployed, so you'll still need to set up environment variables on your target hosting environment. ```json "profiles": { @@ -200,7 +200,7 @@ When working locally with Visual Studio, environment variables can be set in the ### [VS Code](#tab/vs-code) -When working locally with Visual Studio Code, environment variables can be set in the `launch.json` file of your project. When the app starts up, these values will be pulled in automatically. Keep in mind these configurations do not travel with your application when it gets deployed, so you will still need to setup environment variables on your target hosting environment. +When working locally with Visual Studio Code, environment variables can be set in the `launch.json` file of your project. When the app starts up, these values will be pulled in automatically. Keep in mind these configurations do not travel with your application when it gets deployed, so you'll still need to set up environment variables on your target hosting environment. ```json "configurations": [ @@ -216,7 +216,7 @@ When working locally with Visual Studio Code, environment variables can be set i ### [Windows](#tab/windows) -You can set environment variables for Windows from the command line. However, when using this approach the values are accessible to all applications running on that operating system and may cause conflicts if you are not careful. Environment variables can be set at the user or system level. +You can set environment variables for Windows from the command line. However, when using this approach the values are accessible to all applications running on that operating system and may cause conflicts if you aren't careful. Environment variables can be set at the user or system level. ```bash # Set user environment variables From d3f3e4157bfb0c038ed143cb4259851244520faf Mon Sep 17 00:00:00 2001 From: Tom Dykstra Date: Fri, 6 May 2022 13:10:29 -0700 Subject: [PATCH 133/429] remove step that's no longer needed (#29313) --- docs/core/tools/local-tools-how-to-use.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/core/tools/local-tools-how-to-use.md b/docs/core/tools/local-tools-how-to-use.md index 1fe9be7c08c74..7e1729deed1ba 100644 --- a/docs/core/tools/local-tools-how-to-use.md +++ b/docs/core/tools/local-tools-how-to-use.md @@ -2,7 +2,7 @@ title: "Tutorial: Install and use .NET local tools" description: Learn how to install and use a .NET tool as a local tool. ms.topic: tutorial -ms.date: 12/11/2020 +ms.date: 05/06/2022 --- # Tutorial: Install and use a .NET local tool using the .NET CLI @@ -123,8 +123,6 @@ You typically install a local tool in the root directory of the repository. Afte } ``` -1. Replace `` with the name you used to create the project. - 1. Save your changes. Making this change is the same as getting the latest version from the repository after someone else installed the package `dotnetsay` for the project directory. From ff669642b574d97aa12899c958fff70d2e6d677f Mon Sep 17 00:00:00 2001 From: Tom Dykstra Date: Fri, 6 May 2022 13:10:44 -0700 Subject: [PATCH 134/429] Update VS version (#29312) --- docs/core/tutorials/with-visual-studio.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/tutorials/with-visual-studio.md b/docs/core/tutorials/with-visual-studio.md index 6a142cde67cb8..a4be7f3920797 100644 --- a/docs/core/tutorials/with-visual-studio.md +++ b/docs/core/tutorials/with-visual-studio.md @@ -17,7 +17,7 @@ This tutorial shows how to create and run a .NET console application in Visual S ## Prerequisites -- [Visual Studio 2022 version 17.0.0 Preview](https://visualstudio.microsoft.com/downloads/?utm_medium=microsoft&utm_source=docs.microsoft.com&utm_campaign=inline+link&utm_content=download+vs2022) with the **.NET desktop development** workload installed. The .NET 6 SDK is automatically installed when you select this workload. +- [Visual Studio 2022 version 17.1 or later](https://visualstudio.microsoft.com/downloads/?utm_medium=microsoft&utm_source=docs.microsoft.com&utm_campaign=inline+link&utm_content=download+vs2022) with the **.NET desktop development** workload installed. The .NET 6 SDK is automatically installed when you select this workload. For more information, see [Install the .NET SDK with Visual Studio](../install/windows.md#install-with-visual-studio). From 51b36fde67d1e4a41f4ca09467c15e9d13dcee9f Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 9 May 2022 06:43:39 -0700 Subject: [PATCH 135/429] Update package index with latest published versions (#29319) --- docs/azure/includes/dotnet-all.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 3e06d675605d3..2358087b1dab1 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -238,7 +238,7 @@ | Core | NuGet [1.24.0](https://www.nuget.org/packages/Azure.Core/1.24.0) | [docs](/dotnet/api/overview/azure/Core-readme) | GitHub [1.24.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core_1.24.0/sdk/core/Azure.Core/) | | Core - AMQP | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Core.Amqp/1.2.0) | [docs](/dotnet/api/overview/azure/Core.Amqp-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core.Amqp_1.2.0/sdk/core/Azure.Core.Amqp/) | | Cosmos DB | NuGet [4.0.0-preview3](https://www.nuget.org/packages/Azure.Cosmos/4.0.0-preview3) | [docs](/dotnet/api/azure.cosmos) | GitHub [4.0.0-preview3](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/releases/4.0.0-preview3) | -| Cosmos DB | NuGet [3.26.2](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.26.2) | [docs](/dotnet/api/overview/azure/cosmosdb) | GitHub [3.26.2](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) | +| Cosmos DB | NuGet [3.27.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.27.0) | [docs](/dotnet/api/overview/azure/cosmosdb) | GitHub [3.27.0](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) | | Cosmos DB - BulkExecutor | NuGet [2.5.1-preview](https://www.nuget.org/packages/Microsoft.Azure.CosmosDB.BulkExecutor/2.5.1-preview) | | GitHub [2.5.1-preview](https://github.com/Azure/azure-cosmosdb-bulkexecutor-dotnet-getting-started) | | Cosmos DB - Direct | NuGet [3.28.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Direct/3.28.0) | | GitHub [3.28.0](https://github.com/Azure/azure-cosmos-dotnet-v3) | | Cosmos DB - Encryption | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Encryption/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/releases/encryption/1.0.0-preview4/Microsoft.Azure.Cosmos.Encryption) | From 0d9d7424fc0b7c375d2165624bff87e6d4fe8671 Mon Sep 17 00:00:00 2001 From: Joost Boomkamp <3604126+increddibelly@users.noreply.github.com> Date: Mon, 9 May 2022 16:11:04 +0200 Subject: [PATCH 136/429] Update cs0433.md (#29329) removed some text that was too specific, so the description becomes useful to more users. --- docs/csharp/language-reference/compiler-messages/cs0433.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/compiler-messages/cs0433.md b/docs/csharp/language-reference/compiler-messages/cs0433.md index fb982161ce159..9db9cf1f1f1a0 100644 --- a/docs/csharp/language-reference/compiler-messages/cs0433.md +++ b/docs/csharp/language-reference/compiler-messages/cs0433.md @@ -16,7 +16,7 @@ The type TypeName1 exists in both TypeName2 and TypeName3 To resolve this error, use the alias feature of the ([**References**](../compiler-options/inputs.md#references)) compiler option or do not reference one of your assemblies. -This error can also occur in ASP.NET Web Forms if: +This error can also occur if: * The `@ Page` directive has a `CodeFile` attribute when it should be a `CodeBehind` attribute. * Code is placed in an *App_Code* folder that shouldn't reside there. From 9579b664e693920791e3a2f7b4bee44b1a0fa177 Mon Sep 17 00:00:00 2001 From: Joost Boomkamp <3604126+increddibelly@users.noreply.github.com> Date: Mon, 9 May 2022 16:13:45 +0200 Subject: [PATCH 137/429] Update cs0433.md (#29328) the removed line duplicates the line directly above it. perhaps line 19 is too specific and should be changed to: "This error can also occur if:" --- docs/csharp/language-reference/compiler-messages/cs0433.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/csharp/language-reference/compiler-messages/cs0433.md b/docs/csharp/language-reference/compiler-messages/cs0433.md index 9db9cf1f1f1a0..709380b9af52e 100644 --- a/docs/csharp/language-reference/compiler-messages/cs0433.md +++ b/docs/csharp/language-reference/compiler-messages/cs0433.md @@ -20,8 +20,6 @@ This error can also occur if: * The `@ Page` directive has a `CodeFile` attribute when it should be a `CodeBehind` attribute. * Code is placed in an *App_Code* folder that shouldn't reside there. - - This error can also occur if code is in an APP_CODE folder that should not be in an APP_CODE folder. ## Examples From aa51329405b5d8ccc75e64287af74b0229d35fc2 Mon Sep 17 00:00:00 2001 From: David Pine Date: Mon, 9 May 2022 10:52:59 -0500 Subject: [PATCH 138/429] Fix 28117 (#29315) * Clean up and formatting * More updates and clean up --- ...xception-handling-task-parallel-library.md | 8 +- .../tpl_exceptions/cs/CustomException.cs | 6 + .../tpl_exceptions/cs/Program.cs | 23 ++ .../tpl_exceptions/cs/detached1.cs | 54 +++-- .../tpl_exceptions/cs/detached21.cs | 54 +++-- .../tpl_exceptions/cs/exceptionprop1.cs | 39 ++-- .../tpl_exceptions/cs/exceptionprop21.cs | 41 ++-- .../tpl_exceptions/cs/exceptions.cs | 199 ++++++++---------- .../tpl_exceptions/cs/flatten1.cs | 68 +++--- .../tpl_exceptions/cs/flatten2.cs | 68 +++--- .../tpl_exceptions/cs/handlemethod1.cs | 48 ++--- .../tpl_exceptions/cs/handlemethod2.cs | 48 ++--- .../tpl_exceptions/cs/handlemethod21.cs | 48 ++--- .../cs/handling-tpl-exceptions.csproj | 10 + .../tpl_exceptions/cs/handling1.cs | 56 +++-- .../tpl_exceptions/cs/handling2.cs | 49 +++-- .../tpl_exceptions/cs/handling21.cs | 56 +++-- .../tpl_exceptions/cs/handling22.cs | 49 ++--- .../tpl_exceptions/cs/taskexceptions.cs | 90 ++++---- .../tpl_exceptions/cs/taskexceptions2.cs | 80 ++++--- 20 files changed, 560 insertions(+), 534 deletions(-) create mode 100644 samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/CustomException.cs create mode 100644 samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/Program.cs create mode 100644 samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling-tpl-exceptions.csproj diff --git a/docs/standard/parallel-programming/exception-handling-task-parallel-library.md b/docs/standard/parallel-programming/exception-handling-task-parallel-library.md index ba1d7bbd3f190..0c48439553e72 100644 --- a/docs/standard/parallel-programming/exception-handling-task-parallel-library.md +++ b/docs/standard/parallel-programming/exception-handling-task-parallel-library.md @@ -1,7 +1,7 @@ --- title: "Exception handling (Task Parallel Library)" description: Explore exception handling using the Task Parallel Library (TPL) in .NET. See nested aggregate exceptions, inner exceptions, unobserved task exceptions, & more. -ms.date: 04/20/2020 +ms.date: 05/06/2022 dev_langs: - "csharp" - "vb" @@ -92,6 +92,12 @@ In a meaningful application, the continuation delegate could log detailed inform Use a [`try-catch`](../../csharp/language-reference/keywords/try-catch.md) statement to handle and observe thrown exceptions. Alternatively, observe the exception by accessing the property. +> [!IMPORTANT] +> The cannot be explicitly caught when using the following expressions: +> +> - `await task` +> - `task.GetAwaiter().GetResult()` + ## UnobservedTaskException event In some scenarios, such as when hosting untrusted plug-ins, benign exceptions might be common, and it might be too difficult to manually observe them all. In these cases, you can handle the event. The instance that is passed to your handler can be used to prevent the unobserved exception from being propagated back to the joining thread. diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/CustomException.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/CustomException.cs new file mode 100644 index 0000000000000..edb200f4a5860 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/CustomException.cs @@ -0,0 +1,6 @@ +public class CustomException : Exception +{ + public CustomException(string message) : base(message) + { + } +} diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/Program.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/Program.cs new file mode 100644 index 0000000000000..a621b1dd3e666 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/Program.cs @@ -0,0 +1,23 @@ +public static partial class Program +{ + public static void Main() + { + //Detached(); + //DetachedTwo(); + //ExceptionPropagation(); + //ExceptionPropagationTwo(); + //ThrowDemo(); + //ExceptionTwo(); + //Flatten(); + //FlattenTwo(); + //HandleMethod(); + //HandleMethodTwo(); + //HandleMethodThree(); + //Handle(); + //HandleTwo(); + //HandleThree(); + //HandleFour(); + //TaskException(); + //TaskExceptionTwo(); + } +} diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/detached1.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/detached1.cs index 8ba0e66e974b6..2d5c496c9f484 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/detached1.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/detached1.cs @@ -1,38 +1,34 @@ // -using System; -using System.Threading.Tasks; -public class Example +public static partial class Program { - public static void Main() - { - var task1 = Task.Run(() => { - var nested1 = Task.Run(() => { - throw new CustomException("Detached child task faulted."); - }); + public static void Detached() + { + var task = Task.Run(() => + { + var nestedTask = Task.Run( + () => throw new CustomException("Detached child task faulted.")); - // Here the exception will be escalated back to the calling thread. - // We could use try/catch here to prevent that. - nested1.Wait(); - }); + // Here the exception will be escalated back to the calling thread. + // We could use try/catch here to prevent that. + nestedTask.Wait(); + }); - try { - task1.Wait(); - } - catch (AggregateException ae) { - foreach (var e in ae.Flatten().InnerExceptions) { - if (e is CustomException) { - Console.WriteLine(e.Message); + try + { + task.Wait(); + } + catch (AggregateException ae) + { + foreach (var e in ae.Flatten().InnerExceptions) + { + if (e is CustomException) + { + Console.WriteLine(e.Message); + } } - } - } - } -} - -public class CustomException : Exception -{ - public CustomException(String message) : base(message) - {} + } + } } // The example displays the following output: // Detached child task faulted. diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/detached21.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/detached21.cs index 9faab130dbba1..78b5b7ecf5dea 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/detached21.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/detached21.cs @@ -1,38 +1,34 @@ // -using System; -using System.Threading.Tasks; -public class Example +public static partial class Program { - public static void Main() - { - var task1 = Task.Run(() => { - var nested1 = Task.Run(() => { - throw new CustomException("Detached child task faulted."); - }); + public static void DetachedTwo() + { + var task = Task.Run(() => + { + var nestedTask = Task.Run( + () => throw new CustomException("Detached child task faulted.")); - // Here the exception will be escalated back to the calling thread. - // We could use try/catch here to prevent that. - nested1.Wait(); - }); + // Here the exception will be escalated back to the calling thread. + // We could use try/catch here to prevent that. + nestedTask.Wait(); + }); - try { - task1.Wait(); - } - catch (AggregateException ae) { - foreach (var e in ae.Flatten().InnerExceptions) { - if (e is CustomException) { - Console.WriteLine(e.Message); + try + { + task.Wait(); + } + catch (AggregateException ae) + { + foreach (var e in ae.Flatten().InnerExceptions) + { + if (e is CustomException) + { + Console.WriteLine(e.Message); + } } - } - } - } -} - -public class CustomException : Exception -{ - public CustomException(String message) : base(message) - {} + } + } } // The example displays the following output: // Detached child task faulted. diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/exceptionprop1.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/exceptionprop1.cs index 70d57d90ef6c6..3060959a1acd5 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/exceptionprop1.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/exceptionprop1.cs @@ -1,27 +1,24 @@ -using System; +// -// -using System.Threading; -using System.Threading.Tasks; - -public class Example +public static partial class Program { - public static void Main() - { - var task1 = Task.Run(() => - { throw new CustomException("task1 faulted."); - }).ContinueWith( t => { Console.WriteLine("{0}: {1}", - t.Exception.InnerException.GetType().Name, - t.Exception.InnerException.Message); - }, TaskContinuationOptions.OnlyOnFaulted); - Thread.Sleep(500); - } -} + public static void ExceptionPropagation() + { + _ = Task.Run( + () => throw new CustomException("task1 faulted.")) + .ContinueWith(_ => + { + if (_.Exception?.InnerException is { } inner) + { + Console.WriteLine("{0}: {1}", + inner.GetType().Name, + inner.Message); + } + }, + TaskContinuationOptions.OnlyOnFaulted); -public class CustomException : Exception -{ - public CustomException(String message) : base(message) - {} + Thread.Sleep(500); + } } // The example displays output like the following: // CustomException: task1 faulted. diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/exceptionprop21.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/exceptionprop21.cs index 6b2dea22cccb4..7ffd25822793f 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/exceptionprop21.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/exceptionprop21.cs @@ -1,27 +1,24 @@ - -// -using System; -using System.Threading; -using System.Threading.Tasks; +// -public class Example +public static partial class Program { - public static void Main() - { - var task1 = Task.Run(() => - { throw new CustomException("task1 faulted."); - }).ContinueWith( t => { Console.WriteLine("{0}: {1}", - t.Exception.InnerException.GetType().Name, - t.Exception.InnerException.Message); - }, TaskContinuationOptions.OnlyOnFaulted); - Thread.Sleep(500); - } -} - -public class CustomException : Exception -{ - public CustomException(String message) : base(message) - {} + public static void ExceptionPropagationTwo() + { + _ = Task.Run( + () => throw new CustomException("task1 faulted.")) + .ContinueWith(_ => + { + if (_.Exception?.InnerException is { } inner) + { + Console.WriteLine("{0}: {1}", + inner.GetType().Name, + inner.Message); + } + }, + TaskContinuationOptions.OnlyOnFaulted); + + Thread.Sleep(500); + } } // The example displays output like the following: // CustomException: task1 faulted. diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/exceptions.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/exceptions.cs index 15be42f258483..3c1e13ffea912 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/exceptions.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/exceptions.cs @@ -1,137 +1,122 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Concurrent; +using System.Collections.Concurrent; -namespace TPL_Exceptions +public static partial class Program { - class ExceptionDemoCS + public static void ThrowDemo() { - class MyCustomException : Exception + var task = Task.Factory.StartNew( + () => throw new CustomException("I'm bad, but not too bad!")); + + try { - public MyCustomException(string s) : base(s) { } + task.Wait(); } - - static void ThrowDemo() + catch (AggregateException ae) { - var task1 = Task.Factory.StartNew(() => - { - throw new MyCustomException("I'm bad, but not too bad!"); - }); - - try + // Assume we know what's going on with this particular exception. + // Rethrow anything else. AggregateException.Handle provides + // another way to express this. See later example. + // + foreach (var ex in ae.InnerExceptions) { - task1.Wait(); - } - catch (AggregateException ae) - { - // Assume we know what's going on with this particular exception. - // Rethrow anything else. AggregateException.Handle provides - // another way to express this. See later example. - // - foreach (var e in ae.InnerExceptions) + if (ex is CustomException) { - if (e is MyCustomException) - { - Console.WriteLine(e.Message); - } - else - { - throw; - } + Console.WriteLine(ex.Message); + } + else + { + throw; } - // } + // } + } - static void CancelDemo() + static void CancelDemo() + { + bool someCondition = true; + // + var tokenSource = new CancellationTokenSource(); + var token = tokenSource.Token; + var task = Task.Factory.StartNew(() => { - bool someCondition = true; - // - var tokenSource = new CancellationTokenSource(); - var token = tokenSource.Token; - - var task1 = Task.Factory.StartNew(() => + CancellationToken ct = token; + while (someCondition) { - CancellationToken ct = token; - while (someCondition) - { - // Do some work... - Thread.SpinWait(50000); - ct.ThrowIfCancellationRequested(); - } - }, - token); + // Do some work... + Thread.SpinWait(50_000); + ct.ThrowIfCancellationRequested(); + } + }, + token); - // No waiting required. - tokenSource.Dispose(); - // - } + // No waiting required. + tokenSource.Dispose(); + // } +} - // - class ExceptionDemo2 +// +public static partial class Program +{ + public static void ExceptionTwo() { - static void Main(string[] args) - { - // Create some random data to process in parallel. - // There is a good probability this data will cause some exceptions to be thrown. - byte[] data = new byte[5000]; - Random r = new Random(); - r.NextBytes(data); + // Create some random data to process in parallel. + // There is a good probability this data will cause some exceptions to be thrown. + byte[] data = new byte[5_000]; + Random r = Random.Shared; + r.NextBytes(data); - try + try + { + ProcessDataInParallel(data); + } + catch (AggregateException ae) + { + var ignoredExceptions = new List(); + // This is where you can choose which exceptions to handle. + foreach (var ex in ae.Flatten().InnerExceptions) { - ProcessDataInParallel(data); + if (ex is ArgumentException) Console.WriteLine(ex.Message); + else ignoredExceptions.Add(ex); } - catch (AggregateException ae) + if (ignoredExceptions.Count > 0) { - var ignoredExceptions = new List(); - // This is where you can choose which exceptions to handle. - foreach (var ex in ae.Flatten().InnerExceptions) - { - if (ex is ArgumentException) - Console.WriteLine(ex.Message); - else - ignoredExceptions.Add(ex); - } - if (ignoredExceptions.Count > 0) throw new AggregateException(ignoredExceptions); + throw new AggregateException(ignoredExceptions); } - - Console.WriteLine("Press any key to exit."); - Console.ReadKey(); } - private static void ProcessDataInParallel(byte[] data) - { - // Use ConcurrentQueue to enable safe enqueueing from multiple threads. - var exceptions = new ConcurrentQueue(); + Console.WriteLine("Press any key to exit."); + Console.ReadKey(); + } - // Execute the complete loop and capture all exceptions. - Parallel.ForEach(data, d => + private static void ProcessDataInParallel(byte[] data) + { + // Use ConcurrentQueue to enable safe enqueueing from multiple threads. + var exceptions = new ConcurrentQueue(); + + // Execute the complete loop and capture all exceptions. + Parallel.ForEach(data, d => + { + try { - try - { - // Cause a few exceptions, but not too many. - if (d < 3) - throw new ArgumentException($"Value is {d}. Value must be greater than or equal to 3."); - else - Console.Write(d + " "); - } - // Store the exception and continue with the loop. - catch (Exception e) - { - exceptions.Enqueue(e); - } - }); - Console.WriteLine(); + // Cause a few exceptions, but not too many. + if (d < 3) throw new ArgumentException($"Value is {d}. Value must be greater than or equal to 3."); + else Console.Write(d + " "); + } + // Store the exception and continue with the loop. + catch (Exception e) + { + exceptions.Enqueue(e); + } + }); + Console.WriteLine(); - // Throw the exceptions here after the loop completes. - if (exceptions.Count > 0) throw new AggregateException(exceptions); + // Throw the exceptions here after the loop completes. + if (!exceptions.IsEmpty) + { + throw new AggregateException(exceptions); } } - // -} \ No newline at end of file +} +// diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/flatten1.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/flatten1.cs index 883eab7fce70d..1f30538d86cb4 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/flatten1.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/flatten1.cs @@ -1,43 +1,43 @@ // -using System; -using System.Threading.Tasks; -public class Example +public static partial class Program { - public static void Main() - { - var task1 = Task.Factory.StartNew(() => { - var child1 = Task.Factory.StartNew(() => { - var child2 = Task.Factory.StartNew(() => { - // This exception is nested inside three AggregateExceptions. - throw new CustomException("Attached child2 faulted."); - }, TaskCreationOptions.AttachedToParent); + public static void Flatten() + { + var task = Task.Factory.StartNew(() => + { + var child = Task.Factory.StartNew(() => + { + var grandChild = Task.Factory.StartNew(() => + { + // This exception is nested inside three AggregateExceptions. + throw new CustomException("Attached child2 faulted."); + }, TaskCreationOptions.AttachedToParent); - // This exception is nested inside two AggregateExceptions. - throw new CustomException("Attached child1 faulted."); - }, TaskCreationOptions.AttachedToParent); - }); + // This exception is nested inside two AggregateExceptions. + throw new CustomException("Attached child1 faulted."); + }, TaskCreationOptions.AttachedToParent); + }); - try { - task1.Wait(); - } - catch (AggregateException ae) { - foreach (var e in ae.Flatten().InnerExceptions) { - if (e is CustomException) { - Console.WriteLine(e.Message); + try + { + task.Wait(); + } + catch (AggregateException ae) + { + foreach (var ex in ae.Flatten().InnerExceptions) + { + if (ex is CustomException) + { + Console.WriteLine(ex.Message); + } + else + { + throw; + } } - else { - throw; - } - } - } - } -} - -public class CustomException : Exception -{ - public CustomException(String message) : base(message) - {} + } + } } // The example displays the following output: // Attached child1 faulted. diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/flatten2.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/flatten2.cs index 568d3225a6f6e..7d0101f1ad6d7 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/flatten2.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/flatten2.cs @@ -1,43 +1,43 @@ // -using System; -using System.Threading.Tasks; -public class Example +public static partial class Program { - public static void Main() - { - var task1 = Task.Factory.StartNew(() => { - var child1 = Task.Factory.StartNew(() => { - var child2 = Task.Factory.StartNew(() => { - // This exception is nested inside three AggregateExceptions. - throw new CustomException("Attached child2 faulted."); - }, TaskCreationOptions.AttachedToParent); + public static void FlattenTwo() + { + var task = Task.Factory.StartNew(() => + { + var child = Task.Factory.StartNew(() => + { + var grandChild = Task.Factory.StartNew(() => + { + // This exception is nested inside three AggregateExceptions. + throw new CustomException("Attached child2 faulted."); + }, TaskCreationOptions.AttachedToParent); - // This exception is nested inside two AggregateExceptions. - throw new CustomException("Attached child1 faulted."); - }, TaskCreationOptions.AttachedToParent); - }); + // This exception is nested inside two AggregateExceptions. + throw new CustomException("Attached child1 faulted."); + }, TaskCreationOptions.AttachedToParent); + }); - try { - task1.Wait(); - } - catch (AggregateException ae) { - foreach (var e in ae.Flatten().InnerExceptions) { - if (e is CustomException) { - Console.WriteLine(e.Message); + try + { + task.Wait(); + } + catch (AggregateException ae) + { + foreach (var ex in ae.Flatten().InnerExceptions) + { + if (ex is CustomException) + { + Console.WriteLine(ex.Message); + } + else + { + throw; + } } - else { - throw; - } - } - } - } -} - -public class CustomException : Exception -{ - public CustomException(String message) : base(message) - {} + } + } } // The example displays the following output: // Attached child1 faulted. diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handlemethod1.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handlemethod1.cs index 688a63071f37e..2d3896785dbed 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handlemethod1.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handlemethod1.cs @@ -1,32 +1,30 @@ // -using System; -using System.Threading.Tasks; -public class Example +public static partial class Program { - public static void Main() - { - var task1 = Task.Run( () => { throw new CustomException("This exception is expected!"); } ); + public static void HandleMethod() + { + var task = Task.Run( + () => throw new CustomException("This exception is expected!")); - try { - task1.Wait(); - } - catch (AggregateException ae) - { - // Call the Handle method to handle the custom exception, - // otherwise rethrow the exception. - ae.Handle(ex => { if (ex is CustomException) - Console.WriteLine(ex.Message); - return ex is CustomException; - }); - } - } -} - -public class CustomException : Exception -{ - public CustomException(String message) : base(message) - {} + try + { + task.Wait(); + } + catch (AggregateException ae) + { + // Call the Handle method to handle the custom exception, + // otherwise rethrow the exception. + ae.Handle(ex => + { + if (ex is CustomException) + { + Console.WriteLine(ex.Message); + } + return ex is CustomException; + }); + } + } } // The example displays the following output: // This exception is expected! diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handlemethod2.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handlemethod2.cs index 7bc69462487de..073ddd61cd164 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handlemethod2.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handlemethod2.cs @@ -1,32 +1,30 @@ // -using System; -using System.Threading.Tasks; -public class Example +public static partial class Program { - public static void Main() - { - var task1 = Task.Run( () => { throw new CustomException("This exception is expected!"); } ); + public static void HandleMethodTwo() + { + var task1 = Task.Run( + () => throw new CustomException("This exception is expected!")); - try { - task1.Wait(); - } - catch (AggregateException ae) - { - // Call the Handle method to handle the custom exception, - // otherwise rethrow the exception. - ae.Handle(ex => { if (ex is CustomException) - Console.WriteLine(ex.Message); - return ex is CustomException; - }); - } - } -} - -public class CustomException : Exception -{ - public CustomException(String message) : base(message) - {} + try + { + task1.Wait(); + } + catch (AggregateException ae) + { + // Call the Handle method to handle the custom exception, + // otherwise rethrow the exception. + ae.Handle(ex => + { + if (ex is CustomException) + { + Console.WriteLine(ex.Message); + } + return ex is CustomException; + }); + } + } } // The example displays the following output: // This exception is expected! diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handlemethod21.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handlemethod21.cs index 7eef839163607..1978c8aa704db 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handlemethod21.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handlemethod21.cs @@ -1,32 +1,30 @@ // -using System; -using System.Threading.Tasks; -public class Example +public static partial class Program { - public static void Main() - { - var task1 = Task.Run( () => { throw new CustomException("This exception is expected!"); } ); + public static void HandleMethodThree() + { + var task = Task.Run( + () => throw new CustomException("This exception is expected!")); - try { - task1.Wait(); - } - catch (AggregateException ae) - { - // Call the Handle method to handle the custom exception, - // otherwise rethrow the exception. - ae.Handle(ex => { if (ex is CustomException) - Console.WriteLine(ex.Message); - return ex is CustomException; - }); - } - } -} - -public class CustomException : Exception -{ - public CustomException(String message) : base(message) - {} + try + { + task.Wait(); + } + catch (AggregateException ae) + { + // Call the Handle method to handle the custom exception, + // otherwise rethrow the exception. + ae.Handle(ex => + { + if (ex is CustomException) + { + Console.WriteLine(ex.Message); + } + return ex is CustomException; + }); + } + } } // The example displays the following output: // This exception is expected! diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling-tpl-exceptions.csproj b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling-tpl-exceptions.csproj new file mode 100644 index 0000000000000..835740427d7cb --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling-tpl-exceptions.csproj @@ -0,0 +1,10 @@ + + + + Exe + net6.0 + enable + true + + + \ No newline at end of file diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling1.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling1.cs index 1d95eb0563e0a..d247148a51651 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling1.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling1.cs @@ -1,37 +1,33 @@ // -using System; -using System.Threading.Tasks; -public class Example +public static partial class Program { - public static void Main() - { - var task1 = Task.Run( () => { throw new CustomException("This exception is expected!"); } ); + public static void Handle() + { + var task = Task.Run( + () => throw new CustomException("This exception is expected!")); - try - { - task1.Wait(); - } - catch (AggregateException ae) - { - foreach (var e in ae.InnerExceptions) { - // Handle the custom exception. - if (e is CustomException) { - Console.WriteLine(e.Message); - } - // Rethrow any other exception. - else { - throw; - } - } - } - } -} - -public class CustomException : Exception -{ - public CustomException(String message) : base(message) - {} + try + { + task.Wait(); + } + catch (AggregateException ae) + { + foreach (var ex in ae.InnerExceptions) + { + // Handle the custom exception. + if (ex is CustomException) + { + Console.WriteLine(ex.Message); + } + // Rethrow any other exception. + else + { + throw; + } + } + } + } } // The example displays the following output: // This exception is expected! diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling2.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling2.cs index 7227586bf370b..cb3628a12b77a 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling2.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling2.cs @@ -1,34 +1,33 @@ // + using System; -using System.Threading.Tasks; -public class Example +public static partial class Program { - public static void Main() - { - var task1 = Task.Run( () => { throw new CustomException("This exception is expected!"); } ); - - while(! task1.IsCompleted) {} + public static void HandleTwo() + { + var task = Task.Run( + () => throw new CustomException("This exception is expected!")); - if (task1.Status == TaskStatus.Faulted) { - foreach (var e in task1.Exception.InnerExceptions) { - // Handle the custom exception. - if (e is CustomException) { - Console.WriteLine(e.Message); - } - // Rethrow any other exception. - else { - throw e; - } - } - } - } -} + while (!task.IsCompleted) { } -public class CustomException : Exception -{ - public CustomException(String message) : base(message) - {} + if (task.Status == TaskStatus.Faulted) + { + foreach (var ex in task.Exception?.InnerExceptions ?? new(Array.Empty())) + { + // Handle the custom exception. + if (ex is CustomException) + { + Console.WriteLine(ex.Message); + } + // Rethrow any other exception. + else + { + throw ex; + } + } + } + } } // The example displays the following output: // This exception is expected! diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling21.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling21.cs index 99f24e370480d..a80ff1c6d1285 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling21.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling21.cs @@ -1,37 +1,33 @@ // -using System; -using System.Threading.Tasks; -public class Example +public static partial class Program { - public static void Main() - { - var task1 = Task.Run( () => { throw new CustomException("This exception is expected!"); } ); + public static void HandleThree() + { + var task = Task.Run( + () => throw new CustomException("This exception is expected!")); - try - { - task1.Wait(); - } - catch (AggregateException ae) - { - foreach (var e in ae.InnerExceptions) { - // Handle the custom exception. - if (e is CustomException) { - Console.WriteLine(e.Message); - } - // Rethrow any other exception. - else { - throw e; - } - } - } - } -} - -public class CustomException : Exception -{ - public CustomException(String message) : base(message) - {} + try + { + task.Wait(); + } + catch (AggregateException ae) + { + foreach (var ex in ae.InnerExceptions) + { + // Handle the custom exception. + if (ex is CustomException) + { + Console.WriteLine(ex.Message); + } + // Rethrow any other exception. + else + { + throw ex; + } + } + } + } } // The example displays the following output: // This exception is expected! diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling22.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling22.cs index a0c6210bccee7..e0db8873c671e 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling22.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/handling22.cs @@ -1,34 +1,31 @@ // -using System; -using System.Threading.Tasks; -public class Example +public static partial class Program { - public static void Main() - { - var task1 = Task.Run( () => { throw new CustomException("This exception is expected!"); } ); + public static void HandleFour() + { + var task = Task.Run( + () => throw new CustomException("This exception is expected!")); - while(! task1.IsCompleted) {} + while (!task.IsCompleted) { } - if (task1.Status == TaskStatus.Faulted) { - foreach (var e in task1.Exception.InnerExceptions) { - // Handle the custom exception. - if (e is CustomException) { - Console.WriteLine(e.Message); - } - // Rethrow any other exception. - else { - throw e; - } - } - } - } -} - -public class CustomException : Exception -{ - public CustomException(String message) : base(message) - {} + if (task.Status == TaskStatus.Faulted) + { + foreach (var ex in task.Exception?.InnerExceptions ?? new(Array.Empty())) + { + // Handle the custom exception. + if (ex is CustomException) + { + Console.WriteLine(ex.Message); + } + // Rethrow any other exception. + else + { + throw ex; + } + } + } + } } // The example displays the following output: // This exception is expected! diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/taskexceptions.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/taskexceptions.cs index 570e2cde955aa..e4748c534e893 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/taskexceptions.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/taskexceptions.cs @@ -1,55 +1,73 @@ // -using System; -using System.IO; -using System.Threading.Tasks; - -public class Example +public static partial class Program { - public static void Main() + public static void TaskException() { // This should throw an UnauthorizedAccessException. - try { - var files = GetAllFiles(@"C:\"); - if (files != null) - foreach (var file in files) - Console.WriteLine(file); + try + { + if (GetAllFiles(@"C:\") is { Length: > 0 } files) + { + foreach (var file in files) + { + Console.WriteLine(file); + } + } } - catch (AggregateException ae) { - foreach (var ex in ae.InnerExceptions) - Console.WriteLine("{0}: {1}", ex.GetType().Name, ex.Message); + catch (AggregateException ae) + { + foreach (var ex in ae.InnerExceptions) + { + Console.WriteLine( + "{0}: {1}", ex.GetType().Name, ex.Message); + } } Console.WriteLine(); // This should throw an ArgumentException. - try { - foreach (var s in GetAllFiles("")) - Console.WriteLine(s); + try + { + foreach (var s in GetAllFiles("")) + { + Console.WriteLine(s); + } } - catch (AggregateException ae) { - foreach (var ex in ae.InnerExceptions) - Console.WriteLine("{0}: {1}", ex.GetType().Name, ex.Message); + catch (AggregateException ae) + { + foreach (var ex in ae.InnerExceptions) + Console.WriteLine( + "{0}: {1}", ex.GetType().Name, ex.Message); } } static string[] GetAllFiles(string path) { - var task1 = Task.Run( () => Directory.GetFiles(path, "*.txt", - SearchOption.AllDirectories)); + var task1 = + Task.Run(() => Directory.GetFiles( + path, "*.txt", + SearchOption.AllDirectories)); - try { - return task1.Result; - } - catch (AggregateException ae) { - ae.Handle( x => { // Handle an UnauthorizedAccessException - if (x is UnauthorizedAccessException) { - Console.WriteLine("You do not have permission to access all folders in this path."); - Console.WriteLine("See your network administrator or try another path."); - } - return x is UnauthorizedAccessException; - }); - return Array.Empty(); - } - } + try + { + return task1.Result; + } + catch (AggregateException ae) + { + ae.Handle(x => + { + // Handle an UnauthorizedAccessException + if (x is UnauthorizedAccessException) + { + Console.WriteLine( + "You do not have permission to access all folders in this path."); + Console.WriteLine( + "See your network administrator or try another path."); + } + return x is UnauthorizedAccessException; + }); + return Array.Empty(); + } + } } // The example displays the following output: // You do not have permission to access all folders in this path. diff --git a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/taskexceptions2.cs b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/taskexceptions2.cs index 0842100efad61..15a8752c31f2a 100644 --- a/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/taskexceptions2.cs +++ b/samples/snippets/csharp/VS_Snippets_Misc/tpl_exceptions/cs/taskexceptions2.cs @@ -1,48 +1,58 @@ // -using System; -using System.Collections.Generic; -using System.IO; -using System.Threading.Tasks; -public class Example +public static partial class Program { - public static void Main() - { - try { - ExecuteTasks(); - } - catch (AggregateException ae) { - foreach (var e in ae.InnerExceptions) { - Console.WriteLine("{0}:\n {1}", e.GetType().Name, e.Message); - } - } - } + public static void TaskExceptionTwo() + { + try + { + ExecuteTasks(); + } + catch (AggregateException ae) + { + foreach (var e in ae.InnerExceptions) + { + Console.WriteLine( + "{0}:\n {1}", e.GetType().Name, e.Message); + } + } + } - static void ExecuteTasks() - { + static void ExecuteTasks() + { // Assume this is a user-entered String. - String path = @"C:\"; - List tasks = new List(); + string path = @"C:\"; + List tasks = new(); - tasks.Add(Task.Run(() => { - // This should throw an UnauthorizedAccessException. - return Directory.GetFiles(path, "*.txt", - SearchOption.AllDirectories); - })); + tasks.Add(Task.Run(() => + { + // This should throw an UnauthorizedAccessException. + return Directory.GetFiles( + path, "*.txt", + SearchOption.AllDirectories); + })); - tasks.Add(Task.Run(() => { - if (path == @"C:\") - throw new ArgumentException("The system root is not a valid path."); - return new String[] { ".txt", ".dll", ".exe", ".bin", ".dat" }; - })); + tasks.Add(Task.Run(() => + { + if (path == @"C:\") + { + throw new ArgumentException( + "The system root is not a valid path."); + } + return new string[] { ".txt", ".dll", ".exe", ".bin", ".dat" }; + })); - tasks.Add(Task.Run(() => { - throw new NotImplementedException("This operation has not been implemented."); - })); + tasks.Add(Task.Run(() => + { + throw new NotImplementedException( + "This operation has not been implemented."); + })); - try { + try + { Task.WaitAll(tasks.ToArray()); } - catch (AggregateException ae) { + catch (AggregateException ae) + { throw ae.Flatten(); } } From 9dd4f19efbdf6e3e52b5776de3ef462c11431b55 Mon Sep 17 00:00:00 2001 From: David Pine Date: Mon, 9 May 2022 10:53:59 -0500 Subject: [PATCH 139/429] Update the Windows Service code to correctly enable recovery options (#29310) * fix-29251 * Update the Windows Service code to correctly enable recovery options * Revert change again, this is getting weird * Update docs/core/extensions/snippets/workers/windows-service/WindowsBackgroundService.cs * Reformat table --- .../extensions/media/profile-settings.png | Bin 10745 -> 25233 bytes .../PublishProfiles/FolderProfile.pubxml | 16 +++++------ .../WindowsBackgroundService.cs | 25 +++++++++++++++--- docs/core/extensions/windows-service.md | 15 ++++++++++- 4 files changed, 43 insertions(+), 13 deletions(-) diff --git a/docs/core/extensions/media/profile-settings.png b/docs/core/extensions/media/profile-settings.png index 49431ec4b28a0c8b8bbfeb46db50461bfbfe2128..3e7782b7e6a0a4be9003b9914ea3670892278142 100644 GIT binary patch literal 25233 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 literal 10745 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 diff --git a/docs/core/extensions/snippets/workers/windows-service/Properties/PublishProfiles/FolderProfile.pubxml b/docs/core/extensions/snippets/workers/windows-service/Properties/PublishProfiles/FolderProfile.pubxml index 1d6a74da22c94..8e09a9938cd23 100644 --- a/docs/core/extensions/snippets/workers/windows-service/Properties/PublishProfiles/FolderProfile.pubxml +++ b/docs/core/extensions/snippets/workers/windows-service/Properties/PublishProfiles/FolderProfile.pubxml @@ -1,18 +1,18 @@  - + Release Any CPU - bin\Release\net5.0\win-x64\publish\ + bin\Release\net6.0\win-x64\publish\ FileSystem - net5.0 + net6.0 win-x64 true - True - True - True + true + false + true - + \ No newline at end of file diff --git a/docs/core/extensions/snippets/workers/windows-service/WindowsBackgroundService.cs b/docs/core/extensions/snippets/workers/windows-service/WindowsBackgroundService.cs index e988975decdbc..bdf93e1e59206 100644 --- a/docs/core/extensions/snippets/workers/windows-service/WindowsBackgroundService.cs +++ b/docs/core/extensions/snippets/workers/windows-service/WindowsBackgroundService.cs @@ -12,12 +12,29 @@ public WindowsBackgroundService( protected override async Task ExecuteAsync(CancellationToken stoppingToken) { - while (!stoppingToken.IsCancellationRequested) + try { - string joke = _jokeService.GetJoke(); - _logger.LogWarning(joke); + while (!stoppingToken.IsCancellationRequested) + { + string joke = _jokeService.GetJoke(); + _logger.LogWarning("{Joke}", joke); - await Task.Delay(TimeSpan.FromMinutes(1), stoppingToken); + await Task.Delay(TimeSpan.FromMinutes(1), stoppingToken); + } + } + catch (Exception ex) + { + _logger.LogError(ex, "{Message}", ex.Message); + + // Terminates this process and returns an exit code to the operating system. + // This is required to avoid the 'BackgroundServiceExceptionBehavior', which + // performs one of two scenarios: + // 1. When set to "Ignore": will do nothing at all, errors cause zombie services. + // 2. When set to "StopHost": will cleanly stop the host, and log errors. + // + // In order for the Windows Service Management system to leverage configured + // recovery options, we need to terminate the process with a non-zero exit code. + Environment.Exit(1); } } } diff --git a/docs/core/extensions/windows-service.md b/docs/core/extensions/windows-service.md index 86b6729e1f9a5..222123ad10d79 100644 --- a/docs/core/extensions/windows-service.md +++ b/docs/core/extensions/windows-service.md @@ -44,7 +44,7 @@ To install this from Visual Studio, use the **Manage NuGet Packages...** dialog. dotnet add package Microsoft.Extensions.Hosting.WindowsServices ``` -For more information on the .NET CLI add package command, see [`dotnet add package`](../tools/dotnet-add-package.md). +For more information on the .NET CLI add package command, see [dotnet add package](../tools/dotnet-add-package.md). After successfully adding the packages, your project file should now contain the following package references: @@ -221,6 +221,19 @@ You will see the configured restart values. :::image type="content" source="media/windows-service-recovery-properties-configured.png" alt-text="The Windows Service recovery configuration properties dialog with restart enabled."::: +#### Service recovery options and .NET `BackgroundService` instances + +With .NET 6, [new hosting exception handling behaviors](../compatibility/core-libraries/6.0/hosting-exception-handling.md) have been added to .NET. The enum was added to the `Microsoft.Extensions.Hosting` namespace, and is used to specify the behavior of the service when an exception is thrown. The following table lists the available options: + +| Option | Description | +|------------|--------------------------------------------------------------------| +| `Ignore` | Ignore exceptions thrown in `BackgroundService`. | +| `StopHost` | The `IHost` will be stopped when an unhandled exception is thrown. | + +The default behavior before .NET 6 is `Ignore`, which resulted in _zombie processes_ (a running process that didn't do anything). With .NET 6, the default behavior is `StopHost`, which results in the host being stopped when an exception is thrown. But it stops cleanly, meaning that the Windows Service management system will not restart the service. To correctly allow the service to be restarted, you can call with a non-zero exit code. Consider the following highlighted `catch` block: + +:::code source="snippets/workers/windows-service/WindowsBackgroundService.cs" highlight="25-38"::: + ## Verify service functionality To see the app created as a Windows Service, open **Services**. Select the Windows key (or Ctrl + Esc), and search from "Services". From the **Services** app, you should be able to find your service by its name. From 9ca6b5ce8394811def6bbf470593b7f4a734e389 Mon Sep 17 00:00:00 2001 From: Koundinya Veluri Date: Mon, 9 May 2022 10:47:05 -0700 Subject: [PATCH 140/429] Document a new config switch added to the portable thread pool (#29320) --- docs/core/runtime-config/threading.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/core/runtime-config/threading.md b/docs/core/runtime-config/threading.md index e38048afbc16f..34b8169b97d49 100644 --- a/docs/core/runtime-config/threading.md +++ b/docs/core/runtime-config/threading.md @@ -104,6 +104,7 @@ In some cases, the thread pool detects work items that block its threads. To com | `System.Threading.ThreadPool.Blocking.ThreadsPerDelayStep_ProcCountFactor` | After the thread count based on `ThreadsToAddWithoutDelay` is reached, this value (after it is multiplied by the processor count) specifies after how many threads an additional `DelayStepMs` would be added to the delay before each new thread is created. | .NET 6 | | `System.Threading.ThreadPool.Blocking.DelayStepMs` | After the thread count based on `ThreadsToAddWithoutDelay` is reached, this value specifies how much additional delay to add per `ThreadsPerDelayStep` threads, which would be applied before each new thread is created. | .NET 6 | | `System.Threading.ThreadPool.Blocking.MaxDelayMs` | After the thread count based on `ThreadsToAddWithoutDelay` is reached, this value specifies the max delay to use before each new thread is created. | .NET 6 | +| `System.Threading.ThreadPool.Blocking.IgnoreMemoryUsage` | By default, the rate of thread injection in response to blocking is limited by heuristics that determine whether there is sufficient physical memory available. In some situations, it may be preferable to inject threads more quickly even in low-memory situations. You can disable the memory usage heuristics by turning off this switch. | .NET 7 | ### How the configuration settings take effect From 04b85d261b3ef0d96ef4452a1546ea4a9af04628 Mon Sep 17 00:00:00 2001 From: softwarepronto Date: Tue, 10 May 2022 04:40:52 -0700 Subject: [PATCH 141/429] C# example used a VB.NET style variable name (#29325) This main page for XmlSchema contains C++, C#, and VB.NET examples. Someone ported the VB.NET example to C# and used the variable name "mySchema" (VB.NET style) versus C# which does not prefix variables with the term "my." --- .../CS/XmlSchemaReadWriteExample.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/samples/snippets/csharp/VS_Snippets_Data/XmlSchemaReadWriteExample/CS/XmlSchemaReadWriteExample.cs b/samples/snippets/csharp/VS_Snippets_Data/XmlSchemaReadWriteExample/CS/XmlSchemaReadWriteExample.cs index 2bb3ec379f45e..17cdd7f63d0d3 100644 --- a/samples/snippets/csharp/VS_Snippets_Data/XmlSchemaReadWriteExample/CS/XmlSchemaReadWriteExample.cs +++ b/samples/snippets/csharp/VS_Snippets_Data/XmlSchemaReadWriteExample/CS/XmlSchemaReadWriteExample.cs @@ -12,12 +12,12 @@ static void Main() try { XmlTextReader reader = new XmlTextReader("example.xsd"); - XmlSchema myschema = XmlSchema.Read(reader, ValidationCallback); - myschema.Write(Console.Out); + XmlSchema schema = XmlSchema.Read(reader, ValidationCallback); + schema.Write(Console.Out); FileStream file = new FileStream("new.xsd", FileMode.Create, FileAccess.ReadWrite); XmlTextWriter xwriter = new XmlTextWriter(file, new UTF8Encoding()); xwriter.Formatting = Formatting.Indented; - myschema.Write(xwriter); + schema.Write(xwriter); } catch(Exception e) { From f628890f8089eca9d9a23e6e4f8a9aa54dce0cce Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 10 May 2022 04:43:10 -0700 Subject: [PATCH 142/429] Update package index with latest published versions (#29338) --- docs/azure/includes/dotnet-all.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 2358087b1dab1..980d7106d7da2 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -395,13 +395,13 @@ | Web - Redis Session State Provider | NuGet [4.0.1](https://www.nuget.org/packages/Microsoft.Web.RedisSessionStateProvider/4.0.1) | | GitHub [4.0.1](https://github.com/Azure/aspnet-redis-providers/tree/NuGet-Release/RedisSessionStateProvider-4.0.1/src/RedisSessionStateProvider) | | Web PubSub | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Messaging.WebPubSub/1.0.0) | [docs](/dotnet/api/overview/azure/Messaging.WebPubSub-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.WebPubSub_1.0.0/sdk/webpubsub/Azure.Messaging.WebPubSub/) | | Web Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.WebSearch/2.0.0) | | | -| WebJobs | NuGet [3.0.32](https://www.nuget.org/packages/Microsoft.Azure.WebJobs/3.0.32) | | GitHub [3.0.32](https://github.com/Azure/azure-webjobs-sdk/tree/v3.0.18/src/Microsoft.Azure.WebJobs) | -| WebJobs - Core | NuGet [3.0.32](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Core/3.0.32) | | GitHub [3.0.32](https://github.com/Azure/azure-webjobs-sdk/tree/v3.0.18) | +| WebJobs | NuGet [3.0.33](https://www.nuget.org/packages/Microsoft.Azure.WebJobs/3.0.33) | | GitHub [3.0.33](https://github.com/Azure/azure-webjobs-sdk/tree/v3.0.18/src/Microsoft.Azure.WebJobs) | +| WebJobs - Core | NuGet [3.0.33](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Core/3.0.33) | | GitHub [3.0.33](https://github.com/Azure/azure-webjobs-sdk/tree/v3.0.18) | | WebJobs - Host Storage | NuGet [4.0.4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Host.Storage/4.0.4)
      NuGet [5.0.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Host.Storage/5.0.0-beta.1) | | GitHub [4.0.4](https://github.com/Azure/azure-webjobs-sdk/tree/storage-v4.0.1/src/Microsoft.Azure.WebJobs.Host.Storage) | | WebJobs - Host Test Common | NuGet [3.0.30](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Host.TestCommon/3.0.30) | | GitHub [3.0.30](https://github.com/Azure/azure-webjobs-sdk) | | WebJobs - Item Templates | NuGet [4.0.2097](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.ItemTemplates/4.0.2097) | | GitHub [4.0.2097](https://github.com/Azure/azure-functions-templates/tree/3.1.1582) | | WebJobs - Logging | NuGet [4.0.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Logging/4.0.2) | | GitHub [4.0.2](https://github.com/Azure/azure-webjobs-sdk/tree/dev/src/Microsoft.Azure.WebJobs.Logging) | -| WebJobs - Logging Application Insights | NuGet [3.0.30](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Logging.ApplicationInsights/3.0.30) | | GitHub [3.0.30](https://github.com/Azure/azure-webjobs-sdk/tree/v3.0.18/src/Microsoft.Azure.WebJobs.Logging.ApplicationInsights) | +| WebJobs - Logging Application Insights | NuGet [3.0.33](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Logging.ApplicationInsights/3.0.33) | | GitHub [3.0.33](https://github.com/Azure/azure-webjobs-sdk/tree/v3.0.18/src/Microsoft.Azure.WebJobs.Logging.ApplicationInsights) | | WebJobs - Project Templates | NuGet [4.0.2097](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.ProjectTemplates/4.0.2097) | | GitHub [4.0.2097](https://github.com/Azure/azure-functions-templates/tree/3.1.1582) | | WebJobs - Scrip Web Host | NuGet [1.0.0-beta3](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Script.WebHost/1.0.0-beta3) | | GitHub [1.0.0-beta3](https://github.com/Azure/azure-functions-host/tree/dev/src/WebJobs.Script.WebHost) | | WebJobs - Script | NuGet [1.0.0-beta3](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Script/1.0.0-beta3) | | GitHub [1.0.0-beta3](https://github.com/Azure/azure-functions-host/tree/dev/src/WebJobs.Script) | @@ -409,7 +409,7 @@ | WebJobs - Script Extensibility | NuGet [1.0.0-beta3](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Script.Extensibility/1.0.0-beta3) | | GitHub [1.0.0-beta3](https://github.com/Azure/azure-functions-host) | | WebJobs - Script Extensions Metadata Generator | NuGet [4.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator/4.0.1) | | GitHub [4.0.1](https://github.com/Azure/azure-functions-host) | | WebJobs - Service Bus | NuGet [3.0.0-beta8](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.ServiceBus/3.0.0-beta8) | | GitHub [3.0.0-beta8](https://github.com/Azure/azure-webjobs-sdk/tree/v3.0.0-beta8/src/Microsoft.Azure.WebJobs.ServiceBus) | -| WebJobs - Sources | NuGet [3.0.30](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Sources/3.0.30) | | GitHub [3.0.30](https://github.com/Azure/azure-webjobs-sdk) | +| WebJobs - Sources | NuGet [3.0.33](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Sources/3.0.33) | | GitHub [3.0.33](https://github.com/Azure/azure-webjobs-sdk) | | WebJobs Extensions | NuGet [4.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions/4.0.1)
      NuGet [5.0.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions/5.0.0-beta.1) | | GitHub [4.0.1](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/dev/src/WebJobs.Extensions) | | WebJobs Extensions - API Hub | NuGet [1.0.0-beta9](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ApiHub/1.0.0-beta9) | | GitHub [1.0.0-beta9](https://github.com/Azure/azure-webjobs-sdk-extensions) | | WebJobs Extensions - Auth Tokens | NuGet [1.0.0-beta6](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.AuthTokens/1.0.0-beta6) | | GitHub [1.0.0-beta6](https://github.com/Azure/azure-webjobs-sdk-extensions) | From 56ac2da2485a105a3c6d47c86bb4eea58d99e4d7 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Tue, 10 May 2022 05:42:39 -0700 Subject: [PATCH 143/429] respond to feedback (#29334) --- docs/standard/garbage-collection/fundamentals.md | 2 +- docs/standard/garbage-collection/unmanaged.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standard/garbage-collection/fundamentals.md b/docs/standard/garbage-collection/fundamentals.md index 88106755a3fd9..7dff1a8a2fbcf 100644 --- a/docs/standard/garbage-collection/fundamentals.md +++ b/docs/standard/garbage-collection/fundamentals.md @@ -199,7 +199,7 @@ The following illustration shows a thread that triggers a garbage collection and For most of the objects that your application creates, you can rely on garbage collection to automatically perform the necessary memory management tasks. However, unmanaged resources require explicit cleanup. The most common type of unmanaged resource is an object that wraps an operating system resource, such as a file handle, window handle, or network connection. Although the garbage collector is able to track the lifetime of a managed object that encapsulates an unmanaged resource, it doesn't have specific knowledge about how to clean up the resource. -When you create an object that encapsulates an unmanaged resource, it's recommended that you provide the necessary code to clean up the unmanaged resource in a public `Dispose` method. By providing a `Dispose` method, you enable users of your object to explicitly free its memory when they are finished with the object. When you use an object that encapsulates an unmanaged resource, make sure to call `Dispose` as necessary. +When you define an object that encapsulates an unmanaged resource, it's recommended that you provide the necessary code to clean up the unmanaged resource in a public `Dispose` method. By providing a `Dispose` method, you enable users of your object to explicitly release the resource when they're finished with the object. When you use an object that encapsulates an unmanaged resource, make sure to call `Dispose` as necessary. You must also provide a way for your unmanaged resources to be released in case a consumer of your type forgets to call `Dispose`. You can either use a safe handle to wrap the unmanaged resource, or override the method. diff --git a/docs/standard/garbage-collection/unmanaged.md b/docs/standard/garbage-collection/unmanaged.md index 61be52a2cd10e..8d94555d44ce6 100644 --- a/docs/standard/garbage-collection/unmanaged.md +++ b/docs/standard/garbage-collection/unmanaged.md @@ -16,7 +16,7 @@ ms.assetid: a17b0066-71c2-4ba4-9822-8e19332fc213 # Cleaning up unmanaged resources -For the majority of the objects that your app creates, you can rely on the [.NET garbage collector](index.md) to handle memory management. However, when you create objects that include unmanaged resources, you must explicitly release those resources when you finish using them. The most common types of unmanaged resources are objects that wrap operating system resources, such as files, windows, network connections, or database connections. Although the garbage collector is able to track the lifetime of an object that encapsulates an unmanaged resource, it doesn't know how to release and clean up the unmanaged resource. +For a majority of the objects that your app creates, you can rely on the [.NET garbage collector](index.md) to handle memory management. However, when you create objects that include unmanaged resources, you must explicitly release those resources when you finish using them. The most common types of unmanaged resources are objects that wrap operating system resources, such as files, windows, network connections, or database connections. Although the garbage collector is able to track the lifetime of an object that encapsulates an unmanaged resource, it doesn't know how to release and clean up the unmanaged resource. If your types use unmanaged resources, you should do the following: From ba5d5de8b9f747f3e3dabb1e7d96aa880410b2a5 Mon Sep 17 00:00:00 2001 From: Chet Husk Date: Tue, 10 May 2022 14:56:17 -0500 Subject: [PATCH 144/429] add documentation for new CLI telemetry in .NET 6.0.300 (#28619) --- docs/core/tools/telemetry.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/core/tools/telemetry.md b/docs/core/tools/telemetry.md index 34c757bde54c3..4f63ec8ea79ad 100644 --- a/docs/core/tools/telemetry.md +++ b/docs/core/tools/telemetry.md @@ -83,6 +83,7 @@ The telemetry feature collects the following data: | >=5.0.202 | Elapsed time for generating ASP.NET Certificate on first run. | | >=5.0.202 | Elapsed time to parse the CLI input. | | >=6.0.100 | OS architecture | +| >=6.0.300 | If the CLI was invoked from a Continuous Integration environment. For more information, see [Continuous Integration Detection](#continuous-integration-detection).| ### Collected options @@ -145,6 +146,26 @@ at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryC at Microsoft.DotNet.Cli.Program.Main(String[] args) ``` +## Continuous Integration Detection + +In order to detect if the .NET CLI is running in a Continuous Integration environment, the .NET CLI probes for the presence and values of several well-known environment variables that common CI providers set. + +The full list of environment variables, and what is done with their values, is shown below. Note that in every case, the value of the environment variable is never collected, only used to set a boolean flag. + +| Variable(s) | Provider | Action | +| ----------- | -------- | ------ | +| TF_BUILD | Azure Pipelines | Parse boolean value | +| GITHUB_ACTIONS | GitHub Actions | Parse boolean value | +| APPVEYOR | Appveyor | Parse boolean value | +| CI | Many/Most | Parse boolean value | +| TRAVIS | Travis CI | Parse boolean value | +| CIRCLECI | Circle CI | Parse boolean value | +| CODEBUILD_BUILD_ID, AWS_REGION | Amazon Web Services CodeBuild | Check if all are present and non-null | +| BUILD_ID, BUILD_URL | Jenkins | Check if all are present and non-null | +| BUILD_ID, PROJECT_ID | Google Cloud Build | Check if all are present and non-null | +| TEAMCITY_VERSION | TeamCity | Check if present and non-null | +| JB_SPACE_API_URL | JetBrains Space | Check if present and non-null | + ## Avoid inadvertent disclosure of information .NET contributors and anyone else running a version of the .NET SDK that they built themselves should consider the path to their SDK source code. If a crash occurs while using a .NET SDK that is a custom debug build or configured with custom build symbol files, the SDK source file path from the build machine is collected as part of the stack trace and isn't hashed. From 7875c3c99abfaf306888150e4f57fb831dc66088 Mon Sep 17 00:00:00 2001 From: Chet Husk Date: Tue, 10 May 2022 16:34:21 -0500 Subject: [PATCH 145/429] document SDK telemetry from prior and upcoming versions (#29354) --- docs/core/tools/telemetry.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/core/tools/telemetry.md b/docs/core/tools/telemetry.md index 4f63ec8ea79ad..9b17334ab6477 100644 --- a/docs/core/tools/telemetry.md +++ b/docs/core/tools/telemetry.md @@ -74,16 +74,24 @@ The telemetry feature collects the following data: | >=3.0.100 | On a CLI/SDK crash, the exception type and its stack trace (only CLI/SDK code is included in the stack trace sent). For more information, see [Crash exception telemetry](#crash-exception-telemetry). | | >=5.0.100 | Hashed TargetFrameworkVersion used for build (MSBuild property) | | >=5.0.100 | Hashed RuntimeIdentifier used for build (MSBuild property) | -| >=5.0.100 | Hashed SelfContained used for build (MSBuild property) | -| >=5.0.100 | Hashed UseApphost used for build (MSBuild property) | +| >=5.0.100 | Hashed SelfContained used for build (MSBuild property) | +| >=5.0.100 | Hashed UseApphost used for build (MSBuild property) | | >=5.0.100 | Hashed OutputType used for build (MSBuild property | +| >=5.0.201 | Hashed PublishReadyToRun used for build (MSBuild property) | +| >=5.0.201 | Hashed PublishTrimmed used for build (MSBuild property) | +| >=5.0.201 | Hashed PublishSingleFile used for build (MSBuild property) | | >=5.0.202 | Elapsed time from process start until entering the CLI program's main method, measuring host and runtime startup. | | >=5.0.202 | Elapsed time for the step that adds .NET Tools to the path on first run. | | >=5.0.202 | Elapsed time to display first time use notice on first run. | | >=5.0.202 | Elapsed time for generating ASP.NET Certificate on first run. | | >=5.0.202 | Elapsed time to parse the CLI input. | | >=6.0.100 | OS architecture | +| >=6.0.104 | Hashed PublishReadyToRunUseCrossgen2 used for build (MSBuild property) | +| >=6.0.104 | Hashed Crossgen2PackVersion used for build (MSBuild property) | +| >=6.0.104 | Hashed CompileListCount used for build (MSBuild property) | +| >=6.0.104 | Hashed _ReadyToRunCompilationFailures used for build (MSBuild property) | | >=6.0.300 | If the CLI was invoked from a Continuous Integration environment. For more information, see [Continuous Integration Detection](#continuous-integration-detection).| +| >=7.0.100 | Hashed PublishAot used for build (MSBuild property) | ### Collected options From 20074aed969e710e622a666ab8b330510c6cb6c1 Mon Sep 17 00:00:00 2001 From: GitHubPang <61439577+GitHubPang@users.noreply.github.com> Date: Wed, 11 May 2022 10:30:59 +0800 Subject: [PATCH 146/429] Fix typo - remove repeated word "the" (#29357) --- docs/core/runtime-config/garbage-collector.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/runtime-config/garbage-collector.md b/docs/core/runtime-config/garbage-collector.md index 33801909a50f3..ad022c0191b59 100644 --- a/docs/core/runtime-config/garbage-collector.md +++ b/docs/core/runtime-config/garbage-collector.md @@ -19,7 +19,7 @@ Settings are arranged into groups on this page. The settings within each group a ## Ways to specify the configuration -For different versions of the the .NET runtime, there are different ways to specify the configuration values. The following table shows a summary. +For different versions of the .NET runtime, there are different ways to specify the configuration values. The following table shows a summary. | Config location | .NET versions this location applies to | Formats | How it's interpreted | | -------------------- | -------------------------------------- | -------- | ------------------------------------------------------------ | From 5bd59af6aebad14a0ced950fd9293f347b09d762 Mon Sep 17 00:00:00 2001 From: David Mason Date: Wed, 11 May 2022 00:59:03 -0700 Subject: [PATCH 147/429] Update docs/core/runtime-config/debugging-profiling.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/runtime-config/debugging-profiling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/runtime-config/debugging-profiling.md b/docs/core/runtime-config/debugging-profiling.md index f5292601827ca..156ce1225733f 100644 --- a/docs/core/runtime-config/debugging-profiling.md +++ b/docs/core/runtime-config/debugging-profiling.md @@ -53,7 +53,7 @@ This article details the settings you can use to configure .NET debugging and pr ## Export perf maps -- Enables or disables emitting perf maps to */tmp/perf-$pid.map*. Perf maps allow 3rd party tools, such as perf, to identify call sites from pre-compiled R2R modules. +- Enables or disables emitting perf maps to */tmp/perf-$pid.map*. Perf maps allow third party tools, such as perf, to identify call sites from precompiled ReadyToRun (R2R) modules. - If you omit this setting, writing the perf map is disabled. This is equivalent to setting the value to `0`. - Without perf maps enabled you will not see all managed callsites properly resolved. - Enabling causes a 10-20% overhead. From 5352fdcefd2cec9aef92a0aa16cd7e600e27f655 Mon Sep 17 00:00:00 2001 From: David Mason Date: Wed, 11 May 2022 00:59:11 -0700 Subject: [PATCH 148/429] Update docs/core/runtime-config/debugging-profiling.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/runtime-config/debugging-profiling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/runtime-config/debugging-profiling.md b/docs/core/runtime-config/debugging-profiling.md index 156ce1225733f..0a836e1fbbf3c 100644 --- a/docs/core/runtime-config/debugging-profiling.md +++ b/docs/core/runtime-config/debugging-profiling.md @@ -55,7 +55,7 @@ This article details the settings you can use to configure .NET debugging and pr - Enables or disables emitting perf maps to */tmp/perf-$pid.map*. Perf maps allow third party tools, such as perf, to identify call sites from precompiled ReadyToRun (R2R) modules. - If you omit this setting, writing the perf map is disabled. This is equivalent to setting the value to `0`. -- Without perf maps enabled you will not see all managed callsites properly resolved. +- When perf maps are disabled, not all managed callsites will be properly resolved. - Enabling causes a 10-20% overhead. | | Setting name | Values | From e431f2a911e4f214146c41fd8ded4225d1a4557a Mon Sep 17 00:00:00 2001 From: David Mason Date: Wed, 11 May 2022 00:59:26 -0700 Subject: [PATCH 149/429] Update docs/core/runtime-config/debugging-profiling.md Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/runtime-config/debugging-profiling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/runtime-config/debugging-profiling.md b/docs/core/runtime-config/debugging-profiling.md index 0a836e1fbbf3c..7f6fef4fd1d23 100644 --- a/docs/core/runtime-config/debugging-profiling.md +++ b/docs/core/runtime-config/debugging-profiling.md @@ -56,7 +56,7 @@ This article details the settings you can use to configure .NET debugging and pr - Enables or disables emitting perf maps to */tmp/perf-$pid.map*. Perf maps allow third party tools, such as perf, to identify call sites from precompiled ReadyToRun (R2R) modules. - If you omit this setting, writing the perf map is disabled. This is equivalent to setting the value to `0`. - When perf maps are disabled, not all managed callsites will be properly resolved. -- Enabling causes a 10-20% overhead. +- Enabling perf maps causes a 10-20% overhead. | | Setting name | Values | | - | - | - | From edabc9573e0c792776fe8a9c94c236708fa5caff Mon Sep 17 00:00:00 2001 From: David Mason Date: Wed, 11 May 2022 01:55:25 -0700 Subject: [PATCH 150/429] Fix reference --- docs/core/runtime-config/debugging-profiling.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/runtime-config/debugging-profiling.md b/docs/core/runtime-config/debugging-profiling.md index f5292601827ca..49647a78ef035 100644 --- a/docs/core/runtime-config/debugging-profiling.md +++ b/docs/core/runtime-config/debugging-profiling.md @@ -74,4 +74,4 @@ This article details the settings you can use to configure .NET debugging and pr | **Environment variable** | `COMPlus_PerfMapIgnoreSignal` or `DOTNET_PerfMapIgnoreSignal` | `0` - disabled
      `1` - enabled | > [!NOTE] -> This setting is ignored if [DOTNET_PerfMapEnabled](#write-perf-map) is omitted or set to `0` (that is, disabled). +> This setting is ignored if [DOTNET_PerfMapEnabled](#export-perf-map) is omitted or set to `0` (that is, disabled). From 42d104bd0ec8e3110fd6beb2a378c5743572df90 Mon Sep 17 00:00:00 2001 From: David Mason Date: Wed, 11 May 2022 02:04:15 -0700 Subject: [PATCH 151/429] More fixes --- docs/core/diagnostics/debug-highcpu.md | 2 +- docs/core/runtime-config/debugging-profiling.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/core/diagnostics/debug-highcpu.md b/docs/core/diagnostics/debug-highcpu.md index 585023c3d707f..0cf693442b538 100644 --- a/docs/core/diagnostics/debug-highcpu.md +++ b/docs/core/diagnostics/debug-highcpu.md @@ -114,7 +114,7 @@ When analyzing a slow request, you need a diagnostics tool that can provide insi The `perf` tool can be used to generate .NET Core app profiles. Exit the previous instance of the [sample debug target](/samples/dotnet/samples/diagnostic-scenarios). -Set the `DOTNET_PerfMapEnabled` environment variable to cause the .NET Core app to create a `map` file in the `/tmp` directory. This `map` file is used by `perf` to map CPU address to JIT-generated functions by name. For more information, see [Write perf map](../runtime-config/debugging-profiling.md#write-perf-map). +Set the `DOTNET_PerfMapEnabled` environment variable to cause the .NET Core app to create a `map` file in the `/tmp` directory. This `map` file is used by `perf` to map CPU address to JIT-generated functions by name. For more information, see [Export perf maps](../runtime-config/debugging-profiling.md#export-perf-maps). [!INCLUDE [complus-prefix](../../../includes/complus-prefix.md)] diff --git a/docs/core/runtime-config/debugging-profiling.md b/docs/core/runtime-config/debugging-profiling.md index 096453af69dab..832dbb4436042 100644 --- a/docs/core/runtime-config/debugging-profiling.md +++ b/docs/core/runtime-config/debugging-profiling.md @@ -74,4 +74,4 @@ This article details the settings you can use to configure .NET debugging and pr | **Environment variable** | `COMPlus_PerfMapIgnoreSignal` or `DOTNET_PerfMapIgnoreSignal` | `0` - disabled
      `1` - enabled | > [!NOTE] -> This setting is ignored if [DOTNET_PerfMapEnabled](#export-perf-map) is omitted or set to `0` (that is, disabled). +> This setting is ignored if [DOTNET_PerfMapEnabled](#export-perf-maps) is omitted or set to `0` (that is, disabled). From d6a6a62931cea123ad2cae1d9fb5540d378ff250 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 08:09:41 -0500 Subject: [PATCH 152/429] Bump Microsoft.Data.Sqlite (#29365) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../data/sqlite/BulkInsertSample/BulkInsertSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/BulkInsertSample/BulkInsertSample.csproj b/samples/snippets/standard/data/sqlite/BulkInsertSample/BulkInsertSample.csproj index f5bd5f415c954..75bf478412334 100644 --- a/samples/snippets/standard/data/sqlite/BulkInsertSample/BulkInsertSample.csproj +++ b/samples/snippets/standard/data/sqlite/BulkInsertSample/BulkInsertSample.csproj @@ -6,7 +6,7 @@ - + From 883d33caadf102f498d2da4341737dc07fde265c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 08:12:03 -0500 Subject: [PATCH 153/429] Bump System.Text.Json (#29369) Bumps [System.Text.Json](https://github.com/dotnet/runtime) from 6.0.3 to 6.0.4. - [Release notes](https://github.com/dotnet/runtime/releases) - [Commits](https://github.com/dotnet/runtime/compare/v6.0.3...v6.0.4) --- updated-dependencies: - dependency-name: System.Text.Json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../getting-started/console-webapiclient/webapiclient.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/getting-started/console-webapiclient/webapiclient.csproj b/samples/snippets/csharp/getting-started/console-webapiclient/webapiclient.csproj index 516ffe02a8d8e..5e68d01e3448b 100644 --- a/samples/snippets/csharp/getting-started/console-webapiclient/webapiclient.csproj +++ b/samples/snippets/csharp/getting-started/console-webapiclient/webapiclient.csproj @@ -6,7 +6,7 @@ - + From 5eda128d9cd2943cdd185cd87510513879c28d0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 08:13:26 -0500 Subject: [PATCH 154/429] Bump Microsoft.NET.Test.Sdk (#29370) Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../vb/PrimeService.Tests/PrimeService.Tests.vbproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/core/testing/unit-testing-vb-mstest/vb/PrimeService.Tests/PrimeService.Tests.vbproj b/samples/snippets/core/testing/unit-testing-vb-mstest/vb/PrimeService.Tests/PrimeService.Tests.vbproj index 9c84cb07695d3..5dcc478017953 100644 --- a/samples/snippets/core/testing/unit-testing-vb-mstest/vb/PrimeService.Tests/PrimeService.Tests.vbproj +++ b/samples/snippets/core/testing/unit-testing-vb-mstest/vb/PrimeService.Tests/PrimeService.Tests.vbproj @@ -7,7 +7,7 @@ - + From afff2f1493a5b7a5e33fb0c630af077f2e5f474c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 08:13:33 -0500 Subject: [PATCH 155/429] Bump Microsoft.Data.Sqlite.Core (#29372) Bumps [Microsoft.Data.Sqlite.Core](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite.Core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../data/sqlite/EncryptionSample/EncryptionSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/EncryptionSample/EncryptionSample.csproj b/samples/snippets/standard/data/sqlite/EncryptionSample/EncryptionSample.csproj index 8be51dbb8237d..fb693dc236902 100644 --- a/samples/snippets/standard/data/sqlite/EncryptionSample/EncryptionSample.csproj +++ b/samples/snippets/standard/data/sqlite/EncryptionSample/EncryptionSample.csproj @@ -6,7 +6,7 @@ - + From 7e06326601b4671064d0b5ce78f4c5828a55720a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 08:13:47 -0500 Subject: [PATCH 156/429] Bump Microsoft.Data.Sqlite (#29374) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../standard/data/sqlite/InMemorySample/InMemorySample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/InMemorySample/InMemorySample.csproj b/samples/snippets/standard/data/sqlite/InMemorySample/InMemorySample.csproj index f5bd5f415c954..75bf478412334 100644 --- a/samples/snippets/standard/data/sqlite/InMemorySample/InMemorySample.csproj +++ b/samples/snippets/standard/data/sqlite/InMemorySample/InMemorySample.csproj @@ -6,7 +6,7 @@ - + From 0ea25b835d76148e6ec5238681e9d5e2d5913430 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 08:13:57 -0500 Subject: [PATCH 157/429] Bump Microsoft.NET.Test.Sdk (#29375) Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../csharp/test/NewTypesTests/NewTypesTests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj b/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj index eebe498f8020b..b0cc93b1c1b4d 100644 --- a/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj +++ b/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj @@ -5,7 +5,7 @@ - + From f378f9ba6adb1c3caa9e608c6659861ffcad7a99 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 08:14:09 -0500 Subject: [PATCH 158/429] Bump Microsoft.NET.Test.Sdk (#29377) Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/tutorials/nullable-reference-migration/finished/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj b/samples/snippets/csharp/tutorials/nullable-reference-migration/finished/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj index 5652e9709b241..4d49a49258569 100644 --- a/samples/snippets/csharp/tutorials/nullable-reference-migration/finished/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj +++ b/samples/snippets/csharp/tutorials/nullable-reference-migration/finished/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj @@ -9,7 +9,7 @@ - + From 3a8d1888a0699aabf046eeb0de3d3e3b9e3f12d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 08:14:21 -0500 Subject: [PATCH 159/429] Bump xunit.runner.visualstudio in /samples/snippets/csharp/xunit-test (#29378) Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.4.3 to 2.4.5. - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/commits) --- updated-dependencies: - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- samples/snippets/csharp/xunit-test/xunit-test.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/xunit-test/xunit-test.csproj b/samples/snippets/csharp/xunit-test/xunit-test.csproj index 8fe4752762477..5393b5d278d32 100644 --- a/samples/snippets/csharp/xunit-test/xunit-test.csproj +++ b/samples/snippets/csharp/xunit-test/xunit-test.csproj @@ -7,7 +7,7 @@ - + From 26d703bedb4ac3d01b99c5c0438e5c6bd39e311b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 08:14:37 -0500 Subject: [PATCH 160/429] Bump Microsoft.NET.Test.Sdk (#29379) Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../StringLibraryTest/StringLibraryTest.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/getting_started/ClassLibraryProjects/StringLibraryTest/StringLibraryTest.csproj b/samples/snippets/csharp/getting_started/ClassLibraryProjects/StringLibraryTest/StringLibraryTest.csproj index 9696d08df9e45..3cc42e3bad7a9 100644 --- a/samples/snippets/csharp/getting_started/ClassLibraryProjects/StringLibraryTest/StringLibraryTest.csproj +++ b/samples/snippets/csharp/getting_started/ClassLibraryProjects/StringLibraryTest/StringLibraryTest.csproj @@ -7,7 +7,7 @@ - + From ade9ba6c210f0af68faeebe884246f6bfb2f388a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 13:17:59 +0000 Subject: [PATCH 161/429] Bump Microsoft.Data.Sqlite (#29373) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../RegularExpressionSample/RegularExpressionSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/RegularExpressionSample/RegularExpressionSample.csproj b/samples/snippets/standard/data/sqlite/RegularExpressionSample/RegularExpressionSample.csproj index f5bd5f415c954..75bf478412334 100644 --- a/samples/snippets/standard/data/sqlite/RegularExpressionSample/RegularExpressionSample.csproj +++ b/samples/snippets/standard/data/sqlite/RegularExpressionSample/RegularExpressionSample.csproj @@ -6,7 +6,7 @@ - + From 4d61b4fc77fb7fae7b4b274e25fa60a08d2fc547 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 13:18:07 +0000 Subject: [PATCH 162/429] Bump Microsoft.Data.Sqlite (#29367) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../data/sqlite/DateAndTimeSample/DateAndTimeSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/DateAndTimeSample/DateAndTimeSample.csproj b/samples/snippets/standard/data/sqlite/DateAndTimeSample/DateAndTimeSample.csproj index f5bd5f415c954..75bf478412334 100644 --- a/samples/snippets/standard/data/sqlite/DateAndTimeSample/DateAndTimeSample.csproj +++ b/samples/snippets/standard/data/sqlite/DateAndTimeSample/DateAndTimeSample.csproj @@ -6,7 +6,7 @@ - + From 45267ab68177388579ea779c2b5d2ae0424e1feb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 13:18:20 +0000 Subject: [PATCH 163/429] Bump Microsoft.Data.Sqlite (#29380) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../standard/data/sqlite/DirtyReadSample/DirtyReadSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/DirtyReadSample/DirtyReadSample.csproj b/samples/snippets/standard/data/sqlite/DirtyReadSample/DirtyReadSample.csproj index f5bd5f415c954..75bf478412334 100644 --- a/samples/snippets/standard/data/sqlite/DirtyReadSample/DirtyReadSample.csproj +++ b/samples/snippets/standard/data/sqlite/DirtyReadSample/DirtyReadSample.csproj @@ -6,7 +6,7 @@ - + From 2291f599a7da5eb3994936ef27b3a17ff3f16d3d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 06:18:28 -0700 Subject: [PATCH 164/429] Bump Microsoft.Data.Sqlite (#29371) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../data/sqlite/ExtensionsSample/ExtensionsSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/ExtensionsSample/ExtensionsSample.csproj b/samples/snippets/standard/data/sqlite/ExtensionsSample/ExtensionsSample.csproj index a2da71d01aff9..caebe6bf9b98a 100644 --- a/samples/snippets/standard/data/sqlite/ExtensionsSample/ExtensionsSample.csproj +++ b/samples/snippets/standard/data/sqlite/ExtensionsSample/ExtensionsSample.csproj @@ -6,7 +6,7 @@ - + From 10ea7824078f0f9690bc4c544c8ff86d2ee192fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 13:19:41 +0000 Subject: [PATCH 165/429] Bump Microsoft.Data.Sqlite.Core (#29407) Bumps [Microsoft.Data.Sqlite.Core](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite.Core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../sqlite/SqliteProviderSample/SqliteProviderSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/SqliteProviderSample/SqliteProviderSample.csproj b/samples/snippets/standard/data/sqlite/SqliteProviderSample/SqliteProviderSample.csproj index f6d6366dc5eaa..308da9ec38506 100644 --- a/samples/snippets/standard/data/sqlite/SqliteProviderSample/SqliteProviderSample.csproj +++ b/samples/snippets/standard/data/sqlite/SqliteProviderSample/SqliteProviderSample.csproj @@ -6,7 +6,7 @@ - + From 8dc7a112862aba7a557e1a32dbacc30724603ab6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 08:21:24 -0500 Subject: [PATCH 166/429] Bump xunit.runner.visualstudio (#29366) Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.4.3 to 2.4.5. - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/commits) --- updated-dependencies: - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../csharp/PrimeService.Tests/PrimeService.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj b/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj index b2acd0cd8d863..8a802b08a30d7 100644 --- a/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj +++ b/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj @@ -8,7 +8,7 @@ - + From 3570ee341a86e7aa568696caabcd19786357bcaa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 13:21:40 +0000 Subject: [PATCH 167/429] Bump Microsoft.NET.Test.Sdk (#29405) Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../csharp/before/unit-testing-best-practices-before.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj b/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj index 76c42feedc616..c0a453354bdd2 100644 --- a/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj +++ b/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj @@ -7,7 +7,7 @@ - + From 759a65c0b78aaf73c08023a78153f6c150aa2a08 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 13:24:47 +0000 Subject: [PATCH 168/429] Bump Microsoft.Data.Sqlite (#29409) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../DeferredTransactionSample/DeferredTransactionSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/DeferredTransactionSample/DeferredTransactionSample.csproj b/samples/snippets/standard/data/sqlite/DeferredTransactionSample/DeferredTransactionSample.csproj index 3ecb8e989d5d2..1d3a6ce0cf5aa 100644 --- a/samples/snippets/standard/data/sqlite/DeferredTransactionSample/DeferredTransactionSample.csproj +++ b/samples/snippets/standard/data/sqlite/DeferredTransactionSample/DeferredTransactionSample.csproj @@ -6,7 +6,7 @@ - + From 1c9abf921d41f378df360d1731db52243b336337 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 13:26:28 +0000 Subject: [PATCH 169/429] Bump Microsoft.NET.Test.Sdk (#29376) Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../csharp/PrimeService.Tests/PrimeService.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/core/testing/unit-testing-using-nunit/csharp/PrimeService.Tests/PrimeService.Tests.csproj b/samples/snippets/core/testing/unit-testing-using-nunit/csharp/PrimeService.Tests/PrimeService.Tests.csproj index feb4d1e950aa2..6be33aea898eb 100644 --- a/samples/snippets/core/testing/unit-testing-using-nunit/csharp/PrimeService.Tests/PrimeService.Tests.csproj +++ b/samples/snippets/core/testing/unit-testing-using-nunit/csharp/PrimeService.Tests/PrimeService.Tests.csproj @@ -10,7 +10,7 @@ - + From 15632d5a5624637fbb6639164680b40e9be5299d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 06:32:07 -0700 Subject: [PATCH 170/429] Bump Microsoft.Data.Sqlite (#29406) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../standard/data/sqlite/BackupSample/BackupSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/BackupSample/BackupSample.csproj b/samples/snippets/standard/data/sqlite/BackupSample/BackupSample.csproj index f5bd5f415c954..75bf478412334 100644 --- a/samples/snippets/standard/data/sqlite/BackupSample/BackupSample.csproj +++ b/samples/snippets/standard/data/sqlite/BackupSample/BackupSample.csproj @@ -6,7 +6,7 @@ - + From 8b3be395bcd067a2443ca2528fccad1afbf04a66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 06:38:35 -0700 Subject: [PATCH 171/429] Bump Microsoft.Data.Sqlite (#29368) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../sqlite/ScalarFunctionSample/ScalarFunctionSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/ScalarFunctionSample/ScalarFunctionSample.csproj b/samples/snippets/standard/data/sqlite/ScalarFunctionSample/ScalarFunctionSample.csproj index f5bd5f415c954..75bf478412334 100644 --- a/samples/snippets/standard/data/sqlite/ScalarFunctionSample/ScalarFunctionSample.csproj +++ b/samples/snippets/standard/data/sqlite/ScalarFunctionSample/ScalarFunctionSample.csproj @@ -6,7 +6,7 @@ - + From 8dd5547a14c9a967e6f5759024ba89d2ad575f66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 08:40:41 -0500 Subject: [PATCH 172/429] Bump Microsoft.EntityFrameworkCore (#29411) Bumps [Microsoft.EntityFrameworkCore](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.EntityFrameworkCore dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../configuration/custom-provider/custom-provider.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/extensions/snippets/configuration/custom-provider/custom-provider.csproj b/docs/core/extensions/snippets/configuration/custom-provider/custom-provider.csproj index 3733db187a1e5..772d4a8c3c3d5 100644 --- a/docs/core/extensions/snippets/configuration/custom-provider/custom-provider.csproj +++ b/docs/core/extensions/snippets/configuration/custom-provider/custom-provider.csproj @@ -9,7 +9,7 @@ - + From 45a43444d43e62b79194d2280cdabafe67c62405 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 13:44:22 +0000 Subject: [PATCH 173/429] Bump Microsoft.EntityFrameworkCore.SqlServer (#29408) Bumps [Microsoft.EntityFrameworkCore.SqlServer](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.EntityFrameworkCore.SqlServer dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../configuration/custom-provider/custom-provider.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/extensions/snippets/configuration/custom-provider/custom-provider.csproj b/docs/core/extensions/snippets/configuration/custom-provider/custom-provider.csproj index 772d4a8c3c3d5..091ac8f332179 100644 --- a/docs/core/extensions/snippets/configuration/custom-provider/custom-provider.csproj +++ b/docs/core/extensions/snippets/configuration/custom-provider/custom-provider.csproj @@ -11,7 +11,7 @@ - + From bf737601c5d5fd7ceac0a5901586884c6cf4e564 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:04:48 -0500 Subject: [PATCH 174/429] Bump Microsoft.NET.Test.Sdk (#29381) Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../vb/PrimeService.Tests/PrimeService.Tests.vbproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/core/testing/unit-testing-vb-nunit/vb/PrimeService.Tests/PrimeService.Tests.vbproj b/samples/snippets/core/testing/unit-testing-vb-nunit/vb/PrimeService.Tests/PrimeService.Tests.vbproj index 16f87e253edf8..e565251346481 100644 --- a/samples/snippets/core/testing/unit-testing-vb-nunit/vb/PrimeService.Tests/PrimeService.Tests.vbproj +++ b/samples/snippets/core/testing/unit-testing-vb-nunit/vb/PrimeService.Tests/PrimeService.Tests.vbproj @@ -10,7 +10,7 @@ - + From 2c1cf1bcd40098b21b632f606234614dc0374c17 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:05:08 -0500 Subject: [PATCH 175/429] Bump Microsoft.Data.Sqlite (#29382) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../standard/data/sqlite/DapperSample/DapperSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/DapperSample/DapperSample.csproj b/samples/snippets/standard/data/sqlite/DapperSample/DapperSample.csproj index b6958a22c791a..8ea9dee6eb07d 100644 --- a/samples/snippets/standard/data/sqlite/DapperSample/DapperSample.csproj +++ b/samples/snippets/standard/data/sqlite/DapperSample/DapperSample.csproj @@ -7,7 +7,7 @@ - + From c0377eb31d2e5c4f58ea546afb2a453045785cfd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:05:16 -0500 Subject: [PATCH 176/429] Bump Microsoft.Data.Sqlite.Core (#29383) Bumps [Microsoft.Data.Sqlite.Core](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite.Core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../data/sqlite/SystemLibrarySample/SystemLibrarySample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/SystemLibrarySample/SystemLibrarySample.csproj b/samples/snippets/standard/data/sqlite/SystemLibrarySample/SystemLibrarySample.csproj index 954e0dd9d42f5..35bf35cabfc0c 100644 --- a/samples/snippets/standard/data/sqlite/SystemLibrarySample/SystemLibrarySample.csproj +++ b/samples/snippets/standard/data/sqlite/SystemLibrarySample/SystemLibrarySample.csproj @@ -6,7 +6,7 @@ - + From 13bb6464cffe953d819e16207bea1ae5fc18e3db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:07:02 -0500 Subject: [PATCH 177/429] Bump Microsoft.Data.Sqlite (#29384) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../standard/data/sqlite/InteropSample/InteropSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/InteropSample/InteropSample.csproj b/samples/snippets/standard/data/sqlite/InteropSample/InteropSample.csproj index f5bd5f415c954..75bf478412334 100644 --- a/samples/snippets/standard/data/sqlite/InteropSample/InteropSample.csproj +++ b/samples/snippets/standard/data/sqlite/InteropSample/InteropSample.csproj @@ -6,7 +6,7 @@ - + From c57928fc10b9f94a2c7f02fded141e267c4af39f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:07:09 -0500 Subject: [PATCH 178/429] Bump Microsoft.NET.Test.Sdk (#29385) Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../csharp/StringLibraryTest/StringLibraryTest.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibraryTest/StringLibraryTest.csproj b/docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibraryTest/StringLibraryTest.csproj index b9e5241c70b09..97c7516a112f4 100644 --- a/docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibraryTest/StringLibraryTest.csproj +++ b/docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibraryTest/StringLibraryTest.csproj @@ -7,7 +7,7 @@ - + From 74bc0c4e8c72257c3b2c3363c2bff9f9dfc982c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:07:17 -0500 Subject: [PATCH 179/429] Bump Microsoft.Data.Sqlite (#29386) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../standard/data/sqlite/AsyncSample/AsyncSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/AsyncSample/AsyncSample.csproj b/samples/snippets/standard/data/sqlite/AsyncSample/AsyncSample.csproj index f5bd5f415c954..75bf478412334 100644 --- a/samples/snippets/standard/data/sqlite/AsyncSample/AsyncSample.csproj +++ b/samples/snippets/standard/data/sqlite/AsyncSample/AsyncSample.csproj @@ -6,7 +6,7 @@ - + From 4f52ea89bd671a8fbd6f111b4f848981e456584b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:07:26 -0500 Subject: [PATCH 180/429] Bump Microsoft.Data.Sqlite (#29387) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../data/sqlite/HelloWorldSample/HelloWorldSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/HelloWorldSample/HelloWorldSample.csproj b/samples/snippets/standard/data/sqlite/HelloWorldSample/HelloWorldSample.csproj index f5bd5f415c954..75bf478412334 100644 --- a/samples/snippets/standard/data/sqlite/HelloWorldSample/HelloWorldSample.csproj +++ b/samples/snippets/standard/data/sqlite/HelloWorldSample/HelloWorldSample.csproj @@ -6,7 +6,7 @@ - + From 647f72810a734b558c2c100f678a65e780f6ac63 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:07:33 -0500 Subject: [PATCH 181/429] Bump Microsoft.Data.Sqlite (#29388) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../sqlite/ResultMetadataSample/ResultMetadataSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/ResultMetadataSample/ResultMetadataSample.csproj b/samples/snippets/standard/data/sqlite/ResultMetadataSample/ResultMetadataSample.csproj index f5bd5f415c954..75bf478412334 100644 --- a/samples/snippets/standard/data/sqlite/ResultMetadataSample/ResultMetadataSample.csproj +++ b/samples/snippets/standard/data/sqlite/ResultMetadataSample/ResultMetadataSample.csproj @@ -6,7 +6,7 @@ - + From b7ab0c0958c25ece9ed9f8020937fccaa80ec1db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:07:40 -0500 Subject: [PATCH 182/429] Bump Microsoft.NET.Test.Sdk (#29389) Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../csharp/after/unit-testing-best-practices-after.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj b/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj index 76c42feedc616..c0a453354bdd2 100644 --- a/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj +++ b/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj @@ -7,7 +7,7 @@ - + From 6bd282c383c440c5d3cd76c51cd1cb73c06081d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:07:45 -0500 Subject: [PATCH 183/429] Bump Microsoft.NET.Test.Sdk (#29390) Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../vb/PrimeService.Tests/PrimeService.Tests.vbproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/core/testing/unit-testing-vb-dotnet-test/vb/PrimeService.Tests/PrimeService.Tests.vbproj b/samples/snippets/core/testing/unit-testing-vb-dotnet-test/vb/PrimeService.Tests/PrimeService.Tests.vbproj index e33ffd1a46806..e48b1aacc6c05 100644 --- a/samples/snippets/core/testing/unit-testing-vb-dotnet-test/vb/PrimeService.Tests/PrimeService.Tests.vbproj +++ b/samples/snippets/core/testing/unit-testing-vb-dotnet-test/vb/PrimeService.Tests/PrimeService.Tests.vbproj @@ -7,7 +7,7 @@ - + From d149487d4324a9be46cbb8e48c7746e612ad848d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:07:57 -0500 Subject: [PATCH 184/429] Bump Microsoft.NET.Test.Sdk (#29391) Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/tutorials/nullable-reference-migration/start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj b/samples/snippets/csharp/tutorials/nullable-reference-migration/start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj index 0d93774bdebcb..a26bb62d73c60 100644 --- a/samples/snippets/csharp/tutorials/nullable-reference-migration/start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj +++ b/samples/snippets/csharp/tutorials/nullable-reference-migration/start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj @@ -6,7 +6,7 @@ - + From 492a76355bf8898635473c4614b23569e3646097 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:08:09 -0500 Subject: [PATCH 185/429] Bump Microsoft.Data.Sqlite (#29392) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../standard/data/sqlite/StreamingSample/StreamingSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/StreamingSample/StreamingSample.csproj b/samples/snippets/standard/data/sqlite/StreamingSample/StreamingSample.csproj index 4b0b9d5e0c5bf..7a81950de2e39 100644 --- a/samples/snippets/standard/data/sqlite/StreamingSample/StreamingSample.csproj +++ b/samples/snippets/standard/data/sqlite/StreamingSample/StreamingSample.csproj @@ -6,7 +6,7 @@ - + From 397e6b6045bbfd30cab887353707edd0ec0eb8df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:08:17 -0500 Subject: [PATCH 186/429] Bump xunit.runner.visualstudio (#29393) Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.4.3 to 2.4.5. - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/commits) --- updated-dependencies: - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../csharp/test/NewTypesTests/NewTypesTests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj b/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj index b0cc93b1c1b4d..813ab75702b76 100644 --- a/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj +++ b/samples/snippets/core/tutorials/testing-with-cli/csharp/test/NewTypesTests/NewTypesTests.csproj @@ -7,7 +7,7 @@ - + From 1b25d8e5f07f546c8616c7c2d7df82e14cc035d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:08:24 -0500 Subject: [PATCH 187/429] Bump Microsoft.NET.Test.Sdk (#29394) Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../csharp/PrimeService.Tests/PrimeService.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj b/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj index 8a802b08a30d7..48fa0c3e2aa24 100644 --- a/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj +++ b/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj @@ -6,7 +6,7 @@ - + From 9c178dee86ffb1fa1b4c343d93934dac54830217 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:08:32 -0500 Subject: [PATCH 188/429] Bump Microsoft.Data.Sqlite (#29395) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../AggregateFunctionSample/AggregateFunctionSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/AggregateFunctionSample/AggregateFunctionSample.csproj b/samples/snippets/standard/data/sqlite/AggregateFunctionSample/AggregateFunctionSample.csproj index f5bd5f415c954..75bf478412334 100644 --- a/samples/snippets/standard/data/sqlite/AggregateFunctionSample/AggregateFunctionSample.csproj +++ b/samples/snippets/standard/data/sqlite/AggregateFunctionSample/AggregateFunctionSample.csproj @@ -6,7 +6,7 @@ - + From 5a4f824c15d4681d19edb88a79e1d5fdc9af7743 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:14:17 -0500 Subject: [PATCH 189/429] Bump Microsoft.Data.Sqlite (#29396) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../standard/data/sqlite/BatchingSample/BatchingSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/BatchingSample/BatchingSample.csproj b/samples/snippets/standard/data/sqlite/BatchingSample/BatchingSample.csproj index f5bd5f415c954..75bf478412334 100644 --- a/samples/snippets/standard/data/sqlite/BatchingSample/BatchingSample.csproj +++ b/samples/snippets/standard/data/sqlite/BatchingSample/BatchingSample.csproj @@ -6,7 +6,7 @@ - + From d9fd884107ce2dcfb0f9c8cdc230512089b85e1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:14:26 -0500 Subject: [PATCH 190/429] Bump xunit.runner.visualstudio (#29397) Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.4.3 to 2.4.5. - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/commits) --- updated-dependencies: - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../csharp/before/unit-testing-best-practices-before.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj b/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj index c0a453354bdd2..fd722d9c4eae9 100644 --- a/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj +++ b/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj @@ -9,7 +9,7 @@ - + From 7fa46dc90b8668f47cc9160cc8a37a7d61f9984a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:14:37 -0500 Subject: [PATCH 191/429] Bump Microsoft.NET.Test.Sdk in /samples/snippets/csharp/xunit-test (#29398) Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- samples/snippets/csharp/xunit-test/xunit-test.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/xunit-test/xunit-test.csproj b/samples/snippets/csharp/xunit-test/xunit-test.csproj index 5393b5d278d32..1f2a3e13fe89a 100644 --- a/samples/snippets/csharp/xunit-test/xunit-test.csproj +++ b/samples/snippets/csharp/xunit-test/xunit-test.csproj @@ -5,7 +5,7 @@ - + From ee0f8360fdffb6346fbc53a5ad7002f22ff65fda Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:14:45 -0500 Subject: [PATCH 192/429] Bump xunit.runner.visualstudio (#29399) Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.4.3 to 2.4.5. - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/commits) --- updated-dependencies: - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/tutorials/nullable-reference-migration/finished/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj b/samples/snippets/csharp/tutorials/nullable-reference-migration/finished/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj index 4d49a49258569..e365e8eff7ff7 100644 --- a/samples/snippets/csharp/tutorials/nullable-reference-migration/finished/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj +++ b/samples/snippets/csharp/tutorials/nullable-reference-migration/finished/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj @@ -12,7 +12,7 @@ - + From 2fda87df104b994368c0da4a1fd8fb5e85660214 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:14:53 -0500 Subject: [PATCH 193/429] Bump Microsoft.Data.Sqlite (#29400) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.Data.Sqlite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../standard/data/sqlite/CollationSample/CollationSample.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/standard/data/sqlite/CollationSample/CollationSample.csproj b/samples/snippets/standard/data/sqlite/CollationSample/CollationSample.csproj index f5bd5f415c954..75bf478412334 100644 --- a/samples/snippets/standard/data/sqlite/CollationSample/CollationSample.csproj +++ b/samples/snippets/standard/data/sqlite/CollationSample/CollationSample.csproj @@ -6,7 +6,7 @@ - + From 1a845b72c31921fbd6e8ecfd0a62a67a7500f72c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:15:02 -0500 Subject: [PATCH 194/429] Bump xunit.runner.visualstudio (#29401) Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.4.3 to 2.4.5. - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/commits) --- updated-dependencies: - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/tutorials/nullable-reference-migration/start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj b/samples/snippets/csharp/tutorials/nullable-reference-migration/start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj index a26bb62d73c60..15f9bffc13f56 100644 --- a/samples/snippets/csharp/tutorials/nullable-reference-migration/start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj +++ b/samples/snippets/csharp/tutorials/nullable-reference-migration/start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj @@ -10,7 +10,7 @@ - + From 1c570546da75a8c86d8792045fd37c7b5e4a171e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:19:14 -0500 Subject: [PATCH 195/429] Bump xunit.runner.visualstudio (#29402) Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.4.3 to 2.4.5. - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/commits) --- updated-dependencies: - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../vb/PrimeService.Tests/PrimeService.Tests.vbproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/core/testing/unit-testing-vb-dotnet-test/vb/PrimeService.Tests/PrimeService.Tests.vbproj b/samples/snippets/core/testing/unit-testing-vb-dotnet-test/vb/PrimeService.Tests/PrimeService.Tests.vbproj index e48b1aacc6c05..119eab8fc6203 100644 --- a/samples/snippets/core/testing/unit-testing-vb-dotnet-test/vb/PrimeService.Tests/PrimeService.Tests.vbproj +++ b/samples/snippets/core/testing/unit-testing-vb-dotnet-test/vb/PrimeService.Tests/PrimeService.Tests.vbproj @@ -9,7 +9,7 @@ - + From 64241de18207f0a16572ff92755ce2b582426cf0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:19:23 -0500 Subject: [PATCH 196/429] Bump xunit.runner.visualstudio (#29403) Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.4.3 to 2.4.5. - [Release notes](https://github.com/xunit/visualstudio.xunit/releases) - [Commits](https://github.com/xunit/visualstudio.xunit/commits) --- updated-dependencies: - dependency-name: xunit.runner.visualstudio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../csharp/after/unit-testing-best-practices-after.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj b/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj index c0a453354bdd2..fd722d9c4eae9 100644 --- a/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj +++ b/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj @@ -9,7 +9,7 @@ - + From 93c1e93da9b525983801d3a5b9a0aad9ca2bd85c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 14:23:32 +0000 Subject: [PATCH 197/429] Bump Microsoft.EntityFrameworkCore.InMemory (#29410) Bumps [Microsoft.EntityFrameworkCore.InMemory](https://github.com/dotnet/efcore) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/efcore/releases) - [Commits](https://github.com/dotnet/efcore/compare/v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: Microsoft.EntityFrameworkCore.InMemory dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../configuration/custom-provider/custom-provider.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/extensions/snippets/configuration/custom-provider/custom-provider.csproj b/docs/core/extensions/snippets/configuration/custom-provider/custom-provider.csproj index 091ac8f332179..9cee8d88f729d 100644 --- a/docs/core/extensions/snippets/configuration/custom-provider/custom-provider.csproj +++ b/docs/core/extensions/snippets/configuration/custom-provider/custom-provider.csproj @@ -10,7 +10,7 @@ - + From d190f1597caaf45c24743de982ab886dc198ca33 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 May 2022 09:29:26 -0500 Subject: [PATCH 198/429] Bump Microsoft.NET.Test.Sdk (#29404) Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/microsoft/vstest/releases) - [Commits](https://github.com/microsoft/vstest/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: Microsoft.NET.Test.Sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../vb/StringLibraryTest/StringLibraryTest.vbproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/vb/StringLibraryTest/StringLibraryTest.vbproj b/docs/core/tutorials/snippets/library-with-visual-studio/vb/StringLibraryTest/StringLibraryTest.vbproj index 3d74b7f4b94da..47a32a45f1354 100644 --- a/docs/core/tutorials/snippets/library-with-visual-studio/vb/StringLibraryTest/StringLibraryTest.vbproj +++ b/docs/core/tutorials/snippets/library-with-visual-studio/vb/StringLibraryTest/StringLibraryTest.vbproj @@ -8,7 +8,7 @@ - + From 1c4da0207faa0e55662a2346483d39910f5a18a2 Mon Sep 17 00:00:00 2001 From: David Britch Date: Wed, 11 May 2022 16:14:22 +0100 Subject: [PATCH 199/429] Add .NET MAUI to hub page. (#29345) * Add .NET MAUI to hub page. * Update docs/index.yml Co-authored-by: Andy (Steve) De George <67293991+adegeo@users.noreply.github.com> Co-authored-by: Andy (Steve) De George <67293991+adegeo@users.noreply.github.com> --- docs/index.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/index.yml b/docs/index.yml index 33d52f0b36656..b74461bf9bd10 100644 --- a/docs/index.yml +++ b/docs/index.yml @@ -209,6 +209,8 @@ additionalContent: # Card - title: Mobile links: + - url: /dotnet/maui + text: .NET Multi-platform App UI (.NET MAUI) - url: /xamarin/xamarin-forms text: Xamarin.Forms - url: /xamarin/ios @@ -230,8 +232,10 @@ additionalContent: text: Windows Forms (.NET 5+) - url: /dotnet/desktop/winforms/?view=netframeworkdesktop-4.8&preserve-view=true text: Windows Forms (.NET Framework) + - url: /dotnet/maui + text: .NET Multi-platform App UI (.NET MAUI) - url: /xamarin/mac - text: Xamarin for macOS + text: Xamarin for macOS # Card - title: Microservices links: From 3aca56a8a85877fb63bd4c332448163b3507dc70 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 11 May 2022 08:14:37 -0700 Subject: [PATCH 200/429] Update package index with latest published versions (#29347) --- docs/azure/includes/dotnet-all.md | 32 +++++++++++++++---------------- docs/azure/includes/dotnet-new.md | 14 +++++++------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 980d7106d7da2..eb742c5703fb5 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -27,10 +27,10 @@ | Cosmos DB | NuGet [4.0.0-preview3](https://www.nuget.org/packages/Azure.Cosmos/4.0.0-preview3) | [docs](/dotnet/api/azure.cosmos) | GitHub [4.0.0-preview3](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/releases/4.0.0-preview3) | | Digital Twins - Core | NuGet [1.2.2](https://www.nuget.org/packages/Azure.DigitalTwins.Core/1.2.2)
      NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.DigitalTwins.Core/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/DigitalTwins.Core-readme) | GitHub [1.2.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.DigitalTwins.Core_1.2.2/sdk/digitaltwins/Azure.DigitalTwins.Core/)
      GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.DigitalTwins.Core_1.4.0-beta.1/sdk/digitaltwins/Azure.DigitalTwins.Core/) | | Document Translation | NuGet [1.0.0-beta.6](https://www.nuget.org/packages/Azure.AI.Translation.Document/1.0.0-beta.6) | [docs](/dotnet/api/overview/azure/AI.Translation.Document-readme-pre) | GitHub [1.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Translation.Document_1.0.0-beta.6/sdk/translation/Azure.AI.Translation.Document/) | -| Event Grid | NuGet [4.10.0](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.10.0)
      NuGet [4.11.0-beta.1](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.11.0-beta.1) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid-readme) | GitHub [4.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.10.0/sdk/eventgrid/Azure.Messaging.EventGrid/)
      GitHub [4.11.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.11.0-beta.1/sdk/eventgrid/Azure.Messaging.EventGrid/) | -| Event Hubs | NuGet [5.6.2](https://www.nuget.org/packages/Azure.Messaging.EventHubs/5.6.2)
      NuGet [5.7.0-beta.5](https://www.nuget.org/packages/Azure.Messaging.EventHubs/5.7.0-beta.5) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs-readme) | GitHub [5.6.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs_5.6.2/sdk/eventhub/Azure.Messaging.EventHubs/)
      GitHub [5.7.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs_5.7.0-beta.5/sdk/eventhub/Azure.Messaging.EventHubs/) | -| Event Hubs - Event Processor | NuGet [5.6.2](https://www.nuget.org/packages/Azure.Messaging.EventHubs.Processor/5.6.2)
      NuGet [5.7.0-beta.5](https://www.nuget.org/packages/Azure.Messaging.EventHubs.Processor/5.7.0-beta.5) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs.Processor-readme) | GitHub [5.6.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs.Processor_5.6.2/sdk/eventhub/Azure.Messaging.EventHubs.Processor/)
      GitHub [5.7.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs.Processor_5.7.0-beta.5/sdk/eventhub/Azure.Messaging.EventHubs.Processor/) | -| Extensions - Azure | NuGet [1.1.1](https://www.nuget.org/packages/Microsoft.Extensions.Azure/1.1.1) | | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Extensions.Azure_1.1.1/sdk/extensions/Microsoft.Extensions.Azure/) | +| Event Grid | NuGet [4.10.0](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.10.0)
      NuGet [4.11.0-beta.2](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.11.0-beta.2) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid-readme) | GitHub [4.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.10.0/sdk/eventgrid/Azure.Messaging.EventGrid/)
      GitHub [4.11.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.11.0-beta.2/sdk/eventgrid/Azure.Messaging.EventGrid/) | +| Event Hubs | NuGet [5.7.0](https://www.nuget.org/packages/Azure.Messaging.EventHubs/5.7.0) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs-readme) | GitHub [5.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs_5.7.0/sdk/eventhub/Azure.Messaging.EventHubs/) | +| Event Hubs - Event Processor | NuGet [5.7.0](https://www.nuget.org/packages/Azure.Messaging.EventHubs.Processor/5.7.0) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs.Processor-readme) | GitHub [5.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs.Processor_5.7.0/sdk/eventhub/Azure.Messaging.EventHubs.Processor/) | +| Extensions - Azure | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Extensions.Azure/1.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Extensions.Azure-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Extensions.Azure_1.2.0/sdk/extensions/Microsoft.Extensions.Azure/) | | FarmBeats | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Verticals.AgriFood.Farming/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Verticals.AgriFood.Farming-readme-pre) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Verticals.AgriFood.Farming_1.0.0-beta.1/sdk/farmbeats/Azure.Verticals.AgriFood.Farming/) | | Form Recognizer | NuGet [3.1.1](https://www.nuget.org/packages/Azure.AI.FormRecognizer/3.1.1)
      NuGet [4.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.FormRecognizer/4.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.FormRecognizer-readme) | GitHub [3.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.FormRecognizer_3.1.1/sdk/formrecognizer/Azure.AI.FormRecognizer/)
      GitHub [4.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.FormRecognizer_4.0.0-beta.3/sdk/formrecognizer/Azure.AI.FormRecognizer/) | | Identity | NuGet [1.6.0](https://www.nuget.org/packages/Azure.Identity/1.6.0) | [docs](/dotnet/api/overview/azure/Identity-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.6.0/sdk/identity/Azure.Identity/) | @@ -50,7 +50,7 @@ | Question Answering | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.QuestionAnswering-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.0.0/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.1.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/) | | Schema Registry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.1.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.1.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | | Schema Registry - Avro | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme-pre) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0-beta.8/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | -| Service Bus | NuGet [7.7.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.7.0)
      NuGet [7.8.0-beta.2](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0-beta.2) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.7.0/sdk/servicebus/Azure.Messaging.ServiceBus/)
      GitHub [7.8.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0-beta.2/sdk/servicebus/Azure.Messaging.ServiceBus/) | +| Service Bus | NuGet [7.8.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0/sdk/servicebus/Azure.Messaging.ServiceBus/) | | Storage - Blobs | NuGet [12.12.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0/sdk/storage/Azure.Storage.Blobs/) | | Storage - Blobs Batch | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0/sdk/storage/Azure.Storage.Blobs.Batch/) | | Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.25](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.25) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.25](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.25/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | @@ -63,7 +63,7 @@ | Synapse - Managed Private Endpoints | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.ManagedPrivateEndpoints/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.ManagedPrivateEndpoints-readme-pre) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.ManagedPrivateEndpoints_1.0.0-beta.5/sdk/synapse/Azure.Analytics.Synapse.ManagedPrivateEndpoints/) | | Synapse - Monitoring | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Analytics.Synapse.Monitoring/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Monitoring-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Monitoring_1.0.0-beta.3/sdk/synapse/Azure.Analytics.Synapse.Monitoring/) | | Synapse - Spark | NuGet [1.0.0-preview.8](https://www.nuget.org/packages/Azure.Analytics.Synapse.Spark/1.0.0-preview.8) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Spark-readme-pre) | GitHub [1.0.0-preview.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Spark_1.0.0-preview.8/sdk/synapse/Azure.Analytics.Synapse.Spark/) | -| Tables | NuGet [12.5.0](https://www.nuget.org/packages/Azure.Data.Tables/12.5.0) | [docs](/dotnet/api/overview/azure/Data.Tables-readme) | GitHub [12.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.5.0/sdk/tables/Azure.Data.Tables/) | +| Tables | NuGet [12.5.0](https://www.nuget.org/packages/Azure.Data.Tables/12.5.0)
      NuGet [12.6.0-beta.1](https://www.nuget.org/packages/Azure.Data.Tables/12.6.0-beta.1) | [docs](/dotnet/api/overview/azure/Data.Tables-readme) | GitHub [12.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.5.0/sdk/tables/Azure.Data.Tables/)
      GitHub [12.6.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.6.0-beta.1/sdk/tables/Azure.Data.Tables/) | | Text Analytics | NuGet [5.1.1](https://www.nuget.org/packages/Azure.AI.TextAnalytics/5.1.1)
      NuGet [5.2.0-beta.2](https://www.nuget.org/packages/Azure.AI.TextAnalytics/5.2.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.TextAnalytics-readme) | GitHub [5.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.TextAnalytics_5.1.1/sdk/textanalytics/Azure.AI.TextAnalytics/)
      GitHub [5.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.TextAnalytics_5.2.0-beta.2/sdk/textanalytics/Azure.AI.TextAnalytics/) | | Web PubSub | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Messaging.WebPubSub/1.0.0) | [docs](/dotnet/api/overview/azure/Messaging.WebPubSub-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.WebPubSub_1.0.0/sdk/webpubsub/Azure.Messaging.WebPubSub/) | | Azure Functions extension for Azure Table service | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Tables/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Tables-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Tables_1.0.0/sdk/tables/Microsoft.Azure.WebJobs.Extensions.Tables/) | @@ -72,7 +72,7 @@ | Core Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) | | WebJobs Extensions - Event Grid | NuGet [3.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.2.0/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | | WebJobs Extensions - Event Hubs | NuGet [5.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.1.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | -| WebJobs Extensions - Service Bus | NuGet [5.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.3.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | +| WebJobs Extensions - Service Bus | NuGet [5.4.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.4.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.4.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | | WebJobs Extensions - SignalR Service | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.8.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) | | WebJobs Extensions - Storage | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.1](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | | WebJobs Extensions - Web PubSub | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.2.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | @@ -256,14 +256,14 @@ | Document DB - Core | NuGet [2.18.0](https://www.nuget.org/packages/Microsoft.Azure.DocumentDB.Core/2.18.0) | | GitHub [2.18.0](https://github.com/Azure/azure-cosmos-dotnet-v2) | | Document Translation | NuGet [1.0.0-beta.6](https://www.nuget.org/packages/Azure.AI.Translation.Document/1.0.0-beta.6) | [docs](/dotnet/api/overview/azure/AI.Translation.Document-readme-pre) | GitHub [1.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Translation.Document_1.0.0-beta.6/sdk/translation/Azure.AI.Translation.Document/) | | Entity Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.EntitySearch/2.0.0) | | | -| Event Grid | NuGet [4.10.0](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.10.0)
      NuGet [4.11.0-beta.1](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.11.0-beta.1) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid-readme) | GitHub [4.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.10.0/sdk/eventgrid/Azure.Messaging.EventGrid/)
      GitHub [4.11.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.11.0-beta.1/sdk/eventgrid/Azure.Messaging.EventGrid/) | +| Event Grid | NuGet [4.10.0](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.10.0)
      NuGet [4.11.0-beta.2](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.11.0-beta.2) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid-readme) | GitHub [4.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.10.0/sdk/eventgrid/Azure.Messaging.EventGrid/)
      GitHub [4.11.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.11.0-beta.2/sdk/eventgrid/Azure.Messaging.EventGrid/) | | Event Grid | NuGet [3.2.1](https://www.nuget.org/packages/Microsoft.Azure.EventGrid/3.2.1) | [docs](/dotnet/api/overview/azure/eventgrid) | GitHub [3.2.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.EventGrid_3.2.1/sdk/eventgrid/Microsoft.Azure.EventGrid/) | -| Event Hubs | NuGet [5.6.2](https://www.nuget.org/packages/Azure.Messaging.EventHubs/5.6.2)
      NuGet [5.7.0-beta.5](https://www.nuget.org/packages/Azure.Messaging.EventHubs/5.7.0-beta.5) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs-readme) | GitHub [5.6.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs_5.6.2/sdk/eventhub/Azure.Messaging.EventHubs/)
      GitHub [5.7.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs_5.7.0-beta.5/sdk/eventhub/Azure.Messaging.EventHubs/) | +| Event Hubs | NuGet [5.7.0](https://www.nuget.org/packages/Azure.Messaging.EventHubs/5.7.0) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs-readme) | GitHub [5.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs_5.7.0/sdk/eventhub/Azure.Messaging.EventHubs/) | | Event Hubs | NuGet [4.3.2](https://www.nuget.org/packages/Microsoft.Azure.EventHubs/4.3.2) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.EventHubs-readme) | GitHub [4.3.2](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.EventHubs_4.3.2/sdk/eventhub/Microsoft.Azure.EventHubs/) | -| Event Hubs - Event Processor | NuGet [5.6.2](https://www.nuget.org/packages/Azure.Messaging.EventHubs.Processor/5.6.2)
      NuGet [5.7.0-beta.5](https://www.nuget.org/packages/Azure.Messaging.EventHubs.Processor/5.7.0-beta.5) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs.Processor-readme) | GitHub [5.6.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs.Processor_5.6.2/sdk/eventhub/Azure.Messaging.EventHubs.Processor/)
      GitHub [5.7.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs.Processor_5.7.0-beta.5/sdk/eventhub/Azure.Messaging.EventHubs.Processor/) | +| Event Hubs - Event Processor | NuGet [5.7.0](https://www.nuget.org/packages/Azure.Messaging.EventHubs.Processor/5.7.0) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs.Processor-readme) | GitHub [5.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs.Processor_5.7.0/sdk/eventhub/Azure.Messaging.EventHubs.Processor/) | | Event Hubs - Processor | NuGet [4.3.2](https://www.nuget.org/packages/Microsoft.Azure.EventHubs.Processor/4.3.2) | | GitHub [4.3.2](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.EventHubs.Processor_4.3.2/sdk/eventhub/Microsoft.Azure.EventHubs.Processor/) | | Event Hubs - Service Fabric Processor | NuGet [0.5.4](https://www.nuget.org/packages/Microsoft.Azure.EventHubs.ServiceFabricProcessor/0.5.4) | | GitHub [0.5.4](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.EventHubs.ServiceFabricProcessor_0.5.4/sdk/eventhub/Microsoft.Azure.EventHubs.ServiceFabricProcessor/) | -| Extensions - Azure | NuGet [1.1.1](https://www.nuget.org/packages/Microsoft.Extensions.Azure/1.1.1) | | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Extensions.Azure_1.1.1/sdk/extensions/Microsoft.Extensions.Azure/) | +| Extensions - Azure | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Extensions.Azure/1.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Extensions.Azure-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Extensions.Azure_1.2.0/sdk/extensions/Microsoft.Extensions.Azure/) | | Extensions - Caching Cosmos | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Cosmos/1.2.0) | | GitHub [1.2.0](https://github.com/Azure/Microsoft.Extensions.Caching.Cosmos/tree/v1.0.0-preview4) | | Face | NuGet [2.8.0-preview.2](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Vision.Face/2.8.0-preview.2) | | GitHub [2.8.0-preview.2](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Vision.Face_2.6.0-preview.1/sdk/cognitiveservices/Vision.Face) | | FarmBeats | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Verticals.AgriFood.Farming/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Verticals.AgriFood.Farming-readme-pre) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Verticals.AgriFood.Farming_1.0.0-beta.1/sdk/farmbeats/Azure.Verticals.AgriFood.Farming/) | @@ -346,7 +346,7 @@ | Search - Common | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search.Common/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search.Common_10.1.0/sdk/search/Microsoft.Azure.Search.Common/) | | Search - Data | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search.Data/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search.Data_10.1.0/sdk/search/Microsoft.Azure.Search.Data/) | | Search - Service | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search.Service/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search.Service_10.1.0/sdk/search/Microsoft.Azure.Search.Service/) | -| Service Bus | NuGet [7.7.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.7.0)
      NuGet [7.8.0-beta.2](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0-beta.2) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.7.0/sdk/servicebus/Azure.Messaging.ServiceBus/)
      GitHub [7.8.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0-beta.2/sdk/servicebus/Azure.Messaging.ServiceBus/) | +| Service Bus | NuGet [7.8.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0/sdk/servicebus/Azure.Messaging.ServiceBus/) | | Service Bus | NuGet [5.2.0](https://www.nuget.org/packages/Microsoft.Azure.ServiceBus/5.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.ServiceBus-readme) | GitHub [5.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.ServiceBus_5.2.0/sdk/servicebus/Microsoft.Azure.ServiceBus/) | | Service Bus - Message ID plugin | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.ServiceBus.MessageIdPlugin/2.0.0) | | | | SignalR | NuGet [1.17.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR/1.17.0) | | GitHub [1.17.0](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR) | @@ -379,7 +379,7 @@ | Synapse - Managed Private Endpoints | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.ManagedPrivateEndpoints/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.ManagedPrivateEndpoints-readme-pre) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.ManagedPrivateEndpoints_1.0.0-beta.5/sdk/synapse/Azure.Analytics.Synapse.ManagedPrivateEndpoints/) | | Synapse - Monitoring | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Analytics.Synapse.Monitoring/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Monitoring-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Monitoring_1.0.0-beta.3/sdk/synapse/Azure.Analytics.Synapse.Monitoring/) | | Synapse - Spark | NuGet [1.0.0-preview.8](https://www.nuget.org/packages/Azure.Analytics.Synapse.Spark/1.0.0-preview.8) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Spark-readme-pre) | GitHub [1.0.0-preview.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Spark_1.0.0-preview.8/sdk/synapse/Azure.Analytics.Synapse.Spark/) | -| Tables | NuGet [12.5.0](https://www.nuget.org/packages/Azure.Data.Tables/12.5.0) | [docs](/dotnet/api/overview/azure/Data.Tables-readme) | GitHub [12.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.5.0/sdk/tables/Azure.Data.Tables/) | +| Tables | NuGet [12.5.0](https://www.nuget.org/packages/Azure.Data.Tables/12.5.0)
      NuGet [12.6.0-beta.1](https://www.nuget.org/packages/Azure.Data.Tables/12.6.0-beta.1) | [docs](/dotnet/api/overview/azure/Data.Tables-readme) | GitHub [12.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.5.0/sdk/tables/Azure.Data.Tables/)
      GitHub [12.6.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.6.0-beta.1/sdk/tables/Azure.Data.Tables/) | | Tables | NuGet [2.0.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Table/2.0.0-preview) | | | | Tables | NuGet [2.1.2](https://www.nuget.org/packages/Microsoft.Azure.CosmosDB.Table/2.1.2) | | | | Template | NuGet [1.0.2-preview1](https://www.nuget.org/packages/Microsoft.Azure.Template/1.0.2-preview1) | | | @@ -461,7 +461,7 @@ | Core Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) | | WebJobs Extensions - Event Grid | NuGet [3.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.2.0/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | | WebJobs Extensions - Event Hubs | NuGet [5.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.1.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | -| WebJobs Extensions - Service Bus | NuGet [5.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.3.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | +| WebJobs Extensions - Service Bus | NuGet [5.4.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.4.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.4.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | | WebJobs Extensions - SignalR Service | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.8.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) | | WebJobs Extensions - Storage | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.1](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | | WebJobs Extensions - Web PubSub | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.2.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | @@ -519,7 +519,7 @@ | Management - Container Service Fluent | NuGet [1.38.1](https://www.nuget.org/packages/Microsoft.Azure.Management.ContainerService.Fluent/1.38.1) | | | | Management - Content Delivery Network | NuGet [6.1.0](https://www.nuget.org/packages/Microsoft.Azure.Management.Cdn/6.1.0) | | GitHub [6.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.Cdn_6.1.0/sdk/cdn/Microsoft.Azure.Management.Cdn/) | | Management - Content Delivery Network Fluent | NuGet [1.38.1](https://www.nuget.org/packages/Microsoft.Azure.Management.Cdn.Fluent/1.38.1) | [docs](/dotnet/api/overview/azure/cdn) | | -| Management - Cosmos DB | NuGet [3.3.0](https://www.nuget.org/packages/Microsoft.Azure.Management.CosmosDB/3.3.0)
      NuGet [3.5.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.CosmosDB/3.5.0-preview) | | GitHub [3.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.CosmosDB_3.3.0/sdk/cosmosdb/Microsoft.Azure.Management.CosmosDB/)
      GitHub [3.5.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.CosmosDB_3.5.0-preview/sdk/cosmosdb/Microsoft.Azure.Management.CosmosDB/) | +| Management - Cosmos DB | NuGet [3.3.0](https://www.nuget.org/packages/Microsoft.Azure.Management.CosmosDB/3.3.0)
      NuGet [3.7.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.CosmosDB/3.7.0-preview) | | GitHub [3.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.CosmosDB_3.3.0/sdk/cosmosdb/Microsoft.Azure.Management.CosmosDB/)
      GitHub [3.7.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.CosmosDB_3.7.0-preview/sdk/cosmosdb/Microsoft.Azure.Management.CosmosDB/) | | Management - Cosmos DB Fluent | NuGet [1.38.1](https://www.nuget.org/packages/Microsoft.Azure.Management.CosmosDB.Fluent/1.38.1) | | | | Management - Customer Insights | NuGet [0.9.1-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.CustomerInsights/0.9.1-preview) | | GitHub [0.9.1-preview](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/customer-insights/Microsoft.Azure.Management.CustomerInsights) | | Management - Customer Insights Fluent | NuGet [1.9.1-beta](https://www.nuget.org/packages/Microsoft.Azure.Management.CustomerInsights.Fluent/1.9.1-beta) | | | @@ -639,7 +639,7 @@ | Management - Synapse | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.Synapse/2.0.0)
      NuGet [2.6.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.Synapse/2.6.0-preview) | | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.Synapse_2.0.0/sdk/synapse/Microsoft.Azure.Management.Synapse/)
      GitHub [2.6.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.Synapse_2.6.0-preview/sdk/synapse/Microsoft.Azure.Management.Synapse/) | | Management - Traffic Manager | NuGet [2.5.4](https://www.nuget.org/packages/Microsoft.Azure.Management.TrafficManager/2.5.4) | | GitHub [2.5.4](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/trafficmanager/Microsoft.Azure.Management.TrafficManager) | | Management - Traffic Manager Fluent | NuGet [1.38.1](https://www.nuget.org/packages/Microsoft.Azure.Management.TrafficManager.Fluent/1.38.1) | [docs](/dotnet/api/overview/azure/traffic-manager) | | -| Management - WebSites | NuGet [3.1.2](https://www.nuget.org/packages/Microsoft.Azure.Management.WebSites/3.1.2) | | GitHub [3.1.2](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/websites/Microsoft.Azure.Management.WebSites) | +| Management - WebSites | NuGet [4.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.WebSites/4.0.0) | | GitHub [4.0.0](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/websites/Microsoft.Azure.Management.WebSites) | | Management - Workload Monitor | NuGet [1.0.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.WorkloadMonitor/1.0.0-preview) | | | | Microsoft.Azure.Management.RedisEnterprise | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.RedisEnterprise/2.0.0) | | | | Profiles hybrid_2018_03_01 Management - Authorization | NuGet [0.9.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.Profiles.hybrid_2018_03_01.Authorization/0.9.0-preview) | | | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index a84065eb8077f..f97b1ac93ab6b 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -27,10 +27,10 @@ | Cosmos DB | NuGet [4.0.0-preview3](https://www.nuget.org/packages/Azure.Cosmos/4.0.0-preview3) | [docs](/dotnet/api/azure.cosmos) | GitHub [4.0.0-preview3](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/releases/4.0.0-preview3) | | Digital Twins - Core | NuGet [1.2.2](https://www.nuget.org/packages/Azure.DigitalTwins.Core/1.2.2)
      NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.DigitalTwins.Core/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/DigitalTwins.Core-readme) | GitHub [1.2.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.DigitalTwins.Core_1.2.2/sdk/digitaltwins/Azure.DigitalTwins.Core/)
      GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.DigitalTwins.Core_1.4.0-beta.1/sdk/digitaltwins/Azure.DigitalTwins.Core/) | | Document Translation | NuGet [1.0.0-beta.6](https://www.nuget.org/packages/Azure.AI.Translation.Document/1.0.0-beta.6) | [docs](/dotnet/api/overview/azure/AI.Translation.Document-readme-pre) | GitHub [1.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Translation.Document_1.0.0-beta.6/sdk/translation/Azure.AI.Translation.Document/) | -| Event Grid | NuGet [4.10.0](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.10.0)
      NuGet [4.11.0-beta.1](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.11.0-beta.1) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid-readme) | GitHub [4.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.10.0/sdk/eventgrid/Azure.Messaging.EventGrid/)
      GitHub [4.11.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.11.0-beta.1/sdk/eventgrid/Azure.Messaging.EventGrid/) | -| Event Hubs | NuGet [5.6.2](https://www.nuget.org/packages/Azure.Messaging.EventHubs/5.6.2)
      NuGet [5.7.0-beta.5](https://www.nuget.org/packages/Azure.Messaging.EventHubs/5.7.0-beta.5) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs-readme) | GitHub [5.6.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs_5.6.2/sdk/eventhub/Azure.Messaging.EventHubs/)
      GitHub [5.7.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs_5.7.0-beta.5/sdk/eventhub/Azure.Messaging.EventHubs/) | -| Event Hubs - Event Processor | NuGet [5.6.2](https://www.nuget.org/packages/Azure.Messaging.EventHubs.Processor/5.6.2)
      NuGet [5.7.0-beta.5](https://www.nuget.org/packages/Azure.Messaging.EventHubs.Processor/5.7.0-beta.5) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs.Processor-readme) | GitHub [5.6.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs.Processor_5.6.2/sdk/eventhub/Azure.Messaging.EventHubs.Processor/)
      GitHub [5.7.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs.Processor_5.7.0-beta.5/sdk/eventhub/Azure.Messaging.EventHubs.Processor/) | -| Extensions - Azure | NuGet [1.1.1](https://www.nuget.org/packages/Microsoft.Extensions.Azure/1.1.1) | | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Extensions.Azure_1.1.1/sdk/extensions/Microsoft.Extensions.Azure/) | +| Event Grid | NuGet [4.10.0](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.10.0)
      NuGet [4.11.0-beta.2](https://www.nuget.org/packages/Azure.Messaging.EventGrid/4.11.0-beta.2) | [docs](/dotnet/api/overview/azure/Messaging.EventGrid-readme) | GitHub [4.10.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.10.0/sdk/eventgrid/Azure.Messaging.EventGrid/)
      GitHub [4.11.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventGrid_4.11.0-beta.2/sdk/eventgrid/Azure.Messaging.EventGrid/) | +| Event Hubs | NuGet [5.7.0](https://www.nuget.org/packages/Azure.Messaging.EventHubs/5.7.0) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs-readme) | GitHub [5.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs_5.7.0/sdk/eventhub/Azure.Messaging.EventHubs/) | +| Event Hubs - Event Processor | NuGet [5.7.0](https://www.nuget.org/packages/Azure.Messaging.EventHubs.Processor/5.7.0) | [docs](/dotnet/api/overview/azure/Messaging.EventHubs.Processor-readme) | GitHub [5.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.EventHubs.Processor_5.7.0/sdk/eventhub/Azure.Messaging.EventHubs.Processor/) | +| Extensions - Azure | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Extensions.Azure/1.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Extensions.Azure-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Extensions.Azure_1.2.0/sdk/extensions/Microsoft.Extensions.Azure/) | | FarmBeats | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Verticals.AgriFood.Farming/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Verticals.AgriFood.Farming-readme-pre) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Verticals.AgriFood.Farming_1.0.0-beta.1/sdk/farmbeats/Azure.Verticals.AgriFood.Farming/) | | Form Recognizer | NuGet [3.1.1](https://www.nuget.org/packages/Azure.AI.FormRecognizer/3.1.1)
      NuGet [4.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.FormRecognizer/4.0.0-beta.3) | [docs](/dotnet/api/overview/azure/AI.FormRecognizer-readme) | GitHub [3.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.FormRecognizer_3.1.1/sdk/formrecognizer/Azure.AI.FormRecognizer/)
      GitHub [4.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.FormRecognizer_4.0.0-beta.3/sdk/formrecognizer/Azure.AI.FormRecognizer/) | | Identity | NuGet [1.6.0](https://www.nuget.org/packages/Azure.Identity/1.6.0) | [docs](/dotnet/api/overview/azure/Identity-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Identity_1.6.0/sdk/identity/Azure.Identity/) | @@ -50,7 +50,7 @@ | Question Answering | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.QuestionAnswering-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.0.0/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.1.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/) | | Schema Registry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.1.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.1.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | | Schema Registry - Avro | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme-pre) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0-beta.8/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | -| Service Bus | NuGet [7.7.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.7.0)
      NuGet [7.8.0-beta.2](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0-beta.2) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.7.0/sdk/servicebus/Azure.Messaging.ServiceBus/)
      GitHub [7.8.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0-beta.2/sdk/servicebus/Azure.Messaging.ServiceBus/) | +| Service Bus | NuGet [7.8.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0/sdk/servicebus/Azure.Messaging.ServiceBus/) | | Storage - Blobs | NuGet [12.12.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0/sdk/storage/Azure.Storage.Blobs/) | | Storage - Blobs Batch | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0/sdk/storage/Azure.Storage.Blobs.Batch/) | | Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.25](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.25) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.25](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.25/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | @@ -63,7 +63,7 @@ | Synapse - Managed Private Endpoints | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Analytics.Synapse.ManagedPrivateEndpoints/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.ManagedPrivateEndpoints-readme-pre) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.ManagedPrivateEndpoints_1.0.0-beta.5/sdk/synapse/Azure.Analytics.Synapse.ManagedPrivateEndpoints/) | | Synapse - Monitoring | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Analytics.Synapse.Monitoring/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Monitoring-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Monitoring_1.0.0-beta.3/sdk/synapse/Azure.Analytics.Synapse.Monitoring/) | | Synapse - Spark | NuGet [1.0.0-preview.8](https://www.nuget.org/packages/Azure.Analytics.Synapse.Spark/1.0.0-preview.8) | [docs](/dotnet/api/overview/azure/Analytics.Synapse.Spark-readme-pre) | GitHub [1.0.0-preview.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Synapse.Spark_1.0.0-preview.8/sdk/synapse/Azure.Analytics.Synapse.Spark/) | -| Tables | NuGet [12.5.0](https://www.nuget.org/packages/Azure.Data.Tables/12.5.0) | [docs](/dotnet/api/overview/azure/Data.Tables-readme) | GitHub [12.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.5.0/sdk/tables/Azure.Data.Tables/) | +| Tables | NuGet [12.5.0](https://www.nuget.org/packages/Azure.Data.Tables/12.5.0)
      NuGet [12.6.0-beta.1](https://www.nuget.org/packages/Azure.Data.Tables/12.6.0-beta.1) | [docs](/dotnet/api/overview/azure/Data.Tables-readme) | GitHub [12.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.5.0/sdk/tables/Azure.Data.Tables/)
      GitHub [12.6.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.Tables_12.6.0-beta.1/sdk/tables/Azure.Data.Tables/) | | Text Analytics | NuGet [5.1.1](https://www.nuget.org/packages/Azure.AI.TextAnalytics/5.1.1)
      NuGet [5.2.0-beta.2](https://www.nuget.org/packages/Azure.AI.TextAnalytics/5.2.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.TextAnalytics-readme) | GitHub [5.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.TextAnalytics_5.1.1/sdk/textanalytics/Azure.AI.TextAnalytics/)
      GitHub [5.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.TextAnalytics_5.2.0-beta.2/sdk/textanalytics/Azure.AI.TextAnalytics/) | | Web PubSub | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Messaging.WebPubSub/1.0.0) | [docs](/dotnet/api/overview/azure/Messaging.WebPubSub-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.WebPubSub_1.0.0/sdk/webpubsub/Azure.Messaging.WebPubSub/) | | Azure Functions extension for Azure Table service | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Tables/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Tables-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Tables_1.0.0/sdk/tables/Microsoft.Azure.WebJobs.Extensions.Tables/) | @@ -72,7 +72,7 @@ | Core Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) | | WebJobs Extensions - Event Grid | NuGet [3.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.2.0/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | | WebJobs Extensions - Event Hubs | NuGet [5.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.1.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | -| WebJobs Extensions - Service Bus | NuGet [5.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.3.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | +| WebJobs Extensions - Service Bus | NuGet [5.4.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.4.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.4.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | | WebJobs Extensions - SignalR Service | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.8.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) | | WebJobs Extensions - Storage | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.1](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | | WebJobs Extensions - Web PubSub | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.2.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | From be457ab71ef3fe0caac6b500a609f437bf7685f1 Mon Sep 17 00:00:00 2001 From: "Andy (Steve) De George" <67293991+adegeo@users.noreply.github.com> Date: Wed, 11 May 2022 08:35:32 -0700 Subject: [PATCH 201/429] Add dependabot trigger for label (#29416) * Add dependabot trigger * Update .repoman.yml --- .repoman.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.repoman.yml b/.repoman.yml index d5152be3337f4..78eaf0dc20647 100644 --- a/.repoman.yml +++ b/.repoman.yml @@ -67,6 +67,13 @@ issues: # New issue opened, add Not Triaged - labels-add: [":watch: Not Triaged"] + # Dependabot opened issue, label it + - check: + - type: query + value: "Issue.user.login == 'dependabot'" + pass: + - labels-add: ["dependencies"] + # If breaking change issue metadata, add labels - check: - type: metadata-comment From 5cede2b7372174fec26c22e210450c80125650e7 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 11 May 2022 08:37:47 -0700 Subject: [PATCH 202/429] Update package index with latest published versions (#29415) --- docs/azure/includes/dotnet-all.md | 4 ++-- docs/azure/includes/dotnet-new.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index eb742c5703fb5..a8700ab688661 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -7,7 +7,7 @@ | ASP.NET Extension - DataProtection Keys | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Keys/1.1.0) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Keys-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Keys_1.1.0/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Keys/) | | Attestation | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Security.Attestation/1.0.0) | [docs](/dotnet/api/overview/azure/Security.Attestation-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.Attestation_1.0.0/sdk/attestation/Azure.Security.Attestation/) | | Azure Mixed Reality Authentication | NuGet [1.0.1](https://www.nuget.org/packages/Azure.MixedReality.Authentication/1.0.1) | [docs](/dotnet/api/overview/azure/MixedReality.Authentication-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.Authentication_1.0.1/sdk/mixedreality/Azure.MixedReality.Authentication/) | -| Azure Object Anchors Conversion | NuGet [0.3.0-beta.2](https://www.nuget.org/packages/Azure.MixedReality.ObjectAnchors.Conversion/0.3.0-beta.2) | [docs](/dotnet/api/overview/azure/MixedReality.ObjectAnchors.Conversion-readme-pre) | GitHub [0.3.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.ObjectAnchors.Conversion_0.3.0-beta.2/sdk/objectanchors/Azure.MixedReality.ObjectAnchors.Conversion/) | +| Azure Object Anchors Conversion | NuGet [0.3.0-beta.3](https://www.nuget.org/packages/Azure.MixedReality.ObjectAnchors.Conversion/0.3.0-beta.3) | [docs](/dotnet/api/overview/azure/MixedReality.ObjectAnchors.Conversion-readme-pre) | GitHub [0.3.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.ObjectAnchors.Conversion_0.3.0-beta.3/sdk/objectanchors/Azure.MixedReality.ObjectAnchors.Conversion/) | | Azure Remote Rendering | NuGet [1.1.0](https://www.nuget.org/packages/Azure.MixedReality.RemoteRendering/1.1.0) | [docs](/dotnet/api/overview/azure/MixedReality.RemoteRendering-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.RemoteRendering_1.1.0/sdk/remoterendering/Azure.MixedReality.RemoteRendering/) | | Azure Video Analyzer Edge | NuGet [1.0.0-beta.6](https://www.nuget.org/packages/Azure.Media.VideoAnalyzer.Edge/1.0.0-beta.6) | [docs](/dotnet/api/overview/azure/Media.VideoAnalyzer.Edge-readme-pre) | GitHub [1.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Media.VideoAnalyzer.Edge_1.0.0-beta.6/sdk/videoanalyzer/Azure.Media.VideoAnalyzer.Edge/) | | Azure.Analytics.Purview.Administration | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Analytics.Purview.Administration/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Administration-readme-pre) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Administration_1.0.0-beta.1/sdk/purview/Azure.Analytics.Purview.Administration/) | @@ -191,7 +191,7 @@ | Azure Active Directory - App Authentication | NuGet [1.6.2](https://www.nuget.org/packages/Microsoft.Azure.Services.AppAuthentication/1.6.2) | | | | Azure Mixed Reality Authentication | NuGet [1.0.1](https://www.nuget.org/packages/Azure.MixedReality.Authentication/1.0.1) | [docs](/dotnet/api/overview/azure/MixedReality.Authentication-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.Authentication_1.0.1/sdk/mixedreality/Azure.MixedReality.Authentication/) | | Azure Monitor Exporter for OpenTelemetry | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.OpenTelemetry.Exporter.AzureMonitor/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.OpenTelemetry.Exporter.AzureMonitor-readme-pre) | | -| Azure Object Anchors Conversion | NuGet [0.3.0-beta.2](https://www.nuget.org/packages/Azure.MixedReality.ObjectAnchors.Conversion/0.3.0-beta.2) | [docs](/dotnet/api/overview/azure/MixedReality.ObjectAnchors.Conversion-readme-pre) | GitHub [0.3.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.ObjectAnchors.Conversion_0.3.0-beta.2/sdk/objectanchors/Azure.MixedReality.ObjectAnchors.Conversion/) | +| Azure Object Anchors Conversion | NuGet [0.3.0-beta.3](https://www.nuget.org/packages/Azure.MixedReality.ObjectAnchors.Conversion/0.3.0-beta.3) | [docs](/dotnet/api/overview/azure/MixedReality.ObjectAnchors.Conversion-readme-pre) | GitHub [0.3.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.ObjectAnchors.Conversion_0.3.0-beta.3/sdk/objectanchors/Azure.MixedReality.ObjectAnchors.Conversion/) | | Azure Remote Rendering | NuGet [1.1.0](https://www.nuget.org/packages/Azure.MixedReality.RemoteRendering/1.1.0) | [docs](/dotnet/api/overview/azure/MixedReality.RemoteRendering-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.RemoteRendering_1.1.0/sdk/remoterendering/Azure.MixedReality.RemoteRendering/) | | Azure Stack - Azure Consistent Storage | NuGet [0.10.8-preview](https://www.nuget.org/packages/Microsoft.AzureStack.AzureConsistentStorage/0.10.8-preview) | | | | Azure Video Analyzer Edge | NuGet [1.0.0-beta.6](https://www.nuget.org/packages/Azure.Media.VideoAnalyzer.Edge/1.0.0-beta.6) | [docs](/dotnet/api/overview/azure/Media.VideoAnalyzer.Edge-readme-pre) | GitHub [1.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Media.VideoAnalyzer.Edge_1.0.0-beta.6/sdk/videoanalyzer/Azure.Media.VideoAnalyzer.Edge/) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index f97b1ac93ab6b..ce6174403f24e 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -7,7 +7,7 @@ | ASP.NET Extension - DataProtection Keys | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Keys/1.1.0) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Keys-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Keys_1.1.0/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Keys/) | | Attestation | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Security.Attestation/1.0.0) | [docs](/dotnet/api/overview/azure/Security.Attestation-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.Attestation_1.0.0/sdk/attestation/Azure.Security.Attestation/) | | Azure Mixed Reality Authentication | NuGet [1.0.1](https://www.nuget.org/packages/Azure.MixedReality.Authentication/1.0.1) | [docs](/dotnet/api/overview/azure/MixedReality.Authentication-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.Authentication_1.0.1/sdk/mixedreality/Azure.MixedReality.Authentication/) | -| Azure Object Anchors Conversion | NuGet [0.3.0-beta.2](https://www.nuget.org/packages/Azure.MixedReality.ObjectAnchors.Conversion/0.3.0-beta.2) | [docs](/dotnet/api/overview/azure/MixedReality.ObjectAnchors.Conversion-readme-pre) | GitHub [0.3.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.ObjectAnchors.Conversion_0.3.0-beta.2/sdk/objectanchors/Azure.MixedReality.ObjectAnchors.Conversion/) | +| Azure Object Anchors Conversion | NuGet [0.3.0-beta.3](https://www.nuget.org/packages/Azure.MixedReality.ObjectAnchors.Conversion/0.3.0-beta.3) | [docs](/dotnet/api/overview/azure/MixedReality.ObjectAnchors.Conversion-readme-pre) | GitHub [0.3.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.ObjectAnchors.Conversion_0.3.0-beta.3/sdk/objectanchors/Azure.MixedReality.ObjectAnchors.Conversion/) | | Azure Remote Rendering | NuGet [1.1.0](https://www.nuget.org/packages/Azure.MixedReality.RemoteRendering/1.1.0) | [docs](/dotnet/api/overview/azure/MixedReality.RemoteRendering-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.RemoteRendering_1.1.0/sdk/remoterendering/Azure.MixedReality.RemoteRendering/) | | Azure Video Analyzer Edge | NuGet [1.0.0-beta.6](https://www.nuget.org/packages/Azure.Media.VideoAnalyzer.Edge/1.0.0-beta.6) | [docs](/dotnet/api/overview/azure/Media.VideoAnalyzer.Edge-readme-pre) | GitHub [1.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Media.VideoAnalyzer.Edge_1.0.0-beta.6/sdk/videoanalyzer/Azure.Media.VideoAnalyzer.Edge/) | | Azure.Analytics.Purview.Administration | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Analytics.Purview.Administration/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Administration-readme-pre) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Administration_1.0.0-beta.1/sdk/purview/Azure.Analytics.Purview.Administration/) | From 31e9e10bed530ec6b22b47fdb8e17fa07301daa3 Mon Sep 17 00:00:00 2001 From: Andrei Tarutin Date: Wed, 11 May 2022 18:40:35 +0300 Subject: [PATCH 203/429] Update dumps.md (#29412) --- docs/core/diagnostics/dumps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/dumps.md b/docs/core/diagnostics/dumps.md index a9f48c6c178da..5092f76715db5 100644 --- a/docs/core/diagnostics/dumps.md +++ b/docs/core/diagnostics/dumps.md @@ -10,7 +10,7 @@ A dump is a file that contains a snapshot of the process at the time it was crea ## Collect dumps -Dumps can be collected in a variety of ways depending on which platform you are running your app on. +Dumps can be collected in a variety of ways depending which platform you are running your app on. > [!NOTE] > Collecting a dump inside a container requires PTRACE capability, which can be added via `--cap-add=SYS_PTRACE` or `--privileged`. From 12346065d603f57656b4760650fa461f16fa0ac5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laurent=20Kemp=C3=A9?= Date: Wed, 11 May 2022 17:45:16 +0200 Subject: [PATCH 204/429] Add missing space (#29361) * Add missing space * Update docs/core/sdk.md Co-authored-by: David Pine --- docs/core/sdk.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/sdk.md b/docs/core/sdk.md index 7f7723eb8435c..db281998d6a85 100644 --- a/docs/core/sdk.md +++ b/docs/core/sdk.md @@ -9,7 +9,7 @@ ms.technology: dotnet-cli The .NET SDK is a set of libraries and tools that allow developers to create .NET applications and libraries. It contains the following components that are used to build and run applications: - The [.NET CLI](tools/index.md). -- The .NET [runtime](introduction.md#sdk-and-runtimes)and [libraries](introduction.md#runtime-libraries). +- The [.NET runtime](introduction.md#sdk-and-runtimes) and [libraries](introduction.md#runtime-libraries). - The `dotnet` [driver](tools/index.md#driver). ## How to install the .NET SDK From 712f1fce6957d9870707f52793cca7b6e74336b6 Mon Sep 17 00:00:00 2001 From: Tom Dykstra Date: Wed, 11 May 2022 08:46:39 -0700 Subject: [PATCH 205/429] Copy is not reusing instance (#29314) --- .../serialization/system-text-json-configure-options.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/standard/serialization/system-text-json-configure-options.md b/docs/standard/serialization/system-text-json-configure-options.md index 6543fbf9dfa41..7fdc8362a5ace 100644 --- a/docs/standard/serialization/system-text-json-configure-options.md +++ b/docs/standard/serialization/system-text-json-configure-options.md @@ -1,7 +1,7 @@ --- title: How to instantiate JsonSerializerOptions with System.Text.Json description: "Learn how to avoid performance issues and how to use available constructors for JsonSerializerOptions instances." -ms.date: 03/28/2022 +ms.date: 05/06/2022 no-loc: [System.Text.Json, Newtonsoft.Json] zone_pivot_groups: dotnet-version dev_langs: @@ -46,6 +46,9 @@ There is a [JsonSerializerOptions constructor](xref:System.Text.Json.JsonSeriali :::code language="csharp" source="snippets/system-text-json-how-to-5-0/csharp/CopyOptions.cs" highlight="28"::: :::code language="vb" source="snippets/system-text-json-how-to-5-0/vb/CopyOptions.vb" ::: + +The metadata cache of the existing `JsonSerializerOptions` instance isn't copied to the new instance. So using this constructor is not the same as reusing an existing instance of `JsonSerializerOptions`. + ::: zone-end ::: zone pivot="dotnet-core-3-1" From 6c223e9b3bf80b20352e8fac5029fa927d5d4da9 Mon Sep 17 00:00:00 2001 From: Tom Dykstra Date: Wed, 11 May 2022 08:47:09 -0700 Subject: [PATCH 206/429] Update memory-t-usage-guidelines.md (#29321) --- docs/standard/memory-and-spans/memory-t-usage-guidelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standard/memory-and-spans/memory-t-usage-guidelines.md b/docs/standard/memory-and-spans/memory-t-usage-guidelines.md index f2e33ff6380ff..8cf0cf3e1dd6e 100644 --- a/docs/standard/memory-and-spans/memory-t-usage-guidelines.md +++ b/docs/standard/memory-and-spans/memory-t-usage-guidelines.md @@ -131,7 +131,7 @@ In fact, if we combine this rule and Rule #1, we can do even better and rewrite void DisplayBufferToConsole(ReadOnlySpan buffer); ``` -The `DisplayBufferToConsole` method now works with virtually every buffer type imaginable: `T[]`, storage allocated with [stackalloc](../../csharp/language-reference/operators/stackalloc.md), and so on. You can even pass a directly into it! +The `DisplayBufferToConsole` method now works with virtually every buffer type imaginable: `T[]`, storage allocated with [stackalloc](../../csharp/language-reference/operators/stackalloc.md), and so on. You can even pass a directly into it! For more information, see GitHub issue [dotnet/docs #25551](https://github.com/dotnet/docs/issues/25551). **Rule #3: If your method accepts Memory\ and returns `void`, you must not use the Memory\ instance after your method returns.** From 693f110758c778e04e5da8249b636f9586e18895 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Wed, 11 May 2022 08:49:20 -0700 Subject: [PATCH 207/429] explain acronym (#29340) --- docs/orleans/deployment/consul-deployment.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/orleans/deployment/consul-deployment.md b/docs/orleans/deployment/consul-deployment.md index c46a837d962e6..cf173f79931d6 100644 --- a/docs/orleans/deployment/consul-deployment.md +++ b/docs/orleans/deployment/consul-deployment.md @@ -18,7 +18,7 @@ As an [Orleans Membership Provider](../implementation/cluster-management.md), Co ## Set up Consul -There is very extensive documentation available on [Consul.io](https://www.consul.io) about setting up a stable Consul cluster and it doesn't make sense to repeat that here; however, for your convenience, we include this guide so you can very quickly get Orleans running with a standalone Consul agent. +There's extensive documentation available on [Consul.io](https://www.consul.io) about setting up a stable Consul cluster, and it doesn't make sense to repeat that here. However, for your convenience, we include this guide so you can quickly get Orleans running with a standalone Consul agent. 1. Create a folder to install Consul into, (for example _C:\Consul_). 1. Create a subfolder: _C:\Consul\Data_ (Consul will not create this if it doesn't exist). @@ -43,7 +43,7 @@ There is very extensive documentation available on [Consul.io](https://www.consu ## Configure Orleans -There is currently a known issue with the "Custom" membership provider _OrleansConfiguration.xml_ configuration file that will fail to parse correctly. For this reason, you have to provide a placeholder SystemStore in the XML and then configure the provider in code before starting the silo. +There is a known issue with the "Custom" membership provider _OrleansConfiguration.xml_ configuration file that will fail to parse correctly. For this reason, you have to provide a placeholder SystemStore in the XML and then configure the provider in code before starting the silo. **OrleansConfiguration.xml** @@ -101,11 +101,11 @@ Alternatively, you could configure the silo entirely in code. The client configu ## Client SDK -If you are interested in using Consul for your service discovery there are [Client SDKs](https://www.consul.io/downloads_tools.html) for most popular languages. +If you are interested in using Consul for your service discovery, there are [Client SDKs](https://www.consul.io/downloads_tools.html) for most popular languages. ## Implementation detail -The Membership Table Provider makes use of [Consul's Key/Value store](https://www.consul.io/intro/getting-started/kv.html) functionality with CAS. When each Silo starts it registers two KV entries, one which contains the Silo details and one which holds the last time the Silo reported it was alive (the latter refers to diagnostics "I am alive" entries and not to failure detection heartbeats which are sent directly between the silos and are not written into the table). All writes to the table are performed with CAS to provide concurrency control, as necessitated by Orleans's [Cluster Management Protocol](../implementation/cluster-management.md). +The Membership Table Provider makes use of [Consul's Key/Value store](https://www.consul.io/intro/getting-started/kv.html) functionality with Check-And-Set (CAS) operations. When each Silo starts, it registers two KV entries, one that contains the Silo details and one that holds the last time the Silo reported it was alive (the latter refers to diagnostics "I am alive" entries and not to failure detection heartbeats, which are sent directly between the silos and are not written into the table). All writes to the table are performed with CAS to provide concurrency control, as necessitated by Orleans's [Cluster Management Protocol](../implementation/cluster-management.md). Once the Silo is running, you can view these entries in your web browser at `http://localhost:8500/v1/kv/?keys`, which will display something like: From 448f32c9d30d0caaddc985de58b17c835f47dfa8 Mon Sep 17 00:00:00 2001 From: David Pine Date: Wed, 11 May 2022 10:50:56 -0500 Subject: [PATCH 208/429] Added xrefs to background service exception behavior (#29309) * fix-29251 * Added xrefs to background servce exception behavior * revert change --- .../core-libraries/6.0/hosting-exception-handling.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/core/compatibility/core-libraries/6.0/hosting-exception-handling.md b/docs/core/compatibility/core-libraries/6.0/hosting-exception-handling.md index a40b225751149..1fc7b5d692937 100644 --- a/docs/core/compatibility/core-libraries/6.0/hosting-exception-handling.md +++ b/docs/core/compatibility/core-libraries/6.0/hosting-exception-handling.md @@ -1,7 +1,7 @@ --- title: ".NET 6 breaking change: Exception handling in hosting" description: Learn about the .NET 6 breaking change in core .NET libraries where unhandled exceptions from a BackgroundService are logged instead of lost. -ms.date: 04/23/2021 +ms.date: 05/06/2022 --- # Unhandled exceptions from a BackgroundService @@ -23,7 +23,7 @@ The new behavior is consistent with the way other app models behave when unhandl ## Recommended action -If you prefer to keep the previous behavior of allowing an unhandled exception in a to not stop the Host, you can set `HostOptions.BackgroundServiceExceptionBehavior` to `BackgroundServiceExceptionBehavior.Ignore`. +If you prefer to keep the previous behavior of allowing an unhandled exception in a to not stop the Host, you can set to . ```csharp Host.CreateBuilder(args) From edfbeda34a27b93dea5258319abbd6f668d9a17e Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Wed, 11 May 2022 09:20:48 -0700 Subject: [PATCH 209/429] fix broken links (#29356) --- .../cloud-native/elastic-search-in-azure.md | 2 -- .../common-container-design-principles.md | 2 +- .../docker-apps-inner-loop-workflow.md | 2 +- .../orchestrate-high-scalability-availability.md | 2 +- .../grpc-for-wcf-developers/ws-protocols.md | 2 +- ...able-multi-container-microservice-applications.md | 2 +- .../docker-app-development-workflow.md | 5 ----- .../identify-migration-sequence.md | 2 +- docs/azure/migration/sql.md | 12 ++++++------ docs/azure/sdk/authentication-additional-methods.md | 6 +++--- docs/core/diagnostics/debug-highcpu.md | 2 +- docs/core/diagnostics/dotnet-trace.md | 2 +- docs/framework/wcf/whats-new.md | 2 +- docs/orleans/streaming/index.md | 2 +- docs/standard/analyzers/portability-analyzer.md | 2 +- docs/whats-new/dotnet-docs-2022-03-01.md | 2 +- docs/whats-new/dotnet-docs-2022-04-01.md | 2 +- 17 files changed, 22 insertions(+), 29 deletions(-) diff --git a/docs/architecture/cloud-native/elastic-search-in-azure.md b/docs/architecture/cloud-native/elastic-search-in-azure.md index 7d1d32b7f82e0..5a7208c9acf1f 100644 --- a/docs/architecture/cloud-native/elastic-search-in-azure.md +++ b/docs/architecture/cloud-native/elastic-search-in-azure.md @@ -55,8 +55,6 @@ This chapter presented a detailed look at data in cloud-native systems. We start - [Getting Behind the 9-Ball: Cosmos DB Consistency Levels Explained](https://blog.jeremylikness.com/blog/2018-03-23_getting-behind-the-9ball-cosmosdb-consistency-levels/) -- [Exploring the different types of NoSQL Databases Part II](https://www.3pillarglobal.com/insights/exploring-the-different-types-of-nosql-databases) - - [On RDBMS, NoSQL and NewSQL databases. Interview with John Ryan](http://www.odbms.org/blog/2018/03/on-rdbms-nosql-and-newsql-databases-interview-with-john-ryan/) - [SQL vs NoSQL vs NewSQL: The Full Comparison](https://www.xenonstack.com/blog/sql-vs-nosql-vs-newsql/) diff --git a/docs/architecture/containerized-lifecycle/design-develop-containerized-apps/common-container-design-principles.md b/docs/architecture/containerized-lifecycle/design-develop-containerized-apps/common-container-design-principles.md index d68a0bba4a635..fe3018e0aeca1 100644 --- a/docs/architecture/containerized-lifecycle/design-develop-containerized-apps/common-container-design-principles.md +++ b/docs/architecture/containerized-lifecycle/design-develop-containerized-apps/common-container-design-principles.md @@ -11,7 +11,7 @@ Ahead of getting into the development process there are a few basic concepts wor ## Container equals a process -In the container model, a container represents a single process. By defining a container as a process boundary, you begin to create the primitives used to scale, or batch-off, processes. When you run a Docker container, you'll see an [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) definition. This defines the process and the lifetime of the container. When the process completes, the container life-cycle ends. There are long-running processes, such as web servers, and short-lived processes, such as batch jobs, which might have been implemented as Microsoft Azure [WebJobs](https://azure.microsoft.com/documentation/articles/websites-webjobs-resources/). If the process fails, the container ends, and the orchestrator takes over. If the orchestrator was instructed to keep five instances running and one fails, the orchestrator will create another container to replace the failed process. In a batch job, the process is started with parameters. When the process completes, the work is complete. +In the container model, a container represents a single process. By defining a container as a process boundary, you begin to create the primitives used to scale, or batch-off, processes. When you run a Docker container, you'll see an [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) definition. This defines the process and the lifetime of the container. When the process completes, the container life-cycle ends. There are long-running processes, such as web servers, and short-lived processes, such as batch jobs, which might have been implemented as Microsoft Azure [WebJobs](https://github.com/Azure/azure-webjobs-sdk/wiki). If the process fails, the container ends, and the orchestrator takes over. If the orchestrator was instructed to keep five instances running and one fails, the orchestrator will create another container to replace the failed process. In a batch job, the process is started with parameters. When the process completes, the work is complete. You might find a scenario in which you want multiple processes running in a single container. In any architecture document, there's never a "never," nor is there always an "always." For scenarios requiring multiple processes, a common pattern is to use [Supervisor](http://supervisord.org/). diff --git a/docs/architecture/containerized-lifecycle/design-develop-containerized-apps/docker-apps-inner-loop-workflow.md b/docs/architecture/containerized-lifecycle/design-develop-containerized-apps/docker-apps-inner-loop-workflow.md index d83d72228f44c..dd82e6e022382 100644 --- a/docs/architecture/containerized-lifecycle/design-develop-containerized-apps/docker-apps-inner-loop-workflow.md +++ b/docs/architecture/containerized-lifecycle/design-develop-containerized-apps/docker-apps-inner-loop-workflow.md @@ -292,7 +292,7 @@ Visual Studio Code supports debugging Docker if you're using Node.js and other p You also can debug .NET or .NET Framework containers in Docker when using Visual Studio for Windows or Mac, as described in the next section. > [!TIP] -> To learn more about debugging Node.js Docker containers, see and [https://docs.microsoft.com/archive/blogs/user_ed/visual-studio-code-new-features-13-big-debugging-updates-rich-object-hover-conditional-breakpoints-node-js-mono-more](/archive/blogs/user_ed/visual-studio-code-new-features-13-big-debugging-updates-rich-object-hover-conditional-breakpoints-node-js-mono-more). +> To learn more about debugging Node.js Docker containers, see and [https://docs.microsoft.com/archive/blogs/user_ed/visual-studio-code-new-features-13-big-debugging-updates-rich-object-hover-conditional-breakpoints-node-js-mono-more](/archive/blogs/user_ed/visual-studio-code-new-features-13-big-debugging-updates-rich-object-hover-conditional-breakpoints-node-js-mono-more). > [!div class="step-by-step"] > [Previous](docker-apps-development-environment.md) diff --git a/docs/architecture/containerized-lifecycle/design-develop-containerized-apps/orchestrate-high-scalability-availability.md b/docs/architecture/containerized-lifecycle/design-develop-containerized-apps/orchestrate-high-scalability-availability.md index 6e9f1297e7537..067f7f66c0d19 100644 --- a/docs/architecture/containerized-lifecycle/design-develop-containerized-apps/orchestrate-high-scalability-availability.md +++ b/docs/architecture/containerized-lifecycle/design-develop-containerized-apps/orchestrate-high-scalability-availability.md @@ -59,7 +59,7 @@ Figure 4-7 shows the structure of a Kubernetes cluster where a master node (VM) ## Development environment for Kubernetes -In the development environment that [Docker announced in July 2018](https://blog.docker.com/2018/07/kubernetes-is-now-available-in-docker-desktop-stable-channel/), Kubernetes can also run in a single development machine (Windows 10 or macOS) by just installing [Docker Desktop](https://www.docker.com/products/docker-desktop). You can later deploy to the cloud (AKS) for further integration tests, as shown in figure 4-8. +In the development environment that Docker announced in July 2018, Kubernetes can also run in a single development machine (Windows 10 or macOS) by just installing [Docker Desktop](https://www.docker.com/products/docker-desktop). You can later deploy to the cloud (AKS) for further integration tests, as shown in figure 4-8. ![Diagram showing Kubernetes on a dev machine then deployed to AKS.](./media/orchestrate-high-scalability-availability/kubernetes-development-environment.png) diff --git a/docs/architecture/grpc-for-wcf-developers/ws-protocols.md b/docs/architecture/grpc-for-wcf-developers/ws-protocols.md index ca68124ae77b4..ad89213f1161b 100644 --- a/docs/architecture/grpc-for-wcf-developers/ws-protocols.md +++ b/docs/architecture/grpc-for-wcf-developers/ws-protocols.md @@ -15,7 +15,7 @@ One of the real benefits of working with Windows Communication Foundation (WCF) SOAP services expose Web Services Description Language (WSDL) schema documents with information such as data formats, operations, or communication options. You can use this schema to generate the client code. -gRPC works best when servers and clients are generated from the same `.proto` files, but a Server Reflection optional extension does provide a way to expose dynamic information from a running server. For more information, see the [Grpc.Reflection](https://nuget.org/packages/Grpc.Reflection) NuGet package and the [gRPC C# Server Reflection](https://github.com/grpc/grpc/blob/master/doc/csharp/server_reflection.md) article. +gRPC works best when servers and clients are generated from the same `.proto` files, but a Server Reflection optional extension does provide a way to expose dynamic information from a running server. For more information, see the [Grpc.Reflection](https://nuget.org/packages/Grpc.Reflection) NuGet package. The WS-Discovery protocol is used to locate services on a local network. gRPC services are located through DNS or a service registry such as Consul or ZooKeeper. diff --git a/docs/architecture/microservices/architect-microservice-container-applications/scalable-available-multi-container-microservice-applications.md b/docs/architecture/microservices/architect-microservice-container-applications/scalable-available-multi-container-microservice-applications.md index d2d758aa4c24f..fc65158d517ba 100644 --- a/docs/architecture/microservices/architect-microservice-container-applications/scalable-available-multi-container-microservice-applications.md +++ b/docs/architecture/microservices/architect-microservice-container-applications/scalable-available-multi-container-microservice-applications.md @@ -57,7 +57,7 @@ In figure 4-24, you can see the structure of a Kubernetes cluster where a master ## Development environment for Kubernetes -In the development environment, [Docker announced in July 2018](https://blog.docker.com/2018/07/kubernetes-is-now-available-in-docker-desktop-stable-channel/) that Kubernetes can also run in a single development machine (Windows 10 or macOS) by installing [Docker Desktop](https://docs.docker.com/install/). You can later deploy to the cloud (AKS) for further integration tests, as shown in figure 4-25. +In the development environment, Docker announced in July 2018 that Kubernetes can also run in a single development machine (Windows 10 or macOS) by installing [Docker Desktop](https://docs.docker.com/install/). You can later deploy to the cloud (AKS) for further integration tests, as shown in figure 4-25. ![Diagram showing Kubernetes on a dev machine then deployed to AKS](./media/scalable-available-multi-container-microservice-applications/kubernetes-development-environment.png) diff --git a/docs/architecture/microservices/docker-application-development-process/docker-app-development-workflow.md b/docs/architecture/microservices/docker-application-development-process/docker-app-development-workflow.md index be5bfc1e2831c..7ac05871a601b 100644 --- a/docs/architecture/microservices/docker-application-development-process/docker-app-development-workflow.md +++ b/docs/architecture/microservices/docker-application-development-process/docker-app-development-workflow.md @@ -546,11 +546,6 @@ The development process for Docker apps: 1 - Code your App, 2 - Write Dockerfile In addition, you need to perform step 2 (adding Docker support to your projects) just once. Therefore, the workflow is similar to your usual development tasks when using .NET for any other development. You need to know what is going on under the covers (the image build process, what base images you're using, deployment of containers, etc.) and sometimes you will also need to edit the Dockerfile or docker-compose.yml file to customize behaviors. But most of the work is greatly simplified by using Visual Studio, making you a lot more productive. -### Additional resources - -- **Debug apps in a local Docker container** \ - - ## Using PowerShell commands in a Dockerfile to set up Windows Containers [Windows Containers](/virtualization/windowscontainers/about/index) allow you to convert your existing Windows applications into Docker images and deploy them with the same tools as the rest of the Docker ecosystem. To use Windows Containers, you run PowerShell commands in the Dockerfile, as shown in the following example: diff --git a/docs/architecture/porting-existing-aspnet-apps/identify-migration-sequence.md b/docs/architecture/porting-existing-aspnet-apps/identify-migration-sequence.md index df929402fca3b..e997f93d8e63a 100644 --- a/docs/architecture/porting-existing-aspnet-apps/identify-migration-sequence.md +++ b/docs/architecture/porting-existing-aspnet-apps/identify-migration-sequence.md @@ -94,7 +94,7 @@ You can use the .NET Portability Analyzer to determine how compatible existing l - [Porting from .NET Framework to .NET Core](../../core/porting/index.md) - [The .NET Portability Analyzer](../../standard/analyzers/portability-analyzer.md) -- [Channel 9: A Brief Look at the .NET Portability Analyzer (Video)](https://channel9.msdn.com/Blogs/Seth-Juarez/A-Brief-Look-at-the-NET-Portability-Analyzer) +- [Channel 9: A Brief Look at the .NET Portability Analyzer (Video)](/shows/seth-juarez/brief-look-net-portability-analyzer) - [2 Years, 200 Apps: A .NET Core Migration at Scale (Video)](https://www.youtube.com/watch?v=C-2haqb60No) >[!div class="step-by-step"] diff --git a/docs/azure/migration/sql.md b/docs/azure/migration/sql.md index 1e928bb4bea9c..e0383821529b6 100644 --- a/docs/azure/migration/sql.md +++ b/docs/azure/migration/sql.md @@ -10,7 +10,7 @@ recommendations: false This article provides a brief outline of two options for migrating a SQL Server database to Azure. Azure has three primary options for migrating a production SQL Server database. This article focuses on the following two options: -1. [SQL Server on Azure VMs](/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-server-iaas-overview): A SQL Server instance installed and hosted on a Windows Virtual Machine running in Azure, also known as Infrastructure as a Service (IaaS). +1. [SQL Server on Azure VMs](/azure/azure-sql/virtual-machines/windows/sql-server-on-azure-vm-iaas-what-is-overview): A SQL Server instance installed and hosted on a Windows Virtual Machine running in Azure, also known as Infrastructure as a Service (IaaS). 2. [Azure SQL Database](/azure/sql-database/sql-database-technical-overview): A fully managed SQL database Azure service, also known as Platform as a Service (PaaS). Both come with pros and cons that you will need to evaluate before migrating. The third option is [Azure SQL Database managed instances](/azure/sql-database/sql-database-managed-instance). @@ -19,14 +19,14 @@ Both come with pros and cons that you will need to evaluate before migrating. Th The following migration guides will be useful, depending on which service you use: -* [Migrate a SQL Server database to SQL Server in an Azure VM](/azure/virtual-machines/windows/sql/virtual-machines-windows-migrate-sql) -* [Migrate your SQL Server database to Azure SQL Database](/azure/sql-database/sql-database-migrate-your-sql-server-database) +* [Migrate a SQL Server database to SQL Server in an Azure VM](/azure/azure-sql/migration-guides/virtual-machines/sql-server-to-sql-on-azure-vm-migration-overview) +* [Migrate your SQL Server database to Azure SQL Database](/azure/dms/tutorial-sql-server-to-azure-sql) Additionally, the following links to conceptual content will help you understand VMs better: -* [High availability and disaster recovery for SQL Server in Azure Virtual Machines](/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-high-availability-dr) -* [Performance best practices for SQL Server in Azure Virtual Machines](/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-performance) -* [Application Patterns and Development Strategies for SQL Server in Azure Virtual Machines](/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-server-app-patterns-dev-strategies) +* [High availability and disaster recovery for SQL Server in Azure Virtual Machines](/azure/azure-sql/virtual-machines/windows/business-continuity-high-availability-disaster-recovery-hadr-overview) +* [Performance best practices for SQL Server in Azure Virtual Machines](/azure/azure-sql/virtual-machines/windows/performance-guidelines-best-practices-checklist) +* [Application Patterns and Development Strategies for SQL Server in Azure Virtual Machines](/azure/azure-sql/virtual-machines/windows/application-patterns-development-strategies) And the following links will help you understand Azure SQL Database better: diff --git a/docs/azure/sdk/authentication-additional-methods.md b/docs/azure/sdk/authentication-additional-methods.md index 120b4f37296e2..7144fd0b8e4fc 100644 --- a/docs/azure/sdk/authentication-additional-methods.md +++ b/docs/azure/sdk/authentication-additional-methods.md @@ -8,17 +8,17 @@ ms.custom: devx-track-dotnet # Additional methods to authenticate to Azure resources from .NET apps -This article lists additional methods apps may use to authenticate to Azure resources. The methods on this page are less commonly used and when possible, it is encouraged to use one of the methods outlined in the [authenticating .NET apps to Azure using the Azure SDK overview](./authentication.md) article. +This article lists additional methods apps may use to authenticate to Azure resources. The methods on this page are less commonly used and when possible, it is encouraged to use one of the methods outlined in the [authenticating .NET apps to Azure using the Azure SDK overview](./authentication.md) article. ## Interactive browser authentication This method interactively authenticates an application through [`InteractiveBrowserCredential`](/dotnet/api/azure.identity.interactivebrowsercredential) by collecting user credentials in the default system. -Interactive browser authentication enables the application for all operations allowed by the interactive login credentials. As a result, if you are the owner or administrator of your subscription, your code has inherent access to most resources in that subscription without having to assign any specific permissions. For this reason, the use of interactive browser authentication is discouraged for anything but experimentation. +Interactive browser authentication enables the application for all operations allowed by the interactive login credentials. As a result, if you are the owner or administrator of your subscription, your code has inherent access to most resources in that subscription without having to assign any specific permissions. For this reason, the use of interactive browser authentication is discouraged for anything but experimentation. ### Example using InteractiveBrowserCredential -The following example demonstrates using an [`InteractiveBrowserCredential`](/dotnet/api/azure.identity.interactivebrowsercredential) to authenticate with the [`BlobServiceClient`](/dotnet/api/microsoft.azure.storage.blobs): +The following example demonstrates using an [`InteractiveBrowserCredential`](/dotnet/api/azure.identity.interactivebrowsercredential) to authenticate with the [`BlobServiceClient`](/dotnet/api/azure.storage.blobs.blobserviceclient): ```csharp using Azure.Identity; diff --git a/docs/core/diagnostics/debug-highcpu.md b/docs/core/diagnostics/debug-highcpu.md index 9d059b738dab0..eb0279538915d 100644 --- a/docs/core/diagnostics/debug-highcpu.md +++ b/docs/core/diagnostics/debug-highcpu.md @@ -168,7 +168,7 @@ This command generates a `flamegraph.svg` that you can view in the browser to in ### [Windows](#tab/windows) -On Windows, you can use the [dotnet-trace](dotnet-trace.md) tool as a profiler. Using the previous [sample debug target](/samples/dotnet/samples/diagnostic-scenarios), exercise the high CPU endpoint (`https://localhost:5001/api/diagscenario/highcpu/60000`) again. While it's running within the 1-minute request, use the `collect` command, with the `providers` option to specify the provider we want: [Microsoft-DotNetCore-SampleProfiler](/well-known-event-providers?msclkid=7a52966cc0d211ec96f7684d71861dc5#microsoft-dotnetcore-sampleprofiler-provider), to collect a trace of the app as follows: +On Windows, you can use the [dotnet-trace](dotnet-trace.md) tool as a profiler. Using the previous [sample debug target](/samples/dotnet/samples/diagnostic-scenarios), exercise the high CPU endpoint (`https://localhost:5001/api/diagscenario/highcpu/60000`) again. While it's running within the 1-minute request, use the `collect` command, with the `providers` option to specify the provider we want: [Microsoft-DotNetCore-SampleProfiler](/dotnet/core/diagnostics/well-known-event-providers#microsoft-dotnetcore-sampleprofiler-provider), to collect a trace of the app as follows: ```dotnetcli dotnet-trace collect -p 22884 --providers Microsoft-DotNETCore-SampleProfiler diff --git a/docs/core/diagnostics/dotnet-trace.md b/docs/core/diagnostics/dotnet-trace.md index 594c0a3b3708d..b55409e583c4a 100644 --- a/docs/core/diagnostics/dotnet-trace.md +++ b/docs/core/diagnostics/dotnet-trace.md @@ -203,7 +203,7 @@ dotnet-trace collect [--buffersize ] [--clreventlevel ] [-- > - If you see an error message similar to: `[ERROR] System.ComponentModel.Win32Exception (299): A 32 bit processes cannot access modules of a 64 bit process.`, you are trying to use a version of `dotnet-trace` that has mismatched bitness against the target process. Make sure to download the correct bitness of the tool in the [install](#install) link. -> - If you experience an unhandled exception while running `dotnet-trace collect`, this results in a broken trace. If finding the root cause of the exception is your priority, navigate to [Collect dumps on crash](/core/diagnostics/dumps#collect-dumps-on-crash). As a result of the crash in the program, the trace is truncated when the runtime rips apart to prevent breaking other parts of the program. Even though the trace is broken, you can still open it to see what happened leading up to the failure. However, it will be missing Rundown information (this happens at the end of a trace) so stacks might be unresolved (depending on what providers were turned on). Open the trace by executing PerfView with the `/ContinueOnError` flag at the command line. The logs will also contain the location the exception was fired. +> - If you experience an unhandled exception while running `dotnet-trace collect`, this results in a broken trace. If finding the root cause of the exception is your priority, navigate to [Collect dumps on crash](dumps.md#collect-dumps-on-crash). As a result of the crash in the program, the trace is truncated when the runtime rips apart to prevent breaking other parts of the program. Even though the trace is broken, you can still open it to see what happened leading up to the failure. However, it will be missing Rundown information (this happens at the end of a trace) so stacks might be unresolved (depending on what providers were turned on). Open the trace by executing PerfView with the `/ContinueOnError` flag at the command line. The logs will also contain the location the exception was fired. ## dotnet-trace convert diff --git a/docs/framework/wcf/whats-new.md b/docs/framework/wcf/whats-new.md index 2b714cf1d0522..f89e254849d42 100644 --- a/docs/framework/wcf/whats-new.md +++ b/docs/framework/wcf/whats-new.md @@ -118,7 +118,7 @@ Support has been added to allow for WCF services with Internationalized Domain N ## HttpClient -A new class called has been added to make working with HTTP requests much easier. For more info, see [Making apps social and connected with HTTP services](https://channel9.msdn.com/Events/BUILD/BUILD2011/PLAT-581T). +A new class called has been added to make working with HTTP requests much easier. For more info, see [Making apps social and connected with HTTP services](/events/build-build2011/plat-581t). ## Configuration IntelliSense diff --git a/docs/orleans/streaming/index.md b/docs/orleans/streaming/index.md index 6392a8f7707b7..32b9cb4f74db6 100644 --- a/docs/orleans/streaming/index.md +++ b/docs/orleans/streaming/index.md @@ -6,7 +6,7 @@ ms.date: 03/21/2022 # Streaming with Orleans -Orleans v.1.0.0 added support for streaming extensions to the programming model. Streaming extensions provide a set of abstractions and APIs that make thinking about and working with streams simpler and more robust. Streaming extensions allow developers to write reactive applications that operate on a sequence of events in a structured way. The extensibility model of stream providers makes the programming model compatible with and portable across a wide range of existing queuing technologies, such as [Event Hubs](https://azure.microsoft.com/services/event-hubs/), [ServiceBus](https://azure.microsoft.com/services/service-bus/), [Azure Queues](https://azure.microsoft.com/documentation/articles/storage-dotnet-how-to-use-queues/), and [Apache Kafka](https://kafka.apache.org/). There is no need to write special code or run dedicated processes to interact with such queues. +Orleans v.1.0.0 added support for streaming extensions to the programming model. Streaming extensions provide a set of abstractions and APIs that make thinking about and working with streams simpler and more robust. Streaming extensions allow developers to write reactive applications that operate on a sequence of events in a structured way. The extensibility model of stream providers makes the programming model compatible with and portable across a wide range of existing queuing technologies, such as [Event Hubs](https://azure.microsoft.com/services/event-hubs/), [ServiceBus](https://azure.microsoft.com/services/service-bus/), [Azure Queues](/azure/storage/queues/storage-dotnet-how-to-use-queues), and [Apache Kafka](https://kafka.apache.org/). There is no need to write special code or run dedicated processes to interact with such queues. ## Why should I care? diff --git a/docs/standard/analyzers/portability-analyzer.md b/docs/standard/analyzers/portability-analyzer.md index 48bee666ff5b2..1a4cec8c82ab5 100644 --- a/docs/standard/analyzers/portability-analyzer.md +++ b/docs/standard/analyzers/portability-analyzer.md @@ -107,4 +107,4 @@ The **Details** section of the report lists the APIs missing from any of the sel You may find a Missing Assemblies section in your report. This section contains a list of assemblies that are referenced by your analyzed assemblies and were not analyzed. If it's an assembly that you own, include it in the API portability analyzer run so that you can get a detailed, API-level portability report for it. If it's a third-party library, check if there is a newer version that supports your target platform, and consider moving to the newer version. Eventually, the list should include all the third-party assemblies that your app depends on that have a version supporting your target platform. -For more information on the .NET Portability Analyzer, visit the [GitHub documentation](https://github.com/Microsoft/dotnet-apiport#documentation) and [A Brief Look at the .NET Portability Analyzer](https://channel9.msdn.com/Blogs/Seth-Juarez/A-Brief-Look-at-the-NET-Portability-Analyzer) Channel 9 video. +For more information on the .NET Portability Analyzer, visit the [GitHub documentation](https://github.com/Microsoft/dotnet-apiport#documentation) and [A Brief Look at the .NET Portability Analyzer](/shows/seth-juarez/brief-look-net-portability-analyzer) video. diff --git a/docs/whats-new/dotnet-docs-2022-03-01.md b/docs/whats-new/dotnet-docs-2022-03-01.md index 52b420eafb674..b40409fcca530 100644 --- a/docs/whats-new/dotnet-docs-2022-03-01.md +++ b/docs/whats-new/dotnet-docs-2022-03-01.md @@ -79,7 +79,7 @@ The following people contributed to the .NET docs during this period. Thank you! - [BartoszKlonowski](https://github.com/BartoszKlonowski) - Bartosz Klonowski (2) - [paul-cheung](https://github.com/paul-cheung) - paul cheung (2) - [pbachmann](https://github.com/pbachmann) (2) -- [abhijithsundr](https://github.com/abhijithsundr) - Abhijith Sunder (1) +- Abhijith Sunder (1) - [alex-jitbit](https://github.com/alex-jitbit) - Alexander Yumashev (1) - [alexgordontlv](https://github.com/alexgordontlv) - Alexander Gordon (1) - [austindrenski](https://github.com/austindrenski) - Austin Drenski (1) diff --git a/docs/whats-new/dotnet-docs-2022-04-01.md b/docs/whats-new/dotnet-docs-2022-04-01.md index 6b669d1aca774..fef273b52c01d 100644 --- a/docs/whats-new/dotnet-docs-2022-04-01.md +++ b/docs/whats-new/dotnet-docs-2022-04-01.md @@ -92,7 +92,7 @@ The following people contributed to the .NET docs during this period. Thank you! - [omarjuul](https://github.com/omarjuul) - Camiel Egbers (1) - [pbachmann](https://github.com/pbachmann) (1) - [Prajwal-Koirala](https://github.com/Prajwal-Koirala) - Prajwal Koirala (1) -- [QHopp](https://github.com/QHopp) - QHopp (1) +- QHopp (1) - [renbaoshuo](https://github.com/renbaoshuo) - Baoshuo Ren (1) - [sameercarpenter](https://github.com/sameercarpenter) - Sameer Carpenter (1) - [serpent5](https://github.com/serpent5) - Kirk Larkin (1) From 9d8b671b2202fe2ca4f85218ce1eb2c2d0229364 Mon Sep 17 00:00:00 2001 From: Eideren Date: Wed, 11 May 2022 18:53:46 +0200 Subject: [PATCH 210/429] Fix lambda example in delegate operator page (#29364) --- docs/csharp/language-reference/operators/delegate-operator.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/operators/delegate-operator.md b/docs/csharp/language-reference/operators/delegate-operator.md index 8148fba0ad196..dbb850267b032 100644 --- a/docs/csharp/language-reference/operators/delegate-operator.md +++ b/docs/csharp/language-reference/operators/delegate-operator.md @@ -54,7 +54,7 @@ Action a = StaticFunction; Before C# 11, you'd need to use a lambda expression to reuse a single delegate object: ```csharp -Action a = () = StaticFunction; +Action a = () => StaticFunction(); ``` ## C# language specification From 65ef8fb4d20cd21f2dcf69d3138c2b5331c90086 Mon Sep 17 00:00:00 2001 From: Chet Husk Date: Wed, 11 May 2022 13:00:27 -0500 Subject: [PATCH 211/429] add docs for MSBuild breaking change around serialization of certain types (#29311) * add docs for MSBuild breaking change around serialization of certain custom types * Apply uncontroversial suggestions from code review Co-authored-by: Rainer Sigwald Co-authored-by: Forgind * add TOC sections * Apply suggestions from code review Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> * Update custom-serialization.md * Update custom-serialization.md Co-authored-by: Rainer Sigwald Co-authored-by: Forgind Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/compatibility/7.0.md | 3 +- .../sdk/7.0/custom-serialization.md | 32 +++++++++++++++++++ docs/core/compatibility/toc.yml | 6 +++- 3 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 docs/core/compatibility/sdk/7.0/custom-serialization.md diff --git a/docs/core/compatibility/7.0.md b/docs/core/compatibility/7.0.md index 90713ef94ba11..cbdee353e12a0 100644 --- a/docs/core/compatibility/7.0.md +++ b/docs/core/compatibility/7.0.md @@ -47,11 +47,12 @@ If you're migrating an app to .NET 7, the breaking changes listed here might aff | [AllowRenegotiation default is false](networking/7.0/allowrenegotiation-default.md) | ❌ | ❌ | Preview 3 | | [Custom ping payloads on Linux](networking/7.0/ping-custom-payload-linux.md) | ❌ | ✔️ | Preview 2 | -## SDK +## SDK and MSBuild | Title | Binary compatible | Source compatible | Introduced | | - | :-: | :-: | - | | [Version requirements for .NET 7 SDK](sdk/7.0/vs-msbuild-version.md) | ✔️ | ✔️ | 7.0.100 | +| [MSBuild serialization of custom types in .NET 7](sdk/7.0/custom-serialization.md) | ❌ | ❌ | 7.0.100 | ## Serialization diff --git a/docs/core/compatibility/sdk/7.0/custom-serialization.md b/docs/core/compatibility/sdk/7.0/custom-serialization.md new file mode 100644 index 0000000000000..52390cc8c62c3 --- /dev/null +++ b/docs/core/compatibility/sdk/7.0/custom-serialization.md @@ -0,0 +1,32 @@ +--- +title: "Breaking change: Serialization of custom types in .NET 7" +description: Learn about a breaking change in MSBuild for .NET 7 where serialization using BinaryFormatter of certain user-defined types is removed. +author: baronfel +ms.date: 05/06/2022 +--- + +# BinaryFormatter serialization of custom BuildEventArgs and ITaskItems removed for .NET 7 + +MSBuild in .NET 7 doesn't support serialization of custom `BuildEventArgs`-derived and `ITaskItem`-derived types via the `BinaryFormatter` serializer. + +## Version introduced + +MSBuild 17.4 (.NET SDK 7.0.100) + +## Old behavior + +MSBuild used BinaryFormatter to preserve custom types that derived from BuildEventArgs and ITaskItem across certain boundaries, most notably when running in a multi-process environment. + +## New behavior + +MSBuild will no longer support this mechanism, so code that used custom types derived from BuildEventArgs and ITaskItem may fail. + +## Reason for change + +BinaryFormatter was [made obsolete in .NET 5](https://github.com/dotnet/designs/blob/main/accepted/2020/better-obsoletion/binaryformatter-obsoletion.md). Per this plan, all first-party code in the dotnet GitHub organization must migrate away from its use by .NET 7. This change impacts user-exposed functionality of MSBuild. + +## Recommended action + +* Engage with the MSBuild team on [this GitHub discussion](https://github.com/dotnet/msbuild/discussions/7582) about your specific use cases and how you can migrate away from the `TranslateDotNet` mechanism. + +* Avoid returning custom derived types from tasks or when logging. diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml index d47aecf4d2088..c86c065a527d0 100644 --- a/docs/core/compatibility/toc.yml +++ b/docs/core/compatibility/toc.yml @@ -61,10 +61,12 @@ items: href: networking/7.0/allowrenegotiation-default.md - name: Custom ping payloads on Linux href: networking/7.0/ping-custom-payload-linux.md - - name: SDK + - name: SDK and MSBuild items: - name: Version requirements for .NET 7 SDK href: sdk/7.0/vs-msbuild-version.md + - name: Serialization of custom types in .NET 7 + href: sdk/7.0/custom-serialization.md - name: Serialization items: - name: Deserialize Version type with leading or trailing whitespace @@ -965,6 +967,8 @@ items: items: - name: Version requirements for .NET 7 SDK href: sdk/7.0/vs-msbuild-version.md + - name: Serialization of custom types in .NET 7 + href: sdk/7.0/custom-serialization.md - name: .NET 6 items: - name: -p option for `dotnet run` is deprecated From 245df5b72b7b35328391b275b0754ef352871e80 Mon Sep 17 00:00:00 2001 From: Tom Dykstra Date: Wed, 11 May 2022 11:53:29 -0700 Subject: [PATCH 212/429] update applies-to info (#29351) --- docs/core/tools/dotnet-add-reference.md | 2 +- docs/core/tools/dotnet-build-server.md | 2 +- docs/core/tools/dotnet-build.md | 4 ++-- docs/core/tools/dotnet-clean.md | 4 ++-- .../tools/dotnet-environment-variables.md | 12 +++++----- docs/core/tools/dotnet-help.md | 2 +- docs/core/tools/dotnet-list-package.md | 4 ++-- docs/core/tools/dotnet-list-reference.md | 2 +- docs/core/tools/dotnet-msbuild.md | 2 +- docs/core/tools/dotnet-new-list.md | 2 +- docs/core/tools/dotnet-new-uninstall.md | 2 +- docs/core/tools/dotnet-new-update.md | 2 +- docs/core/tools/dotnet-new.md | 2 +- docs/core/tools/dotnet-nuget-delete.md | 4 ++-- docs/core/tools/dotnet-nuget-locals.md | 2 +- docs/core/tools/dotnet-nuget-push.md | 7 +++--- docs/core/tools/dotnet-pack.md | 4 ++-- docs/core/tools/dotnet-publish.md | 14 ++++++------ docs/core/tools/dotnet-remove-package.md | 2 +- docs/core/tools/dotnet-remove-reference.md | 2 +- docs/core/tools/dotnet-restore.md | 2 +- docs/core/tools/dotnet-run.md | 4 ++-- docs/core/tools/dotnet-sln.md | 6 ++--- docs/core/tools/dotnet-store.md | 2 +- docs/core/tools/dotnet-tool-install.md | 4 +--- docs/core/tools/dotnet-tool-list.md | 4 +--- docs/core/tools/dotnet-tool-restore.md | 2 +- docs/core/tools/dotnet-tool-run.md | 2 +- docs/core/tools/dotnet-tool-uninstall.md | 4 +--- docs/core/tools/dotnet-tool-update.md | 4 +--- docs/core/tools/dotnet-vstest.md | 2 +- docs/core/tools/dotnet.md | 22 ++++--------------- 32 files changed, 56 insertions(+), 79 deletions(-) diff --git a/docs/core/tools/dotnet-add-reference.md b/docs/core/tools/dotnet-add-reference.md index e637269b5a25b..dd61fd0484bbd 100644 --- a/docs/core/tools/dotnet-add-reference.md +++ b/docs/core/tools/dotnet-add-reference.md @@ -5,7 +5,7 @@ ms.date: 02/14/2020 --- # dotnet add reference -**This article applies to:** ✔️ .NET Core 2.x SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-build-server.md b/docs/core/tools/dotnet-build-server.md index aaeecb96386a0..0359e60c62785 100644 --- a/docs/core/tools/dotnet-build-server.md +++ b/docs/core/tools/dotnet-build-server.md @@ -5,7 +5,7 @@ ms.date: 02/14/2020 --- # dotnet build-server -**This article applies to:** ✔️ .NET Core 2.1 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-build.md b/docs/core/tools/dotnet-build.md index 15e8c505e98c1..b2459604de0de 100644 --- a/docs/core/tools/dotnet-build.md +++ b/docs/core/tools/dotnet-build.md @@ -5,7 +5,7 @@ ms.date: 08/12/2021 --- # dotnet build -**This article applies to:** ✔️ .NET Core 2.x SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name @@ -110,7 +110,7 @@ The project or solution file to build. If a project or solution file isn't speci - **`--nologo`** - Doesn't display the startup banner or the copyright message. Available since .NET Core 3.0 SDK. + Doesn't display the startup banner or the copyright message. - **`--no-self-contained`** diff --git a/docs/core/tools/dotnet-clean.md b/docs/core/tools/dotnet-clean.md index fca9584cb9b05..1c8db764852ca 100644 --- a/docs/core/tools/dotnet-clean.md +++ b/docs/core/tools/dotnet-clean.md @@ -5,7 +5,7 @@ ms.date: 02/14/2020 --- # dotnet clean -**This article applies to:** ✔️ .NET Core 2.x SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name @@ -48,7 +48,7 @@ The MSBuild project or solution to clean. If a project or solution file is not s * **`--nologo`** - Doesn't display the startup banner or the copyright message. Available since .NET Core 3.0 SDK. + Doesn't display the startup banner or the copyright message. * **`-o|--output `** diff --git a/docs/core/tools/dotnet-environment-variables.md b/docs/core/tools/dotnet-environment-variables.md index 7f2e1d2f84acf..82b0d4f3e87ce 100644 --- a/docs/core/tools/dotnet-environment-variables.md +++ b/docs/core/tools/dotnet-environment-variables.md @@ -6,7 +6,7 @@ ms.date: 01/31/2022 # .NET environment variables -**This article applies to:** ✔️ .NET Core 2.1 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions In this article, you'll learn about the environment variables used by .NET SDK, .NET CLI, and .NET runtime. Some environment variables are used by the .NET runtime, while others are only used by the .NET SDK and .NET CLI. Some environment variables are used by all. @@ -221,11 +221,11 @@ Specifies whether the .NET runtime, shared framework, or SDK are resolved from t ### `DOTNET_ROLL_FORWARD` -Determines roll forward behavior. For more information, see the `--roll-forward` option earlier in this article. **Available starting with .NET Core 3.x.** +Determines roll forward behavior. For more information, see the `--roll-forward` option earlier in this article. ### `DOTNET_ROLL_FORWARD_TO_PRERELEASE` -If set to `1` (enabled), enables rolling forward to a pre-release version from a release version. By default (`0` - disabled), when a release version of .NET runtime is requested, roll-forward will only consider installed release versions. **Available starting with .NET Core 3.x.** +If set to `1` (enabled), enables rolling forward to a pre-release version from a release version. By default (`0` - disabled), when a release version of .NET runtime is requested, roll-forward will only consider installed release versions. For more information, see [Roll forward](../whats-new/dotnet-core-3-0.md#major-version-runtime-roll-forward). @@ -261,7 +261,7 @@ List of assemblies to load and execute startup hooks from. ### `DOTNET_BUNDLE_EXTRACT_BASE_DIR` -Specifies a directory to which a single-file application is extracted before it is executed. **Available starting with .NET Core 3.x.** +Specifies a directory to which a single-file application is extracted before it is executed. For more information, see [Single-file executables](../whats-new/dotnet-core-3-0.md#single-file-executables). @@ -283,8 +283,8 @@ Specifies the minimum number of hours between background downloads of advertisin Controls diagnostics tracing from the hosting components, such as `dotnet.exe`, `hostfxr`, and `hostpolicy`. * `COREHOST_TRACE=[0/1]` - default is `0` - tracing disabled. If set to `1`, diagnostics tracing is enabled. -* `COREHOST_TRACEFILE=` - has an effect only if tracing is enabled by setting `COREHOST_TRACE=1`. When set, the tracing information is written to the specified file; otherwise, the trace information is written to `stderr`. **Available starting with .NET Core 3.x.** -* `COREHOST_TRACE_VERBOSITY=[1/2/3/4]` - default is `4`. The setting is used only when tracing is enabled via `COREHOST_TRACE=1`. **Available starting with .NET Core 3.x.** +* `COREHOST_TRACEFILE=` - has an effect only if tracing is enabled by setting `COREHOST_TRACE=1`. When set, the tracing information is written to the specified file; otherwise, the trace information is written to `stderr`. +* `COREHOST_TRACE_VERBOSITY=[1/2/3/4]` - default is `4`. The setting is used only when tracing is enabled via `COREHOST_TRACE=1`. * `4` - all tracing information is written * `3` - only informational, warning, and error messages are written diff --git a/docs/core/tools/dotnet-help.md b/docs/core/tools/dotnet-help.md index 8a5085bad35bf..3203e6bfde992 100644 --- a/docs/core/tools/dotnet-help.md +++ b/docs/core/tools/dotnet-help.md @@ -5,7 +5,7 @@ ms.date: 02/14/2020 --- # dotnet help reference -**This article applies to:** ✔️ .NET Core 2.0 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-list-package.md b/docs/core/tools/dotnet-list-package.md index d97c2a65e30d1..ba2537f0ee10a 100644 --- a/docs/core/tools/dotnet-list-package.md +++ b/docs/core/tools/dotnet-list-package.md @@ -5,7 +5,7 @@ ms.date: 04/13/2022 --- # dotnet list package -**This article applies to:** ✔️ .NET Core 2.2 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name @@ -84,7 +84,7 @@ The project or solution file to operate on. If not specified, the command search - **`--framework `** - Displays only the packages applicable for the specified [target framework](../../standard/frameworks.md). To specify multiple frameworks, repeat the option multiple times. For example: `--framework netcoreapp2.2 --framework netstandard2.0`. + Displays only the packages applicable for the specified [target framework](../../standard/frameworks.md). To specify multiple frameworks, repeat the option multiple times. For example: `--framework net6.0 --framework netstandard2.0`. [!INCLUDE [help](../../../includes/cli-help.md)] diff --git a/docs/core/tools/dotnet-list-reference.md b/docs/core/tools/dotnet-list-reference.md index b5d91322975aa..904a3728e2e0d 100644 --- a/docs/core/tools/dotnet-list-reference.md +++ b/docs/core/tools/dotnet-list-reference.md @@ -5,7 +5,7 @@ ms.date: 02/14/2020 --- # dotnet list reference -**This article applies to:** ✔️ .NET Core 2.x SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-msbuild.md b/docs/core/tools/dotnet-msbuild.md index faaa8ad44628e..1b6ee51ccdb1f 100644 --- a/docs/core/tools/dotnet-msbuild.md +++ b/docs/core/tools/dotnet-msbuild.md @@ -5,7 +5,7 @@ ms.date: 02/14/2020 --- # dotnet msbuild -**This article applies to:** ✔️ .NET Core 2.x SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-new-list.md b/docs/core/tools/dotnet-new-list.md index 398e6326bec8a..0de061084085a 100644 --- a/docs/core/tools/dotnet-new-list.md +++ b/docs/core/tools/dotnet-new-list.md @@ -5,7 +5,7 @@ ms.date: 04/29/2021 --- # dotnet new list -**This article applies to:** ✔️ .NET Core 2.0 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-new-uninstall.md b/docs/core/tools/dotnet-new-uninstall.md index 3518e32a2516f..c081e7a61773b 100644 --- a/docs/core/tools/dotnet-new-uninstall.md +++ b/docs/core/tools/dotnet-new-uninstall.md @@ -5,7 +5,7 @@ ms.date: 04/29/2021 --- # dotnet new uninstall -**This article applies to:** ✔️ .NET Core 2.0 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-new-update.md b/docs/core/tools/dotnet-new-update.md index 51897bf5ce514..d54ecf42bd9d1 100644 --- a/docs/core/tools/dotnet-new-update.md +++ b/docs/core/tools/dotnet-new-update.md @@ -5,7 +5,7 @@ ms.date: 04/29/2021 --- # dotnet new update -**This article applies to:** ✔️ .NET Core 3.0 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-new.md b/docs/core/tools/dotnet-new.md index b6ba9b3b8002c..3287ba0b2b33a 100644 --- a/docs/core/tools/dotnet-new.md +++ b/docs/core/tools/dotnet-new.md @@ -6,7 +6,7 @@ ms.date: 09/04/2020 --- # dotnet new <TEMPLATE> -**This article applies to:** ✔️ .NET Core 2.0 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-nuget-delete.md b/docs/core/tools/dotnet-nuget-delete.md index bd805a9dc6bf2..476b262711983 100644 --- a/docs/core/tools/dotnet-nuget-delete.md +++ b/docs/core/tools/dotnet-nuget-delete.md @@ -6,7 +6,7 @@ ms.date: 06/26/2019 --- # dotnet nuget delete -**This article applies to:** ✔️ .NET Core 1.x SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name @@ -54,7 +54,7 @@ The `dotnet nuget delete` command deletes or unlists a package from the server. * **`--no-service-endpoint`** - Doesn't append "api/v2/package" to the source URL. Option available since .NET Core 2.1 SDK. + Doesn't append "api/v2/package" to the source URL. * **`--non-interactive`** diff --git a/docs/core/tools/dotnet-nuget-locals.md b/docs/core/tools/dotnet-nuget-locals.md index 385ed963797fc..27ea087a83f55 100644 --- a/docs/core/tools/dotnet-nuget-locals.md +++ b/docs/core/tools/dotnet-nuget-locals.md @@ -6,7 +6,7 @@ ms.date: 02/14/2020 --- # dotnet nuget locals -**This article applies to:** ✔️ .NET Core 2.x SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-nuget-push.md b/docs/core/tools/dotnet-nuget-push.md index 440223688664c..514bbdff51fae 100644 --- a/docs/core/tools/dotnet-nuget-push.md +++ b/docs/core/tools/dotnet-nuget-push.md @@ -6,7 +6,7 @@ ms.date: 02/14/2020 --- # dotnet nuget push -**This article applies to:** ✔️ .NET Core 2.x SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name @@ -62,8 +62,7 @@ The command pushes an existing package. It doesn't create a package. To create a - **`--no-service-endpoint`** - Doesn't append "api/v2/package" to the source URL. Option available since .NET Core 2.1 SDK. - + Doesn't append "api/v2/package" to the source URL. - **`-s|--source `** Specifies the server URL. NuGet identifies a UNC or local folder source and simply copies the file there instead of pushing it using HTTP. @@ -72,7 +71,7 @@ The command pushes an existing package. It doesn't create a package. To create a - **`--skip-duplicate`** - When pushing multiple packages to an HTTP(S) server, treats any 409 Conflict response as a warning so that the push can continue. Available since .NET Core 3.1 SDK. + When pushing multiple packages to an HTTP(S) server, treats any 409 Conflict response as a warning so that the push can continue. - **`-sk|--symbol-api-key `** diff --git a/docs/core/tools/dotnet-pack.md b/docs/core/tools/dotnet-pack.md index 2c226457eaf88..c1b591f4d6373 100644 --- a/docs/core/tools/dotnet-pack.md +++ b/docs/core/tools/dotnet-pack.md @@ -5,7 +5,7 @@ ms.date: 08/23/2021 --- # dotnet pack -**This article applies to:** ✔️ .NET Core 2.x SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name @@ -98,7 +98,7 @@ Web projects aren't packable by default. To override the default behavior, add t - **`--nologo`** - Doesn't display the startup banner or the copyright message. Available since .NET Core 3.0 SDK. + Doesn't display the startup banner or the copyright message. - **`-o|--output `** diff --git a/docs/core/tools/dotnet-publish.md b/docs/core/tools/dotnet-publish.md index 2b571dd07fe71..13c9edb8e8a73 100644 --- a/docs/core/tools/dotnet-publish.md +++ b/docs/core/tools/dotnet-publish.md @@ -5,7 +5,7 @@ ms.date: 12/02/2021 --- # dotnet publish -**This article applies to:** ✔️ .NET Core 2.1 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name @@ -50,7 +50,7 @@ Any parameters passed to `dotnet publish` are passed to MSBuild. The `-c` and `- The `dotnet publish` command accepts MSBuild options, such as `-p` for setting properties and `-l` to define a logger. For example, you can set an MSBuild property by using the format: `-p:=`. -You can also set publish-related properties by referring to a *.pubxml* file (available since .NET Core 3.1 SDK). For example: +You can also set publish-related properties by referring to a *.pubxml* file. For example: ```dotnetcli dotnet publish -p:PublishProfile=FolderProfile @@ -62,7 +62,7 @@ The following MSBuild properties change the output of `dotnet publish`. - `PublishReadyToRun` - Compiles application assemblies as ReadyToRun (R2R) format. R2R is a form of ahead-of-time (AOT) compilation. For more information, see [ReadyToRun images](../deploying/ready-to-run.md). Available since .NET Core 3.0 SDK. + Compiles application assemblies as ReadyToRun (R2R) format. R2R is a form of ahead-of-time (AOT) compilation. For more information, see [ReadyToRun images](../deploying/ready-to-run.md). To see warnings about missing dependencies that could cause runtime failures, use `PublishReadyToRunShowWarnings=true`. @@ -70,7 +70,7 @@ The following MSBuild properties change the output of `dotnet publish`. - `PublishSingleFile` - Packages the app into a platform-specific single-file executable. For more information about single-file publishing, see the [single-file bundler design document](https://github.com/dotnet/designs/blob/main/accepted/2020/single-file/design.md). Available since .NET Core 3.0 SDK. + Packages the app into a platform-specific single-file executable. For more information about single-file publishing, see the [single-file bundler design document](https://github.com/dotnet/designs/blob/main/accepted/2020/single-file/design.md). We recommend that you specify this option in the project file rather than on the command line. @@ -96,7 +96,7 @@ For more information, see the following resources: * `PROJECT` is the path and filename of a C#, F#, or Visual Basic project file, or the path to a directory that contains a C#, F#, or Visual Basic project file. If the directory is not specified, it defaults to the current directory. - * `SOLUTION` is the path and filename of a solution file (*.sln* extension), or the path to a directory that contains a solution file. If the directory is not specified, it defaults to the current directory. Available since .NET Core 3.0 SDK. + * `SOLUTION` is the path and filename of a solution file (*.sln* extension), or the path to a directory that contains a solution file. If the directory is not specified, it defaults to the current directory. ## Options @@ -132,7 +132,7 @@ For more information, see the following resources: - **`--nologo`** - Doesn't display the startup banner or the copyright message. Available since .NET Core 3.0 SDK. + Doesn't display the startup banner or the copyright message. - **`--no-restore`** @@ -172,7 +172,7 @@ For more information, see the following resources: - **`--no-self-contained`** - Equivalent to `--self-contained false`. Available since .NET Core 3.0 SDK. + Equivalent to `--self-contained false`. - **`--source `** diff --git a/docs/core/tools/dotnet-remove-package.md b/docs/core/tools/dotnet-remove-package.md index 2ec223cb8ebf9..ffef92ff169d0 100644 --- a/docs/core/tools/dotnet-remove-package.md +++ b/docs/core/tools/dotnet-remove-package.md @@ -5,7 +5,7 @@ ms.date: 02/14/2020 --- # dotnet remove package -**This article applies to:** ✔️ .NET Core 2.x SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-remove-reference.md b/docs/core/tools/dotnet-remove-reference.md index 694e78326b3d6..828f87d54151d 100644 --- a/docs/core/tools/dotnet-remove-reference.md +++ b/docs/core/tools/dotnet-remove-reference.md @@ -5,7 +5,7 @@ ms.date: 02/14/2020 --- # dotnet remove reference -**This article applies to:** ✔️ .NET Core 2.x SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-restore.md b/docs/core/tools/dotnet-restore.md index 4c687d22a290e..c7298a453c5e5 100644 --- a/docs/core/tools/dotnet-restore.md +++ b/docs/core/tools/dotnet-restore.md @@ -5,7 +5,7 @@ ms.date: 02/27/2020 --- # dotnet restore -**This article applies to:** ✔️ .NET Core 2.1 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-run.md b/docs/core/tools/dotnet-run.md index 7d97fe444f425..265f484aaba03 100644 --- a/docs/core/tools/dotnet-run.md +++ b/docs/core/tools/dotnet-run.md @@ -5,7 +5,7 @@ ms.date: 08/18/2021 --- # dotnet run -**This article applies to:** ✔️ .NET Core 2.x SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name @@ -122,7 +122,7 @@ To run the application, the `dotnet run` command resolves the dependencies of th - **`-r|--runtime `** - Specifies the target runtime to restore packages for. For a list of Runtime Identifiers (RIDs), see the [RID catalog](../rid-catalog.md). `-r` short option available since .NET Core 3.0 SDK. + Specifies the target runtime to restore packages for. For a list of Runtime Identifiers (RIDs), see the [RID catalog](../rid-catalog.md). [!INCLUDE [verbosity](../../../includes/cli-verbosity-minimal.md)] diff --git a/docs/core/tools/dotnet-sln.md b/docs/core/tools/dotnet-sln.md index 25e14cead8f11..71e898f49f614 100644 --- a/docs/core/tools/dotnet-sln.md +++ b/docs/core/tools/dotnet-sln.md @@ -5,7 +5,7 @@ ms.date: 12/07/2020 --- # dotnet sln -**This article applies to:** ✔️ .NET Core 2.x SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name @@ -100,11 +100,11 @@ dotnet sln add [-h|--help] - **`--in-root`** - Places the projects in the root of the solution, rather than creating a [solution folder](/visualstudio/ide/solutions-and-projects-in-visual-studio#solution-folder). Can't be used with `-s|--solution-folder`. Available since .NET Core 3.0 SDK. + Places the projects in the root of the solution, rather than creating a [solution folder](/visualstudio/ide/solutions-and-projects-in-visual-studio#solution-folder). Can't be used with `-s|--solution-folder`. - **`-s|--solution-folder `** - The destination [solution folder](/visualstudio/ide/solutions-and-projects-in-visual-studio#solution-folder) path to add the projects to. Can't be used with `--in-root`. Available since .NET Core 3.0 SDK. + The destination [solution folder](/visualstudio/ide/solutions-and-projects-in-visual-studio#solution-folder) path to add the projects to. Can't be used with `--in-root`. ### `remove` diff --git a/docs/core/tools/dotnet-store.md b/docs/core/tools/dotnet-store.md index 9018c958c77f7..5100078394e33 100644 --- a/docs/core/tools/dotnet-store.md +++ b/docs/core/tools/dotnet-store.md @@ -5,7 +5,7 @@ ms.date: 02/14/2020 --- # dotnet store -**This article applies to:** ✔️ .NET Core 2.x SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-tool-install.md b/docs/core/tools/dotnet-tool-install.md index 5ef9c87065b16..362d064b4f0e7 100644 --- a/docs/core/tools/dotnet-tool-install.md +++ b/docs/core/tools/dotnet-tool-install.md @@ -5,7 +5,7 @@ ms.date: 02/14/2020 --- # dotnet tool install -**This article applies to:** ✔️ .NET Core 2.1 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name @@ -43,8 +43,6 @@ The `dotnet tool install` command provides a way for you to install .NET tools o * To install a global tool in a custom location, use the `--tool-path` option. * To install a local tool, omit the `--global` and `--tool-path` options. -**Local tools are available starting with .NET Core SDK 3.0.** - Global tools are installed in the following directories by default when you specify the `-g` or `--global` option: | OS | Path | diff --git a/docs/core/tools/dotnet-tool-list.md b/docs/core/tools/dotnet-tool-list.md index c75d71ca33707..601b5ee9f3751 100644 --- a/docs/core/tools/dotnet-tool-list.md +++ b/docs/core/tools/dotnet-tool-list.md @@ -5,7 +5,7 @@ ms.date: 02/14/2020 --- # dotnet tool list -**This article applies to:** ✔️ .NET Core 2.1 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name @@ -33,8 +33,6 @@ The `dotnet tool list` command provides a way for you to list all .NET global, t * To list global tools installed in a custom location, use the `--tool-path` option. * To list local tools, use the `--local` option or omit the `--global`, `--tool-path`, and `--local` options. -**Local tools are available starting with .NET Core SDK 3.0.** - ## Options diff --git a/docs/core/tools/dotnet-tool-restore.md b/docs/core/tools/dotnet-tool-restore.md index de5b0c70f3c9d..ee5d96f36a593 100644 --- a/docs/core/tools/dotnet-tool-restore.md +++ b/docs/core/tools/dotnet-tool-restore.md @@ -5,7 +5,7 @@ ms.date: 02/14/2020 --- # dotnet tool restore -**This article applies to:** ✔️ .NET Core 3.0 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-tool-run.md b/docs/core/tools/dotnet-tool-run.md index fe17ffa466e5a..5cc58a660ca4e 100644 --- a/docs/core/tools/dotnet-tool-run.md +++ b/docs/core/tools/dotnet-tool-run.md @@ -5,7 +5,7 @@ ms.date: 02/14/2020 --- # dotnet tool run -**This article applies to:** ✔️ .NET Core 3.0 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name diff --git a/docs/core/tools/dotnet-tool-uninstall.md b/docs/core/tools/dotnet-tool-uninstall.md index a8e007ee18b20..50c6b185ca8d2 100644 --- a/docs/core/tools/dotnet-tool-uninstall.md +++ b/docs/core/tools/dotnet-tool-uninstall.md @@ -5,7 +5,7 @@ ms.date: 02/14/2020 --- # dotnet tool uninstall -**This article applies to:** ✔️ .NET Core 2.1 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name @@ -31,8 +31,6 @@ The `dotnet tool uninstall` command provides a way for you to uninstall .NET too * To uninstall a global tool that was installed in a custom location, use the `--tool-path` option. * To uninstall a local tool, omit the `--global` and `--tool-path` options. -**Local tools are available starting with .NET Core SDK 3.0.** - ## Arguments - **`PACKAGE_NAME`** diff --git a/docs/core/tools/dotnet-tool-update.md b/docs/core/tools/dotnet-tool-update.md index cbec40728ca6d..6d1988e74ef4e 100644 --- a/docs/core/tools/dotnet-tool-update.md +++ b/docs/core/tools/dotnet-tool-update.md @@ -5,7 +5,7 @@ ms.date: 07/08/2020 --- # dotnet tool update -**This article applies to:** ✔️ .NET Core 2.1 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name @@ -44,8 +44,6 @@ The `dotnet tool update` command provides a way for you to update .NET tools on * To update a global tool that was installed in a custom location, use the `--tool-path` option. * To update a local tool, use the `--local` option. -**Local tools are available starting with .NET Core SDK 3.0.** - ## Arguments - **`PACKAGE_ID`** diff --git a/docs/core/tools/dotnet-vstest.md b/docs/core/tools/dotnet-vstest.md index a232994f4a192..f8c3fe3052b3e 100644 --- a/docs/core/tools/dotnet-vstest.md +++ b/docs/core/tools/dotnet-vstest.md @@ -5,7 +5,7 @@ ms.date: 02/27/2020 --- # dotnet vstest -**This article applies to:** ✔️ .NET Core 2.1 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions > [!IMPORTANT] > The `dotnet vstest` command is superseded by `dotnet test`, which can now be used to run assemblies. See [dotnet test](dotnet-test.md). diff --git a/docs/core/tools/dotnet.md b/docs/core/tools/dotnet.md index 0e04f4073a9e3..99bd5b3b798cc 100644 --- a/docs/core/tools/dotnet.md +++ b/docs/core/tools/dotnet.md @@ -5,7 +5,7 @@ ms.date: 07/19/2021 --- # dotnet command -**This article applies to:** ✔️ .NET Core 2.1 SDK and later versions +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions ## Name @@ -40,8 +40,6 @@ dotnet exec [--additionalprobingpath] [--additional-deps ] [arguments] ``` -`--roll-forward` is available since .NET Core 3.x. Use `--roll-forward-on-no-candidate-fx` for .NET Core 2.x. - ## Description The `dotnet` command has two functions: @@ -124,7 +122,7 @@ The following options are available when `dotnet` runs an application. For examp Path to a *runtimeconfig.json* file. A *runtimeconfig.json* file is a configuration file that contains run-time settings. For more information, see [.NET runtime configuration settings](../runtime-config/index.md#runtimeconfigjson). -- **`--roll-forward `** **Available starting with .NET Core SDK 3.0.** +- **`--roll-forward `** ** Controls how roll forward is applied to the app. The `SETTING` can be one of the following values. If not specified, `Minor` is the default. @@ -139,18 +137,6 @@ The following options are available when `dotnet` runs an application. For examp Roll forward behavior can also be configured in a project file property, a runtime configuration file property, and an environment variable. For more information, see [Major-version runtime roll forward](../whats-new/dotnet-core-3-0.md#major-version-runtime-roll-forward). -- **`--roll-forward-on-no-candidate-fx `** **Available in .NET Core 2.x SDK.** - - Defines behavior when the required shared framework is not available. `N` can be: - - - `0` - Disable even minor version roll forward. - - `1` - Roll forward on minor version, but not on major version. This is the default behavior. - - `2` - Roll forward on minor and major versions. - - For more information, see [Roll forward](../whats-new/dotnet-core-2-1.md#roll-forward). - - Starting with .NET Core 3.0, this option is superseded by `--roll-forward`, and that option should be used instead. - - **`--fx-version `** Version of the .NET runtime to use to run the application. @@ -221,7 +207,7 @@ Command | Function ### Global, tool-path, and local tools commands -Tools are console applications that are installed from NuGet packages and are invoked from the command prompt. You can write tools yourself or install tools written by third parties. Tools are also known as global tools, tool-path tools, and local tools. For more information, see [.NET tools overview](global-tools.md). Global and tool-path tools are available starting with .NET Core SDK 2.1. Local tools are available starting with .NET Core SDK 3.0. +Tools are console applications that are installed from NuGet packages and are invoked from the command prompt. You can write tools yourself or install tools written by third parties. Tools are also known as global tools, tool-path tools, and local tools. For more information, see [.NET tools overview](global-tools.md). Command | Function --- | --- @@ -233,7 +219,7 @@ Command | Function ### Additional tools -Starting with .NET Core SDK 2.1.300, a number of tools that were available only on a per project basis using `DotnetCliToolReference` are now available as part of the .NET SDK. These tools are listed in the following table: +The following additional tools are available as part of the .NET SDK: | Tool | Function | | ------------------------------------------------- | ------------------------------------------------------------ | From 64e99820459cf9b1f71d41b4e06914f22b90689c Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 11 May 2022 12:42:06 -0700 Subject: [PATCH 213/429] Update package index with latest published versions (#29418) --- docs/azure/includes/dotnet-all.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index a8700ab688661..5a2d60717d553 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -415,7 +415,7 @@ | WebJobs Extensions - Auth Tokens | NuGet [1.0.0-beta6](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.AuthTokens/1.0.0-beta6) | | GitHub [1.0.0-beta6](https://github.com/Azure/azure-webjobs-sdk-extensions) | | WebJobs Extensions - Cosmos DB | NuGet [3.0.10](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/3.0.10)
      NuGet [4.0.0-preview3](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/4.0.0-preview3) | | GitHub [3.0.10](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/cosmos-v3.0.7/src/WebJobs.Extensions.CosmosDB) | | WebJobs Extensions - Document DB | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DocumentDB/1.3.0) | | GitHub [1.3.0](https://github.com/Azure/azure-webjobs-sdk-extensions) | -| WebJobs Extensions - Durable Task | NuGet [2.7.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/2.7.0) | [docs](/dotnet/api/overview/azure/functions) | GitHub [2.7.0](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) | +| WebJobs Extensions - Durable Task | NuGet [2.7.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/2.7.1) | [docs](/dotnet/api/overview/azure/functions) | GitHub [2.7.1](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) | | WebJobs Extensions - Durable Task Analyzers | NuGet [0.4.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers/0.4.2) | | GitHub [0.4.2](https://github.com/Azure/azure-functions-durable-extension/tree/Analyzer-v0.3.0/src/WebJobs.Extensions.DurableTask.Analyzers) | | WebJobs Extensions - Edge Hub | NuGet [1.0.7](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EdgeHub/1.0.7) | | GitHub [1.0.7](https://github.com/Azure/iotedge/tree/1.0.7/edge-hub) | | WebJobs Extensions - Http | NuGet [3.0.12](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Http/3.0.12) | | GitHub [3.0.12](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.2/src/WebJobs.Extensions.Http) | From 27527761b05e00b99f38bbeb85ead9be0ae8f9e1 Mon Sep 17 00:00:00 2001 From: Damian Edwards Date: Wed, 11 May 2022 14:35:28 -0700 Subject: [PATCH 214/429] Added web templates --use-program-main option (#28858) * Added web templates --use-program-main option * added console --use-program-main option Co-authored-by: Vlada Shubina --- docs/core/tools/dotnet-new-sdk-templates.md | 32 +++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/docs/core/tools/dotnet-new-sdk-templates.md b/docs/core/tools/dotnet-new-sdk-templates.md index d0e82739c90cb..f7b8aaa2e6402 100644 --- a/docs/core/tools/dotnet-new-sdk-templates.md +++ b/docs/core/tools/dotnet-new-sdk-templates.md @@ -86,6 +86,10 @@ Each template may have additional options available. The core templates have the If specified, doesn't execute an implicit restore during project creation. Available since .NET Core 2.2 SDK. +- **`--use-program-main`** + + If specified, an explicit `Program` class and `Main` method will be used instead of top-level statements. Available since .NET SDK 6.0.300. Default value: `false`. + *** ## `classlib` @@ -156,6 +160,10 @@ Each template may have additional options available. The core templates have the Doesn't execute an implicit restore during project creation. +- **`--use-program-main`** + + If specified, an explicit `Program` class and `Main` method will be used instead of top-level statements. Available since .NET SDK 6.0.300. Default value: `false`. + *** ##
      `mstest`, `xunit` @@ -307,6 +315,10 @@ The ability to create a project for an earlier TFM depends on having that versio Port number to use for the HTTPS endpoint in *launchSettings.json*. This option is not applicable when the parameter `no-https` is used (but `no-https` is ignored when an individual or organizational authentication setting is chosen for `--auth`). +- **`--use-program-main`** + + If specified, an explicit `Program` class and `Main` method will be used instead of top-level statements. Available since .NET SDK 6.0.300. Default value: `false`. + *** ## `blazorwasm` @@ -422,6 +434,10 @@ The ability to create a project for an earlier TFM depends on having that versio Port number to use for the HTTPS endpoint in *launchSettings.json*. This option is not applicable when the parameter `no-https` is used (but `no-https` is ignored when an individual or organizational authentication setting is chosen for `--auth`). +- **`--use-program-main`** + + If specified, an explicit `Program` class and `Main` method will be used instead of top-level statements. Available since .NET SDK 6.0.300. Default value: `false`. + *** ## `web` @@ -462,6 +478,10 @@ The ability to create a project for an earlier TFM depends on having that versio Port number to use for the HTTPS endpoint in *launchSettings.json*. This option is not applicable when the parameter `no-https` is used (but `no-https` is ignored when an individual or organizational authentication setting is chosen for `--auth`). +- **`--use-program-main`** + + If specified, an explicit `Program` class and `Main` method will be used instead of top-level statements. Available since .NET SDK 6.0.300. Default value: `false`. + *** ## `mvc`, `webapp` @@ -564,6 +584,10 @@ The ability to create a project for an earlier TFM depends on having that versio Port number to use for the HTTPS endpoint in *launchSettings.json*. This option is not applicable when the parameter `no-https` is used (but `no-https` is ignored when an individual or organizational authentication setting is chosen for `--auth`). +- **`--use-program-main`** + + If specified, an explicit `Program` class and `Main` method will be used instead of top-level statements. Available since .NET SDK 6.0.300. Default value: `false`. + *** ## `angular`, `react` @@ -617,6 +641,10 @@ The ability to create a project for an earlier TFM depends on having that versio Port number to use for the HTTPS endpoint in *launchSettings.json*. This option is not applicable when the parameter `no-https` is used (but `no-https` is ignored when an individual or organizational authentication setting is chosen for `--auth`). +- **`--use-program-main`** + + If specified, an explicit `Program` class and `Main` method will be used instead of top-level statements. Available since .NET SDK 6.0.300. Default value: `false`. + *** ## `reactredux` @@ -746,6 +774,10 @@ The ability to create a project for an earlier TFM depends on having that versio Doesn't execute an implicit restore during project creation. +- **`--use-program-main`** + + If specified, an explicit `Program` class and `Main` method will be used instead of top-level statements. Available since .NET SDK 6.0.300. Default value: `false`. + *** ## `globaljson` From 71f085ce881404f141f34c69135ceddd28657638 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Wed, 11 May 2022 18:38:05 -0400 Subject: [PATCH 215/429] Document warning waves. (#29283) * first draft done. First drat is complete. * Combine all definite assignment warnings I think this reads better. It's much less redundant, and these different warnings are related. * proofread and link from what's new * Update for warning level / analysis level While making those edits, fix other open issues on this page. * Improve SEO Work to move portions of the messages and error code into H2s. * use consistent language for "warning wave" * warnings, part 1 * build warnings part 2 * Add default analysis level. * Apply suggestions from code review Co-authored-by: Tom Dykstra * Add a link to installing the offline help. * fix warning Co-authored-by: Tom Dykstra --- .openpublishing.redirection.csharp.json | 4 + .../compiler-messages/cs8892.md | 66 ------ .../ImportedTypes/ImportedTypes.csproj | 9 + .../snippets/ImportedTypes/Types.cs | 9 + .../snippets/WarningWaves/Program.cs | 31 +++ .../snippets/WarningWaves/WarningWaves.csproj | 16 ++ .../snippets/WarningWaves/WaveFive.cs | 200 ++++++++++++++++++ .../snippets/WarningWaves/WaveSeven.cs | 7 + .../snippets/WarningWaves/WaveSix.cs | 44 ++++ .../compiler-messages/warning-waves.md | 165 +++++++++++++++ .../compiler-options/errors-warnings.md | 59 ++++-- docs/csharp/whats-new/csharp-10.md | 1 + docs/csharp/whats-new/csharp-11.md | 3 +- docs/csharp/whats-new/csharp-9.md | 1 + 14 files changed, 533 insertions(+), 82 deletions(-) delete mode 100644 docs/csharp/language-reference/compiler-messages/cs8892.md create mode 100644 docs/csharp/language-reference/compiler-messages/snippets/ImportedTypes/ImportedTypes.csproj create mode 100644 docs/csharp/language-reference/compiler-messages/snippets/ImportedTypes/Types.cs create mode 100644 docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/Program.cs create mode 100644 docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WarningWaves.csproj create mode 100644 docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WaveFive.cs create mode 100644 docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WaveSeven.cs create mode 100644 docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WaveSix.cs create mode 100644 docs/csharp/language-reference/compiler-messages/warning-waves.md diff --git a/.openpublishing.redirection.csharp.json b/.openpublishing.redirection.csharp.json index 298a406f1d4e6..56820abeb011c 100644 --- a/.openpublishing.redirection.csharp.json +++ b/.openpublishing.redirection.csharp.json @@ -151,6 +151,10 @@ "source_path_from_root": "/docs/csharp/lambda-expressions.md", "redirect_url": "/dotnet/csharp/language-reference/operators/lambda-expressions" }, + { + "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs8892.md", + "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/warning-waves#cs8892" + }, { "source_path_from_root": "/docs/csharp/language-reference/compiler-options/addmodule-compiler-option.md", "redirect_url": "/dotnet/csharp/language-reference/compiler-options/inputs" diff --git a/docs/csharp/language-reference/compiler-messages/cs8892.md b/docs/csharp/language-reference/compiler-messages/cs8892.md deleted file mode 100644 index 6b2571abd903f..0000000000000 --- a/docs/csharp/language-reference/compiler-messages/cs8892.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -description: "Learn more about: Compiler warning (level 5) CS8892" -title: "Compiler warning (level 5) CS8892" -ms.date: 08/26/2020 -f1_keywords: - - "CS8892" -helpviewer_keywords: - - "CS8892" -author: Youssef1313 ---- - -# Compiler warning (level 5) CS8892 - -Method 'method' will not be used as an entry point because a synchronous entry point 'method' was found. - -This warning is generated on all async entry point candidates when you have multiple valid entry points, where they contain one or more synchronous entry point and one or more asynchronous entry points. - -Because async main was only supported starting with C# 7.1, this warning isn't generated for projects targeting a previous version. - -> [!NOTE] -> The compiler always uses the synchronous entry point. In case there are multiple synchronous entry points, you get a compiler error. - -## Example - -The following example generates CS8892: - -```csharp -using System; -using System.Threading.Tasks; - -public class Program -{ - // CS8892: Method 'Program.Main()' will not be used as an entry point because a synchronous entry point 'Program.Main(string[])' was found. - public static async Task Main() - { - await Task.Delay(1); - } - - public static void Main(string[] args) - { - Console.WriteLine(2); - } -} -``` - -## How to fix this warning - -Keep only the intended entry point for your program, and rename the others. - -```csharp -using System; -using System.Threading.Tasks; - -public class Program -{ - public static async Task SomeOtherNameAsync() - { - await Task.Delay(1); - } - - public static void Main(string[] args) - { - Console.WriteLine(2); - } -} -``` diff --git a/docs/csharp/language-reference/compiler-messages/snippets/ImportedTypes/ImportedTypes.csproj b/docs/csharp/language-reference/compiler-messages/snippets/ImportedTypes/ImportedTypes.csproj new file mode 100644 index 0000000000000..132c02c59c236 --- /dev/null +++ b/docs/csharp/language-reference/compiler-messages/snippets/ImportedTypes/ImportedTypes.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/docs/csharp/language-reference/compiler-messages/snippets/ImportedTypes/Types.cs b/docs/csharp/language-reference/compiler-messages/snippets/ImportedTypes/Types.cs new file mode 100644 index 0000000000000..534a79ce7c41a --- /dev/null +++ b/docs/csharp/language-reference/compiler-messages/snippets/ImportedTypes/Types.cs @@ -0,0 +1,9 @@ +namespace ImportedTypes; + +// +public struct Struct +{ + private string data = String.Empty; + public Struct() { } +} +// diff --git a/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/Program.cs b/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/Program.cs new file mode 100644 index 0000000000000..6e89e1c139292 --- /dev/null +++ b/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/Program.cs @@ -0,0 +1,31 @@ +// See https://aka.ms/new-console-template for more information + +namespace WarningWaves; + +public static class Program +{ + // + public static void Main() + { + RunProgram(); + } + + // CS8892 + public static async Task Main(string[] args) + { + await RunProgramAsync(); + } + // + + private static void RunProgram() + { + WaveFive.Examples(); + } + + private static async Task RunProgramAsync() + { + RunProgram(); + await Task.Yield(); + } +} + diff --git a/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WarningWaves.csproj b/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WarningWaves.csproj new file mode 100644 index 0000000000000..4494a6336e3c5 --- /dev/null +++ b/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WarningWaves.csproj @@ -0,0 +1,16 @@ + + + + enable + Exe + net7.0 + enable + 7 + preview + + + + + + + diff --git a/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WaveFive.cs b/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WaveFive.cs new file mode 100644 index 0000000000000..5b80ceb43326d --- /dev/null +++ b/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WaveFive.cs @@ -0,0 +1,200 @@ +using System; +using ImportedTypes; + +namespace WarningWaves; + +public class WaveFive +{ + public class Src + { + public bool Select(Func selector) => true; + } + + public class Src2 + { + public int Select(Func selector) => 0; + } + + public static void Examples() + { + var w = new WaveFive(); + + w.M(w); + + QueryExpression(); + QueryExpressionNoWarn(); + + } + + private static void QueryExpression() + { + // + bool b = true; + var source = new Src(); + b = true; + source = new Src(); + var a = b && from c in source select c; + Console.WriteLine(a); + + var indexes = new Src2(); + int[] array = { 1, 2, 3, 4, 5, 6, 7 }; + var range = array[0..from c in indexes select c]; + // + } + + private static void QueryExpressionNoWarn() + { + // + bool b = true; + var source = new Src(); + b = true; + source = new Src(); + var a = b && (from c in source select c); + Console.WriteLine(a); + + var indexes = new Src2(); + int[] array = { 1, 2, 3, 4, 5, 6, 7 }; + var range = array[0..(from c in indexes select c)]; + // + } + // + static class StaticClass + { + public static void Thing() { } + } + + void M(object o) + { + // warning: cannot use a static type in 'is' or 'as' + if (o is StaticClass) + { + Console.WriteLine("Can't happen"); + } + else + { + Console.WriteLine("o is not an instance of a static class"); + } + } + // + + // + class Program + { + public static void M(S s) + { + if (s == null) { } // CS8073: The result of the expression is always 'false' + if (s != null) { } // CS8073: The result of the expression is always 'true' + } + } + + struct S + { + public static bool operator ==(S s1, S s2) => s1.Equals(s2); + public static bool operator !=(S s1, S s2) => !s1.Equals(s2); + public override bool Equals(object? other) + { + // Implementation elided + return false; + } + public override int GetHashCode() => 0; + + // Other details elided... + } + // + + // + public static class Utilities + { + // elided + } + + public interface IUtility + { + // CS8897 + public void SetUtility(Utilities u); + + // CS8898 + public Utilities GetUtility(); + } + // + + + // + public struct DefiniteAssignmentWarnings + { + // CS8880 + public Struct Property { get; } + // CS8881 + private Struct field; + + // CS8882 + public void Method(out Struct s) + { + + } + + public DefiniteAssignmentWarnings(int dummy) + { + // CS8883 + Struct v2 = Property; + // CS8884 + Struct v3 = field; + // CS8885: + DefiniteAssignmentWarnings p2 = this; + } + + public static void Method2(out Struct s1) + { + // CS8886 + var s2 = s1; + s1 = default; + } + + public static void UseLocalStruct() + { + Struct r1; + var r2 = r1; + } + } + // + + + // + public struct DefiniteAssignmentNoWarnings + { + // CS8880 + public Struct Property { get; } = default; + // CS8881 + private Struct field = default; + + // CS8882 + public void Method(out Struct s) + { + s = default; + } + + public DefiniteAssignmentNoWarnings(int dummy) + { + // CS8883 + Struct v2 = Property; + // CS8884 + Struct v3 = field; + // CS8885: + DefiniteAssignmentNoWarnings p2 = this; + } + + public static void Method2(out Struct s1) + { + // CS8886 + s1 = default; + var s2 = s1; + } + + public static void UseLocalStruct() + { + Struct r1 = default; + var r2 = r1; + } + } + // +} diff --git a/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WaveSeven.cs b/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WaveSeven.cs new file mode 100644 index 0000000000000..fa8f3498e214b --- /dev/null +++ b/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WaveSeven.cs @@ -0,0 +1,7 @@ +namespace WarningWaves; + +// +public class lowercasename +{ +} +// diff --git a/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WaveSix.cs b/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WaveSix.cs new file mode 100644 index 0000000000000..5c800289b479b --- /dev/null +++ b/docs/csharp/language-reference/compiler-messages/snippets/WarningWaves/WaveSix.cs @@ -0,0 +1,44 @@ +namespace WarningWaves; +public class WaveSix +{ + // + public partial class PartialType + { + public partial void M1(int x); + + public partial T M2(string s) where T : struct; + + public partial void M3(string s); + + + public partial void M4(object o); + public partial void M5(dynamic o); + public partial void M6(string? s); + } + // + + // + public partial class PartialType + { + // Different parameter names: + public partial void M1(int y) { } + + // Different type parameter names: + public partial TResult M2(string s) where TResult : struct => default; + + // Relaxed nullability + public partial void M3(string? s) { } + + + // Mixing object and dynamic + public partial void M4(dynamic o) { } + + // Mixing object and dynamic + public partial void M5(object o) { } + + // Note: This generates CS8611 (nullability mismatch) not CS8826 + public partial void M6(string s) { } + } + // + +} diff --git a/docs/csharp/language-reference/compiler-messages/warning-waves.md b/docs/csharp/language-reference/compiler-messages/warning-waves.md new file mode 100644 index 0000000000000..7296949914f91 --- /dev/null +++ b/docs/csharp/language-reference/compiler-messages/warning-waves.md @@ -0,0 +1,165 @@ +--- +title: "C# Compiler warning waves" +description: "C# warning waves are optional warnings that can be reported on code where previously a warning wouldn't have been reported. They represent practices that could be harmful, or potentially elements that may be breaking changes in the future." +ms.date: 05/11/2022 +f1_keywords: + - "CS7023" + - "CS8073" + - "CS8848" + - "CS8880" + - "CS8881" + - "CS8882" + - "CS8883" + - "CS8884" + - "CS8885" + - "CS8886" + - "CS8887" + - "CS8892" + - "CS8897" + - "CS8898" + - "CS8826" + - "CS8981" +helpviewer_keywords: + - "CS7023" + - "CS8073" + - "CS8848" + - "CS8880" + - "CS8881" + - "CS8882" + - "CS8883" + - "CS8884" + - "CS8885" + - "CS8886" + - "CS8887" + - "CS8892" + - "CS8897" + - "CS8898" + - "CS8826" + - "CS8981" +--- +# C# Warning waves + +New warnings and errors may be introduced in each release of the C# compiler. When new warnings could be reported on existing code, those warnings are introduced under an opt-in system referred to as a *warning wave*. The opt-in system means that you shouldn't see new warnings on existing code without taking action to enable them. Warning waves are enabled using the [**AnalysisLevel**](../compiler-options/errors-warnings.md#analysis-level) element in your project file. When `true` is specified, enabled warning wave warnings generate errors. Warning wave 5 diagnostics were added in C# 9. Warning wave 6 diagnostics were added in C# 10. Warning wave 7 diagnostics were added in C# 11. + +## CS8981 - The type name only contains lower-cased ascii characters. + +*Warning wave 7* + +Any new keywords added for C# will be all lower-case ASCII characters. This warning ensures that none of your types conflict with future keywords. The following code produces CS8981: + +:::code language="csharp" source="./snippets/WarningWaves/WaveSeven.cs" id="NoLowercaseTypes"::: + +You can address this warning by renaming the type to include at least one non-lower case ASCII character, such as an upper case character, a digit, or an underscore. + +## CS8826 - Partial method declarations have signature differences. + +*Warning wave 6* + +This warning corrects some inconsistencies in reporting differences between partial method signatures. The compiler always reported an error when the partial method signatures created different CLR signatures. Now, the compiler reports CS8826 when the signatures are syntactically different C#. Consider the following partial class: + +:::code language="csharp" source="./snippets/WarningWaves/WaveSix.cs" id="PartialMethodDeclaration"::: + +The following partial class implementation generates several examples of CS8626: + +:::code language="csharp" source="./snippets/WarningWaves/WaveSix.cs" id="PartialMethodDefinition"::: + +> [!NOTE] +> If the implementation of a method uses a non-nullable reference type when the other declaration accepts nullable reference types, CS8611 is generated instead of CS8826. + +To fix any instance of these warnings, ensure the two signatures match. + +## CS7023 - A static type is used in an 'is' or 'as' expression. + +*Warning wave 5* + +The `is` and `as` expressions always return `false` for a static type because you can't create instances of a static type. The following code produces CS7023: + +:::code language="csharp" source="./snippets/WarningWaves/WaveFive.cs" id="StaticTypeAsIs"::: + +The compiler reports this warning because the type test can never succeed. To correct this warning, remove the test and remove any code executed only if the test succeeded. In the preceding example, the `else` clause is always executed. The method body could be replaced by that single line: + +```csharp +Console.WriteLine("o is not an instance of a static class"); +``` + +## CS8073 - The result of the expression is always 'false' (or 'true'). + +*Warning wave 5* + +The `==` and `!=` operators always return `false` (or `true`) when comparing an instance of a `struct` type to `null`. The following code demonstrates this warning. Assume `S` is a `struct` that has defined `operator ==` and `operator !=`: + +:::code language="csharp" source="./snippets/WarningWaves/WaveFive.cs" id="StructsArentNull"::: + +To fix this error, remove the null check and code that would execute if the object is `null`. + +## CS8848 - Operator 'from' can't be used here due to precedence. Use parentheses to disambiguate. + +*Warning wave 5* + +The following examples demonstrate this warning. The expression binds incorrectly because of the precedence of the operators. + +:::code language="csharp" source="./snippets/WarningWaves/WaveFive.cs" id="QueryPrecedence"::: + +To fix this error, put parentheses around the query expression: + +:::code language="csharp" source="./snippets/WarningWaves/WaveFive.cs" id="QueryPrecedenceNoWarn"::: + +## Members must be fully assigned, use of unassigned variable (CS8880, CS8881, CS8882, CS8883, CS8884, CS8885, CS8886, CS8887) + +*Warning wave 5* + +Several warnings improve the definite assignment analysis for `struct` types declared in imported assemblies. All these new warnings are generated when a struct in an imported assembly includes an inaccessible field (usually a `private` field) of a reference type, as shown in the following example: + +:::code language="csharp" source="snippets/ImportedTypes/Types.cs" id="DeclareImportedType"::: + +The following examples show the warnings generated from the improved definite assignment analysis: + +- CS8880: Auto-implemented property 'Property' must be fully assigned before control is returned to the caller. +- CS8881: Field 'field' must be fully assigned before control is returned to the caller. +- CS8882: The out parameter 'parameter' must be assigned to before control leaves the current method. +- CS8883: Use of possibly unassigned auto-implemented property 'Property'. +- CS8884: Use of possibly unassigned field 'Field' +- CS8885: The 'this' object can't be used before all its fields have been assigned. +- CS8886: Use of unassigned output parameter 'parameterName'. +- CS8887: Use of unassigned local variable 'variableName' + +:::code language="csharp" source="./snippets/WarningWaves/WaveFive.cs" id="DefiniteAssignmentWarnings"::: + +You can fix any of these warnings by initializing or assigning the imported struct to its default value: + +:::code language="csharp" source="./snippets/WarningWaves/WaveFive.cs" id="DefiniteAssignment"::: + +## CS8892 - Method will not be used as an entry point because a synchronous entry point 'method' was found. + +*Warning wave 5* + +This warning is generated on all async entry point candidates when you have multiple valid entry points, including one or more synchronous entry point. Because async main was only supported starting with C# 7.1, this warning isn't generated for projects targeting a previous version. + +The following example generates CS8892: + +:::code language="csharp" source="./snippets/WarningWaves/Program.cs" id="MultipleEntryPoints"::: + +> [!NOTE] +> The compiler always uses the synchronous entry point. In case there are multiple synchronous entry points, you get a compiler error. + +To fix this warning, remove or rename the asynchronous entry point. + +## CS8897 - Static types can't be used as parameters + +*Warning wave 5* + +Members of an interface can't declare parameters whose type is a static class. The following code demonstrates both CS8897 and CS8898: + +:::code language="csharp" source="./snippets/WarningWaves/WaveFive.cs" id="StaticTypeInInterface"::: + +To fix this warning, change the parameter type or remove the method. + +## CS8898 - static types can't be used as return types + +*Warning wave 5* + +Members of an interface can't declare a return type that is a static class. The following code demonstrates both CS8897 and CS8898: + +:::code language="csharp" source="./snippets/WarningWaves/WaveFive.cs" id="StaticTypeInInterface"::: + +To fix this warning, change the return type or remove the method. diff --git a/docs/csharp/language-reference/compiler-options/errors-warnings.md b/docs/csharp/language-reference/compiler-options/errors-warnings.md index 79b945cfd10c5..62a19158527a7 100644 --- a/docs/csharp/language-reference/compiler-options/errors-warnings.md +++ b/docs/csharp/language-reference/compiler-options/errors-warnings.md @@ -1,7 +1,7 @@ --- description: "C# Compiler Options for errors and warnings. These options suppress or enable warnings, and control warnings as errors." title: "C# Compiler Options - errors and warnings" -ms.date: 03/12/2021 +ms.date: 05/11/2022 f1_keywords: - "cs.build.options" helpviewer_keywords: @@ -19,6 +19,7 @@ helpviewer_keywords: The following options control how the compiler reports errors and warnings. The new MSBuild syntax is shown in **Bold**. The older *csc.exe* syntax is shown in `code style`. - **WarningLevel** / `-warn`: Set warning level. +- **AnalysisLevel**: Set optional warning level. - **TreatWarningsAsErrors** / `-warnaserror`: Treat all warnings as errors - **WarningsAsErrors** / `-warnaserror`: Treat one or more warnings as errors - **WarningsNotAsErrors** / `-warnnotaserror`: Treat one or more warnings not as errors @@ -37,17 +38,31 @@ The **WarningLevel** option specifies the warning level for the compiler to disp The element value is the warning level you want displayed for the compilation: Lower numbers show only high severity warnings. Higher numbers show more warnings. The value must be zero or a positive integer: -|Warning level|Meaning| -|-------------------|-------------| -|0|Turns off emission of all warning messages.| -|1|Displays severe warning messages.| -|2|Displays level 1 warnings plus certain, less-severe warnings, such as warnings about hiding class members.| -|3|Displays level 2 warnings plus certain, less-severe warnings, such as warnings about expressions that always evaluate to `true` or `false`.| -|4 (the default)|Displays all level 3 warnings plus informational warnings.| -|Greater than 4|Displays warnings with the specified value and all less-severe warnings. For more information, see [additional warnings](https://github.com/dotnet/roslyn/blob/main/docs/compilers/CSharp/Warnversion%20Warning%20Waves.md).| +| Warning level | Meaning | +|---------------|---------| +| 0 | Turns off emission of all warning messages. | +| 1 | Displays severe warning messages. | +| 2 | Displays level 1 warnings plus certain, less-severe warnings, such as warnings about hiding class members. | +| 3 | Displays level 2 warnings plus certain, less-severe warnings, such as warnings about expressions that always evaluate to `true` or `false`. | +| 4 (the default)|Displays all level 3 warnings plus informational warnings. | -> [!NOTE] -> To make sure you always have all warnings if the compiler is updated with new warning levels, put an arbitrary large value (for example, `9999`). +> [!WARNING] +> The compiler command line accepts values greater than 4 to enable [warning wave warnings](../compiler-messages/warning-waves.md). However, the .NET SDK sets the *WarningLevel* to match the *AnalysisLevel* in your project file. + +To get information about an error or warning, you can look up the error code in the [Help Index](/visualstudio/help-viewer/install-manage-local-content). For other ways to get information about an error or warning, see [C# Compiler Errors](../compiler-messages/index.md). Use [**TreatWarningsAsErrors**](#treatwarningsaserrors) to treat all warnings as errors. Use [**DisabledWarnings**](#disabledwarnings) to disable certain warnings. + +## Analysis level + +| Analysis level | Meaning | +|------------------|---------| +| 5 | Displays all optional [warning wave 5 warnings](../compiler-messages/warning-waves.md#cs7023---a-static-type-is-used-in-an-is-or-as-expression). | +| 6 | Displays all optional [warning wave 6 warnings](../compiler-messages/warning-waves.md#cs8826---partial-method-declarations-have-signature-differences). | +| 7 | Displays all optional [warning wave 7 warnings](../compiler-messages/warning-waves.md#cs8981---the-type-name-only-contains-lower-cased-ascii-characters). | +| latest (default) | Displays all informational warnings up to and including the current release. | +| preview | Displays all informational warnings up to and including the latest preview release. | +| none | Turns off all informational warnings. | + +For more information on optional warnings, see [Warning waves](../compiler-messages/warning-waves.md). To get information about an error or warning, you can look up the error code in the Help Index. For other ways to get information about an error or warning, see [C# Compiler Errors](../compiler-messages/index.md). Use [**TreatWarningsAsErrors**](#treatwarningsaserrors) to treat all warnings as errors. Use [**DisabledWarnings**](#disabledwarnings) to disable certain warnings. @@ -61,20 +76,23 @@ The **TreatWarningsAsErrors** option treats all warnings as errors. You can also All warning messages are instead reported as errors. The build process halts (no output files are built). By default, **TreatWarningsAsErrors** isn't in effect, which means warnings don't prevent the generation of an output file. Optionally, if you want only a few specific warnings to be treated as errors, you may specify a comma-separated list of warning numbers to treat as errors. The set of all nullability warnings can be specified with the [**Nullable**](language.md#nullable) shorthand. Use [**WarningLevel**](#warninglevel) to specify the level of warnings that you want the compiler to display. Use [**DisabledWarnings**](#disabledwarnings) to disable certain warnings. +> [!IMPORTANT] +> There are two subtle differences between using the `` element in your *csproj* file, and using the `warnaserror` MSBuild command line switch. *TreatWarningsAsErrors* only impacts the C# compiler, not any other MSBuild tasks in your *csproj* file. The `warnaserror` command line switch impacts all tasks. Secondly, the compiler doesn't produce any output on any warnings when *TreatWarningsAsErrors* is used. The compiler produces output when the `warnaserror` command line switch is used. + ## WarningsAsErrors and WarningsNotAsErrors -The **WarningsAsErrors** and **WarningsNotAsErrors** options override the **TreatWarningsAsErrors** option for a list of warnings. +The **WarningsAsErrors** and **WarningsNotAsErrors** options override the **TreatWarningsAsErrors** option for a list of warnings. This option can be used with all *CS* warnings. The "CS" prefix is optional. You can use either the number, or "CS" followed by the error or warning level. For other elements that affect warnings, see the [Common MSBuild properties](/visualstudio/msbuild/common-msbuild-project-properties). Enable warnings 0219 and 0168 as errors: ```xml -0219,0168 +0219,CS0168 ``` Disable the same warnings as errors: ```xml -0219,0168 +0219,CS0168 ``` You use **WarningsAsErrors** to configure a set of warnings as errors. Use **WarningsNotAsErrors** to configure a set of warnings that should not be errors when you've set all warnings as errors. @@ -89,7 +107,7 @@ The **DisabledWarnings** option lets you suppress the compiler from displaying o `number1`, `number2` Warning number(s) that you want the compiler to suppress. You specify the numeric part of the warning identifier. For example, if you want to suppress *CS0028*, you could specify `28`. The compiler silently ignores warning numbers passed to **DisabledWarnings** that were valid in previous releases, but that have been removed. For example, *CS0679* was valid in the compiler in Visual Studio .NET 2002 but was removed later. - The following warnings cannot be suppressed by the **DisabledWarnings** option: + The following warnings can't be suppressed by the **DisabledWarnings** option: - Compiler Warning (level 1) CS2002 - Compiler Warning (level 1) CS2023 @@ -115,6 +133,14 @@ Specify a file to log all compiler and analyzer diagnostics. The **ErrorLog** option causes the compiler to output a [Static Analysis Results Interchange Format (SARIF) log](https://github.com/microsoft/sarif-tutorials/blob/main/docs/1-Introduction.md#:~:text=What%20is%20SARIF%3F,for%20use%20by%20simpler%20tools). SARIF logs are typically read by tools that analyze the results from compiler and analyzer diagnostics. +You can specify the SARIF format using the `version` argument to the `ErrorLog` element: + +```XML +logVersion21.json,version=2.1 +``` + +The separator can be either a comma (`,`) or a semicolon (`;`). Valid values are for version are: "1", "2", and "2.1". The default is "1". "2" and "2.1" both mean SARIF version 2.1.0. + ## ReportAnalyzer Report additional analyzer information, such as execution time. @@ -124,3 +150,6 @@ Report additional analyzer information, such as execution time. ``` The **ReportAnalyzer** option causes the compiler to emit extra MSBuild log information that details the performance characteristics of analyzers in the build. It's typically used by analyzer authors as part of validating the analyzer. + +> [!IMPORTANT] +> The extra log information generated by this flag is only generated when the `-verbosity:detailed` command line option is used. See the [swtiches](/visualstudio/msbuild/msbuild-command-line-reference#switches) article in the MSBuild documentation for more information. diff --git a/docs/csharp/whats-new/csharp-10.md b/docs/csharp/whats-new/csharp-10.md index a38832863b5ae..ce18f38c594cd 100644 --- a/docs/csharp/whats-new/csharp-10.md +++ b/docs/csharp/whats-new/csharp-10.md @@ -21,6 +21,7 @@ C# 10 adds the following features and enhancements to the C# language: - [Allow `AsyncMethodBuilder` attribute on methods](#allow-asyncmethodbuilder-attribute-on-methods) - [CallerArgumentExpression attribute](#callerargumentexpression-attribute-diagnostics) - [Enhanced `#line` pragma](#enhanced-line-pragma) +- [Warning wave 6](../language-reference/compiler-messages/warning-waves.md#cs8826---partial-method-declarations-have-signature-differences) C# 10 is supported on **.NET 6**. For more information, see [C# language versioning](../language-reference/configure-language-version.md). diff --git a/docs/csharp/whats-new/csharp-11.md b/docs/csharp/whats-new/csharp-11.md index bdbb7aa7e3a6e..62b95c475a4f5 100644 --- a/docs/csharp/whats-new/csharp-11.md +++ b/docs/csharp/whats-new/csharp-11.md @@ -1,7 +1,7 @@ --- title: What's new in C# 11 - C# Guide description: Get an overview of the new features coming in C# 11. -ms.date: 04/15/2022 +ms.date: 05/11/2022 --- # What's new in C# 11 @@ -18,6 +18,7 @@ The following features are available in the 6.0.200 version of the .NET SDK. The - [Newlines in string interpolation expressions](#newlines-in-string-interpolations). - [Improved method group conversion to delegate](#improved-method-group-conversion-to-delegate) - [Raw string literals](#raw-string-literals). +- [Warning wave 7](../language-reference/compiler-messages/warning-waves.md#cs8981---the-type-name-only-contains-lower-cased-ascii-characters) You can download the latest .NET 6 SDK from the [.NET downloads page](https://dotnet.microsoft.com/download). You can also download [Visual Studio 2022](https://visualstudio.microsoft.com/vs/), which includes the .NET 6 SDK. You can also try all these features with the preview release of the .NET 7 SDK, which can be downloaded from the [all .NET downloads](https://dotnet.microsoft.com/download/dotnet) page. diff --git a/docs/csharp/whats-new/csharp-9.md b/docs/csharp/whats-new/csharp-9.md index c1bdc17d3ffe3..9a8a7cfd1e5d1 100644 --- a/docs/csharp/whats-new/csharp-9.md +++ b/docs/csharp/whats-new/csharp-9.md @@ -26,6 +26,7 @@ C# 9.0 adds the following features and enhancements to the C# language: - [Support for code generators](#support-for-code-generators) - [Module initializers](~/_csharplang/proposals/csharp-9.0/module-initializers.md) - [New features for partial methods](~/_csharplang/proposals/csharp-9.0/extending-partial-methods.md) +- [Warning wave 5](../language-reference/compiler-messages/warning-waves.md#cs7023---a-static-type-is-used-in-an-is-or-as-expression) C# 9.0 is supported on **.NET 5**. For more information, see [C# language versioning](../language-reference/configure-language-version.md). From 1bd38af1b3d83e778e7f6d84ddc9a8e07fc19045 Mon Sep 17 00:00:00 2001 From: David Mason Date: Wed, 11 May 2022 16:32:36 -0700 Subject: [PATCH 216/429] Update debug-highcpu.md --- docs/core/diagnostics/debug-highcpu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/debug-highcpu.md b/docs/core/diagnostics/debug-highcpu.md index 6539a94117acb..0deec004ff87e 100644 --- a/docs/core/diagnostics/debug-highcpu.md +++ b/docs/core/diagnostics/debug-highcpu.md @@ -132,7 +132,7 @@ When analyzing an app with high CPU usage, you need a diagnostics tool that can The `perf` tool can be used to generate .NET Core app profiles. We will demonstrate this tool, although dotnet-trace could be used as well. Exit the previous instance of the [sample debug target](/samples/dotnet/samples/diagnostic-scenarios). -Set the `DOTNET_PerfMapEnabled` environment variable to cause the .NET Core app to create a `map` file in the `/tmp` directory. This `map` file is used by `perf` to map CPU address to JIT-generated functions by name. For more information, see [Export perf maps](../runtime-config/debugging-profiling.md#export-perf-maps). +Set the `DOTNET_PerfMapEnabled` environment variable to cause the .NET app to create a `map` file in the `/tmp` directory. This `map` file is used by `perf` to map CPU addresses to JIT-generated functions by name. For more information, see [Export perf maps](../runtime-config/debugging-profiling.md#export-perf-maps). [!INCLUDE [complus-prefix](../../../includes/complus-prefix.md)] From 2dd45b6b04e60b6d4c2e47d683c6df55766f8d4b Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 11 May 2022 17:06:52 -0700 Subject: [PATCH 217/429] Update package index with latest published versions (#29421) --- docs/azure/includes/dotnet-all.md | 4 ++-- docs/azure/includes/dotnet-new.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 5a2d60717d553..603ac40aced3c 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -48,7 +48,7 @@ | Purview Catalog | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Analytics.Purview.Catalog/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Catalog-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Catalog_1.0.0-beta.3/sdk/purview/Azure.Analytics.Purview.Catalog/) | | Purview Scanning | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Analytics.Purview.Scanning/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Scanning-readme-pre) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Scanning_1.0.0-beta.2/sdk/purview/Azure.Analytics.Purview.Scanning/) | | Question Answering | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.QuestionAnswering-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.0.0/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.1.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/) | -| Schema Registry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.1.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.1.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | +| Schema Registry | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.2.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.2.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | | Schema Registry - Avro | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme-pre) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0-beta.8/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | | Service Bus | NuGet [7.8.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0/sdk/servicebus/Azure.Messaging.ServiceBus/) | | Storage - Blobs | NuGet [12.12.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0/sdk/storage/Azure.Storage.Blobs/) | @@ -340,7 +340,7 @@ | QnA Maker | NuGet [2.0.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Knowledge.QnAMaker/2.0.1)
      NuGet [3.0.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Knowledge.QnAMaker/3.0.0-preview.1) | | GitHub [2.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Knowledge.QnAMaker_2.0.1/sdk/cognitiveservices/Knowledge.QnAMaker) | | Question Answering | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.QuestionAnswering-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.0.0/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.1.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/) | | Relay | NuGet [2.0.15596](https://www.nuget.org/packages/Microsoft.Azure.Relay/2.0.15596)
      NuGet [3.0.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Relay/3.0.0-preview) | [docs](/dotnet/api/overview/azure/service-bus-relay) | GitHub [2.0.15596](https://github.com/Azure/azure-relay-dotnet/tree/2.0.1) | -| Schema Registry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.1.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.1.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | +| Schema Registry | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.2.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.2.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | | Schema Registry - Avro | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme-pre) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0-beta.8/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | | Search | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search_10.1.0/sdk/search/Microsoft.Azure.Search/) | | Search - Common | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search.Common/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search.Common_10.1.0/sdk/search/Microsoft.Azure.Search.Common/) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index ce6174403f24e..dfd84f5fb4c77 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -48,7 +48,7 @@ | Purview Catalog | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Analytics.Purview.Catalog/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Catalog-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Catalog_1.0.0-beta.3/sdk/purview/Azure.Analytics.Purview.Catalog/) | | Purview Scanning | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Analytics.Purview.Scanning/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Scanning-readme-pre) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Scanning_1.0.0-beta.2/sdk/purview/Azure.Analytics.Purview.Scanning/) | | Question Answering | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.QuestionAnswering-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.0.0/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.1.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/) | -| Schema Registry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.1.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.1.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | +| Schema Registry | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.2.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.2.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | | Schema Registry - Avro | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme-pre) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0-beta.8/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | | Service Bus | NuGet [7.8.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0/sdk/servicebus/Azure.Messaging.ServiceBus/) | | Storage - Blobs | NuGet [12.12.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0/sdk/storage/Azure.Storage.Blobs/) | From f81655ee6a3e1d75176f79cb437813afb7d49582 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Thu, 12 May 2022 06:00:58 -0700 Subject: [PATCH 218/429] Update package index with latest published versions (#29424) --- docs/azure/includes/dotnet-all.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 603ac40aced3c..57e824954c3df 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -249,7 +249,7 @@ | Data Lake Analytics | NuGet [1.4.211011](https://www.nuget.org/packages/Microsoft.Azure.DataLake.USQL.SDK/1.4.211011) | | | | Data Lake Storage | NuGet [1.2.5-alpha](https://www.nuget.org/packages/Microsoft.Azure.DataLake.Store/1.2.5-alpha) | [docs](/dotnet/api/overview/azure/data-lake-store) | GitHub [1.2.5-alpha](https://github.com/Azure/azure-data-lake-store-net/tree/1.2.3-alpha) | | DCAP | NuGet [1.10.0](https://www.nuget.org/packages/Microsoft.Azure.DCAP/1.10.0) | | GitHub [1.10.0](https://github.com/microsoft/Azure-DCAP-Client/tree/1.6) | -| Devices Client | NuGet [1.40.0](https://www.nuget.org/packages/Microsoft.Azure.Devices.Client/1.40.0)
      NuGet [1.41.0-preview-001](https://www.nuget.org/packages/Microsoft.Azure.Devices.Client/1.41.0-preview-001) | | | +| Devices Client | NuGet [1.41.0](https://www.nuget.org/packages/Microsoft.Azure.Devices.Client/1.41.0)
      NuGet [1.41.0-preview-001](https://www.nuget.org/packages/Microsoft.Azure.Devices.Client/1.41.0-preview-001) | | | | Digital Twins - Core | NuGet [1.2.2](https://www.nuget.org/packages/Azure.DigitalTwins.Core/1.2.2)
      NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.DigitalTwins.Core/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/DigitalTwins.Core-readme) | GitHub [1.2.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.DigitalTwins.Core_1.2.2/sdk/digitaltwins/Azure.DigitalTwins.Core/)
      GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.DigitalTwins.Core_1.4.0-beta.1/sdk/digitaltwins/Azure.DigitalTwins.Core/) | | Document DB | NuGet [2.18.0](https://www.nuget.org/packages/Microsoft.Azure.DocumentDB/2.18.0) | | GitHub [2.18.0](https://github.com/Azure/azure-cosmos-dotnet-v2) | | Document DB - Change Feed Processor | NuGet [2.4.0](https://www.nuget.org/packages/Microsoft.Azure.DocumentDB.ChangeFeedProcessor/2.4.0) | | GitHub [2.4.0](https://github.com/Azure/azure-documentdb-changefeedprocessor-dotnet/tree/master) | From 14f07942d38e64f09333f4567be1afdddddcc254 Mon Sep 17 00:00:00 2001 From: Radek Zikmund <32671551+rzikm@users.noreply.github.com> Date: Thu, 12 May 2022 16:15:37 +0200 Subject: [PATCH 219/429] Disambiguate "client connection" --- docs/framework/network-programming/tls.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/framework/network-programming/tls.md b/docs/framework/network-programming/tls.md index 9b5225f0fa140..402653dc53ed6 100644 --- a/docs/framework/network-programming/tls.md +++ b/docs/framework/network-programming/tls.md @@ -146,7 +146,7 @@ The switches have the same effect whether you're doing HTTP networking (: SchUseStrongCrypto` registry key has a value of type DWORD. A value of 1 causes your app to use strong cryptography. The strong cryptography uses more secure network protocols (TLS 1.2, TLS 1.1, and TLS 1.0) and blocks protocols that are not secure. A value of 0 disables strong cryptography. For more information, see [The SCH_USE_STRONG_CRYPTO flag](#the-sch_use_strong_crypto-flag). This registry setting affects only client connections in your application. +The `HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\: SchUseStrongCrypto` registry key has a value of type DWORD. A value of 1 causes your app to use strong cryptography. The strong cryptography uses more secure network protocols (TLS 1.2, TLS 1.1, and TLS 1.0) and blocks protocols that are not secure. A value of 0 disables strong cryptography. For more information, see [The SCH_USE_STRONG_CRYPTO flag](#the-sch_use_strong_crypto-flag). This registry setting affects only client (outgoing) connections in your application. If your app targets .NET Framework 4.6 or later versions, this key defaults to a value of 1. That's a secure default that we recommend. If your app targets .NET Framework 4.5.2 or earlier versions, the key defaults to 0. In that case, you should explicitly set its value to 1. @@ -240,7 +240,7 @@ When it's enabled (by default, by [an `AppContext` switch](#switchsystemnetdonte - [Secure Channel](/windows/desktop/SecAuthN/secure-channel) - [SCHANNEL_CRED structure](/windows/win32/api/schannel/ns-schannel-schannel_cred) -The `SCH_USE_STRONG_CRYPTO` flag is also passed to `Schannel` for client connections when you explicitly use the `Tls` (TLS 1.0), `Tls11`, or `Tls12` enumerated values of or . The `SCH_USE_STRONG_CRYPTO` flag is used only for connections where your application acts the role of the client. You can disable weak protocols and algorithms when your applications acts the role of the server by configuring the machine-wide `Schannel` registry settings. +The `SCH_USE_STRONG_CRYPTO` flag is also passed to `Schannel` for client (outgoing) connections when you explicitly use the `Tls` (TLS 1.0), `Tls11`, or `Tls12` enumerated values of or . The `SCH_USE_STRONG_CRYPTO` flag is used only for connections where your application acts the role of the client. You can disable weak protocols and algorithms when your applications acts the role of the server by configuring the machine-wide `Schannel` registry settings. ## Security updates From ab1417a867e47f4a41992ca4113aa280549834fc Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Thu, 12 May 2022 11:04:04 -0400 Subject: [PATCH 220/429] address comments made after merging (#29435) I received community comments on #29283 after merging. This fixes those issues. --- .../language-reference/compiler-options/errors-warnings.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/csharp/language-reference/compiler-options/errors-warnings.md b/docs/csharp/language-reference/compiler-options/errors-warnings.md index 62a19158527a7..8268c4b9ea7ed 100644 --- a/docs/csharp/language-reference/compiler-options/errors-warnings.md +++ b/docs/csharp/language-reference/compiler-options/errors-warnings.md @@ -81,7 +81,7 @@ All warning messages are instead reported as errors. The build process halts (no ## WarningsAsErrors and WarningsNotAsErrors -The **WarningsAsErrors** and **WarningsNotAsErrors** options override the **TreatWarningsAsErrors** option for a list of warnings. This option can be used with all *CS* warnings. The "CS" prefix is optional. You can use either the number, or "CS" followed by the error or warning level. For other elements that affect warnings, see the [Common MSBuild properties](/visualstudio/msbuild/common-msbuild-project-properties). +The **WarningsAsErrors** and **WarningsNotAsErrors** options override the **TreatWarningsAsErrors** option for a list of warnings. This option can be used with all *CS* warnings. The "CS" prefix is optional. You can use either the number, or "CS" followed by the error or warning number. For other elements that affect warnings, see the [Common MSBuild properties](/visualstudio/msbuild/common-msbuild-project-properties). Enable warnings 0219 and 0168 as errors: @@ -139,7 +139,7 @@ You can specify the SARIF format using the `version` argument to the `ErrorLog` logVersion21.json,version=2.1 ``` -The separator can be either a comma (`,`) or a semicolon (`;`). Valid values are for version are: "1", "2", and "2.1". The default is "1". "2" and "2.1" both mean SARIF version 2.1.0. +The separator can be either a comma (`,`) or a semicolon (`;`). Valid values for version are: "1", "2", and "2.1". The default is "1". "2" and "2.1" both mean SARIF version 2.1.0. ## ReportAnalyzer @@ -152,4 +152,4 @@ Report additional analyzer information, such as execution time. The **ReportAnalyzer** option causes the compiler to emit extra MSBuild log information that details the performance characteristics of analyzers in the build. It's typically used by analyzer authors as part of validating the analyzer. > [!IMPORTANT] -> The extra log information generated by this flag is only generated when the `-verbosity:detailed` command line option is used. See the [swtiches](/visualstudio/msbuild/msbuild-command-line-reference#switches) article in the MSBuild documentation for more information. +> The extra log information generated by this flag is only generated when the `-verbosity:detailed` command line option is used. See the [switches](/visualstudio/msbuild/msbuild-command-line-reference#switches) article in the MSBuild documentation for more information. From 5ba83b20450532d96b131ed91ac815359ab85041 Mon Sep 17 00:00:00 2001 From: Tom Dykstra Date: Thu, 12 May 2022 08:44:37 -0700 Subject: [PATCH 221/429] CLI reference article for dotnet watch (#29300) --- .../tools/dotnet-environment-variables.md | 26 +- docs/core/tools/dotnet-watch.md | 257 ++++++++++++++++++ docs/core/tools/dotnet.md | 4 +- docs/fundamentals/toc.yml | 3 + 4 files changed, 267 insertions(+), 23 deletions(-) create mode 100644 docs/core/tools/dotnet-watch.md diff --git a/docs/core/tools/dotnet-environment-variables.md b/docs/core/tools/dotnet-environment-variables.md index 82b0d4f3e87ce..30404d68a1896 100644 --- a/docs/core/tools/dotnet-environment-variables.md +++ b/docs/core/tools/dotnet-environment-variables.md @@ -1,7 +1,7 @@ --- title: .NET environment variables description: Learn about the environment variables that you can use to configure the .NET SDK, .NET CLI, and .NET runtime. -ms.date: 01/31/2022 +ms.date: 05/11/2022 --- # .NET environment variables @@ -297,26 +297,6 @@ The typical way to get detailed trace information about application startup is t If set to `true`, invoking `dotnet` won't produce a warning when a preview SDK is being used. -### `DOTNET_WATCH_*` - -The following .NET watch settings are available as environment variables: - -- `DOTNET_WATCH`: The `dotnet watch` command sets this variable to `1` on all child processes launched. -- `DOTNET_WATCH_ITERATION`: The `dotnet watch` command sets this variable to `1` and increments by one each time - a file is changed and the command is restarted. -- `DOTNET_WATCH_SUPPRESS_STATIC_FILE_HANDLING`: If set to `1`, or `true`, `dotnet watch` will _not_ perform special handling for static content file. -- `DOTNET_WATCH_SUPPRESS_MSBUILD_INCREMENTALISM`: By default, `dotnet watch` optimizes the build by avoiding certain operations such as running `restore` or re-evaluating the set of watched files on every file change. If set to `1` or `true`, these optimizations are disabled. -- `DOTNET_WATCH_SUPPRESS_LAUNCH_BROWSER`: The `dotnet watch run` command will attempt to launch browsers for web apps with `launchBrowser` configured in the _launchSettings.json_ file. If set to `1` or `true`, this behavior is suppressed. -- `DOTNET_WATCH_SUPPRESS_BROWSER_REFRESH` -- `DOTNET_WATCH_AUTO_RELOAD_WS_HOSTNAME`: As part of `dotnet watch`, the browser refresh server mechanism reads this value to determine the WebSocket host environment. The value `127.0.0.1` is replaced by `localhost`, and the `http://` and `https://` schemes are replaced with `ws://` and `wss://` respectively. -- `DOTNET_HOTRELOAD_NAMEDPIPE_NAME`: This value is configured by `dotnet watch` when the app is to be launched, and it specifies the named pipe. - -For more information, see [GitHub: .NET SDK dotnet-watch](https://github.com/dotnet/sdk/blob/main/src/BuiltInTools/dotnet-watch/README.md). - -#### `DOTNET_USE_POLLING_FILE_WATCHER` - -When set to `1` or `true`, `dotnet watch` will poll the file system for changes. This is required for some file systems, such as network shares, Docker mounted volumes, and other virtual file systems. The class uses `DOTNET_USE_POLLING_FILE_WATCHER` to determine whether the method will rely on the . - ### Configure MSBuild in the .NET CLI To execute MSBuild out-of-process, set the `DOTNET_CLI_RUN_MSBUILD_OUTOFPROC` environment variable to either `1`, `true`, or `yes`. By default, MSBuild will execute in-proc. To force MSBuild to use an external working node long-living process for building projects, set `DOTNET_CLI_USE_MSBUILDNOINPROCNODE` to `1`, `true`, or `yes`. This will set the `MSBUILDNOINPROCNODE` environment variable to `1`, which is referred to as _MSBuild Server V1_, as the entry process forwards most of the work to it. @@ -333,6 +313,10 @@ These are overrides that are used to force the resolved SDK tasks and targets to Configures the default programming language for the `dotnet new` command when the `-lang|--language` switch is omitted. The default value is `C#`. Valid values are `C#`, `F#`, or `VB`. For more information, see [dotnet new](dotnet-new.md). +### `dotnet watch` environment variables + +For information about `dotnet watch` settings that are available as environment variables, see [dotnet watch environment variables](dotnet-watch.md#environment-variables). + ## See also - [dotnet command](dotnet.md) diff --git a/docs/core/tools/dotnet-watch.md b/docs/core/tools/dotnet-watch.md new file mode 100644 index 0000000000000..84831fcf37f1f --- /dev/null +++ b/docs/core/tools/dotnet-watch.md @@ -0,0 +1,257 @@ +--- +title: dotnet watch command +description: The dotnet watch command is a file watcher that restarts or hot reloads the specified application when changes in the source code are detected. +ms.date: 05/11/2022 +--- +# dotnet watch + +**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions + +## Name + +`dotnet watch` - Restarts or [hot reloads](#hot-reload) the specified application when changes in the source code are detected. + +## Synopsis + +```dotnetcli +dotnet watch [--list] + [--no-hot-reload] [--non-interactive] + [--project ] + [-q|--quiet] [-v|--verbose] + [--version] + [--] + +dotnet watch -?|-h|--help +``` + +## Description + +The `dotnet watch` command is a file watcher. When it detects a change that is supported for [hot reload](#hot-reload), it hot reloads the specified application. When it detects an unsupported change, it restarts the application. This process enables fast iterative development from the command line. + +While running `dotnet watch`, you can force the app to rebuild and restart by pressing Ctrl+R in the command shell. This feature is available only while the app is running. For example, if you run `dotnet watch` on a console app that ends before you press Ctrl+R, pressing Ctrl+R has no effect. However, in that case `dotnet watch` is still watching files and will restart the app if a file is updated. + +## Arguments + + + +- **`forwarded arguments`** + + Arguments to pass to the child `dotnet` process. For example: `run` with options for [dotnet run](dotnet-run.md) or `test` with options for [dotnet test](dotnet-test.md). If the child command isn't specified, the default is `run` for `dotnet run`. + +## Options + +- **`--list`** + + Lists all discovered files without starting the watcher. + +- **`--no-hot-reload`** + + Suppress [hot reload](#hot-reload) for [supported apps](/visualstudio/debugger/hot-reload#supported-net-app-frameworks-and-scenarios). + +- **`--non-interactive`** + + Runs `dotnet watch` in non-interactive mode. Use this option to prevent console input from being requested. When hot reload is enabled and a [rude edit](#rude-edits) is detected, dotnet watch restarts the app. + +- **`--project `** + + Specifies the path of the project file to run (folder only or including the project file name). If not specified, it defaults to the current directory. + +- **`-q|--quiet`** + + Suppresses all output that is generated by the `dotnet watch` command except warnings and errors. The option is not passed on to child commands. For example, output from `dotnet restore` and `dotnet run` continues to be output. + +- **`-v|--verbose`** + + Shows verbose output for debugging. + +- **`--version`** + + Shows the version of `dotnet watch`. + +- **`--`** + + The [double-dash option ('--')](../../standard/commandline/syntax.md#the----token) can be used to delimit `dotnet watch` options from arguments that will be passed to the child process. Its use is optional. When the double-dash option isn't used, `dotnet watch` considers the first unrecognized argument to be the beginning of arguments that it should pass into the child `dotnet` process. + +## Environment variables + +`dotnet watch` uses the following environment variables: + +- **`DOTNET_HOTRELOAD_NAMEDPIPE_NAME`** + + This value is configured by `dotnet watch` when the app is to be launched, and it specifies the named pipe. + +- **`DOTNET_USE_POLLING_FILE_WATCHER`** + + When set to `1` or `true`, `dotnet watch` uses a polling file watcher instead of . Polling is required for some file systems, such as network shares, Docker mounted volumes, and other virtual file systems. The class uses `DOTNET_USE_POLLING_FILE_WATCHER` to determine whether the method will rely on the . + +- **`DOTNET_WATCH`** + + `dotnet watch` sets this variable to `1` on all child processes that it launches. + +- **`DOTNET_WATCH_AUTO_RELOAD_WS_HOSTNAME`** + + As part of `dotnet watch`, the browser refresh server mechanism reads this value to determine the WebSocket host environment. The value `127.0.0.1` is replaced by `localhost`, and the `http://` and `https://` schemes are replaced with `ws://` and `wss://` respectively. + +- **`DOTNET_WATCH_ITERATION`** + + `dotnet watch` sets this variable to `1` and increments by one each time a file is changed and the command restarts or hot reloads the application. + +- **`DOTNET_WATCH_SUPPRESS_BROWSER_REFRESH`** + + When set to `1` or `true`, `dotnet watch` won't refresh browsers when it detects file changes. + +- **`DOTNET_WATCH_SUPPRESS_EMOJIS`** + + With the .NET SDK 6.0.300 and later, `dotnet watch` emits non-ASCII characters to the console, as shown in the following example: + + ```output + dotnet watch 🔥 Hot reload enabled. For a list of supported edits, see https://aka.ms/dotnet/hot-reload. + 💡 Press "Ctrl + R" to restart. + dotnet watch 🔧 Building... + dotnet watch 🚀 Started + dotnet watch ⌚ Exited + dotnet watch ⏳ Waiting for a file to change before restarting dotnet... + ``` + + On certain console hosts, these characters may appear garbled. To avoid seeing garbled characters, set this variable to `1` or `true`. + +- **`DOTNET_WATCH_SUPPRESS_LAUNCH_BROWSER`** + + When set to `1` or `true`, `dotnet watch` won't launch or refresh browsers for web apps that have `launchBrowser` configured in *launchSettings.json*. + +- **`DOTNET_WATCH_SUPPRESS_MSBUILD_INCREMENTALISM`** + + By default, `dotnet watch` optimizes the build by avoiding certain operations, such as running restore or re-evaluating the set of watched files on every file change. If this variable is set to `1` or `true`, these optimizations are disabled. + +- **`DOTNET_WATCH_SUPPRESS_STATIC_FILE_HANDLING`** + + When set to `1` or `true`, `dotnet watch` won't do special handling for static content files. `dotnet watch` sets MSBuild property `DotNetWatchContentFiles` to `false`. + +## Files watched by default + +`dotnet watch` watches all items in the `Watch` item group in the project file. By default, this group includes all items in the `Compile` and `EmbeddedResource` groups. `dotnet watch` also scans the entire graph of project references and watches all files within those projects. + +By default, the `Compile` and `EmbeddedResource` groups include all files matching the following glob patterns: + +* `**/*.cs` +* `*.csproj` +* `**/*.resx` +* Content files in web apps: `wwwroot/**` + +By default, *.config*, and *.json* files don't trigger a dotnet watch restart because the configuration system has its own mechanisms for handling configuration changes. + +Files can be added to the watch list or removed from the list by editing the project file. Files can be specified individually or by using glob patterns. + +## Watch additional files + +More files can be watched by adding items to the `Watch` group. For example, the following markup extends that group to include JavaScript files: + +```xml + + + +``` + +## Ignore specified files + +`dotnet watch` will ignore `Compile` and `EmbeddedResource` items that have the `Watch="false"` attribute, as shown in the following example: + +```xml + + + + +``` + +`dotnet watch` will ignore project references that have the `Watch="false"` attribute, as shown in the following example: + +```xml + + + +``` + +## Advanced configuration + +`dotnet watch` performs a design-time build to find items to watch. When this build is run, `dotnet watch` sets the property `DotNetWatchBuild=true`. This property can be used as shown in the following example: + +```xml + + + +``` + +## Hot Reload + +Starting in .NET 6, `dotnet watch` includes support for *hot reload*. Hot reload is a feature that lets you apply changes to a running app without having to rebuild and restart it. The changes may be to code files or static assets, such as stylesheet files and JavaScript files. This feature streamlines the local development experience, as it gives immediate feedback when you modify your app. + +For information about app types and .NET versions that support hot reload, see [Supported .NET app frameworks and scenarios](/visualstudio/debugger/hot-reload#supported-net-app-frameworks-and-scenarios). + +### Rude edits + +When a file is modified, `dotnet watch` determines if the app can be hot reloaded. If it can't be hot reloaded, the change is called a *rude edit* and `dotnet watch` asks if you want to restart the app: + +```dotnetcli +dotnet watch ⌚ Unable to apply hot reload because of a rude edit. + ❔ Do you want to restart your app - Yes (y) / No (n) / Always (a) / Never (v)? +``` + +* **Yes**: Restarts the app. +* **No**: Leaves the app running without the changes applied. +* **Always**: Restarts the app and doesn't prompt anymore for rude edits. +* **Never**: Leaves the app running without the changes applied and doesn't prompt anymore for rude edits. + +For information about what kinds of changes are considered rude edits, see [Edit code and continue debugging](/visualstudio/debugger/edit-and-continue) and [Unsupported changes to code](/visualstudio/debugger/supported-code-changes-csharp#unsupported-changes-to-code). + +To disable hot reload when you run `dotnet watch`, use the `--no-hot-reload` option, as shown in the following example: + +```.NET CLI +dotnet watch --no-hot-reload +``` + +## Examples + +- Run `dotnet run` for the project in the current directory whenever source code changes: + + ```dotnetcli + dotnet watch + ``` + + Or: + + ```dotnetcli + dotnet watch run + ``` + +- Run `dotnet test` for the project in the current directory whenever source code changes: + + ```dotnetcli + dotnet watch test + ``` + +- Run `dotnet run --project ./HelloWorld.csproj` whenever source code changes: + + ```dotnetcli + dotnet watch run --project ./HelloWorld.csproj + ``` + +- Run `dotnet run -- arg0` for the project in the current directory whenever source code changes: + + ```dotnetcli + dotnet watch run -- arg0 + ``` + + Or: + + ```dotnetcli + dotnet watch -- run arg0 + ``` + +## See also + +* [Tutorial: Develop ASP.NET Core apps using a file watcher](/aspnet/core/tutorials/dotnet-watch) +* [Hot reload in Visual Studio](/visualstudio/debugger/hot-reload) +* [Hot reload supported apps](/visualstudio/debugger/hot-reload#supported-net-app-frameworks-and-scenarios) +* [Hot reload supported code changes](/visualstudio/debugger/supported-code-changes-csharp) +* [Hot reload test execution](/visualstudio/test/test-execution-with-hot-reload) +* [Hot reload support for ASP.NET Core](/aspnet/core/test/hot-reload) diff --git a/docs/core/tools/dotnet.md b/docs/core/tools/dotnet.md index 99bd5b3b798cc..15c0253c38811 100644 --- a/docs/core/tools/dotnet.md +++ b/docs/core/tools/dotnet.md @@ -1,7 +1,7 @@ --- title: dotnet command description: Learn about the dotnet command (the generic driver for the .NET CLI) and its usage. -ms.date: 07/19/2021 +ms.date: 05/06/2022 --- # dotnet command @@ -226,7 +226,7 @@ The following additional tools are available as part of the .NET SDK: | dev-certs | Creates and manages development certificates. | | [ef](/ef/core/miscellaneous/cli/dotnet) | Entity Framework Core command-line tools. | | [user-secrets](/aspnet/core/security/app-secrets) | Manages development user secrets. | -| [watch](/aspnet/core/tutorials/dotnet-watch) | Starts a file watcher that runs a command when files change. | +| [watch](dotnet-watch.md) | A file watcher that restarts or hot reloads an application when it detects changes in the source code. | For more information about each tool, type `dotnet --help`. diff --git a/docs/fundamentals/toc.yml b/docs/fundamentals/toc.yml index 076d0e36a089f..dfaa07e63e094 100644 --- a/docs/fundamentals/toc.yml +++ b/docs/fundamentals/toc.yml @@ -350,6 +350,9 @@ items: href: ../core/tools/dotnet-tool-update.md - name: dotnet vstest href: ../core/tools/dotnet-vstest.md + - name: dotnet watch + displayName: hot reload + href: ../core/tools/dotnet-watch.md - name: dotnet workload items: - name: dotnet workload install From d72da671e049162fb667519d3c41ba7c72e05502 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Thu, 12 May 2022 09:51:08 -0700 Subject: [PATCH 222/429] updates for corewcf availability (#29425) --- .../container-framework-choice-factors.md | 10 +++++----- .../general-guidance.md | 2 +- .../net-framework-container-scenarios.md | 4 +--- .../modernize-desktop/example-migration.md | 3 +-- .../modernize-with-azure-containers/index.md | 2 +- .../migration-considerations.md | 4 ++-- docs/core/porting/index.md | 4 ++-- docs/core/porting/net-framework-tech-unavailable.md | 9 ++++++--- docs/core/whats-new/dotnet-5.md | 2 +- docs/standard/choosing-core-framework-server.md | 2 -- 10 files changed, 20 insertions(+), 22 deletions(-) diff --git a/docs/architecture/microservices/net-core-net-framework-containers/container-framework-choice-factors.md b/docs/architecture/microservices/net-core-net-framework-containers/container-framework-choice-factors.md index f71cf5e4eee7f..ce9c48ffe83ed 100644 --- a/docs/architecture/microservices/net-core-net-framework-containers/container-framework-choice-factors.md +++ b/docs/architecture/microservices/net-core-net-framework-containers/container-framework-choice-factors.md @@ -1,13 +1,13 @@ --- -title: Decision table. .NET frameworks to use for Docker -description: .NET Microservices Architecture for Containerized .NET Applications | Decision table, .NET frameworks to use for Docker +title: Decision table. .NET implementations to use for Docker +description: .NET Microservices Architecture for Containerized .NET Applications | Decision table, .NET implementations to use for Docker ms.date: 11/19/2021 --- -# Decision table: .NET frameworks to use for Docker +# Decision table: .NET implementations to use for Docker [!INCLUDE [download-alert](../includes/download-alert.md)] -The following decision table summarizes whether to use .NET Framework or .NET 6. Remember that for Linux containers, you need Linux-based Docker hosts (VMs or servers) and that for Windows Containers you need Windows Server based Docker hosts (VMs or servers). +The following decision table summarizes whether to use .NET Framework or .NET 6. Remember that for Linux containers, you need Linux-based Docker hosts (VMs or servers), and that for Windows Containers, you need Windows Server-based Docker hosts (VMs or servers). > [!IMPORTANT] > Your development machines will run one Docker host, either Linux or Windows. Related microservices that you want to run and test together in one solution will all need to run on the same container platform. @@ -22,7 +22,7 @@ The following decision table summarizes whether to use .NET Framework or .NET 6. | ASP.NET Core | .NET 6 | .NET 6 (recommended)
      .NET Framework | | ASP.NET 4 (MVC 5, Web API 2, and Web Forms) | -- | .NET Framework | | SignalR services | .NET Core 2.1 or higher version | .NET Framework
      .NET Core 2.1 or higher version | -| WCF, WF, and other legacy frameworks | WCF in .NET Core (client library only) | .NET Framework
      WCF in .NET 6 (client library only) | +| WCF, WF, and other legacy frameworks | WCF in .NET Core (client library only) or [CoreWCF](https://www.nuget.org/profiles/corewcf) | .NET Framework
      WCF in .NET 6 (client library only) or [CoreWCF](https://www.nuget.org/profiles/corewcf) | | Consumption of Azure services | .NET 6
      (eventually most Azure services will provide client SDKs for .NET 6) | .NET Framework
      .NET 6
      (eventually most Azure services will provide client SDKs for .NET 6) | >[!div class="step-by-step"] diff --git a/docs/architecture/microservices/net-core-net-framework-containers/general-guidance.md b/docs/architecture/microservices/net-core-net-framework-containers/general-guidance.md index bd23cff1760c7..eb800bc219f8f 100644 --- a/docs/architecture/microservices/net-core-net-framework-containers/general-guidance.md +++ b/docs/architecture/microservices/net-core-net-framework-containers/general-guidance.md @@ -29,7 +29,7 @@ Use .NET Framework for your containerized Docker server application when: - You need to use third-party .NET libraries or NuGet packages that are not available for .NET 6. -Using .NET Framework on Docker can improve your deployment experiences by minimizing deployment issues. This ["lift and shift" scenario](https://aka.ms/liftandshiftwithcontainersebook) is important for containerizing legacy applications that were originally developed with the traditional .NET Framework, like ASP.NET WebForms, MVC web apps or WCF (Windows Communication Foundation) services. +Using .NET Framework on Docker can improve your deployment experiences by minimizing deployment issues. This ["lift and shift" scenario](https://aka.ms/liftandshiftwithcontainersebook) is important for containerizing legacy applications that were originally developed with the traditional .NET Framework, like ASP.NET WebForms, MVC web apps, or WCF (Windows Communication Foundation) services. ### Additional resources diff --git a/docs/architecture/microservices/net-core-net-framework-containers/net-framework-container-scenarios.md b/docs/architecture/microservices/net-core-net-framework-containers/net-framework-container-scenarios.md index 49a8eb25ef3f0..9873e3137edd8 100644 --- a/docs/architecture/microservices/net-core-net-framework-containers/net-framework-container-scenarios.md +++ b/docs/architecture/microservices/net-core-net-framework-containers/net-framework-container-scenarios.md @@ -25,14 +25,12 @@ However, even with that exceptional progression since .NET Standard 2.0 and .NET ## Using .NET technologies not available for .NET 6 -Some .NET Framework technologies aren't available in the current version of .NET (version 5.0 as of this writing). Some of them might become available in later releases, but others don't fit the new application patterns targeted by .NET Core and might never be available. +Some .NET Framework technologies aren't available in .NET 6. Some of them might become available in later releases, but others don't fit the new application patterns targeted by .NET Core and might never be available. The following list shows most of the technologies that aren't available in .NET 6: - ASP.NET Web Forms. This technology is only available on .NET Framework. Currently there are no plans to bring ASP.NET Web Forms to .NET or later. -- WCF services. Even when a [WCF-Client library](https://github.com/dotnet/wcf) is available to consume WCF services from .NET 6, as of Jan-2021, the WCF server implementation is only available on .NET Framework. - - Workflow-related services. Windows Workflow Foundation (WF), Workflow Services (WCF + WF in a single service), and WCF Data Services (formerly known as ADO.NET Data Services) are only available on .NET Framework. There are currently no plans to bring them to .NET 6. In addition to the technologies listed in the official [.NET roadmap](https://github.com/dotnet/core/blob/main/roadmap.md), other features might be ported to the new [unified .NET platform](https://devblogs.microsoft.com/dotnet/introducing-net-5/). You might consider participating in the discussions on GitHub so that your voice can be heard. And if you think something is missing, file a new issue in the [dotnet/runtime](https://github.com/dotnet/runtime/issues/new) GitHub repository. diff --git a/docs/architecture/modernize-desktop/example-migration.md b/docs/architecture/modernize-desktop/example-migration.md index 488009308c555..c4379ea336746 100644 --- a/docs/architecture/modernize-desktop/example-migration.md +++ b/docs/architecture/modernize-desktop/example-migration.md @@ -102,7 +102,7 @@ Update the versions of the packages you've found to be compatible, as shown in t #### Microsoft.Windows.Compatibility -If your application depends on APIs that aren't available on .NET, such as Registry, ACLs, or WCF, you have to include a reference to the `Microsoft.Windows.Compatibility` package to add these Windows-specific APIs. They work on .NET but aren't included as they aren't cross-platform. +If your application depends on APIs that aren't available on .NET, such as Registry or ACLs, you have to include a reference to the `Microsoft.Windows.Compatibility` package to add these Windows-specific APIs. They work on .NET but aren't included as they aren't cross-platform. There's a tool called Platform compatibility analyzer ([https://docs.microsoft.com/dotnet/standard/analyzers/platform-compat-analyzer](../../standard/analyzers/platform-compat-analyzer.md)) that helps you identify APIs that aren't compatible with your code. @@ -117,7 +117,6 @@ Some technologies aren't available on .NET, such as: * AppDomains * Remoting * Code Access Security -* WCF Server * Windows Workflow That's why you need to find a replacement for these technologies if you're using them in your application. For more information, see the [.NET Framework technologies unavailable on .NET Core and .NET 5+](../../core/porting/net-framework-tech-unavailable.md) article. diff --git a/docs/architecture/modernize-with-azure-containers/index.md b/docs/architecture/modernize-with-azure-containers/index.md index 86aed0e2a7092..a6b2d6cf1666f 100644 --- a/docs/architecture/modernize-with-azure-containers/index.md +++ b/docs/architecture/modernize-with-azure-containers/index.md @@ -180,7 +180,7 @@ This guide doesn't show you how to create Cloud-Native applications, such as how ## Who should use this guide -This guide was written for developers and solution architects who want to modernize existing ASP.NET web applications or WCF services that are based on the .NET Framework, for improved agility in shipping and releasing applications. +This guide was written for developers and solution architects who want to modernize existing ASP.NET web applications or WCF services that are based on .NET Framework, for improved agility in shipping and releasing applications. You also might find this guide useful if you are a technical decision maker, such as an enterprise architect or a development lead/director who just wants an overview of the benefits that you can get by using Windows Containers, and by deploying to the cloud when using Microsoft Azure. diff --git a/docs/architecture/porting-existing-aspnet-apps/migration-considerations.md b/docs/architecture/porting-existing-aspnet-apps/migration-considerations.md index e2198849b53b3..504f08157cb23 100644 --- a/docs/architecture/porting-existing-aspnet-apps/migration-considerations.md +++ b/docs/architecture/porting-existing-aspnet-apps/migration-considerations.md @@ -51,9 +51,9 @@ Application domains (AppDomains) isolate apps from one another. AppDomains requi ### WCF -Server-side WCF isn't supported in .NET Core. .NET Core supports WCF clients but not WCF hosts. Apps that require this functionality will need to upgrade to a different communication technology (such as gRPC or REST) as part of a migration. +.NET Core and .NET 5+ support WCF clients. Server-side WCF is possible through [CoreWCF](https://www.nuget.org/profiles/corewcf), which is officially supported by Microsoft as of April 2022. Apps that require server-side WCF functionality can also consider a different communication technology (such as gRPC or REST) as part of a migration. -There is a [WCF client port available from the .NET Foundation](../../core/whats-new/dotnet-5.md#windows-communication-foundation). It is entirely open source, cross platform, and supported by Microsoft. There is also a community-supported [CoreWCF project](https://github.com/CoreWCF/CoreWCF) that is *not* officially supported by Microsoft. +There is a [WCF client port available from the .NET Foundation](../../core/whats-new/dotnet-5.md#windows-communication-foundation). It's entirely open source, cross platform, and supported by Microsoft. To learn more about migrating from WCF to gRPC, consult the [gRPC for WCF Developers](../grpc-for-wcf-developers/index.md) ebook. diff --git a/docs/core/porting/index.md b/docs/core/porting/index.md index 9348736067105..92aef605b4d66 100644 --- a/docs/core/porting/index.md +++ b/docs/core/porting/index.md @@ -67,9 +67,9 @@ There are a few technologies in .NET Framework that don't exist in .NET: (COM+) isn't supported in .NET. -- Windows Workflow Foundation (WF) and Windows Communication Foundation (WCF) +- Windows Workflow Foundation (WF) - WF and WCF aren't supported in .NET 5+ (including .NET Core). For alternatives, see [CoreWF](https://github.com/UiPath/corewf) and [CoreWCF](https://github.com/CoreWCF/CoreWCF). + WF isn't supported in .NET 5+ (including .NET Core). For an alternative, see [CoreWF](https://github.com/UiPath/corewf). For more information about these unsupported technologies, see [.NET Framework technologies unavailable on .NET Core and .NET 5+](net-framework-tech-unavailable.md). diff --git a/docs/core/porting/net-framework-tech-unavailable.md b/docs/core/porting/net-framework-tech-unavailable.md index 0299376696cfb..031084498765e 100644 --- a/docs/core/porting/net-framework-tech-unavailable.md +++ b/docs/core/porting/net-framework-tech-unavailable.md @@ -2,7 +2,7 @@ title: .NET Framework technologies unavailable on .NET Core and .NET 5+ titleSuffix: "" description: Learn about .NET Framework technologies that are unavailable on .NET Core and .NET 5 and later versions. -ms.date: 05/21/2021 +ms.date: 05/11/2022 ms.topic: reference --- # .NET Framework technologies unavailable on .NET Core and .NET 5+ @@ -43,9 +43,12 @@ Use security boundaries provided by the operating system, such as virtualization (COM+) isn't supported by .NET Core and .NET 5+. -## Workflow Foundation and WCF +## Workflow Foundation -Windows Workflow Foundation (WF) and Windows Communication Foundation (WCF) are not supported in .NET 5+ (including .NET Core). For alternatives, see [CoreWF](https://github.com/UiPath/corewf) and [CoreWCF](https://github.com/CoreWCF/CoreWCF). +Windows Workflow Foundation (WF) is not supported in .NET 5+ (including .NET Core). For an alternative, see [CoreWF](https://github.com/UiPath/corewf). + +> [!TIP] +> Windows Communication Foundation (WCF) server can be used in .NET 5+ by using the [CoreWCF NuGet packages](https://www.nuget.org/profiles/corewcf). For more information, see [CoreWCF 1.0 has been Released](https://devblogs.microsoft.com/dotnet/corewcf-v1-released/). ## Saving assemblies generated by reflection diff --git a/docs/core/whats-new/dotnet-5.md b/docs/core/whats-new/dotnet-5.md index d451415cd824e..46ab26ef7fc6b 100644 --- a/docs/core/whats-new/dotnet-5.md +++ b/docs/core/whats-new/dotnet-5.md @@ -55,7 +55,7 @@ The original implementation of [Windows Communication Foundation (WCF)](../../fr - [System.ServiceModel.Primitives](https://www.nuget.org/packages/System.ServiceModel.Primitives) - [System.ServiceModel.Security](https://www.nuget.org/packages/System.ServiceModel.Security) -The community maintains the server components that complement the aforementioned client libraries. The GitHub repository can be found at [CoreWCF](https://github.com/CoreWCF/CoreWCF). The server components are _not_ officially supported by Microsoft. For an alternative to WCF, consider [gRPC](/aspnet/core/grpc). +The server components that complement the aforementioned client libraries are available through [CoreWCF](https://www.nuget.org/profiles/corewcf). As of April 2022, CoreWCF is officially supported by Microsoft. However, for an alternative to WCF, consider [gRPC](/aspnet/core/grpc). ## .NET 5 doesn't replace .NET Standard diff --git a/docs/standard/choosing-core-framework-server.md b/docs/standard/choosing-core-framework-server.md index 60ce47299586e..b08e0a36f668a 100644 --- a/docs/standard/choosing-core-framework-server.md +++ b/docs/standard/choosing-core-framework-server.md @@ -87,8 +87,6 @@ Some .NET Framework technologies aren't available in .NET. The following list sh - ASP.NET Web Pages applications: ASP.NET Web Pages aren't included in ASP.NET Core. -- WCF services implementation. Even when there's a [WCF client library](https://github.com/dotnet/wcf) to consume WCF services from .NET, WCF server implementation is currently only available in .NET Framework. - - Workflow-related services: Windows Workflow Foundation (WF), Workflow Services (WCF + WF in a single service), and WCF Data Services (formerly known as "ADO.NET Data Services") are only available in .NET Framework. - Language support: Visual Basic and F# are currently supported in .NET, but not for all project types. For a list of supported project templates, see [Template options for dotnet new](../core/tools/dotnet-new.md#arguments). From 4aeb567b1c827e866079965677c6c0220edc86fd Mon Sep 17 00:00:00 2001 From: Chris Sienkiewicz Date: Thu, 12 May 2022 10:33:45 -0700 Subject: [PATCH 223/429] Correct DisabledWarnings to NoWarn (#28785) * Correct DisabledWarnings to NoWarn The CSC task option is called `DisabledWarnings` but the actual property passed to it from MSBuild matches the compiler name of `NoWarn` See https://github.com/dotnet/roslyn/blob/main/src/Compilers/Core/MSBuildTask/Microsoft.CSharp.Core.targets#L91 * Fix links * fix warnings Co-authored-by: Bill Wagner --- .../ca1416-platform-compatibility-analyzer.md | 2 +- .../compiler-messages/index.md | 2 +- .../compiler-options/errors-warnings.md | 20 +++++++++---------- docs/csharp/misc/cs0642.md | 2 +- docs/csharp/misc/cs2023.md | 2 +- docs/csharp/misc/cs2029.md | 2 +- .../language-reference/compiler-options.md | 2 +- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/core/compatibility/code-analysis/5.0/ca1416-platform-compatibility-analyzer.md b/docs/core/compatibility/code-analysis/5.0/ca1416-platform-compatibility-analyzer.md index 1694a4ca8dc3c..967ff6488f303 100644 --- a/docs/core/compatibility/code-analysis/5.0/ca1416-platform-compatibility-analyzer.md +++ b/docs/core/compatibility/code-analysis/5.0/ca1416-platform-compatibility-analyzer.md @@ -88,7 +88,7 @@ public void PlayCMajor() If you don't want to fix all your call sites, you can choose one of the following options to suppress the warning: -- To suppress rule CA1416, you can do so using `#pragma` or the [**DisabledWarnings**](../../../../csharp/language-reference/compiler-options/errors-warnings.md#disabledwarnings) compiler flag, or by [setting the rule's severity](../../../../fundamentals/code-analysis/configuration-options.md#severity-level) to `none` in an .editorconfig file. +- To suppress rule CA1416, you can do so using `#pragma` or the [**NoWarn**](../../../../csharp/language-reference/compiler-options/errors-warnings.md#nowarn) compiler flag, or by [setting the rule's severity](../../../../fundamentals/code-analysis/configuration-options.md#severity-level) to `none` in an .editorconfig file. ```csharp public void PlayCMajor() diff --git a/docs/csharp/language-reference/compiler-messages/index.md b/docs/csharp/language-reference/compiler-messages/index.md index 0c63ba0e18a87..0d94e90b8b8fb 100644 --- a/docs/csharp/language-reference/compiler-messages/index.md +++ b/docs/csharp/language-reference/compiler-messages/index.md @@ -26,4 +26,4 @@ For information about how to configure error and warning options in C#, see [C# - [C# Compiler Options](../compiler-options/index.md) - [Build Page, Project Designer (C#)](/visualstudio/ide/reference/build-page-project-designer-csharp) - [**WarningLevel** (C# Compiler Options)](../compiler-options/errors-warnings.md#warninglevel) -- [**DisabledWarnings** (C# Compiler Options)](../compiler-options/errors-warnings.md#disabledwarnings) +- [**NoWarn** (C# Compiler Options)](../compiler-options/errors-warnings.md#nowarn) diff --git a/docs/csharp/language-reference/compiler-options/errors-warnings.md b/docs/csharp/language-reference/compiler-options/errors-warnings.md index 8268c4b9ea7ed..82cdf53166193 100644 --- a/docs/csharp/language-reference/compiler-options/errors-warnings.md +++ b/docs/csharp/language-reference/compiler-options/errors-warnings.md @@ -9,7 +9,7 @@ helpviewer_keywords: - "TreatWarningsAsErrors compiler option [C#]" - "WarningsAsErrors compiler option [C#]" - "WarningsNotAsErrors compiler option [C#]" - - "DisabledWarnings compiler option [C#]" + - "NoWarn compiler option [C#]" - "CodeAnalysisRuleSet compiler option [C#]" - "ErrorLog compiler option [C#]" - "ReportAnalyzer compiler option [C#]" @@ -23,7 +23,7 @@ The following options control how the compiler reports errors and warnings. The - **TreatWarningsAsErrors** / `-warnaserror`: Treat all warnings as errors - **WarningsAsErrors** / `-warnaserror`: Treat one or more warnings as errors - **WarningsNotAsErrors** / `-warnnotaserror`: Treat one or more warnings not as errors -- **DisabledWarnings** / `-nowarn`: Set a list of disabled warnings. +- **NoWarn** / `-nowarn`: Set a list of disabled warnings. - **CodeAnalysisRuleSet** / `-ruleset`: Specify a ruleset file that disables specific diagnostics. - **ErrorLog** / `-errorlog`: Specify a file to log all compiler and analyzer diagnostics. - **ReportAnalyzer** / `-reportanalyzer`: Report additional analyzer information, such as execution time. @@ -49,7 +49,7 @@ The element value is the warning level you want displayed for the compilation: L > [!WARNING] > The compiler command line accepts values greater than 4 to enable [warning wave warnings](../compiler-messages/warning-waves.md). However, the .NET SDK sets the *WarningLevel* to match the *AnalysisLevel* in your project file. -To get information about an error or warning, you can look up the error code in the [Help Index](/visualstudio/help-viewer/install-manage-local-content). For other ways to get information about an error or warning, see [C# Compiler Errors](../compiler-messages/index.md). Use [**TreatWarningsAsErrors**](#treatwarningsaserrors) to treat all warnings as errors. Use [**DisabledWarnings**](#disabledwarnings) to disable certain warnings. +To get information about an error or warning, you can look up the error code in the [Help Index](/visualstudio/help-viewer/install-manage-local-content). For other ways to get information about an error or warning, see [C# Compiler Errors](../compiler-messages/index.md). Use [**TreatWarningsAsErrors**](#treatwarningsaserrors) to treat all warnings as errors. Use [**DisabledWarnings**](#nowarn) to disable certain warnings. ## Analysis level @@ -64,7 +64,7 @@ To get information about an error or warning, you can look up the error code in For more information on optional warnings, see [Warning waves](../compiler-messages/warning-waves.md). -To get information about an error or warning, you can look up the error code in the Help Index. For other ways to get information about an error or warning, see [C# Compiler Errors](../compiler-messages/index.md). Use [**TreatWarningsAsErrors**](#treatwarningsaserrors) to treat all warnings as errors. Use [**DisabledWarnings**](#disabledwarnings) to disable certain warnings. +To get information about an error or warning, you can look up the error code in the Help Index. For other ways to get information about an error or warning, see [C# Compiler Errors](../compiler-messages/index.md). Use [**TreatWarningsAsErrors**](#treatwarningsaserrors) to treat all warnings as errors. Use [**NoWarn**](#nowarn) to disable certain warnings. ## TreatWarningsAsErrors @@ -74,7 +74,7 @@ The **TreatWarningsAsErrors** option treats all warnings as errors. You can also true ``` -All warning messages are instead reported as errors. The build process halts (no output files are built). By default, **TreatWarningsAsErrors** isn't in effect, which means warnings don't prevent the generation of an output file. Optionally, if you want only a few specific warnings to be treated as errors, you may specify a comma-separated list of warning numbers to treat as errors. The set of all nullability warnings can be specified with the [**Nullable**](language.md#nullable) shorthand. Use [**WarningLevel**](#warninglevel) to specify the level of warnings that you want the compiler to display. Use [**DisabledWarnings**](#disabledwarnings) to disable certain warnings. +All warning messages are instead reported as errors. The build process halts (no output files are built). By default, **TreatWarningsAsErrors** isn't in effect, which means warnings don't prevent the generation of an output file. Optionally, if you want only a few specific warnings to be treated as errors, you may specify a comma-separated list of warning numbers to treat as errors. The set of all nullability warnings can be specified with the [**Nullable**](language.md#nullable) shorthand. Use [**WarningLevel**](#warninglevel) to specify the level of warnings that you want the compiler to display. Use [**NoWarn**](#nowarn) to disable certain warnings. > [!IMPORTANT] > There are two subtle differences between using the `` element in your *csproj* file, and using the `warnaserror` MSBuild command line switch. *TreatWarningsAsErrors* only impacts the C# compiler, not any other MSBuild tasks in your *csproj* file. The `warnaserror` command line switch impacts all tasks. Secondly, the compiler doesn't produce any output on any warnings when *TreatWarningsAsErrors* is used. The compiler produces output when the `warnaserror` command line switch is used. @@ -97,17 +97,17 @@ Disable the same warnings as errors: You use **WarningsAsErrors** to configure a set of warnings as errors. Use **WarningsNotAsErrors** to configure a set of warnings that should not be errors when you've set all warnings as errors. -## DisabledWarnings +## NoWarn -The **DisabledWarnings** option lets you suppress the compiler from displaying one or more warnings. Separate multiple warning numbers with a comma. +The **NoWarn** option lets you suppress the compiler from displaying one or more warnings. Separate multiple warning numbers with a comma. ```xml -number1, number2 +number1, number2 ``` -`number1`, `number2` Warning number(s) that you want the compiler to suppress. You specify the numeric part of the warning identifier. For example, if you want to suppress *CS0028*, you could specify `28`. The compiler silently ignores warning numbers passed to **DisabledWarnings** that were valid in previous releases, but that have been removed. For example, *CS0679* was valid in the compiler in Visual Studio .NET 2002 but was removed later. +`number1`, `number2` Warning number(s) that you want the compiler to suppress. You specify the numeric part of the warning identifier. For example, if you want to suppress *CS0028*, you could specify `28`. The compiler silently ignores warning numbers passed to **NoWarn** that were valid in previous releases, but that have been removed. For example, *CS0679* was valid in the compiler in Visual Studio .NET 2002 but was removed later. - The following warnings can't be suppressed by the **DisabledWarnings** option: + The following warnings cannot be suppressed by the **NoWarn** option: - Compiler Warning (level 1) CS2002 - Compiler Warning (level 1) CS2023 diff --git a/docs/csharp/misc/cs0642.md b/docs/csharp/misc/cs0642.md index 9f2688564613f..eb9ae89602f16 100644 --- a/docs/csharp/misc/cs0642.md +++ b/docs/csharp/misc/cs0642.md @@ -14,7 +14,7 @@ Possible mistaken empty statement A semicolon after a conditional statement may cause your code to execute differently than intended. - You can use **DisabledWarnings** compiler option or `#pragmas warning` to disable this warning; see [**DisabledWarnings** (C# Compiler Options)](../language-reference/compiler-options/errors-warnings.md#disabledwarnings) or [#pragma warning](../language-reference/preprocessor-directives.md#pragma-warning) for more information. + You can use **NoWarn** compiler option or `#pragmas warning` to disable this warning; see [**NoWarn** (C# Compiler Options)](../language-reference/compiler-options/errors-warnings.md#nowarn) or [#pragma warning](../language-reference/preprocessor-directives.md#pragma-warning) for more information. The following sample generates CS0642: diff --git a/docs/csharp/misc/cs2023.md b/docs/csharp/misc/cs2023.md index 2a83d8199d2ea..791b5b9aff3e1 100644 --- a/docs/csharp/misc/cs2023.md +++ b/docs/csharp/misc/cs2023.md @@ -14,4 +14,4 @@ Ignoring /noconfig option because it was specified in a response file The [-noconfig](../language-reference/compiler-options/miscellaneous.md#noconfig) compiler option was specified in a response file, which is not allowed. - This warning cannot be suppressed by the [**DisabledWarnings**](../language-reference/compiler-options/errors-warnings.md#disabledwarnings) option. + This warning cannot be suppressed by the [**NoWarn**](../language-reference/compiler-options/errors-warnings.md#nowarn) option. diff --git a/docs/csharp/misc/cs2029.md b/docs/csharp/misc/cs2029.md index 3e21f84247788..8edd0a690857a 100644 --- a/docs/csharp/misc/cs2029.md +++ b/docs/csharp/misc/cs2029.md @@ -14,4 +14,4 @@ Invalid value for '/define'; 'identifier' is not a valid identifier This warning occurs if the value that is used in the [**DefineConstants**](../language-reference/compiler-options/language.md#defineconstants) option has some invalid characters. - This warning cannot be suppressed by the [**DisabledWarnings**](../language-reference/compiler-options/errors-warnings.md#disabledwarnings) option. + This warning cannot be suppressed by the [**NoWarn**](../language-reference/compiler-options/errors-warnings.md#nowarn) option. diff --git a/docs/fsharp/language-reference/compiler-options.md b/docs/fsharp/language-reference/compiler-options.md index d9c7bc0547f4e..ad151c1f36109 100644 --- a/docs/fsharp/language-reference/compiler-options.md +++ b/docs/fsharp/language-reference/compiler-options.md @@ -40,7 +40,7 @@ The following table shows compiler options listed alphabetically. Some of the F# |`--nologo`|Doesn't show the banner text when launching the compiler.| |`--nooptimizationdata`|Instructs the compiler to only include optimization essential for implementing inlined constructs. Inhibits cross-module inlining but improves binary compatibility.| |`--nowin32manifest`|Instructs the compiler to omit the default Win32 manifest.| -|`--nowarn:warning-number-list`|Disables specific warnings listed by number. Separate each warning number by a comma. You can discover the warning number for any warning from the compilation output.

      This compiler option is equivalent to the C# compiler option of the same name. For more information, see [/nowarn (C# Compiler Options)](../../csharp/language-reference/compiler-options/errors-warnings.md#disabledwarnings).| +|`--nowarn:warning-number-list`|Disables specific warnings listed by number. Separate each warning number by a comma. You can discover the warning number for any warning from the compilation output.

      This compiler option is equivalent to the C# compiler option of the same name. For more information, see [/nowarn (C# Compiler Options)](../../csharp/language-reference/compiler-options/errors-warnings.md#nowarn).| |--optimize[+|-][optimization-option-list]

      -O[+|-] [optimization-option-list]|Enables or disables optimizations. Some optimization options can be disabled or enabled selectively by listing them. These are: `nojitoptimize`, `nojittracking`, `nolocaloptimize`, `nocrossoptimize`, `notailcalls`.| |`--out:output-filename`

      `-o:output-filename`|Specifies the name of the compiled assembly or module.

      This compiler option is equivalent to the C# compiler option of the same name. For more information, see [/out (C# Compiler Options)](../../csharp/language-reference/compiler-options/output.md#outputassembly).| |`--pathmap:path=sourcePath,...`|Specifies how to map physical paths to source path names output by the compiler.

      This compiler option is equivalent to the C# compiler option of the same name. For more information, see [/pathmap (C# Compiler Options)](../../csharp/language-reference/compiler-options/advanced.md#pathmap).| From 816da92a4bf2a66b6cc27b72412ace610c096d3b Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Thu, 12 May 2022 11:05:56 -0700 Subject: [PATCH 224/429] Fix duplication (#29437) --- docs/core/runtime-config/garbage-collector.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/core/runtime-config/garbage-collector.md b/docs/core/runtime-config/garbage-collector.md index ad022c0191b59..a5d4e2aeb0d35 100644 --- a/docs/core/runtime-config/garbage-collector.md +++ b/docs/core/runtime-config/garbage-collector.md @@ -565,7 +565,7 @@ Example: | **Environment variable** | `COMPlus_GCName` | *string_path* | .NET Core 2.0 | | **Environment variable** | `DOTNET_GCName` | *string_path* | .NET 6 | -## Conserve Memory +## Conserve memory - Configures the garbage collector to conserve memory at the expense of more frequent garbage collections and possibly longer pause times. - Default value is 0 - this implies no change. @@ -576,7 +576,6 @@ Example: | - | - | - | - | | **runtimeconfig.json** | N/A | N/A | N/A | | **Environment variable** | `COMPlus_GCConserveMemory` | `0` -`9` | .NET Framework 4.8 | -| **Environment variable** | `COMPlus_GCConserveMemory` | `0` -`9` | .NET 6 | | **Environment variable** | `DOTNET_GCConserveMemory` | `0` -`9` | .NET 6 | | **app.config for .NET Framework** | [GCConserveMemory](../../framework/configure-apps/file-schema/runtime/gcconservememory-element.md) | `0` -`9` | .NET Framework 4.8 | From fc8fbe05c3821ff39a3f26b785d397f596e5ed04 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Thu, 12 May 2022 14:10:32 -0400 Subject: [PATCH 225/429] Add a note that new project templates enable NRT. (#29434) Fixes #29426 --- .../builtin-types/nullable-reference-types.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/csharp/language-reference/builtin-types/nullable-reference-types.md b/docs/csharp/language-reference/builtin-types/nullable-reference-types.md index 2d6da54541d0a..5db788963a488 100644 --- a/docs/csharp/language-reference/builtin-types/nullable-reference-types.md +++ b/docs/csharp/language-reference/builtin-types/nullable-reference-types.md @@ -10,6 +10,9 @@ ms.date: 09/08/2021 Nullable reference types are available beginning with C# 8.0, in code that has opted in to a *nullable aware context*. Nullable reference types, the null static analysis warnings, and the [null-forgiving operator](../operators/null-forgiving.md) are optional language features. All are turned off by default. A *nullable context* is controlled at the project level using build settings, or in code using pragmas. +> [!IMPORTANT] +> All project templates starting with .NET 6 (C# 10) enable the *nullable context* for the project. Projects created with earlier templates don't include this element, and these features are off until you enable them in the project file, or using pragmas. + In a nullable aware context: - A variable of a reference type `T` must be initialized with non-null, and may never be assigned a value that may be `null`. From 08f48a96eaad3e8df52f6c997171151192ceece5 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Thu, 12 May 2022 11:18:26 -0700 Subject: [PATCH 226/429] Grammar fix (#29439) --- .../builtin-types/nullable-reference-types.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/builtin-types/nullable-reference-types.md b/docs/csharp/language-reference/builtin-types/nullable-reference-types.md index 5db788963a488..b65bea0ab1c1b 100644 --- a/docs/csharp/language-reference/builtin-types/nullable-reference-types.md +++ b/docs/csharp/language-reference/builtin-types/nullable-reference-types.md @@ -11,7 +11,7 @@ ms.date: 09/08/2021 Nullable reference types are available beginning with C# 8.0, in code that has opted in to a *nullable aware context*. Nullable reference types, the null static analysis warnings, and the [null-forgiving operator](../operators/null-forgiving.md) are optional language features. All are turned off by default. A *nullable context* is controlled at the project level using build settings, or in code using pragmas. > [!IMPORTANT] -> All project templates starting with .NET 6 (C# 10) enable the *nullable context* for the project. Projects created with earlier templates don't include this element, and these features are off until you enable them in the project file, or using pragmas. +> All project templates starting with .NET 6 (C# 10) enable the *nullable context* for the project. Projects created with earlier templates don't include this element, and these features are off unless you enable them in the project file or use pragmas. In a nullable aware context: From 8729af95a83584f1fefc7d2c733089c017970127 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Thu, 12 May 2022 11:32:06 -0700 Subject: [PATCH 227/429] add breaking change (#29355) --- docs/core/compatibility/7.0.md | 1 + .../7.0/collectible-assemblies.md | 41 +++++++++++++++++++ docs/core/compatibility/toc.yml | 4 ++ 3 files changed, 46 insertions(+) create mode 100644 docs/core/compatibility/core-libraries/7.0/collectible-assemblies.md diff --git a/docs/core/compatibility/7.0.md b/docs/core/compatibility/7.0.md index cbdee353e12a0..02d60f1f71882 100644 --- a/docs/core/compatibility/7.0.md +++ b/docs/core/compatibility/7.0.md @@ -29,6 +29,7 @@ If you're migrating an app to .NET 7, the breaking changes listed here might aff | - | :-: | :-: | - | | [API obsoletions with non-default diagnostic IDs](core-libraries/7.0/obsolete-apis-with-custom-diagnostics.md) | ✔️ | ❌ | Preview 1 | | [C++/CLI projects in Visual Studio](core-libraries/7.0/cpluspluscli-compiler-version.md) +| [Collectible Assembly in non-collectible AssemblyLoadContext](core-libraries/7.0/collectible-assemblies.md) | ❌ | ✔️ | Preview 5 | | [FullPath and OldFullPath return fully qualified path](core-libraries/7.0/filesystemeventargs-fullpath.md) | ✔️ | ❌ | Preview 1 | | [Generic type constraint on PatternContext\](core-libraries/7.0/patterncontext-generic-constraint.md) | ❌ | ❌ | Preview 3 | | [SerializationFormat.Binary is obsolete](core-libraries/7.0/serializationformat-binary.md) | ❌ | ❌ | Preview 2 | diff --git a/docs/core/compatibility/core-libraries/7.0/collectible-assemblies.md b/docs/core/compatibility/core-libraries/7.0/collectible-assemblies.md new file mode 100644 index 0000000000000..4032de3ecbe4b --- /dev/null +++ b/docs/core/compatibility/core-libraries/7.0/collectible-assemblies.md @@ -0,0 +1,41 @@ +--- +title: ".NET 7 breaking change: Collectible Assembly in non-collectible AssemblyLoadContext" +description: Learn about the .NET 7 breaking change in core .NET libraries where resolving a collectible Assembly in a non-collectible AssemblyLoadContext results in a FileLoadException. +ms.date: 05/10/2022 +--- +# Collectible Assembly in non-collectible AssemblyLoadContext + +.NET incorrectly allowed garbage-collectible assemblies to resolve into a non-collectible . In some cases, this lead to runtime crashes or unexpected exceptions. This change prevents the incorrect behavior by throwing an exception when the or event returns a collectible and the is non-collectible. + +## Previous behavior + +Returning a collectible in the override or the event of a non-collectible doesn't cause any exceptions to be thrown. + +## New behavior + +Returning a collectible in the override or the event of a non-collectible throws a with a as the inner exception. + +## Version introduced + +.NET 7 Preview 5 + +## Type of breaking change + +This change can affect [binary compatibility](../../categories.md#binary-compatibility). + +## Reason for change + +This change fixes a bug. The collectible would be garbage-collected while the that has a reference to it is alive for the rest of the process lifetime. If the code running in that context references anything from that `Assembly` after it's collected, it would crash the runtime or result in a , , or other kinds of bad behavior. + +## Recommended action + +Don't return collectible assemblies in or the event of a non-collectible . A possible workaround is to change the `AssemblyLoadContext` to be collectible by passing `true` for the `isCollectible` parameter in its constructor, and then keep a reference to that `AssemblyLoadContext` forever to make sure it's never collected. + +## Affected APIs + +- +- event + +## See also + +- [Use collectible AssemblyLoadContext](../../../../standard/assembly/unloadability.md#use-collectible-assemblyloadcontext) diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml index c86c065a527d0..0ef3591b53f6f 100644 --- a/docs/core/compatibility/toc.yml +++ b/docs/core/compatibility/toc.yml @@ -43,6 +43,8 @@ items: href: core-libraries/7.0/obsolete-apis-with-custom-diagnostics.md - name: C++/CLI projects in Visual Studio href: core-libraries/7.0/cpluspluscli-compiler-version.md + - name: Collectible Assembly in non-collectible AssemblyLoadContext + href: core-libraries/7.0/collectible-assemblies.md - name: FullPath and OldFullPath return fully qualified path href: core-libraries/7.0/filesystemeventargs-fullpath.md - name: Generic type constraint on PatternContext @@ -731,6 +733,8 @@ items: href: core-libraries/7.0/obsolete-apis-with-custom-diagnostics.md - name: C++/CLI projects in Visual Studio href: core-libraries/7.0/cpluspluscli-compiler-version.md + - name: Collectible Assembly in non-collectible AssemblyLoadContext + href: core-libraries/7.0/collectible-assemblies.md - name: FullPath and OldFullPath return fully qualified path href: core-libraries/7.0/filesystemeventargs-fullpath.md - name: Generic type constraint on PatternContext From a052288a9ef6ce1c9fbbe2e9987ad234086f42e6 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Thu, 12 May 2022 11:32:24 -0700 Subject: [PATCH 228/429] add another parameter (#29353) --- .../7.0/apis-throw-argumentnullexception.md | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/docs/core/compatibility/windows-forms/7.0/apis-throw-argumentnullexception.md b/docs/core/compatibility/windows-forms/7.0/apis-throw-argumentnullexception.md index eeb90b33faeb2..7e6684f0e0b5c 100644 --- a/docs/core/compatibility/windows-forms/7.0/apis-throw-argumentnullexception.md +++ b/docs/core/compatibility/windows-forms/7.0/apis-throw-argumentnullexception.md @@ -34,15 +34,16 @@ Throwing conforms to .NET Runtime behavior. ## Affected APIs -The following table lists the affected APIs and specific parameters in .NET 7 Preview 1: - -| Method/property | Parameter name | -|-|-| -| | `owner` | -| | `bitmap` | -| | `bitmap` | -| | `control` or `cellStyle` | -| | `g` | -| | `g` or `contentPanel` | -| | `g` or `item` | -| | `g` or `toolStripPanel` | +The following table lists the affected APIs and specific parameters. + +| Method/property | Parameter name | Change version | +|-|-|-| +| | `owner` | Preview 1 | +| | `bitmap` | Preview 1 | +| | `bitmap` | Preview 1 | +| | `control` or `cellStyle` | Preview 1 | +| | `g` | Preview 1 | +| | `g` or `contentPanel` | Preview 1 | +| | `g` or `item` | Preview 1 | +| | `g` or `toolStripPanel` | Preview 1 | +| | `owner` | Preview 5 | From 23cce27249e02989cf97c147ccfc4ec866b86508 Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Thu, 12 May 2022 14:30:45 -0700 Subject: [PATCH 229/429] Use{Service} extension methods are NOT commonplace (#29438) --- docs/core/extensions/options-library-authors.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/extensions/options-library-authors.md b/docs/core/extensions/options-library-authors.md index a4fd53278951f..d9e008c8759e6 100644 --- a/docs/core/extensions/options-library-authors.md +++ b/docs/core/extensions/options-library-authors.md @@ -14,7 +14,7 @@ As a .NET library author, you'll learn general guidance on how to correctly expo ## Naming conventions -By convention, extension methods responsible for registering services are named `Add{Service}`, where `{Service}` is a meaningful and descriptive name. Depending on the package, the registration of services may be accompanied by `Use{Service}` extension methods. The `Use{Service}` extension methods are commonplace in [ASP.NET Core](/aspnet). +By convention, extension methods responsible for registering services are named `Add{Service}`, where `{Service}` is a meaningful and descriptive name. `Add{Service}` extension methods are commonplace in [ASP.NET Core](/aspnet). ✔️ CONSIDER names that disambiguate your service from other offerings. From 7bf4ee88add72b0c962fe0a63c997b8eb7dd54f5 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Thu, 12 May 2022 15:28:25 -0700 Subject: [PATCH 230/429] Update package index with latest published versions (#29436) --- docs/azure/includes/dotnet-all.md | 8 ++++---- docs/azure/includes/dotnet-new.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 57e824954c3df..a9b42ef9a8739 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -49,7 +49,7 @@ | Purview Scanning | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Analytics.Purview.Scanning/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Scanning-readme-pre) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Scanning_1.0.0-beta.2/sdk/purview/Azure.Analytics.Purview.Scanning/) | | Question Answering | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.QuestionAnswering-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.0.0/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.1.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/) | | Schema Registry | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.2.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.2.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | -| Schema Registry - Avro | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme-pre) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0-beta.8/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | +| Schema Registry - Avro | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | | Service Bus | NuGet [7.8.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0/sdk/servicebus/Azure.Messaging.ServiceBus/) | | Storage - Blobs | NuGet [12.12.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0/sdk/storage/Azure.Storage.Blobs/) | | Storage - Blobs Batch | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0/sdk/storage/Azure.Storage.Blobs.Batch/) | @@ -341,7 +341,7 @@ | Question Answering | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.QuestionAnswering-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.0.0/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.1.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/) | | Relay | NuGet [2.0.15596](https://www.nuget.org/packages/Microsoft.Azure.Relay/2.0.15596)
      NuGet [3.0.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Relay/3.0.0-preview) | [docs](/dotnet/api/overview/azure/service-bus-relay) | GitHub [2.0.15596](https://github.com/Azure/azure-relay-dotnet/tree/2.0.1) | | Schema Registry | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.2.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.2.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | -| Schema Registry - Avro | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme-pre) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0-beta.8/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | +| Schema Registry - Avro | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | | Search | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search_10.1.0/sdk/search/Microsoft.Azure.Search/) | | Search - Common | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search.Common/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search.Common_10.1.0/sdk/search/Microsoft.Azure.Search.Common/) | | Search - Data | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search.Data/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search.Data_10.1.0/sdk/search/Microsoft.Azure.Search.Data/) | @@ -419,7 +419,7 @@ | WebJobs Extensions - Durable Task Analyzers | NuGet [0.4.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask.Analyzers/0.4.2) | | GitHub [0.4.2](https://github.com/Azure/azure-functions-durable-extension/tree/Analyzer-v0.3.0/src/WebJobs.Extensions.DurableTask.Analyzers) | | WebJobs Extensions - Edge Hub | NuGet [1.0.7](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EdgeHub/1.0.7) | | GitHub [1.0.7](https://github.com/Azure/iotedge/tree/1.0.7/edge-hub) | | WebJobs Extensions - Http | NuGet [3.0.12](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Http/3.0.12) | | GitHub [3.0.12](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.2/src/WebJobs.Extensions.Http) | -| WebJobs Extensions - Kafka | NuGet [3.3.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Kafka/3.3.2) | | GitHub [3.3.2](https://github.com/Azure/azure-functions-kafka-extension/tree/3.0.0/src/Microsoft.Azure.WebJobs.Extensions.Kafka) | +| WebJobs Extensions - Kafka | NuGet [3.4.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Kafka/3.4.0) | | GitHub [3.4.0](https://github.com/Azure/azure-functions-kafka-extension/tree/3.0.0/src/Microsoft.Azure.WebJobs.Extensions.Kafka) | | WebJobs Extensions - Microsoft Graph | NuGet [1.0.0-beta6](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.MicrosoftGraph/1.0.0-beta6) | | GitHub [1.0.0-beta6](https://github.com/Azure/azure-functions-microsoftgraph-extension) | | WebJobs Extensions - Mobile Apps | NuGet [3.0.0-beta8](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.MobileApps/3.0.0-beta8) | | GitHub [3.0.0-beta8](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.0-beta8/src/WebJobs.Extensions.MobileApps) | | WebJobs Extensions - Notification Hubs | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.NotificationHubs/1.3.0) | | GitHub [1.3.0](https://github.com/Azure/azure-webjobs-sdk-extensions) | @@ -608,7 +608,7 @@ | Management - Remote App | NuGet [1.0.9](https://www.nuget.org/packages/Microsoft.Azure.Management.RemoteApp/1.0.9) | | | | Management - Reservations | NuGet [1.15.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.Reservations/1.15.0-preview) | | GitHub [1.15.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.Reservations_1.15.0-preview/sdk/reservations/Microsoft.Azure.Management.Reservations/) | | Management - Resource Graph | NuGet [2.1.0](https://www.nuget.org/packages/Microsoft.Azure.Management.ResourceGraph/2.1.0) | | GitHub [2.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.ResourceGraph_2.1.0/sdk/resourcegraph/Microsoft.Azure.Management.ResourceGraph/) | -| Management - Resource Manager | NuGet [3.17.3-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.ResourceManager/3.17.3-preview) | | | +| Management - Resource Manager | NuGet [3.17.4-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.ResourceManager/3.17.4-preview) | | | | Management - Resource Manager Fluent | NuGet [1.38.1](https://www.nuget.org/packages/Microsoft.Azure.Management.ResourceManager.Fluent/1.38.1) | [docs](/dotnet/api/overview/azure/resource-manager) | | | Management - Resources | NuGet [2.20.1-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.Resources/2.20.1-preview) | | | | Management - Sample Project Publish | NuGet [0.9.0-Preview](https://www.nuget.org/packages/Microsoft.Azure.Management.SampleProjectPublish/0.9.0-Preview) | | | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index dfd84f5fb4c77..1cb35f9a6c2fc 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -49,7 +49,7 @@ | Purview Scanning | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Analytics.Purview.Scanning/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Scanning-readme-pre) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Scanning_1.0.0-beta.2/sdk/purview/Azure.Analytics.Purview.Scanning/) | | Question Answering | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.QuestionAnswering-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.0.0/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.1.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/) | | Schema Registry | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.2.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.2.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | -| Schema Registry - Avro | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme-pre) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0-beta.8/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | +| Schema Registry - Avro | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | | Service Bus | NuGet [7.8.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0/sdk/servicebus/Azure.Messaging.ServiceBus/) | | Storage - Blobs | NuGet [12.12.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0/sdk/storage/Azure.Storage.Blobs/) | | Storage - Blobs Batch | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0/sdk/storage/Azure.Storage.Blobs.Batch/) | From d6d57ef303ea6d24f6e00fd89fe7a804763af767 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Thu, 12 May 2022 17:11:03 -0700 Subject: [PATCH 231/429] fix marshalling docs (#29444) --- docs/framework/interop/copying-and-pinning.md | 16 ++--- .../interop/default-marshalling-behavior.md | 2 +- .../interop/default-marshalling-for-arrays.md | 2 +- .../default-marshalling-for-objects.md | 4 +- .../default-marshalling-for-strings.md | 59 ++++++++++--------- .../apply-interop-attributes.md | 2 +- .../standard/native-interop/best-practices.md | 14 ++--- 7 files changed, 51 insertions(+), 48 deletions(-) diff --git a/docs/framework/interop/copying-and-pinning.md b/docs/framework/interop/copying-and-pinning.md index 4c1f04159ee4c..3b9098f231d5a 100644 --- a/docs/framework/interop/copying-and-pinning.md +++ b/docs/framework/interop/copying-and-pinning.md @@ -1,7 +1,7 @@ --- title: "Copying and Pinning" description: Review how the interop marshaller can copy or pin data that's being marshalled. Copying data places a copy of data from one memory location into another location. -ms.date: "03/30/2017" +ms.date: 05/12/2022 helpviewer_keywords: - "pinning, interop marshalling" - "copying, interop marshalling" @@ -11,7 +11,7 @@ ms.assetid: 0059f576-e460-4e70-b257-668870e420b8 --- # Copying and Pinning -When marshalling data, the interop marshallercan copy or pin the data being marshalled. Copying the data places a copy of data from one memory location in another memory location. The following illustration shows the differences between copying a value type and copying a type passed by reference from managed to unmanaged memory. +When marshalling data, the interop marshaller can copy or pin the data being marshalled. Copying the data places a copy of data from one memory location in another memory location. The following illustration shows the differences between copying a value type and copying a type passed by reference from managed to unmanaged memory. ![Diagram that shows how value and reference types are copied.](./media/copying-and-pinning/interop-marshal-copy.gif) @@ -19,7 +19,7 @@ Method arguments passed by value are marshalled to unmanaged code as values on t ![Diagram showing reference types passed by value and by reference.](./media/copying-and-pinning/interop-marshal-reference-pin.gif) -Pinning temporarily locks the data in its current memory location, thus keeping it from being relocated by the common language runtime's garbage collector. The marshaller pins data to reduce the overhead of copying and enhance performance. The type of the data determines whether it is copied or pinned during the marshalling process. Pinning is automatically performed during marshalling for objects such as , however you can also manually pin memory using the class. +Pinning temporarily locks the data in its current memory location, thus keeping it from being relocated by the common language runtime's garbage collector. The marshaller pins data to reduce the overhead of copying and enhance performance. The type of the data determines whether it is copied or pinned during the marshalling process. Pinning is automatically performed during marshalling for objects such as , however you can also manually pin memory using the class. ## Formatted Blittable Classes @@ -56,22 +56,22 @@ Reference types have the following conditional behavior: To avoid unnecessarily copying and conversion, these types are marshalled as In parameters. You must explicitly apply the **InAttribute** and **OutAttribute** attributes to an argument for the caller to see changes made by the callee. -- If a reference type is passed by value and it has only members of blittable types, it can be pinned during marshalling and any changes made to the members of the type by the callee are seen by the caller. Apply **InAttribute** and **OutAttribute** explicitly if you want this behavior. Without these directional attributes, the interop marshallerdoes not export directional information to the type library (it exports as In, which is the default) and this can cause problems with COM cross-apartment marshalling. +- If a reference type is passed by value and it has only members of blittable types, it can be pinned during marshalling and any changes made to the members of the type by the callee are seen by the caller. Apply **InAttribute** and **OutAttribute** explicitly if you want this behavior. Without these directional attributes, the interop marshaller does not export directional information to the type library (it exports as In, which is the default) and this can cause problems with COM cross-apartment marshalling. - If a reference type is passed by reference, it will be marshalled as In/Out by default. ## System.String and System.Text.StringBuilder -When data is marshalled to unmanaged code by value or by reference, the marshallertypically copies the data to a secondary buffer (possibly converting character sets during the copy) and passes a reference to the buffer to the callee. Unless the reference is a **BSTR** allocated with **SysAllocString**, the reference is always allocated with **CoTaskMemAlloc**. +When data is marshalled to unmanaged code by value or by reference, the marshaller typically copies the data to a secondary buffer (possibly converting character sets during the copy) and passes a reference to the buffer to the callee. Unless the reference is a **BSTR** allocated with **SysAllocString**, the reference is always allocated with **CoTaskMemAlloc**. -As an optimization when either string type is marshalled by value (such as a Unicode character string), the marshallerpasses the callee a direct pointer to managed strings in the internal Unicode buffer instead of copying it to a new buffer. +As an optimization when either or is marshalled by value (such as a Unicode character string), the marshaller passes the callee a direct pointer to managed strings in the internal Unicode buffer instead of copying it to a new buffer. > [!CAUTION] > When a string is passed by value, the callee must never alter the reference passed by the marshaller. Doing so can corrupt the managed heap. -When a is passed by reference, the marshaller copies the contents the string to a secondary buffer before making the call. It then copies the contents of the buffer into a new string on return from the call. This technique ensures that the immutable managed string remains unaltered. +When a is passed by reference, the marshaller copies the contents of the string to a secondary buffer before making the call. It then copies the contents of the buffer into a new string on return from the call. This technique ensures that the immutable managed string remains unaltered. -When a is passed by value, the marshaller passes a reference to a temporary copy of the internal buffer of the **StringBuilder** to the caller. The caller and callee must agree on the size of the buffer. The caller is responsible for creating a **StringBuilder** of adequate length. The callee must take the necessary precautions to ensure that the buffer is not overrun. **StringBuilder** is an exception to the rule that reference types passed by value are passed as In parameters by default. It is always passed as In/Out. +When a is passed by value, the marshaller passes a reference to a temporary copy of the internal buffer of the **StringBuilder** to the caller. The caller and callee must agree on the size of the buffer. The caller is responsible for creating a **StringBuilder** of adequate length. The callee must take the necessary precautions to ensure that the buffer is not overrun. **StringBuilder** is an exception to the rule that reference types passed by value are passed as `In` parameters by default. `StringBuilder` is always passed as `In`/`Out`. ## See also diff --git a/docs/framework/interop/default-marshalling-behavior.md b/docs/framework/interop/default-marshalling-behavior.md index c6637a4c62b31..5bb0bc880a1a2 100644 --- a/docs/framework/interop/default-marshalling-behavior.md +++ b/docs/framework/interop/default-marshalling-behavior.md @@ -350,7 +350,7 @@ interface _Graphics { } ``` - The same rules used to marshal values and references to platform invoke calls are used when marshalling through COM interfaces. For example, when an instance of the `Point` value type is passed from the .NET Framework to COM, the `Point` is passed by value. If the `Point` value type is passed by reference, a pointer to a `Point` is passed on the stack. The interop marshallerdoes not support higher levels of indirection (**Point** \*\*) in either direction. + The same rules used to marshal values and references to platform invoke calls are used when marshalling through COM interfaces. For example, when an instance of the `Point` value type is passed from the .NET Framework to COM, the `Point` is passed by value. If the `Point` value type is passed by reference, a pointer to a `Point` is passed on the stack. The interop marshaller does not support higher levels of indirection (**Point** \*\*) in either direction. > [!NOTE] > Structures having the enumeration value set to **Explicit** cannot be used in COM interop because the exported type library cannot express an explicit layout. diff --git a/docs/framework/interop/default-marshalling-for-arrays.md b/docs/framework/interop/default-marshalling-for-arrays.md index 9a9b9ff99f4f5..e4fb1a21f4a61 100644 --- a/docs/framework/interop/default-marshalling-for-arrays.md +++ b/docs/framework/interop/default-marshalling-for-arrays.md @@ -171,7 +171,7 @@ void New3(ref String ar); [MarshalAs(UnmanagedType.LPArray, SizeConst=128)] int[] ar ); ``` - When marshalling arrays from unmanaged code to managed code, the marshallerchecks the **MarshalAsAttribute** associated with the parameter to determine the array size. If the array size is not specified, only one element is marshalled. + When marshalling arrays from unmanaged code to managed code, the marshaller checks the **MarshalAsAttribute** associated with the parameter to determine the array size. If the array size is not specified, only one element is marshalled. > [!NOTE] > The **MarshalAsAttribute** has no effect on marshalling managed arrays to unmanaged code. In that direction, the array size is determined by examination. There is no way to marshal a subset of a managed array. diff --git a/docs/framework/interop/default-marshalling-for-objects.md b/docs/framework/interop/default-marshalling-for-objects.md index 006a069727426..eea2b3596c068 100644 --- a/docs/framework/interop/default-marshalling-for-objects.md +++ b/docs/framework/interop/default-marshalling-for-objects.md @@ -296,12 +296,12 @@ To propagate changes back to the caller, the parameters must be passed by refere **Default behavior for marshalling a variant with the VT_BYREF flag set** -- A variant being passed to managed code by value can have the **VT_BYREF** flag set to indicate that the variant contains a reference instead of a value. In this case, the variant is still marshalled to an object because the variant is being passed by value. The marshallerautomatically dereferences the contents of the variant and copies it into a newly created object before making the call. The object is then passed into the managed function; however, on return from the call, the object is not propagated back into the original variant. Changes made to the managed object are lost. +- A variant being passed to managed code by value can have the **VT_BYREF** flag set to indicate that the variant contains a reference instead of a value. In this case, the variant is still marshalled to an object because the variant is being passed by value. The marshaller automatically dereferences the contents of the variant and copies it into a newly created object before making the call. The object is then passed into the managed function; however, on return from the call, the object is not propagated back into the original variant. Changes made to the managed object are lost. > [!CAUTION] > There is no way to change the value of a variant passed by value, even if the variant has the **VT_BYREF** flag set. -- A variant being passed to managed code by reference can also have the **VT_BYREF** flag set to indicate that the variant contains another reference. If it does, the variant is marshalled to a **ref** object because the variant is being passed by reference. The marshallerautomatically dereferences the contents of the variant and copies it into a newly created object before making the call. On return from the call, the value of the object is propagated back to the reference within the original variant only if the object is the same type as the object passed in. That is, propagation does not change the type of a variant with the **VT_BYREF** flag set. If the type of the object is changed during the call, an occurs on return from the call. +- A variant being passed to managed code by reference can also have the **VT_BYREF** flag set to indicate that the variant contains another reference. If it does, the variant is marshalled to a **ref** object because the variant is being passed by reference. The marshaller automatically dereferences the contents of the variant and copies it into a newly created object before making the call. On return from the call, the value of the object is propagated back to the reference within the original variant only if the object is the same type as the object passed in. That is, propagation does not change the type of a variant with the **VT_BYREF** flag set. If the type of the object is changed during the call, an occurs on return from the call. The following table summarizes the propagation rules for variants and objects. diff --git a/docs/framework/interop/default-marshalling-for-strings.md b/docs/framework/interop/default-marshalling-for-strings.md index bfd5b039faf1f..4cd2b0f33d0eb 100644 --- a/docs/framework/interop/default-marshalling-for-strings.md +++ b/docs/framework/interop/default-marshalling-for-strings.md @@ -16,15 +16,15 @@ Both the and attribute provides several enumeration values to marshal strings to COM interfaces. -|Enumeration type|Description of unmanaged format| -|----------------------|-------------------------------------| -|`UnmanagedType.BStr` (default)|A COM-style `BSTR` with a prefixed length and Unicode characters.| -|`UnmanagedType.LPStr`|A pointer to a null-terminated array of ANSI characters.| -|`UnmanagedType.LPWStr`|A pointer to a null-terminated array of Unicode characters.| +| Enumeration type | Description of unmanaged format | +|--------------------------------|-------------------------------------------------------------------| +| `UnmanagedType.BStr` (default) | A COM-style `BSTR` with a prefixed length and Unicode characters. | +| `UnmanagedType.LPStr` | A pointer to a null-terminated array of ANSI characters. | +| `UnmanagedType.LPWStr` | A pointer to a null-terminated array of Unicode characters. | This table applies to . For , the only options allowed are `UnmanagedType.LPStr` and `UnmanagedType.LPWStr`. @@ -73,7 +73,7 @@ interface IStringWorker : IDispatch }; ``` -## Strings Used in Platform Invoke +## Strings used in platform invoke When the CharSet is Unicode or a string argument is explicitly marked as [MarshalAs(UnmanagedType.LPWSTR)] and the string is passed by value (not `ref` or `out`), the string is pinned and used directly by native code. Otherwise, platform invoke copies string arguments, converting from the .NET Framework format (Unicode) to the platform unmanaged format. Strings are immutable and are not copied back from unmanaged memory to managed memory when the call returns. @@ -81,16 +81,16 @@ Native code is only responsible for releasing the memory when the string is pass The following table lists the marshalling options for strings when marshalled as a method argument of a platform invoke call. The attribute provides several enumeration values to marshal strings. -|Enumeration type|Description of unmanaged format| -|----------------------|-------------------------------------| -|`UnmanagedType.AnsiBStr`|A COM-style `BSTR` with a prefixed length and ANSI characters.| -|`UnmanagedType.BStr`|A COM-style `BSTR` with a prefixed length and Unicode characters.| -|`UnmanagedType.LPStr` (default)|A pointer to a null-terminated array of ANSI characters.| -|`UnmanagedType.LPTStr`|A pointer to a null-terminated array of platform-dependent characters.| -|`UnmanagedType.LPUTF8Str`|A pointer to a null-terminated array of UTF-8 encoded characters.| -|`UnmanagedType.LPWStr`|A pointer to a null-terminated array of Unicode characters.| -|`UnmanagedType.TBStr`|A COM-style `BSTR` with a prefixed length and platform-dependent characters.| -|`VBByRefStr`|A value that enables Visual Basic .NET to change a string in unmanaged code and have the results reflected in managed code. This value is supported only for platform invoke. This is the default value in Visual Basic for `ByVal` strings.| +| Enumeration type | Description of unmanaged format | +|---------------------------------|------------------------------------------------------------------------------| +| `UnmanagedType.AnsiBStr` | A COM-style `BSTR` with a prefixed length and ANSI characters. | +| `UnmanagedType.BStr` | A COM-style `BSTR` with a prefixed length and Unicode characters. | +| `UnmanagedType.LPStr` (default) | A pointer to a null-terminated array of ANSI characters. | +| `UnmanagedType.LPTStr` | A pointer to a null-terminated array of platform-dependent characters. | +| `UnmanagedType.LPUTF8Str` | A pointer to a null-terminated array of UTF-8 encoded characters. | +| `UnmanagedType.LPWStr` | A pointer to a null-terminated array of Unicode characters. | +| `UnmanagedType.TBStr` | A COM-style `BSTR` with a prefixed length and platform-dependent characters. | +| `VBByRefStr` | A value that enables Visual Basic to change a string in unmanaged code and have the results reflected in managed code. This value is supported only for platform invoke. This is the default value in Visual Basic for `ByVal` strings. | This table applies to . For , the only options allowed are `LPStr`, `LPTStr`, and `LPWStr`. @@ -135,18 +135,18 @@ Class StringLibAPI End Class ``` -## Strings Used in Structures +## Strings used in structures Strings are valid members of structures; however, buffers are invalid in structures. The following table shows the marshalling options for the data type when the type is marshalled as a field. The attribute provides several enumeration values to marshal strings to a field. -|Enumeration type|Description of unmanaged format| -|----------------------|-------------------------------------| -|`UnmanagedType.BStr`|A COM-style `BSTR` with a prefixed length and Unicode characters.| -|`UnmanagedType.LPStr` (default)|A pointer to a null-terminated array of ANSI characters.| -|`UnmanagedType.LPTStr`|A pointer to a null-terminated array of platform-dependent characters.| -|`UnmanagedType.LPUTF8Str`|A pointer to a null-terminated array of UTF-8 encoded characters.| -|`UnmanagedType.LPWStr`|A pointer to a null-terminated array of Unicode characters.| -|`UnmanagedType.ByValTStr`|A fixed-length array of characters; the array's type is determined by the character set of the containing structure.| +| Enumeration type | Description of unmanaged format | +|---------------------------------|------------------------------------------------------------------------| +| `UnmanagedType.BStr` | A COM-style `BSTR` with a prefixed length and Unicode characters. | +| `UnmanagedType.LPStr` (default) | A pointer to a null-terminated array of ANSI characters. | +| `UnmanagedType.LPTStr` | A pointer to a null-terminated array of platform-dependent characters. | +| `UnmanagedType.LPUTF8Str` | A pointer to a null-terminated array of UTF-8 encoded characters. | +| `UnmanagedType.LPWStr` | A pointer to a null-terminated array of Unicode characters. | +| `UnmanagedType.ByValTStr` | A fixed-length array of characters; the array's type is determined by the character set of the containing structure.| The `ByValTStr` type is used for inline, fixed-length character arrays that appear within a structure. Other types apply to string references contained within structures that contain pointers to strings. @@ -223,11 +223,14 @@ Structure StringInfoT End Structure ``` -## Fixed-Length String Buffers +## Fixed-length string buffers In some circumstances, a fixed-length character buffer must be passed into unmanaged code to be manipulated. Simply passing a string does not work in this case because the callee cannot modify the contents of the passed buffer. Even if the string is passed by reference, there is no way to initialize the buffer to a given size. -The solution is to pass a as the argument instead of a . The buffer created when marshalling a `StringBuilder` can be dereferenced and modified by the callee, provided it does not exceed the capacity of the `StringBuilder`. It can also be initialized to a fixed length. For example, if you initialize a `StringBuilder` buffer to a capacity of `N`, the marshallerprovides a buffer of size (`N`+1) characters. The +1 accounts for the fact that the unmanaged string has a null terminator while `StringBuilder` does not. +The solution is to pass a as the argument instead of a . The buffer created when marshalling a `StringBuilder` can be dereferenced and modified by the callee, provided it does not exceed the capacity of the `StringBuilder`. It can also be initialized to a fixed length. For example, if you initialize a `StringBuilder` buffer to a capacity of `N`, the marshaller provides a buffer of size (`N`+1) characters. The +1 accounts for the fact that the unmanaged string has a null terminator while `StringBuilder` does not. + +> [!NOTE] +> In general, passing `StringBuilder` arguments is not recommended if you're concerned about performance. For more information, see [String parameters](../../standard/native-interop/best-practices.md#string-parameters). For example, the Windows [`GetWindowText`](/windows/desktop/api/winuser/nf-winuser-getwindowtextw) API function (defined in *winuser.h*) requires that the caller pass a fixed-length character buffer to which the function writes the window's text. `LpString` points to a caller-allocated buffer of size `nMaxCount`. The caller is expected to allocate the buffer and set the `nMaxCount` argument to the size of the allocated buffer. The following example shows the `GetWindowText` function declaration as defined in *winuser.h*. diff --git a/docs/standard/native-interop/apply-interop-attributes.md b/docs/standard/native-interop/apply-interop-attributes.md index 394712d7c80a1..6c8b3f663e324 100644 --- a/docs/standard/native-interop/apply-interop-attributes.md +++ b/docs/standard/native-interop/apply-interop-attributes.md @@ -27,7 +27,7 @@ The namespace provides three categories of |Attribute|Description| |---------------|-----------------| -||Specifies whether the type should be marshalled using the Automation marshalleror a custom proxy and stub.| +||Specifies whether the type should be marshalled using the Automation marshaller or a custom proxy and stub.| ||Controls the type of interface generated for a class.| ||Identifies the CLSID of the original coclass imported from a type library.

      COM interop tools typically apply this attribute.| ||Indicates that a coclass or interface definition was imported from a COM type library. The runtime uses this flag to know how to activate and marshal the type. This attribute prohibits the type from being exported back to a type library.

      COM interop tools typically apply this attribute.| diff --git a/docs/standard/native-interop/best-practices.md b/docs/standard/native-interop/best-practices.md index 2122751ed2916..67226560e3b60 100644 --- a/docs/standard/native-interop/best-practices.md +++ b/docs/standard/native-interop/best-practices.md @@ -23,10 +23,10 @@ The guidance in this section applies to all interop scenarios. | Setting | Default | Recommendation | Details | |---------|---------|----------------|---------| -| | `true` | keep default | When this is explicitly set to false, failed HRESULT return values will be turned into exceptions (and the return value in the definition becomes null as a result).| -| | `false` | depends on the API | Set this to true if the API uses GetLastError and use Marshal.GetLastWin32Error to get the value. If the API sets a condition that says it has an error, get the error before making other calls to avoid inadvertently having it overwritten.| +| | `true` | Keep default | When this is explicitly set to false, failed HRESULT return values will be turned into exceptions (and the return value in the definition becomes null as a result).| +| | `false` | Depends on the API | Set this to true if the API uses GetLastError and use Marshal.GetLastWin32Error to get the value. If the API sets a condition that says it has an error, get the error before making other calls to avoid inadvertently having it overwritten.| | | Compiler-defined (specified in the [charset documentation](./charset.md)) | Explicitly use `CharSet.Unicode` or `CharSet.Ansi` when strings or characters are present in the definition | This specifies marshalling behavior of strings and what `ExactSpelling` does when `false`. Note that `CharSet.Ansi` is actually UTF8 on Unix. _Most_ of the time Windows uses Unicode while Unix uses UTF8. See more information on the [documentation on charsets](./charset.md). | -| | `false` | `true` | Set this to true and gain a slight perf benefit as the runtime will not look for alternate function names with either an "A" or "W" suffix depending on the value of the `CharSet` setting ("A" for `CharSet.Ansi` and "W" for `CharSet.Unicode`). | +| | `false` | `true` | Set this to true and gain a slight perf benefit as the runtime will not look for alternate function names with either an "A" or "W" suffix depending on the value of the `CharSet` setting ("A" for `CharSet.Ansi` and "W" for `CharSet.Unicode`). | ## String parameters @@ -36,7 +36,7 @@ Remember to mark the `[DllImport]` as `Charset.Unicode` unless you explicitly wa ❌ DO NOT use `[Out] string` parameters. String parameters passed by value with the `[Out]` attribute can destabilize the runtime if the string is an interned string. See more information about string interning in the documentation for . -❌ AVOID `StringBuilder` parameters. `StringBuilder` marshalling *always* creates a native buffer copy. As such, it can be extremely inefficient. Take the typical scenario of calling a Windows API that takes a string: +✔️ CONSIDER avoiding `StringBuilder` parameters. `StringBuilder` marshalling *always* creates a native buffer copy. As such, it can be extremely inefficient. Take the typical scenario of calling a Windows API that takes a string: 1. Create a `StringBuilder` of the desired capacity (allocates managed capacity) **{1}**. 2. Invoke: @@ -45,14 +45,14 @@ Remember to mark the `[DllImport]` as `Charset.Unicode` unless you explicitly wa 3. Copies the native buffer into a newly allocated managed array if `[Out]` **{3}** _(also the default for `StringBuilder`)_. 3. `ToString()` allocates yet another managed array **{4}**. -That is *{4}* allocations to get a string out of native code. The best you can do to limit this is to reuse the `StringBuilder` -in another call, but this still only saves *1* allocation. It's much better to use and cache a character buffer from `ArrayPool`. You can then get down to just the allocation for the `ToString()` on subsequent calls. +That's **{4}** allocations to get a string out of native code. The best you can do to limit this is to reuse the `StringBuilder` +in another call, but this still only saves one allocation. It's much better to use and cache a character buffer from `ArrayPool`. You can then get down to just the allocation for the `ToString()` on subsequent calls. The other issue with `StringBuilder` is that it always copies the return buffer back up to the first null. If the passed back string isn't terminated or is a double-null-terminated string, your P/Invoke is incorrect at best. If you *do* use `StringBuilder`, one last gotcha is that the capacity does **not** include a hidden null, which is always accounted for in interop. It's common for people to get this wrong as most APIs want the size of the buffer *including* the null. This can result in wasted/unnecessary allocations. Additionally, this gotcha prevents the runtime from optimizing `StringBuilder` marshalling to minimize copies. -✔️ CONSIDER using `char[]`s from an `ArrayPool`. +✔️ CONSIDER using `char[]` arrays from an `ArrayPool`. For more information on string marshalling, see [Default Marshalling for Strings](../../framework/interop/default-marshalling-for-strings.md) and [Customizing string marshalling](customize-parameter-marshalling.md#customizing-string-parameters). From fa04ac937a3cfa80d9f5b5952e67ed4332ac5f68 Mon Sep 17 00:00:00 2001 From: David Pine Date: Fri, 13 May 2022 07:55:08 -0500 Subject: [PATCH 232/429] Address customer feedback about `Task.WhenAll` (#29419) * Update how-to-write-messages-to-and-read-messages-from-a-dataflow-block.md * Apply suggestions from code review Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- ...write-messages-to-and-read-messages-from-a-dataflow-block.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standard/parallel-programming/how-to-write-messages-to-and-read-messages-from-a-dataflow-block.md b/docs/standard/parallel-programming/how-to-write-messages-to-and-read-messages-from-a-dataflow-block.md index d89fc1b5a9450..52473d2b66dd2 100644 --- a/docs/standard/parallel-programming/how-to-write-messages-to-and-read-messages-from-a-dataflow-block.md +++ b/docs/standard/parallel-programming/how-to-write-messages-to-and-read-messages-from-a-dataflow-block.md @@ -29,7 +29,7 @@ You can also use the method acts synchronously, the object in the previous examples receives all data before the second loop reads data. The following example extends the first example by using to read from and write to the message block concurrently. Because performs actions concurrently, the values are not written to the object in any specific order. +Because the method acts synchronously, the object in the previous examples receives all data before the second loop reads data. The following example extends the first example by using to read from and write to the message block concurrently. Because awaits all the asynchronous operations that are executing concurrently, the values are not written to the object in any specific order. :::code language="csharp" source="../../../samples/snippets/csharp/VS_Snippets_Misc/tpldataflow_readwrite/cs/dataflowreadwrite.cs" id="4"::: :::code language="vb" source="../../../samples/snippets/visualbasic/VS_Snippets_Misc/tpldataflow_readwrite/vb/dataflowreadwrite.vb" id="4"::: From 50033895bfefc1787e066bd28be68604600f17f5 Mon Sep 17 00:00:00 2001 From: David Pine Date: Fri, 13 May 2022 08:28:28 -0500 Subject: [PATCH 233/429] Add a few additional concepts to Configuration and Options articles (#29442) * Initial updates, images, etc. * Getting closer, let's push to draft * Remove unused diagram * Apply suggestions from code review Co-authored-by: Tom Dykstra * Revert appsettings.json change * Corrected pasted output that auto-reformatted Co-authored-by: Tom Dykstra --- docs/core/extensions/configuration.md | 61 ++++++++++++++++++- .../media/configuration-sources.svg | 16 +++++ docs/core/extensions/options.md | 6 +- .../configuration/console-indexer/Program.cs | 33 ++++++++++ .../console-indexer/appsettings.json | 11 ++++ .../console-indexer/console-indexer.csproj | 20 ++++++ .../console-raw/NestedSettings.cs | 2 +- .../configuration/console-raw/Settings.cs | 2 +- .../console-raw/appsettings.json | 15 ++++- 9 files changed, 158 insertions(+), 8 deletions(-) create mode 100644 docs/core/extensions/media/configuration-sources.svg create mode 100644 docs/core/extensions/snippets/configuration/console-indexer/Program.cs create mode 100644 docs/core/extensions/snippets/configuration/console-indexer/appsettings.json create mode 100644 docs/core/extensions/snippets/configuration/console-indexer/console-indexer.csproj diff --git a/docs/core/extensions/configuration.md b/docs/core/extensions/configuration.md index fccfeca8e596b..eef7a4c13078d 100644 --- a/docs/core/extensions/configuration.md +++ b/docs/core/extensions/configuration.md @@ -24,9 +24,15 @@ Configuration in .NET is performed using one or more [configuration providers](# > [!NOTE] > For information about configuring the .NET runtime itself, see [.NET Runtime configuration settings](../runtime-config/index.md). +## Concepts and abstractions + +Given one or more configuration sources, the type provides a unified view of the configuration data. Configuration is read-only, and the configuration pattern is not designed to be programmatically writable. The `IConfiguration` interface is a single representation of all the configuration sources, as shown in the following diagram: + +:::image type="content" source="media/configuration-sources.svg" lightbox="media/configuration-sources.svg" alt-text="The `IConfiguration` interface is a single representation of all the configuration sources."::: + ## Configure console apps -New .NET console applications created using [dotnet new](../tools/dotnet-new.md) or Visual Studio by default *do not* expose configuration capabilities. To add configuration in a new .NET console application, [add a package reference](../tools/dotnet-add-package.md) to [`Microsoft.Extensions.Hosting`](https://www.nuget.org/packages/Microsoft.Extensions.Hosting). Modify the *Program.cs* file to match the following code: +.NET console applications created using the [dotnet new](../tools/dotnet-new.md) command template or Visual Studio by default *do not* expose configuration capabilities. To add configuration in a new .NET console application, [add a package reference](../tools/dotnet-add-package.md) to [Microsoft.Extensions.Hosting](https://www.nuget.org/packages/Microsoft.Extensions.Hosting). Modify the *Program.cs* file to match the following code: :::code language="csharp" source="snippets/configuration/console/Program.cs" highlight="3"::: @@ -51,6 +57,44 @@ One of the key advantages of using the .NET configuration abstractions is the ab These abstractions are agnostic to their underlying configuration provider (). In other words, you can use an `IConfiguration` instance to access any configuration value from multiple providers. +The binder can use different approaches to process configuration values:​ + +- Direct deserialization (using built-in converters) for primitive types​. +- The for a complex type when the type has one​. +- Reflection for a complex type that has properties. + +> [!NOTE] +> The binder has a few limitations: +> +> - Properties are ignored if they have private setters or their type can't be converted. +> - Properties without corresponding configuration keys are ignored. + +#### Binding hierarchies + +Configuration values can contain hierarchical data. Hierarchical objects are represented with the use of the `:` delimiter in the configuration keys. To access a configuration value, use the `:` character to delimit a hierarchy. For example, consider the following configuration values: + +```json +{ + "Parent": { + "FavoriteNumber": 7, + "Child": { + "Name": "Example", + "GrandChild": { + "Age": 3 + } + } + } +} +``` + +The following table represents example keys and their corresponding values for the preceding example JSON: + +| Key | Value | +|---------------------------------|-------------| +| `"Parent:FavoriteNumber"` | `7` | +| `"Parent:Child:Name"` | `"Example"` | +| `"Parent:Child:GrandChild:Age"` | `3` | + ### Basic example To access configuration values in their basic form, without the assistance of the _generic host_ approach, use the type directly. @@ -114,6 +158,18 @@ When you run this application, the `Host.CreateDefaultBuilder` defines the behav > [!TIP] > Using the raw `IConfiguration` instance in this way, while convenient, doesn't scale very well. When applications grow in complexity, and their corresponding configurations become more complex, we recommend that you use the [_options pattern_](options.md) as an alternative. +### Basic example with hosting and using the indexer API + +Consider the same _appsettings.json_ file contents from the previous example: + +:::code language="json" source="snippets/configuration/console-indexer/appsettings.json"::: + +Replace the contents of the _Program.cs_ file with the following C# code: + +:::code language="csharp" source="snippets/configuration/console-indexer/Program.cs" highlight="11-15,17-22"::: + +The values are accessed using the indexer API where each key is a string, and the value is a string. Configuration supports properties, objects, arrays, and dictionaries. + ## Configuration providers The following table shows the configuration providers available to .NET Core apps. @@ -130,6 +186,9 @@ The following table shows the configuration providers available to .NET Core app | [Memory configuration provider](configuration-providers.md#memory-configuration-provider) | In-memory collections | | [App secrets (Secret Manager)](/aspnet/core/security/app-secrets) | File in the user profile directory | +> [!TIP] +> The order in which configuration providers are added matters. When multiple configuration providers are used and more than one provided specifies the same key, the last one added is used. + For more information on various configuration providers, see [Configuration providers in .NET](configuration-providers.md). ## See also diff --git a/docs/core/extensions/media/configuration-sources.svg b/docs/core/extensions/media/configuration-sources.svg new file mode 100644 index 0000000000000..9b737226ec280 --- /dev/null +++ b/docs/core/extensions/media/configuration-sources.svg @@ -0,0 +1,16 @@ + + + + + + + IConfigurationappsettings.{Environment}.jsonEnvironment variablesCommand-line arguments*Other sources \ No newline at end of file diff --git a/docs/core/extensions/options.md b/docs/core/extensions/options.md index 020a47594160e..34576d467cbf3 100644 --- a/docs/core/extensions/options.md +++ b/docs/core/extensions/options.md @@ -3,7 +3,7 @@ title: Options pattern in .NET author: IEvangelist description: Learn how to use the options pattern to represent groups of related settings in .NET apps. ms.author: dapine -ms.date: 03/10/2022 +ms.date: 05/12/2022 --- # Options pattern in .NET @@ -11,7 +11,7 @@ ms.date: 03/10/2022 The options pattern uses classes to provide strongly-typed access to groups of related settings. When [configuration settings](configuration.md) are isolated by scenario into separate classes, the app adheres to two important software engineering principles: - The [Interface Segregation Principle (ISP) or Encapsulation](../../architecture/modern-web-apps-azure/architectural-principles.md#encapsulation): Scenarios (classes) that depend on configuration settings depend only on the configuration settings that they use. -- [Separation of Concerns](../../architecture/modern-web-apps-azure/architectural-principles.md#separation-of-concerns): Settings for different parts of the app aren't dependent or coupled to one another. +- [Separation of Concerns](../../architecture/modern-web-apps-azure/architectural-principles.md#separation-of-concerns): Settings for different parts of the app aren't dependent or coupled with one another. Options also provide a mechanism to validate configuration data. For more information, see the [Options validation](#options-validation) section. @@ -42,7 +42,7 @@ The following code is part of the _Program.cs_ C# file and: In the preceding code, changes to the JSON configuration file after the app has started are read. -[`ConfigurationBinder.Get`](xref:Microsoft.Extensions.Configuration.ConfigurationBinder.Get%2A) binds and returns the specified type. `ConfigurationBinder.Get` may be more convenient than using `ConfigurationBinder.Bind`. The following code shows how to use `ConfigurationBinder.Get` with the `TransientFaultHandlingOptions` class: +[`ConfigurationBinder.Get`](xref:Microsoft.Extensions.Configuration.ConfigurationBinder.Get%2A) binds and returns the specified type. `ConfigurationBinder.Get` maybe more convenient than using `ConfigurationBinder.Bind`. The following code shows how to use `ConfigurationBinder.Get` with the `TransientFaultHandlingOptions` class: ```csharp IConfigurationRoot configurationRoot = configuration.Build(); diff --git a/docs/core/extensions/snippets/configuration/console-indexer/Program.cs b/docs/core/extensions/snippets/configuration/console-indexer/Program.cs new file mode 100644 index 0000000000000..422fabf2a5bd8 --- /dev/null +++ b/docs/core/extensions/snippets/configuration/console-indexer/Program.cs @@ -0,0 +1,33 @@ +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; + +using IHost host = Host.CreateDefaultBuilder(args).Build(); + +// Ask the service provider for the configuration abstraction. +IConfiguration config = host.Services.GetRequiredService(); + +// Get values from the config given their key and their target type. +string ipOne = config["IPAddressRange:0"]; +string ipTwo = config["IPAddressRange:1"]; +string ipThree = config["IPAddressRange:2"]; +string versionOne = config["SupportedVersions:v1"]; +string versionThree = config["SupportedVersions:v3"]; + +// Write the values to the console. +Console.WriteLine($"IPAddressRange:0 = {ipOne}"); +Console.WriteLine($"IPAddressRange:1 = {ipTwo}"); +Console.WriteLine($"IPAddressRange:2 = {ipThree}"); +Console.WriteLine($"SupportedVersions:v1 = {versionOne}"); +Console.WriteLine($"SupportedVersions:v3 = {versionThree}"); + +// Application code which might rely on the config could start here. + +await host.RunAsync(); + +// This will output the following: +// IPAddressRange:0 = 46.36.198.123 +// IPAddressRange:1 = 46.36.198.124 +// IPAddressRange:2 = 46.36.198.125 +// SupportedVersions:v1 = 1.0.0 +// SupportedVersions:v3 = 3.0.7 diff --git a/docs/core/extensions/snippets/configuration/console-indexer/appsettings.json b/docs/core/extensions/snippets/configuration/console-indexer/appsettings.json new file mode 100644 index 0000000000000..d5f6c33a6deb9 --- /dev/null +++ b/docs/core/extensions/snippets/configuration/console-indexer/appsettings.json @@ -0,0 +1,11 @@ +{ + "SupportedVersions": { + "v1": "1.0.0", + "v3": "3.0.7" + }, + "IPAddressRange": [ + "46.36.198.123", + "46.36.198.124", + "46.36.198.125" + ] +} diff --git a/docs/core/extensions/snippets/configuration/console-indexer/console-indexer.csproj b/docs/core/extensions/snippets/configuration/console-indexer/console-indexer.csproj new file mode 100644 index 0000000000000..f49235e578c8b --- /dev/null +++ b/docs/core/extensions/snippets/configuration/console-indexer/console-indexer.csproj @@ -0,0 +1,20 @@ + + + + Exe + net6.0 + enable + true + + + + + Always + + + + + + + + diff --git a/docs/core/extensions/snippets/configuration/console-raw/NestedSettings.cs b/docs/core/extensions/snippets/configuration/console-raw/NestedSettings.cs index c6a3a5bf08ba8..1e4f184cf4d53 100644 --- a/docs/core/extensions/snippets/configuration/console-raw/NestedSettings.cs +++ b/docs/core/extensions/snippets/configuration/console-raw/NestedSettings.cs @@ -1,4 +1,4 @@ -public class NestedSettings +public sealed class NestedSettings { public string Message { get; set; } = null!; } diff --git a/docs/core/extensions/snippets/configuration/console-raw/Settings.cs b/docs/core/extensions/snippets/configuration/console-raw/Settings.cs index 023fb9c438eaa..c3b25bd99b963 100644 --- a/docs/core/extensions/snippets/configuration/console-raw/Settings.cs +++ b/docs/core/extensions/snippets/configuration/console-raw/Settings.cs @@ -1,4 +1,4 @@ -public class Settings +public sealed class Settings { public int KeyOne { get; set; } public bool KeyTwo { get; set; } diff --git a/docs/core/extensions/snippets/configuration/console-raw/appsettings.json b/docs/core/extensions/snippets/configuration/console-raw/appsettings.json index 97f151e79aa39..82223b1fd3cb0 100644 --- a/docs/core/extensions/snippets/configuration/console-raw/appsettings.json +++ b/docs/core/extensions/snippets/configuration/console-raw/appsettings.json @@ -3,7 +3,18 @@ "KeyOne": 1, "KeyTwo": true, "KeyThree": { - "Message": "Oh, that's nice..." - } + "Message": "Oh, that's nice...", + "SupportedVersions": { + "v1": "1.0.0", + "v3": "3.0.7" + } + }, + "IPAddressRange": [ + "46.36.198.121", + "46.36.198.122", + "46.36.198.123", + "46.36.198.124", + "46.36.198.125" + ] } } From 452b7808ebe88acbb802798deb11f8d59e344ac4 Mon Sep 17 00:00:00 2001 From: David Pine Date: Fri, 13 May 2022 09:10:46 -0500 Subject: [PATCH 234/429] Update how-to-perform-action-when-a-dataflow-block-receives-data.md (#29420) --- ...how-to-perform-action-when-a-dataflow-block-receives-data.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standard/parallel-programming/how-to-perform-action-when-a-dataflow-block-receives-data.md b/docs/standard/parallel-programming/how-to-perform-action-when-a-dataflow-block-receives-data.md index a505017d8e626..9cb9b9682e007 100644 --- a/docs/standard/parallel-programming/how-to-perform-action-when-a-dataflow-block-receives-data.md +++ b/docs/standard/parallel-programming/how-to-perform-action-when-a-dataflow-block-receives-data.md @@ -29,7 +29,7 @@ ms.assetid: fc2585dc-965e-4632-ace7-73dd02684ed3 ## Robust Programming - This example provides a delegate of type to the object to perform the task of the dataflow block synchronously. To enable the dataflow block to behave asynchronously, provide a delegate of type to the dataflow block. When a dataflow block behaves asynchronously, the task of the dataflow block is complete only when the returned object finishes. The following example modifies the `CountBytes` method and uses the [async](../../csharp/language-reference/keywords/async.md) and [await](../../csharp/language-reference/operators/await.md) operators ([Async](../../visual-basic/language-reference/modifiers/async.md) and [Await](../../visual-basic/language-reference/operators/await-operator.md) in Visual Basic) to asynchronously compute the total number of bytes that are zero in the provided file. The method performs file read operations asynchronously. + This example provides a delegate of type to the object to perform the task of the dataflow block synchronously. To enable the dataflow block to behave asynchronously, provide a delegate of type `Func>` to the dataflow block. When a dataflow block behaves asynchronously, the task of the dataflow block is complete only when the returned object finishes. The following example modifies the `CountBytes` method and uses the [async](../../csharp/language-reference/keywords/async.md) and [await](../../csharp/language-reference/operators/await.md) operators ([Async](../../visual-basic/language-reference/modifiers/async.md) and [Await](../../visual-basic/language-reference/operators/await-operator.md) in Visual Basic) to asynchronously compute the total number of bytes that are zero in the provided file. The method performs file read operations asynchronously. [!code-csharp[TPLDataflow_ExecutionBlocks#2](../../../samples/snippets/csharp/VS_Snippets_Misc/tpldataflow_executionblocks/cs/dataflowexecutionblocks.cs#2)] [!code-vb[TPLDataflow_ExecutionBlocks#2](../../../samples/snippets/visualbasic/VS_Snippets_Misc/tpldataflow_executionblocks/vb/dataflowexecutionblocks.vb#2)] From 42c401d48a239c016d5f9a7a61925d86a4b1b3b6 Mon Sep 17 00:00:00 2001 From: Tom Dykstra Date: Fri, 13 May 2022 08:13:56 -0700 Subject: [PATCH 235/429] How to get default system converters (#29441) --- .../csharp/GetDefaultConverter.cs | 55 +++++++++++++++++++ .../csharp/Program.cs | 9 +++ .../csharp/SystemTextJsonSamples.csproj | 11 ++++ .../system-text-json-configure-options.md | 6 +- .../system-text-json-converters-how-to.md | 39 ++++++++++++- 5 files changed, 115 insertions(+), 5 deletions(-) create mode 100644 docs/standard/serialization/snippets/system-text-json-converters-how-to/csharp/GetDefaultConverter.cs create mode 100644 docs/standard/serialization/snippets/system-text-json-converters-how-to/csharp/Program.cs create mode 100644 docs/standard/serialization/snippets/system-text-json-converters-how-to/csharp/SystemTextJsonSamples.csproj diff --git a/docs/standard/serialization/snippets/system-text-json-converters-how-to/csharp/GetDefaultConverter.cs b/docs/standard/serialization/snippets/system-text-json-converters-how-to/csharp/GetDefaultConverter.cs new file mode 100644 index 0000000000000..398b71c817042 --- /dev/null +++ b/docs/standard/serialization/snippets/system-text-json-converters-how-to/csharp/GetDefaultConverter.cs @@ -0,0 +1,55 @@ +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace GetDefaultConverter; + +public class WeatherForecast +{ + public DateTime Date { get; set; } + public int TemperatureC { get; set; } + public string? Summary { get; set; } +} + +// +public class MyCustomConverter : JsonConverter +{ + private readonly static JsonConverter s_defaultConverter = + (JsonConverter)JsonSerializerOptions.Default.GetConverter(typeof(int)); + + // Custom serialization logic + public override void Write( + Utf8JsonWriter writer, int value, JsonSerializerOptions options) + { + writer.WriteStringValue(value.ToString()); + } + + // Fall back to default deserialization logic + public override int Read( + ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + return s_defaultConverter.Read(ref reader, typeToConvert, options); + } +} +// + +public class Program +{ + public static void Main() + { + var weatherForecast = new WeatherForecast + { + Date = DateTime.Parse("2019-08-01"), + TemperatureC = 25, + Summary = "Hot", + }; + + var options = new JsonSerializerOptions { WriteIndented = true }; + options.Converters.Add(new MyCustomConverter()); + + string jsonString = JsonSerializer.Serialize(weatherForecast, options); + Console.WriteLine(jsonString); + + weatherForecast = JsonSerializer.Deserialize(jsonString); + Console.WriteLine(weatherForecast!.TemperatureC); + } +} diff --git a/docs/standard/serialization/snippets/system-text-json-converters-how-to/csharp/Program.cs b/docs/standard/serialization/snippets/system-text-json-converters-how-to/csharp/Program.cs new file mode 100644 index 0000000000000..11c2f56e9f8be --- /dev/null +++ b/docs/standard/serialization/snippets/system-text-json-converters-how-to/csharp/Program.cs @@ -0,0 +1,9 @@ +namespace SystemTextJsonSamples; +public class Program +{ + static void Main() + { + Console.WriteLine("\n============================= Get system default converter\n"); + GetDefaultConverter.Program.Main(); + } +} diff --git a/docs/standard/serialization/snippets/system-text-json-converters-how-to/csharp/SystemTextJsonSamples.csproj b/docs/standard/serialization/snippets/system-text-json-converters-how-to/csharp/SystemTextJsonSamples.csproj new file mode 100644 index 0000000000000..d0da09096fc8a --- /dev/null +++ b/docs/standard/serialization/snippets/system-text-json-converters-how-to/csharp/SystemTextJsonSamples.csproj @@ -0,0 +1,11 @@ + + + + Exe + net7.0 + enable + enable + SystemTextJsonSamples.Program + + + diff --git a/docs/standard/serialization/system-text-json-configure-options.md b/docs/standard/serialization/system-text-json-configure-options.md index 7fdc8362a5ace..1ea8c25231ac9 100644 --- a/docs/standard/serialization/system-text-json-configure-options.md +++ b/docs/standard/serialization/system-text-json-configure-options.md @@ -1,7 +1,7 @@ --- title: How to instantiate JsonSerializerOptions with System.Text.Json description: "Learn how to avoid performance issues and how to use available constructors for JsonSerializerOptions instances." -ms.date: 05/06/2022 +ms.date: 05/12/2022 no-loc: [System.Text.Json, Newtonsoft.Json] zone_pivot_groups: dotnet-version dev_langs: @@ -35,7 +35,9 @@ The size of the metadata cache in a `JsonSerializerOptions` instance depends on ::: zone pivot="dotnet-7-0" -If the instance of `JsonSerializerOptions` that you need to use is the default instance (has all of the default settings and the default converters), use the property rather than creating an options instance. +## The `JsonSerializerOptions.Default` property + +If the instance of `JsonSerializerOptions` that you need to use is the default instance (has all of the default settings and the default converters), use the property rather than creating an options instance. For more information, see [Use default system converter](system-text-json-converters-how-to.md#use-default-system-converter). ::: zone-end diff --git a/docs/standard/serialization/system-text-json-converters-how-to.md b/docs/standard/serialization/system-text-json-converters-how-to.md index 2582d4eb9ae59..c500d6ab5cf15 100644 --- a/docs/standard/serialization/system-text-json-converters-how-to.md +++ b/docs/standard/serialization/system-text-json-converters-how-to.md @@ -1,7 +1,7 @@ --- title: "How to write custom converters for JSON serialization - .NET" description: "Learn how to create custom converters for the JSON serialization classes that are provided in the System.Text.Json namespace." -ms.date: 12/04/2021 +ms.date: 05/12/2022 no-loc: [System.Text.Json, Newtonsoft.Json] zone_pivot_groups: dotnet-version helpviewer_keywords: @@ -24,12 +24,23 @@ A *converter* is a class that converts an object or a value to and from JSON. Th You can also write custom converters to customize or extend `System.Text.Json` with functionality not included in the current release. The following scenarios are covered later in this article: -::: zone pivot="dotnet-5-0,dotnet-7-0,dotnet-6-0" +::: zone pivot="dotnet-7-0" + +* [Deserialize inferred types to object properties](#deserialize-inferred-types-to-object-properties). +* [Support polymorphic deserialization](#support-polymorphic-deserialization). +* [Support round-trip for Stack\](#support-round-trip-for-stackt). +* [Support enum string value deserialization](#support-enum-string-value-deserialization). +* [Use default system converter](#use-default-system-converter). + +::: zone-end + +::: zone pivot="dotnet-5-0,dotnet-6-0" * [Deserialize inferred types to object properties](#deserialize-inferred-types-to-object-properties). * [Support polymorphic deserialization](#support-polymorphic-deserialization). * [Support round-trip for Stack\](#support-round-trip-for-stackt). * [Support enum string value deserialization](#support-enum-string-value-deserialization). + ::: zone-end ::: zone pivot="dotnet-core-3-1" @@ -222,12 +233,23 @@ A built-in converter is chosen only if no applicable custom converter is registe The following sections provide converter samples that address some common scenarios that built-in functionality doesn't handle. -::: zone pivot="dotnet-5-0,dotnet-7-0,dotnet-6-0" +::: zone pivot="dotnet-7-0" * [Deserialize inferred types to object properties](#deserialize-inferred-types-to-object-properties). * [Support polymorphic deserialization](#support-polymorphic-deserialization). * [Support round-trip for Stack\](#support-round-trip-for-stackt). * [Support enum string value deserialization](#support-enum-string-value-deserialization). +* [Use default system converter](#use-default-system-converter). + +::: zone-end + +::: zone pivot="dotnet-5-0,dotnet-6-0" + +* [Deserialize inferred types to object properties](#deserialize-inferred-types-to-object-properties). +* [Support polymorphic deserialization](#support-polymorphic-deserialization). +* [Support round-trip for Stack\](#support-round-trip-for-stackt). +* [Support enum string value deserialization](#support-enum-string-value-deserialization). + ::: zone-end ::: zone pivot="dotnet-core-3-1" @@ -236,6 +258,7 @@ The following sections provide converter samples that address some common scenar * [Support Dictionary with non-string key](#support-dictionary-with-non-string-key). * [Support polymorphic deserialization](#support-polymorphic-deserialization). * [Support round-trip for Stack\](#support-round-trip-for-stackt). + ::: zone-end For a sample converter, see [Supported collection types](system-text-json-supported-collection-types.md#systemdata-namespace). @@ -406,6 +429,16 @@ By default, the built-in property, as shown in the following example: + +:::code language="csharp" source="snippets/system-text-json-converters-how-to/csharp/GetDefaultConverter.cs" id="Converter" highlight="3-4,17"::: + +::: zone-end + ## Handle null values By default, the serializer handles null values as follows: From 42d46aa5eea75a6fc67c084375b8e8ab24cd0c75 Mon Sep 17 00:00:00 2001 From: Isobel Cullen <646896+isobel-cullen@users.noreply.github.com> Date: Fri, 13 May 2022 16:33:42 +0100 Subject: [PATCH 236/429] Fix ComplexType.cs example (#29449) Description for the `lastNameOption` referred to the first name. I assume this is incorrect. --- .../commandline/snippets/model-binding/csharp/ComplexType.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standard/commandline/snippets/model-binding/csharp/ComplexType.cs b/docs/standard/commandline/snippets/model-binding/csharp/ComplexType.cs index 946e123b6ad9e..59ec58323460f 100644 --- a/docs/standard/commandline/snippets/model-binding/csharp/ComplexType.cs +++ b/docs/standard/commandline/snippets/model-binding/csharp/ComplexType.cs @@ -19,7 +19,7 @@ internal static async Task Main(string[] args) var lastNameOption = new Option( name: "--last-name", - description: "Person.FirstName"); + description: "Person.LastName"); var rootCommand = new RootCommand(); rootCommand.Add(fileOption); From 8fed4206f6712aaebe6aadc1e1a3aa60d54f0e38 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Fri, 13 May 2022 08:43:30 -0700 Subject: [PATCH 237/429] Update package index with latest published versions (#29451) --- docs/azure/includes/dotnet-all.md | 10 +++++----- docs/azure/includes/dotnet-new.md | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index a9b42ef9a8739..0619f90279de5 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -98,7 +98,7 @@ | Resource Management - Resources | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.Resources/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Resources-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Resources_1.0.0/sdk/resources/Azure.ResourceManager.Resources/) | | Resource Management - Service Bus | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.ServiceBus/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.ServiceBus-readme-pre) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ServiceBus_1.0.0-beta.4/sdk/servicebus/Azure.ResourceManager.ServiceBus/) | | Resource Management - Sql | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.Sql/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.Sql-readme-pre) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Sql_1.0.0-beta.4/sdk/sqlmanagement/Azure.ResourceManager.Sql/) | -| Resource Management - Storage | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Azure.ResourceManager.Storage/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/ResourceManager.Storage-readme-pre) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Storage_1.0.0-beta.8/sdk/storage/Azure.ResourceManager.Storage/) | +| Resource Management - Storage | NuGet [1.0.0-beta.9](https://www.nuget.org/packages/Azure.ResourceManager.Storage/1.0.0-beta.9) | [docs](/dotnet/api/overview/azure/ResourceManager.Storage-readme-pre) | GitHub [1.0.0-beta.9](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Storage_1.0.0-beta.9/sdk/storage/Azure.ResourceManager.Storage/) | | Resource Management - Storage Pool | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.ResourceManager.StoragePool/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/ResourceManager.StoragePool-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.StoragePool_1.0.0-beta.3/sdk/storagepool/Azure.ResourceManager.StoragePool/) | | Resource Management - Web PubSub | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.WebPubSub/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.WebPubSub-readme-pre) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.WebPubSub_1.0.0-beta.4/sdk/webpubsub/Azure.ResourceManager.WebPubSub/) | | Azure.Communication.Administration | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Communication.Administration/1.0.0-beta.3) | | | @@ -138,7 +138,7 @@ | Microsoft.Azure.IoT.Edge.Module | NuGet [3.1.1](https://www.nuget.org/packages/Microsoft.Azure.IoT.Edge.Module/3.1.1) | | | | Microsoft.Azure.Management.ChangeAnalysis | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.ChangeAnalysis/1.0.0) | | | | Microsoft.Azure.Management.Chaos | NuGet [0.9.15-preview.1](https://www.nuget.org/packages/Microsoft.Azure.Management.Chaos/0.9.15-preview.1) | | | -| Microsoft.Azure.Management.DataProtection.Backup | NuGet [2.0.0.1](https://www.nuget.org/packages/Microsoft.Azure.Management.DataProtection.Backup/2.0.0.1) | | | +| Microsoft.Azure.Management.DataProtection.Backup | NuGet [2.1.0](https://www.nuget.org/packages/Microsoft.Azure.Management.DataProtection.Backup/2.1.0) | | | | Microsoft.Azure.Management.DeviceUpdate | NuGet [1.0.1-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Management.DeviceUpdate/1.0.1-beta.1) | | | | Microsoft.Azure.Management.Elastic | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Management.Elastic/1.0.0-beta.1) | | | | Microsoft.Azure.Management.ExtendedLocation | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.ExtendedLocation/1.0.0) | | | @@ -240,7 +240,7 @@ | Cosmos DB | NuGet [4.0.0-preview3](https://www.nuget.org/packages/Azure.Cosmos/4.0.0-preview3) | [docs](/dotnet/api/azure.cosmos) | GitHub [4.0.0-preview3](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/releases/4.0.0-preview3) | | Cosmos DB | NuGet [3.27.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.27.0) | [docs](/dotnet/api/overview/azure/cosmosdb) | GitHub [3.27.0](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) | | Cosmos DB - BulkExecutor | NuGet [2.5.1-preview](https://www.nuget.org/packages/Microsoft.Azure.CosmosDB.BulkExecutor/2.5.1-preview) | | GitHub [2.5.1-preview](https://github.com/Azure/azure-cosmosdb-bulkexecutor-dotnet-getting-started) | -| Cosmos DB - Direct | NuGet [3.28.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Direct/3.28.0) | | GitHub [3.28.0](https://github.com/Azure/azure-cosmos-dotnet-v3) | +| Cosmos DB - Direct | NuGet [3.28.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Direct/3.28.1) | | GitHub [3.28.1](https://github.com/Azure/azure-cosmos-dotnet-v3) | | Cosmos DB - Encryption | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Encryption/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/releases/encryption/1.0.0-preview4/Microsoft.Azure.Cosmos.Encryption) | | Custom Image Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.CustomImageSearch/2.0.0) | | | | Custom Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.CustomSearch/2.0.0) | | | @@ -598,7 +598,7 @@ | Management - Private DNS | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.PrivateDns/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.PrivateDns_1.0.0/sdk/privatedns/Microsoft.Azure.Management.PrivateDns/) | | Management - Private DNS Fluent | NuGet [1.38.1](https://www.nuget.org/packages/Microsoft.Azure.Management.PrivateDns.Fluent/1.38.1) | | | | Management - Recovery Services | NuGet [4.3.2-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.RecoveryServices/4.3.2-preview) | [docs](/dotnet/api/overview/azure/recovery-services) | GitHub [4.3.2-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.RecoveryServices_4.3.2-preview/sdk/recoveryservices/Microsoft.Azure.Management.RecoveryServices/) | -| Management - Recovery Services Backup | NuGet [4.5.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.RecoveryServices.Backup/4.5.0-preview) | [docs](/dotnet/api/overview/azure/recovery-services) | GitHub [4.5.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.RecoveryServices.Backup_4.5.0-preview/sdk/recoveryservices-backup/Microsoft.Azure.Management.RecoveryServices.Backup/) | +| Management - Recovery Services Backup | NuGet [5.0.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.RecoveryServices.Backup/5.0.0-preview) | [docs](/dotnet/api/overview/azure/recovery-services) | GitHub [5.0.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.RecoveryServices.Backup_5.0.0-preview/sdk/recoveryservices-backup/Microsoft.Azure.Management.RecoveryServices.Backup/) | | Management - Recovery Services Site Recovery | NuGet [2.2.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.RecoveryServices.SiteRecovery/2.2.0-preview) | | GitHub [2.2.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.RecoveryServices.SiteRecovery_2.2.0-preview/sdk/recoveryservices-siterecovery/Microsoft.Azure.Management.RecoveryServices.SiteRecovery/) | | Management - Recovery Services Vault Upgrade | NuGet [1.0.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.RecoveryServicesVaultUpgrade/1.0.0-preview) | | | | Management - Redis | NuGet [8.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.Redis/8.0.0) | | | @@ -682,7 +682,7 @@ | Resource Management - Resources | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.Resources/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Resources-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Resources_1.0.0/sdk/resources/Azure.ResourceManager.Resources/) | | Resource Management - Service Bus | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.ServiceBus/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.ServiceBus-readme-pre) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ServiceBus_1.0.0-beta.4/sdk/servicebus/Azure.ResourceManager.ServiceBus/) | | Resource Management - Sql | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.Sql/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.Sql-readme-pre) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Sql_1.0.0-beta.4/sdk/sqlmanagement/Azure.ResourceManager.Sql/) | -| Resource Management - Storage | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Azure.ResourceManager.Storage/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/ResourceManager.Storage-readme-pre) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Storage_1.0.0-beta.8/sdk/storage/Azure.ResourceManager.Storage/) | +| Resource Management - Storage | NuGet [1.0.0-beta.9](https://www.nuget.org/packages/Azure.ResourceManager.Storage/1.0.0-beta.9) | [docs](/dotnet/api/overview/azure/ResourceManager.Storage-readme-pre) | GitHub [1.0.0-beta.9](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Storage_1.0.0-beta.9/sdk/storage/Azure.ResourceManager.Storage/) | | Resource Management - Storage Pool | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.ResourceManager.StoragePool/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/ResourceManager.StoragePool-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.StoragePool_1.0.0-beta.3/sdk/storagepool/Azure.ResourceManager.StoragePool/) | | Resource Management - Web PubSub | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.WebPubSub/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.WebPubSub-readme-pre) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.WebPubSub_1.0.0-beta.4/sdk/webpubsub/Azure.ResourceManager.WebPubSub/) | | Security Insights | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.SecurityInsights/2.0.0) | | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.SecurityInsights_2.0.0/sdk/securityinsights/Microsoft.Azure.Management.SecurityInsights/) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index 1cb35f9a6c2fc..e2dba112ce232 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -98,6 +98,6 @@ | Resource Management - Resources | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.Resources/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Resources-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Resources_1.0.0/sdk/resources/Azure.ResourceManager.Resources/) | | Resource Management - Service Bus | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.ServiceBus/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.ServiceBus-readme-pre) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ServiceBus_1.0.0-beta.4/sdk/servicebus/Azure.ResourceManager.ServiceBus/) | | Resource Management - Sql | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.Sql/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.Sql-readme-pre) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Sql_1.0.0-beta.4/sdk/sqlmanagement/Azure.ResourceManager.Sql/) | -| Resource Management - Storage | NuGet [1.0.0-beta.8](https://www.nuget.org/packages/Azure.ResourceManager.Storage/1.0.0-beta.8) | [docs](/dotnet/api/overview/azure/ResourceManager.Storage-readme-pre) | GitHub [1.0.0-beta.8](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Storage_1.0.0-beta.8/sdk/storage/Azure.ResourceManager.Storage/) | +| Resource Management - Storage | NuGet [1.0.0-beta.9](https://www.nuget.org/packages/Azure.ResourceManager.Storage/1.0.0-beta.9) | [docs](/dotnet/api/overview/azure/ResourceManager.Storage-readme-pre) | GitHub [1.0.0-beta.9](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Storage_1.0.0-beta.9/sdk/storage/Azure.ResourceManager.Storage/) | | Resource Management - Storage Pool | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.ResourceManager.StoragePool/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/ResourceManager.StoragePool-readme-pre) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.StoragePool_1.0.0-beta.3/sdk/storagepool/Azure.ResourceManager.StoragePool/) | | Resource Management - Web PubSub | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.ResourceManager.WebPubSub/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/ResourceManager.WebPubSub-readme-pre) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.WebPubSub_1.0.0-beta.4/sdk/webpubsub/Azure.ResourceManager.WebPubSub/) | From f77e3a209cd28382b74af0a52ba297605eb83949 Mon Sep 17 00:00:00 2001 From: David Pine Date: Fri, 13 May 2022 12:13:26 -0500 Subject: [PATCH 238/429] Use C# 7.3 for .NET Framework example code (#29448) * Use C# 7.3 for .NET Framework example code Use C# 7.3 for .NET Framework example code. * Fix MD warnings/issues --- .../how-to-upload-files-with-ftp.md | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/docs/framework/network-programming/how-to-upload-files-with-ftp.md b/docs/framework/network-programming/how-to-upload-files-with-ftp.md index 59e559b4d38d4..6189d455b34db 100644 --- a/docs/framework/network-programming/how-to-upload-files-with-ftp.md +++ b/docs/framework/network-programming/how-to-upload-files-with-ftp.md @@ -1,7 +1,7 @@ --- title: "How to: Upload files with FTP" description: "This article shows a sample of how to upload a file to an FTP server." -ms.date: "06/26/2018" +ms.date: 05/13/2022 dev_langs: - "csharp" - "vb" @@ -20,6 +20,7 @@ This sample shows how to upload a file to an FTP server. using System; using System.IO; using System.Net; +using System.Threading.Tasks; namespace Examples.System.Net { @@ -35,12 +36,17 @@ namespace Examples.System.Net request.Credentials = new NetworkCredential("anonymous", "janeDoe@contoso.com"); // Copy the contents of the file to the request stream. - await using FileStream fileStream = File.Open("testfile.txt", FileMode.Open, FileAccess.Read); - await using Stream requestStream = request.GetRequestStream(); - await fileStream.CopyToAsync(requestStream); - - using FtpWebResponse response = (FtpWebResponse)request.GetResponse(); - Console.WriteLine($"Upload File Complete, status {response.StatusDescription}"); + using (FileStream fileStream = File.Open("testfile.txt", FileMode.Open, FileAccess.Read)) + { + using (Stream requestStream = request.GetRequestStream()) + { + await fileStream.CopyToAsync(requestStream); + using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) + { + Console.WriteLine($"Upload File Complete, status {response.StatusDescription}"); + } + } + } } } } From fe91d5aa9d9e9fb40604998e349661b81733f333 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Fri, 13 May 2022 10:49:53 -0700 Subject: [PATCH 239/429] Revert "Update dumps.md (#29412)" (#29453) This reverts commit 31e9e10bed530ec6b22b47fdb8e17fa07301daa3. --- docs/core/diagnostics/dumps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/diagnostics/dumps.md b/docs/core/diagnostics/dumps.md index 5092f76715db5..a9f48c6c178da 100644 --- a/docs/core/diagnostics/dumps.md +++ b/docs/core/diagnostics/dumps.md @@ -10,7 +10,7 @@ A dump is a file that contains a snapshot of the process at the time it was crea ## Collect dumps -Dumps can be collected in a variety of ways depending which platform you are running your app on. +Dumps can be collected in a variety of ways depending on which platform you are running your app on. > [!NOTE] > Collecting a dump inside a container requires PTRACE capability, which can be added via `--cap-add=SYS_PTRACE` or `--privileged`. From 766bbcdd7b1d9d786cc2195e1659af14f5e53c67 Mon Sep 17 00:00:00 2001 From: "Andy (Steve) De George" <67293991+adegeo@users.noreply.github.com> Date: Fri, 13 May 2022 10:50:54 -0700 Subject: [PATCH 240/429] Update language.md (#29454) --- docs/csharp/language-reference/compiler-options/language.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/compiler-options/language.md b/docs/csharp/language-reference/compiler-options/language.md index 830626add8615..7631ee5600466 100644 --- a/docs/csharp/language-reference/compiler-options/language.md +++ b/docs/csharp/language-reference/compiler-options/language.md @@ -72,7 +72,7 @@ Metadata referenced by your C# application isn't subject to the **LangVersion** Because each version of the C# compiler contains extensions to the language specification, **LangVersion** doesn't give you the equivalent functionality of an earlier version of the compiler. -Additionally, while C# version updates generally coincide with major .NET Framework releases, the new syntax and features aren't necessarily tied to that specific framework version. While the new features definitely require a new compiler update that is also released alongside the C# revision, each specific feature has its own minimum .NET API or common language runtime requirements that may allow it to run on downlevel frameworks by including NuGet packages or other libraries. +Additionally, while C# version updates generally coincide with major .NET releases, the new syntax and features aren't necessarily tied to that specific framework version. While the new features definitely require a new compiler update that is also released alongside the C# revision, each specific feature has its own minimum .NET API or common language runtime requirements that may allow it to run on downlevel frameworks by including NuGet packages or other libraries. Regardless of which **LangVersion** setting you use, use the current version of the common language runtime to create your .exe or .dll. One exception is friend assemblies and [**ModuleAssemblyName**](advanced.md#moduleassemblyname), which work under **-langversion:ISO-1**. From 5719ae901fda4f0843dd7c4d19fe655931983678 Mon Sep 17 00:00:00 2001 From: Rich Lander Date: Fri, 13 May 2022 11:46:05 -0700 Subject: [PATCH 241/429] Add Ubuntu 22.04 (#29273) * Add Ubuntu 22.04 - Add Ubuntu 22.04 - Simplify table - Remove unsupported versions * Update linux-ubuntu.md * Update linux-ubuntu.md * Update linux-ubuntu.md * Update linux-ubuntu.md * Update linux.md --- docs/core/install/linux-ubuntu.md | 148 ++++-------------------------- docs/core/install/linux.md | 17 +--- 2 files changed, 24 insertions(+), 141 deletions(-) diff --git a/docs/core/install/linux-ubuntu.md b/docs/core/install/linux-ubuntu.md index 41f599b2a6bf7..748a9781d1184 100644 --- a/docs/core/install/linux-ubuntu.md +++ b/docs/core/install/linux-ubuntu.md @@ -8,7 +8,7 @@ ms.date: 03/21/2022 # Install the .NET SDK or the .NET Runtime on Ubuntu -.NET is supported on Ubuntu. This article describes how to install .NET on Ubuntu. When an Ubuntu version falls out of support, .NET is no longer supported with that version. +.NET is supported on Ubuntu. This article describes how to install .NET on Ubuntu. When an [Ubuntu version](https://wiki.ubuntu.com/Releases) falls out of support, .NET is no longer supported with that version. [!INCLUDE [linux-intro-sdk-vs-runtime](includes/linux-intro-sdk-vs-runtime.md)] @@ -16,26 +16,15 @@ ms.date: 03/21/2022 ## Supported distributions -The following table is a list of currently supported .NET releases and the versions of Ubuntu they're supported on. These versions remain supported until either the version of [.NET reaches end-of-support](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) or the version of [Ubuntu reaches end-of-life](https://wiki.ubuntu.com/Releases). - -- A ✔️ indicates that the version of Ubuntu or .NET is still supported. -- A ❌ indicates that the version of Ubuntu or .NET isn't supported on that Ubuntu release. -- When both a version of Ubuntu and a version of .NET have ✔️, that OS and .NET combination is supported. - -| Ubuntu | .NET Core 3.1 | .NET 5 | .NET 6 | -|--------------------------|---------------|----------|----------| -| ✔️ [21.10](#2110-) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | -| ❌ [21.04](#2104-) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | -| ❌ [20.10](#2010-) | ✔️ 3.1 | ✔️ 5.0 | ❌ 6.0 | -| ✔️ [20.04 (LTS)](#2004-) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | -| ❌ [19.10](#1910-) | ✔️ 3.1 | ❌ 5.0 | ❌ 6.0 | -| ❌ [19.04](#1904-) | ✔️ 3.1 | ❌ 5.0 | ❌ 6.0 | -| ❌ [18.10](#1810-) | ❌ 3.1 | ❌ 5.0 | ❌ 6.0 | -| ✔️ [18.04 (LTS)](#1804-) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | -| ❌ [17.10](#1710-) | ❌ 3.1 | ❌ 5.0 | ❌ 6.0 | -| ❌ [17.04](#1704-) | ❌ 3.1 | ❌ 5.0 | ❌ 6.0 | -| ❌ [16.10](#1610-) | ❌ 3.1 | ❌ 5.0 | ❌ 6.0 | -| ✔️ [16.04 (LTS)](#1604-) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | +The following table is a list of currently supported .NET releases and the versions of Ubuntu they're supported on. + +| Ubuntu | .NET | +|------------------------|------------| +| [22.04 (LTS)](#2110) | 6+ | +| [21.10](#2004) | 3.1, 6 | +| [20.04 (LTS)](#2004) | 3.1, 6 | +| [18.04 (LTS)](#1804) | 3.1, 6 | +| [16.04 (LTS)](#1604) | 3.1, 6 | [!INCLUDE [versions-not-supported](includes/versions-not-supported.md)] @@ -47,48 +36,33 @@ The following table is a list of currently supported .NET releases and the versi [!INCLUDE [package-manager uninstall notice](./includes/linux-uninstall-preview-info.md)] -## 21.10 ✔️ +## 22.04 [!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)] -> [!NOTE] -> The .NET 6 packages haven't yet been published for Ubuntu 21.10. The following `wget` command uses the Ubuntu 21.04 repository. This article will be updated when the packages are available in the Ubuntu 21.10 repository. - ```bash -wget https://packages.microsoft.com/config/ubuntu/21.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb +wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb ``` [!INCLUDE [linux-apt-install-60](includes/linux-install-60-apt.md)] -## 21.04 ❌ - -[!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)] - -```bash -wget https://packages.microsoft.com/config/ubuntu/21.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb -sudo dpkg -i packages-microsoft-prod.deb -rm packages-microsoft-prod.deb -``` +Note: [Ubuntu 22.04 includes OpenSSL 3](https://discourse.ubuntu.com/t/openssl-3-0-transition-plans/24453) as the baseline version. [.NET 6 supports OpenSSL 3](https://devblogs.microsoft.com/dotnet/announcing-net-6/#security) while earlier .NET versions do not. Microsoft does not test or support using OpenSSL 1.x on Ubuntu 22.04. -[!INCLUDE [linux-apt-install-60](includes/linux-install-60-apt.md)] - -## 20.10 ❌ - -[!INCLUDE [linux-not-supported](includes/linux-not-supported-ubuntu.md)] +## 21.10 [!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)] ```bash -wget https://packages.microsoft.com/config/ubuntu/20.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb +wget https://packages.microsoft.com/config/ubuntu/21.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb ``` -[!INCLUDE [linux-apt-install-50](includes/linux-install-50-apt.md)] +[!INCLUDE [linux-apt-install-60](includes/linux-install-60-apt.md)] -## 20.04 ✔️ +## 20.04 [!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)] @@ -100,49 +74,7 @@ rm packages-microsoft-prod.deb [!INCLUDE [linux-apt-install-60](includes/linux-install-60-apt.md)] -## 19.10 ❌ - -[!INCLUDE [linux-not-supported](includes/linux-not-supported-ubuntu.md)] - -[!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)] - -```bash -wget https://packages.microsoft.com/config/ubuntu/19.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb -sudo dpkg -i packages-microsoft-prod.deb -rm packages-microsoft-prod.deb -``` - -[!INCLUDE [linux-apt-install-31](includes/linux-install-31-apt.md)] - -## 19.04 ❌ - -[!INCLUDE [linux-not-supported](includes/linux-not-supported-ubuntu.md)] - -[!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)] - -```bash -wget https://packages.microsoft.com/config/ubuntu/19.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb -sudo dpkg -i packages-microsoft-prod.deb -rm packages-microsoft-prod.deb -``` - -[!INCLUDE [linux-apt-install-31](includes/linux-install-31-apt.md)] - -## 18.10 ❌ - -[!INCLUDE [linux-not-supported](includes/linux-not-supported-ubuntu.md)] - -[!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)] - -```bash -wget https://packages.microsoft.com/config/ubuntu/18.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb -sudo dpkg -i packages-microsoft-prod.deb -rm packages-microsoft-prod.deb -``` - -[!INCLUDE [linux-apt-install-21](includes/linux-install-21-apt.md)] - -## 18.04 ✔️ +## 18.04 [!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)] @@ -154,49 +86,7 @@ rm packages-microsoft-prod.deb [!INCLUDE [linux-apt-install-50](includes/linux-install-60-apt.md)] -## 17.10 ❌ - -[!INCLUDE [linux-not-supported](includes/linux-not-supported-ubuntu.md)] - -[!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)] - -```bash -wget https://packages.microsoft.com/config/ubuntu/17.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb -sudo dpkg -i packages-microsoft-prod.deb -rm packages-microsoft-prod.deb -``` - -[!INCLUDE [linux-apt-install-21](includes/linux-install-21-apt.md)] - -## 17.04 ❌ - -[!INCLUDE [linux-not-supported](includes/linux-not-supported-ubuntu.md)] - -[!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)] - -```bash -wget https://packages.microsoft.com/config/ubuntu/17.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb -sudo dpkg -i packages-microsoft-prod.deb -rm packages-microsoft-prod.deb -``` - -[!INCLUDE [linux-apt-install-21](includes/linux-install-21-apt.md)] - -## 16.10 ❌ - -[!INCLUDE [linux-not-supported](includes/linux-not-supported-ubuntu.md)] - -[!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)] - -```bash -wget https://packages.microsoft.com/config/ubuntu/16.10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb -sudo dpkg -i packages-microsoft-prod.deb -rm packages-microsoft-prod.deb -``` - -[!INCLUDE [linux-apt-install-21](includes/linux-install-21-apt.md)] - -## 16.04 ✔️ +## 16.04 [!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)] diff --git a/docs/core/install/linux.md b/docs/core/install/linux.md index 92ee35ae3af7a..0fa9ec8dbf514 100644 --- a/docs/core/install/linux.md +++ b/docs/core/install/linux.md @@ -188,18 +188,11 @@ The following table is a list of currently supported .NET releases and the versi | Ubuntu | .NET Core 3.1 | .NET 5 | .NET 6 | |------------------------------------------|---------------|----------|----------| -| ✔️ [21.10](linux-ubuntu.md#2110-) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | -| ❌ [21.04](linux-ubuntu.md#2104-) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | -| ❌ [20.10](linux-ubuntu.md#2010-) | ✔️ 3.1 | ✔️ 5.0 | ❌ 6.0 | -| ✔️ [20.04 (LTS)](linux-ubuntu.md#2004-) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | -| ❌ [19.10](linux-ubuntu.md#1910-) | ✔️ 3.1 | ❌ 5.0 | ❌ 6.0 | -| ❌ [19.04](linux-ubuntu.md#1904-) | ✔️ 3.1 | ❌ 5.0 | ❌ 6.0 | -| ❌ [18.10](linux-ubuntu.md#1810-) | ❌ 3.1 | ❌ 5.0 | ❌ 6.0 | -| ✔️ [18.04 (LTS)](linux-ubuntu.md#1804-) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | -| ❌ [17.10](linux-ubuntu.md#1710-) | ❌ 3.1 | ❌ 5.0 | ❌ 6.0 | -| ❌ [17.04](linux-ubuntu.md#1704-) | ❌ 3.1 | ❌ 5.0 | ❌ 6.0 | -| ❌ [16.10](linux-ubuntu.md#1610-) | ❌ 3.1 | ❌ 5.0 | ❌ 6.0 | -| ✔️ [16.04 (LTS)](linux-ubuntu.md#1604-) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | +| ✔️ [22.04](linux-ubuntu.md#2204) | ❌ 3.1 | ❌ 5.0 | ✔️ 6.0 | +| ✔️ [21.10](linux-ubuntu.md#2110) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | +| ✔️ [20.04 (LTS)](linux-ubuntu.md#2004) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | +| ✔️ [18.04 (LTS)](linux-ubuntu.md#1804) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | +| ✔️ [16.04 (LTS)](linux-ubuntu.md#1604) | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | For more information, see [Install .NET on Ubuntu](linux-ubuntu.md). From eeb376bc8d2008d61207a16b5cf37f24d5123f1d Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Fri, 13 May 2022 13:24:03 -0700 Subject: [PATCH 242/429] Update package index with latest published versions (#29456) --- docs/azure/includes/dotnet-all.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 0619f90279de5..9b41017bf3158 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -169,7 +169,7 @@ | Microsoft.Azure.ServiceBus.EventProcessorHost | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.ServiceBus.EventProcessorHost/5.0.1) | | | | Microsoft.Azure.SignalR.Emulator | NuGet [1.0.0-preview1-10809](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Emulator/1.0.0-preview1-10809) | | | | Microsoft.Azure.WebJobs.Extensions.ApplicationInsights | NuGet [1.0.0-preview4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ApplicationInsights/1.0.0-preview4) | | | -| Microsoft.Azure.WebJobs.Extensions.Sql | NuGet [0.1.311-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Sql/0.1.311-preview) | | | +| Microsoft.Azure.WebJobs.Extensions.Sql | NuGet [0.1.319-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Sql/0.1.319-preview) | | | | Microsoft.Azure.WebJobs.Extensions.Timers.Storage | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Timers.Storage/1.0.0-beta.1) | | | | Microsoft.Azure.WebPubSub.AspNetCore | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Microsoft.Azure.WebPubSub.AspNetCore/1.0.0-beta.3) | | | | Microsoft.Azure.WebPubSub.Common | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebPubSub.Common/1.1.0) | | | From 0f1947e5123493cd2838dbc0a8892c5c409b4844 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Fri, 13 May 2022 15:51:45 -0700 Subject: [PATCH 243/429] Update "z" custom format specifier (#29457) --- .../custom-date-and-time-format-strings.md | 42 +++++++++++++------ .../cs/Custom1.cs | 3 +- .../cs/LiteralsEx1.cs | 32 +++++++------- .../cs/LiteralsEx2.cs | 32 +++++++------- .../cs/LiteralsEx3.cs | 32 +++++++------- .../cs/Project.csproj | 6 +++ .../cs/custandparsing1.cs | 33 ++++++++------- .../cs/escape1.cs | 28 ++++++------- .../cs/literal1.cs | 28 ++++++------- .../cs/parseexact2digityear1.cs | 36 ++++++++-------- .../vb/Custom1.vb | 3 +- .../vb/Project.csproj | 6 +++ 12 files changed, 157 insertions(+), 124 deletions(-) create mode 100644 samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/Project.csproj create mode 100644 samples/snippets/visualbasic/VS_Snippets_CLR/Formatting.DateAndTime.Custom/vb/Project.csproj diff --git a/docs/standard/base-types/custom-date-and-time-format-strings.md b/docs/standard/base-types/custom-date-and-time-format-strings.md index 3dd4221ac4872..b8bdc92b455d8 100644 --- a/docs/standard/base-types/custom-date-and-time-format-strings.md +++ b/docs/standard/base-types/custom-date-and-time-format-strings.md @@ -1,7 +1,7 @@ --- title: "Custom date and time format strings" description: Learn to use custom date and time format strings to convert DateTime or DateTimeOffset values into text representations, or to parse strings for dates & times. -ms.date: "03/30/2017" +ms.date: 05/12/2022 ms.topic: reference dev_langs: - "csharp" @@ -356,7 +356,7 @@ The following example includes the "HH" custom format specifier in a custom form The "K" custom format specifier represents the time zone information of a date and time value. When this format specifier is used with values, the result string is defined by the value of the property: -- For the local time zone (a property value of ), this specifier is equivalent to the "zzz" specifier and produces a result string containing the local offset from Coordinated Universal Time (UTC); for example, "-07:00". +- For the local time zone (a property value of ), this specifier produces a result string containing the local offset from Coordinated Universal Time (UTC); for example, "-07:00". - For a UTC time (a property value of ), the result string includes a "Z" character to represent a UTC date. @@ -577,11 +577,17 @@ The following example includes the "yyyyy" custom format specifier in a custom f ### The "z" custom format specifier -With values, the "z" custom format specifier represents the signed offset of the local operating system's time zone from Coordinated Universal Time (UTC), measured in hours. It doesn't reflect the value of an instance's property. For this reason, the "z" format specifier is not recommended for use with values. +With values, the "z" custom format specifier represents the signed offset of the specified time zone from Coordinated Universal Time (UTC), measured in hours. The offset is always displayed with a leading sign. A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. A single-digit offset is formatted *without* a leading zero. -With values, this format specifier represents the value's offset from UTC in hours. +The following table shows how the offset value changes depending on . + +| value | Offset value | +| - | - | +| | The signed offset of the local operating system's time zone from UTC. | +| | The signed offset of the local operating system's time zone from UTC. | +| | `+0` on .NET Core and .NET 5+.

      On .NET Framework, the signed offset of the local operating system's time zone from UTC. | -The offset is always displayed with a leading sign. A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. A single-digit offset is formatted without a leading zero. +With values, this format specifier represents the value's offset from UTC in hours. If the "z" format specifier is used without other custom format specifiers, it's interpreted as a standard date and time format specifier and throws a . For more information about using a single format specifier, see [Using Single Custom Format Specifiers](#UsingSingleSpecifiers) later in this article. @@ -594,11 +600,17 @@ The following example includes the "z" custom format specifier in a custom forma ### The "zz" custom format specifier -With values, the "zz" custom format specifier represents the signed offset of the local operating system's time zone from UTC, measured in hours. It doesn't reflect the value of an instance's property. For this reason, the "zz" format specifier is not recommended for use with values. +With values, the "zz" custom format specifier represents the signed offset of the specified time zone from UTC, measured in hours. The offset is always displayed with a leading sign. A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. A single-digit offset is formatted *with* a leading zero. -With values, this format specifier represents the value's offset from UTC in hours. +The following table shows how the offset value changes depending on . -The offset is always displayed with a leading sign. A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. A single-digit offset is formatted with a leading zero. +| value | Offset value | +| - | - | +| | The signed offset of the local operating system's time zone from UTC. | +| | The signed offset of the local operating system's time zone from UTC. | +| | `+00` on .NET Core and .NET 5+.

      On .NET Framework, the signed offset of the local operating system's time zone from UTC. | + +With values, this format specifier represents the value's offset from UTC in hours. The following example includes the "zz" custom format specifier in a custom format string. @@ -609,11 +621,17 @@ The following example includes the "zz" custom format specifier in a custom form ### The "zzz" custom format specifier -With values, the "zzz" custom format specifier represents the signed offset of the local operating system's time zone from UTC, measured in hours and minutes. It doesn't reflect the value of an instance's property. For this reason, the "zzz" format specifier is not recommended for use with values. +With values, the "zzz" custom format specifier represents the signed offset of the specified time zone from UTC, measured in hours and minutes. The offset is always displayed with a leading sign. A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. A single-digit offset is formatted with a leading zero. -With values, this format specifier represents the value's offset from UTC in hours and minutes. +The following table shows how the offset value changes depending on . -The offset is always displayed with a leading sign. A plus sign (+) indicates hours ahead of UTC, and a minus sign (-) indicates hours behind UTC. A single-digit offset is formatted with a leading zero. +| value | Offset value | +| - | - | +| | The signed offset of the local operating system's time zone from UTC. | +| | The signed offset of the local operating system's time zone from UTC. | +| | `+00:00` on .NET Core and .NET 5+.

      On .NET Framework, the signed offset of the local operating system's time zone from UTC. | + +With values, this format specifier represents the value's offset from UTC in hours and minutes. The following example includes the "zzz" custom format specifier in a custom format string. @@ -695,7 +713,7 @@ The following example includes the literal characters "pst" (for Pacific Standar ### Using single custom format specifiers -A custom date and time format string consists of two or more characters. Date and time formatting methods interpret any single-character string as a standard date and time format string. If they don't recognize the character as a valid format specifier, they throw a . For example, a format string that consists only of the specifier "h" is interpreted as a standard date and time format string. However, in this particular case, an exception is thrown because there is no "h" standard date and timeformat specifier. +A custom date and time format string consists of two or more characters. Date and time formatting methods interpret any single-character string as a standard date and time format string. If they don't recognize the character as a valid format specifier, they throw a . For example, a format string that consists only of the specifier "h" is interpreted as a standard date and time format string. However, in this particular case, an exception is thrown because there is no "h" standard date and time format specifier. To use any of the custom date and time format specifiers as the only specifier in a format string (that is, to use the "d", "f", "F", "g", "h", "H", "K", "m", "M", "s", "t", "y", "z", ":", or "/" custom format specifier by itself), include a space before or after the specifier, or include a percent ("%") format specifier before the single custom date and time specifier. diff --git a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/Custom1.cs b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/Custom1.cs index 8fc81a40c77ab..adceebb8e6a1b 100644 --- a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/Custom1.cs +++ b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/Custom1.cs @@ -274,7 +274,8 @@ private static void Show_zSpecifier() DateTime date1 = DateTime.UtcNow; Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", date1)); - // Displays -7, -07, -07:00 + // Displays -7, -07, -07:00 on .NET Framework + // Displays +0, +00, +00:00 on .NET Core and .NET 5+ DateTimeOffset date2 = new DateTimeOffset(2008, 8, 1, 0, 0, 0, new TimeSpan(6, 0, 0)); diff --git a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/LiteralsEx1.cs b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/LiteralsEx1.cs index 0c3ba8578c0ba..dd45ac5c97ec7 100644 --- a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/LiteralsEx1.cs +++ b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/LiteralsEx1.cs @@ -2,25 +2,25 @@ using System; using System.Globalization; -public class Example +public class Example5 { - public static void Main() - { - String[] formats = { "dd MMM yyyy hh:mm tt PST", + public static void Main() + { + String[] formats = { "dd MMM yyyy hh:mm tt PST", "dd MMM yyyy hh:mm tt PDT" }; - var dat = new DateTime(2016, 8, 18, 16, 50, 0); - // Display the result string. - Console.WriteLine(dat.ToString(formats[1])); + var dat = new DateTime(2016, 8, 18, 16, 50, 0); + // Display the result string. + Console.WriteLine(dat.ToString(formats[1])); - // Parse a string. - String value = "25 Dec 2016 12:00 pm PST"; - DateTime newDate; - if (DateTime.TryParseExact(value, formats, null, - DateTimeStyles.None, out newDate)) - Console.WriteLine(newDate); - else - Console.WriteLine("Unable to parse '{0}'", value); - } + // Parse a string. + String value = "25 Dec 2016 12:00 pm PST"; + DateTime newDate; + if (DateTime.TryParseExact(value, formats, null, + DateTimeStyles.None, out newDate)) + Console.WriteLine(newDate); + else + Console.WriteLine("Unable to parse '{0}'", value); + } } // The example displays the following output: // 18 Aug 2016 04:50 PM PDT diff --git a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/LiteralsEx2.cs b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/LiteralsEx2.cs index 23e74138046a0..d0dc9ff9fa0b5 100644 --- a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/LiteralsEx2.cs +++ b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/LiteralsEx2.cs @@ -2,24 +2,24 @@ using System; using System.Globalization; -public class Example +public class Example3 { - public static void Main() - { - String format = "dd MMM yyyy hh:mm tt p\\s\\t"; - var dat = new DateTime(2016, 8, 18, 16, 50, 0); - // Display the result string. - Console.WriteLine(dat.ToString(format)); + public static void Main() + { + String format = "dd MMM yyyy hh:mm tt p\\s\\t"; + var dat = new DateTime(2016, 8, 18, 16, 50, 0); + // Display the result string. + Console.WriteLine(dat.ToString(format)); - // Parse a string. - String value = "25 Dec 2016 12:00 pm pst"; - DateTime newDate; - if (DateTime.TryParseExact(value, format, null, - DateTimeStyles.None, out newDate)) - Console.WriteLine(newDate); - else - Console.WriteLine("Unable to parse '{0}'", value); - } + // Parse a string. + String value = "25 Dec 2016 12:00 pm pst"; + DateTime newDate; + if (DateTime.TryParseExact(value, format, null, + DateTimeStyles.None, out newDate)) + Console.WriteLine(newDate); + else + Console.WriteLine("Unable to parse '{0}'", value); + } } // The example displays the following output: // 18 Aug 2016 04:50 PM pst diff --git a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/LiteralsEx3.cs b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/LiteralsEx3.cs index 900dc5159a4ca..63a30dead224e 100644 --- a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/LiteralsEx3.cs +++ b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/LiteralsEx3.cs @@ -2,24 +2,24 @@ using System; using System.Globalization; -public class Example +public class Example6 { - public static void Main() - { - String format = "dd MMM yyyy hh:mm tt \"pst\""; - var dat = new DateTime(2016, 8, 18, 16, 50, 0); - // Display the result string. - Console.WriteLine(dat.ToString(format)); + public static void Main() + { + String format = "dd MMM yyyy hh:mm tt \"pst\""; + var dat = new DateTime(2016, 8, 18, 16, 50, 0); + // Display the result string. + Console.WriteLine(dat.ToString(format)); - // Parse a string. - String value = "25 Dec 2016 12:00 pm pst"; - DateTime newDate; - if (DateTime.TryParseExact(value, format, null, - DateTimeStyles.None, out newDate)) - Console.WriteLine(newDate); - else - Console.WriteLine("Unable to parse '{0}'", value); - } + // Parse a string. + String value = "25 Dec 2016 12:00 pm pst"; + DateTime newDate; + if (DateTime.TryParseExact(value, format, null, + DateTimeStyles.None, out newDate)) + Console.WriteLine(newDate); + else + Console.WriteLine("Unable to parse '{0}'", value); + } } // The example displays the following output: // 18 Aug 2016 04:50 PM pst diff --git a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/Project.csproj b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/Project.csproj new file mode 100644 index 0000000000000..c258ea5606282 --- /dev/null +++ b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/Project.csproj @@ -0,0 +1,6 @@ + + + Library + net6.0 + + diff --git a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/custandparsing1.cs b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/custandparsing1.cs index 8faaa75e8903e..54150f69bd798 100644 --- a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/custandparsing1.cs +++ b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/custandparsing1.cs @@ -2,25 +2,26 @@ using System; using System.Globalization; -public class Example +public class Example1 { - public static void Main() - { - string[] dateValues = { "30-12-2011", "12-30-2011", + public static void Main() + { + string[] dateValues = { "30-12-2011", "12-30-2011", "30-12-11", "12-30-11" }; - string pattern = "MM-dd-yy"; - DateTime parsedDate; + string pattern = "MM-dd-yy"; + DateTime parsedDate; - foreach (var dateValue in dateValues) { - if (DateTime.TryParseExact(dateValue, pattern, null, - DateTimeStyles.None, out parsedDate)) - Console.WriteLine("Converted '{0}' to {1:d}.", - dateValue, parsedDate); - else - Console.WriteLine("Unable to convert '{0}' to a date and time.", - dateValue); - } - } + foreach (var dateValue in dateValues) + { + if (DateTime.TryParseExact(dateValue, pattern, null, + DateTimeStyles.None, out parsedDate)) + Console.WriteLine("Converted '{0}' to {1:d}.", + dateValue, parsedDate); + else + Console.WriteLine("Unable to convert '{0}' to a date and time.", + dateValue); + } + } } // The example displays the following output: // Unable to convert '30-12-2011' to a date and time. diff --git a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/escape1.cs b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/escape1.cs index 08829575fd26d..6dde1fe51a3ef 100644 --- a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/escape1.cs +++ b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/escape1.cs @@ -1,19 +1,19 @@ using System; -public class Example +public class Example4 { - public static void Main() - { - // - DateTime date = new DateTime(2009, 06, 15, 13, 45, 30, 90); - string fmt1 = "h \\h m \\m"; - string fmt2 = @"h \h m \m"; + public static void Main() + { + // + DateTime date = new DateTime(2009, 06, 15, 13, 45, 30, 90); + string fmt1 = "h \\h m \\m"; + string fmt2 = @"h \h m \m"; - Console.WriteLine("{0} ({1}) -> {2}", date, fmt1, date.ToString(fmt1)); - Console.WriteLine("{0} ({1}) -> {2}", date, fmt2, date.ToString(fmt2)); - // The example displays the following output: - // 6/15/2009 1:45:30 PM (h \h m \m) -> 1 h 45 m - // 6/15/2009 1:45:30 PM (h \h m \m) -> 1 h 45 m - // - } + Console.WriteLine("{0} ({1}) -> {2}", date, fmt1, date.ToString(fmt1)); + Console.WriteLine("{0} ({1}) -> {2}", date, fmt2, date.ToString(fmt2)); + // The example displays the following output: + // 6/15/2009 1:45:30 PM (h \h m \m) -> 1 h 45 m + // 6/15/2009 1:45:30 PM (h \h m \m) -> 1 h 45 m + // + } } diff --git a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/literal1.cs b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/literal1.cs index 9c8382ca27c80..52ab46fe4ce95 100644 --- a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/literal1.cs +++ b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/literal1.cs @@ -1,19 +1,19 @@ using System; -public class Example +public class Example2 { - public static void Main() - { - // - DateTime dat1 = new DateTime(2009, 6, 15, 13, 45, 0); + public static void Main() + { + // + DateTime dat1 = new DateTime(2009, 6, 15, 13, 45, 0); - Console.WriteLine("'{0:%h}'", dat1); - Console.WriteLine("'{0: h}'", dat1); - Console.WriteLine("'{0:h }'", dat1); - // The example displays the following output: - // '1' - // ' 1' - // '1 ' - // - } + Console.WriteLine("'{0:%h}'", dat1); + Console.WriteLine("'{0: h}'", dat1); + Console.WriteLine("'{0:h }'", dat1); + // The example displays the following output: + // '1' + // ' 1' + // '1 ' + // + } } diff --git a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/parseexact2digityear1.cs b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/parseexact2digityear1.cs index 82f135d126f83..7dbe00dc5c86d 100644 --- a/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/parseexact2digityear1.cs +++ b/samples/snippets/csharp/VS_Snippets_CLR/Formatting.DateAndTime.Custom/cs/parseexact2digityear1.cs @@ -3,29 +3,29 @@ using System.Globalization; using System.Threading; -public class Example +public class Example7 { - public static void Main() - { - string fmt = "dd-MMM-yy"; - string value = "24-Jan-49"; + public static void Main() + { + string fmt = "dd-MMM-yy"; + string value = "24-Jan-49"; - Calendar cal = (Calendar) CultureInfo.CurrentCulture.Calendar.Clone(); - Console.WriteLine("Two Digit Year Range: {0} - {1}", - cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax); + Calendar cal = (Calendar)CultureInfo.CurrentCulture.Calendar.Clone(); + Console.WriteLine("Two Digit Year Range: {0} - {1}", + cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax); - Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, null)); - Console.WriteLine(); + Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, null)); + Console.WriteLine(); - cal.TwoDigitYearMax = 2099; - CultureInfo culture = (CultureInfo) CultureInfo.CurrentCulture.Clone(); - culture.DateTimeFormat.Calendar = cal; - Thread.CurrentThread.CurrentCulture = culture; + cal.TwoDigitYearMax = 2099; + CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone(); + culture.DateTimeFormat.Calendar = cal; + Thread.CurrentThread.CurrentCulture = culture; - Console.WriteLine("Two Digit Year Range: {0} - {1}", - cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax); - Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, null)); - } + Console.WriteLine("Two Digit Year Range: {0} - {1}", + cal.TwoDigitYearMax - 99, cal.TwoDigitYearMax); + Console.WriteLine("{0:d}", DateTime.ParseExact(value, fmt, null)); + } } // The example displays the following output: // Two Digit Year Range: 1930 - 2029 diff --git a/samples/snippets/visualbasic/VS_Snippets_CLR/Formatting.DateAndTime.Custom/vb/Custom1.vb b/samples/snippets/visualbasic/VS_Snippets_CLR/Formatting.DateAndTime.Custom/vb/Custom1.vb index 7bd38003ed2fc..d2993fe2cf7e8 100644 --- a/samples/snippets/visualbasic/VS_Snippets_CLR/Formatting.DateAndTime.Custom/vb/Custom1.vb +++ b/samples/snippets/visualbasic/VS_Snippets_CLR/Formatting.DateAndTime.Custom/vb/Custom1.vb @@ -262,7 +262,8 @@ Module modMain Dim date1 As Date = Date.UtcNow Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", _ date1)) - ' Displays -7, -07, -07:00 + ' Displays -7, -07, -07:00 on .NET Framework + ' Displays +0, +00, +00:00 on .NET Core and .NET 5+ Dim date2 As New DateTimeOffset(2008, 8, 1, 0, 0, 0, _ New Timespan(6, 0, 0)) diff --git a/samples/snippets/visualbasic/VS_Snippets_CLR/Formatting.DateAndTime.Custom/vb/Project.csproj b/samples/snippets/visualbasic/VS_Snippets_CLR/Formatting.DateAndTime.Custom/vb/Project.csproj new file mode 100644 index 0000000000000..c258ea5606282 --- /dev/null +++ b/samples/snippets/visualbasic/VS_Snippets_CLR/Formatting.DateAndTime.Custom/vb/Project.csproj @@ -0,0 +1,6 @@ + + + Library + net6.0 + + From 00701f4d971f27e3b02f3ea10c3028beb3988e7e Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 16 May 2022 08:26:04 -0700 Subject: [PATCH 244/429] Update package index with latest published versions (#29474) --- docs/azure/includes/dotnet-all.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 9b41017bf3158..94af0b46ddbe9 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -165,7 +165,7 @@ | Microsoft.Azure.Management.Quota | NuGet [1.0.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.Quota/1.0.0-preview) | | | | Microsoft.Azure.Management.ServiceFabricManagedClusters | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.ServiceFabricManagedClusters/1.0.0) | | | | Microsoft.Azure.Management.StoragePool | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.StoragePool/1.0.0) | | | -| Microsoft.Azure.Management.VideoAnalyzer | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Microsoft.Azure.Management.VideoAnalyzer/1.0.0-beta.2) | | | +| Microsoft.Azure.Management.VideoAnalyzer | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Microsoft.Azure.Management.VideoAnalyzer/1.0.0-beta.3) | | | | Microsoft.Azure.ServiceBus.EventProcessorHost | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.ServiceBus.EventProcessorHost/5.0.1) | | | | Microsoft.Azure.SignalR.Emulator | NuGet [1.0.0-preview1-10809](https://www.nuget.org/packages/Microsoft.Azure.SignalR.Emulator/1.0.0-preview1-10809) | | | | Microsoft.Azure.WebJobs.Extensions.ApplicationInsights | NuGet [1.0.0-preview4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ApplicationInsights/1.0.0-preview4) | | | From 0ff64ce92c1869089cb54e8bf3890443fc5151eb Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Mon, 16 May 2022 12:25:15 -0400 Subject: [PATCH 245/429] adding missing word (#29475) Fixes #29460 --- docs/csharp/language-reference/operators/patterns.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/operators/patterns.md b/docs/csharp/language-reference/operators/patterns.md index f3973798be303..e6a84642513bf 100644 --- a/docs/csharp/language-reference/operators/patterns.md +++ b/docs/csharp/language-reference/operators/patterns.md @@ -288,7 +288,7 @@ Consider the following excerpt from a text file containing bank transactions: 04-15-2020, FEE, 5.55 ``` -It's a CSV format, but some of the rows more columns than others. Even worse for processing, one column in the `WITHDRAWAL` type has user-generated text and can contain a comma in the text. A *list pattern* that includes the *discard* pattern, *constant* pattern and *var* pattern to capture the value processes data in this format: +It's a CSV format, but some of the rows have more columns than others. Even worse for processing, one column in the `WITHDRAWAL` type has user-generated text and can contain a comma in the text. A *list pattern* that includes the *discard* pattern, *constant* pattern and *var* pattern to capture the value processes data in this format: :::code language="csharp" source="./snippets/patterns/ListPattern.cs" id="DataRecordExample"::: From b07471084e103bc54a1a12de1df1d5bb6623f9c7 Mon Sep 17 00:00:00 2001 From: Shannon Leavitt Date: Mon, 16 May 2022 10:57:03 -0600 Subject: [PATCH 246/429] Revert deletion in https://github.com/dotnet/docs/pull/27362 (#29443) * Old channle9 video link removed * Apply suggestions from code review Co-authored-by: David Pine * Apply suggestions from code review Co-authored-by: David Pine * Update docs/architecture/modernize-with-azure-containers/migrate-your-relational-databases-to-azure.md * reverting unwanted deletion * fixing spacing * fixing line numbering Co-authored-by: v-hearya Co-authored-by: David Pine --- .../migrate-your-relational-databases-to-azure.md | 6 ------ .../identify-migration-sequence.md | 1 - .../concepts/async/task-asynchronous-programming-model.md | 2 +- docs/framework/performance/index.md | 2 +- docs/framework/wcf/whats-new.md | 2 +- docs/standard/analyzers/portability-analyzer.md | 2 +- docs/visual-basic/getting-started/additional-resources.md | 2 +- docs/visual-basic/programming-guide/concepts/async/index.md | 1 - 8 files changed, 5 insertions(+), 13 deletions(-) diff --git a/docs/architecture/modernize-with-azure-containers/migrate-your-relational-databases-to-azure.md b/docs/architecture/modernize-with-azure-containers/migrate-your-relational-databases-to-azure.md index e121f463b0a42..1a782019197e5 100644 --- a/docs/architecture/modernize-with-azure-containers/migrate-your-relational-databases-to-azure.md +++ b/docs/architecture/modernize-with-azure-containers/migrate-your-relational-databases-to-azure.md @@ -97,18 +97,12 @@ Whenever you change an original RDBMS, you might need to retest. You also might If you have any other database (for example, IBM DB2) and you opt for a lift and shift approach, you might want to continue using those databases as IaaS VMs in Azure, unless you are willing to perform a more complex data migration. A more complex data migration will require additional effort because you'd be migrating to a different database type with the new schema and different programming libraries. -To learn how to migrate databases by using Azure Database Migration Service, see [Get to the cloud faster with Azure SQL Database Managed Instance and Azure Database Migration Service](https://channel9.msdn.com/Events/Build/2017/P4008). - ## Additional resources - **Choose a cloud SQL Server option: Azure SQL Database (PaaS) or SQL Server on Azure VM (IaaS)** [https://docs.microsoft.com/azure/sql-database/sql-database-paas-vs-sql-server-iaas](/azure/sql-database/sql-database-paas-vs-sql-server-iaas) -- **Get to the cloud faster with Azure SQL DB Managed Instance and Database Migration Service** - - - - **SQL Server database migration to SQL Database in the cloud** [https://docs.microsoft.com/azure/sql-database/sql-database-cloud-migrate](/azure/sql-database/sql-database-cloud-migrate) diff --git a/docs/architecture/porting-existing-aspnet-apps/identify-migration-sequence.md b/docs/architecture/porting-existing-aspnet-apps/identify-migration-sequence.md index e997f93d8e63a..d96fa77e7a9d5 100644 --- a/docs/architecture/porting-existing-aspnet-apps/identify-migration-sequence.md +++ b/docs/architecture/porting-existing-aspnet-apps/identify-migration-sequence.md @@ -94,7 +94,6 @@ You can use the .NET Portability Analyzer to determine how compatible existing l - [Porting from .NET Framework to .NET Core](../../core/porting/index.md) - [The .NET Portability Analyzer](../../standard/analyzers/portability-analyzer.md) -- [Channel 9: A Brief Look at the .NET Portability Analyzer (Video)](/shows/seth-juarez/brief-look-net-portability-analyzer) - [2 Years, 200 Apps: A .NET Core Migration at Scale (Video)](https://www.youtube.com/watch?v=C-2haqb60No) >[!div class="step-by-step"] diff --git a/docs/csharp/programming-guide/concepts/async/task-asynchronous-programming-model.md b/docs/csharp/programming-guide/concepts/async/task-asynchronous-programming-model.md index dc5d66e987930..7d37bf0fe1ff8 100644 --- a/docs/csharp/programming-guide/concepts/async/task-asynchronous-programming-model.md +++ b/docs/csharp/programming-guide/concepts/async/task-asynchronous-programming-model.md @@ -214,7 +214,7 @@ You can ignore the convention where an event, base class, or interface contract | Cancel tasks with a cancellation token as a signaling mechanism. | Shows how to add the following functionality to your async solution:

      - [Cancel a list of tasks (C#)](cancel-an-async-task-or-a-list-of-tasks.md)
      - [Cancel tasks after a period of time (C#)](cancel-async-tasks-after-a-period-of-time.md)
      - [Process asynchronous task as they complete (C#)](start-multiple-async-tasks-and-process-them-as-they-complete.md) | | [Using async for file access (C#)](using-async-for-file-access.md) | Lists and demonstrates the benefits of using async and await to access files. | | [Task-based asynchronous pattern (TAP)](../../../../standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap.md) | Describes an asynchronous pattern, the pattern is based on the and types. | -| [Async Videos on Channel 9](https://channel9.msdn.com/search?term=async%20&type=All#pubDate=year&ch9Search&lang-en=en) | Provides links to a variety of videos about async programming. | +| [Async Videos on Channel 9](/shows/browse?terms=async) | Provides links to a variety of videos about async programming. | ## See also diff --git a/docs/framework/performance/index.md b/docs/framework/performance/index.md index b5a412a008a11..60f2a710f747b 100644 --- a/docs/framework/performance/index.md +++ b/docs/framework/performance/index.md @@ -31,7 +31,7 @@ If you want to create apps with great performance, you should design and plan fo |----------|-----------------| |Visual Studio Performance Analysis|Use to analyze the CPU usage of your .NET Framework apps that will be deployed to computers that are running the Windows operating system.

      This tool is available from the **Debug** menu in Visual Studio after you open a project. For more information, see [Performance Explorer](/visualstudio/profiling/performance-explorer). **Note:** Use Windows Phone Application Analysis (see next row) when targeting Windows Phone.| |Windows Phone Application Analysis|Use to analyze the CPU and memory, network data transfer rate, app responsiveness, and battery consumption in your Windows Phone apps.

      This tool is available from the **Debug** menu for a Windows Phone project in Visual Studio after you install the [Windows Phone SDK](https://go.microsoft.com/fwlink/?LinkId=265773). For more information, see [App profiling for Windows Phone 8](/previous-versions/windows/apps/jj215908(v=vs.105)).| -|[PerfView](https://www.microsoft.com/download/details.aspx?id=28567)|Use to identify CPU and memory-related performance issues. This tool uses event tracing for Windows (ETW) and CLR profiling APIs to provide advanced memory and CPU investigations as well as information about garbage collection and JIT compilation. For more information about how to use PerfView, see the tutorial and help files that are included with the app, [Channel 9 video tutorials](https://channel9.msdn.com/Series/PerfView-Tutorial), and [blog posts](/archive/blogs/vancem/).

      For memory-specific issues, see [Using PerfView for Memory Investigations](/shows/perfview-tutorial/9-net-memory-investigation-basics-of-gc-heap-snapshots).| +|[PerfView](https://www.microsoft.com/download/details.aspx?id=28567)|Use to identify CPU and memory-related performance issues. This tool uses event tracing for Windows (ETW) and CLR profiling APIs to provide advanced memory and CPU investigations as well as information about garbage collection and JIT compilation. For more information about how to use PerfView, see the [blog posts](/archive/blogs/vancem/).

      For memory-specific issues, see Using PerfView for Memory Investigations.| |[Windows Performance Analyzer](https://www.microsoft.com/p/windows-performance-analyzer/9n0w1b2bxgnz?activetab=pivot:overviewtab)|Use to determine overall system performance such as your app's memory and storage use when multiple apps are running on the same computer. This tool is available from the download center as part of the Windows Assessment and Deployment Kit (ADK) for Windows 8. For more information, see [Windows Performance Analyzer](/windows-hardware/test/wpt/windows-performance-analyzer).| ### Event tracing for Windows (ETW) diff --git a/docs/framework/wcf/whats-new.md b/docs/framework/wcf/whats-new.md index f89e254849d42..128c70a46c5ed 100644 --- a/docs/framework/wcf/whats-new.md +++ b/docs/framework/wcf/whats-new.md @@ -118,7 +118,7 @@ Support has been added to allow for WCF services with Internationalized Domain N ## HttpClient -A new class called has been added to make working with HTTP requests much easier. For more info, see [Making apps social and connected with HTTP services](/events/build-build2011/plat-581t). +A new class called has been added to make working with HTTP requests much easier. For more info, see [HTTP with .NET](../../core/extensions/http-client.md). ## Configuration IntelliSense diff --git a/docs/standard/analyzers/portability-analyzer.md b/docs/standard/analyzers/portability-analyzer.md index 1a4cec8c82ab5..342c9a9cfe1ef 100644 --- a/docs/standard/analyzers/portability-analyzer.md +++ b/docs/standard/analyzers/portability-analyzer.md @@ -107,4 +107,4 @@ The **Details** section of the report lists the APIs missing from any of the sel You may find a Missing Assemblies section in your report. This section contains a list of assemblies that are referenced by your analyzed assemblies and were not analyzed. If it's an assembly that you own, include it in the API portability analyzer run so that you can get a detailed, API-level portability report for it. If it's a third-party library, check if there is a newer version that supports your target platform, and consider moving to the newer version. Eventually, the list should include all the third-party assemblies that your app depends on that have a version supporting your target platform. -For more information on the .NET Portability Analyzer, visit the [GitHub documentation](https://github.com/Microsoft/dotnet-apiport#documentation) and [A Brief Look at the .NET Portability Analyzer](/shows/seth-juarez/brief-look-net-portability-analyzer) video. +For more information on the .NET Portability Analyzer, visit the [GitHub documentation](https://github.com/Microsoft/dotnet-apiport#documentation). diff --git a/docs/visual-basic/getting-started/additional-resources.md b/docs/visual-basic/getting-started/additional-resources.md index 771b6f111ce24..f2c1da73fc3b3 100644 --- a/docs/visual-basic/getting-started/additional-resources.md +++ b/docs/visual-basic/getting-started/additional-resources.md @@ -39,7 +39,7 @@ The following web sites provide guidance and can help you find answers to common |URL|Description| |----------|----------------| -|[Channel9](https://channel9.msdn.com/)|Provides continuous community through videos, Wikis, and forums.| +|[GitHub: Visual Basic .NET](https://github.com/dotnet/vblang)|The official repo for Visual Basic .NET language design.| ### Support diff --git a/docs/visual-basic/programming-guide/concepts/async/index.md b/docs/visual-basic/programming-guide/concepts/async/index.md index 130215888c504..2d4b63ac86651 100644 --- a/docs/visual-basic/programming-guide/concepts/async/index.md +++ b/docs/visual-basic/programming-guide/concepts/async/index.md @@ -241,7 +241,6 @@ You can ignore the convention where an event, base class, or interface contract |Async Cancellation: Bridging between the .NET Framework and the Windows Runtime|Shows how to bridge between Task types in the .NET Framework and IAsyncOperations in the Windows Runtime so that you can use with a Windows Runtime method.|[Async Sample: Bridging between .NET and Windows Runtime (AsTask & Cancellation)](https://code.msdn.microsoft.com/Async-Sample-Bridging-9479eca3)| |[Using Async for File Access (Visual Basic)](using-async-for-file-access.md)|Lists and demonstrates the benefits of using async and await to access files.|| |[Task-based Asynchronous Pattern (TAP)](../../../../standard/asynchronous-programming-patterns/task-based-asynchronous-pattern-tap.md)|Describes a new pattern for asynchrony in the .NET Framework. The pattern is based on the and [Task(Of TResult)](xref:System.Threading.Tasks.Task%601) types.|| -|[Async Videos on Channel 9](https://channel9.msdn.com/search?term=async+&type=All)|Provides links to a variety of videos about async programming.|| ## Complete Example From 78d22e4c3cc4780702417b1d21ce92ae2c837a5a Mon Sep 17 00:00:00 2001 From: GitHubPang <61439577+GitHubPang@users.noreply.github.com> Date: Tue, 17 May 2022 01:09:54 +0800 Subject: [PATCH 247/429] Fix typo in publish-readytorun-requires-restore-change.md (#29469) --- .../sdk/6.0/publish-readytorun-requires-restore-change.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/compatibility/sdk/6.0/publish-readytorun-requires-restore-change.md b/docs/core/compatibility/sdk/6.0/publish-readytorun-requires-restore-change.md index d814b0ff334ec..dda1a83f71ede 100644 --- a/docs/core/compatibility/sdk/6.0/publish-readytorun-requires-restore-change.md +++ b/docs/core/compatibility/sdk/6.0/publish-readytorun-requires-restore-change.md @@ -21,7 +21,7 @@ In .NET 6, `dotnet restore` followed by `dotnet publish -p:PublishReadyToRun=tru ## Reason for change -The crossgen binary is not required for many workloads, so it was split out from the main SDK. It it typically acquired on-demand, and the publishing MSBuild targets now handle this acquisition by adding the package to the list of packages to be restored. +The crossgen binary is not required for many workloads, so it was split out from the main SDK. It is typically acquired on-demand, and the publishing MSBuild targets now handle this acquisition by adding the package to the list of packages to be restored. ## Recommended action From a1bfa370114069615306949ccf1ada2e83377bbe Mon Sep 17 00:00:00 2001 From: "Peter Torr (MSFT)" Date: Mon, 16 May 2022 10:23:29 -0700 Subject: [PATCH 248/429] Update xml-schema-definition-tool-xsd-exe.md (#29463) --- .../serialization/xml-schema-definition-tool-xsd-exe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standard/serialization/xml-schema-definition-tool-xsd-exe.md b/docs/standard/serialization/xml-schema-definition-tool-xsd-exe.md index d8cd226108cf2..f7bbb3be9c06e 100644 --- a/docs/standard/serialization/xml-schema-definition-tool-xsd-exe.md +++ b/docs/standard/serialization/xml-schema-definition-tool-xsd-exe.md @@ -59,7 +59,7 @@ xsd {file.dll | file.exe} [-outputdir:directory] [/type:typename [...]][/paramet |**/e\[lement\]:**_element_|Specifies the element in the schema to generate code for. By default all elements are typed. You can specify this argument more than once.| |**/enableDataBinding**|Implements the interface on all generated types to enable data binding. The short form is `/edb`.| |**/enableLinqDataSet**|(Short form: `/eld`.) Specifies that the generated DataSet can be queried against using LINQ to DataSet. This option is used when the /dataset option is also specified. For more information, see [LINQ to DataSet Overview](../../framework/data/adonet/linq-to-dataset-overview.md) and [Querying Typed DataSets](../../framework/data/adonet/querying-typed-datasets.md). For general information about using LINQ, see [Language-Integrated Query (LINQ) - C#](../../csharp/programming-guide/concepts/linq/index.md) or [Language-Integrated Query (LINQ) - Visual Basic](../../visual-basic/programming-guide/concepts/linq/index.md).| -|**/f\[ields\]**|Generates fields instead of properties. By default, properties are generated.| +|**/f\[ields\]**|Generates fields only. By default, [properties with backing fields](../../csharp/programming-guide/classes-and-structs/properties.md#properties-with-backing-fields) are generated.| |**/l\[anguage\]:**_language_|Specifies the programming language to use. Choose from `CS` (C#, which is the default), `VB` (Visual Basic), `JS` (JScript), or `VJS` (Visual J#). You can also specify a fully qualified name for a class implementing | |**/n\[amespace\]:**_namespace_|Specifies the runtime namespace for the generated types. The default namespace is `Schemas`.| |**/nologo**|Suppresses the banner.| From 07e6af8e1f575e9e0ac25734347bf893273bd176 Mon Sep 17 00:00:00 2001 From: Josh M <20140997+jcmrva@users.noreply.github.com> Date: Mon, 16 May 2022 13:55:08 -0400 Subject: [PATCH 249/429] Update F# element access syntax #27520 (#29468) --- docs/fsharp/language-reference/arrays.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fsharp/language-reference/arrays.md b/docs/fsharp/language-reference/arrays.md index 48b2ef267d223..e89719d2e66f7 100644 --- a/docs/fsharp/language-reference/arrays.md +++ b/docs/fsharp/language-reference/arrays.md @@ -35,7 +35,7 @@ To create an array in which all the elements are initialized to zero, use `Array ## Access elements -You can access array elements by using a dot operator (`.`) and brackets (`[` and `]`). +You can access array elements by using brackets (`[` and `]`). The original dot syntax (`.[index]`) is still supported but no longer recommended as of F# 6.0. [!code-fsharp[Main](~/samples/snippets/fsharp/arrays/snippet5.fs)] From 6015f971b7774a07c8aa21166e4ebfcc3854f036 Mon Sep 17 00:00:00 2001 From: wuyuansushen <43259764+wuyuansushen@users.noreply.github.com> Date: Tue, 17 May 2022 01:56:59 +0800 Subject: [PATCH 250/429] Update using-delegates.md (#29464) * Update using-delegates.md * Update docs/csharp/programming-guide/delegates/using-delegates.md Co-authored-by: Bill Wagner --- docs/csharp/programming-guide/delegates/using-delegates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/programming-guide/delegates/using-delegates.md b/docs/csharp/programming-guide/delegates/using-delegates.md index f085c69536617..20e70a7569746 100644 --- a/docs/csharp/programming-guide/delegates/using-delegates.md +++ b/docs/csharp/programming-guide/delegates/using-delegates.md @@ -18,7 +18,7 @@ A delegate object is normally constructed by providing the name of the method th [!code-csharp[csProgGuideDelegates#23](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csProgGuideDelegates/CS/Delegates.cs#23)] -Delegate types are derived from the class in .NET. Delegate types are [sealed](../../language-reference/keywords/sealed.md)—they cannot be derived from— and it is not possible to derive custom classes from . Because the instantiated delegate is an object, it can be passed as a parameter, or assigned to a property. This allows a method to accept a delegate as a parameter, and call the delegate at some later time. This is known as an asynchronous callback, and is a common method of notifying a caller when a long process has completed. When a delegate is used in this fashion, the code using the delegate does not need any knowledge of the implementation of the method being used. The functionality is similar to the encapsulation interfaces provide. +Delegate types are derived from the class in .NET. Delegate types are [sealed](../../language-reference/keywords/sealed.md)—they cannot be derived from— and it is not possible to derive custom classes from . Because the instantiated delegate is an object, it can be passed as an argument, or assigned to a property. This allows a method to accept a delegate as a parameter, and call the delegate at some later time. This is known as an asynchronous callback, and is a common method of notifying a caller when a long process has completed. When a delegate is used in this fashion, the code using the delegate does not need any knowledge of the implementation of the method being used. The functionality is similar to the encapsulation interfaces provide. Another common use of callbacks is defining a custom comparison method and passing that delegate to a sort method. It allows the caller's code to become part of the sort algorithm. The following example method uses the `Del` type as a parameter: From e4a57fc22c51841f67b87cdef6e71061349c2569 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Mon, 16 May 2022 11:29:04 -0700 Subject: [PATCH 251/429] Update package index with latest published versions (#29478) --- docs/azure/includes/dotnet-all.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 94af0b46ddbe9..2b1a755a77a97 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -118,7 +118,7 @@ | Microsoft.Azure.Functions.Worker.Extensions.EventGrid | NuGet [2.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.EventGrid/2.1.0)
      NuGet [3.0.0-beta.3](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.EventGrid/3.0.0-beta.3) | | | | Microsoft.Azure.Functions.Worker.Extensions.EventHubs | NuGet [4.2.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.EventHubs/4.2.1)
      NuGet [5.0.0-beta.6](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.EventHubs/5.0.0-beta.6) | | | | Microsoft.Azure.Functions.Worker.Extensions.Http | NuGet [3.0.13](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Http/3.0.13) | | | -| Microsoft.Azure.Functions.Worker.Extensions.Kafka | NuGet [3.3.2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Kafka/3.3.2) | | | +| Microsoft.Azure.Functions.Worker.Extensions.Kafka | NuGet [3.4.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Kafka/3.4.0) | | | | Microsoft.Azure.Functions.Worker.Extensions.OpenApi | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.OpenApi/1.3.0) | | | | Microsoft.Azure.Functions.Worker.Extensions.RabbitMQ | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.RabbitMQ/1.1.0) | | | | Microsoft.Azure.Functions.Worker.Extensions.SendGrid | NuGet [3.0.2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.SendGrid/3.0.2) | | | From 272f616bc7108502b168103ebe542dcd97d7506e Mon Sep 17 00:00:00 2001 From: David Pine Date: Mon, 16 May 2022 13:43:16 -0500 Subject: [PATCH 252/429] Revising Orleans overview (#29335) * Initial bits * Updates * Updates to overview * More updates * Rearrange overview * Final tweak * A minor opening tweak * A few minor tweaks --- .../media/cluster-silo-grain-relationship.svg | 16 ++ docs/orleans/media/grain-lifecycle.svg | 14 ++ docs/orleans/overview.md | 177 ++++++------------ 3 files changed, 90 insertions(+), 117 deletions(-) create mode 100644 docs/orleans/media/cluster-silo-grain-relationship.svg create mode 100644 docs/orleans/media/grain-lifecycle.svg diff --git a/docs/orleans/media/cluster-silo-grain-relationship.svg b/docs/orleans/media/cluster-silo-grain-relationship.svg new file mode 100644 index 0000000000000..2231cdefb9c0a --- /dev/null +++ b/docs/orleans/media/cluster-silo-grain-relationship.svg @@ -0,0 +1,16 @@ + + + + + + + Cluster (1/n)SiloSiloSiloGrainsGrainsGrains \ No newline at end of file diff --git a/docs/orleans/media/grain-lifecycle.svg b/docs/orleans/media/grain-lifecycle.svg new file mode 100644 index 0000000000000..618dc6a4b95cf --- /dev/null +++ b/docs/orleans/media/grain-lifecycle.svg @@ -0,0 +1,14 @@ + + + + + Active in memoryDeactivatingPersistedActivating \ No newline at end of file diff --git a/docs/orleans/overview.md b/docs/orleans/overview.md index 7317537c8f8c2..539a55f345519 100644 --- a/docs/orleans/overview.md +++ b/docs/orleans/overview.md @@ -1,147 +1,85 @@ --- title: Orleans overview description: An introduction to .NET Orleans. -ms.date: 03/10/2022 +ms.date: 05/10/2022 --- # Microsoft Orleans -Orleans is a cross-platform framework for building robust, scalable distributed applications. It builds on the developer productivity of .NET and brings it to the world of distributed applications, such as cloud services. Orleans scales from a single on-premises server to globally distributed, highly-available applications in the cloud. +Orleans is a cross-platform framework for building robust, scalable distributed applications. Distributed applications are defined as apps that span more than a single process, often beyond hardware boundaries using peer-to-peer communication. Orleans scales from a single on-premises server to globally distributed, highly-available applications in the cloud. Orleans extends familiar concepts and C# idioms to multi-server environments. Orleans is designed to scale elastically. When a host joins a cluster it can accept new activations. When a host leaves the cluster, either because of scale down or a machine failure, the previous activations on that host will be re-activated on the remaining hosts as needed. An Orleans cluster can be scaled down to a single host. The same properties which enable elastic scalability also enable fault tolerance. The cluster automatically detects and quickly recovers from failures. -Orleans extends familiar concepts like objects, interfaces, `async` and `await`, and try/catch to multi-server environments. Accordingly, it helps developers experienced with single-server applications transition to building resilient, scalable cloud services and other distributed applications. For this reason, Orleans has often been referred to as "Distributed .NET". +One of the primary design objectives of Orleans is to simplify the complexities of distributed application development by providing a common set of patterns and APIs. Developers familiar with single-server application development can easily transition to building resilient, scalable cloud-native services and other distributed applications using Orleans. For this reason, Orleans has often been referred to as "Distributed .NET" and is the framework of choice when building cloud-native apps. Orleans runs anywhere that .NET is supported. This includes hosting on Linux, Windows, and macOS. Orleans apps can be deployed to Kubernetes, virtual machines, and PaaS services such as [Azure App Service](/azure/app-service/overview) and [Azure Container Apps](/azure/container-apps/overview). -It was created by [Microsoft Research](https://research.microsoft.com/projects/orleans/) and introduced the [Virtual Actor Model](https://research.microsoft.com/apps/pubs/default.aspx?id=210931) as a novel approach to building a new generation of distributed systems for the Cloud era. The core contribution of Orleans is its programming model which tames the complexity inherent to highly-parallel distributed systems without restricting capabilities or imposing onerous constraints on the developer. +## The "Actor Model" -## An Introduction to Orleans +Orleans is based on the "actor model". The actor model originated in the early 1970s and is now a core component of Orleans. The actor model is a programming model in which each _actor_ is a lightweight, concurrent, immutable object that encapsulates a piece of state and corresponding behavior. Actors communicate exclusively with each other using asynchronous messages. Orleans notably invented the _Virtual Actor_ abstraction, wherein actors exist perpetually. - -> [!VIDEO https://aka.ms/docs/player?show=reactor&ep=an-introduction-to-orleans] - - -## Grains - -:::image type="content" source="media/grain-formulation.svg" alt-text="A grain is composed of a stable identity, behavior, and state."::: - -The fundamental building block in any Orleans application is a *grain*. Grains are entities comprising user-defined identity, behavior, and state. Grain identities are user-defined keys that make grains always available for invocation. Grains can be invoked by other grains or by external clients such as Web frontend via strongly-typed communication interfaces (contracts). Each grain is an instance of a class that implements one or more of these interfaces. - -Grains can have volatile or persistent state data that can be stored in any storage system. As such, grains implicitly partition application states, enabling automatic scalability and simplifying recovery from failures. Grain state is kept in memory while the grain is active, leading to lower latency and less load on data stores. - -:::image type="content" source="media/managed-lifecycle.png" alt-text="The managed lifecycle of an Orleans grain."::: - -Instantiation of grains is automatically performed on demand by the Orleans runtime. Grains that are not used for a while are automatically removed from memory to free up resources. This is possible because of their stable identity, which allows invoking grains whether they are already loaded into memory or not. This also allows for transparent recovery from failure because the caller does not need to know on which server a grain is instantiated at any point in time. Grains have a managed lifecycle, with the Orleans runtime responsible for activating/deactivating, and placing/locating grains as needed. This allows the developer to write code as if all grains are always in-memory. - -Taken together, the stable identity, statefulness, and managing the lifecycle of grains are core factors that make systems built on Orleans scalable, performant, and reliable without forcing developers to write complex distributed systems code. - -### Example scenario: IoT backend +> [!NOTE] +> Actors are purely logical entities that _always_ exist, virtually. An actor cannot be explicitly created nor destroyed, and its virtual existence is unaffected by the failure of a server that executes it. Since actors always exist, they are always addressable. -Consider a cloud backend for an [Internet of Things](https://en.wikipedia.org/wiki/Internet_of_things) system. This application needs to process incoming device data. Then it must filter, aggregate, and process this information, as well as enable sending commands to devices. In Orleans, it is natural to model each device as a grain which becomes a *digital twin* of the physical device it corresponds to. These grains keep the latest device data in memory so that they can be quickly queried and processed without the need to communicate with the physical device directly. By observing streams of time-series data from the device, the grain can detect changes in conditions, such as measurements exceeding a threshold, and trigger an action. +This is a novel approach to building a new generation of distributed applications for the Cloud era. The Orleans programming model tames the complexity inherent to highly-parallel distributed applications _without_ restricting capabilities or imposing constraints on the developer. -A simple thermostat could be modeled as follows: +For more information, see [Orleans: Virtual Actors](https://www.microsoft.com/research/project/orleans-virtual-actors) via Microsoft Research. A virtual actor is represented as an Orleans grain. -```csharp -public interface IThermostat : IGrainWithStringKey -{ - Task> OnUpdate(ThermostatStatus update); -} -``` +## What are Grains? -Events arriving from the thermostat can be sent to its grain by invoking the `OnUpdate` method, which optionally returns a command to the device. +The grain is one of several Orleans primitives. In terms of the actor model, a grain is a virtual actor. The fundamental building block in any Orleans application is a *grain*. Grains are entities comprising user-defined identity, behavior, and state. Consider the following visual representation of a grain: -```csharp -var thermostat = client.GetGrain(id); -return await thermostat.OnUpdate(update); -``` +:::image type="content" source="media/grain-formulation.svg" lightbox="media/grain-formulation.svg" alt-text="A grain is composed of a stable identity, behavior, and state."::: -The same thermostat grain can implement a separate interface for control systems to interact with: +Grain identities are user-defined keys that make grains always available for invocation. Grains can be invoked by other grains or by any number of external clients. Each grain is an instance of a class that implements one or more of the following interfaces: -```csharp -public interface IThermostatControl : IGrainWithStringKey -{ - Task GetStatus(); +- : Marker interface for grains with `Guid` keys. +- : Marker interface for grains with `Int64` keys. +- : Marker interface for grains with `string` keys. +- : Marker interface for grains with compound keys. +- : Marker interface for grains with compound keys. - Task UpdateConfiguration(ThermostatConfiguration config); -} -``` +Grains can have volatile or persistent state data that can be stored in any storage system. As such, grains implicitly partition application states, enabling automatic scalability and simplifying recovery from failures. The grain state is kept in memory while the grain is active, leading to lower latency and less load on data stores. -These two interfaces (`IThermostat` and `IThermostatControl`) are implemented by a single implementation class: +:::image type="content" source="media/grain-lifecycle.svg" lightbox="media/grain-lifecycle.svg" alt-text="The managed lifecycle of an Orleans grain."::: -```csharp -public class ThermostatGrain : Grain, IThermostat, IThermostatControl -{ - private ThermostatStatus _status; - private List _commands; - - public Task> OnUpdate(ThermostatStatus status) - { - _status = status; - var result = _commands; - _commands = new List(); - return Task.FromResult(result); - } - - public Task GetStatus() => Task.FromResult(_status); +Instantiation of grains is automatically performed on demand by the Orleans runtime. Grains that are not used for a while are automatically removed from memory to free up resources. This is possible because of their stable identity, which allows invoking grains whether they are already loaded into memory or not. This also allows for transparent recovery from failure because the caller does not need to know on which server a grain is instantiated at any point in time. Grains have a managed lifecycle, with the Orleans runtime responsible for activating/deactivating, and placing/locating grains as needed. This allows the developer to write code as if all grains are always in-memory. - public Task UpdateConfiguration(ThermostatConfiguration config) - { - _commands.Add(new ConfigUpdateCommand(config)); - return Task.CompletedTask; - } -} -``` +## What are Silos? -The grain class above does not persist in its state. Examples demonstrating state persistence are available in the [documentation](grains/grain-persistence/index.md). +A silo is another example of an Orleans primitive. A silo hosts one or more grains. The Orleans runtime is what implements the programming model for applications. -## Orleans runtime +Typically, a group of silos runs as a cluster for scalability and fault tolerance. When run as a cluster, silos coordinate with each other to distribute work and detect and recover from failures. The runtime enables grains hosted in the cluster to communicate with each other as if they are within a single process. To help visualize the relationship between clusters, silos and grains, consider the following diagram: -The Orleans runtime is what implements the programming model for applications. The main component of the runtime is the *silo*, which is responsible for hosting grains. +:::image type="content" source="media/cluster-silo-grain-relationship.svg" lightbox="media/cluster-silo-grain-relationship.svg" alt-text="A cluster has one or more silo, and a silo has one or more grain."::: -Typically, a group of silos runs as a cluster for scalability and fault tolerance. When run as a cluster, silos coordinate with each other to distribute work, detect and recover from failures. The runtime enables grains hosted in the cluster to communicate with each other as if they are within a single process. +The preceding diagram shows the relationship between clusters, silos, and grains. You can have any number of clusters, each cluster has one or more silos, and each silo has one or more grains. -In addition to the core programming model, silos provide grains with a set of runtime services such as timers, reminders (persistent timers), persistence, transactions, streams, and more. See [Features](#features) for more detail. +In addition to the core programming model, silos provide grains with a set of runtime services such as timers, reminders (persistent timers), persistence, transactions, streams, and more. For more information, see [What can I do with Orleans?](#what-can-i-do-with-orleans) -Web frontends and other external clients call grains in the cluster using the client library, which automatically manages network communication. Clients can also be co-hosted in the same process with silos for simplicity. +Web apps and other external clients call grains in the cluster using the client library, which automatically manages network communication. Clients can also be co-hosted in the same process with silos for simplicity. -Orleans is compatible with .NET Standard 2.0 and above, running on Windows, Linux, and macOS. +## What can I do with Orleans? -## Features +Orleans is a framework for building cloud-native apps and should be considered whenever you're building .NET apps that would eventually need to scale. There are seemingly endless ways to use Orleans, but the following are some of the most common ways; Gaming, Banking, Chat apps, GPS tracking, Stock trading, Shopping carts, Voting apps, and more. Orleans is used by Microsoft in Azure, Xbox, Skype, Halo, PlayFab, Gears of War, and many other internal services. Orleans has many features that make it easy to use for a variety of applications. ### Persistence -Orleans provides a simple persistence model which ensures that state is available to a grain before requests are processed and that consistency is maintained. Grains can have multiple named persistent data objects. For example, there might be one called "profile" for a user's profile and one called "inventory" for their inventory. This state can be stored in any storage system. Using the above example, profile data may be stored in one database and inventory in another. +Orleans provides a simple persistence model which ensures the state is available before processing a request, and that its consistency is maintained. Grains can have multiple named persistent data objects. For example, there might be one called "profile" for a user's profile and one called "inventory" for their inventory. This state can be stored in any storage system. -While a grain is running, this state is kept in memory so that read requests can be served without accessing storage. When the grain updates its state, a `state.WriteStateAsync()` call ensures that the backing store is updated for durability and consistency. +While a grain is running, the state is kept in memory so that read requests can be served without accessing storage. When the grain updates its state, calling ensures that the backing store is updated for durability and consistency. For more information, see the [Grain persistence](grains/grain-persistence/index.md). -### Distributed ACID transactions - -In addition to the simple persistence model described above, grains can have a *transactional state*. Multiple grains can participate in [ACID](https://en.wikipedia.org/wiki/ACID) transactions together regardless of where their state is ultimately stored. Transactions in Orleans are distributed and decentralized (there is no central transaction manager or transaction coordinator) and have [serializable isolation](https://en.wikipedia.org/wiki/Isolation_(database_systems)#Isolation_levels). - -For more information on transactions in Orleans, see the [documentation](grains/transactions.md) and the [Microsoft Research technical report](https://www.microsoft.com/research/publication/transactions-distributed-actors-cloud-2/). - -### Streams - -Streams help developers to process a series of data items in near-real-time. Streams in Orleans are *managed*; Streams do not need to be created or registered before a grain or client publishes to a stream or subscribes to a stream. This allows for greater decoupling of stream producers and consumers from each other and the infrastructure. - -Stream processing is reliable: grains can store checkpoints (cursors) and reset to a stored checkpoint during activation or at any subsequent time. Streams support batch delivery of messages to consumers to improve efficiency and recovery performance. - -Streams are backed by queueing services such as Azure Event Hubs, Amazon Kinesis, and others. - -An arbitrary number of streams can be multiplexed onto a smaller number of queues and the responsibility for processing these queues is balanced evenly across the cluster. - ### Timers and reminders Reminders are a durable scheduling mechanism for grains. They can be used to ensure that some action is completed at a future point even if the grain is not currently activated at that time. Timers are the non-durable counterpart to reminders and can be used for high-frequency events which do not require reliability. -For more information, see the [Timers and reminders](grains/timers-and-reminders.md) documentation. +For more information, see [Timers and reminders](grains/timers-and-reminders.md). ### Flexible grain placement When a grain is activated in Orleans, the runtime decides which server (silo) to activate that grain on. This is called grain placement. -The placement process in Orleans is fully configurable. Developers can choose from a set of out-of-the-box placement policies such as random, prefer-local, and load-based, or custom logic can be configured. This allows for full flexibility in deciding where grains are created. For example, grains can be placed on a server close to resources which they need to operate against or other grains with which they communicate. +The placement process in Orleans is fully configurable. Developers can choose from a set of out-of-the-box placement policies such as random, prefer-local, and load-based, or custom logic can be configured. This allows for full flexibility in deciding where grains are created. For example, grains can be placed on a server close to resources that they need to operate against or other grains with which they communicate. -For more information see the [Grain placement](grains/grain-placement.md) documentation. +For more information, see [Grain placement](grains/grain-placement.md). ### Grain versioning and heterogeneous clusters @@ -149,42 +87,47 @@ Upgrading production systems in a manner that safely accounts for changes can be The cluster maintains a mapping of which grain implementations are available on which silos in the cluster and the versions of those implementations. This version of the information is used by the runtime in conjunction with placement strategies to make placement decisions when routing calls to grains. In addition, to safely update a versioned grain, this also enables heterogeneous clusters, where different silos have different sets of grain implementations available. -For more information, see the [Grain Versioning](grains/grain-versioning/grain-versioning.md) documentation. +For more information, see [Grain Versioning](grains/grain-versioning/grain-versioning.md). -### Elastic scalability and fault tolerance +### Stateless workers -Orleans is designed to scale elastically. When a silo joins a cluster it can accept new activations. When a silo leaves the cluster, either because of scale down or a machine failure, the grains which were activated on that silo will be re-activated on the remaining silos as needed. An Orleans cluster can be scaled down to a single silo. +Stateless workers are specially marked grains that don't have any associated state and can be activated on multiple silos simultaneously. This enables increased parallelism for stateless functions. -The same properties which enable elastic scalability also enable fault tolerance. The cluster automatically detects and quickly recovers from failures. +For more information, see [stateless worker grains](grains/stateless-worker-grains.md). -### Run anywhere +### Grain call filters -Orleans runs anywhere that .NET is supported. This includes hosting on Linux, Windows, and macOS. Orleans apps can be deployed to Kubernetes, virtual machines, and PaaS services such as Azure Cloud Services. +A [grain call filter](grains/interceptors.md) is logic that's common to many grains. Orleans supports filters for both incoming and outgoing calls. Filters for authorization, logging and telemetry, and error handling are all considered common. -### Stateless workers +### Request context -Stateless workers are specially marked grains that don't have any associated state and can be activated on multiple silos simultaneously. This enables increased parallelism for stateless functions. +Metadata and other information can be passed with a series of requests using the [request context](grains/request-context.md). Request context can be used for holding distributed tracing information or any other user-defined values. -For more information, see the [stateless worker grains](grains/stateless-worker-grains.md) documentation. +### Distributed ACID transactions -### Grain call filters +In addition to the simple persistence model described above, grains can have a *transactional state*. Multiple grains can participate in [ACID](/windows/win32/cossdk/acid-properties) transactions together regardless of where their state is ultimately stored. Transactions in Orleans are distributed and decentralized (there is no central transaction manager or transaction coordinator) and have [serializable isolation](https://en.wikipedia.org/wiki/Isolation_(database_systems)#Isolation_levels). -A call filter for a grain, is logic that is common to many grains can be expressed as [grain call filters](grains/interceptors.md). Orleans supports filters for both incoming and outgoing calls. Some common uses of filters are authorization, logging and telemetry, and error handling. +For more information on transactions, see [Transactions](grains/transactions.md). -### Request context +### Streams -Metadata and other information can be passed along a series of requests using [request context](grains/request-context.md). Request context can be used for holding distributed tracing information or any other user-defined values. +Streams help developers to process a series of data items in near-real-time. Orleans streams are *managed*; streams don't need to be created or registered before a grain or client publishes, or subscribes to a stream. This allows for greater decoupling of stream producers and consumers from each other and the infrastructure. -## Getting Started +Stream processing is reliable: grains can store checkpoints (cursors) and reset to a stored checkpoint during activation or at any subsequent time. Streams support batch delivery of messages to consumers to improve efficiency and recovery performance. -Please see the [getting started tutorial](tutorials-and-samples/tutorial-1.md). +Streams are backed by queueing services such as Azure Event Hubs, Amazon Kinesis, and others. -## Origin of Orleans +An arbitrary number of streams can be multiplexed onto a smaller number of queues and the responsibility for processing these queues is balanced evenly across the cluster. + +## Introduction to Orleans video -Orleans was created at [Microsoft Research and designed for use in the cloud](https://www.microsoft.com/research/publication/orleans-distributed-virtual-actors-for-programmability-and-scalability/). Since 2011, it has been used extensively in the cloud and on-premises by several Microsoft product groups, most notably by game studios, such as 343 Industries and The Coalition as a platform for cloud services behind Halo and Gears of War games, as well as by several other companies. +If you're interested in a video introduction to Orleans, check out the following video: -Orleans was open-sourced in January 2015 and attracted many developers that formed [one of the most vibrant open source communities in the .NET ecosystem](https://mattwarren.org/2016/11/23/open-source-net-2-years-later/). + +> [!VIDEO https://aka.ms/docs/player?show=reactor&ep=an-introduction-to-orleans] + -In an active collaboration between the developer community and the Orleans team at Microsoft, features are added and improved daily. Microsoft Research continues to partner with the Orleans team to bring new major features, such as [geo-distribution](https://www.microsoft.com/research/publication/geo-distribution-actor-based-services/), [indexing](https://www.microsoft.com/research/publication/indexing-in-an-actor-oriented-database/), and [distributed transactions](https://www.microsoft.com/research/publication/transactions-distributed-actors-cloud-2/), that are pushing the state of the art. +## Next steps -Orleans has become the framework of choice for building distributed systems and cloud services for many .NET developers. +> [!div class="nextstepaction"] +> [Tutorial: Create a minimal Orleans application](tutorials-and-samples/tutorial-1.md) From 70fd2ca1a3f6b85f42fcf628a8e87df7e2bb1782 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristofer=20W=C3=A5rell?= Date: Mon, 16 May 2022 20:54:43 +0200 Subject: [PATCH 253/429] docs: fix info regarding is_global entry in .globalconfig (#29430) The note regarding the necessity of `is_global = true` in files named `.globalconfig` is incorrect since https://github.com/dotnet/roslyn/pull/49834. --- docs/fundamentals/code-analysis/configuration-files.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fundamentals/code-analysis/configuration-files.md b/docs/fundamentals/code-analysis/configuration-files.md index 179227aeb86f8..0f224b5ecb268 100644 --- a/docs/fundamentals/code-analysis/configuration-files.md +++ b/docs/fundamentals/code-analysis/configuration-files.md @@ -97,7 +97,7 @@ Consider the following naming recommendations: - MSBuild tooling-generated global config files should be named *<%Target_Name%>_Generated.globalconfig* or similar. > [!NOTE] -> The top-level entry `is_global = true` is required even when the file is named `.globalconfig`. +> The top-level entry `is_global = true` is not required when the file is named `.globalconfig`, but it is recommended for clarity. ### Example From 408aff5d293196af2feea5b1696094f351aa1afe Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 16 May 2022 12:09:14 -0700 Subject: [PATCH 254/429] expand scope of new constraint (#29479) --- docs/csharp/language-reference/keywords/new-constraint.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/keywords/new-constraint.md b/docs/csharp/language-reference/keywords/new-constraint.md index 862f5ce22163b..23b842ceec293 100644 --- a/docs/csharp/language-reference/keywords/new-constraint.md +++ b/docs/csharp/language-reference/keywords/new-constraint.md @@ -8,7 +8,7 @@ ms.assetid: 58850b64-cb97-4136-be50-1f3bc7fc1da9 --- # new constraint (C# Reference) -The `new` constraint specifies that a type argument in a generic class declaration must have a public parameterless constructor. To use the `new` constraint, the type cannot be abstract. +The `new` constraint specifies that a type argument in a generic class or method declaration must have a public parameterless constructor. To use the `new` constraint, the type cannot be abstract. Apply the `new` constraint to a type parameter when a generic class creates new instances of the type, as shown in the following example: From 02104e641ed22c383c87aa7eaba3a34e95897a8f Mon Sep 17 00:00:00 2001 From: "Andy (Steve) De George" <67293991+adegeo@users.noreply.github.com> Date: Mon, 16 May 2022 16:42:56 -0700 Subject: [PATCH 255/429] purge old info from install (#29481) * purge old info from install * update dates --- docs/core/install/macos.md | 10 ++-- docs/core/install/windows.md | 107 ++++++----------------------------- 2 files changed, 21 insertions(+), 96 deletions(-) diff --git a/docs/core/install/macos.md b/docs/core/install/macos.md index 332f5cb342bd5..a1ebc6bbf8174 100644 --- a/docs/core/install/macos.md +++ b/docs/core/install/macos.md @@ -3,7 +3,7 @@ title: Install .NET on macOS description: Learn about what versions of macOS you can install .NET on. author: adegeo ms.author: adegeo -ms.date: 11/29/2021 +ms.date: 05/16/2022 --- # Install .NET on macOS @@ -30,9 +30,9 @@ The following table is a list of currently supported .NET releases and the versi | Operating System | .NET Core 3.1 | .NET 5 | .NET 6 | |---------------------------|---------------|----------------|----------------| -| macOS 12.0 "Monterey" | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | -| macOS 11.0 "Big Sur" | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | -| macOS 10.15 "Catalina" | ✔️ 3.1 | ✔️ 5.0 | ✔️ 6.0 | +| macOS 12.0 "Monterey" | ✔️ 3.1 | ❌ 5.0 | ✔️ 6.0 | +| macOS 11.0 "Big Sur" | ✔️ 3.1 | ❌ 5.0 | ✔️ 6.0 | +| macOS 10.15 "Catalina" | ✔️ 3.1 | ❌ 5.0 | ✔️ 6.0 | For more information about the life cycle of .NET releases, see [.NET and .NET Core Support Policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core). @@ -95,7 +95,6 @@ As an alternative to the macOS installers for .NET, you can download and manuall First, download a **binary** release for either the SDK or the runtime from one of the following sites. If you install the .NET SDK, you will not need to install the corresponding runtime: - ✔️ [.NET 6 downloads](https://dotnet.microsoft.com/download/dotnet/6.0) -- ✔️ [.NET 5 downloads](https://dotnet.microsoft.com/download/dotnet/5.0) - ✔️ [.NET Core 3.1 downloads](https://dotnet.microsoft.com/download/dotnet/3.1) - [All .NET downloads](https://dotnet.microsoft.com/download/dotnet) @@ -167,7 +166,6 @@ Visual Studio for Mac installs the .NET SDK when the **.NET** workload is select | .NET SDK version | Visual Studio version | | --------------------- | ---------------------------------------------------- | | 6.0 | Visual Studio 2022 for Mac Preview 3 17.0 or higher. | -| 5.0 | Visual Studio 2019 for Mac version 8.8 or higher. | | 3.1 | Visual Studio 2019 for Mac version 8.4 or higher. | :::image type="content" source="media/install-sdk/mac-install-selection.png" alt-text="macOS Visual Studio 2019 for Mac with the .NET workload selected." lightbox="media/install-sdk/mac-install-selection.png"::: diff --git a/docs/core/install/windows.md b/docs/core/install/windows.md index 3723de61c82c2..fcb1ddec04f7d 100644 --- a/docs/core/install/windows.md +++ b/docs/core/install/windows.md @@ -3,7 +3,7 @@ title: Install .NET on Windows description: Learn about what versions of Windows you can install .NET on. author: adegeo ms.author: adegeo -ms.date: 11/05/2021 +ms.date: 05/16/2022 --- # Install .NET on Windows @@ -32,23 +32,23 @@ Windows 10 versions end-of-service dates are segmented by edition. Only **Home** | Operating System | .NET Core 3.1 | .NET 5 | .NET 6 | |----------------------------------------------|---------------|--------|--------| -| Windows 11 | ✔️ | ✔️ | ✔️ | -| Windows Server 2022 | ✔️ | ✔️ | ✔️ | -| Windows 10 Version 21H1 | ✔️ | ✔️ | ✔️ | -| Windows 10 / Windows Server, Version 20H2 | ✔️ | ✔️ | ✔️ | -| Windows 10 / Windows Server, Version 2004 | ✔️ | ✔️ | ✔️ | -| Windows 10 / Windows Server, Version 1909 | ✔️ | ✔️ | ✔️ | -| Windows 10 / Windows Server, Version 1903 | ✔️ | ✔️ | ✔️ | -| Windows 10, Version 1809 | ✔️ | ✔️ | ✔️ | -| Windows 10, Version 1803 | ✔️ | ✔️ | ✔️ | -| Windows 10, Version 1709 | ✔️ | ✔️ | ✔️ | -| Windows 10, Version 1607 | ✔️ | ✔️ | ✔️ | -| Windows 8.1 | ✔️ | ✔️ | ✔️ | -| Windows 7 SP1 [ESU][esu] | ✔️ | ✔️ | ✔️ | +| Windows 11 | ✔️ | ❌ | ✔️ | +| Windows Server 2022 | ✔️ | ❌ | ✔️ | +| Windows 10 Version 21H1 | ✔️ | ❌ | ✔️ | +| Windows 10 / Windows Server, Version 20H2 | ✔️ | ❌ | ✔️ | +| Windows 10 / Windows Server, Version 2004 | ✔️ | ❌ | ✔️ | +| Windows 10 / Windows Server, Version 1909 | ✔️ | ❌ | ✔️ | +| Windows 10 / Windows Server, Version 1903 | ✔️ | ❌ | ✔️ | +| Windows 10, Version 1809 | ✔️ | ❌ | ✔️ | +| Windows 10, Version 1803 | ✔️ | ❌ | ✔️ | +| Windows 10, Version 1709 | ✔️ | ❌ | ✔️ | +| Windows 10, Version 1607 | ✔️ | ❌ | ✔️ | +| Windows 8.1 | ✔️ | ❌ | ✔️ | +| Windows 7 SP1 [ESU][esu] | ✔️ | ❌ | ✔️ | | Windows Server 2019
      Windows Server 2016
      Windows Server 2012 R2
      Windows Server 2012| ✔️ | ✔️ | ✔️ | -| Windows Server Core 2012 R2 | ✔️ | ✔️ | ✔️ | -| Windows Server Core 2012 | ✔️ | ✔️ | ✔️ | -| Nano Server, Version 1809+ | ✔️ | ✔️ | ✔️ | +| Windows Server Core 2012 R2 | ✔️ | ❌ | ✔️ | +| Windows Server Core 2012 | ✔️ | ❌ | ✔️ | +| Nano Server, Version 1809+ | ✔️ | ❌ | ✔️ | | Nano Server, Version 1803 | ✔️ | ❌ | ❌ | For more information about .NET 6 supported operating systems, distributions, and lifecycle policy, see [.NET 6 Supported OS Versions](https://github.com/dotnet/core/blob/main/release-notes/6.0/supported-os.md). @@ -138,24 +138,6 @@ The following Windows versions are supported with .NET 6: For more information about .NET 6 supported operating systems, distributions, and lifecycle policy, see [.NET 6 Supported OS Versions](https://github.com/dotnet/core/blob/main/release-notes/6.0/supported-os.md). -# [.NET 5](#tab/net50) - -The following Windows versions are supported with .NET 5: - -> [!NOTE] -> A `+` symbol represents the minimum version. - -| OS | Version | Architectures | -|---------------------|---------------|-----------------| -| Windows 11 | 21H2 | x64, Arm64 | -| Windows 10 Client | 1607+ | x64, x86, Arm64 | -| Windows Client | 7 SP1+, 8.1 | x64, x86 | -| Windows Server | 2012+ | x64, x86 | -| Windows Server Core | 2012+ | x64, x86 | -| Nano Server | 1809+ | x64 | - -For more information about .NET 5 supported operating systems, distributions, and lifecycle policy, see [.NET 5 Supported OS Versions](https://github.com/dotnet/core/blob/main/release-notes/5.0/5.0-supported-os.md). - # [.NET Core 3.1](#tab/netcore31) The following Windows versions are supported with .NET Core 3.1: @@ -173,60 +155,6 @@ The following Windows versions are supported with .NET Core 3.1: For more information about .NET Core 3.1 supported operating systems, distributions, and lifecycle policy, see [.NET Core 3.1 Supported OS Versions](https://github.com/dotnet/core/blob/main/release-notes/3.1/3.1-supported-os.md). -# [.NET Core 3.0](#tab/netcore30) - -_.NET Core 3.0 is currently ❌ out of support. For more information, see the [.NET Core Support Policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core)._ - -The following Windows versions are supported with .NET Core 3.0: - -> [!NOTE] -> A `+` symbol represents the minimum version. - -| OS | Version | Architectures | -| ----------------------------- | ------------------------------ | --------------- | -| Windows Client | 7 SP1+, 8.1 | x64, x86 | -| Windows 10 Client | Version 1607+ | x64, x86 | -| Windows Server | 2012 R2+ | x64, x86 | -| Nano Server | Version 1803+ | x64, Arm32 | - -For more information about .NET Core 3.0 supported operating systems, distributions, and lifecycle policy, see [.NET Core 3.0 Supported OS Versions](https://github.com/dotnet/core/blob/main/release-notes/3.0/3.0-supported-os.md). - -# [.NET Core 2.2](#tab/netcore22) - -_.NET Core 2.2 is currently ❌ out of support. For more information, see the [.NET Core Support Policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core)._ - -The following Windows versions are supported with .NET Core 2.2: - -> [!NOTE] -> A `+` symbol represents the minimum version. - -| OS | Version | Architectures | -| ----------------------------- | ------------------------------ | --------------- | -| Windows Client | 7 SP1+, 8.1 | x64, x86 | -| Windows 10 Client | Version 1607+ | x64, x86 | -| Windows Server | 2008 R2 SP1+ | x64, x86 | -| Nano Server | Version 1803+ | x64, Arm32 | - -For more information about .NET Core 2.2 supported operating systems, distributions, and lifecycle policy, see [.NET Core 2.2 Supported OS Versions](https://github.com/dotnet/core/blob/main/release-notes/2.2/2.2-supported-os.md). - -# [.NET Core 2.1](#tab/netcore21) - -_.NET Core 2.1 is currently ❌ out of support. For more information, see the [.NET Core Support Policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core)._ - -The following Windows versions are supported with .NET Core 2.1: - -> [!NOTE] -> A `+` symbol represents the minimum version. - -| OS | Version | Architectures | -| ----------------------------- | ------------------------------ | --------------- | -| Windows Client | 7 SP1+, 8.1 | x64, x86 | -| Windows 10 Client | Version 1607+ | x64, x86 | -| Windows Server | 2008 R2 SP1+ | x64, x86 | -| Nano Server | Version 1803+ | x64, | - -For more information about .NET Core 2.1 supported operating systems, distributions, and lifecycle policy, see [.NET Core 2.1 Supported OS Versions](https://github.com/dotnet/core/blob/main/release-notes/2.1/2.1-supported-os.md). - ### Offline install for Windows 7 When doing an offline install for .NET Core 2.1 on Windows 7, you'll first need to make sure that the latest [Microsoft Root Certificate Authority 2011](https://www.microsoft.com/pkiops/Docs/Repository.htm) has been installed on the target machine. @@ -360,7 +288,6 @@ As an alternative to the Windows installers for .NET, you can download and manua Both .NET SDK and .NET Runtime can be manually installed after they've been downloaded. If you install .NET SDK, you don't need to install the corresponding runtime. First, download a binary release for either the SDK or the runtime from one of the following sites: - [.NET 6 downloads](https://dotnet.microsoft.com/download/dotnet/6.0) -- [.NET 5 downloads](https://dotnet.microsoft.com/download/dotnet/5.0) - [.NET Core 3.1 downloads](https://dotnet.microsoft.com/download/dotnet/3.1) - [All .NET Core downloads](https://dotnet.microsoft.com/download/dotnet) From 8a1e8f51482c9511d0905179ccefbc6be075b31c Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 16 May 2022 18:38:26 -0700 Subject: [PATCH 256/429] Add using declaration terminology (#28537) --- docs/fundamentals/code-analysis/style-rules/ide0063.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/fundamentals/code-analysis/style-rules/ide0063.md b/docs/fundamentals/code-analysis/style-rules/ide0063.md index ed932c957d983..da4da620a795f 100644 --- a/docs/fundamentals/code-analysis/style-rules/ide0063.md +++ b/docs/fundamentals/code-analysis/style-rules/ide0063.md @@ -1,7 +1,7 @@ --- title: "IDE0063: Use simple 'using' statement" -description: "Learn about code analysis rule IDE0063: Use simple 'using' statement" -ms.date: 09/30/2020 +description: "Learn about code analysis rule IDE0063, which recommends a 'using' declaration instead of a 'using' statement" +ms.date: 03/18/2022 ms.topic: reference f1_keywords: - IDE0063 @@ -26,14 +26,14 @@ dev_langs: ## Overview -This style rule concerns the use of `using` statements without curly braces. This alternative syntax was introduced in C# 8.0. +This style rule concerns the use of `using` statements without curly braces, also known as `using` declarations. This [alternative syntax](~/_csharplang/proposals/csharp-8.0/using.md) was introduced in C# 8.0. ## csharp_prefer_simple_using_statement | Property | Value | |--------------------------|---------------------------------------------------------------------------------------------------------------------------| | **Option name** | csharp_prefer_simple_using_statement | -| **Option values** | `true` - Prefer to use a *simple* `using` statement

      `false` - Don't prefer to use a *simple* `using` statement | +| **Option values** | `true` - Prefer to use a `using` declaration

      `false` - Prefer to use a `using` statement with curly braces | | **Default option value** | `true` | ### Example From 98fd6127ed657774c3143e8c44cb6af07ec54d95 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 17 May 2022 05:27:00 -0700 Subject: [PATCH 257/429] Update package index with latest published versions (#29480) --- docs/azure/includes/dotnet-all.md | 12 ++++++------ docs/azure/includes/dotnet-new.md | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 2b1a755a77a97..4e5f93429366c 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -50,7 +50,7 @@ | Question Answering | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.QuestionAnswering-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.0.0/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.1.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/) | | Schema Registry | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.2.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.2.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | | Schema Registry - Avro | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | -| Service Bus | NuGet [7.8.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0/sdk/servicebus/Azure.Messaging.ServiceBus/) | +| Service Bus | NuGet [7.8.1](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.1) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.1/sdk/servicebus/Azure.Messaging.ServiceBus/) | | Storage - Blobs | NuGet [12.12.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0/sdk/storage/Azure.Storage.Blobs/) | | Storage - Blobs Batch | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0/sdk/storage/Azure.Storage.Blobs.Batch/) | | Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.25](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.25) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.25](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.25/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | @@ -111,11 +111,11 @@ | Microsoft.Azure.Cosmos.Templates | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Templates/1.0.0) | | | | Microsoft.Azure.Functions.Analyzers | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Analyzers/1.0.0) | | | | Microsoft.Azure.Functions.Authentication.WebAssembly | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Authentication.WebAssembly/1.0.0)
      NuGet [1.0.1-preview](https://www.nuget.org/packages/Microsoft.Azure.Functions.Authentication.WebAssembly/1.0.1-preview) | | | -| Microsoft.Azure.Functions.Worker.Core | NuGet [1.4.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Core/1.4.0)
      NuGet [1.6.0-preview1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Core/1.6.0-preview1) | | | +| Microsoft.Azure.Functions.Worker.Core | NuGet [1.4.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Core/1.4.0)
      NuGet [1.6.0-preview2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Core/1.6.0-preview2) | | | | Microsoft.Azure.Functions.Worker.Extensions.Abstractions | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Abstractions/1.1.0) | | | | Microsoft.Azure.Functions.Worker.Extensions.ApplicationInsights | NuGet [1.0.0-preview4](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.ApplicationInsights/1.0.0-preview4) | | | | Microsoft.Azure.Functions.Worker.Extensions.CosmosDB | NuGet [3.0.9](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.CosmosDB/3.0.9)
      NuGet [4.0.0-preview2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.CosmosDB/4.0.0-preview2) | | | -| Microsoft.Azure.Functions.Worker.Extensions.EventGrid | NuGet [2.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.EventGrid/2.1.0)
      NuGet [3.0.0-beta.3](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.EventGrid/3.0.0-beta.3) | | | +| Microsoft.Azure.Functions.Worker.Extensions.EventGrid | NuGet [3.2.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.EventGrid/3.2.0) | | | | Microsoft.Azure.Functions.Worker.Extensions.EventHubs | NuGet [4.2.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.EventHubs/4.2.1)
      NuGet [5.0.0-beta.6](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.EventHubs/5.0.0-beta.6) | | | | Microsoft.Azure.Functions.Worker.Extensions.Http | NuGet [3.0.13](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Http/3.0.13) | | | | Microsoft.Azure.Functions.Worker.Extensions.Kafka | NuGet [3.4.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Kafka/3.4.0) | | | @@ -319,8 +319,8 @@ | Microsoft.Azure.Devices.Provisioning.Transport.Http | NuGet [1.15.1](https://www.nuget.org/packages/Microsoft.Azure.Devices.Provisioning.Transport.Http/1.15.1)
      NuGet [1.16.0-preview-001](https://www.nuget.org/packages/Microsoft.Azure.Devices.Provisioning.Transport.Http/1.16.0-preview-001) | | | | Microsoft.Azure.Devices.Provisioning.Transport.Mqtt | NuGet [1.17.1](https://www.nuget.org/packages/Microsoft.Azure.Devices.Provisioning.Transport.Mqtt/1.17.1)
      NuGet [1.18.0-preview-001](https://www.nuget.org/packages/Microsoft.Azure.Devices.Provisioning.Transport.Mqtt/1.18.0-preview-001) | | | | Microsoft.Azure.Devices.Shared | NuGet [1.30.1](https://www.nuget.org/packages/Microsoft.Azure.Devices.Shared/1.30.1)
      NuGet [1.31.0-preview-001](https://www.nuget.org/packages/Microsoft.Azure.Devices.Shared/1.31.0-preview-001) | | | -| Microsoft.Azure.Functions.Worker | NuGet [1.6.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/1.6.0)
      NuGet [1.8.0-preview1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/1.8.0-preview1) | | | -| Microsoft.Azure.Functions.Worker.Sdk | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk/1.3.0)
      NuGet [1.5.0-preview1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk/1.5.0-preview1) | | | +| Microsoft.Azure.Functions.Worker | NuGet [1.6.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/1.6.0)
      NuGet [1.8.0-preview2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/1.8.0-preview2) | | | +| Microsoft.Azure.Functions.Worker.Sdk | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk/1.3.0)
      NuGet [1.5.0-preview2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk/1.5.0-preview2) | | | | Microsoft.Azure.uamqp | NuGet [1.2.11](https://www.nuget.org/packages/Microsoft.Azure.uamqp/1.2.11) | | | | Microsoft.Azure.umqtt | NuGet [1.1.11](https://www.nuget.org/packages/Microsoft.Azure.umqtt/1.1.11) | | | | Mobile Apps | NuGet [2.0.3](https://www.nuget.org/packages/Microsoft.Azure.Mobile.Server/2.0.3) | | | @@ -346,7 +346,7 @@ | Search - Common | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search.Common/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search.Common_10.1.0/sdk/search/Microsoft.Azure.Search.Common/) | | Search - Data | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search.Data/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search.Data_10.1.0/sdk/search/Microsoft.Azure.Search.Data/) | | Search - Service | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search.Service/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search.Service_10.1.0/sdk/search/Microsoft.Azure.Search.Service/) | -| Service Bus | NuGet [7.8.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0/sdk/servicebus/Azure.Messaging.ServiceBus/) | +| Service Bus | NuGet [7.8.1](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.1) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.1/sdk/servicebus/Azure.Messaging.ServiceBus/) | | Service Bus | NuGet [5.2.0](https://www.nuget.org/packages/Microsoft.Azure.ServiceBus/5.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.ServiceBus-readme) | GitHub [5.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.ServiceBus_5.2.0/sdk/servicebus/Microsoft.Azure.ServiceBus/) | | Service Bus - Message ID plugin | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.ServiceBus.MessageIdPlugin/2.0.0) | | | | SignalR | NuGet [1.17.0](https://www.nuget.org/packages/Microsoft.Azure.SignalR/1.17.0) | | GitHub [1.17.0](https://github.com/Azure/azure-signalr/tree/v1.5.0/src/Microsoft.Azure.SignalR) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index e2dba112ce232..8e41c3ba3d008 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -50,7 +50,7 @@ | Question Answering | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.QuestionAnswering-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.0.0/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.1.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/) | | Schema Registry | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.2.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.2.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | | Schema Registry - Avro | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | -| Service Bus | NuGet [7.8.0](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.0) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.0/sdk/servicebus/Azure.Messaging.ServiceBus/) | +| Service Bus | NuGet [7.8.1](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.1) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.1/sdk/servicebus/Azure.Messaging.ServiceBus/) | | Storage - Blobs | NuGet [12.12.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0/sdk/storage/Azure.Storage.Blobs/) | | Storage - Blobs Batch | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0/sdk/storage/Azure.Storage.Blobs.Batch/) | | Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.25](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.25) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme-pre) | GitHub [12.0.0-preview.25](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.25/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) | From b2e06e2304ac29b20e420c33c2a3a4caa144fc42 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 17 May 2022 09:05:19 -0700 Subject: [PATCH 258/429] Update package index with latest published versions (#29486) --- docs/azure/includes/dotnet-all.md | 6 +++--- docs/azure/includes/dotnet-new.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 4e5f93429366c..ce3b4b5fafcb2 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -72,7 +72,7 @@ | Core Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) | | WebJobs Extensions - Event Grid | NuGet [3.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.2.0/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | | WebJobs Extensions - Event Hubs | NuGet [5.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.1.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | -| WebJobs Extensions - Service Bus | NuGet [5.4.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.4.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.4.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | +| WebJobs Extensions - Service Bus | NuGet [5.5.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.5.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.5.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | | WebJobs Extensions - SignalR Service | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.8.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) | | WebJobs Extensions - Storage | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.1](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | | WebJobs Extensions - Web PubSub | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.2.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | @@ -461,7 +461,7 @@ | Core Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) | | WebJobs Extensions - Event Grid | NuGet [3.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.2.0/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | | WebJobs Extensions - Event Hubs | NuGet [5.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.1.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | -| WebJobs Extensions - Service Bus | NuGet [5.4.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.4.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.4.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | +| WebJobs Extensions - Service Bus | NuGet [5.5.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.5.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.5.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | | WebJobs Extensions - SignalR Service | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.8.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) | | WebJobs Extensions - Storage | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.1](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | | WebJobs Extensions - Web PubSub | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.2.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | @@ -589,7 +589,7 @@ | Management - Network Fluent | NuGet [1.38.1](https://www.nuget.org/packages/Microsoft.Azure.Management.Network.Fluent/1.38.1) | [docs](/dotnet/api/overview/azure/virtual-network) | | | Management - Notification Hubs | NuGet [2.3.4-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.NotificationHubs/2.3.4-preview) | [docs](/dotnet/api/overview/azure/notification-hubs) | GitHub [2.3.4-preview](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/notificationhubs/Microsoft.Azure.Management.NotificationHubs) | | Management - Notification Hubs Fluent | NuGet [1.9.1-beta](https://www.nuget.org/packages/Microsoft.Azure.Management.NotificationHubs.Fluent/1.9.1-beta) | | | -| Management - Operational Insights | NuGet [0.24.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.OperationalInsights/0.24.0-preview) | | GitHub [0.24.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.OperationalInsights_0.24.0-preview/sdk/operationalinsights/Microsoft.Azure.Management.OperationalInsights/) | +| Management - Operational Insights | NuGet [0.25.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.OperationalInsights/0.25.0-preview) | | GitHub [0.25.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.OperationalInsights_0.25.0-preview/sdk/operationalinsights/Microsoft.Azure.Management.OperationalInsights/) | | Management - Peering | NuGet [2.1.1](https://www.nuget.org/packages/Microsoft.Azure.Management.Peering/2.1.1) | | GitHub [2.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.Peering_2.1.1/sdk/peering/Microsoft.Azure.Management.Peering/) | | Management - Policy Insights | NuGet [5.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.PolicyInsights/5.0.0) | | GitHub [5.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.PolicyInsights_5.0.0/sdk/policyinsights/Microsoft.Azure.Management.PolicyInsights/) | | Management - PostgreSQL | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.PostgreSQL/2.0.0) | | GitHub [2.0.0](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/postgresql/Microsoft.Azure.Management.PostgreSQL) | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index 8e41c3ba3d008..4f0f104976be1 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -72,7 +72,7 @@ | Core Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) | | WebJobs Extensions - Event Grid | NuGet [3.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.2.0/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | | WebJobs Extensions - Event Hubs | NuGet [5.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventHubs/5.1.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventHubs-readme) | GitHub [5.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventHubs_5.1.0/sdk/eventhub/Microsoft.Azure.WebJobs.Extensions.EventHubs/) | -| WebJobs Extensions - Service Bus | NuGet [5.4.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.4.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.4.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | +| WebJobs Extensions - Service Bus | NuGet [5.5.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.ServiceBus/5.5.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.ServiceBus-readme) | GitHub [5.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.ServiceBus_5.5.0/sdk/servicebus/Microsoft.Azure.WebJobs.Extensions.ServiceBus/) | | WebJobs Extensions - SignalR Service | NuGet [1.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.SignalRService/1.8.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.SignalRService-readme) | GitHub [1.8.0](https://github.com/Azure/azure-functions-signalrservice-extension/tree/v1.2.0/src/SignalRServiceExtension) | | WebJobs Extensions - Storage | NuGet [5.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage/5.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage-readme) | GitHub [5.0.1](https://github.com/Azure/azure-webjobs-sdk/tree/master/src/Microsoft.Azure.WebJobs.Extensions.Storage) | | WebJobs Extensions - Web PubSub | NuGet [1.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.2.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.2.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) | From fde9896820ec33903c403344b760627821321a1b Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Tue, 17 May 2022 10:30:59 -0700 Subject: [PATCH 259/429] Clarify new() constraint condition (#29422) --- docs/fundamentals/code-analysis/quality-rules/ca1812.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1812.md b/docs/fundamentals/code-analysis/quality-rules/ca1812.md index 7a19f8d977b97..d51a96fb44d97 100644 --- a/docs/fundamentals/code-analysis/quality-rules/ca1812.md +++ b/docs/fundamentals/code-analysis/quality-rules/ca1812.md @@ -62,7 +62,7 @@ It is safe to suppress a warning from this rule. We recommend that you suppress - The class is created automatically by the runtime or ASP.NET. Some examples of automatically created classes are those that implement or . -- The class is passed as a type parameter that has a [`new` constraint](../../../csharp/language-reference/keywords/new-constraint.md). The following example will be flagged by rule CA1812: +- The class is used as a type parameter in a class definition and has a [`new` constraint](../../../csharp/language-reference/keywords/new-constraint.md). The following example will be flagged by rule CA1812: ```csharp internal class MyClass From cbc6fb48510f9ebd84781b8ab4ebaf262b6e1141 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Tue, 17 May 2022 10:32:57 -0700 Subject: [PATCH 260/429] Note that XSLT script blocks are .NET Framework only (#29482) --- .../how-to-migrate-your-xsltransform-code.md | 19 +++++++---- ...slt-transformation-by-using-an-assembly.md | 33 ++++++++++--------- .../migrating-from-the-xsltransform-class.md | 3 ++ .../data/xml/xslt-compiler-xsltc-exe.md | 5 ++- .../data/xml/xslt-security-considerations.md | 5 ++- 5 files changed, 41 insertions(+), 24 deletions(-) diff --git a/docs/standard/data/xml/how-to-migrate-your-xsltransform-code.md b/docs/standard/data/xml/how-to-migrate-your-xsltransform-code.md index 60def2caf2712..079c3a8089001 100644 --- a/docs/standard/data/xml/how-to-migrate-your-xsltransform-code.md +++ b/docs/standard/data/xml/how-to-migrate-your-xsltransform-code.md @@ -9,9 +9,11 @@ ms.assetid: 910beb2f-cfb3-4e8e-9936-f7e0c5f4064a --- # How to: Migrate Your XslTransform Code -The new XSLT classes have been designed to be very similar to the existing classes. The class replaces the class. Style sheets are compiled using the method. Transforms are executed using the method. The following procedures show common XSLT tasks, and compare the code using the class versus the class. +The class replaced the class. This newer class was designed to be very similar to . Style sheets are compiled using the method. Transforms are executed using the method. + +The following procedures show common XSLT tasks, and compare the code using the class versus the class. -### To transform a file and output to a URI +## To transform a file and output to a URI - Code using the class. @@ -23,7 +25,7 @@ The new XSLT classes have been designed to be very similar to the existing class [!code-csharp[XML_Migration#10](../../../../samples/snippets/csharp/VS_Snippets_Data/XML_Migration/CS/migration.cs#10)] [!code-vb[XML_Migration#10](../../../../samples/snippets/visualbasic/VS_Snippets_Data/XML_Migration/VB/migration.vb#10)] -### To compile a style sheet and use a resolver with default credentials +## To compile a style sheet and use a resolver with default credentials - Code using the class. @@ -35,7 +37,7 @@ The new XSLT classes have been designed to be very similar to the existing class [!code-csharp[XML_Migration#12](../../../../samples/snippets/csharp/VS_Snippets_Data/XML_Migration/CS/migration.cs#12)] [!code-vb[XML_Migration#12](../../../../samples/snippets/visualbasic/VS_Snippets_Data/XML_Migration/VB/migration.vb#12)] -### To use an XSLT parameter +## To use an XSLT parameter - Code using the class. @@ -47,7 +49,10 @@ The new XSLT classes have been designed to be very similar to the existing class [!code-csharp[XML_Migration#14](../../../../samples/snippets/csharp/VS_Snippets_Data/XML_Migration/CS/migration.cs#14)] [!code-vb[XML_Migration#14](../../../../samples/snippets/visualbasic/VS_Snippets_Data/XML_Migration/VB/migration.vb#14)] -### To enable XSLT scripting +## To enable XSLT scripting + +> [!NOTE] +> Script blocks are supported only in .NET Framework. They are _not_ supported on .NET Core or .NET 5 or later. - Code using the class. @@ -59,7 +64,7 @@ The new XSLT classes have been designed to be very similar to the existing class [!code-csharp[XML_Migration#16](../../../../samples/snippets/csharp/VS_Snippets_Data/XML_Migration/CS/migration.cs#16)] [!code-vb[XML_Migration#16](../../../../samples/snippets/visualbasic/VS_Snippets_Data/XML_Migration/VB/migration.vb#16)] -### To load the results into a DOM object +## To load the results into a DOM object - Code using the class. @@ -74,7 +79,7 @@ The new XSLT classes have been designed to be very similar to the existing class [!code-csharp[XML_Migration#20](../../../../samples/snippets/csharp/VS_Snippets_Data/XML_Migration/CS/migration.cs#20)] [!code-vb[XML_Migration#20](../../../../samples/snippets/visualbasic/VS_Snippets_Data/XML_Migration/VB/migration.vb#20)] -### To stream the results into another data store +## To stream the results into another data store - Code using the class. diff --git a/docs/standard/data/xml/how-to-perform-an-xslt-transformation-by-using-an-assembly.md b/docs/standard/data/xml/how-to-perform-an-xslt-transformation-by-using-an-assembly.md index 5a74d7a668cd8..3448aaab6a921 100644 --- a/docs/standard/data/xml/how-to-perform-an-xslt-transformation-by-using-an-assembly.md +++ b/docs/standard/data/xml/how-to-perform-an-xslt-transformation-by-using-an-assembly.md @@ -7,11 +7,14 @@ dev_langs: - "vb" ms.assetid: 76ee440b-d134-4f8f-8262-b917ad6dcbf6 --- -# How to: Perform an XSLT Transformation by Using an Assembly +# How to: Perform an XSLT transformation by using an assembly -The XSLT compiler (xsltc.exe) compiles XSLT style sheets and generates an assembly. The assembly can be passed directly into the method. +> [!NOTE] +> Script blocks are supported only in .NET Framework. They are _not_ supported on .NET Core or .NET 5 or later. + +The XSLT compiler (xsltc.exe) compiles XSLT style sheets and generates an assembly. The assembly can be passed directly into the method. -### To copy the XML and XSLT files to your local computer +## To copy the XML and XSLT files to your local computer - Copy the XSLT file to your local computer and name it Transform.xsl. @@ -123,21 +126,21 @@ The XSLT compiler (xsltc.exe) compiles XSLT style sheets and generates an assemb ``` -### To compile the style sheet with the script enabled. - -1. Executing the following command from the command line creates two assemblies named `Transform.dll` and `Transform_Script1.dll` (This is the default behavior. Unless otherwise specified, the name of the class and the assembly defaults to the name of the main style sheet): +## To compile the style sheet with the script enabled - ```console - xsltc /settings:script+ Transform.xsl - ``` +The following command creates two assemblies named `Transform.dll` and `Transform_Script1.dll`. This is the default behavior. Unless otherwise specified, the name of the class and the assembly defaults to the name of the main style sheet. - The following command explicitly sets the class name to Transform: +```console +xsltc /settings:script+ Transform.xsl +``` - ```console - xsltc /settings:script+ /class:Transform Transform.xsl - ``` +The following command explicitly sets the class name to Transform: + +```console +xsltc /settings:script+ /class:Transform Transform.xsl +``` -### To include the compiled assembly as a reference when you compile your code. +## To include the compiled assembly as a reference when you compile your code 1. You can include an assembly in Visual Studio by adding a reference in the Solution Explorer, or from the command line. @@ -153,7 +156,7 @@ The XSLT compiler (xsltc.exe) compiles XSLT style sheets and generates an assemb vbc myCode.vb /r:system.dll;system.xml.dll;Transform.dll ``` -### To use the compiled assembly in your code. +## To use the compiled assembly in your code The following example shows how to execute the XSLT transformation by using the compiled style sheet. diff --git a/docs/standard/data/xml/migrating-from-the-xsltransform-class.md b/docs/standard/data/xml/migrating-from-the-xsltransform-class.md index eb59d6d47c86e..49d014f221d24 100644 --- a/docs/standard/data/xml/migrating-from-the-xsltransform-class.md +++ b/docs/standard/data/xml/migrating-from-the-xsltransform-class.md @@ -27,6 +27,9 @@ The class also includes other optimiz By default, the class disables support for the XSLT `document()` function and embedded scripting. These features can be enabled by creating an object that has the features enabled and passing it to the method. The following example shows how to enable scripting and perform an XSLT transformation. +> [!NOTE] +> Script blocks are supported only in .NET Framework. They are _not_ supported on .NET Core or .NET 5 or later. + [!code-csharp[XML_Migration#16](../../../../samples/snippets/csharp/VS_Snippets_Data/XML_Migration/CS/migration.cs#16)] [!code-vb[XML_Migration#16](../../../../samples/snippets/visualbasic/VS_Snippets_Data/XML_Migration/VB/migration.vb#16)] diff --git a/docs/standard/data/xml/xslt-compiler-xsltc-exe.md b/docs/standard/data/xml/xslt-compiler-xsltc-exe.md index fdbf9baaeec44..92265fbd1e758 100644 --- a/docs/standard/data/xml/xslt-compiler-xsltc-exe.md +++ b/docs/standard/data/xml/xslt-compiler-xsltc-exe.md @@ -6,7 +6,10 @@ ms.assetid: 672a5ac8-8305-4d28-ba10-11089c2c0924 --- # XSLT Compiler (xsltc.exe) -The XSLT compiler (xsltc.exe) compiles XSLT style sheets and generates an assembly. The compiled style sheet can then be passed directly into the method. You cannot generate signed assemblies with xsltc.exe. +The XSLT compiler (xsltc.exe) compiles XSLT style sheets and generates an assembly. The compiled style sheet can then be passed directly into the method. You cannot generate signed assemblies with xsltc.exe. + +> [!NOTE] +> Script blocks are supported only in .NET Framework. They are _not_ supported on .NET Core or .NET 5 or later. The xsltc.exe tool is included with Visual Studio. For more information, see the [Visual Studio Downloads](https://aka.ms/vsdownload?utm_source=mscom&utm_campaign=msdocs). diff --git a/docs/standard/data/xml/xslt-security-considerations.md b/docs/standard/data/xml/xslt-security-considerations.md index b08d7867748c3..ab8bec81b6533 100644 --- a/docs/standard/data/xml/xslt-security-considerations.md +++ b/docs/standard/data/xml/xslt-security-considerations.md @@ -22,7 +22,10 @@ The XSLT language has a rich set of features that give you a great deal of power ### Style Sheet Scripts - Scripts can be embedded in a style sheet using the `msxsl:script` extension element. Script support is an optional feature on the class that is disabled by default. Scripting can be enabled by setting the property to `true` and passing the object to the method. + Scripts can be embedded in a style sheet using the `msxsl:script` extension element. Script support is an optional feature on the class that is disabled by default. Scripting can be enabled by setting the property to `true` and passing the object to the method. + +> [!NOTE] +> Script blocks are supported only in .NET Framework. They are _not_ supported on .NET Core or .NET 5 or later. #### Guidelines From 3a54c61b23bfcfa96dc5409ea8082208b32ddb7c Mon Sep 17 00:00:00 2001 From: Adam Stachowicz Date: Tue, 17 May 2022 17:59:40 +0000 Subject: [PATCH 261/429] Fix typo (#29473) --- docs/standard/analyzers/portability-analyzer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standard/analyzers/portability-analyzer.md b/docs/standard/analyzers/portability-analyzer.md index 342c9a9cfe1ef..8db34821d9ea4 100644 --- a/docs/standard/analyzers/portability-analyzer.md +++ b/docs/standard/analyzers/portability-analyzer.md @@ -24,7 +24,7 @@ Once you've converted your project to target the new platform, like .NET Core, y To begin using the .NET Portability Analyzer in Visual Studio, you first need to download and install the extension from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=ConnieYau.NETPortabilityAnalyzer). It works on Visual Studio 2017 and Visual Studio 2019 versions. > [!IMPORTANT] -> The .NET Portability Anazyler is not supported in Visual Studio 2022. +> The .NET Portability Analyzer is not supported in Visual Studio 2022. Configure it in Visual Studio via **Analyze** > **Portability Analyzer Settings** and select your Target Platforms, which are the .NET platforms/versions that you want to evaluate the portability gaps comparing with the platform/version that your current assembly is built with. From bd2b70984f7c0967daad2f3bf983272ca9bffd56 Mon Sep 17 00:00:00 2001 From: David Pine Date: Tue, 17 May 2022 13:09:15 -0500 Subject: [PATCH 262/429] Update work-with-resx-files-programmatically.md (#29490) --- docs/core/extensions/work-with-resx-files-programmatically.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/core/extensions/work-with-resx-files-programmatically.md b/docs/core/extensions/work-with-resx-files-programmatically.md index ab7fa749d6b25..049c3a21cddd0 100644 --- a/docs/core/extensions/work-with-resx-files-programmatically.md +++ b/docs/core/extensions/work-with-resx-files-programmatically.md @@ -13,7 +13,8 @@ ms.assetid: 168f941a-2b84-43f8-933f-cf4a8548d824 # Work with .resx files programmatically -> ![NOTE] This article applies to .NET Framework. For information that applies to .NET 5+ (including .NET Core), see [Resources in .resx files](create-resource-files.md#resources-in-resx-files). +> ![NOTE] +> This article applies to .NET Framework. For information that applies to .NET 5+ (including .NET Core), see [Resources in .resx files](create-resource-files.md#resources-in-resx-files). Because XML resource (.resx) files must consist of well-defined XML, including a header that must follow a specific schema followed by data in name/value pairs, you may find that creating these files manually is error-prone. As an alternative, you can create .resx files programmatically by using types and members in the .NET Class Library. You can also use the .NET Class Library to retrieve resources that are stored in .resx files. This article explains how you can use the types and members in the namespace to work with .resx files. From e1cbe0806730f7021b57f5e16e481880248bd8b2 Mon Sep 17 00:00:00 2001 From: Tom Dykstra Date: Tue, 17 May 2022 12:37:17 -0700 Subject: [PATCH 263/429] Add tips for Pipelines use (#29337) --- .../testing/unit-testing-published-output.md | 2 -- docs/standard/io/pipelines.md | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/core/testing/unit-testing-published-output.md b/docs/core/testing/unit-testing-published-output.md index c2d446d01e75b..6856dc0632fc9 100644 --- a/docs/core/testing/unit-testing-published-output.md +++ b/docs/core/testing/unit-testing-published-output.md @@ -1,8 +1,6 @@ --- title: Test published output with dotnet vstest description: Learn how to run tests on published libraries, instead of on source code, with the dotnet vstest command. -author: kendrahavens -ms.author: kehavens ms.date: 10/18/2017 --- # Test published output with dotnet vstest diff --git a/docs/standard/io/pipelines.md b/docs/standard/io/pipelines.md index a2c8c3d803a3c..1b9054bd1cf12 100644 --- a/docs/standard/io/pipelines.md +++ b/docs/standard/io/pipelines.md @@ -1,7 +1,7 @@ --- title: I/O pipelines - .NET description: Learn how to efficiently use I/O pipelines in .NET and avoid problems in your code. -ms.date: 08/27/2020 +ms.date: 05/09/2022 helpviewer_keywords: - "Pipelines" - "Pipelines I/O" @@ -14,6 +14,8 @@ ms.author: riande is a library that is designed to make it easier to do high-performance I/O in .NET. It's a library targeting .NET Standard that works on all .NET implementations. +The library is available in the [System.IO.Pipelines](https://www.nuget.org/packages/System.IO.Pipelines) Nuget package. + ## What problem does System.IO.Pipelines solve @@ -334,6 +336,18 @@ The previous method of writing uses the buffers provided by the `PipeWriter`. It * Calling `GetMemory` or `GetSpan` while there's an incomplete call to `FlushAsync` isn't safe. * Calling `Complete` or `CompleteAsync` while there's unflushed data can result in memory corruption. +## Tips for using PipeReader and PipeWriter + +The following tips will help you use the classes successfully: + +* Always complete the [PipeReader](xref:System.IO.Pipelines.PipeReader.Complete%2A?displayProperty=nameWithType) and [PipeWriter](xref:System.IO.Pipelines.PipeWriter.Complete%2A?displayProperty=nameWithType), including an exception where applicable. +* Always call after calling . +* Periodically `await` while writing, and always check . Abort writing if `IsCompleted` is `true`, as that indicates the reader is completed and no longer cares about what is written. +* Do call after writing something that you want the `PipeReader` to have access to. +* Do not call `FlushAsync` if the reader can't start until `FlushAsync` finishes, as that may cause a deadlock. +* Ensure that only one context "owns" a `PipeReader` or `PipeWriter` or accesses them. These types are not thread-safe. +* Never access a after calling `AdvanceTo` or completing the `PipeReader`. + ## IDuplexPipe The is a contract for types that support both reading and writing. For example, a network connection would be represented by an `IDuplexPipe`. From 28bceaeea068c1080627ce630f4c0a4037f79645 Mon Sep 17 00:00:00 2001 From: Tom Dykstra Date: Tue, 17 May 2022 13:00:34 -0700 Subject: [PATCH 264/429] Add see also links (#29492) --- .../tools/corflags-exe-corflags-conversion-tool.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/framework/tools/corflags-exe-corflags-conversion-tool.md b/docs/framework/tools/corflags-exe-corflags-conversion-tool.md index 117b3346f3c60..dd8f13b04ecdc 100644 --- a/docs/framework/tools/corflags-exe-corflags-conversion-tool.md +++ b/docs/framework/tools/corflags-exe-corflags-conversion-tool.md @@ -45,8 +45,10 @@ CorFlags.exe assembly [options] ## Remarks - If no options are specified, the CorFlags Conversion tool displays the flags for the specified assembly. - +If no options are specified, the CorFlags Conversion tool displays the flags for the specified assembly. + +For more information, see section **II.25.3.3.1 Runtime flags** of the [ECMA-335 specification](https://www.ecma-international.org/publications-and-standards/standards/ecma-335/). For information about the PE flag, see [Optional Header (Image Only)](/windows/win32/debug/pe-format#optional-header-image-only). + ## See also - [Tools](index.md) From da417128d57241ae16e016a50b88696380f05c35 Mon Sep 17 00:00:00 2001 From: Tarun Jain <87998741+erjain@users.noreply.github.com> Date: Wed, 18 May 2022 01:40:15 +0530 Subject: [PATCH 265/429] Fix - Closes issue #74 (#29493) Co-authored-by: Tarun Jain --- .../container-docker-introduction/docker-defined.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/architecture/microservices/container-docker-introduction/docker-defined.md b/docs/architecture/microservices/container-docker-introduction/docker-defined.md index a92f56e734a60..b57e2e5bf4db6 100644 --- a/docs/architecture/microservices/container-docker-introduction/docker-defined.md +++ b/docs/architecture/microservices/container-docker-introduction/docker-defined.md @@ -72,7 +72,7 @@ So, simplifying, that's the core idea of Docker. In Docker, each layer is the resulting set of changes that happen to the filesystem after executing a command, such as, installing a program. -So, when you "look" at the filesystem after the layer has been copied, you see all the files, included the layer when the program was installed. +So, when you "look" at the filesystem after the layer has been copied, you see all the files, included in the layer when the program was installed. You can think of an image as an auxiliary read-only hard disk ready to be installed in a "computer" where the operating system is already installed. From a3be12f95ad8ad2f38c6a89a154e143eb15434e5 Mon Sep 17 00:00:00 2001 From: ytaracgotora <105744563+ytaracgotora@users.noreply.github.com> Date: Tue, 17 May 2022 16:14:53 -0400 Subject: [PATCH 266/429] Update interoperability-and-integration.md (#29494) Removed 2 duplicated links --- .../feature-details/interoperability-and-integration.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/docs/framework/wcf/feature-details/interoperability-and-integration.md b/docs/framework/wcf/feature-details/interoperability-and-integration.md index 58714b9b35108..180c537402ab5 100644 --- a/docs/framework/wcf/feature-details/interoperability-and-integration.md +++ b/docs/framework/wcf/feature-details/interoperability-and-integration.md @@ -32,13 +32,7 @@ This section covers interoperability and integration with Windows Communication Describes how WCF can interoperate with ASP.NET Web services. [Migrating ASP.NET Web Services to WCF](migrating-aspnet-web-services-to-wcf.md) - Describes how to migrate an ASP.NET Web service to a WCF service. - - [Migrating ASP.NET Web Services to WCF](migrating-aspnet-web-services-to-wcf.md) - Describes how to migrate an ASP.NET Web service to a WCF service. - - [Migrating ASP.NET Web Services to WCF](migrating-aspnet-web-services-to-wcf.md) - Describes how to migrate an ASP.NET Web service to a WCF service. + Describes how to migrate an ASP.NET Web service to a WCF service. [Interoperability with POX Applications](interoperability-with-pox-applications.md) Describes how WCF provides both services and clients that use "Plain Old XML" (POX) messages. From 0aa117dd07559a358b3318ff534d630b040dbd57 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Wed, 18 May 2022 04:54:31 -0700 Subject: [PATCH 267/429] Update package index with latest published versions (#29496) --- docs/azure/includes/dotnet-all.md | 12 ++++++------ docs/azure/includes/dotnet-new.md | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index ce3b4b5fafcb2..a91cd3b536ae3 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -49,7 +49,7 @@ | Purview Scanning | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Analytics.Purview.Scanning/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Scanning-readme-pre) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Scanning_1.0.0-beta.2/sdk/purview/Azure.Analytics.Purview.Scanning/) | | Question Answering | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.QuestionAnswering-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.0.0/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.1.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/) | | Schema Registry | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.2.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.2.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | -| Schema Registry - Avro | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | +| Schema Registry - Avro | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | | Service Bus | NuGet [7.8.1](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.1) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.1/sdk/servicebus/Azure.Messaging.ServiceBus/) | | Storage - Blobs | NuGet [12.12.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0/sdk/storage/Azure.Storage.Blobs/) | | Storage - Blobs Batch | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0/sdk/storage/Azure.Storage.Blobs.Batch/) | @@ -111,7 +111,7 @@ | Microsoft.Azure.Cosmos.Templates | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Templates/1.0.0) | | | | Microsoft.Azure.Functions.Analyzers | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Analyzers/1.0.0) | | | | Microsoft.Azure.Functions.Authentication.WebAssembly | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Authentication.WebAssembly/1.0.0)
      NuGet [1.0.1-preview](https://www.nuget.org/packages/Microsoft.Azure.Functions.Authentication.WebAssembly/1.0.1-preview) | | | -| Microsoft.Azure.Functions.Worker.Core | NuGet [1.4.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Core/1.4.0)
      NuGet [1.6.0-preview2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Core/1.6.0-preview2) | | | +| Microsoft.Azure.Functions.Worker.Core | NuGet [1.4.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Core/1.4.0)
      NuGet [1.6.0-preview3](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Core/1.6.0-preview3) | | | | Microsoft.Azure.Functions.Worker.Extensions.Abstractions | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Abstractions/1.1.0) | | | | Microsoft.Azure.Functions.Worker.Extensions.ApplicationInsights | NuGet [1.0.0-preview4](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.ApplicationInsights/1.0.0-preview4) | | | | Microsoft.Azure.Functions.Worker.Extensions.CosmosDB | NuGet [3.0.9](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.CosmosDB/3.0.9)
      NuGet [4.0.0-preview2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.CosmosDB/4.0.0-preview2) | | | @@ -129,7 +129,7 @@ | Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues | NuGet [5.0.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues/5.0.0) | | | | Microsoft.Azure.Functions.Worker.Extensions.Timer | NuGet [4.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Timer/4.1.0) | | | | Microsoft.Azure.Functions.Worker.Extensions.Warmup | NuGet [4.0.2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Warmup/4.0.2) | | | -| Microsoft.Azure.Functions.Worker.Grpc | NuGet [1.3.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Grpc/1.3.1)
      NuGet [1.4.1-preview1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Grpc/1.4.1-preview1) | | | +| Microsoft.Azure.Functions.Worker.Grpc | NuGet [1.3.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Grpc/1.3.1)
      NuGet [1.4.1-preview3](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Grpc/1.4.1-preview3) | | | | Microsoft.Azure.Functions.Worker.ItemTemplates | NuGet [4.0.2097](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ItemTemplates/4.0.2097) | | | | Microsoft.Azure.Functions.Worker.ProjectTemplates | NuGet [4.0.2097](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ProjectTemplates/4.0.2097) | | | | Microsoft.Azure.Functions.Worker.Sdk.Analyzers | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk.Analyzers/1.1.0) | | | @@ -319,7 +319,7 @@ | Microsoft.Azure.Devices.Provisioning.Transport.Http | NuGet [1.15.1](https://www.nuget.org/packages/Microsoft.Azure.Devices.Provisioning.Transport.Http/1.15.1)
      NuGet [1.16.0-preview-001](https://www.nuget.org/packages/Microsoft.Azure.Devices.Provisioning.Transport.Http/1.16.0-preview-001) | | | | Microsoft.Azure.Devices.Provisioning.Transport.Mqtt | NuGet [1.17.1](https://www.nuget.org/packages/Microsoft.Azure.Devices.Provisioning.Transport.Mqtt/1.17.1)
      NuGet [1.18.0-preview-001](https://www.nuget.org/packages/Microsoft.Azure.Devices.Provisioning.Transport.Mqtt/1.18.0-preview-001) | | | | Microsoft.Azure.Devices.Shared | NuGet [1.30.1](https://www.nuget.org/packages/Microsoft.Azure.Devices.Shared/1.30.1)
      NuGet [1.31.0-preview-001](https://www.nuget.org/packages/Microsoft.Azure.Devices.Shared/1.31.0-preview-001) | | | -| Microsoft.Azure.Functions.Worker | NuGet [1.6.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/1.6.0)
      NuGet [1.8.0-preview2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/1.8.0-preview2) | | | +| Microsoft.Azure.Functions.Worker | NuGet [1.6.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/1.6.0)
      NuGet [1.8.0-preview3](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/1.8.0-preview3) | | | | Microsoft.Azure.Functions.Worker.Sdk | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk/1.3.0)
      NuGet [1.5.0-preview2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk/1.5.0-preview2) | | | | Microsoft.Azure.uamqp | NuGet [1.2.11](https://www.nuget.org/packages/Microsoft.Azure.uamqp/1.2.11) | | | | Microsoft.Azure.umqtt | NuGet [1.1.11](https://www.nuget.org/packages/Microsoft.Azure.umqtt/1.1.11) | | | @@ -341,7 +341,7 @@ | Question Answering | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.QuestionAnswering-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.0.0/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.1.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/) | | Relay | NuGet [2.0.15596](https://www.nuget.org/packages/Microsoft.Azure.Relay/2.0.15596)
      NuGet [3.0.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Relay/3.0.0-preview) | [docs](/dotnet/api/overview/azure/service-bus-relay) | GitHub [2.0.15596](https://github.com/Azure/azure-relay-dotnet/tree/2.0.1) | | Schema Registry | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.2.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.2.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | -| Schema Registry - Avro | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | +| Schema Registry - Avro | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | | Search | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search_10.1.0/sdk/search/Microsoft.Azure.Search/) | | Search - Common | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search.Common/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search.Common_10.1.0/sdk/search/Microsoft.Azure.Search.Common/) | | Search - Data | NuGet [10.1.0](https://www.nuget.org/packages/Microsoft.Azure.Search.Data/10.1.0) | | GitHub [10.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Search.Data_10.1.0/sdk/search/Microsoft.Azure.Search.Data/) | @@ -519,7 +519,7 @@ | Management - Container Service Fluent | NuGet [1.38.1](https://www.nuget.org/packages/Microsoft.Azure.Management.ContainerService.Fluent/1.38.1) | | | | Management - Content Delivery Network | NuGet [6.1.0](https://www.nuget.org/packages/Microsoft.Azure.Management.Cdn/6.1.0) | | GitHub [6.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.Cdn_6.1.0/sdk/cdn/Microsoft.Azure.Management.Cdn/) | | Management - Content Delivery Network Fluent | NuGet [1.38.1](https://www.nuget.org/packages/Microsoft.Azure.Management.Cdn.Fluent/1.38.1) | [docs](/dotnet/api/overview/azure/cdn) | | -| Management - Cosmos DB | NuGet [3.3.0](https://www.nuget.org/packages/Microsoft.Azure.Management.CosmosDB/3.3.0)
      NuGet [3.7.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.CosmosDB/3.7.0-preview) | | GitHub [3.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.CosmosDB_3.3.0/sdk/cosmosdb/Microsoft.Azure.Management.CosmosDB/)
      GitHub [3.7.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.CosmosDB_3.7.0-preview/sdk/cosmosdb/Microsoft.Azure.Management.CosmosDB/) | +| Management - Cosmos DB | NuGet [3.3.0](https://www.nuget.org/packages/Microsoft.Azure.Management.CosmosDB/3.3.0)
      NuGet [3.8.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.CosmosDB/3.8.0-preview) | | GitHub [3.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.CosmosDB_3.3.0/sdk/cosmosdb/Microsoft.Azure.Management.CosmosDB/)
      GitHub [3.8.0-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.CosmosDB_3.8.0-preview/sdk/cosmosdb/Microsoft.Azure.Management.CosmosDB/) | | Management - Cosmos DB Fluent | NuGet [1.38.1](https://www.nuget.org/packages/Microsoft.Azure.Management.CosmosDB.Fluent/1.38.1) | | | | Management - Customer Insights | NuGet [0.9.1-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.CustomerInsights/0.9.1-preview) | | GitHub [0.9.1-preview](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/customer-insights/Microsoft.Azure.Management.CustomerInsights) | | Management - Customer Insights Fluent | NuGet [1.9.1-beta](https://www.nuget.org/packages/Microsoft.Azure.Management.CustomerInsights.Fluent/1.9.1-beta) | | | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index 4f0f104976be1..5c04efdea8281 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -49,7 +49,7 @@ | Purview Scanning | NuGet [1.0.0-beta.2](https://www.nuget.org/packages/Azure.Analytics.Purview.Scanning/1.0.0-beta.2) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Scanning-readme-pre) | GitHub [1.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Scanning_1.0.0-beta.2/sdk/purview/Azure.Analytics.Purview.Scanning/) | | Question Answering | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.0.0)
      NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Azure.AI.Language.QuestionAnswering/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.Language.QuestionAnswering-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.0.0/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/)
      GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Language.QuestionAnswering_1.1.0-beta.1/sdk/cognitivelanguage/Azure.AI.Language.QuestionAnswering/) | | Schema Registry | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.2.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.2.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) | -| Schema Registry - Avro | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | +| Schema Registry - Avro | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.0/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) | | Service Bus | NuGet [7.8.1](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.8.1) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.8.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.8.1/sdk/servicebus/Azure.Messaging.ServiceBus/) | | Storage - Blobs | NuGet [12.12.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.12.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.12.0/sdk/storage/Azure.Storage.Blobs/) | | Storage - Blobs Batch | NuGet [12.9.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.9.0) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.9.0/sdk/storage/Azure.Storage.Blobs.Batch/) | From 8c64b43464b02fd234efded8a78237f8a05a272c Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Wed, 18 May 2022 08:38:50 -0400 Subject: [PATCH 268/429] Markdown lint fixes (#29506) fix lint warning --- .../wcf/feature-details/interoperability-and-integration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/wcf/feature-details/interoperability-and-integration.md b/docs/framework/wcf/feature-details/interoperability-and-integration.md index 180c537402ab5..e5c9a18d3f411 100644 --- a/docs/framework/wcf/feature-details/interoperability-and-integration.md +++ b/docs/framework/wcf/feature-details/interoperability-and-integration.md @@ -32,7 +32,7 @@ This section covers interoperability and integration with Windows Communication Describes how WCF can interoperate with ASP.NET Web services. [Migrating ASP.NET Web Services to WCF](migrating-aspnet-web-services-to-wcf.md) - Describes how to migrate an ASP.NET Web service to a WCF service. + Describes how to migrate an ASP.NET Web service to a WCF service. [Interoperability with POX Applications](interoperability-with-pox-applications.md) Describes how WCF provides both services and clients that use "Plain Old XML" (POX) messages. From 1cb4995fbf7d1257eb6a6b8669453b8da813c8a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 May 2022 07:40:19 -0500 Subject: [PATCH 269/429] Bump Microsoft.CodeAnalysis.CSharp.Workspaces (#29507) Bumps [Microsoft.CodeAnalysis.CSharp.Workspaces](https://github.com/dotnet/roslyn) from 4.1.0 to 4.2.0. - [Release notes](https://github.com/dotnet/roslyn/releases) - [Changelog](https://github.com/dotnet/roslyn/blob/main/docs/Breaking%20API%20Changes.md) - [Commits](https://github.com/dotnet/roslyn/compare/v4.1.0...Visual-Studio-2019-Version-16.0-Preview-4.2) --- updated-dependencies: - dependency-name: Microsoft.CodeAnalysis.CSharp.Workspaces dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../SyntaxQuickStart/HelloSyntaxTree/HelloSyntaxTree.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/HelloSyntaxTree/HelloSyntaxTree.csproj b/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/HelloSyntaxTree/HelloSyntaxTree.csproj index be8825d601edc..2c9df0a63b450 100644 --- a/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/HelloSyntaxTree/HelloSyntaxTree.csproj +++ b/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/HelloSyntaxTree/HelloSyntaxTree.csproj @@ -6,7 +6,7 @@ - +
      From fc144759d2f49d0dc6b93bad02e38dde5c89a677 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 May 2022 07:40:29 -0500 Subject: [PATCH 270/429] Bump Moq (#29509) Bumps [Moq](https://github.com/moq/moq4) from 4.17.2 to 4.18.1. - [Release notes](https://github.com/moq/moq4/releases) - [Changelog](https://github.com/moq/moq4/blob/main/CHANGELOG.md) - [Commits](https://github.com/moq/moq4/compare/v4.17.2...v4.18.1) --- updated-dependencies: - dependency-name: Moq dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/tutorials/nullable-reference-migration/finished/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj b/samples/snippets/csharp/tutorials/nullable-reference-migration/finished/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj index e365e8eff7ff7..a4c0e65cf4003 100644 --- a/samples/snippets/csharp/tutorials/nullable-reference-migration/finished/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj +++ b/samples/snippets/csharp/tutorials/nullable-reference-migration/finished/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj @@ -10,7 +10,7 @@ - + From fb9e959f2074f2e11a6b58b019d93d9451de9c09 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 May 2022 07:40:37 -0500 Subject: [PATCH 271/429] Bump Moq (#29508) Bumps [Moq](https://github.com/moq/moq4) from 4.17.2 to 4.18.1. - [Release notes](https://github.com/moq/moq4/releases) - [Changelog](https://github.com/moq/moq4/blob/main/CHANGELOG.md) - [Commits](https://github.com/moq/moq4/compare/v4.17.2...v4.18.1) --- updated-dependencies: - dependency-name: Moq dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/tutorials/nullable-reference-migration/start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj b/samples/snippets/csharp/tutorials/nullable-reference-migration/start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj index 15f9bffc13f56..61e25b84ca955 100644 --- a/samples/snippets/csharp/tutorials/nullable-reference-migration/start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj +++ b/samples/snippets/csharp/tutorials/nullable-reference-migration/start/SimpleFeedReader.Tests/SimpleFeedReader.Tests.csproj @@ -8,7 +8,7 @@ - + From e2dcac62c922838ebd4c1cc747d3547b3e3dfe5c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 May 2022 08:40:48 -0400 Subject: [PATCH 272/429] Bump Microsoft.CodeAnalysis (#29510) Bumps [Microsoft.CodeAnalysis](https://github.com/dotnet/roslyn) from 4.1.0 to 4.2.0. - [Release notes](https://github.com/dotnet/roslyn/releases) - [Changelog](https://github.com/dotnet/roslyn/blob/main/docs/Breaking%20API%20Changes.md) - [Commits](https://github.com/dotnet/roslyn/compare/v4.1.0...Visual-Studio-2019-Version-16.0-Preview-4.2) --- updated-dependencies: - dependency-name: Microsoft.CodeAnalysis dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../ConstructionCS/ConstructionCS.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/roslyn-sdk/SyntaxTransformationQuickStart/ConstructionCS/ConstructionCS.csproj b/samples/snippets/csharp/roslyn-sdk/SyntaxTransformationQuickStart/ConstructionCS/ConstructionCS.csproj index 9679b70895b46..3c0e8b17744a3 100644 --- a/samples/snippets/csharp/roslyn-sdk/SyntaxTransformationQuickStart/ConstructionCS/ConstructionCS.csproj +++ b/samples/snippets/csharp/roslyn-sdk/SyntaxTransformationQuickStart/ConstructionCS/ConstructionCS.csproj @@ -6,7 +6,7 @@ - + From d4714c96bf1817cbe042167968a85ea1131d79ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 May 2022 07:40:57 -0500 Subject: [PATCH 273/429] Bump Microsoft.CodeAnalysis.CSharp.Workspaces (#29512) Bumps [Microsoft.CodeAnalysis.CSharp.Workspaces](https://github.com/dotnet/roslyn) from 4.1.0 to 4.2.0. - [Release notes](https://github.com/dotnet/roslyn/releases) - [Changelog](https://github.com/dotnet/roslyn/blob/main/docs/Breaking%20API%20Changes.md) - [Commits](https://github.com/dotnet/roslyn/compare/v4.1.0...Visual-Studio-2019-Version-16.0-Preview-4.2) --- updated-dependencies: - dependency-name: Microsoft.CodeAnalysis.CSharp.Workspaces dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../roslyn-sdk/SemanticQuickStart/SemanticQuickStart.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/roslyn-sdk/SemanticQuickStart/SemanticQuickStart.csproj b/samples/snippets/csharp/roslyn-sdk/SemanticQuickStart/SemanticQuickStart.csproj index be8825d601edc..2c9df0a63b450 100644 --- a/samples/snippets/csharp/roslyn-sdk/SemanticQuickStart/SemanticQuickStart.csproj +++ b/samples/snippets/csharp/roslyn-sdk/SemanticQuickStart/SemanticQuickStart.csproj @@ -6,7 +6,7 @@ - + From c5e11a6f47b39d62f9c0a19ab694c4311997ab50 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 May 2022 07:41:06 -0500 Subject: [PATCH 274/429] Bump Microsoft.CodeAnalysis.CSharp.Workspaces (#29513) Bumps [Microsoft.CodeAnalysis.CSharp.Workspaces](https://github.com/dotnet/roslyn) from 4.1.0 to 4.2.0. - [Release notes](https://github.com/dotnet/roslyn/releases) - [Changelog](https://github.com/dotnet/roslyn/blob/main/docs/Breaking%20API%20Changes.md) - [Commits](https://github.com/dotnet/roslyn/compare/v4.1.0...Visual-Studio-2019-Version-16.0-Preview-4.2) --- updated-dependencies: - dependency-name: Microsoft.CodeAnalysis.CSharp.Workspaces dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../TransformationCS/TransformationCS.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/roslyn-sdk/SyntaxTransformationQuickStart/TransformationCS/TransformationCS.csproj b/samples/snippets/csharp/roslyn-sdk/SyntaxTransformationQuickStart/TransformationCS/TransformationCS.csproj index be8825d601edc..2c9df0a63b450 100644 --- a/samples/snippets/csharp/roslyn-sdk/SyntaxTransformationQuickStart/TransformationCS/TransformationCS.csproj +++ b/samples/snippets/csharp/roslyn-sdk/SyntaxTransformationQuickStart/TransformationCS/TransformationCS.csproj @@ -6,7 +6,7 @@ - + From 2485008a3d85047642bc824a5296fd669b06c72f Mon Sep 17 00:00:00 2001 From: GitHubPang <61439577+GitHubPang@users.noreply.github.com> Date: Wed, 18 May 2022 20:42:18 +0800 Subject: [PATCH 275/429] Fix typos (#29499) --- docs/fundamentals/code-analysis/configuration-files.md | 2 +- docs/fundamentals/code-analysis/quality-rules/ca1060.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/fundamentals/code-analysis/configuration-files.md b/docs/fundamentals/code-analysis/configuration-files.md index 0f224b5ecb268..679ba8cb2b1f8 100644 --- a/docs/fundamentals/code-analysis/configuration-files.md +++ b/docs/fundamentals/code-analysis/configuration-files.md @@ -34,7 +34,7 @@ You can apply EditorConfig file conventions to a folder, a project, or an entire If you have an existing *.editorconfig* file for editor settings such as indent size or whether to trim trailing whitespace, you can place your code analysis configuration options in the same file. > [!TIP] -> Visual Studio provides an *.editorconfig* item template that makes is easy to add one of these files to your project. For more information, see [Add an EditorConfig file to a project](/visualstudio/ide/create-portable-custom-editor-options#add-an-editorconfig-file-to-a-project). +> Visual Studio provides an *.editorconfig* item template that makes it easy to add one of these files to your project. For more information, see [Add an EditorConfig file to a project](/visualstudio/ide/create-portable-custom-editor-options#add-an-editorconfig-file-to-a-project). ### Example diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1060.md b/docs/fundamentals/code-analysis/quality-rules/ca1060.md index 55c7c6178507d..94fcbb426d7ab 100644 --- a/docs/fundamentals/code-analysis/quality-rules/ca1060.md +++ b/docs/fundamentals/code-analysis/quality-rules/ca1060.md @@ -43,9 +43,9 @@ These classes are declared as `internal` (`Friend` in Visual Basic) and declare To fix a violation of this rule, move the method to the appropriate **NativeMethods** class. For most applications, moving P/Invokes to a new class that is named **NativeMethods** is enough. -However, if you are developing libraries for use in other applications, you should consider defining two other classes that are called **SafeNativeMethods** and **UnsafeNativeMethods**. These classes resemble the **NativeMethods** class; however, they are marked by using a special attribute called **SuppressUnmanagedCodeSecurityAttribute**. When this attribute is applied, the runtime does not perform a full stack walk to make sure that all callers have the **UnmanagedCode** permission. The runtime ordinarily checks for this permission at startup. Because the check is not performed, it can greatly improve performance for calls to these unmanaged methods, It also enables code that has limited permissions to call these methods. +However, if you are developing libraries for use in other applications, you should consider defining two other classes that are called **SafeNativeMethods** and **UnsafeNativeMethods**. These classes resemble the **NativeMethods** class; however, they are marked by using a special attribute called **SuppressUnmanagedCodeSecurityAttribute**. When this attribute is applied, the runtime does not perform a full stack walk to make sure that all callers have the **UnmanagedCode** permission. The runtime ordinarily checks for this permission at startup. Because the check is not performed, it can greatly improve performance for calls to these unmanaged methods. It also enables code that has limited permissions to call these methods. -However, you should use this attribute with great care. It can have serious security implications if it is implemented incorrectly.. +However, you should use this attribute with great care. It can have serious security implications if it is implemented incorrectly. For information about how to implement the methods, see the **NativeMethods** example, **SafeNativeMethods** example, and **UnsafeNativeMethods** example. From 69e9a1101c890f309d21e240a95ac0be15fdf01a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 May 2022 05:44:24 -0700 Subject: [PATCH 276/429] Bump Microsoft.CodeAnalysis.CSharp.Workspaces (#29511) Bumps [Microsoft.CodeAnalysis.CSharp.Workspaces](https://github.com/dotnet/roslyn) from 4.1.0 to 4.2.0. - [Release notes](https://github.com/dotnet/roslyn/releases) - [Changelog](https://github.com/dotnet/roslyn/blob/main/docs/Breaking%20API%20Changes.md) - [Commits](https://github.com/dotnet/roslyn/compare/v4.1.0...Visual-Studio-2019-Version-16.0-Preview-4.2) --- updated-dependencies: - dependency-name: Microsoft.CodeAnalysis.CSharp.Workspaces dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .../SyntaxQuickStart/SyntaxWalker/SyntaxWalker.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/SyntaxWalker/SyntaxWalker.csproj b/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/SyntaxWalker/SyntaxWalker.csproj index be8825d601edc..2c9df0a63b450 100644 --- a/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/SyntaxWalker/SyntaxWalker.csproj +++ b/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/SyntaxWalker/SyntaxWalker.csproj @@ -6,7 +6,7 @@ - + From ec8ad336c11b98f5e204e5cf2855df232a3772a8 Mon Sep 17 00:00:00 2001 From: David Pine Date: Wed, 18 May 2022 07:46:26 -0500 Subject: [PATCH 277/429] Minor edit pass, and add note about void-returning async functions. (#29491) * Minor edit pass, and add note about void-returning async functions. * Apply suggestions from code review Co-authored-by: Tom Dykstra Co-authored-by: Tom Dykstra --- .../programming-guide/concepts/async/index.md | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/docs/csharp/programming-guide/concepts/async/index.md b/docs/csharp/programming-guide/concepts/async/index.md index c1353a99970dd..bde2cdc82db10 100644 --- a/docs/csharp/programming-guide/concepts/async/index.md +++ b/docs/csharp/programming-guide/concepts/async/index.md @@ -1,17 +1,17 @@ --- title: Asynchronous programming in C# description: An overview of the C# language support for asynchronous programming using async, await, Task, and Task -ms.date: 06/04/2020 +ms.date: 05/17/2022 recommendations: false --- # Asynchronous programming with async and await The [Task asynchronous programming model (TAP)](task-asynchronous-programming-model.md) provides an abstraction over asynchronous code. You write code as a sequence of statements, just like always. You can read that code as though each statement completes before the next begins. The compiler performs many transformations because some of those statements may start work and return a that represents the ongoing work. -That's the goal of this syntax: enable code that reads like a sequence of statements, but executes in a much more complicated order based on external resource allocation and when tasks complete. It's analogous to how people give instructions for processes that include asynchronous tasks. Throughout this article, you'll use an example of instructions for making a breakfast to see how the `async` and `await` keywords make it easier to reason about code, that includes a series of asynchronous instructions. You'd write the instructions something like the following list to explain how to make a breakfast: +That's the goal of this syntax: enable code that reads like a sequence of statements, but executes in a much more complicated order based on external resource allocation and when tasks are complete. It's analogous to how people give instructions for processes that include asynchronous tasks. Throughout this article, you'll use an example of instructions for making breakfast to see how the `async` and `await` keywords make it easier to reason about code that includes a series of asynchronous instructions. You'd write the instructions something like the following list to explain how to make a breakfast: 1. Pour a cup of coffee. -1. Heat up a pan, then fry two eggs. +1. Heat a pan, then fry two eggs. 1. Fry three slices of bacon. 1. Toast two pieces of bread. 1. Add butter and jam to the toast. @@ -19,9 +19,9 @@ That's the goal of this syntax: enable code that reads like a sequence of statem If you have experience with cooking, you'd execute those instructions **asynchronously**. You'd start warming the pan for eggs, then start the bacon. You'd put the bread in the toaster, then start the eggs. At each step of the process, you'd start a task, then turn your attention to tasks that are ready for your attention. -Cooking breakfast is a good example of asynchronous work that isn't parallel. One person (or thread) can handle all these tasks. Continuing the breakfast analogy, one person can make breakfast asynchronously by starting the next task before the first completes. The cooking progresses whether or not someone is watching it. As soon as you start warming the pan for the eggs, you can begin frying the bacon. Once the bacon starts, you can put the bread into the toaster. +Cooking breakfast is a good example of asynchronous work that isn't parallel. One person (or thread) can handle all these tasks. Continuing the breakfast analogy, one person can make breakfast asynchronously by starting the next task before the first task completes. The cooking progresses whether or not someone is watching it. As soon as you start warming the pan for the eggs, you can begin frying the bacon. Once the bacon starts, you can put the bread into the toaster. -For a parallel algorithm, you'd need multiple cooks (or threads). One would make the eggs, one the bacon, and so on. Each one would be focused on just that one task. Each cook (or thread) would be blocked synchronously waiting for bacon to be ready to flip, or the toast to pop. +For a parallel algorithm, you'd need multiple cooks (or threads). One would make the eggs, one the bacon, and so on. Each one would be focused on just that one task. Each cook (or thread) would be blocked synchronously waiting for the bacon to be ready to flip, or the toast to pop. Now, consider those same instructions written as C# statements: @@ -29,12 +29,12 @@ Now, consider those same instructions written as C# statements: :::image type="content" source="media/synchronous-breakfast.png" alt-text="synchronous breakfast"::: -The synchronously prepared breakfast, took roughly 30 minutes because the total is the sum of each individual task. +The synchronously prepared breakfast took roughly 30 minutes because the total is the sum of each task. > [!NOTE] > The `Coffee`, `Egg`, `Bacon`, `Toast`, and `Juice` classes are empty. They are simply marker classes for the purpose of demonstration, contain no properties, and serve no other purpose. -Computers don't interpret those instructions the same way people do. The computer will block on each statement until the work is complete before moving on to the next statement. That creates an unsatisfying breakfast. The later tasks wouldn't be started until the earlier tasks had completed. It would take much longer to create the breakfast, and some items would have gotten cold before being served. +Computers don't interpret those instructions the same way people do. The computer will block on each statement until the work is complete before moving on to the next statement. That creates an unsatisfying breakfast. The later tasks wouldn't be started until the earlier tasks had been completed. It would take much longer to create the breakfast, and some items would have gotten cold before being served. If you want the computer to execute the above instructions asynchronously, you must write asynchronous code. @@ -56,6 +56,9 @@ Let's start by updating this code so that the thread doesn't block while tasks a > [!TIP] > The method bodies of the `FryEggsAsync`, `FryBaconAsync`, and `ToastBreadAsync` have all been updated to return `Task`, `Task`, and `Task` respectively. The methods are renamed from their original version to include the "Async" suffix. Their implementations are shown as part of the [final version](#final-version) later in this article. +> [!NOTE] +> The `Main` method returns `Task`, despite not having a `return` expression—this is by design. For more information, see [Evaluation of a void-returning async function](/dotnet/csharp/language-reference/language-specification/classes#14153-evaluation-of-a-void-returning-async-function). + This code doesn't block while the eggs or the bacon are cooking. This code won't start any other tasks though. You'd still put the toast in the toaster and stare at it until it pops. But at least, you'd respond to anyone that wanted your attention. In a restaurant where multiple orders are placed, the cook could start another breakfast while the first is cooking. Now, the thread working on the breakfast isn't blocked while awaiting any started task that hasn't yet finished. For some applications, this change is all that's needed. A GUI application still responds to the user with just this change. However, for this scenario, you want more. You don't want each of the component tasks to be executed sequentially. It's better to start each of the component tasks before awaiting the previous task's completion. @@ -64,7 +67,7 @@ Now, the thread working on the breakfast isn't blocked while awaiting any starte In many scenarios, you want to start several independent tasks immediately. Then, as each task finishes, you can continue other work that's ready. In the breakfast analogy, that's how you get breakfast done more quickly. You also get everything done close to the same time. You'll get a hot breakfast. -The and related types are classes you can use to reason about tasks that are in progress. That enables you to write code that more closely resembles the way you'd actually create breakfast. You'd start cooking the eggs, bacon, and toast at the same time. As each requires action, you'd turn your attention to that task, take care of the next action, then await for something else that requires your attention. +The and related types are classes you can use to reason about tasks that are in progress. That enables you to write code that more closely resembles the way you'd create breakfast. You'd start cooking the eggs, bacon, and toast at the same time. As each requires action, you'd turn your attention to that task, take care of the next action, then wait for something else that requires your attention. You start a task and hold on to the object that represents the work. You'll `await` each task before working with its result. @@ -122,7 +125,7 @@ Console.WriteLine("Breakfast is ready!"); The asynchronously prepared breakfast took roughly 20 minutes, this time savings is because some tasks ran concurrently. -The preceding code works better. You start all the asynchronous tasks at once. You await each task only when you need the results. The preceding code may be similar to code in a web application that makes requests of different microservices, then combines the results into a single page. You'll make all the requests immediately, then `await` all those tasks and compose the web page. +The preceding code works better. You start all the asynchronous tasks at once. You await each task only when you need the results. The preceding code may be similar to code in a web application that makes requests to different microservices, then combines the results into a single page. You'll make all the requests immediately, then `await` all those tasks and compose the web page. ## Composition with tasks @@ -195,7 +198,7 @@ Unhandled exception. System.InvalidOperationException: The toaster is on fire at AsyncBreakfast.Program.
      (String[] args) ``` -Notice that there's quite a few tasks completing between when the toaster catches fire and the exception is observed. When a task that runs asynchronously throws an exception, that Task is ***faulted***. The Task object holds the exception thrown in the property. Faulted tasks throw an exception when they're awaited. +You'll notice quite a few tasks are completed between when the toaster catches fire and the exception is observed. When a task that runs asynchronously throws an exception, that Task is ***faulted***. The Task object holds the exception thrown in the property. Faulted tasks throw an exception when they're awaited. There are two important mechanisms to understand: how an exception is stored in a faulted task, and how an exception is unpackaged and rethrown when code awaits a faulted task. @@ -222,7 +225,7 @@ Console.WriteLine("Toast is ready"); Console.WriteLine("Breakfast is ready!"); ``` -Another option is to use , which returns a `Task` that completes when any of its arguments completes. You can await the returned task, knowing that it has already finished. The following code shows how you could use to await the first task to finish and then process its result. After processing the result from the completed task, you remove that completed task from the list of tasks passed to `WhenAny`. +Another option is to use , which returns a `Task` that completes when any of its arguments complete. You can await the returned task, knowing that it has already finished. The following code shows how you could use to await the first task to finish and then process its result. After processing the result from the completed task, you remove that completed task from the list of tasks passed to `WhenAny`. ```csharp var breakfastTasks = new List { eggsTask, baconTask, toastTask }; From 78093d36e27060cefdc83822fddcdf430b8a3865 Mon Sep 17 00:00:00 2001 From: Sean McCullough <44180881+seanmcc-msft@users.noreply.github.com> Date: Wed, 18 May 2022 11:35:42 -0500 Subject: [PATCH 278/429] Updated .NET Storage SDK logging doc (#29515) Specified that each HTTP request and response is logged. --- docs/azure/sdk/logging.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/azure/sdk/logging.md b/docs/azure/sdk/logging.md index c40309fc1cbb7..b9f9c1ab0df3d 100644 --- a/docs/azure/sdk/logging.md +++ b/docs/azure/sdk/logging.md @@ -20,7 +20,7 @@ The [Azure SDK](https://azure.microsoft.com/downloads/) for .NET client librarie ## Log information -The SDK logs the following information, sanitizing parameter query and header values to remove personal data. +The SDK logs each HTTP request and response, sanitizing parameter query and header values to remove personal data. HTTP request log entry: From f30453317e0a2f1f8fccfb3ebc6f01735d5fbdae Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Wed, 18 May 2022 10:07:27 -0700 Subject: [PATCH 279/429] Add definitions for binary/source compat (#29497) --- docs/core/compatibility/5.0.md | 2 ++ docs/core/compatibility/6.0.md | 2 ++ docs/core/compatibility/7.0.md | 2 ++ docs/core/compatibility/categories.md | 2 +- docs/core/compatibility/includes/binary-source-compat.md | 4 ++++ 5 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 docs/core/compatibility/includes/binary-source-compat.md diff --git a/docs/core/compatibility/5.0.md b/docs/core/compatibility/5.0.md index 515402e5c8b01..6a423d8aef0bd 100644 --- a/docs/core/compatibility/5.0.md +++ b/docs/core/compatibility/5.0.md @@ -7,6 +7,8 @@ ms.date: 12/14/2020 If you're migrating an app to .NET 5, the breaking changes listed here might affect you. Changes are grouped by technology area, such as ASP.NET Core or cryptography. +[!INCLUDE [binary-source-compat](includes/binary-source-compat.md)] + ## ASP.NET Core | Title | Binary compatible | Source compatible | diff --git a/docs/core/compatibility/6.0.md b/docs/core/compatibility/6.0.md index 0b9fa6c19f0fb..a3e6c1b0ef9a5 100644 --- a/docs/core/compatibility/6.0.md +++ b/docs/core/compatibility/6.0.md @@ -8,6 +8,8 @@ no-loc: [Blazor, Razor, Kestrel] If you're migrating an app to .NET 6, the breaking changes listed here might affect you. Changes are grouped by technology area, such as ASP.NET Core or Windows Forms. +[!INCLUDE [binary-source-compat](includes/binary-source-compat.md)] + > [!NOTE] > > This article is a work-in-progress. It's not a complete list of breaking changes in .NET 6. To query breaking changes that are still pending publication, see [Issues of .NET](https://issuesof.net/?q=%20is:open%20-label:Documented%20is:issue%20(label:%22Breaking%20Change%22%20or%20label:breaking-change)%20(repo:dotnet%2Fdocs%20or%20repo:aspnet%2FAnnouncements)%20group:repo%20(label:%22:checkered_flag:%20Release:%20.NET%206%22%20or%20label:6.0.0)%20sort:created-desc). diff --git a/docs/core/compatibility/7.0.md b/docs/core/compatibility/7.0.md index 02d60f1f71882..db9eaba8c3629 100644 --- a/docs/core/compatibility/7.0.md +++ b/docs/core/compatibility/7.0.md @@ -8,6 +8,8 @@ no-loc: [Blazor, Razor, Kestrel] If you're migrating an app to .NET 7, the breaking changes listed here might affect you. Changes are grouped by technology area, such as ASP.NET Core or Windows Forms. +[!INCLUDE [binary-source-compat](includes/binary-source-compat.md)] + > [!NOTE] > > This article is a work in progress. It's not a complete list of breaking changes in .NET 7. To query breaking changes that are still pending publication, see [Issues of .NET](https://issuesof.net/?q=%20is:open%20-label:Documented%20is:issue%20(label:%22Breaking%20Change%22%20or%20label:breaking-change)%20(repo:dotnet%2Fdocs%20or%20repo:aspnet%2FAnnouncements)%20group:repo%20(label:%22:checkered_flag:%20Release:%20.NET%207%22%20or%20label:7.0.0)%20sort:created-desc). diff --git a/docs/core/compatibility/categories.md b/docs/core/compatibility/categories.md index c54652b1771a7..de0ac94e749e1 100644 --- a/docs/core/compatibility/categories.md +++ b/docs/core/compatibility/categories.md @@ -23,7 +23,7 @@ When behavioral changes are externally visible and modify a type's public contra ## Binary compatibility -Binary compatibility refers to the ability of a consumer of an API to use the API on a newer version without recompilation. Such changes as adding methods or adding a new interface implementation to a type do not affect binary compatibility. However, removing or altering an assembly's public signatures so that consumers can no longer access the same interface exposed by the assembly does affect binary compatibility. A change of this kind is termed a *binary incompatible change*. +Binary compatibility refers to the ability of a consumer of an API to use the API on a newer version without recompilation. Changes such as adding methods or adding a new interface implementation to a type do not affect binary compatibility. However, removing or altering an assembly's public signatures so that consumers can no longer access the same interface exposed by the assembly does affect binary compatibility. A change of this kind is termed a *binary incompatible change*. ## Source compatibility diff --git a/docs/core/compatibility/includes/binary-source-compat.md b/docs/core/compatibility/includes/binary-source-compat.md new file mode 100644 index 0000000000000..0f03bf4bbfbec --- /dev/null +++ b/docs/core/compatibility/includes/binary-source-compat.md @@ -0,0 +1,4 @@ +This article categorizes each breaking change as *binary incompatible* or *source incompatible*: + +- **Binary incompatible** - Existing binaries may encounter a breaking change in behavior, such as failure to load or execute, or different run-time behavior. +- **Source incompatible** - Source code may encounter a breaking change in behavior when targeting the new runtime or using the new SDK or component. Behavior changes can include compile errors or different run-time behavior. From 331edf25aedc40c393a8a2b58f3773feb2f8bac3 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Wed, 18 May 2022 12:10:59 -0700 Subject: [PATCH 280/429] acrolinx (#29522) --- docs/orleans/overview.md | 12 ++++++------ ...rm-an-xslt-transformation-by-using-an-assembly.md | 2 +- docs/standard/data/xml/xslt-compiler-xsltc-exe.md | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/orleans/overview.md b/docs/orleans/overview.md index 539a55f345519..6d94dc9337a2f 100644 --- a/docs/orleans/overview.md +++ b/docs/orleans/overview.md @@ -6,7 +6,7 @@ ms.date: 05/10/2022 # Microsoft Orleans -Orleans is a cross-platform framework for building robust, scalable distributed applications. Distributed applications are defined as apps that span more than a single process, often beyond hardware boundaries using peer-to-peer communication. Orleans scales from a single on-premises server to globally distributed, highly-available applications in the cloud. Orleans extends familiar concepts and C# idioms to multi-server environments. Orleans is designed to scale elastically. When a host joins a cluster it can accept new activations. When a host leaves the cluster, either because of scale down or a machine failure, the previous activations on that host will be re-activated on the remaining hosts as needed. An Orleans cluster can be scaled down to a single host. The same properties which enable elastic scalability also enable fault tolerance. The cluster automatically detects and quickly recovers from failures. +Orleans is a cross-platform framework for building robust, scalable distributed applications. Distributed applications are defined as apps that span more than a single process, often beyond hardware boundaries using peer-to-peer communication. Orleans scales from a single on-premises server to globally distributed, highly available applications in the cloud. Orleans extends familiar concepts and C# idioms to multi-server environments. Orleans is designed to scale elastically. When a host joins a cluster, it can accept new activations. When a host leaves the cluster, either because of scale down or a machine failure, the previous activations on that host will be reactivated on the remaining hosts as needed. An Orleans cluster can be scaled down to a single host. The same properties that enable elastic scalability also enable fault tolerance. The cluster automatically detects and quickly recovers from failures. One of the primary design objectives of Orleans is to simplify the complexities of distributed application development by providing a common set of patterns and APIs. Developers familiar with single-server application development can easily transition to building resilient, scalable cloud-native services and other distributed applications using Orleans. For this reason, Orleans has often been referred to as "Distributed .NET" and is the framework of choice when building cloud-native apps. Orleans runs anywhere that .NET is supported. This includes hosting on Linux, Windows, and macOS. Orleans apps can be deployed to Kubernetes, virtual machines, and PaaS services such as [Azure App Service](/azure/app-service/overview) and [Azure Container Apps](/azure/container-apps/overview). @@ -17,7 +17,7 @@ Orleans is based on the "actor model". The actor model originated in the early 1 > [!NOTE] > Actors are purely logical entities that _always_ exist, virtually. An actor cannot be explicitly created nor destroyed, and its virtual existence is unaffected by the failure of a server that executes it. Since actors always exist, they are always addressable. -This is a novel approach to building a new generation of distributed applications for the Cloud era. The Orleans programming model tames the complexity inherent to highly-parallel distributed applications _without_ restricting capabilities or imposing constraints on the developer. +This is a novel approach to building a new generation of distributed applications for the Cloud era. The Orleans programming model tames the complexity inherent to highly parallel distributed applications _without_ restricting capabilities or imposing constraints on the developer. For more information, see [Orleans: Virtual Actors](https://www.microsoft.com/research/project/orleans-virtual-actors) via Microsoft Research. A virtual actor is represented as an Orleans grain. @@ -39,7 +39,7 @@ Grains can have volatile or persistent state data that can be stored in any stor :::image type="content" source="media/grain-lifecycle.svg" lightbox="media/grain-lifecycle.svg" alt-text="The managed lifecycle of an Orleans grain."::: -Instantiation of grains is automatically performed on demand by the Orleans runtime. Grains that are not used for a while are automatically removed from memory to free up resources. This is possible because of their stable identity, which allows invoking grains whether they are already loaded into memory or not. This also allows for transparent recovery from failure because the caller does not need to know on which server a grain is instantiated at any point in time. Grains have a managed lifecycle, with the Orleans runtime responsible for activating/deactivating, and placing/locating grains as needed. This allows the developer to write code as if all grains are always in-memory. +Instantiation of grains is automatically performed on demand by the Orleans runtime. Grains that aren't used for a while are automatically removed from memory to free up resources. This is possible because of their stable identity, which allows invoking grains whether they're already loaded into memory or not. This also allows for transparent recovery from failure because the caller doesn't need to know on which server a grain is instantiated at any point in time. Grains have a managed lifecycle, with the Orleans runtime responsible for activating/deactivating, and placing/locating grains as needed. This allows the developer to write code as if all grains are always in-memory. ## What are Silos? @@ -47,7 +47,7 @@ A silo is another example of an Orleans primitive. A silo hosts one or more grai Typically, a group of silos runs as a cluster for scalability and fault tolerance. When run as a cluster, silos coordinate with each other to distribute work and detect and recover from failures. The runtime enables grains hosted in the cluster to communicate with each other as if they are within a single process. To help visualize the relationship between clusters, silos and grains, consider the following diagram: -:::image type="content" source="media/cluster-silo-grain-relationship.svg" lightbox="media/cluster-silo-grain-relationship.svg" alt-text="A cluster has one or more silo, and a silo has one or more grain."::: +:::image type="content" source="media/cluster-silo-grain-relationship.svg" lightbox="media/cluster-silo-grain-relationship.svg" alt-text="A cluster has one or more silos, and a silo has one or more grains."::: The preceding diagram shows the relationship between clusters, silos, and grains. You can have any number of clusters, each cluster has one or more silos, and each silo has one or more grains. @@ -61,7 +61,7 @@ Orleans is a framework for building cloud-native apps and should be considered w ### Persistence -Orleans provides a simple persistence model which ensures the state is available before processing a request, and that its consistency is maintained. Grains can have multiple named persistent data objects. For example, there might be one called "profile" for a user's profile and one called "inventory" for their inventory. This state can be stored in any storage system. +Orleans provides a simple persistence model that ensures the state is available before processing a request, and that its consistency is maintained. Grains can have multiple named persistent data objects. For example, there might be one called "profile" for a user's profile and one called "inventory" for their inventory. This state can be stored in any storage system. While a grain is running, the state is kept in memory so that read requests can be served without accessing storage. When the grain updates its state, calling ensures that the backing store is updated for durability and consistency. @@ -69,7 +69,7 @@ For more information, see the [Grain persistence](grains/grain-persistence/index ### Timers and reminders -Reminders are a durable scheduling mechanism for grains. They can be used to ensure that some action is completed at a future point even if the grain is not currently activated at that time. Timers are the non-durable counterpart to reminders and can be used for high-frequency events which do not require reliability. +Reminders are a durable scheduling mechanism for grains. They can be used to ensure that some action is completed at a future point even if the grain isn't currently activated at that time. Timers are the non-durable counterpart to reminders and can be used for high-frequency events, which don't require reliability. For more information, see [Timers and reminders](grains/timers-and-reminders.md). diff --git a/docs/standard/data/xml/how-to-perform-an-xslt-transformation-by-using-an-assembly.md b/docs/standard/data/xml/how-to-perform-an-xslt-transformation-by-using-an-assembly.md index 3448aaab6a921..bee1de026379b 100644 --- a/docs/standard/data/xml/how-to-perform-an-xslt-transformation-by-using-an-assembly.md +++ b/docs/standard/data/xml/how-to-perform-an-xslt-transformation-by-using-an-assembly.md @@ -175,7 +175,7 @@ with xslt.Load(System.Reflection.Assembly.Load("Transform").GetType("Transform")); ``` -in the example above. For more information on the Assembly.Load method, see . +For more information on the `Assembly.Load` method, see . ## See also diff --git a/docs/standard/data/xml/xslt-compiler-xsltc-exe.md b/docs/standard/data/xml/xslt-compiler-xsltc-exe.md index 92265fbd1e758..898625314d860 100644 --- a/docs/standard/data/xml/xslt-compiler-xsltc-exe.md +++ b/docs/standard/data/xml/xslt-compiler-xsltc-exe.md @@ -30,7 +30,7 @@ xsltc [options] [/class:] [[/class:] ...] |Option|Description| |------------|-----------------| |`/c[lass]:` `name`|Specifies the name of the class for the following style sheet. The class name can be fully qualified.

      The class name defaults to the name of the style sheet. For example, if the style sheet customers.xsl is compiled, the default class name is customers.| -|`/debug[`+|-`]`|Specifies whether to generate debugging information.

      Specifying `+` or `/debug`, causes the compiler to generate debugging information and put it in a program database (PDB) file. The name of the generated PDB file is `assemblyName`.pdb.

      Specifying `-`, which is in effect if you do not specify `/debug`, causes no debug information to be created. A retail assembly is generated. **Note:** Compiling in debug mode can affect XSLT performance significantly.| +|`/debug[`+|-`]`|Specifies whether to generate debugging information.

      Specifying `+` or `/debug`, causes the compiler to generate debugging information and put it in a program database (PDB) file. The name of the generated PDB file is `assemblyName`.pdb.

      Specifying `-`, which is in effect if you don't specify `/debug`, causes no debug information to be created. A retail assembly is generated. **Note:** Compiling in debug mode can affect XSLT performance significantly.| |`/help`|Displays command syntax and options for the tool.| |`/nologo`|Suppresses the compiler copyright message from displaying.| |`/platform:` `string`|Specifies the platforms that the assembly can be run on. The following describes the valid platform values:

      `x86` compiles your assembly to be run by the 32-bit, x86-compatible common language runtime

      `x64` compiles your assembly to be run by the 64-bit common language runtime on a computer that supports the AMD64 or EM64T instruction set.

      Itanium compiles your assembly to be run by the 64-bit common language runtime on a computer that has an Itanium processor.

      `anycpu` compiles your assembly to run on any platform. This is the default.| @@ -46,7 +46,7 @@ xsltc [options] [/class:] [[/class:] ...] > [!NOTE] > You must also include the compiled assembly as a reference in your application. - The xsltc.exe tool does not validate the class (`/class:`*name*) or assembly (`/out:`*assemblyName*) names. Errors are thrown by the common language runtime if the names are not valid. + The xsltc.exe tool does not validate the class (`/class:`*name*) or assembly (`/out:`*assemblyName*) names. Errors are thrown by the common language runtime if the names aren't valid. ## Examples @@ -62,7 +62,7 @@ xsltc booksort.xsl xsltc booksort.xsl /debug ``` - The following command compiles a style sheet that contains an msxsl:script element and creates two assemblies named calc.dll and calc_Script1.dll. + The following command compiles a style sheet that contains an `msxsl:script` element and creates two assemblies named calc.dll and calc_Script1.dll. ```console xsltc /settings:script+ calc.xsl From b4fa2ae6ab54f701a697fcaee6a8785091994d47 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Wed, 18 May 2022 13:27:05 -0700 Subject: [PATCH 281/429] fix up author suggestions (#29524) --- docfx.json | 1 - docs/azure/azure-tools.md | 3 +-- docs/azure/configure-visual-studio.md | 3 +-- docs/azure/configure-vs-code.md | 3 +-- docs/azure/create-azure-account.md | 3 +-- docs/azure/dotnet-dev-env-checklist.md | 3 +-- docs/azure/install-azure-cli.md | 3 +-- docs/azure/intro.md | 3 +-- docs/azure/key-azure-services.md | 1 - docs/azure/sdk/azure-sdk-for-dotnet.md | 3 +-- 10 files changed, 8 insertions(+), 18 deletions(-) diff --git a/docfx.json b/docfx.json index b2823523f3b30..da038f447bb1f 100644 --- a/docfx.json +++ b/docfx.json @@ -359,7 +359,6 @@ "docs/orleans/**/*.*": "dapine", "docs/core/**/**.md": "dotnetcontent", "docs/core/compatibility/**/**.md": "gewarren", - "docs/core/compatibility/aspnet-core/**/**.md": "kirklarkin", "docs/core/deploying/**/**.md": "adegeo", "docs/core/diagnostics/**/**.md": "tommcdon", "docs/core/extensions/**/**.md": "dapine", diff --git a/docs/azure/azure-tools.md b/docs/azure/azure-tools.md index 45aa900b3fd3d..172096ed55646 100644 --- a/docs/azure/azure-tools.md +++ b/docs/azure/azure-tools.md @@ -4,8 +4,7 @@ description: This article describes additional tools and utilities for working w ms.date: 1/1/2021 ms.topic: conceptual ms.custom: devx-track-dotnet -ms.author: daberry -author: daberry +author: DavidCBerry13 recommendations: false --- diff --git a/docs/azure/configure-visual-studio.md b/docs/azure/configure-visual-studio.md index 8b2780c6fa554..85b7bfcdee24e 100644 --- a/docs/azure/configure-visual-studio.md +++ b/docs/azure/configure-visual-studio.md @@ -4,8 +4,7 @@ description: This article helps you configure Visual Studio for Azure developmen ms.date: 11/30/2020 ms.topic: conceptual ms.custom: devx-track-dotnet -ms.author: daberry -author: daberry +author: DavidCBerry13 recommendations: false --- diff --git a/docs/azure/configure-vs-code.md b/docs/azure/configure-vs-code.md index 4ef08b781c851..97ddd4df0010a 100644 --- a/docs/azure/configure-vs-code.md +++ b/docs/azure/configure-vs-code.md @@ -4,8 +4,7 @@ description: This article helps you configure Visual Studio Code for Azure devel ms.date: 11/30/2020 ms.topic: conceptual ms.custom: devx-track-dotnet -ms.author: daberry -author: daberry +author: DavidCBerry13 recommendations: false --- diff --git a/docs/azure/create-azure-account.md b/docs/azure/create-azure-account.md index b87b6ce1ca2b0..1b40bb2b033ee 100644 --- a/docs/azure/create-azure-account.md +++ b/docs/azure/create-azure-account.md @@ -4,8 +4,7 @@ description: To use Azure, you need an Azure account. This article covers the t ms.date: 11/30/2020 ms.topic: conceptual ms.custom: devx-track-dotnet -ms.author: daberry -author: daberry +author: DavidCBerry13 recommendations: false --- diff --git a/docs/azure/dotnet-dev-env-checklist.md b/docs/azure/dotnet-dev-env-checklist.md index 59697b366772e..c81ace9d65fcb 100644 --- a/docs/azure/dotnet-dev-env-checklist.md +++ b/docs/azure/dotnet-dev-env-checklist.md @@ -4,8 +4,7 @@ description: Provides a quick summary of all the tools you should have installed ms.date: 1/1/2021 ms.topic: conceptual ms.custom: devx-track-dotnet -ms.author: daberry -author: daberry +author: DavidCBerry13 --- # .NET on Azure development environment checklist diff --git a/docs/azure/install-azure-cli.md b/docs/azure/install-azure-cli.md index be49daf3468f2..2c75d31e8539e 100644 --- a/docs/azure/install-azure-cli.md +++ b/docs/azure/install-azure-cli.md @@ -4,8 +4,7 @@ description: Azure developers will need the Azure CLI installed, so this article ms.date: 11/30/2020 ms.topic: conceptual ms.custom: devx-track-dotnet -ms.author: daberry -author: daberry +author: DavidCBerry13 recommendations: false --- diff --git a/docs/azure/intro.md b/docs/azure/intro.md index 13c2e833b5cf5..7fd572410ffe7 100644 --- a/docs/azure/intro.md +++ b/docs/azure/intro.md @@ -4,8 +4,7 @@ description: Learn the basics you need to know about Azure and .NET. ms.date: 05/05/2021 ms.topic: overview ms.custom: devx-track-dotnet -ms.author: daberry -author: daberry +author: DavidCBerry13 --- # Introduction to Azure and .NET diff --git a/docs/azure/key-azure-services.md b/docs/azure/key-azure-services.md index f7a7adaf5a03e..642fc7d5e44b7 100644 --- a/docs/azure/key-azure-services.md +++ b/docs/azure/key-azure-services.md @@ -4,7 +4,6 @@ description: Azure has over 100 services, but this article focuses on the ~8 or ms.date: 06/01/2021 ms.topic: conceptual ms.custom: devx-track-dotnet -ms.author: daberry author: DavidCBerry13 --- diff --git a/docs/azure/sdk/azure-sdk-for-dotnet.md b/docs/azure/sdk/azure-sdk-for-dotnet.md index 1a380af809b68..eea8dcec7ba34 100644 --- a/docs/azure/sdk/azure-sdk-for-dotnet.md +++ b/docs/azure/sdk/azure-sdk-for-dotnet.md @@ -3,8 +3,7 @@ title: Azure SDK for .NET Overview description: Provides an overview of what the Azure SDK for .NET is and the basic steps to use the SDK in a .NET application ms.date: 09/02/2021 ms.custom: devx-track-dotnet -ms.author: daberry -author: daberry +author: DavidCBerry13 --- # Azure SDK for .NET overview From c2831faece965703b63af851592a0e915436665a Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Wed, 18 May 2022 14:00:20 -0700 Subject: [PATCH 282/429] Repo cleanup - May (#29498) --- ...azure-credential-sequence-diagram-800px.png | Bin 23309 -> 0 bytes ...ble-managed-identity-azure-portal-240px.png | Bin 49416 -> 0 bytes .../media/environment-visual-studio-code.png | Bin 13617 -> 0 bytes .../sdk/media/environment-visual-studio.png | Bin 25283 -> 0 bytes .../sdk/media/python-sdk-auth-strategy.png | Bin 17936 -> 0 bytes .../vs-code-azure-tools-install-small.png | Bin 89219 -> 0 bytes .../sdk/media/vs-code-azure-tools-install.png | Bin 146406 -> 0 bytes docs/core/diagnostics/debug-highcpu.md | 2 +- .../compiler-messages/toc.yml | 7 +++---- .../libraryproviderindextype-enumeration.md | 2 +- docs/framework/unmanaged-api/debugging/toc.yml | 5 +++++ docs/orleans/media/managed-lifecycle.png | Bin 19891 -> 0 bytes 12 files changed, 10 insertions(+), 6 deletions(-) delete mode 100644 docs/azure/sdk/media/default-azure-credential-sequence-diagram-800px.png delete mode 100644 docs/azure/sdk/media/enable-managed-identity-azure-portal-240px.png delete mode 100644 docs/azure/sdk/media/environment-visual-studio-code.png delete mode 100644 docs/azure/sdk/media/environment-visual-studio.png delete mode 100644 docs/azure/sdk/media/python-sdk-auth-strategy.png delete mode 100644 docs/azure/sdk/media/vs-code-azure-tools-install-small.png delete mode 100644 docs/azure/sdk/media/vs-code-azure-tools-install.png delete mode 100644 docs/orleans/media/managed-lifecycle.png diff --git a/docs/azure/sdk/media/default-azure-credential-sequence-diagram-800px.png b/docs/azure/sdk/media/default-azure-credential-sequence-diagram-800px.png deleted file mode 100644 index 91682fad0f55d7b477241c673faa7e5b97678d55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23309 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 LOQ`3%*tq`yW*O5| diff --git a/docs/azure/sdk/media/enable-managed-identity-azure-portal-240px.png b/docs/azure/sdk/media/enable-managed-identity-azure-portal-240px.png deleted file mode 100644 index d3c0f187003a4dd4e83c096cd5324978b50ccced..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49416 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 UZ=lt3UH||907*qoM6N<$g8dnsIRF3v diff --git a/docs/azure/sdk/media/environment-visual-studio-code.png b/docs/azure/sdk/media/environment-visual-studio-code.png deleted file mode 100644 index ba550b905a3c547d72724dacbbceadb02fce0ec8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13617 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 diff --git a/docs/azure/sdk/media/environment-visual-studio.png b/docs/azure/sdk/media/environment-visual-studio.png deleted file mode 100644 index 5834e9521e23e33d1a3e9e758443375654cdbe3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25283 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 diff --git a/docs/azure/sdk/media/python-sdk-auth-strategy.png b/docs/azure/sdk/media/python-sdk-auth-strategy.png deleted file mode 100644 index 9e5d3ae47e507f668e1932413f947f22f95ce94a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17936 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 diff --git a/docs/azure/sdk/media/vs-code-azure-tools-install-small.png b/docs/azure/sdk/media/vs-code-azure-tools-install-small.png deleted file mode 100644 index e961f62506cd2aa2b0dbe57a68f6a4021780fc97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89219 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 P=PtcTIIX=`;OLG&> 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 diff --git a/docs/azure/sdk/media/vs-code-azure-tools-install.png b/docs/azure/sdk/media/vs-code-azure-tools-install.png deleted file mode 100644 index f65087472f3cbfb4a6c52b604d19b728a03f2fee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146406 zcmbrlb980R_Ab2Rq+{FZ7#*7(8{M&OqvLdJ+qP}n=-9UHyZb%o{Kh?heB--!+!`Z$ zueH}&wW?;-#PiIV5P4ZK_%AqL0002Igt)LG006ED0Du9YL4m&{UhSm=zd#%m#e@Kr zlX%C#6L1qj89@M`CJOdV4+3}&V=J!a001EL{rv+OvMDwM06q&Ogav>6(mu<85s06E z`J94FJ0k+ErOXZW}3WT2&&?KJ%)`mg@^ZG z|If_=D%k-sB;~;;2A>PMt7V-t@|(d|2YfpSQ=EiX>;Jh6U=^WUhR>)E{xN2Sjp581 zVtlq#!($c*306CE#gex%Uq$am&yI8h+Z9oSR4Se_tW-ftObqfVBO#H(Y!Vq11SR{; z+uh;w{V^yoaA$6yzh63?!|rmUBPAupL&u%z*VUF7p{L_!rzahE#**gvneG+u7ij3G zEk8tht=4|6Zg_~U3nyLAt24ovnA4xHO{O(Q6K2^HT| zv`yX)#;2y(7afU0xlj>lJ-OL@iY(+TWmcjmBG}06H%5onyj;!iP1dYA^YgcSA4&>x zsjx7a$}3p-*jTzCR7~yhI(zx^KBZoaew3w#C*@j_AHS4$(Ie;NPP8VG-O4}6Se;W< zn2T#ymP^}P4X;s^Q=|IbMwEWLJuqKzY698wy_zuZ$pH0n26sXKxJl}I0}7Jud{ljD zp5WUxDmuE;-Y~KPW(ilC2>KQ04(Oxakb_B{r&!HD~_wHEAZ%h zAlx>ake;62)8PBt?bO-@QZ-u|x66eb|9gKb3nynwVIgD_^X586@Fmh)WF*c5P6NHtjp)o z`zSophM{FUr`p9ki)4tJ#7l?3ayl3^k9bQHin?t8b@r=gPP?a?X6LSHGh2HT$#%bS z0RSvN2*gBQ)weA#91I~^N;o5@64B}biF^U(x_Bg_El2Tf599Mb#ibpkoBNn)9BcZ z-{AlD5$P5njKTN+Hz-`1FSRg>FL*k8wc~)GOg_+ep%b}w7fN`;}~6& zW{W+<>oxWOQ^W-_TU>0cYTLT^=ll4`EL|}q-@_#LrL>e3>O3tUHwKEdNLbNea-%tH zH&=CIW8$%@riP};0Vd59J)YkbWtUooSbNBsFjl&1ts#uHfX69?TxPfpCELJl?VCRS z626I<$CfVy>{6PTrS}_V(Fn{+aRsfe8y(3FWPdOn9H10QCcbM$T-4DnzEpf#*h;QC zZ8zX;N|npK4>Hr7pP<>{h}AWIw+{XsW!*qm=0~-S4#*dR`NCdUfX`&OCZ``w%lP%YR( z5VwSE6=-j+X2b~LaoNHzv(x##KQdf4TAa^UeuF{TGQ>G`RzMvN)#~l^hm=!L_qOId zg^!GkfPjG9bY{2nJ?US6-8HCD3g^&+m)Fz`r*XJgYgt>(6prhR)B8Yr< zc6KHvCZ?jI`lXV^=c&H%+J7>+zMg>|{JB$K{D`$=<`^X@B~`;uOAGfo;EO6HT*zqq z_4f95gmFS|IGPx!PpW0M8jyUf)`x^%Pl63UH3pAn^6c75GG)P~lst%^@_|CfW4G2! zYp1ZAuzSD$xusu26^g;n&;N!o(A1fm+dDH;)7qMv;j&V1_Nyv@3l8hsR@-G~A9kg7 zM<@jP!&ai5_XQry-N}5_Wc6Y zuPH3F-Z84)Y(GZaN3<<^isR%97394koEzZPH*P@L6APA?xl0ie6)(^mM!o?XV3}-i zB;W*LuE`>txtn@W)K)Y8Nm0ZZptP4nYDQ9XAu1z5FG8szEmc9J-3GJAQggHZM07kT zSrnJ0-kO|n>rwo@W^vY)5E>qdH5sMB@5iJcvO{XTHTaBhm!ZjLuDr;>$>gS4zVtS@ zP?&xi`TnzioYW#+6~+S}+n*V`BZG3JR5OC*D7szPfyNZM*j&(Bc4`1XhGa z5YuGZlqCW)lJ(CI+x^|;s>$V5-RQtkRxG%kL9GdJ7hb!eNKfwMkMwaYZf8qZSI)5d ztx3X9t9+Rn(7I|0#YtjGDLE^aBU)KmX*^`c_gRxv@^dp_z!4A-SYpbCfns$rR)hA# zcxac$^w*o?+bY$i`AXS3I}a9hI~mUpx*!qCIy8h{UD+;}!mR}^nQf~J_e1ux8rmQp zKye|>%H>6OE}N7wA3fC%yLuzgFSWkZO)1AI@EH1Q%?4VoMZGe=@R#c`VpAqQ?&AeT z=1x{nAmJ`!aN7K^;RDEU;)UG74lrs$^hCjA2*#oOA*z8|nMxdi=G%#YcYWoDtqJzg zwFj+B%0@W8*%3uzo~tY^Rq}@rr(B5iilY~s6(%uGQ;eMcB3GkPgfJqlhvhc>erd7LQTq<;pK^KvkE#pm*9o&QzfB+IV z&jFHqvH*>l5E`qgr#3;ipxCOxQ~&1`YeQk%r=@qG1oVsG3?z$w!ZDra51;PFPz@b6psO-_mk|fm@WSO7d~5j`usd z%c$MT#s+irV+!;>P?FyLVpEbjnG#{j_7GT-TYXc^wR!~V;Y*AbH5Ow12W>_1hIQW-;vBc= z6W3}bv{N#SJVh+A1@l;HCJmSEjKE8!^AJxKFxgnlujH5FzYDE{<*5f}wHRONQ8tSK zL_J(QXBO({d4k`0p`Lk2Fc|c2!=5e<=K5nGNDmg4Tl9$yH&roXuRqs5l13e4Dpf9h z-8af@34?Eg4GymsDu=nXrIP54_`RA4T*WGkh|w&%XOH$q;?9C>*P={F*RVvn8W&WUywH*hhI5o);-QvBsv^T%G6uf+`lw7LpY~vkrRm zo$Btm&q|wbPY0d^Pp{VSOm|c-Bcy4kB<&ep_a(P}1g4((!#J{8eCq^pgtq*vGcz&p z>bN|=Y{P~$OMGE9t93!73?xvI1bm-VCsb5a>Pqknw_bGhj9CZ+f8K1kUk;dQl6P*7 z+kjtKYd70&FKE~dxK@X(j;^oc6OKJJ!ZhFP@9#hH1~K&9nZV4u``_+nGAjEO6cju~ z*VZzn4{|D&4y{Z?8qx`Bp_oZ`U10EC5jAH*C?Q8ekRV!igipX zkrQ;F&&dXbN5|d%%^frw>|d$`gDkKBgNUFYlJ_BPB3(klS|DwSlp@{@>Vx=GsY`zl zOiCn1H20fmF)MBbT9>?iovBcMh`U6eKy9?zUV8yY#b0d^4;V*;i0^I?vA^yQYE!Fp zKV|f^!JX^Zs@c&32lzlpFQ&##F__oT*X~yt+ZNN{x;?>1h`PCzO%-IhCwwY=V+%=H z^c~`6Z!E$>86F?MySqyl?Kx;kKDf86nUc)H%Tu&{_CLUp2XHnGnJpfsW>$Pg95qQF@ z57ap5WpJ``^S8IR{!=UZCr~>=932jB2*@VLPEk17u=54-DNOw)f=$74V8FEvweV4D z6Wa)(V<03Xq_0oHy!xglVKS9D&=j>^7#jM;?oH2qdaq&2g+p1Unf%PJ`+{`3CK@13 zE2A~Mq|Qj)_!v@=m1B7~mSMx+c=!8kK5LucV3lKx@&+w0f2+WT|KVXZDrW7jM)Zz@ zbhv8o?3#s4itPeJk^NZ8`d%#rvB-q40>;^ z*}ciDY`9xEmpOx`ysL#lkG=+(J{Q>zli z9V>#RhYDy@7ql`|#HqzwpN8y2uSvfA{DD7r&BL5*AjsLlW0-fC*F(xE(?kl~RK`7H z!#70$(;;?_j%eN&?73QPsG@5QQ@re(9(BdR$#KUd>D_I%kA>%i8|IPb?o&!lUE{Ow zzEIWvIXkse-YYJyIsiZ`ylS_5{d!&s2;c}?*GT`xa^(U_!!nnX^gBrQQ1-le5F(-1 z*%G4ya)|2EJQ*FDNHR6|RC`*|AMX1LLLp-eY}vEhaknZ=lDX!z04#B22^pE6@WS=6 zBXJa)u7??GNWU&x4jsAh*;jCA3uW?HfFb_G7j`F<3t)^4gGz4ueX!H>)%kK`BI2Qc zZtk`qNqZ+SmjB~vcY=L$Pn0H^%_{Y{n+NWqVN3>>}==zgNC&u z#E;Fr@G8nRd9c5X&_qy>#rQx}D;Uq-QU(JufQy(8Qv|C+(A{zg)hj|}O}2=eRoQ_7 z0PsQgq5Ox8%8r|+{vTcmFglGeoakPeZ?gzeMX_@Sz7-v&A(S|b zmkH0LJT1gUEH3Z-d>o?@xV>liVmdg^Z~Mq|><(g&hY>cgq;-B5zY^1AP`QmpQ|ehr z&v7`6M!W0l;jBwQbD@E2NHaGfqVVI)kbg0DZCx#3jabm-r}9ZKn|UL>c?M;x#c^v1 zF^{M7VsCn|6RPBf|`%-4vvSq=iR`;)K!#Mwfb}BkPpWj+b zlklw)AnL4jrka&6CFbPme zE2S5aM9v$heJi)x)=2Q}@53S^Zgx5&0Tu}XVHmOSE}dO!9c6}lXKH@c-qYpFs)ywt z2X_Z#wT~5j`_0~wsM61rk-hQh9T;rxY@D)!Yjwf})#Cagr5Onvrk4bZK_l9A5}_=J)eC=ZgQ}KAf4MP- zUB=L#xtTCmKCD}lAVZpGW&!JrPbj48VJrbGXsNo^#t!64r#5lR$30u`tkAY48&!=* z+3)Zn7v(r;Yw*pG4!Mc=PX|BG1tof>wLj!$atoUyRLL!?usIICA+OEEg~+bOJ`B+7 zt;V8Fyc@fcGNIAr5JjdSyqyVL-t6qI9pSZKpZ9I-?_X^6HLnx!xI{E4B%zIUG_|+FSlJasiFcM~9*cuG( zjAC$Bw?JNDC2DA5YFVx1WqcwMpPJ8c|CK3|1%9*(J)WB>FtLW7m}Udm!zS{a5Ii>dE{ z@gW8xTA66XV!p9i7Dt8C|_GlPjit!R#cLx*A zOdN*6Mw11m8RKnOL3)WF& zgJ~FM1PL}FQuj~{+)$ADiWQLUkO=kT+-FwXdxR*KHAi@)YF8;hNcV720@Y7^dT*cBCN)Y_xP5o{iEBrA zCMq_PKVI*!-#H^44c&JyX8L}oa%UMa$^y<<(p*EPWy1)5DWKpid0!99cesQpv zlelV7l%0})lej=Qjxa%`H*4HaAunOCqrTi}Ca2Itig`L? z_ljT^WUV_(u26TE%Qid8cQtuopuPy)Vm0h#&=Gdj{i=s>SZCgCS%xde5YbksiQ89I zb-559v<_K2U=UcO?vGIy?OUbIbBjkZinVidn9U8aNeI_@)K=2(g{H14q|TRmG4~jJ z*H%rh{_T8hQ!HZNx$LwQHmKJO8iU2+Jk5HNohw{inC(nrk5-N7j#RUZxkqltILD@Q`)$iLA1f+REF$zb8#?^g4g)23RlYUM|8qjoNMaSbS3 zYs_sKWHDb~&6z|CJ8h9EPp#ObZ5&?g_&_6nfa7~>;B^j34oVI=3J}H#=lf3_hQ(k} z=eA$d&1jU9KZUn1)c@j(jR>yt*zR@i*V`VP%>{PE6^}(GG!R986O*YuZ-%4$Hw5#k z3{S|V46p30D2pco+ieB)GoB)FwZcrYKPwmU=I>>=_{-e7?dpi_%r+oL}A2{bJIKILP zy?-Vv>xezB2)0)~@|$iTd984^YW=?z4VRlURdgTUe!b9MpmSfC7_KTgpptfSl0uu= z4jcIBL2b$D?I-%&2@7h`!*=L9)D9Cu8KGZR8iq^A6%F^$2*`#s*TI7j>DfGc=X zGFJ~byjVE1W0!wmh9SgYw!a!?q$1h$`+7ae@!Ole_Rs2KlsW>2#3}034nJtlZE7@X zv2qM#9U;^3^!UgxWXT%Hf;m>Etmwa4+ok5IY#Ju!HYaZeD;D~vIT6&rr24 zP8`{SD_u){Zs21?>iU|E66ewoPF#PbrhF1nSH2`Mzq5`Jv$!oyg!t&fjg-o!*CL;!#A-YR;pMv+jhCs zJ;5*%c9hg4Qx@a6o3Zy>!g?6z^nsy!f+TPyAw-?P5DJq)0zI^T(7%+V7mGb+JlZfR zRB6UMttg5p5B|BC3-+qvU^dIs(r)FtejtiBO&jx-Qio9Ejk*VNQhL19wTk}v(oHWGru$r3$Akpjo}6cD2O7Tvkd%%1NHyRI=Fu3!{) z(sK{O!S?Kkxmd+JK#SNZIy~K`m3TCS5xVGMCt#uRw7Pcv9mY`xQsLo>k_W;J(&ao_ zOXxCtcdbl@P@J7NXlELlA6_phWHS}5Ri5}z_j-T#<EMLYxgX0hHC{4E&(t~=){NdiW?aj|mfRexL=~ZcG6bwq zmV3y?94m#;@)U^+%HQqTR*mMaV~aKC!E9|;2w;+V?LXuUNl=PP*F(QtEo7(ezVgYu zlhjq?wLlH5JuU{VoNQMBVaVClFMd1K?HB*Y^F*>K7_JVlo-}qQ)ju0kR3tP6!ct{C z2cL)gI~>>7rG^x^L_>9YjJ__zk;wRR#Cr5d3*?SiI4BM^($Wn`ym^#DOA-&EQGzJ4 z9(Y|}67-^(!U?5?Cry=ngnSE5zg1Fo&})l5hd|e>)0TXIlk9>SiVY*k+ttn)Fmo&J z101^hG=PN+ZX{Z}oFYV_fb9EWC+GzNI&=}Nq8yhurA3W-u5uCo0%$h6L;n;~ zutOq=_$2%b;I5=uvlsoN?0-d@&G~QG`}bH3>@R@%r}+@bgdL*6M`hqi6CSD$;Tzl9 zIyHzTK(sMO+KHidr;`AVh=HHolDe{g0qgWeJ%^$rEooUX%5oc90I$&37Byw+zY6eA z^Fb&ah#_%GZCgmELZSloApjK)1pi+{JHng4xg2K(u`59$_^ zXvs?80A6t5rz*@i)n9k9f(x`zLO_>0<5js4+Nkae*b2lhR2BD?-+nh zfC7Z%|FSgYzYzETH$~1E!*ICP*Y=Kj~~=uE+jHCa;*@L!*=U$ z!H1}luEO5-c1&z+uNC0vMf&fJs`VBH8P8W!u{c_Q#WX8XB6gRlxLpNoC~$)h!FlpIfwl2GI>) zkR}#-FrI=+KoE)A(9l5Wd50`JoX0iJ>3pV|zEN+6`hkmz%4|HIOsCQ49}ut(WPDVr zwDG^`0$^Xs$jI(a7ZDFfCMJwhBAP!xUP(zv_<)5hK=xiwX?$w3*D#i+-0@w-OX#e3|9O2g0(6m||kKZ3RP3&-KMUvy}E;}CedkkDxDOTg4|&GUYe&a5Uh<`FQ9n1I5} zsM?}O_4V-|c>+JCHym&04==htKboj^hoTPYxkM4lVt^Ge{;SHmCMN7wD=f-Ce*J0& z)(LIu1-`tzj3qJDu_TIeWlYY^p%&Gk7)ZkSF>mRwudkQRQC7xW9oPy=l|D) zY9#n9;Z}j%Z8BQdz4UN~2*UP%!R>|Zlp>+)n!2Gw7nTM#m`|Iqi zVtOK!uPtPUwvM*;r1U>I)@M~5-j}1iwZBzlf17~&Y=(#eFwx#WENyB^=>W_Cbf{En zj*O2Rk{_JRmjRRas%5%^5x6EMCPOaJ>0C}}0^61P4J{ZH{2Aki#MJf=fO^_OaO zRvB*-W9w*am}|>WXlb(*-Cwh24FH<8>@+`HkT$C0t;`!8tiOxpU)n z0ZynMq5@MyyDu-#w<8&E_NVf~jK3cZrg(x#i<;OMCl)L8zwQ7R05rwcly!>EvM@bW z^UGA%Gzd&OG}R3aPEJnyqKDbFwY8m{nZQ~ZKt*9f?l28C+X|w$oc_53Fu^5E@1^+` z7!-uskWVx6PCsU@1rF@36$D7j8Qad)$}mKdN7;WDcQHRa%a5`!Z4F~Gb~P8uXJ)6J z7PTLMv!V^HCh2Vr#?1gL53Z))fdsB|nVAgI8XsjUB?+zDEOR6!I&xv@k*czrvclKe z$1hQlH#^#YB^Zs$ZpEP_jP=?R<88NNmVIk$5Hwyg3sVLT5J)OSk0I$gYNlj(9nCEd zC;bW}b(Cf8wzZ3EiFkLDS!YOs(Le;)vvI{jaah^hru6P7-*K%nSe%_Z-rjk{#JGa) zn6cn^#5D4({+J;#tW7U1$t&BxA4MhTSTX-dWHiB~xJdZ(+-DS%aI3?hUAqm+-b&=1 z+TihEi)gKz?kVJPwEt6w)4d?ImC|U4t!n88mwhFjEfUSuEwr@(wI?$a0jQ4T^_pk_ z1F{GX^XNte8nMFQuhmN&r}ij7TMZmrTWBt%`_#%u9L~9B4VPdbB(1{mCS-=n-NeV- z#k?sCk4{=PlG`V=?~?plfFHHJ zjHBgk*SYav92xcda{_0Xml1X=AFmkN`put}=WWL;1DT7L0UN?x*`I}7^~aSTEcZj~ z4%!=nN+(z8C(D0*)pTIJDw@cE?1KZ{$a==lVSJ40sL-(6x+Z#Npz}N;29EB>A+O>g zu8e_j1mp`Q>kc@E$h|6>nf&|oXVZA&0F9$sMF1IGG1u*_#U=05M5TClJFCSdLVw7K z!Rf9}y|>ZO*|sox%EMlodWR1T0%MW{NU6Ip1?Nj$vr$!l6hi;Oa>g7ApD`!T;JEr* zQjPbQd}P}4wbH8ecVegcK)(s><|Tj1ouaGjdXvL!if7lup|m+~B@LV2l`~`EnCopW zt>c8V^)hA81^@a+AvC>browbH;@rqJ#MGbM9EV# zi5(t(5FTDhlN8F80GWbt^QqTEkfXozXY|m)8b{DNz8LC)qTAP~BK2XJDYB`e&|qD$ zPp$}W2w@^Tj@b)1GuVt@Nt=vnT2K_{A*f^GqDjP>znKCN8Mfc1D}BjML2PZ@-~atbFGpeq@t&N_|6x!9XYjruTO2J@rmX{BoTe&q zAr$r%0!JazR}8i$lLn?cWqLTZ)Re%=;uXcFg_HvWi!n%o#If;gI?{?-@eB&D3Yw*E zI}aEe{mh1zd?;U|6`1#Dl2c(_yGA%qnT>dqpj+#7y4rFQ>~gz%{LZDK3ObqGaftO` z?Nd2VFOW)uCks0`J_qQauBg11->rMwGm47+Z9nD=MefxB3zRW$H+74XnQ?aqkiBg* ziTxCX8AeE>dKIg`yvg9t`uhS64jxe96VRfeP+MMD-@$XUzwzIIFM`sL z69WC1qwF1l-j6^eM&T~b<3XnwNHe>Y!R#8ksmYw>`DiL^5*tdUsA$1EO6e4g9fD90 z&JDD@yXQ(bNSYhs(&sI$w7gvkxT{Qu)bbQs6y1<2(COMLQcYjV)mL!3j;bZW6 zD9bj@_&||R@#qF6`>EhIG307_6XB^lY?^9Hl}l32_i%|0g*Ny5rm_7QOs9kKTR0-A zrLi;XsG~IZa!^FpBSpYgx!FUXJt96&-w)&&;i6!0E+y?yvQp2;AsIg0}irbMDjETg_=Y&|g%pgx@mbmXiapXF*!k`8nWE}ZkH*4>k zyk8#~H~J7m!d0T&{U_W41MI4em#cT`j319=X7=%yNOa7In4%F2Z}HxDWWQQYfcvNO zrm`asC4WQYL%Hx^!{;pC5_*8(qn@OQh7Yj-&b3qaQzp1~y<=w=KW%|FiPy=a4*0bViHP(R}H+#bDxlaT6pR^@vl6o;M6*VZXm49v ztaUZD=mfiQHwkbldoTgSoHE*xhyscEXii8dc5CKfW4%+mx`r0qB_&Pxd#+sD#cFh_K0NK0gdIoT>P%_Y<|MRAIZ0R-xmxfQTEv`2T4jFhSRcfHtF&gWGZ^PD z8m7{H(=p~Js$j0%h!_0_>m5A+!M7nHnhd&vg!PL{iwK$i-aaMv8hjo^uqA|TvkitJu)%uHUos2M3$l%Vi z3^SJd(&rn5d%d%k6}Xmw2bqd+!O#)4x#-nAM)cto)y=l9EFvvtAxg%(o1Y}R_EgaX z5jVFHAs-Qwk13?Z2n~8*9)z4l*0VY*=I9e#R*&Bw?O!VahU{qQiD~ zBD&OpbXEtS29_-Q!*2x^Ah?+JGgHeS-e92S`cjq&j27Yabnzk(?zeyEwT^~~K!_Mp z1s>QN-Y92+0GA*zd!r3M^O%Py7M>y82?sr8>isZW!Ly)~39g zdi`J}XJB9eEO-6;|0n7)Qo_iDY!oWOR!|rsk^EMFgYfnE6^%nj7zM*`SfzoyW?NH+ zaWKfSEb?^1`N+6}K~6C_f(qlEhKX7daPtq*qW#gq*;3q3iCG5GJa4 z^1U8zRvw*ue6VmaP0JS56-CiD$f6M!K`C2Dn$S$g6oI}2i))wp_q6N~u+g#cu-JH{ zA00emZveN+$Rd=w%93BQ@CRfSLAAS=e>}d%Oa~huQ zjqC>1Q7~q#aB?3T1ZXo2&d<*;EF|J)_yKY6s3evRB0wNbZ};+YDsDlK5RKP58w#5( z=~_ww%%zc7L=SN(!{&k+6===$|3Gb=eVkIP9rd#`gCBJa=tLTl9{H<;{tiP0dx&Wf zz5kh@JyVOG_Vuel21YOR^HXLa!i;IdebSe^0E!kMlGfn(bbdgZxmCM-+eDtXw%QNr z%qxT^?;RPeNLtUNt?K`Lv@IrGHQ6*VJp(uBt^bt$L??c)n(wh|f|yNzu=XO($;l!1 zvVJI7ewB3(e2IxWVKDMcbd5X{EA~FCUoEbqjUu4??#)z2rfX^FZGx)_F~s-&om6zU zE<6G+eC*b-v5JMWnR5aI`Q4`Tsz*WMm6f^8 zR{7YihJs|6!CxD?C0?G;-cH!i>tj+w=Dl}$Y3XQdt2<&+(8-Cl68&GBi#cywTfs8m zJh!~O7b83Z=-Q4H|G2{))CHn_lMp6Hi@9%p4)k{(dqe9dB4fW%2m(H^lpbSR=B?5J{dLbdpIV4^I&(l`xhzi zG~MDrH4LDp0;Vm?Bhg~?9LU7~RQ^q(XWzvBH<-Tel zGvS8hHr126l`|_YgKswS`2zulDTH?1%HdtnZXJC)B-PhCW{ZH_?ug)nq+2>bObb>5 zD|)xM@)1qtZ&ycfs#KwpUnHq%r0nZfyc&QV`b3YQTv4R#A>5+?}CX)@KU$nXGe7ho5`4Sk1_kw%6B z(a-=lrq0ZF*HSV0%N4@qx@BQs>ezf_QF$>{gc_}W3UN|kae3(J%w}IV)xv77D1#~lIB2Kt7z0Uo_ zY@%Q0Dsh!Vx6nWlg$u`K{EfSg4>o(m3#o9Oha>>{hpLn`R#$Edk_i52?kXq`5|`5jlPn?u zQwHa1#JD?w+u(7gN&3QJl3p3LHZTP1{iY5E>@pTu?Lm_8~TqU+z+Ra+620JF? zgopj2mPZ!OTwOsjf$ZGURuL>FBb1(7qp7S`@`OPknThip3hzOsmvhGpd`v>&WbUF) z#dCGX=IXg@hm^PBP*x%7C_yTdFV`_WTNbnh32nr%3XO)}#gUD4m-siOJIV$mJ1HuV zfDt34Iia-)#Xm%(N1_`N9e>3JP?eHH7ICx<5w*C~Jv}kkt8;LwbF$0v(_8UNrUJu5 zF70?T+NQF+hutAPDx`0x#N7yNIs;$G+s9vnCuE|K{o=QbGE8hqgtsciZV|K>V_jxT z|7^;orf||>s0N88zc?w(8-IVC%c^9s1EuWM&UU}MIYWq@6~(QH%j~cnsK#D0d9HTn z7Hxwrm*>Bcw1^7de)s6pa;H3-#%KO*oeHcguh(vJ7|ogn3#E>n(TisF1Dkggf;cI= zmw7aq&jmn2(jG<{o?(y%sQED;vjubzsss@W*)=6?>Td6f$Ri|kba*rk zNRQKKlQyETcE!u57+8Y;GM&Y<#sYA&7^yOkXkSb5qiHYdSkvsx9=4#o%>+}9X~X>jqR8Eg*j#fk5b;u!uuC^yX~)o5z2xwGmxOR| zReV#s--!Je8S4-{9QB0fCD{bIL0`~zQXRc*-k83?%FD)g!``40qGcD*8gSx%J+l=0 zS#wr(y4o6=G0wt2bi%8__Q7ubXaOlVoUUO*0zQxxZ_9I&EM>xv+P(v@Ex^thCKeKzuqm*gDlYINai~ty$?(@;9IB8XS&# z@jnmYo$`I;emp7IB;!yB{d2Z6B0)}Lm7JF`$)TH-`WDS1ATAt*x@n})H&Di1DC zzEyI+6LTfl{Kb@MWe%s)+k->>MNNex0AbI;4quS&$4}Sz&d$eO2qw_cx+b2ByA6jH z7KbBq`&I;1-YT)%ccax+OtCVAI9%k@-7?bBpN2E1F0aNFsY7%K*bMBb9p0E3o7|jgd4r;)Mn^JvEu%vwSGsBS+C**@zNPI~=2-N+E{?JDtB7%;;Qzm*LBd$+u z`kL74&#rbdWk}mKUsVAr;$Uee*EvLI_Fkr^J3S5`&rz4T7VOp^ z=|*|cN1I!1!+dt440>3jh`7J~`Obp4+NTRy7x3GG$xJv=XL==Z zpMdl=z?Y*o*EMt$r=?NP8paqUs`@)?7sxVv__W)LJ;mQG1CW_{7eRK-%vt#TpkOIp zJv^AhK^pde3$0HGYV)UuH`3GNe0|Lo*$N~H8z`JVu!OXSr?`HvRYF^)Xc~h=+{AU! zk?Fa-TDQd6T0@bFo+Wp}1v6%{<&^4KE8`64 zf{-Y#MDDJh^g4k*&sO5by6DyJgf3qbMXEYtLm*L>9ae2O9aPxfce6SO8NdAbRx`Ts zqao!qo!V>p3Khj5^`6 z8on;LuBi#JVlK{mYcROR4)6j}GlJ_fUw7$wWQjWTqa*D%{sj>>wx_h9@NA3xASQob zO3j7fP0?`*X38}*=jyjRB!sE%86vAHN>x7~!4CkG7rcg%;NrRnC;rywUtTe_v@H8< z&ZnvRHmzq*ChD&jLvn_kE85Jx>v?L`9^B{?kwHV#F)Tga9_PU~<*dVg5W{>a)f&lm zu*M+GSMuAvp4NH}&i3%9_Ew3_)2P91W;Eu&>%u{`{toK2a=cgSTTk5Q$NoC&m`t}INgzG> zq&-}y`LKd7$gv^&ik`bQtW~&o24K%K1vLb$M{w|5RWmVOE(Qrg zQL!J;lyEIn`Fldp2JwX7c}8g=zuWC}L@XZpZe^qjq&4$yu(#|Q|H=4h-mAlGZlkbU z)N=6zX0z7-<8v>8sZ0keVZ*zLehVKYYs)u}-n!TCN4E`GR9&$kK!{NOj_0hvf+JSJ zajcfdy0jEcL5)+7UUVaoFV0s4?Lr}bCjJfg8d*K*gSedta8!duLn3W~u23X$$p%>F z9Q}ddH|Vh^p)W!8w%@~cG9Al$bR{Y_8-wh)M^(v&-jzY7LnD+PWT=cs)h(k3H719+ zeFX>FpU(--FeOJT^S_un$LPqKH`))9Of*S4wr!go+t$Rkok=pWZQHgpv2EM7ZqNI_ z>#o}$vhwMy?o-dHQ?;MHe^n*Z0kIw?BMJSU*|#cyR~k(J;BTxTo3k0q!#Zd1w>%yc z7A_pyNrYXFWEfR+DWt^{T*m?DAS=w19kq+fth;$XkAK{BHP)|7lqq0I(ui*)5-do$ z)@c|(qs<~Rig^>EF>n@bn|+$Z=s}g;OZzKjUH&eMA@q26qE z$V}X&%fKUjdXkt9L%q&r{|$rbplVH%_oxaggh9qrH*PEy^>{2UnPD_2sbK50JKykC zDh39X(x5Q;IfZ_#uZ1%WkKIb67xf?`A+|f!Xr;cMDh5iwY)i%ssD?YaQR4#5aRl)o zQv7&N0k<{{mO<0CDE%83(hY25uOG*JOd@3`E~D4_dy9=CLL1E6f~7b<8=4{DOY+P* zkua-Fvp zt?+M%?yl&ooF$7^g~uZO97`^!+keEw*~+OZo$&w*XDtgg{eF3PF3F4O#~aJu%qQE7 z^X1FX(S}2)rDX*pH5iTG9+pw|iIhX$T{;iBFl53)Ua#_X8dm8iz zA&t!3^cK3Fp?ydE%kicru^a$)k)NUvV9nMT@MUnBxjpM*yb}=vqt|j}7p<3MewlJm zTt;2}?brUaY9;&YQ+0jyCTA*#@&E-XgOR{g|G9-iC%YaR@`+ZuPfg$@ket(QHx|-F z$!mM+0ma5UtRR*{Y@X*~6jSEwYS~p;GkK}^zBa<`9*t~9)IyUQ5=&hUEZsl?FQ?oj zO?X6Sk`{YBHosm3gia}BYd4wJFwe zjvdq~9Fe_>B_CEHY@nzQI-hZ&gQ!wCy)!vUTGdfVIuTDK0R93ob|QyG(}D=LT39T#dSt zj2?lcKI|~e-x{8(=b%b`FuAYtJK~v1QyG~>Sf{LKiJ_$(@ZN|v+ z^6BaM8Bs^}UcQp_y4y%48745Y*TR zZ~@B62-q@Sdd5H|go8PcKmsfeYXps)NHJ97Ut}>Njy#;TYry^x?vGcPb?IN5tc1O6 zQAb9gIu_$%=(X+|y?jKWx?4`6TK1Tf0A~R(Z1|U@cT1-K$#g zYBvXKE&wB6Y&qF9L`Ny7LVB8hEkk5Na8fvR1l`y`A&t*kIuVn)nla~)jMB_4YE^ys zSK7+d!>kK6$8Xab1A-t|DcscHrV(x=F_O_Z*4Ci1c2cLS*)pX4YwmFtU$2X_a9x!# zh(@ZapSlTWGT<;ewRnrx;tQR^G~fhYerX4Y55wf;z&Bir;B>ZrD>~@%a5&RPO59}Y z&G3-2#k14xwd(0FVv?~9!Y(H+xVAPFK^C7y|E3~DgC;~+51t?`3AFc1YvW9Y2nbhk z8!Tjw7z~(5%wpA4*Yo~cULa{AyoWYZlYL@E(J4Eew!qDHat`w)BgvX7G&%$8BG?v+ z*hz(+ouFKxXi;@9D_`(nN#q4t2}aLMNIKOS&a_VqaDmsQPGp^^Bs8X))tQpf9TBVarVg$#KKBPrS(8gI#SslTv>*=*w!+tJ6;WX6D~g=f zM;bJgd81J)Q-nsFd(EdvCw;)>PjHnoqK}L`5_pQ(&|WjdJX${QUZE!Pxu_X^jH7{^ zwqepG>aKW!Az6^NLTeixVN>*BG`K)D*S{Dl?*QG1&4q<%=6!_yo3@sul84*)**;Ep zIDw;@G`aVHEJ8iASJWxwU4qe&&c2g=Aqy%gaE&UU7_x zDoOSZpNpH6R`*#dT+vZqV#e#Dh>cd)BmRKRZeC%aB*^=ndL)mh1&}SQxQZ4-XM8u( zit(o%;s23yxREt!^{zVT zqc)8wtC`E&EX3t1=hxQIail_JG zQMh~P=3yliilo)Vz~7XY(#fKAiPK+vae-{wv8xnQ13B>GSG3WF|84yp~;!p6WK6pfx3Ib>tl(DVQ^f<4*t8 zK71=sSRw{V{UD994k(68T|=m-#(9+Fp)$@y8*~oc^)~(o;PNL{7ZIhvu3AiO{AH(^ z?d>m|zWV_u&u^*I>g_(Z-Q)E0+Pt>6tkL{e_OoIo=1?Q{eyV|ZD4vELayOnX5vHPn zW;wRjboa^9y!LPHq`;IN6urNFbVd5&O!){Vh2A7jb4=4^B8!qIyQv~862N9dt>C3t z^Px)NW`3jF8HoJXf=15!agb6G$B2|T4_h*J2a9k)`c-uo+;RH`Qk9`j4blQ*$MAko z)hmgvagPo79$tDbJ5g!MTmrt=X3N<+bN6$W)UlMLr3~U--PN)T@*RR6NFcC>;3cHH z4D;t>M4z4+pYS*45#jpJ;?9ZeE?n++g2P|9J}MM5OMRVz?8Iir2&s%CQF8D7Oa)aR zDWqHkzgg`(+HDA92Zp8MvU+ zSQQUc_;jGFpWFgdy;8T_oJQtTGHIbc?G;{&I_mcEuC8XIAd+z29vk0%s)bRoUu0eP z=nS}_dEHL=x)g(8Ss`cqRsz6VzVc^Sqf;>AV;No&XgWr|^N;#e^+PqnnA!RWS5=j_ zd!LtD$^f8#PKyD~XSUF8h5-I`x_nqBs@{HyF$m1fC&1KJ!d?Z@VEl?Mdi{^upQfUF zJZ+3+Vw0L2(bP=mF3dZuoMV>eHi+g|1!h`LExm4(`}EibxzlBLO`mf!Q}ZHS?_|`P zJX^gAt*RT6BBV~;?+31b^L;gU-k%PTjF<;lc3B%>DK4j7`3mv05>Znu(Mm>dpT(g<~2mIKR;!=Jcrn5xDsL4X!rz3-J|I+TH1Te8tsm(YoS<2>5LF=kfNe@ zNPiQ9H&tx%r*(dRij*0A4!jfZ5317Qn-)Zo*94`E5BxBgP#vQQd$F~quS1LXn~$;W z-^s+G!ScKa#t)yh1k1^qP#hcI-h;B4KAVigvV-ZJe9ks&4?ZWBe#$?q*@(+gGn<4L z7_oiW?6(N&O25}@Wov?O`GarLEl1 zmntn#B>--hEy~=baSE=XoeF;s)~`o7oV9Nnfw!4Y!inlov_-n?cugYlR+Z>1JAWYA z;0g?la(yY@0(E4JZW7jvL^pr47kG;>omU06gTG9pzMe=^4+l73OdRq2AiBo#_u-o& z4#J29EjP*DsDvXGaB4(RwvnGlQIAPAg*T1|+?UxgNVVC|B!fJkAz59-s^8WG6&c}W zp-Bg)#PQUKZ9DZoX$s7;gMA-zau*%?L`q>n@Wx zvLuNs8fdApEy6ZqN!JUE#eYTV;&wSB*Ee%~hFxDZo`qF*vB} z-PGdgo$i}`M#FvNBifnEM&JJ174v!Y5Jc5P9A($EJ3AdGW zj1Q*m1)HnzJUP_YCl<*G=eR3P1>;~v)lTV-sZLwxmI9*D{1Wnyf0EoN@c)}{tG-$P zE|uV=&`h_!V{p&;QQnY!$&^ls&fyoEQ}t~u+Vb0QA9EDoNm4{|9*_tG;>MC%OtGjW zoZi5}-2B1gSJ<-Ta(^9+l-eOE@gTjodm%aU*;DCmDbF1*{W_QGNPFM@p+f+dD+X-tJIB=r3r)$r*XCbTlxF9^37KbxH*&Ey6XNI;E7!+QLD22y!Bd zFI40|g~&o+Ao`fG@v~gu+6c&cP+kVr+@?I#M`yvGTd}OXY6vRamm>V59V?X7V^>g`9;GV4PmT zbgRF3pZa3{yi!wEK4y+~a1*)<0v)AFxTXF^55gMwaa*+9DT}^`8?S68|9lM0-HgJx zG^ey){%KloH{}+9DK@9})GCMX{d?#U)VzT@lMM8k46e4k$!RxCKnqH}bqeZt1N1h9 zXB!4wVp}7E`hLLBG_Y9YHN-J0R73v8P6Af%3fKDokh6{!sU)FqTGekQ)SN2)=dna2 zYMRX}uXb%nzpCvPRyYYz(Ry(Jh?t;142FMug)sdiE3fI~+#Wz{itlOae}RI`=EOpw zrdvZ3)AJPFK(HclF)4iG&J{`%Ls*ooF#VsPMxj?;pO+cfuZ`hR;_=ox<54?g(#pS{ zEQ%GEqo(@UH~@oj?XYl4gc=D3UE$YQJ#R$fDZO)cP5>dD;NcBpk)}o^jb6$ereaXk zFF_uc3due+LU> zfFn=pLPhPAzi%K&Lwq+)Bqt;~i1w%Q%4Y0`;n>mv|BwyrP@TFeJ_6Z&is`$s=(mSR zqFsco*7MUvQzzq zDR?$6&xHMkxYQ{D+BXB64HwGS#RNn4`C=O?c`~d36+)zrQYGWdE%(?z3`-bk8sIYT z;V0*^08+SZD~V&;es|m*+Jq({7r{f8^iJrRKQjX-!In>HiKJJbFXpSMqk$)k>m`Eh zNl!+C3WTxZig#_nZc9{?vOL&CRnhTU5QcbA{|iXYnQg?b2~5ZJbwq>WhGN!w1r};b zO36tbm3w0DDuBr?6cns;GR*>M)!0{Ul^h^5i-1Mq9;@k@T$WhG0&0<6QlJZ%EzO$e zsrE7SdLi=ykv2_f89F`n)O;B2D=;#<1LpdVlX`ScO=suTXcT6t=GEDc><%@d#F~$l zPma6!qUk^I4dp+ggfX>|v>LOW7mZ6-H1;yWC#s2E@+u6DhYp!FupUZOb8V;1g3%K^ z*UZ{QtFK*tq-6$wva)WCZ{N^OBn@e_bXd1-(tMC4h7q9<;!fx?5K}O5tQo}1K9q9j z-`$I1(snzX{j;ugCm+z%%efLai3Od#_vY=A4hkCx2T+DZ28TjQ=91?IQ^G{%Uv9kP zjGv(3^0e<3VlQ(NVrf1&P-pE(%{D5lvN#!|QqG$KP~}-4NYH5GHonjE34NXPvXBRQ&3gvUEHihG(vBpMp>Y-2G6xJCU{|vcW~C1KyGfG{=YKW}4WU~? zVPtLbn8@;^sy0ehA#^?ukF$Ak8JvuOIf13zK)_EjQ58>?>W9UR`y^=;z(8e9qwM%{ zPygnI%GLHzuTmRCt8Z;0SQsoT+Fc#6jiYs)dwIC_Cr4j@NvZzdsU&I^GCo z>@)yBD^{Bh?R(G-A;|Mqd-MuRR2PzL3aE!!CFu_MInRnXz)>M5>bWkNUQfp}{3z!r z%7p2}S!kG?OF$Wziv1_)0wMNInVw`QDJc{ik*U}Izu@053C&Q#c$ad>QNpUL=4Lgi zwdP-{0TMDefJ5vCq{d=`-iz2gdjPkE?M%{!{e?l>04F1oxP_|f;#787Q4C?}AKS;@ z62zs^rZ#@5);Vm~yCAR{=-Y)y8^U^!h*OZ{(agn&7&vsyH9kPQ$iX%wyu|Uv*`PiA z^k)P7H|@L$`+6%+3xb(K>>x4C#P_rP6#O!0zM652+dbGT36ZC@4Kf8ue9!7 zKHHu)1h497zBtnVY?R@AM6kB~DQFZPAFuGQO(n$ayeM;(AATx213nDYg9c?>dZ>t> zsXTIU;U=VRU?4H_wfurGSarM`1$^{DEgjG&9F@A>HzYLU?2uAZUI0!vVRdYS)a(KX zgPWQf<81!@?xXV}Y`OrC_Xe2yYaJklc-Ylpv&}U}vOAdFLh|q-rn;|RcKTVAlTReb zg&+i8lNn$-)1?Xu|2)iK?3ikv5}TsV@6R#g2Os5hOGr#fOu_-z=&q}WXX+`s#O)KHBOU6=I4=R*!bE%!?G!>_ zFgJ1)#3TjruoecQE2pZ;$bbX)h6`6z9u6Kp50p-i;IJ;pXkGIoQXmsTR2Ze#ysX5r^?7UQ!W%4l-KrUE`SGQd zJHnav{^EQ1zBE@E(JNvdL;a~}Cn;TT$p1=fnw3#=2!9`uJGN&pI(Tc={b>cfX&3E3 z3!Wo~20`fAc}yf^_PPXPZ6u0QJYjFM>CnyA!p&pIwo#Fk$Rt72N?1OdfkBuh4k&#a zK_r}yC9p+m&4T5@WdiSR+NM}khR14Z`K4*<=(tBAo|2i~UhYcze6gv;>E;bGYNuS* zAam^nfLZt4VZ_%#pL+SN6(1&Xf}1(4h{k~8Fe46*h9vK1p~BS`=hl(s}^`dx3^Ny?M4YITu9rcnBy?myi+V+HaW?3^7eiWk{VPL~(>SB(Y?O$xYxMBf0-(nb`vGv5ATgO<#IAqbQmsFu{y&R zRP}g&5=b%3NuC8tSP|vZi@cJLiLQ?!GoqjM4Pu2;!Tzf+o+M-1`d=VZKJA($>lZ22 z_}BHAMr^9ZwLhr2mUOP>(nTnGADz}|lRA1ie<-S~J$i3V5?D~l3nC(eI!yu_HbZAMb1>wVeeTA0^NC-DomzNt3q#si9xh1H`V8{t`95nO=V~Orq9_|vzw1Q zS?e3#OdoHxV$B87noHE&RlIjI@2o8NMOoaCkJlrQ$#G3b(t-V=IprwtecoLgrmV1& z-9Q^@r=C*~JpXwsQ}bSRlKmdT^?vbp*+f^}*~IWihgi(Ks>|o=ZkLZHE|bLu7lW6$ zx1-Z)-X)D_eZUc~qk6}wN$tb<2wo=_Z*oJz=LR=WS)2Z9xPltW(LNkiL#^8J z;H(U9vlhHUlcCN>`25^oyq@WDi}Xz3=s^&xulLGAT7IQvLlHvpT{Hf$6Wflj^woQC zFz#_$Ox|#trp!mPX-A;`tqW$DHe{k}3h19}C!u>V2FCr-aU2oEM={t4wr%k+XO z$@eTrV9J>itOiO$Q^+#Txqq%WeW;53MSZTq`9e5q*)q1R0HsTwaCBINI1Mk^*hiu+ zI|;Nb^1Zx9-@Mjg>(|o>d$)kh_YEs6h)T-kbZtV7_Pf%m-YHfup;R<-LK1gHox?-r z3i3kcdzZZ0cfS{A3kf#O&5PFlSOrL#gGA*JT|1XIqVjTMB;cA z?4CUIFPSc9jUt7pO4+A;1)bcs$1BaEK0N+%{nu6e04Er1YnQeiUYEGnNW!ckahM^s zW_m|kq-*MBCWrgMkfM`nHGAC;9^mGtUk34E!`0I2^RzZb$0KA4VK1Zr?zZwaGmykK zAjT*$Rsq^T*FKzNEa&q)JEt-+$VuoZW$8FrRU+gyV4YBeH<2)K3rU9oj?Eqn=i@Qv z<2yyH^8%SI>}CnX1^Ag%jrE<0M-7Qy>J_~E;G&3~h`RL3HwD&<`x`C>nhL3AB*Q`E zEK56C2_3cGiMjp63q>wP?Q^D{r#FK{+33f2F0i$%Lo2`4Q;Gaq<-ZwbCW3|aA67G= zY-#=G&dht9h`l$4m!wfpG^NtBKW7H;5Jr>VpB!oSE)!TSxZZf^I`%p5D(mBoLvn5D zR0Bxl7XX}Q#idt};!7UjKWf(50u=ngIeJodcDE5f{-S*=9Gz5G6gve8b3Pp&e&7vf zez~5rnXij+6uMXxgtgpk@JQm8?Di!ST(%qMd3dl+91i-MlWQ~#7HYadwSJ46oXKuG zOqx~WBr$a0Mrj1R954I3oh}M zU~oy3M4NO)-u218b(GPfN|_8%l;%972KyA#^lg}P3`R8{i>elIb=`DGg2G?pIz z@TC1+|I|jk=i+bj{w-0=&fuFr)sAAV{9Zj=g8u+}5JlTeU7>Jpok>}X)Aw#K(41Mj zzoc%ce(HjMP_|4kCLtc&9?L3yZ7p$xis#0JhnFp>KdPH1P{6EK2{un)sK?R(mp!)S zSTMaTYVi{BG|?;SN_qZAbP1nRnU=MA2iQE_neKjZyw=u<$%3Av(-BnuRAiE~VO3qF z6{Rhs==Do}WjpI4h4ZX4#(E;@<8{;i4&NoLd3jq#`CZxA^Zr)UwEp@pafkg$60b>* zq)`+f`$Y_(FX@xW@$MyFVh34btNzNZnLo*J)Mvfv&FnFiWB(C_gm$?vBUv4uv<;l6~4l5e}Y!hzr&-$!pB;!ABZSKIkfl9Ay&0VTu1mCe^eX=oJS)@Fh0H_R#o!7v8pWkbw6xUz<Tu(2!)+r35NMI`GRe zj9v0>114j;EPASJIn*?CmZ8H5Vn*rGl7foVu)ZTyWtqVE0fGJt2BhBf$qP2#y{(V- zXQ)2AL5+7z6fqh)9ZU;BEgVT2`HT#&Kdnkbt64a#;4WwI(1%$p*j*_KBc#M)7I?!G zR2B%gG$dV2#Qsl_3SAtO#Z94q*jknP>z0@A67*N}{Y2gCQVwb`jaZDpDKrE-1-A#M zwEYxE$W*}ENaKxkL&9MhIFUC=)5Ue-Veg$)e5xSH8kX?Sgkohu3Q)Sz^XAzYs4KUQb_7Y#L z^u!LkSqShXG%5lzxDMmA#9FCB%WKnslex}K`DZE%odwKP3XbwY_t9m#@n}sQxu!?O zwZW@w!Mpdo4G}bQE?}O&bOiCN9jQCqUnx;y!0nyURNP)4?Z~OsDv@c!KT#72E~gf= zaFLjpkFJaG-hQ|+dB5KiLSr*LXRP`M!r{DoJL(3VNN#$DP0ja4v07#%ICp+)fyEB| zNb^BSs@|~y|3agCpnw zVXU1Ah|!<0O`^8b%?lWSg=3T~y|ms^2YSU&EeLsqlt9bd-8uf8t;gwJ`ZuLx9@mJ8rYAd1O1t78n>TcvO6W&!!QuW@q;|Yq~<& zf}&s3kS7&H-5X!Wc0#V$ky=3%gk$T_9$_ks{}W=OWWf-pX;Z0O0W2+CHdaugZ3};4 z?`0^*t@R9*O?1fr(a{k~g@<(HUzx57IuFazWcE=41~Y$n)w=M5J6l?8nU3da2K_!N z>KQ3JnqDL0>6tGpp*K@X0Omyao`0MD4{@}Q{a+ir*;Gw88kO7!fXZB2yMt}p*1OPO z^u-ioWv@rQxeJxmg$=@SL}6i3nFIu7WFC%4zM^^DoLD~toaS#$nD;}ZMV&S@Ud{34Bu$rM{aN5=bEqg#uWu^510E%V?q=io}P#2 zW>J)Pe-s*fJ6G2T!O_Ax9`^taKb!t~D2HMA+JI)?WQJDo)a&x1=fD_+uHEZv8B7&y zXTlk#@7RNW8=T=8_8$odBsalwRuxfJWi+c(3A0)#=6lX{n-u7IeHoaLmB4e7!01?R zY-JiD){{Cc+%RRrRfoLpPhR^azQaAV{fu_L1|t(zMoelWFnQtfq@Xr!le)SVf!-g3 zwgjjWTxq0lf?fzNbrFMx@&P&*i8MDK84RJp&=isg#u5|I?*>{C<|gnrSl@XRPFUk` zc4`(f(iAc}GBYyL({YN!Z!E>Ty^uz?DoHPFqA3Ke*v<_l{cO!f^b8L)dRJa{W&&1) z11CZrlYp1(Ht=zpWuRPt(@+n}sa;T-{_z3x*K>#&IIU%{gac+55&P{E8q&d3ZfS$c z6w^hm_7i_970AV?-o&EV$daoZhR@;HH5I*<4CM`~0p@jl=?&-Gdo&q0+fmdFmC|BQ z&#|m8A(xII`zq`A=aE|5>^rC!IZykcd#DH#ja$-6;piLm6iQ{$b0W)!41>@X7d+u} zYrXPzq>4hfPwW%ux>`^!5>Q(-X(kNfFCD8p(i~$+p`6@1cy&=l?7-7XJJj@`;Q7Jt zIsdqJyYrf4U-xf9k&L<#z8#r(bLG3{-gVR+aTx1==DwItBGN5z2$p%{dYD$ldtr03 zakbgXyNpREt_dwo8pYD_A&V_fy}IcpYtoOnJ&L1)*LvX?kC?*yVZzrCdggw&uNTHj z!xyTpE2Ec!=f!gKOvfZnst#4BfV*NJ_|&uKOi z;!zre^`oTI5eLnDd?hbdKOI0KcA5aE)PTQ|CAz8?n&)d2mE@ zQrbNPUy=4y18Q14WW6y>PZC8^C<7Cgxw^G z5;*EEGV!#2%(-xdC@VTR7_gxE3Z(L}E-1x-%>Gt_WrI>Z2%f!EAb?D4lwme4V4uKw z+vQ3rhyd@_81@)(I)(vJ`VD5>+bTntc^XxL`ND7v`cChYS5p)7SUnlY#nGJR|H;yr zFMZW@RQmzeV_F`pKKJsiz3$h33k^P9${ny=_^l;lgLJlF^^)wWe|YV- z4ikEVkm9{jS1=vg4{Y&br;@a@vSE0HO=wi>NQy!LRpbcQXmhAOs)a_mdWE^4nsnW` zVWo#gMn>W}kp~^?s{c@} zZUj29r}gOb*`M&6FPy-kLmaRMp*YZt4J1#vZ4}Bdkat0y+#7=742Z2l&c`am2IUP! z5qOkH-qqx<<-VQ=MlhLjJslFf&~wI=VLbD7{22ZR0SF`E=VB4 zOYqU;=Ryw_pWR_zPLgVe1%3jhR?QU-_KBH=)814%Js|I5(Tj9N#50GhS=1LAE7wb? znWkAyA+g7_YhifZx?9ZJ5uF&Jmz2yQzw;pxY~>LV;RTFM)`##Cpum?$Wdd|ywP*#s>q?Tf~JYR7z|3LQ?Kzvhb!4sp;l)=^5c2D310 zfBGNx$J$khy)vKf8W?>CC?g@-3qRyZ-D)JRA@BZMz@)jS27ZzQ;cIt@N?s-a)=|^K z%(sFou`5l;(n?Cmvd(akQX3~vv!vFbV7hckhm*`FOR z!t{(Hu;7Y24E4evkeRJSW({1ryAV@92>`fjWTcXAvRrtZN?Egr`NWt59IK9-4U&wK zHE?!GAZCa8)&#BcE-ke8ZPU%}cSrYsAT-;6*RDxKlN&_J}x^ar*lJ ztu@BsY@6%x`m24O6+MEy5HjFZvgw60zskv>4vT(e&qAGqIbXv83hCJ})xS%>^y6O2 zO9z$Bw=xQSI>&LbS|*J@Aevn_7ZU{iy!*wOL0(!+&$I$MZ|Oo6K8j)8^D$ZU&QJ$vlgyq{u8 z9YxNE&;I)JiYCYqUEYl}d@D-$(FCKTE28n$-}(y+)1{xxEI>jVW@5LG z6)daszHm}?BLUW=h{dEguH4;Aj|qT$a0KP&lZ8;0XUuXuT8q4@j3$;&NkV zdu_5Zz|Wc@wdDtP8Qb?KdToaF1V`e-)Igg!1Jeh-F4Z(<0m95`G}N%HaHIi-;g58; zDPNNjMmQXS_;5ajzrgC~yzv(K!N2&iFD~Ri1a2#n6EB-xM4u6ycmqGq@{xsyHqBK1 zzByR0_;bm%E@`MGWtH;6;=G+3QEoBACdI0a5njvn2TF=-F)n+#~wK-bIs z@qe$^$tJlH*fB#a3AMw|A4_ikq_^_I`J+7S#A$7vwKzOm5cK2G=&s*KK-h><)L3rg z8wYr4hByy$2tzDZ)a6jg-~XDO{FC2=K(Etv)DFc>2ot+`_DZXG@l3`}{3=!E_A*wK`&g!UQ?!W#X z4~WSCVwq{4c-kn;v-Xn8-o#6h$}MfzA~HwZcSt}tv}#y4K?^`$D^4-v2&gKnlyu3c z9PX}&mPXf%mr=2c#h#PlKKNM~Lql3qh<`S{&*C`#gRFeHWB+fQta1zv$)%hSwh4k@ z2#jKjnlvd*bVufNL(Do?#C;UE4knB zBe_nr_L7y=v#-X#s~&OwgCcipe0#E3Ld?N_fHOrsq?EU_vI|IHZUhIA~%U>wl#fvmR|6XVCtgy zJ&Ke-e3_q&OG!G_B{YYTsDzLNIvD9&L`S8gWp@p=0`4QTal{FHbA39g3m`O_WAYY> zcpy%A_P^izGp~dXDW7OFA5X{b~lr=$sRHx`QFopzbj2VAbpoySO2b6vUeRu+KDMRZu z`qrBkI_?bbscy?iBTD*6H>W3r1`*v9#b9=xUyiKxdS=ZUhJl%mjJV|FsxsW7<$n)c2 z%9JI!Fv3a_8e$Rb$?PyiobYwvjY$`7t%wu55RFy%gZQu)BooTdVR1-mQq%Fqu9E$Y ziHziL)mkJEa=Xt(DfNmls>Ckn*Z|WS=lQ#EU`n|J_xDv2B_}I4>f!EC;abGM`oBrh zpQdg=D5lWRkqmSDP2E=`fD`Y{P0+R~e16d-r)_BmSaUkLm9w^0gG(O8U03=_do5a^KM4OD zGWzPA-VX6ly26ayw64`&0RAUzU1~Txn}L(1 zs{TI>$|fdJU+NpCPS62e4=eKfa zk=!ud2wv{m_#LS|f)10gF;1TO)mEjzNBQv9;Yt(=smOF?Y(Ag@rnEAO0w7Hw&z%5j z>#{mW4(J$eMfz~{M`C{toxIO#3eD7mX+U#iqyQYtckbYqg}~x2<=f>9#lJD_lf>8} zt%F$#=EZc7_pOB0w&}DJVDa(%y9wmS>bXNrE`lSoECSvT5h98jIm7Jw9$V4U)5?}+ zFVC18GR1IrW}@1E18bBIO?Dy;ygAgzl3?P?l^smD84U)AJc3OLrjzqYIh!ZQeP|~5 z*oa6IO_Tk2_O2Q@n#B&M)CwRNTxO2`qT8D~O<=m8U^u863De~j=%L+@xe{_veemL5 zOd>NhD61 zc)Lt{Tzs1}8*=Rw6nGn1x{TqGe z3;ofcgds$8|9+I$>B9@!1OYPGS9$V|>E+vU9nLqmmV&T^tcy*tD4~)$cVdOQmkJXl zpn$9=bNE42U9IWsi-$o8#X6#otUnZBsnSu!WCoKo$-C?mLQxBUf&ITp{E151KHdX# zG{NR?&A$shtd`U+|6aoUli5E){?!|oP8lX|^joB+&L3l17oFs@cGHB>EF|rZW}#Lh z{}(pzx5<-VUCuMYQkl`eU@r1+t|aMC(-3o!_|kGBEu{jn*_o`%ueAYC>*~I={?kQ@;)$ zJH&8LkNk~Hz!V&qf$!&xlu9HFsEcKiv(#rs9SGhiAuVqByglr!^*H_*KfI_a;cHKBviUjUqZ*qMT6z5a_Z< z>l@XO=am*tEdKPwg5X%OXFf0b@xO^&^LdQxqXWJ!!)0{O{wu^OrXz}6@~NWjh$8cs z2Lc8{OK<1yk4Kos2#6V^Rt@92V+Te?$jh5^E7#MM)M($tpT0H0^J2Uztxi%&|(DbVoRi-xuUe;q9BO z-&!UOEtNm{}INC4KHYfGb{sCfV$26dDBiD#?> zCu)Nzf4U?po2ogkmpOb)m^xKDrHaCd*q>bt3NFcKA2(F+|8VwJVRbZ7*C4^2U?F&L zclY29!5xAV91iZmCAho01$TFMx8N4seVV-A_s=|YF&9&J2Ts@Nu3cTb_O7+p8luYd zoLHLG-L7Yg^3`~7An6+xn+!n6D9j4`$ihgFE6hk`l34c-^Z_D(`>6i zG`zo;9ND`7YdbBs_2o|E0VCGwLEd-K>phk^gI~dR-enb$Fbfg{72%PqbYmaBU*t5P zoBJ+1;NizoY#BKtYTb2mvF=rxM}Hv~hlO%aj!__?aivd}%0pfdDWM1#E0$!r#lcKV z=~ao9P`yOAN71rI?qS0$;5LnXz>&x+(1=C&mV3K1zY|w}_@)tCE5<$|ft*}NcA(45 z_iJ4Wr>g7h<0+Q)>J@F2AIc_C`s{vc=!rJrqgjhc$3r9sLWLdGcH6jDxohHX?ig?P z!@tzLXm3#>9C6(Awo>l&lGk@&4S=!CI-a^DYx2vX2y(A7GFCW^CJ9g(H6ycXA$9hV z@9~bI;nT(pg*9aSToGr^;eGl|D~KRd8w+jHEG4^D@#hfUf*i@R5 zt`-IS;ca&fC>-_0RM>iXHHKna?>dzTx^(8PH#qCv)gnZk=E>bk3j?^e`!Xpy8igOL z-Z!ZS(6#pWX%$6TB0<_O-GHtK@?FjTx}1<+Wni6jDc@RD^q;QZw%?}9jw?qy_`gi5 zGwc5z=s_xXtzX_~!QaFB@HMep`K?wLwGQ2F;wMr>8`3?5EdR{kzJnP$F~de#rXfjM zbc!hi>MD|;ktK&h`1*y)2alTB*CQ%xt-v@j1hP3pmas)w?v+a#GLh23xv=k-YQ#kc zj5=f&KIA^}^zlYhGsCX~H#)`pG}!`CVN5PF5MW#w7!A3AHKYS+OWk zyir;ZG>&5vXkCoYLb}U-A^sg*OilKF?ikr8FJDqq-@{|I{QN5)h!hS?Y85f&vJEv3 z55?iBquVTOm9@1U3KhgO!#C4SOM?Pg?OQ|ivuafk(c=lxcp%oGiAa-n$N zqYhGdKg$~NAa<)pX}~=Zv#|f;FJ8{Du_!ri-|>aDDlGYW2)3Y&)r@UC7K-(bz21l& ztOe7Ux;JxV8!0c44S#5c07>`heZ&p}hP?dyV%p4aRRxGw9;o-9p4o@}X1*jIrlc-H zmtlcF-uO7LrznE6UzM`%U1xrk_Oo_6(nruMeA93FA-m#THlmTxJDs*aJlY8H@T8%T zyPD=zc4e{GFQoQn!L!|c=%RJENei)xxti^uwtjHF{hiSF5R2Fnu!}P+u&QTQ+WYlP z=Y;5MFggUuo{tqJ(rnDx{X1=UWssv=!Sa&r;V&9LeOun9)P9E~Z zkJ3};LW1P0bJ#PE0gdnO@L>H0*YxuqecrVxOGe++C&Xi_LJ^W<3R|#T1LS+>*}@FZ zI}l!bp829`-tb5CB-7BhCnDcNk!A=hqEJee0C8p~)95aTTdz$3OulYryfd@%og@>< zXxrDat!%{&mn|$)t+ZPf2+a|j*ZpwZUG4oyhCWY^*}yo?mM;EXgB*~jmJv-_#&i&up}}VFeU4s;v2cEHuObMHbr_-P>)TMXQiu(Ra|`A zTJ83_+IwQS0x9fQry|A0_?OHa;Y|=n6T{Ng{ZS;k{9JYp?_JZIPVl$WuFSJupz`{1 z)sNr-L7;UPa*drC1OIIy)SrtbW6c5c;q4|nx_NY$CBgJajGxt%vbpha2^)l_*iPwy zgX5X%h~5W0xKD*(Y6!6u9Igz73`=vg-=P$Zf}hODXLDrSVJFRo{A{s496hmPX9%!K zE+A*{JL_X@ICz16aIC|9_*^uq5L_r9ZQ&n-A?S3^s{AUDJy2=4E>O^z_MEnI6daGm zo>qVW(yJ^lEsddb@4QBcXT&pyhnFx3{+1aX^n)lR@{K6f=j6`??_AaM#gj9Sbcs_& z2{p(bQT!k%1}E|-$!p8?t;UNB^arfF4}Sa_SBtye$b|YqZgnprgl&=^Cx?25A}9b0 z`dEvsINv#ns$&m9&#ZkhcBt;GFZ%3E1<5KWajZXQvQ2N3a7pdJO86-Y!e>057+nbG_`zgh$syHvzirH`2 zV`8nR&@CFH4#fsWB~gSBS9MKRCfYDYnF!Zk%)ez<-b{9aJJ4(xSJvfH>-MK_+9B4x zypE*WkEnJNn1;5s?Va-;=1a8(+eDDBb#QF{cjB z3sdF36dqQ#W>ynlRQ7y(-6TYKU;@nb)j2EO;EMxedfqSV&hOlwZF@GAEzfo#cgCy{ zJ$0wf8g)$(;+il{82ryu-i-&>@A@y}5f#o!*;uFT(xIY47@y(u((>Lmh#hxq4`Jom zVQ52nBP_o(i(uNrYr@!bbJs}FglDnD(_f>o{i^*aHkQ}qkN-EGoJ&e6x2g)Rg^A=K zPWfcD>Fl-v0pUcuJ4h)gwg>;dvLzhCywUzt^Nq)^dxccSfeEB^8Aj7iSte$T6{#mu zL=HNs0hx{_G2JcI8FdAujLu*=8dJQ+-~SE0Np^WpO-)*vO`P&8h)sWQ9;)iu6*zYU z>(Kk{s-Lce`SLLN&3noA#krJS=Yy*$PSadSh_}_# zuuFzD{|>X3U8BVFu+@CxjPdfVn9@E+j3gX2H6y%VPeAxI)rcgN@^{2vy!K+~9k2F*(2e8e}+&VgrWHWTW;4#?5v!*-xn!$V9-h<=@TSRuG zI8xQvyb&$dcsAu(rL?UWv&W-{4a~p+dSBw2pOdwR?OJ;`VMX((*N^dRo|BOkb3V?( zBr@;t$$d+`%m5(@{#edT`l3G=EN}6^0_)*20&YV%4afK8=s>RaoveFP*AWm} zNqNklC8K?;XJl~qm$G*@W#d}UvLaj$#h$HvJuxkXfgF5$u}J|XvQ4xedi<4Hp&?!! z&_PpZHSNFRI1PC#hq^nYfT}Ta98aN$Dc4XOq25xnCUk4n(Si=k(WfvW#ZD&z!kH~t z(**k8wibhJpb1v4){`zeJgs&o>ye(JB%eXuN~{5uAnfH57D^hLNvjs zJo&jcB<`y);bNM^T~b)TM08HURV+dt&yckyq1zC)`y{EZBhxgou1Oa`>q6tMo!^8> zd|Ym$3{iWYCEjN1=VE39mHc|LrOW)4pJUrSE?*?dzi$6lY1dpCwvmms5@p%J5EqGx zjlvCgS@Tb=m`=)jW!iPW6sD+B3`nz*!W9cOf9zBCe~Zr>+*Vc**aMWP{59opXqbNT zglOtZdWJjqGs_y{^7fXETi9MSs^Q=dF68@XD+FUyeOKT!pCs`tFKBlFJ zj;a-=^FvjJ9b)8z^bUDzEq{GNS~Vl#w#$=5@||+v)fhw0UaYRiB9DDn>L<`$UBI5Hp8^{F@;x2ol~{C^7K}cE{w_%Q4xDhvvKYA`fWD!sB3@5N{Z*j(ql$-6#4<) zXf@O+oxmlath!IWGSAih!pUW8BY56>BI0_nBz#+&e(^6DKqM&;8z*pL9c$$L7|ll*GUO@4%K_ya;-u)~E@pJiLGY=fS7?kl&3T zr#QNiV-dv&GW05fj*xrb*lD}pD?XyqzQDWII= zN?lqy?<2AC_AqnU3R-E{wy!UyC;gtHC#QOO)q1L~KdmO!MWA~lqwDCFtY>Q#o#HVP0^b-BoQl^!)ev)8|~pEb3aTJ6PrrqXcMu zO=}t%M>!n6sK1GYZHM0lS;95aYeLqfs7wp{+Mj7L>Cj|w>N2_QDY-}St$upCX3Ia; z)T@ZD_D9W3gP25nU(K!X*3K7xgT*r`!@>E!pQR1-V$??cF_v^CKu1iJI|nFpf$>)Y z#$QzYV0pP>XJczvDm{^~Pg+e9y1A)&nM7x*nB<-iRJl0~nL~1@j-oQv!-Hzdu-w`_ z6rH!z5vf=aZxOTZ$gMFM5lI>vf#gWf*~MK4k4lVobgJz!)woT2XQV^Ru0lmuFcec2 zTNr0lo-*QxxgrA&JGaZ)Z45_Cd_bc>Li+Jy5RrXn0#C?`?1Cma3r!r1da(J6>RPR& zY?oAIFTfhZObE#$*c{R1K1HgCP2d7|UY~=h{H@~~oMR=Yc0&W)skHH_(lLl?&P!~EnH1iEaVM3UPot_dRi*7avF)=J+G%c78OrrPEL%N1 z2IT}1?6{1mEoFFR5T?pT*~h;}^jqv7dB27HE907!tuhA!=mQB|xUl<1Xz`FqY+P2ZP9ZoULwA< zl~rv0wQgEihdWnSCCWfBenM zB-O!ROVi$AOX^3F)-z*nBRIA#7TySp2t|KUApSBK?PgRK>{gH_H$t0?pvP7zs|vvE znQw-LSrPYae{tGd88;z)Fjm~x3s%?@Md-&$fHk4%FBN8nR$G4yFEGXgF<@kVMj$*niTR)B-?dO$=MV- zy*UX3UMc$)*^B$Vc--oXnfG%_A2bUQ1!X{@WYdT$fLqxJ(ursXli$_e5<`egR5abX zQyb)R6y5w}FbGu#qb{IKqXKiXgG1L4mBMOhW7liI9yOHipu9`aZiGFtqN%BBuX<^B zM@G9?=ZUM4nkpZ>X+$PaRmkaUoaD#63kqG1DN{+cZ#|^VvRVlu3hN4=C9U@PPm^5hX^E5BI$?i zJ?#S$(fsEESDCuv_49w-EBA0)+qAC6mX9ho6f6&?RRbDq){9?F!fW$Krn{Y9j^`ZR zb(J=zbxYRp^cr4l0!urt%-^@=UmN;U$eMa`3|?9nSF^9LNkTb4&P#h$#FL4tkYPpc z)Je)`rzh-ug1fL;tSLa7V>1hNght`nA?Evau)v!dK$9*-vtp;IfC5n(;Nt^afVyAl>|UG?*^U!E}KVrCLt!~_F)UqH-muDayD(x;mmZnz;FA8h_yj z(b@Xm%Cyh4w6yQH_1@Ay(d=V1`A^mDYy0H}g+-EH;t=4ArR&C29;5v=ZRF9cB#R{a zpczp+e0ytU#HlVH{`0>J!E|6P0wLPV8Aw$=$Qg$ENp}3}}E<^nhcx#ql6DXmGv%PfjrG+$>Ip*0#fS zEq=oaf*LMNhGJKjAl3Y-X7g#A0w zqR`b-eC(V7eyQ_dR8*3j?xZPXNPgCBr;V6OJ&l;!T~-{_x2+@0i!Tw)jQ_8a&=+(s zorbM0$I<^DXtM7xq^Azp;E=T)D{GVrvXe3@srY4hFB}erAb%5SusCa0BKxL%=l(#U zr&~Et{9!ycoC0f3Svl+X%9*2Kf`zuocS%vG%Ht_INrc4qJ9L)i58~ol%I**M#)@n^ zfFN?Lm1$h~zp(>Cduq2;Ap~Mn{l~aMbIaO;CN{aC2xk#ffHQKCBxZsnrZe^SAD0#R#|5|i&o8^dEBJR570<0`Q2muI{O9LhFKg(N6#+JR1AHyk zB@3GkG3=T3ND*4B`|FGhJb4TPtyG6W(KMMj8t&{9bfkYTf$yeAJgv04_pF|a9*tbJ zub%6=33{GYg=KiTd>)Vdwq74__Ut18#~I5rr2Lbm&E4rav{1Zx#x1L+BOU2M3069h zP&cVIfb6GS#FP*MFt%x)H``kES&lR&x0OY0p1)z7_V8Ez`P8cjmp_a7MzD$g*msl1 zmg#d>$au2veJMJ9!Y7np7bg*o4rnNQwOR{>nYw(VCv749o(%|#0j-&s&)L9RE@Q3R zXg{DdjYkZXs<>2kLsKO?CwP{#`preQBbbxJAAA7ilH2(ijQ?8*ohql2uzCB&d1SBJ zty<%au`WYPP3c>^?T!3)rkA<7#L(*kIy&0MOFOaA(S}Ln*X?~?W|_Ac3+Yevnn3-a zJ?tR3 zrx+ieXEZZKOrD4%tYnPJ^Yb*4c;9+o#9{-JI zkYz<}b~Fms8Imu~BxqB$d$^Ln`+g(D>3t7kKDQ!WYkIlz9bOJa&nzIUw1dayqCERc zHhXv5!N=$R%*Zhft{_wpx;(tis&p=q#6KHe{KOA|K;VCixt9>T5YUkr5T4xhBp1VO z&^4XBi@P5ue|Kf;+;{m8Z3C9|G?go=5On3a&GB?(Hr&tCe-qu;R?u4Z3-v{}{IN49 zS8p%QC19-4J4s1*-iy0SJS06GfBLvdo!j$~ReJEFGxPO9cVQ)2`%@;b=irOCw457d zlxsN42fkpsH^@Y7VK_CUx8QWL(Uzp4_%qM)nG#{U$Zvsymn90cmmxclTb1So*) z>G1|>F5uy+c-(hjFlGHCcGAT?ZS<}ugV(JqdI*}|R8LLt#<@z*+@D&X{B-cw0{MXf zEPlS1S7)D7BM|t#yXL(cm(@<>H;GCVn@U3e!L%eRc}KgnNYE*w4ZjJ_LBK1ub*Jzw z+K`h24&jkAK}DOSScCthVU*~f6+6R4-IKcMvet?%zh@Jx9336};l>>I&H%y9;k~`W zSkn~WKc4`Lcbj$Q-Neq0t3sPaW2!>(>*-#ZbUS*6w4CJYO1aZOL%AGZct8Kmxcl*Z zTf^QV?Dfj6EX+62NB7if`X@PcDVC*b87cer2`anC89gP{eh|!LxO#&DGB!!W#r!#l z0*my|B(2{f#>`ucj*P2*=n)&l(n5NCeB%}Jf9&xm=1{PsH%CL6ZgmN!kfvi~^) zQbmzH)Z&N~2%mZV+DB~|u+oYDuE6{WB-TR_!eI&$OtFsTeiHw4I>1to3m2S&I~dSE zTBV}*|NJXrCIr}@ez5=J_rB%s6tIFIio(R#IRpxCpHOpchi#q zK)|mkAKt->@BKk00sa5izDD*-DeQ1;hs*P;=#P}nJi7prV$BF2o-zOZKTG`k*g01R zHf}wcNR#~t>=HaYqsREaY|`h^nIdk}lhvJXT}tUSdm%>pbfLicGP#0HR|WvfDjtDM z7!ZP10^l3kXq%%*s2+PwrDf_+elxyT;5u+`CE2!yp8w$xJ5{0 zxcz=RZfC6Dh#1N|=s&NQ1p@{O<^FZh%f%`N+@DE53CmzTN9IYFvYHyY3Pz8L!t

        K;LACzKQaDNCq{BLoQBWr7=L0pX*y?>@RrT)n~J* zvU2E?wT5j{ks+jW3Dof(4K$5I_12?QRQ6T;9R&BfuWv;5?;&)8fvLD6ASIxJ&Aa;> z9!{Y`E%NyeBBQG2+wrvgG5ch!)`_%(4~Huir+!6^%X4Ey&?#nAbv0({lzPjkd=T-YTpuB9dYE?oz5o|hN4HxLeU#@QbcigBk2M)aVNOf=05 zsuq|B?1%NgdjkNvi+5>y7;YmIM0lleUYTFNY7+P8b*-==kje6p5bRA??*Xc=A}5BF z&(ZHG2ynq=HgP?YBT+QD@GLh`g{NY0eE599Yo*5i&v^#uHhbvL_Mvo0XhLPe3! zIt&xsrX89*3)#?Pwtj)`E8%4b*M%>CvQ6B>G?E`gFq;PY1G#gL?2RK?yz&_X$BZr- z|9mG7=@nE$1nfx)0(EotVW~TF$NQJr@(C3iugec=#tWvSN=vM9*HWxn4boL3c>gt- z(+Bv9o_G#Nngm01*$4P${+j#ud<#@eG$Aw1Su~ykvTxB#AM-`ZUor*m;zhGoJ04bF z>NKqfgY~d!!o-I@=06c&fDD5a17$Xa`q5<0eER=cF>7EPpoo=inxK=ga9*3QBFJtO zGg?{i%9%wM;m`Ub8RHNvuY8SH!yHTvAJJJ-$SokezTca!S!TTmkHmUUQurmPHzJM1 zWCQ`do5!KXde`y{%!ya)UQW??@A=m(sXhFscKH4mn?0y93g_eg%qQO4aTr2+Z?iu= z-kyypPF#EdtO~*=@Mt(A0+K# zsPNn|oO(Bi2;<q*tBIUVzI~_4f^#yOHvgo0}g}h4m#gg61^j$qenxYt}vZK2~lx#ye#6ky; zK7s8F);GG!f%I`)vWqy^vVP;!-K&j87oI|isfPN(ts1$(%dvh>R|kc?0MSM~8*`nX zP(e{-DZ*9MWfY^5Z@!&ljpB~zzs<BJjM#0;8)rcpZk0s8Es|gV18_3+q zKT+k}8jboh;tVv|zkbQ&+QCcys;crOryo)M1@>c`VKN<0jU;7g;_^<+zYPJHgA))d zm)IdpaXr{WSdfOxCVzk{u=2EE_T zWZ%?vTEHh@)D#C_+{F7xl+SnXXja>*wwN1GhXun47e5~zE<614@d3laO02G~9!bo% z1Ryvu?3!l(IjXF>>n{q*yEux|XY|&C2OzJFC$f$fc)tS&=$=yc@Wfgi7?>a!0vCYk z>h)-6r`PG__33Pazoj-W&p#RHDUcmil*jpWrxAq_vD1?0(+Bqq*?r_=GYSQxugfDZrxl=+0V`|*QGs@i=Tw0hAz`RN zTZhZF$leJ=M8sCH;^JaEXXmqxjqUQuR(ec9lzjz!F&<(+Gq&z{TGM`=4#XGn4^P_2q=ZsI+eH{2{CP>IF zDhf^hcBLtMlPw%HJUlFy$*-fRxOH&Q_`S=wv$JzS&-tDPCT2q@X2|Y0vhWt8-4N~ z?fO-4GWu4o!SF&+dJej8Dt*27%e=bZ@TQf^gGp#NMLNc4%p6ebu(dYU7HZO}zl`?3 zVUgqkYUzYZ3v{ZI2*4}{&8EBksmpNrr6^HYPEJlmWv*DMkY1;G=jf=};SeY}eOqgB zHZ^`>HSGW8{c@})DJi+W9?FJW24)c^ZZevs71pwb4<7QF7H$m7B6ZV?5XD|u&3)iA z6wTIIY^|<5#f`{MkXc!)=T;CjmQj7~7t&DJ6a9uC{mUL0!!PfX37AfE*TE7~`ChR{ z+H(WrO)42}45O;4?RTgUQ$g(3)(`?K3d)Kx@$rrqTYa$<^4#3q^qRGll#~at^7Z)z z1@wCD&$lZB^Ru&@TwM8ug&nucQmPS{N&Q9=f1s+s5a8p73UoN1tz+qF^E>@b^7RF$4f<`=d^4}Lq(Dc;_CsFKmNvN? z*zH3OFQq*{Ua`#YD92XZlGLJvw#knc#((%8!G7)l{j8F0f5<)?LBo%N8isZ7eoE)wF=c~PYiRFTdkEeVi+ z5TB*hvDQpU`c;kgjFU-cBvlpqNW^2qiyHZZAQPf%qkzM2@)>_cfbt@!|2!wx&{l~+ z4TG#hNy;^slzU#M(e9pgtDJ)fIBNf$^PwiDya^s;^BMJdoJg4XM_}DUc9<3q;lBkC zEDL>ROjIEk$nAEzkh&jy6rRaC)AJ%doX91YZ(o?20whK9qs2!5dU&310ITxy@^WAx zblQ4@%?9v#fkQxSc(54%U956-bzNFovXta@c6L@&WwDJ=uLg?QsxNdckFMN9NlvA; zKOLvn4AuJK2|!8bGpKj4)39_b^Y}P>BHaF7r?=y738DrmmiH-6g)mJo(lJ*f?1#(! zLZTo1<97!@$_-IXq#RxO<%@kc-eiDHeEn63 z2)y`5qZzxeoUE>i4yD*uc0I5_jc=-2X(B`{H{oG05P?+yCuy9Otot;Pmkov@f zc(i39q`O2hDMtB$A$mj0;&_*)31vG?ycsjUpiW2I^dT|M&^+=BF8|B!XSGZMQzw3( zF$3*)DP6=op3cSH05l50s17Vwa|?@t@|6YhEAGdSK8~o4A1icPZs)aZUhX>H_&n|z zdRMpjdPE`w8Ttvbg=X!HSe7)(TIH7^$5}S_9%Ugo2i-g3 zK{kr#vLw0raAiv$6YWX8@Lzr;PWspF?ORmly%dAae=-RQkQGc2I6Bv^;sjX0F~}0v z3#uxnui|0x|L1k(gd4*73lq6t_@5`B18{lz8VP-dJmOy&8-rx!2Pb>OJ4=Nu<+K)pYxDIGxX7&FWd(8%nI{ z@yXPB)<4z-eAZ2v*zk1xqt~ z#-AR8QgbJ&I_<8(BcsHGi$bc$HkZ#O8fj9v(o%LkQn<|-AJd8|xRO$#uH~YOER+xi zpP3j%J6YCjF4kp4ghc)TMd4UjSWm>&TD7}*$!U@DoM$`j9R|EB{GT5Erc^1^Ye ze)ZX!^E$hUe@91YDGj|X=W*($={Qum+igL`DKOhwolcekhae>_9WRxyYT*P9va`eH zuwEsJ!$uc4r7aVq@m4MKi$ue78Vws5DD^Tj!_7BU9R@V&?)5N5)&hF z*rdu;w;?}C)YaAb!JrWExj9towmERGAuyD2+3&zw;2ki2#c;HHFAx9kCo|kbt(#Fy zLnU-Q>)yg;8lJ4BV7LJ~;OOt##?4)q)38hKb#E(A+Y4Sj&*n!*$b|gAFi{h}s>ABX zH=0cmJ2!bWM#?)lT$gFooHifRhZiuDkZcc8WI~GmZ=!h(dZ^KE+oc+0dz?VrHe2kl zNa9wwUfn$WdSIauhc*;~yp>3o%xk-fKqUY9=z7EJiB44n7^D`ro1-Fy+~35Clo(hE zm1Penajkj+A=(+0O|N2OW6R5$y69j&S`f6N?~elJfYzLyUsQ7U+pQ^8YxnTysooIr z8Yz6SjworoL?Kdo>)tqpg|({p+soakm_O#!{l#{s$K}vb=|X4%pVp0ZMRrNa>GQ*K zjp<8;Hm(Mg1?RtR0mO>6gRny0p?lEN4SI$!i0tk*p>f!y0_n~r+|^{X^$`bORb-)3 zPr&J~IuMh5|Ndt?Qs8uJ>$0086)W@Q#vN|Swy$$q$|`Q~@DuI-^a<9CR4wQSePOhp zRbL-bsM(7YsUTMkKbM3M6Qzq*>^Vds81qAzg5p6Gf*c@GLs_}=y5Od^9GGBR>R zSXgOM$HR0qUB>}}BT?H`Ag5`I#IVKnC63>4a9Z?^FQiWOS?~flv^2$;N(6zXn#;%; z4>%Cw=}xRC|6|Mro9uEZxB-ghb>W^}AOr<8XN^1J;1o@!W=hyEIz7(39vFi>Su3?ZeqKMIA} zDzQ<0xt@`KA4|uh*?j3lfOhwKO1!kBBzE2NCUJzq^@lX+4fM6URR@iu8h)>(8BS?B z7GHtG9>x4@MwyF6;Ll93&T{boIe^KcdVfST(r647X%G!Qe%IrQsz@)+F;Wl;VSngB z!-f|P9UVTO+cmm8FHz#iLb;an^_$o45(9410c)v>BWqbyeYX)jD&k)?HO9v%Wy{sB zBMA#?G8ou}JG3BUQn{AMFpZ*&KST7jP?w!ay-1BMJBz5iFkn99XsOLXQ8*(LJec|x z(>xak?^e%hJIpwvstyYZ61TUvx3W6v@`GW+K~fa~jM{!R&SPk3cyU;wGVyZ19ocGT zDpV-!wM~(v9Q{;#;l-UMe$loa@rS1$>US)Ar>W{_-mBW%-SA~^?aTr4P1tel>^mAD zOl|C`_=ohLK&f@Yo0*c8iwQc(NK1XLbm$79-n>ewjocNbK!pQ|HcVAzgXyS)~sKNlw;b@ksEZDl^<+ibr(}Rl4 zcx@_IT%)SqDCYX-)5+&h^9l3U7h|L)5WmcW`0<#iN_;%!_i0vVr+FUc#eH*QGUt!a zY;<-*C1XKLlDL14sKw_JuNY=d&R<{oa-_fsA`{@uiT=1KZqm#{)PSshKcYJ*d(Vn!YHI4} z@L4W00uCTuj>GBiqBx=F^>Uqs_tOf3!1Fl-!)$^C`I|JR1Tl@e59Sn%ML1DxS}~IZ zKX1S1F#5IcR|T)=aSB^0o0!{VRNkx|30<-_pKm+EbXqan!53nuxDO7~xTy`6OV48V zfAP&kv@iGQ7%H@@^sf?BP@=+UVm7|WIo}`6M7QTrOoT{lJkV)nWJoL%(~;Jsam1+o z5h5{&&BU%0I^E9f3a8bmGlteZDeA9Wj9EqAkcO}tNyu~6D{~X6vEt{444cf$JSa9X zoDC}7%m3wo44YahnPN1)!G0F@q%kBH${Gwmm$U~IhG z>{v;S5gJ6`c5pF37zwO0B_(dV@oM%UkZZ_oZoS*a6Gv68ekkQ=hC1^VNY!gD>W_qT zSxCXJ19u|tj;s)wK?-_LlR&+>>;^pv7qZf6Pq2}bQcBIY>zJFMLf#sKz>T>wHS{g? zbzbE|j_u+`p2@fe5QJmU0=-_f!%z%IyYQgrF#KwFUD=ILcK(&l44NKKj$pjFu2!?r zOTvvbf1d@;SoA_7X?+(OikVFsMN?w&Crh;x`WxgBO&KFau;Fz%`vlW*tvCJd;$?7; z=Dm+XL8slxc{_DXo9ZNvf-(d;tH~ofz6s4A^fn8Sj3rvr(IBO<7!Bf>^w_n`XiI*3 z5J{VTWkn0+(o>$+?)7N;0BI37P10!(Ie$afT+c?EOubUY#k5pJH;6VOP0QPKgc_Zm z$4>KA-^};!3y+P~!@sONT>(r8@hI>Dz1>tUROoehtynee?h%AX0>ZO*G#&G|pHcWr zhbr?Jyd9n3FG}D3Bp<)68|4Q}xSYP6U84Wg1Iei&!Fny4iWq(0$jR)eof0wYb`j{C z>p3KRb1T2RG$k~>tdkmwo(SGvadER-Fzw?gp^^7$W#||lvw05o&5<_i%qz?YNku!5 zLlock7mA^^gK-peAc$FC;l?pPG@#e;@YdoYMK>P!jT}a z14eF3X%s%;(ZJ}1YScIJm%vDc(A#%M({I-=0AIxR13Ij_QTr$zp}Ha`YdY*l6@zUp z6EeY85|L9=uPNCmQQvfFErpMN^tr&V8bh|K{w~9x5{U2h&R3h1h6F>E0Rmi$DX`1= zO~n5~$Sjtb8WB_zAgxzp`u5QNbQ&2MDd7FeJ7Glu2)8~qClnaz#=1}F?4i9>=Z7DZ z&7UHKdA%^7nQ!JyXp7_9ZV+Gr_lX77|tJZDdUZ=V;1egk5Ow@GQy1*B_Xq6OCw-NKk-W` zf29W@nNF2ss$YC-oTnO=8r~as!w`gufrjieytN$p?Ga-lDYDm_!boUynd^$1D?>e% zGv*8b_>p&+p7oz|u1zAK2<1j$p3tw*MRFMnX=?2FW3DG4AUZX%u{0%euE9}^Om}>Z}+!zIPYj55ngCZ znGY+WV?6LI6lRK{t4$`s<7UE%Q8-y`L{i^bt!IFmynCrNCC1@3Vw@?@N>)xH3&=}d zp(n!^V|sI_WIls78^~a-#@hB|A?Pf1yelksAnkvAK59FvPZ_;)eeDyg*QFd6hUz#9R3=0%f zflWXm&#YG!G|Q+P|JcmFp;#NgL_?>$xM@W3-N{K3`(Y}MV-jA0kakax)qONtUTX?n zCIT?@*F*>r1sMA&TidO%HwYj;up0c*rPz%TERiw!$Fkd+Mo0@ zwN1t42j5NLtAeP8fBzjSut+U}GtuZJ7nLc63a`Ok{)eaMhWo=0=yVTE9-V@|rhY$6 zSy0q0{0Ct%Bk5Fpk3l#Cn=mv3P;AI~$+;pc|0#H+|0CW4`wC%;CERf!=B&o`g+1Pd z(Hx{i)D7%^zT%?Rlc%5LLTSP`0yv^cCZ8ufprgt7k3v57-0|X!_*&S#cdbzWNVb^% z1OGI`JDBEi#vrQ_u}IG%nSE4*_$hVB{ojSawP2i(2w7%ltI7yJW7B7&h{2l)zEc5* zPljO9@0;RDOtaoSlG~DPdPmx=0-vEy(&75^HuPOAW1}oHJDaTnk@&?V35`!nv8}N@ zS)C3VyyVfI(yO0arB~p8{};;vNq2}r_xUotVLD=`0`YknF>`tY1`p}5Oi4Yrpa7Wu zvf$r~`bKd9y;lcpq?t+Cl*ItQ&YTdioZ^&|A{YF@!gom9(K@pv4uwS^)r5&0;z?0K z`>PYDhtFJ#lLk2|(S2jU~z+zI@l@Fc_>_ZEC z?PP-~fHgHLddCqJJ{c#Gp?J>K>qSXoRyD+|_>>aag=w@Z`UFisKUz-}eSrRNm{&ue z(h?J~@ zqN=OajnnM57(qnDWRIOuvMeeYoR#Hy6-s!R$hn0!LZTc2QA3p=R}7c4vb#DSYc% z-TnJLnQ(7=OlgVC*uazvd}-b2(g);|ZvH9iMXq?&73JdxAO!I#U`~2_pMO3X5Nik9 zSZzV#V&DDCCFR5O;YAKnzZlV>J(TNXlP>G^#?29f5UPq|KPK4Q(ceOJaJ#w&reP*|>7+d+j z7<k>@G~%4X=uPzbEEcnYzrGd;X=;;Mj-?G|z~+?{@9Fm{ezIl zYBw{MoUU7<{-&Q2eN&Lb;XJM1_>mo6ID50n`hdaP#!KLrIdct0@l*RkodVXvq`GO% zmyIL?tzm&X0F)Xxa+z;bHczl~{Fvb2=XL;Lixl68fM~!Widc!iMIh1s_2=dQy+40^ zw1#Q;S8}?V(xJ(BVV&=?Y!j6R+O#?h$-{MOL(Sbp>eaRdAX5tn*^T?r8d#GlsNAn3 z$vT2uMc>rAO^aR?T@Kbvor!H`~L&t)ii$b9)>h?0h}JYisY7DcahZpq(Hqw|dOHW$SRf zL@a)|Ye<1{xi%RGz4{MjY2kmGz|wulpYezSk?z9-ha!d_th_g=LIKB^V1F83IiwF1 zA*QdQpPvoCo!+<2%X0BbJ<)S7i5vfZ$^scHpxuwAXBLp?4!#1Jm{)e&Zsi*o*E24c z`#WKGCRM*{rR@s4SxMy)64Zr-`2=!b(D33%DWI3#3{}s)W-8Lc{u)OqQ?^x-72n}7 zkmi(sGk`@Bd}c_}T%T{u z-^3VP%c=!bD%nri(UWHWhble+$t!vLZLNr_xAiyh%*I}+p>Zt-O$_I2R3s*+Y2yk+ z2UI~cPR9pn<67iskBUp%`;H$n^Kn9lCAP~X_jt8-p!GvxHQr3zoJ zQQHOM`q1@O_qPzQGJ*Bf;Rvli4b`br2hEUKQMJ*UDOpN~gq-?nj~=rEra_?#%GkVS zjBVUDRBx8BPwvL}oz@3cdw--iOHr) zvVI{hcR*<3rU&_dU|)x9kpQ@1e0k;6;31-l$nOPA)F1`{mG7-C|4YtJdHCN6rkzt1 z2ZjMu@;Uue|1Z|r6MWg(bV1QcqUms)-;7_KpkU@;pgzWVgpKtR6E+9Hy4 zl3TXnarTV!T)s1PG2hsV`^=Ls{F&HC_i$WAf2VoUFgxua70cB zqD~4F@_{pze9gLLH+=mUn)x^7;8i`W$1$&IJ?jZ37q4Z4WAua&2Omcduyk^V1tQ=S zx1@;BeTg2Zwmv3DlS=*5QECzPou|2Z)=Q6}e%*wo<_mimkHz>N35VXOq(?Fkf%4lGOe`&8BCI$m!O zXURp z9R};T*2AjUrIbu>{_%&WeNP+O8+!{k7k;Mk7zD?VHqhR+)i3vnVW`7n&(=F|qqBe9 z>V|_m1t1SbVEc7tLVV(fvm12JrmmfDMF0L|I6Ib8jF?i(z%-erFB8>x2J`E1M#UEE zCWZe?2EWbgMvEZ+B&-gAfUqaKe5qDGLm`61iM0b%U0XFq!<>6%Eh^Ce5M_=;A1LVP ze;)OnfsolKxW1lM@Z!(h+*}5?lXx+@y*P2h4F)&v0R4=dXgoTLc*_v>tvUjVC=z&N zYPz^{p8Ur>;`)&%JiAkMB-?OrYG*DCwoGZsOP%;6gNIafq!(|rThd+p_6gSUVaUd% zz3m&e+8yS2vbZ}e-p`gtRC@E_nOT`gIC_oAf*M9Wd`>Y8t?G`|xF&3|3at-e4(@G+ zFwa{S#*?GG?lo~)SCUf!+!r@W-@b*OVX&*-?<}JAShyB=ir5g3M1$4 zUvO@p*J5us3#6l7-Nf(=+Hu16P+$R=hUx+cc!eT0C}M*_C1iPs+KI-kkg^z-jnaiP z!sefLH5izY{Qv^JaHB)A9}HA!=5xLU$!GBmPeQJEM0`cu0XBa>ck)xBK~t4ik0{x& zcrB5B7@J?|vu;$6fMFe#GeqM{6#rGuTJ1Q3nBb>6N8hde@-C;FIFybwt3%;a*SwwW zqfPR27X1P1MV{ha@?ZUQbv$zXx<`1Ikik(E&PQO4ma#e|yAh=0`$l6VzBObvN5_B< zC$S;@#99(cgvLgDLbk$^_~@tWRna788PkfICRJvTTZEw3Wo=%E+boWN+NJbL!!Y)} z)k1h&hxI{T<3QN@IM@yU#b>X;W>VzObc>ON@Yf{%KoAsK5?T2XFhc>$VzW*DinU;L z7PE!YIFZl?Zx$SJ#}N)CdKSKE3;N%jqjrP4RpOK?^lR}$_EU2^O%Q%rrU7s5=m3CY zjbHz&`FG{~Uj5K)!j6R76)}5tGH_;zjg>X1Y4yw-#t93?3 zh7cH;wQ_OX5nACm0+g*)mHjjL{)yb#vg*W}RWV`bSbjj~)r9 z=4KH@!6EDInvX*<8ip&VkF9<2Hp!#90n^5*;0b4KZMeLXSpAVI=N{kXt&u^^udn$4 zo!40aNz6*Q7oIX^w4IC1%E`>nk9uGoPER{9P?U?1C99L3u62snpFDkRV)ULPvJ%r% z`Px=7q}9wnNlW8#cKi2QmH~GzplhWET>Y)!0GpP+uK@G7u|R!CPh^p>ZE8!YpO#-CRv|rD?iF2_`nWvumlFjwIzQ~#!8ado)b)yqqTsF z^e5ohe#06f1}<3+^sJnyQs%U0YT#Xdb_#-hB_BB!aeRFmy~t`ll0_} zNLSY$wC(qV%jXTwwE}VPNMyENODUX=?~iHObdKQ#ERhT|`BGdKHv-u7R*}n0jz}2W zKbyG6D=tO3Is>(v&^B_7)IR5z?fx4suJKVxz)M4INQRVe=PUW0*W3ibl_fF{H|Xl4tilaOGHT#mnQc_=UdykUoW?wH2*H#M_r~gE6p@}8Qz^F8 zsNV3K=<|U)Jx}UUsCd6W`3j$z0+V07zHfZB12YhGq0>^p&Mg;i1j2?MZ#8WN=TQcW zV&1xK6t6WP@LnbkCC)dV@;&OhF(0R9$PkRk*%3S~Yz)FpsUAu9x5c^cN++-BB@2h@ z>;S8B9HQ@{s=nt23L=~+I@V6F+G7UWW5BRhGZDI2ydjq(<0-{oeRP%&hbR8nk#i5# zV?ik_E;WuV=4JlaVet)0d;$u5bozFnBEuycmiVv8=zHK?)mJI`Gt#X<(Z z*Af&fNO51SC(H)>k({}bAB0Mr7l4(WuIz_+Dw1-{3Yxb@pC#e>_{R6 z%4Xi)JkLBb^(uS|(1sBTjhyrk{5;yCTv)7A1eC)GeQ;2B4CLNiM(ut1Q9R}MZe8^k z_s-=B_ER<>D*vRo=D*u7o;-Tg!}$0LT%~9O``n%4*&XEu4{N#Q@VU2X^YgcKaGQ~| zE4D*YI@f5_-@-uC=IxaQ$y(dmjMdCy^ueEr_aUr0CAOrUc5N{j_RSdYP@69n%STBv zZ1>6^1_C4Zy%sGiN}j_UVuDqF4&jbP+yYoP%Y$>6l@2-Y3^Oq{t=_@z2dw*KEdye= zOOR2&Vz>1rXbK;8oRCU$-3O5^;BTNE=t-U%skZ!u;KrzW{AI#J9lz!&m@CSzh=og; z-k`~I&S+~SLNmg2b~`MuJXsPL8Yq_;e^jPguB*wTT+1@%orAOEgdrqmH({$7~0&hnB#-FK&zSu_+;NSBT zBYYiUlho*DE!gzRIK7MJ`L*>rMar$e9dg$-Wf6|KRTflJctzSo5xH+&;PvYk+kxg0 z1|GmiYPdK%h;X2U{)McsVH-%uMGcb8N0DGBrUJtX-9p3>m>X7FgN=62@%T}WTU!9h zh~5wNTN`o`(`}e`F2xl({+KP`MRec8LG*dp@#FC59T7(9N>g7v>g(O%0KJ%;f6U|@smuN7V0I&gpTQ;F>KA-DP>wL&c=k#?TBOD4CuS1Z zgpqjF05av?Bl|nSE`7g8evvKE-tf*lZc8$sYrlcb`>o*j&<8}Z(CEizFb29rJaT2_ zW;eg#sVlU}+?gDU;T)n3i_t$l{b(}CoL8n-m=%%k45Q|I7O-1r{IwQY5%jJ&By^v1 z&Yuq4tY7BE8&q_Mb3TY;^7aSv`2ZoUUI97UU-jN3c+mn6bz zjJ}DfL6I(K!&l8!RL|))QLQ4(4UY~DAR6wCCp|8}Z{J4oRqizrf&%O@1->%mL(ZTd z7)>{3Byvhj*%2ItdyRS&|0r|ZlCh}U3Kq-mrF2$_5F=w7M8T%xqu?ocIt1ZtF)%d7 zWQ~@>AN65WYCy0f9$+K$rh`{cJBT=+NtM2lI52mtmzEzv2hKg0{n67N(7p$vAo}>G z-=y^6nPHu^>QKh3eSzL$NlJ)ILP1G~u7xZ7z(qt#LO>dTrS94l z)WU7^$9TUu67Nr4rA|%Abi0Y9lc5jKBzm9&^84r{CiX16TWLF=F zLo21Q+l4uymDO@egL++7wgrax8ZQ}mg6;0E)tRMn<+g}5o+K&j!Pl}GHKG+IKaP%i zCQ+Z;%HH?jt|!!eW2Uh67zl(dF5vG%F05`pD$73Bdl->h)PU(i@SCfM@0lI8QwQ`j zHW1hQD*DHyZZa1$s8GG~3wC%J(?jWg{_1&vj$%pNR4V+pxVggQ_r4D)zEJ57a59$G z_r*!_GSHdT^8v`)pP`r4(y1S!`QPmMKI&_a+vqO88S5r)Jz_ssERun$?9Kwn(O|nG z%GgVe(@<3^nX@+Rx#|G_1oNDA1A~HYuCE_qK^gCZVsw_T=q)=$(*qzUNN%y%KXyzy zB-GJEh|6ZFIO@OEq~oNg5d_D%iJ{}!5x9DF0Qne&l2KT>vE{d;)e99}>NmWNkT{pZ z{T3OAHXP`NT@?%An5ac5$Jyynz3Ou7d9?HC_J=~KjVwS{cg$Xfe`Rz_K8xZvM_b?8 z%Bt8AZLaJ9w@Z$Oj5lHcL$n^{^dhbcySNX2S#>|O!pX6uu!abW7HCox_VpbPsQ?Wl z9*ytdxMTrK_>9W-9^)MWG5!||)qCUdPw(2M z$a6+#N(y1JB~%O0ykHu~zcXCp4d_7@kCV5O0YcFBu6|hDAz+N_SB>NLq@KS0Xh32~ zx0A(ow_d9PsG*>Y>krvlhN0^CxVM=Uxu84e>@#D+xL9!X{FGI*S+OrGq~c&-H;;Xk zAJav1X!i295l{OiM^Q|&$Qv9JIMWk$7G^%er2dxAnT z&hB0|ne={g*#oCz9WyeSsG#5c*Uz!2e%co?P{`6NTFU~3jtEL-nc-pI`Ajdut z9sO@ETPFd-ih}z`6A|1@3^p}CSd9S{b-ukkkq1eScgOfOF)wwwq`O>mQfJphKv2e! zk1JKLNvI)?4M^=b-&=Y&EC@QZF2>GeEBF^$_0lF=3*q3V|CxJ>Ef2uoz%#pnGaH&P-YK)s8IQgRz1xkLjl25i4wV6GZ&T~S~GPE$MDbGKNO@!~NL?C}{+o6Vn z%$*JulcQ&vSuVA0;S&@^oQK_H)Kxldjau;?*s#W^Lo4R??sXTdw3;<3 zn>phxE87*KwzT;*^p`ha35!`PKpyG+lD`3w@{h&OSOO4dA0w6UbKpvAn!II$ zW66w(RKXfhC#2DGl$#{~dP-dz=vfeb#KgBB>NCm)K_*`m5-tBr*yoCF#II=kN5{(O z4DF4l21j0n*p=j4GAab6Adifht;nfThl>D|=Ra z5Kfi}h8el2V*J(@BFgNbB8NT^x$whVV`h8?*;|Vy((B6wf^v8VwdU8KS9JjdafxbJOgf zbIq_WYX&R(?XljeeDLDO*Pg3m0M~M@ zOA*yRjh;_}58-Yd%330$l5LLsu6A8n6SdK5&U$TFM0@}cbSC_pY~QkLumi5?T&@K) zq7)sq#oq&^N8FHnI?jyf@p}pNNJ=aT%;KTO3 z?_T6$z3%X04nCy5R@-469KmAlFb|3*8$S)I?XM30x}yN7lGyCYgdGgloV0pD%W*Go zfQBz0Lg_*N&{&Y!a5hI_$>jYxW9}0sK1D=qA5mC23f~ zU;Qfd&Tr^ZVRMghECl|TjDoel(2T0COR9mzV|rvOtLks<#?&P!Kbd;sXgf3<8Tq8k zb%$iw-E*{LR|wMSyPR2q!7Qcta@off0MOI}zT_{Ljt#_0+9lgLl*C0xHV`(8PM)J;B-I(<98ucspRV?<$)qI6aP*6P2T*j8A99>*ZC z*A{sEi?~4M>%cy}4u`!5sfSnrV>tFX_YcdN6EgGBeN1#M=3SnnBSbRuw@Bvvapr#8 zs}4$rAN=L*#LTXNM~E+ugzVO=9!H`H+$0PhH%Wb(k+M&RDSdbLQ*Bbms4Z~^!ApIJ z&Ney=lmqJ`C;b%m%Nbva<@1d9qd|4!=%sGDH1ER9R=vGpuyUmYr&Y!WN{}_iWpIwZ zqHyQ~*oHH@Z8xwV>J!%CdQ&fsW6zoOXgQ8u_{veE23FETW_Ez7QbfTHd#(o&yw2F6 zR{^+=7&`QYVlczkM0Bzl>PZs)#n4BsPUOj3*KgZ3qDeKDSG#z=-Wzeu1)wV+1* zWVk&ry|z&9pyPdV#%W=S>PB7i!suFXzd(=+Tl{s?*d(n_Rjp8?Z$(Y02lb>@sai2q zOmvi+K!>r?Mt`3-YdCNbE4VDD#W z`nsZ9ygn${c4_G5YU;1>R>cl$k3U@kRxC#v7;1)8GLTx0-zCi|(Z|PQDKso`Rj|o^ zRQz+mwF9Nw@l1X}(_XLI53@AcNzJ9bl{u$;i*LA7w$Y&7%B|E*a?XeZ0H%2Fno!T@ zwDF9LE1F$~ zzp}m{Nk^DME%@1?&4=UgJJ5K7iM~?BH2rovf9dGajx1FcS zKLK^-M#T{KSW&`>#ScCj${rs2daziM;NI?4Uoxw3qf<~yW-z@|?{6B9j}tCj-@IWF zahL;i8Mr%WKg9Q{H!~NAn!Db#2xz#knJ4&sTEfh*FcVd&!OSZ3c&yh9H0WwHjd?|* zAz`B5UZs5Z5Va@g=e|tMm+(7-041xs1l(jrd>OcPP*Kb_u^Qax`HZO3Sf@nh@kWd7 zB+uk}YZ2aZ>7O&$L^k{oi@TUH_P#K@8c_|CLd#?99V+-lGamW5>-!l1-lud1ST}Ri zr1d(-iS85Q4pH!M41MWYKlQN0-RP%Od;GdrR1V}BA|=gaWwVKF(G z`A3hB!fm&kodGs4X%+n=&fpg2wJ>t*T&1i9BtL$sPsBN2z9 z{3O;iGz!99s}P}#=QU4|YQnK_k}$HOw;3mS9}0^H`hzeNyShM=6YqL@6KP7?%$8OM zw4+>3`(wZY#Q>P`AktT^%hTn0Z#~ifTd|4b#F~P-bsbF0zouE>>>J6O)uO9#F4^7L z4StoXCn+9tr!iGtSkb6h)P>Xdz7FR06HHA_PaNiBc?PwXyk~(>GPkBG_D|~Frmda| zpWRAB3G9uALQ0J_-uYr1^XeiGHAXYW$d^Oe0-rqT_P5CB8}?Zl^d$3ZS=m!k>hl9t z_?p19+gWit`cq%YI8<2F%WVLzDRqkyXOaDh11%c$wD`z%_Soc{#0V&|Kht+IL zuta00<2s{*DqNbE7eX(#jTOnl67d?S*%fXU6<7okAkH20o?wTKT?^5sQdSD(% ztI3P%r&g~~e=t^l(SN#1==iZ8x3;j=x_AEe@*?l)>>F(Uu2a78o+!R4F3|)$GZ!4^ z(}m0divoJ}T_#D~WX;rkZnaeM&1z$Ii`3;DWA}WoD@Yz|tSzNd@^YaCUUwF`F76o<>|Pw@_SMzFvhBXQ z_&!k%1}C&ggN=0BzQI<+uo2H|GTL?u9v8;uRVXl(B_5HT3iN2(*`QNPn^AI$wA9%Jd$_d&_@){@dbLV5iBy z8p{F2IDa-_BV{y=K@rt@iMPP5<5cZ2D+I5zm`#hv9q=7DB&Aw`^G_@1HLl?=?yK1W zB8q&yjUi*0gg}>0vEb$N=;O6MC=brIw^I6Wx#)XZo^yj9VDvTeRriD?MfVIiN*+ic zPSM{EzN2HFSY%-I{JnfD9dRHclCRjXz)|W_Hhj>a7x^N;%$g6~0*$OlC~PK+_NxJG zI<@Z%Kjqk|c6hE`1RpSWJ+<{IR%QnuMj|08!B3RgBKfiDzB6x>HBTg-3V22Sk|<7pJ3RS!m+j3#^lmN<2|@8A zaXR|p#nlCyOmppm$}KfEAxh^_p2$ozFF54NyW8@(r@XS;0p;ym$KtK<*B#NK)`uq& zZM{$b{>9nu6C?_Rk5(m-9OxxXBTGrh#o&4cY4ezTb#!H2 zqhft;npAYwRMzL~D*d`|AzRA#s;Igh?;^T%b-BZ8A zyLqXVKSVi&ZR@lmV>${gKGTf*xx`MPw^Vj6+RysFVY%&n%aRT5P+Q5MiY)YJUA%n>478fW6SjrRM0ixenmwnA#)io=DmZu ztD_Rv4|F1dkA?03CNL|BNrsxBTM`ZxR@% z2=#+AUaNX-UCq<-0cpfjE5EaVrGPfU1id#!DTWz9bG1>Xafds?Q5jk1iwpvfb7Pn! zzN{R1oA0+gheUTIb^}XQEpZG~@oLru75FBAa-IW=RW)8Yt)fpfYVxU9I^894aq9)m zC9`p+%^??EOI#1m(aF?Pwp1e4b>8Z=6L@y7L=&f)=$B&D8;gn7fKgUcwtwJb|Aqg0 z2@~eumzn%MBhw31HT%Ua^&AWQeH`{~8Q`(XCI%Kib|FQp&L!EyN-|H#(ahcER@0Zl z3LNv-#PS?CaO1DmV((I`fxCeY|E8wT4-HjjaRN`?bl&{6^1U8n{lKq$(*0Za!$pa@ zj3*ne<|2KMt{v*~A2e+9QT;U)^k&1RDmd&;5vd6l^y2M?7u}nrf%ja-_9?6(`|O8p z@im=e0IA16IUZ-`e>ms2>5mQ>*MscBoe!GUGrMI%pl?LTf??xudTo~%|1eDGuE)awMZHEQ9;Dn`^?Sm=Q>{^l%Ps01I$JEQ8&at43cOWq0hw?(Sb?qW zXSXA9+{a$fdc)p^O0T@dQ%g$)(bTm>F`gu!EI8_NmwOvG)K;L&cqe&j`#(n7HM%2rk+Mi@7HUcipdpnm?30SGjyP2;S^p zOx#NM{G=11*6e`?KG=OhO~$!V6H6*oj%=$nU9QE(ssK+RvV^+hdgDMFEu&}iP2t1D zgQAQLmyN}{jhELc8<*uaLOkEVTw*g^zvlJs;*&MEUnHcKEdM?42P+iPm&2mJ`2RA; z$)I5L!2Qka{C8A`mvtsgzjN@$N7Sr_WaT}=@S38U`Biy+`d9f&)6DK%pKa{z%hjq3 z@k5*M-6^dX&2-$-ujG)|$3%u>(A(j_-OkhJ=SMgB;ZQlB{oy0h7wS0qo1N7w=yQ2p z7q|ITm9i~T89}X@_qjRqBzeNpo(S<`?z^Y`#rv$v3%o9)`3$1(1i30l@C$@O1(1=# z<`??S$99C>u-bp<7`A>|Us@UkZc z&!mY;?6xXgblf!`nA$FYCh+ z`GG9089% zB(ku6HgAX;zp%`NIz;gJ%eHSqlM#>>mS%gy?gZso;%WQ@1OZMd{bM{Fs(ziiSl19! zxqg4}6zIxZ%zn4DB&Dfnc+<28kY zk4Qv98D0%f`=tv5b(NkVyT5>;jzC|{HH zX~_TMTO4)_y*xi0Z~8B0q`>QEx6Rl;I`l6SA};~?QG+T6;p+#C#xHH{oA1e~et(yv z2xGIR5j)(D#thG^9=GR+ILEIpYHiA@`L6DGs|)w^zJZ5EJF7~LC63S(IGmh}D1iR% z3m0S%^oD7T*(wh1fBQ~LQys5b!MU#WIRl2DGmuk?urCwRMJ9$qWq#r7PtIj2RgR4#HH;TEBZY@AZSarM*9TSW_Q+Sj{5 z`XqxkxV*L2#iI`u8p3?i;GOAEe5x{G<(8W0G{e#RQ<=+Wwe)lhk4M35H;N#sxnB!@ zXp*jUL@Ti6qfOD{I6L7TH~w|=bv+TfZKe228aZ~0D?=w{LKv@G%?)x$RFOB?2#(@| z^xwfclQ}f;t5Ws`p9kvEj|0K04W`5P9XI0FH?ixz`m(b~eB5>0S@AVN1)0>-7m+lA z%IZ#NpM8yhl4Ha`gmmJRLtc19WaN*wGc_gok-%1FW+!8geaov<4trAh!7xn_Mq|N;0r)@y^1tA`n+qh9}XcznOuI>dz@HM)uMNj*1(PXCQS(PsDmEnYC z*t1knSq8M4;DEvzFBf|;vVc|_Eq+epJN#q_to4jnaycx|8H}da9K1!*!%64C@R|)zGg{xu#yWS(1LK3X5Db~ruJ_K< zu`C^^JYHG=V&`YZS{b`}_eb7+UIfq7I-1-u##ZbUm29v-Y;`0oXdrcMndF8!0D?OI z6R2y$5yN5SE^VbE6Y!Dy(hcH_?ioxq)9SwH9>u}ax_DxmXwEqD;(60MtFwPZej8yt#J{oiV^h!;psfZ-jlc)53^a>5gi@>g_;XY(~kX!&B^VU#fJ&;W$wx zTEGFl;nLI-Wb>TydsQ=n9q|F>#pq%M8TcXo?7#)Ps_sfykUZt*aMFr`Og$A`BrXbap zyt*W+0oZP7ts5Vm4^Xd9fti~Gnlk7Qtwr3spMii7HW}|x<@d@N@a-WtR?iSBZIvZ=4UQgu#P(%_$$b4@*zcK&(#!JaWRPxI=KHIbU;Q80 z(ynLO#)XQBvE2f`Z@)N_9xUqINzp&go--{NpQv@!(i}gS(M>#+SL_o#Bv2N?gJ2*d z8eS(QOVZRgkzC7K7^l55j8&{!48=UiqnsGHx@Atid6GuIjC9G$J6(6owzTqm5kx;w zh{?W+;%&$~9FF|5%b&^jghXUVHc zZ`1G}5$hxKxaCMYBs^(99*DKW&ogKzYh%@r&EckiD{~Pp9%!s9p88ikG*Pm_&5mZ0 zfrOm7#lc%LRgs5%k+&_JrJs@KkgHUflSQkk2X7F602<>G$#PT{yT2%Hv}iwRy3XIH zt(%HP664MeyoO2`4Tl+PIAaufS8*04U^#5*8>@SaO%N)pe3)WW>=S!4GY2a_w zHWh+M;_myUs@@~Q3=}&+E2!b%oL5cr*qYvsCYEH1a-prb0v5}u9_WehMO>BDQLo{9 z%BaQ$@hoW{+vDp2+r&Jg;Ld(Zs`H$ERBB(ym0<;dU<}zRe!o(A6{((4SO%vxWuUBF zIV!`^wW2jo7_*!S%dmlF4P@cRuEd#7^+W@Ft~(<@;U0)1_fdJXDN=6}JJp#)U#LX3pQxCGEBHua4 z@V>6$I%XcS)17`z0&Qz8ESa#a5#1NfqeFS%E>)rsQO04Brd7a1lZgjXYp{g-T*-hI z>_@B7uKNZG$gP3R-DD;0Kgix;0@KMTi4izWiN(?fJ$=^c?v|+ye5e=%mE44_5dgLJ zmFu@%GO&m?raJ+;EM;Z3W0ivdlwpgnT2us(^gzG=F`82Q`Z8{&fErZ9yqlne>Ojf= zFT(llw7MYR z#-h~T+?|(5lPrve6%3%58ec!CLVA(uTood54x3|^4x5?AJ2{DJZI=v*DQ8$CGQXsaW6q#F&k*Y0OX+ zCQ0Q;JYAXMij)@!i#FO*c}g6jhc~N9&^I--Km=;_I;N>7(x)>nhn?USJ;9mX1b4qu z08Ta0kfp;C{bw)lssRzJIW~^Nekahy`xt*h_5?iOKR(qVnX`gS{KT+I@z>u7qDA~- zdA2}BqeR?77VNX9HqsB)g~eG!vB1JG?a)VRIhhxPUkIIcGtK!iLmI z%g6~1kl6fEhtmK!^=*nwJX%ebZKP49oC+#U&wcq@N3xoVVa|E zWLYhdr#oRdEx0>LjDJ~HMX)~PQF$fh3CU$8cVDu>x_`M*GW4h!QC*sYNykYT9*Dh2 zQ;2x_wsbLl{tDQjrx@o0-W*SwsFHTUe#qtno(NA+3 z*N_3PFDB0V6uM<&oB6O-ISjt+M(QeG7DW_9*CB4ru!;*#wl#gJ{Sh#}O6|?*CQcJE zApc@DlO@t8-=^5jzVE>Ce;*odWhQM?1?d;G0;fy)KgP-H#H1#vp2zF70j9}@ z`JRk3(F7R)ZIF%+$+Lm?!?lJN{8(sn8{D?=UsMLHE+DTfVjTSfk8;#VBV)!4V?*mM zmXzex$Vk9FA&2TbKjd6v6GeKT-JbJ57?$E73sdig9Pz_mNCw7&yl(M93>EX!f2b~; zn&byh+`k4C(%^qQAl1%)q^cC zwZ9=?(u5=xt=v>E8Td11b>6tb`>hr{l3EK=UB z==FG~MP&to-h}B)oq=f(E+k|AuuDbw$c+jT7Dhi*ECEs>@`kv`d0VNtQY`i$4XahX{Zodkm zv2y)=wBX~rJ6xi^%?wJdw5c{F8}XWYU>F{;HZ_cxqj(Fi(Z|u~^Z~d|mAO@3(3OnrX3hWZQ(#LwXHF&6@~;(c zcj99V!FR~ah=#-_EI3N#sKN}33fFKLZ&!3d@`J8e%(EzsxUfkiR$K|U*9lN-BiC_D z5P`|7k&fctC69W)iiEn(k+V<5u!l5>9m0Vo0EjYzhsdC`zeb% zm=57%T#1cvw$1W95A+(dM1qZ}1lT~8 zk_Q<{2QwoXqf`B)*sHpVlFsQ^(nAiv-2|&F_ep3m(vt%HWZVybubeZI+8xdB0k@)P zubM*#`?zi35auhI_LtJw)IT8|fjoyo%XO<}{3s3u)-*E)c!o{uHwL1P2Gc#M4#;vY zXe?u*0W8L@RTB+#W6gsK9Rq@dqeKZHhgNf9f~s#&gnXxtqUF-CubG=ie@P`+<9;E5 z{{OJ{R#9;U?Y1@&BoKm2(9pOCcMb0D9$XV3xP;*D?(Q`1?ykWtNN{)OERt{Uea61{ z|C>`+Js6{#THUp(YP~h*GkHIwk8x)^^>4Q1QB3Ji(-ILWv<(g3AuQb28s>iCX z$2M#-q63D-g_g0zX@LKx;w6SK*yV_coZ&xg8USs|mn}{m=Ng*6Ro31!j+axTrk_4e zoAwLl!&PB9?2H*K(%!V~fPS$@!yB|=V)Dp$nldYWNj=YR0HEV5O$BH`aDdfBrXbG( zXJJ__+X)Mdsc8XmTemXWw3Z=mfs@YN$5AlQRSV44J?@}OQJt`%5{5}`Rn0)0aI<(+ ziLJ4|U`1umcx@<%-&hj|2QL4?et+J3?-rb^xc9r$C+*KD+gih3`P%pO&wg20gInUo zg=I4b2m65Q94irz7%NdrUieVib?2Qf(QA)@_M=?R2}J}N?)_IgyA6ubHwW2E3?35Q zbOR2q%HKC(CwY~zqvo*Q?gzGZ1*S>5A`28lw)}(j0&mtyrEf17n3=h%Tk=0gXOy$O zdrUt#8GF+5|LT~5ED`I@>@kSPBGq$KPuH-|0zb2INCw7peK6Y=6ni#c1D#Pl&*@K? zw)`CPlmj$1==Lt>_B_DGjQ^HejumqLU(y$_`ybW{US3{y9+JM~ck+C`6Ibq%lkmSO z+KaWF@X$)%ZZx^K7zY)-8^mC*t!>)3h{+2yBX$pzLlXa)8@-P1A_H9IEQOWKJ)xup z?YOy;p^}Czl=T$N0Vz<3;|Gp3cLl{sya+f7;<~WiPL3~@*%3UUYH)RQF{t9|vMD!h z?F;1e?1D24n4YiMZ3wvBp2(%tC%{dKfuJD#!BkuAW?5PxSWtklu6-9(pMLB+WL8P7 zQ*(FynfOty`Ln+Jp2SJJ^fd=@#1hb*1PwEYZGokQE+uAD^z>0y5Z#6cm^Mxy#lx*z z-EdG7T3m*U;chjizY?*VX5ACYdCtBWAlWrSM|OZWK!ucyKS#8{R{13=Pw<8bI0-Bt zgT2`qTZm#2PEEB(-Y_i_PCe*SwFRUMK=(PT*%4Wz3JSuDIE*)W1C~n|qUTzMw#1LM zwX|%lsk->79x;f6x{!)AacbpaZaM+VB)YL_>a zf?W=EYC~drKiA3=c)FSJoA^}-(&=rVMo|>@Z8{~LAlQBHjg^eBWNg%&10RxlkL!0` z)sq<`DGy$i^eOLCR~vp0%{gx#hPo3YHRF%y5`D1a{AWA6Syj>QY%YR-bei%W?)Gd% z_Or(y5gs0Q?eas5_2`npp7>bp>2;R0t>|HPu4_Wim8b@zKil1p?{@hJf~D!dLlsqG5t<+Ry0%qj?^zlS$~kIm5zmqCaIE6d(9{Ir zp}C@pl2kzl!HM@{5eXgY3`IIGhMT#o`pH;xSZTAkDg*#G$&sjw465A+y#Db|tIcjj zcGP1R%r-LFVj1G9?{*&daqq$?1B8yGvYAR}!OGv(rxSRT#Xo$v`Q5eR99Ev_BW3ed zhm!saqQk31K-%x<^WWe!OVGnGnN*calZcm!}-_s^i0Pbstt24Bpcwol5#0;O~r zpBJ-U2K#wAddl_{XTu{_46$T)r7VslS08oAie{vD=g+GU+(CUeB5@RsZ625k9bw3qRM zBV+v!(>*XVOPJ*hP-g1tZ~C8vC2ysGM&Iuy~b)8j+480`{40OM1wH3YM)D%53-bTEXWt?kimh7z?Ek(Zr=aAj{R}GK_kx z%TWPMf21F1JBLYLcQc%@)EW1q3-V2FWGcejCXKVMJSgmTX{=RWZ~oLvV0Hx4+fq$g zlsFedrmv#;I4%TnQT)J*n$vYE;@EVk6|mbQ<)mN2H!hIZfaD|nQ$W@Pi?t!sIkU5F z-dS9{K~k_+)a>@B|E(07)5m|x;}d6M&p(T4|CGn;t7g8g>+jn4yKTvPD021ePo!u* zIsW8TGvK|~b$JT#nvMFlI&ljr#4Ak(Gg5?8!LQZPB-CevvP zyA=6labe^5;Q8R*w?4vb**2pY)UbQyn{cBe|1Ob52A-9%1J2`G(!DDsfcil;IHcLf z_*w;{%*%D~{s}!plTjwB*70uY55o!gT_Ps?QP%%}W8bO@1M^W{X@qVNfRVi`2`CAW zPG$?5DVT5lmccpBgZuT)Cr&E9)cv5wZ8yhaHHUW#J%Nu|rqb(ZS}MLhT7}clahb(Q z(WB*IFG5d7-1&fI|3GrM$Q?uM)Wbvj$En9UYN&pM!2=@A=G?JiL}waS?tClP#-txA zUz~F(4f+%~nJ_wNX!wEO^+Uwno|=8>$rLXWy-ADP^?q~r(YXoFM7mhaHE5+6c^o8ay@`!NyzyIW;ygIj z(Msl`0Y;bKy#;x_7YEL{s_$J&KaKWJJfKDlVte(cM{O>YiQE|Wa`cVH zVA$}(`Pa&lcF#NeKVf>+2rT03L#i+DlmwvMzQOzQisT=0#1$YvX=~gaWKGA3tHoX{ z^aA7iN&6=T!fJN8*-QB&-b@_D;KcIs-9w6GxVvK`VU|P|B!b^sXabwf>aF4y3XI)} zmWIPynuz~^c*|l{W}tyUpnHza0;93E{;-(g^}#asneUM?H;Ax1@NFq+ z-?7RgKhx~WUEECEU9$}Gps}KtU{ZW$J>~wQ@_IW2BaY)Ed z7(>yrSIl0M{6~F4cw{H^AtUGp)31zJ6}=QWITI=d z4c9-D34nfv6j2}=D&?m>aNmz;-tRisw~R9IJzXA%S-l`;DeJZlD5)MURrumq#M4Vi zfAObg>`Di@X$2QkS6WmEv9LVQ+>`{&o*&24$}FEf^;@E^J{Ah>+?*;=1y#FG`1;Y9 z-0D7E#`P2=xDTl$zI9`loxnWAz}2oY>gG#7fS78P=U^<;F8@@o;dNhg^fa90S>yRG zzWvq;yfL{zK(m?dH$HOOdc8pNmgaDkY-+E;KIfAkl8h8y)OC=BAbm2QUUd{s_(%_5 z^oD1+dN39S%c0y1-QM)@>4;U@I|-C{UbcX3e^RoQ#^O2^uMj&KBN#Q2<%3en&wtNM zFMW-bp}7+`DOq}#yI6zjkr{u#apq7~#0vbSwONsWW=b14Us;2R%Yn^y$gjOs zRo72ukvI_7IXJ0&+L_-F(=pk{re|hM4M!Rvo3cs7WOovFm!U{Z!yKJ%@Ndj|P&B7z zR*?3n8T4ivBT|^UCb7}zgpT><`vVBm4G*F}FGCgZ9BxuO5#8)!5IGbLoR!0DZJ%_LT=ZgpFL~H#H#}x*fDsz4_{^Kc!rC6W4AvYco^S6rTW`?t(+$6{R-Y4%K zx)gL0Hxd>Oa`Ov3sgq6@ryep}iE!%{brg`vr1JQ=2CYUC!|jfsw->#PFK&$>-#}H;f8#g+U8%Ns>=yoH`nATqiBM zW@2Z`{Q47Ka(tbE)Rg-MNxgMfB4Rt8pqb?{>q*63a<0Vx$p2lF^ThL5MCB&5?uL`X zy}a^nw-Z!Vg>mwOdQ{PmwXsl8O~=uCYT@%KeFiDqj3|nd;_^7Z7O;l0vFDsEUf+LW zH-Mq1C8V4EA%g_9>RYA^%+%KK3-e!UmEfzZn5vgIzwKvSQ!sdZMyw{7vGww;MM0vk zuR3qV*TA^2*j(Qh_qHl+mM$pVHfyAzoA9!_!yJZq>+b_uPc zoxS_<3Aib)a)%-kO4r7jxx$BIGB%5@vtK&Z0R9gkqd!$H*kZWZSKOYHBz3$-OrwsH z_Ug>5OZO@=A_a3+BdPx_zSsL2jy3Ae>9*Od7sJ(Hu5>E)WL{^lji+(z>3ZfB7fXWY zE)YRq$=iGpe;X#y>p+RTslighDtEtqFQ=w9&TYcWl?5)RJb?$qNv`i&ALbtaj3$dc z`=Rq7mT)6KT~vQZ%lTzNgvuvLFNKwBCt@UjU6LN9$ZMODl@e60m&A%xuh?R-&slsoO52ghE09JClN4|6=%e7paS*_#}Q zUWvy|SOmv>0hm$85ngl12!?!iRYXo)UN>yA4V3Tno?9Jn1uP>tS|M96yw1N9(VW`K z#w&3X*LnWb1d)N=BV*GYhMW}~t39CWfdK+kCU70tU%A!-N}n!|^|(!|4Nh@N14Ch3 z4|fZI1h{7=1^#6`%Z~?v_U-9$R`=RAK=SlXxB2-pZv&Ss9$a|&(*ZZ^%tyz+zsnDL zU!d+cc16)rSLfGR3kk8SxqEdDnyyE@UtMh~OnCS7m>4D=^`N)&^!Q}#bC1KuudxFv z$U+zHKba$yTC-~^t@K20cwCMU4f@4lL@SGjN$>AnKRiYd^=rjQ?eD?nF4~Vgpd6I$ zC%91Wc#Y@Z*<(3oHX#*pqH?%404Ban_|!Vo%he|IozC^x<8DvUQl#hWy=TDT9K%*oky|Mdy*!nCHCj%MhxP7NT4dbD27 zF{Hk?>80}gkTw6c6D71 zyg+*z&AS*;fJ)tT^*qqPTeavqALeaKlMPZyiya;34vm)$NOLXYsD7UeS|FB;HzD%d zz785@5VHOL(*+LV!Ro7*4cklTmoYEprlm)OfI8x_@9R>*hfCBE7xtM1e-Y~|L_QV* zN8OfT&|*q>QL@PoZ!1xQFi^MUHj&EhLdt}1zs5@%lH;I1@18n8NBDC;g_gnuP5$tU zKir83z51S;^9)%VQOfRoTTwDf>}Vpcp%A4ff6*Rm>oRKMlh6)TR{0yYbV3#5RGE2T zjCw+o@2MgXBDT5Uh!ACxAK-vI#zZQtL&Fkfx+yyUnOTw?JhSt&sB=RZhiO9pM}jw# zlTsMHBz-!SSQd@FX`HUdBXdO*A&tSgd68kSVc@q0i5j`TL^^aQoTt>9>~I+}B)16j z+ptOCg`IEU@4S##Ny(70eV3a!OX~L-X#csYzt(D+X=af*xxL74I$vaNK25A>5)rX$ z>2l$8`Aafd3kz+dUz38j>g44J=cl?DRwI^1SJ0+GO20}hv3CCi2omHI=7O`m?@;&w z26FQ9r;Bqw+tEnG)lsB`3;AZTYwBfvcZXCDOdjH=3FwfXLu3oda?|x z|NFd;bKIoD=93V3*;L&u7z%AJ;x*)awKpy(SJdy8i>-r2tb@&Jat#Nixib)>*^oY` zgzSL2s!${Z*53N4q_Xw0e7Ym<28&^q28=v#?*& zZ*7^eKlM8}1K$-(UeqyVET~tTbCO%9$K0GU`pqRkO~=zwO5hamc2n{@B_YK8aA%3= zOb-IO8=M0@`(m81(sn9b1FvxpYumAXo4@nGafGs-)UV(-NS7z9OkH~WxxcaBsLD(u zUy)K5?7?C2G`A;^dRSxyep2)U>7Q2!lDJ9@oT%jpuN}_4>w&$)B#`@T-XHP^qGi*( z71@L#BWK0-qphlk>DC>salXgoE6VE)(GP(sV;w?4o`Td!?aNPYd+Eph9na=I|A9?| zoy5dka zViAr@Ycm6iIimDLFY=;qUyKOGW%SdEkSn-;wdg#R4T%`Br0RZs=Vk|S`Aw2Z6!QB_TRRz##h0Ux6S8} zJ)93&!9aZa=wB}U3ejD?mT_KxtB2d&>iQlkq03UT^48V}nE2P)3JUk6>_nq~#CW*) ztO?~MEO5_!vm?B(zw!VTY=*Thm8dUKLW6`u6a=Rtzk{bp zeryMsWs)~Gz=Ox|G~axw`I&)fO&tO@ld!C7HTWh#0;!K1C0*A|z9EAn<)|3lE%>dm z3v5bZoJ0U!+h|+4zCKB8yHOpdqu7U5H{VVG3TYvkElo0aGQ^kl9zEhXZqV3t5;z<| zA&u?LyV(L=#IT0Rg*M=EC&ObZ&p({bM`JPY5WDBF7-U$1$Wfm@sRuQ~RwU}2f5hE~ zgy4dHeoE(NkHjaQ0W)zUD~SEPo>$PyjY0~}F_-D}YWyyq5U0e^>`=EAsY4X^UZwjbrK>~xZVOI$1Z#4XuCgf#kgP;%;t<|2946t}7 zJ+I@BdeAz|ItcZ>KOKG|Iw7}BtfUN_yQqWiOrnj#lCxrTZgCVzZe8lU&!Q!Lvk)a5 z>R-@tiSc(7JBe!qxp;mn2$RGutxn8~43xuL@fDGtW|5vxc2Kk!C+vJ0XB@$oNVXRK z7-BY=P6e_1X+Aw07$vy3tN^0zJfpqKaQek-8;>jRS%L6bYWOdH{ zQG`53(ds;T-npy&6~WbYZtS`lA5fJTcHNs7P_Bufq0Hp`Z|_GlIV*dJuDUD9jhN#s zyWM@oRvDV<#;~<;^o3epotU308uuinAX+7US3f%i>G*N9+Kk3hpnuuQ;!T8?Nr4K5 z7v235n)1rBOtkPq;@pNaYjG~2u1uzPvNBpyD3Xk?t1ZAyJvOJ7sZv3qMSyjt?1k!t zHLR(yQ$nwB<9;Pag#@>ht<1ei=7S06wwb*p_=u$_gBIIU;m68&lV8)DYk)6>Q?=et z5`sbUY%f#2ssC+Ppm*sr53{o&AgkwM=PrIp@#%Y3IqhH*(aQ`tA|$jWO3F{&2O)kS zxlrEoqImE8OX>Yw?^NNs__D6u#SBN|kdWcGq3z{gZ@Aph*EqLV;8?IxM2@7*y6V!J z9oN6m1uZVg7RE?KJkH0XP;aS+6JOq0bJ#Ck+*W|lJWsYRd3j;t z+48qM7t#Ga54m=YlV+ulXU)^Y&&A+|J_dGzeHt>|pv|j7<4=rY9OdRDL4lRt3_3wd zX{~=KS131}iGp+xsHH!L$zVDzF8SSlNn)Dw6uTzlVm zS5c}{i*)8U_JXFOi9pBzi=gCJEp$euN`Dy*hzTmnlpN0enTSISO%0FL4DwQW7vYK# zjyZlm#T=wFYbDW24`I>&66{Rgu*pzrzj=jfR<8$jqr)fW4z3(4JG|M9mS z7lO_h5}M-=REzM7tc z!bK-nDSQEGs%c~V4_%6%XJi}~X|3visM8YSbr_6tRE?8I!f_^)K7E_NMw61SF zTWQZt`v%IKfi7J;r=D`;9jEy@2Ft`Z`@R!^rjWG#jpd3?QW%p;W;GT|KdSSi_xoMv zLl46F+zGo7o*~={jJ%_wz|7uHxguOVXVWz=jVR;g-Ezbb4wCO4uFV6+j?q69EXj1) zGv73NZzq&nP?!5nq$cpN5LJHs?(gBG-KQ8FM|$>0dVN!UB|$q_x6YkxGJO9~$oN;I zH%tCc8}_h;4upWX6wsoEJ&zjyFFh}OA=;WqdZOrNvZ357oTxJnIo7bhkt{SJAt4?f z9tvlxi9HUUS!M9AZY-SPPu8n_Fb8(x;atR7pU8UolPL2xMiOVXQT6Y9;Y{hx0rtBo zM$xBwvd@5ERD`;|`w4KH2ZZC!pQJY;`e!U8-*+Z?D-2`HOu`yz|+r{OES}$&vW4D=~99d zRFbkrlcH>Zibi#3xVy-%hxPLGA-BX>?SuVE`O8kmyB;UmkKi|Sw*so3-5brMrGf70 zPt9|ojT|yo!uy3Rg0N&nOoKuV1N; zEkUJJdZFG~tGdeuV-HM6RyibKqq^v$2{9cB#P|F&Tt~Pf&;`f%)Xq{T zR~8E!0-xFXSa>BND2VDnQFr;$n5xPC?4Gq6_1?j9NUXgGlt3{;&@sG_IfD^Rl;yKq z%^npKZMdV9DI5NIDdQ_;%+)#AcK7%_Ly~_4H+TYmR;BwSw_rWa$Cjg&L3oBSOE$ff zQvhyak5O4QRrh-C0Pb1r277S1-*5HWkh=*F5k6U-&vlXP}0pmkRIk}f8x-0(I*@2kEY$4z3_4EvvT^0?=9$5Q4pU^y{bq+=GI z@Z2jaEI{w{=^v*>+p@tAE#Qb*W^kTn{UNEKa<9Y6FDSmgoiDF1VYfHJpl7{u8?sbL z^#}#+<$ErMzNyt<(k!uYE1QSKiTFT_O1IRwFhS$2(O@Fh?ceqUup+wBi8h9?Nz|W6P{*K#`(-UAt=VL! zK96ZvcKe5#j(gK>UO^b^w%99@^^!+b^}HUZmciJ*ynSfx5}^hMSRP@gg~dO#ykk&l zZ0*?+6pQU^R%jDepfy`=4Z}%sj{c1>Y{G5=jOitOt=57|P)5#WPc(fs7s(r0xBJ zM-U!fwLg{0^JQqvGiQvvLXSsy;|ruCr)n|Ig?eCZ3cd*Ix55~T!6ORzB?SEq9d#Z59zn~;^TF&i65bP`djI9OKA{btlQ;z_}) zdn4;_(PP37LgAP0Unf=_sO@c=GdMFakt~P`;rPuCjtP}vKpu@U*Gh{oYoNEEFe|+(aA~rgZ0|b=GVXT>t9Y_2>5fRp*;D*6M&!Pb*da z)IV$ol?&a++AW^lyeb*TBSyW_7&}VUT4N`mD0mqe zJFB(^^S=XWDv79l625qZ^AEKtHBb3hHZ9sS@Oo@S4XWI^+>SKYGoBIq2n%h{m=%ZF z*GpYU5j>}t(ht1QZ9g;9Y=#nGv;0+k|ImWV9$!I|iQqGh<|WTytRnz4-t?j|zk%>H z=ACW0V0J`Qvx!ewGO{W4Q9(q+4XJNa;B8yX6~ zi;I06OTam|zJ`A{0D3+sUv}c%wB>o_2ml%{Sm8;!Ne6}43Tq187)|H?O5+kXTidJ` zWg05)xmv$2>N;mz@?>gwG#Ulp%3mUE*@60+L`r7dv&H#I*@5)#G9gyqFu&>Lcg|yr z#6xy^`+p^1HSYU5TA=qlMXaT2@w~?Jl>VZ0Y+`_Ebd^FhrTeH@8=t;{kS33DWyf}` zqj@q7w^Arry%v{7eefoj@)hbK`BQ#n4;lQ7?SMKFROtL$B;A66r_I%`0O+wM9*Ri4 zu>Be!bkm9Igx6T`v$EF|puiBJIhkWXVpl$x*wCqhF5s3&ZQZSNZyUlVUXD&iH^$4c z0=+;AxIt&b?>0IEf;DG-nSj;^cr$d@`E*bY>W5u#;7Ef7N$bh}Ah-~nX}69^il&aXd=IrLbEqVFb+~O)BfC~ws zPi~T0Sx(6NPyTjJ!93FCH`?d3(^&QOodlyMVi?mtDoBHgSJ+L((|#`J;gAyLf&L% z)cW+wLej&p$SgG$+~?NqNv92LTCXQJ$0^u`Mk@K4JoJQtiHQzK=soV**Dr%{%eaVq zNdb`B0hAOHv5WzZd45-7sa0r2YQuVQT23KzvJu`+1?_kdM?$etmo3D2sMPM zIF&^1AFDJ(6`T2o*InQDp|#r;`KT=NH+5zxMCQ&n5gJ~H{OTvZ z(#E95RwyaF{6O+0bSabnqG_mO{=cGW93X$(ve6p2O1r({w}{;Cze29Y;e~`Mg?JPOTjtJyi@k_X ze)#Ym_R?cAtoP>qkmq)|M~KfgKkN2L$R>Xp|BxIRTnupfLEuMhsd2}M^hB_=!DQpS zQddCVdeamK0{3vZ~ER+(%SFF_}<{KF5^6w?c7zHs->13*KxA*KWAW zSf-)UOTaPCW>637(?yV2)bsbK+;x2MEI*vN!fBLd@{nHZ9*1RU=}!?Z1eTgzi1)iU z$0gZRE-!ApM0%44axXPCsF~j@q$gS5Vw=+ut z^@GsA1?&ZWMtY5UKD{cUdGbeAOMN=~K_KJn$@4vZ-s7364&3~3mp*!Xw)288tg)(4#9 zO7yzIP2fZ98lq6t%g3SUbz)L{9h+D%8J3Ir?dbp<#CJK8WJ2#cW)JA60{XW4YOCk+ z>4cIiadI*{@!UWZCRi8lar~u-3{HLPOKXN@{#!mTC#nVGUkFo_26&Uy8=JE#0d%i^ zs*sz$o)H=89ZsEy)bEIf>EeUyrYoVBJ&lYyw+n!}*VqG^p{}f`)^P@<;Z(wgs+jBf z2-4F=;!paOtx3Xl^G(tBm-{&-r<*T*l-@(F;Px~fu2b)sm&Hr4X%|NS^jvuBYtb~A8S}|lG%}JD*kVB zioi}^JJF2=H~R$WxpQbpjejb_BZ#ww%5zQ7Zgn_Hp@1W$OEvN5uPAw>o=o7#+SR17 ze^Y3M6VF*NQztSMk3F1%8!j%6-MQF2HQY0z0Eg@8W_*=6PLllbKrK742gUr0@(^i? zDYDz)@iQ%0VNAQo)6U6Yb^&kWNt|5Nh-XYmh7_oi4XeNzstuWCRVT-l>2e2uzrl??skefEYo zwo7sA>FqvdIOO>8-9@S|kHb)(6ZqIjRkHMBXF)#}E{PLkfw zT4uBN!d?9^XBm%0(M1;wD&>ubqcK-Zsh_kW?6d<7C6I+MYZxeq*q3dz8dm$r(6tO@ zP#eLMnRENO=yrAvZAeS`pfw6F&1@TE-3K6M4>WOKE$XZ%hat{Zc5cYNx)JMgfM@|X zr{Dl~4Ij7QjkI$%8K)t%B+B5`IJWUpu(XqAY9qGD0`-TBFvMEg2eeVGZkZ^96cd_l zqfBvDjpc@Yee&d?fWhOj&fhZjLg;RYPX$$wX9c0(PBDZ5)__*uwxWa6EV3qx9akX? zT(<_@unSh4^M(M2n`jqZg{ZpR25KGQ$KYiD2-=PI;~|eZW&u>lG(?nFB@;zc+C!?c z-9|RsuljmDB8uvzl*#!une?-s-CC~}>*#jLJyKSL<e9mxdqMW>0RKja)4x>jY|5n=TOuafd652m_Toy6`)j_j^>-%o1h!@Zzl*#I5vP`@ z%a~rtm#?ddTod&iMD<^^q(gnUMZ`bghu2kW{^=Y(vZ^}^L*S9H{FC*YW0pFJNLc&L zSridvASC1dBv1@6E+^Z!{A=G-*_1IjwX*Jq!Hs>>rc^1=6&Cq^CnY^0tusUcRxY1z ze3bS&Y~$wmH&r4r;2MtPoo)5w>F@N}CRy`s)@!2~i%qvBM0g>Mgrr~NT#MbVN5L&e zOD}Tq6?jm}9&bYY5A}x%Fn4;yI^~tG-u8_cNEW^Ma2x)SqS5H{Z13JldJR{;4R7Ve zKpX|ddw^)!pS|M8pI&WSV5cJfg1?-QQS(0Q?Rr~pQkNpP>58}Enn2Z|vK+Fg%Tgl& zY@X>BaST)zhDD8J96$fJP_ASa5}XfH{QaZSSjkj;`qu6pIZ20F?vbW|#VfrakBVym z+Wiw?(X26Drx4{`tiL5i)pra|`sz@CQ?@6224CBjV?Ddln z{df~c!l*)eY31(R4~jkF5!05(%Pid|8Bu(<>MU7ayA!%~{g+D*?zie4L_YU@e(%*U zCL-0Y(>Kf1K~dt*pOy(`xEEKKnQCzFRrsMp2$~f8fzVkg1);HCyWuMbpzs3RWxf_> zw91-yC)p;R^%i|tA(MfpVQ4=;3*S}Ma_fSWG<;^l6C{-9vC!9dWkr6Yp2zB(@|?#0 zd7LLxhPUio87b|6{$13UVnKd=BE;kD76`kwOZD|pMe^*6G0TM@JM@+21v7x?0@`ky z!)FCwzu}?K3+7c`mvg(TNB&DW_pjp6{X-8Puua^R!5rU?T?wR?Hj0!d(Sxh<5&Osk>mQE82H(ewD z)`VY>S?HsZG1{DYuo6AZ}}U_xRx2t0*D!&jc!g|&I;z*o}Ltq zR~BekPoBQsO*Rw227qVx6sA`(r&t10qHSaKkKTIlrCN_=t(tCoQ1x&Qk@C=*&qstG zJ~EyV5{Dc5!5y)6XXYf0gv4}Cycxu@jb;?I7MWHNN(m2U#9yHj{lJrE96&x|Yvc>% z;OR_fr^nU=DfLzmOMk&cP8FVIF&5Lg52m00YO$^&jRP29w1g#GkQB*xnJMq%H_7p0 zxgwFtSk`r()5&O)63LORH}GoyUL6D%!-@h1BPkkb!Yr{w80r&M!--r;-y$!c7t`1N zb*avm+q?4bjaROlRi}b2O-N$FwjVW0inC)W*tT61#2V6?g^Bm3(9M5A#xn$8^f9`y zL=oH}9X`v+g)V3jwuEBZ@UXC*4RyCp#qZ=m|MY`Fp5nooB}KR0tqno*dS{^EOI@8v1=tw7ZSZ~ z(A*eEx_-^#5iYuJEN!GbYG*DGH$pPANY_!KxJUu1XG`uiD~np-6#d})6&>%$W#Fq4 zsMq&-u&-9ww%&p%wGIW8V4j~*xn30Zj^lU`&B&U-dE&yl=2uM~*tbDQk`x++84mbuI23JA>Ope$xLIC9X}mhwf70x+wd(qAJXrT$FKD&W2rMF@!wzBw)=c(C*$*3t2o zdX-)%_D_E+N7Os-z(y_Ryg$G4@ZOr5w2P>GzH|s+iJs|AEUu;((h)B{9V)rmqqS4# z=9Zseht6^SL1(R-#gtfZr^4Km5YZbx#RPa3@(b~F!Iqr&m07u@-}*kcs3JR#957}F z8n8rHEM9&u5A*pRDJ=B9A2?b4fd!OhfDZ0L$t!pZNB7a%KAtnQ^Y-gwi3p=MVlb{( zcCs?HCkJLPNXATk?1Bw4ikOp$#p+{UPw*ZdD8LuO08F*KqbuJ7bPlcNI*szLol=8 zH55yL9!0FM`6DBm;9~HZ9e(4p-Mb9eNmTcda@t zgwu}0*>N5}?xuJnI&HG%iin)7lnaj97Q;b@oI2*$k0ccw{ywy74A}El0YWGi&hLYR z?9#oXsz>6YIF9(}O|o2nQoLemp}(N9|2~fXB6j*O*BPRNo`y#6Nu2*W&wD%#?{?V= zrXDJZ@vwRGTmkI4wGSNheR_+xtTAR!Dh|EyqQtgy@5afrFCW0{5(`7K8&A5dOjLP^ zrsmFr631Fb^<%0VpdGS}M(`yZUSCRMVNMd7vf4^x`epRroBBt{1_bkkdp&Vq2b0|d zpeupy4=~8|=oczZ!soX{yvc}47u^$eEx)^Ola{5+U$t*tW$2WPITh+D!(p^mlRvSv zBRII0J}zMW7pMHz9GXS>{JAhgXl$kSxhFnXY$91M{#0A`#Rq(@jQ#^iS9xs?XdQ~b z(xs#MzP1y5RyfiaZEw##i6h9bSplRR2T3gg0!wY3 zKZW;pe5%5U&(N?9gX^P%e?JYFK0GJr*0{|_qVH1{86+A_a3m82Qf!AI+KtAdYXI#1n1k*nOqp;H9AVFme1y zA0gj4MrP|CAdc7&8H`cfaIAi?0zq|3(XX;_X)>s>Ns) zTQlRU+$chh>W^;Rwf~C|ONx1t2UE-%xRbN^xtSjT!2j1;fd>_z{XVPCb?t$j=7a-z;k2o{0Uw+-C~H10F*N%U!jlS3+5N7dq2udfeH9abmh!Kps&1 zl@uQx=;!WtdEphP9f@P(VwfeBW~tWC*;pjB|0{sQurgQk|0-miO0=;3{n-R=poA43 z40vu!$=j#IqsL^4J+Fv(?4QP`3 z%@K-@prX1qP~hj@|JlmVM*1iVTK)9nwJOta8=XZ6;#^ z$SSt9ubWz+H4y>k>97Ik7HDL?zYhlw`y?Hm&NwD6w z&JiBU#n((NL0K%s27Pa#ECDV8Y^egdB~hVII!3z_y%BTdEq4muV<+ncifE>H71{?v z0?42v^qHU9EFNtpB#ih;K^~;NPxzG>bd;38HU4#B1*rn#I}X#hLAmbVvPwhyZwozs zev!#>9{4mez@(80852L&)IHtm^t&{G;?$}yss*(2LjsZL`siq%&sEhZGll%+Q@qR- z`}s{l>z&}L3QLFWn|lq)t>a*=4nJyhV#Yb@lE|)^>9`E2l?Ze%ZO>a2JA!Vxw;>OW zs>-?~Me4Rq)ql4E5Se&T*@bD1S*H1*=3ldlJ6znc?(t4 zHecsgRKyCuDBV~H#d}y?janLPqLP!5-#XFG@WhqTKKmEd<4%r~Hec((U;N)` z17^gWG)5AuSuG_t_58`nrQ06_*a157|BpT372OUr0jIoSv5bSNze~t>xJryD4`IjF zZHV8q6~TOS?*%RafjH2bK>Aesl=QgQ;}cu)b7_G7{qLWFLg!l`@n$P~{dZ5w3taHO ziw4ZHXs>&X%r6kH`f{Lg0U>99w=KZyOtF8<{OjL;5F!PFUSGU6SC)^#|6T!mfXP>> z)xY+?-r&0h3w-jA$mQ_AIq}&&LD`{6XXdnEq#&6U^rQai*z3K&1T8M4zyEaC$XDbI ziiqzSVz6=0HGo_M&;@dT@!81#z{@*7&9k$!L8&%kD$22pF_D5zB9ajh$$tgtyiorx zWLN!$GiP#leVx%{ByqDpLQPrubUA*iL=DV+(sD6h`DG5Qx1&K9a5rXduT;&mk@F;7 zZbhEJ<((b+4kHZlcQoMJKZX{QLZmaocq1I}(G_sRn;zg%6jP_3iqdHx_y%XwW+hTe zQTFu@k4fJc;UW<6w$iq-hA0HuAAbK!W-EK64tzcThpBgruB>aKMw9Na)3G|Xt&W`& z+fF*RZQHiZj&0kvZTp^n-tW8j{>m78Wbd>0TD8`ynl)?Iv8^tE*>E%=5C)y+ep=A` z<4nhp5ur&py^EPcuTbjiT`GmfE zGuqCLGb1++N)N==|D*|!BQw-U&>Ki2+)pr6EAZe-6GKI;j$)ckTcqIxdL$4a)pq!VQ6b>1C=j@Bqb%kK0jR147+_m zxfTd3)X&zMuCl-0kASsF@ED8%#w_1)_4zT7qQ8diV8TT8=>5g!+J}I(kUc;77lknp zg#r;^{oWd%zgwu?0ITZc3@v;PyXIHJzP&PWmiv?tT4xV-mQZuhE;=L`Cy@S|?rCY0 z2KBbBrxc<+2Wn7UaYf~CcE@PIG<#=&^yAUj$uor0FypH8X`?hb^*MeT-d%wsk3e=d zUd8;OrMTn~Mw8!KNy))Tb=TYAYQWH?@=ZJ3_DC%1Q^fpD{H32FWyjN|dos1!?%rO$ zEIBa}^dvK8Bme;T`h4o@dftUm9!DcWWAE&HgT?BZx~TC6Uf=TW`ui7wb=Yp-uBEBz z$qyU`*WumH3!Cs^;?l&EB|=Yfs2UrfVhg;62$>T@z^nG znH>+F#Dm_D-F2ITda3ObzEQ?9zH@D+6Rem)zAEM2Q8pcs>*p+ za;7^j+Za4R;&&gix^ld9<@?jTZ>NiZwH&aGM91NS3ffc(BK!Mjvc?v#a%h>fXX>rs zLZ*H4REKi{7F|EE6T8ppT1raCz-s$cs%x1G-9+kGh0^KCXCT(i2@qo#*_|niPcDTU z*NV}zuBd%Y{$8%FKg6A=zkz61onapxgRFX&f};R=2^pFN4dfNUT05GnPO4|WzP@6y zTIsSoYU8>Nm0+B|=#G1W4<>2b zV@R4QDyn~5Z)PMW2DopTTtQJ(lKBpsvsDsXgoOdFiw-ri5w(5rU`J!k8d|3Hpf=^d zH}S1KwhbrOxu&FH3bZq zkr1AqCnI}b)(7#d)v{QT-1~N}nwlBG!I08AZB7?`@VphJC&Sx&z$3Ps#t$IOJeq=` z&BvToCM?~AE<`7FUhnv+t?rUpiP@_HgG)<&F$ zG+b)1za%*BROG&xtv2)u$YvpK_>0HS5kkm=non%4oUc+pNz9b=HNYcF_Avir>t~4=J`v=j#uarH?rs zTTXTR@XG!#qtEK(*sGyOx&LOQ2C-(;!f3e+Q`H zo|D3LeB5;2KdNWQUK5?zmt>8ihD?WyVOW8`8%%wh*fU0>T%Lp~Q_aa|D0ppGTg8Hk zvVLI)hk~TkUmz@ql8r*w6@F)lwr7DjRoo4FGT%3CF8j?^ma5ByfrK!c4aPj#R4-+} zARz7IsbcK*O?-;AlrU&xXQM1SLq95!a*)fZI58bt@c(cNg-S$#5HI)izHD-6FOBEh zILg&VN$PsDY^l@ho$*KLuY;2RG~lCH0GZfTD^^zuY4NvUOWDJ{_SNM!LwLqCZ|~Cq zEq9q4n6DOk8S4p8KAz#NW9y#WWYI8@!VT2a|wpHrNvu zSm7Q@QcQ53k|fzkIEW$sm!8vD10n ziO(Q~iA!?i%!p`#t3F=y)bufZRRbjIJ5N;X)Zt}rz#F#!`HqX%oamOzHZlvvoLvS3 zK<-3r|sw;^nRZ}%vKH7pH3)-LT@x+!ToLJowm)t?-b&1T#4X@k{h{Fl)n1tsNb zm$x^6kEzo_fW@{A{KJ;}##hOB-(;NBrnBzVuz^9dBFAvD}=T zH6p^I=VxF!rBr~#j~Tyo_A$i1aJNcbHa#y{&iDmQXIW$7A<~=-|9O|bpFH;_!1!%<6D`?V%-VefjhUq|MZ|&;|@-{ibMdzJ(XEA8R6CF0Y|v*`lw_ z_rEZi^dr`$Ly?sV3%lAIZbOwQ-X?G5js7kp>KW<=bR&&@z?43ak{P<^@-{pm!n4K} zNXV=!9(Pszai6J;U6QlRu6BY=uN^BcK!e3ovwTBSiDwUS`L#P`Pq?8XocR&)Rw9yo6UU5tb>{qx3!){7LeV>1uu9aOPZ&+X$Q@K6LyGmsp+t zJRe3*Bf?$nVw8?EV3*B2gu?IcNTK;eUSIsnY4gfqz`_PO5Tkzz8ezv-?w6Mf;nXhP zU%(Y!@xlA`F5&1H`HZEL`V^xLKcVvR!tT1oFF&+n3*3u(%|px{?Sb0JhT4Zsw7W$> z>69p3?$-&{t%L+kU}zv-cw5yr2#+!QQ>&jjmf{vGh~_o%Gaj$use?lWC1tlml4pg8 z%+R+1v;fpj-YKScbo&LmBsL7#Z^i&#+%0bz&7UdtfH;_ab*4gcXks5I;AuEoGhqsH z$Zve+ZG73mHg_{m-|YF5C`*{@=Z;W%Q!-o#PpT1Yv;dw$A682m|AIAMK|yENReoeB zR^3EfM1`0P%3AfTihZcwC<^u|Sh>C%;g)m&FO7jQy3|^sQHoc0_?0_NB_BG~I^ky5 z1(m0kpl^$e&Jq`t+ng_1};){mWKmm7yt(eiqAx6|c@)PO_VS2y70g zpyqLcVdGT>X~DqMI5}g7ypIs8%`vjEnuARH(2a6D&BQNo-8>+C(stDeB_lHh^zre$ z-%Beh#?8X(^~ym>U!)fV_!;~EC#Ul<)vrL5pN@9hkiMlF|8zDIjad9>bQ z&vtQnImzf-6?AMUH2)!!o;;%m=vyCY^(E|GKFw}a5X$_KFX^?~@RYmynpbw}_G*_a z+%q7ZsIz9@x<9>;u8Mf0`R@%tT1mA&t=YrdCbZ+oh1pMHH{l0I-&m}VqEYRxay#(C z?Ax5-c+pF$$u?LJZn2I9m}z$LraxvzGo^>Myh=*jDT2%4; zdYP!md_9BH`MZqrleOBs>#Lsfh{+4i0ePH`?o=I1*XOqgVaw&d+b}-2x>j)mtWId4 zg4Besec{)Y{fIn{xsS3MNIZJUR$4fR>wt(ArTg1!Wn5-~l__VF z7m-#b@P{RUe6@ce{Ub0h-ru>yvbbLHVz~7HuU#?9sXNW$j@}@rqoZ1iC zbLf}_1HuR2jUWG2W%Id+&#j`RQM`mj(eUt4T&=m~`MNuT#nOb5lq;s&A*-x7FWjTf zi74d)O)zbEOp&b)9A^qGp6Om-U)}4jV(HA+hb4XL;-$aco1pq*bxdd0ihr?J_`H{H zVkbYH#SP#Dr&8%L?^|Jt%e+?0sdxrEA(flAS7(x^GP%>81B`NJ@a7JntFC zfV~A;9J2UekVLBfLimg8@M52wnV)&lE@_r6VBm0$H5lat0=vEN4;kaa6Mp>=j`+)R za)YaeL7vumubG~1cGTvn8Qp>O@m1$cY9ps~f!B3DHk=1VX_XTY3bQMZL@8z@wsTf~ z$m@~$Gnr9BV;BrZf}$ruUb0STgxqva5=jD9kc5&&01;V^9$isrCCKxI_b7|W`Eq<6 z0|Ly@wG)rW<j(X{chM7e^&QIhOKvlu(XmiAiz$+gqTv+nlc~Ztu)Dt2(X`8H4#_ ziZR0b1bs*Tv&pn|2ePGR3@|n-H)_E24GM3A0L70JK+>^M%;7QUR@Gvr zFalUhd3~Q~Y@nd?QK$^O$AiE0N3hM{{s2*f>q;SXdYJcfNn=Gpr?e$2JHx}ngQF5^ zA!HZ%tCJLLbx5~T?bRWd_rnnARL6Q{^l=*wf6SxrWrHA?{+>G1ow$8?0%rcZ8xeO{ zNb!o%Tj)A6*jC9vYuKIB9p+O~f6RFDk3CN|f_*H;BOi)IB z7`Jb@^g5ZB9GV+1ltNy1;_^uXA;QnkE%s_+yPu*z1?AD)zqpR(!WGCf+-^*NkD7@- zs4@$uv-1`)_CG(bPz}j?WFoPa_mqL8CUfgVToy@`BP^8XGlWJ-955GrU;RMadXMPQ zOC=KCEhS+>cFmhbv8jFt$GPB)#D}s|F>Nvrqvqg*Q+>Ylyz8}C50aO72<);RYL|O8 z_pqc0#}6$nr>2wm*m+!x8I2E)VA~~gytugamQV)sM%r4N$UNjnDA)thiTWPdGE<~! zjhrv-^jo^aeVNkTSu<~2E)X#`iXh*O&U?ERu6yD`t3EtmE7(s=0cFzGGR!!(-@bH z92>{}o27Xn`96@$;=N&G;~yi%$?-{~amO{QzhZahz2eoxUFbPw#Gy?#sK1weL#cQw zptViYs)-sT4pQeV{)01p+T*t$Ty_`bA%?!<9#Z+ZVJX9(r2BJ*N~-+{rHt?shN-Jye3nREI5fs`tf+ zoSWFKz=3~12zkdMhQ z3tx#a8SGN-w{=Gj>g_6tc6n|0Um@9WU%k_t!%)G!%oC_aHAqMyZWYtX(PZRdEaVsf z#EpueaM=r>YI3k*gupR#mv%=3e3RyhhF3@0u%D%# z3{YWPKqUb#$4)H;N1n>l(U!cce3&jR1syk-NgpA%ZtqjShHPm!Ctoq9F@md@6dHo3 zK{4yCn9BWQbHDDBXgN3rSI_D81?T!|?BQs4l5+K+=IK=5i@iW`8ZqN2_u&96t6s;r zS10B=dS{2r#Y!1?dkGjLGoujaQhCb$@}r|J46xLQBEQyLo zq=Th`M(xlFv-1e%6xrI+Qn&9|N{|WwdE{-7&_5tb`y6b;8(HnXxE`K7m56$?k*YZ@ zYvxky-%oZ_hK1!g!t(Nb%P zsFg|fxi$Tl=J)p?tkg8Dg{6hVOu7{ut@nkpv~UbzN0vcSQtm6P=57DVFVCBYOHZw< zL1GNx{m9z{Zoll|)9fAxGeR%vK#25-V5lUDdAQFru_Y%kH`@wruN4wgsK$^Ji`4n@ z(RZKB#qhj#<>hT`;to%Var0>Emq<^71K{Vsi4*_GFAKQelC8<7 z>mHKHcz@4uDFs&(UHxknCuY#Q9LuifApnL5J<9i^g!xm)6tkl2&rfSfN@HZs?k$`` z#^CgPnnDMjhSj(bAyBnnpx=C3+M+*&|Ms$}WzMP8$#N%lf5-%w*fKn&cFkZ?$GBtNSvZm#Kp+H7A) zAprwr`0uiEgo$S)b(K1P$o8FE=jS#X#wkF(bSE^ALVl1UG{vM!lj=%R8E*kQ4|4Q0 z$%uJu`;V{^0YiSl)=}zHlZd}jZaL-56J-1E&wbH0?C+wZiAte)25wb(o*-NP-y_)Y z6soeJjm?&~1S29NE!&nI&(`Lu%#VybJgJ(ie>fUzO~ft$*+PnG@$?u`&vE>6Jr*<~ z7B;=GbeKB?@#(|wjCL_dv}8`oLfK1V8S>&F$vL>PVX#?cWkSm_RkqBnaCu>xT4LKG z$QOU`W8N7H=fftN3F2AUh$0AZ^T9Ra7CErJR?y6?>5Exi=46#%^fG}@==K{PFGQmO1*``oO^dy}nSe2NM>UkZ_(SMgdi?pG+?TCcuA;T@**y7}U@RZ{SaJqQQ?=ayKJ_@~bD}P%aSdUhbcN^eTb~ zj&K#~A~a)=CvwgH6*4w{@Kv}^Dxb{yVACjIbOcdl0zw|bJq{ZMBZXqTD4eH$6=O@= z5}Znv-s)z~@o|^oQCqe-zi$z!FGKK~PqZU$ik%}|vh|jVIAU{ez4?4!@u6sMa{m@x z2q6N=CHT2@pR~NnFUqgP@mHYds|bH4C$@YiZ)iK=H+dDZqgI!g80f9S%8G1FO#zOh zLn_?fbHdd$lnIw7lJuD}5gfql?*l0@QI+X2P?X+-{tM7MzLxtA6W#hLO+?ALf4qKm|w5|9xkNz2$GEtu5X#ekPsC_j8lA2`aed6Ujkx=7(kQnuJs zbtD9(-r=rME^EPq%mF;LGIz&EG7@`^4yCJFUg_!xFQ6Ctd$ihy+Y(mo5=ugskP6lZqRw+|1oa<@ z{qRNIK>;%z{*&TAGBBWcVTCB!YRFDE=3)zpXXGlEHJs~^m75MpXEW}D2hoILxYxfK zBboNEUqIZ(H-m*H4RdSSF(s0ro?s~gz5(jm?{h_?(Za?RFNw&I6gMZ`M0!Ae;>r7^ zt@?s0h7r^Z`kU3)8?Q6YddCQ3Vy&>;ZIEePgG2Z+oAts4%WpvF2BfOpYS&XSdcW@6 zwah(LM^ArIs=%I}ozYoqW;Se>u7w84I;fMSt z54*(ZZ&MNm;S;?6I`tXnxXT##1Gyamib2M^vFHpQn!5&%=NgTejnw~6wjI}c)IJ>> zw@q!K{e+;-B+CWcO~#7Ljz*QjJx*~CG9$D*XD^P;;?Oav8gyDVI8B--XNJ}iq=e=5 z`YgLZ@JQX?Ya_moAGarBf*_er+g|+XtnSJc9G%p6Er#s;VoT zDj&F)A%K|@$f9gWDcVo%?y0l@tR$Qb?nb%TK5G1$r;i;(eg~TB7E%61Xd=tZcbq(c zn+p^uja!Iw)qJUVXwhWUPyl4kVhp{EJox9Gj zEbUHR49SZrPm%di6SQ1GZ+nKDiew)4yrbJT#S&0OfXcrJRkLxF!%NJ05p9s)KdcNnN+QNJ+a#6-(MG9qDb+MgWtFO39ni-puNt1;&3Xc52TQ%^Mh z)ri!G0ij*g9)pD)+M1YJcQE_+rbhi*MJ)_yc0ZyG@Sn-TsrEEIsH6iTR* zsuiK#%;jt)h--fm5NXRIqV36qH`U1R3(L#mc30QXz`}}$a+Q;tnat$0x3jxHuhum% zJ8ip;M3kA}kX6d=y1OgK>#{CzUqDn`YjeIT&T=cWKbo|GTJSp_otlac4==Yc;mNXc zOO=##z&3)^F;+V2B!9+rM4SyH_i$jB*q}LwuP~qh`XPr!IAMf!lTnk%S*PbLlk?(R z0*HM8IYWS}(P?Z!wVt(hrznlH7Rn7>%pX%))|wlB+}$UbaJdA!l9TE6o0vvJjvVrD z1G{HuoL1{>vLfUCXGuVr%`LAt8ct4)qinf|hztlgimFOF-t<5HVpMs+B&pZOtE;*D;$ou)M46-DwYpmy&Gz!iDavc!547bbPi9o0f3Ux7N@okkJoap$01~RS+9osDk-hvK z5X2%y@n(R+Q5gJ{n6rjcQ_b{)%E#$*51x#wAsh5A9!ACy%dh_^Q; zm-S8S)-gYfuBGK*q86uTWVHOl@n+v@1WN>P0C^BPdRMDWgDN&{>4PVGBOPXmmZ+@$Hm2)^8Pdz;~gMoq3 z*|LS_dB)e;t>E9B;$+O%ZgD+NZdE^6N5Yw3STHQW{bY8SfyYu_S~8VhZK|tt-}aS5 zCgswzv{X`1xSQg2W|Ju>zG=?S#Ptrw0S*tkn6&g}yX)QO$J^fSE@s!E2<-Fb^ZVVD z_sao#2|~THe_Q+U(6Y7v9zt!MA7)NSV^sy#j`;+n|M*q<0sRg5XFwbb271}s&#dn9 zyv@0GxA!+=bwqE!Y;APp2W;rgl*jaX;@iDn+j}KPLAKws!oxzL;kA%(kdZk;c`*jE z1L`D5ABbq!pF0KahWe>*NE}TK{Wy}ibca^B|AJAvre+Th;R$hz)Dq#uN$u2mX);!l z8_~X#6A9=?-vk3@K6R*5QQ5nDH;k?1o>ddMjTWPkO{Bq0Gxv$7(SMPxU#m|G%oe+D zH;n4i2IC+ROD5!$YO}`mDy-9yiRoZ-;?0-ShZ$~vE7=9@LGHd0L`pnF;ah;C^Fv$S zlD(Xw^wM!qOcRK0EKlruZkQ2MN$BVvT_@kpEra2s0RaKYc z>0Cd*L#+k{xwPg6gaTM4p}m6sxG;T4#?e<7sc%a2?!7)$Uq;x({0=OVo;q5Ll{zcc zcr>0DmEQqQ+$9a=D=$hghkyb})o*0hxT+7Uc}qO+4JBLkDp`1gQZCXw%^ZdUey-hV z22phjlLil_*J-@r&3U{__GAhUY`u-AOI~$<<5}VWz^cWF-gqmFqofwW?X{+;J6t$o?iP`?? z)KBzh7aH@tA0}~GwMdznR+o286^LJdYXN8uoPbTg|R%7-1 z+^28*fkiTS+gjfTAHqIdiG+HBcUg!Iq^T);p10Dt#1fB2ac;=)%+Q0&b0W!<)Gq^xZz6H2CM-~ddAFjBP`FW?E;lH6e>Gilr#D16 z(C&NV)QIKp9pK$Lu^x`e{OZO1AleQMWMK)$@#ZodNYmH`jUq}9vnlS(P!}1Y68i%m zc3~%AO|mM8S#k+m+4$bLj;!d~Y%wH9yB0QJ~M7U^QhdL6vlF`8@-!#jYg|*!q$+y4_Fu(F&Xrl zBO_rI-GQd7<0Z!7`Rd^6%FelAVj)SbD*g=y=7IM+Z>z!Fpj7%|2cxhm4=hp`rcO4L z=^CQ%)R>5KE}8l_h3M|-hG|WqY0q(>KP3^b*=Eh_Sy^G)6x_!3CSLs2S&U0GN}J^I zXJ*TN*2)Qo-uzVetgZ_uCWX?%$ZSwarB2Mzc*;!X3sqXatVKen+U26JdUEkT{qYpi z`U`JkOo0m7k6H3uy3N&e-GI?kTIvN%D!jf!ln`)NTblySuTEA4s+jw8G6hp|-F=!q zWMWnP?d^|{)lO+&F&}KbO=$Oc8 zqpECWC(uG*hF35c4JRteECvIBGXvH|=jS<0RbruIgoEKeUe~NkfhOB!OQbW!;rm(^ zRx5F2@;bT_As#qMgA9xx?rv{y@9q>7ydePvN2t#pFPlv)$X|X zZm=JzIfGf*)IWM4>A0trKH#|q-WEOM;+FPi4Dl?Ux0UefBAS(IjM=wH z-m`wBC%f2U*khu@o%N^7gmR>yUp zJ+hA5C$zJMEb{_D&7F4z$jUAnOF`H19Q}UV7vG`3^O}!c3d*<=D>)EzlAm$2Qyo>m z_ttZeF=>m_uh#?^LJw+;491#Se%THrsXJVM*Hffk!77uneOU&5)EyUJ`GMvIPwus% zsixgqNDKPiOu7D8-1K`_kyO=mOA;a3THP8!IpSD@VOn1XZc#gdR-h;({(_RVQU0kMlI>M?YT0=TNKfh&V7|9Osp|VWK zv-vT*hsD5*yabydJP4;i%-~8)&1G+y66&q4j(SxAL@`@Jin@xXBO#6J=)tWc8;ZM_ z$0GS0o1*3F_@)yp3eo9qGmMW4m>36+nHFsB?`I;jM2z! z&bj>8C#7)o&gK|$!bzuhD%rlu0+vxpy2*wx*pF)$L=}(sK6Lb|m3pI{OKifB#au!& z^zBVq%fPXQw~xE%tr9l>FeqTEhy|gID)LSpAqiFTF|UYebAGEk9*I__IX8oM2-5GF zu${l<4~r=H=Q(YRXgWWAzu5vB7PVrn&zRZaiT$YtxxvHj-r9~kGGIRP)z#TO)y@jf z7vA!QfoZdZI{$klJ(8x&S*EB@Y+l=l>YhmIXXym5=Iz7N!(ztFF{&Ow(VnOCS>z7{ zP9#bt3^$M0g`f6G`R=&3$H30?n0d3xZz;KO6hrPBtD?TE^4`wYpMjS^8iW1%GSKuk zS37JbK%=m_4CWlxh{}6+t79ldxSE`*%nyU{P$6mW&a^Y^J-#-tq72ZMB6MnRDB?n^ zeX(xdSJ`P(&jg|)LR}UX#w{*jIoaJWm~ubaP<;!<&|ilY%0lmp*Hk0wpa(RPRn z)7ow~%3`8BC(4{YrX*r>=T4NP)l*~Oz%F3}@kNP1L+z5iRr{d))}bkOUQuNPkFI=j zdZYs@m(uy<9H!_`W~WBwrYhJORNxFz*_vC^4l>v%8%pOxE5(@9WhZqt0-Dk z?wN7B)~v`wQA(?c1Y(Q?^`&OCK$d{vu^%u(Lj%rA$FBHBE(O5!MaftW@xRM{_`@Aw zfEn(6@r@mZLf%|Lf&cIecH zNU#UWh_uo8Zt(uV7kVZ{W-mpmQ0Oqi(cmf1K677k=V?Xl_Y#6s43yaH+JWDdAs{G# ze;@Pjd*DJ~RfKJ7f1on=ATuv;Q_%$DkOST8w0NPrp-b_-^^X+FZ=eH(g`wf!gr z6;_QJOysd30Eqv)-|v`|+zj0xpyScIyW8v6yW8Km7}(ZvK4?g);+OZWx!`*29>ixX z^vAA;8#~31L~A3N77szAD`|P2KQQZcP9!(Vep%y}kD6$#iFp26#0qQwzeoE}r|lpe zqtuj8Kj|KRjJ3ZvPxL1Yx=LAE`hgh4D6G(Y)Nqmg*K-PVR``K3Klkf%8egAWYm+@^x}d@ z0}yAbASfuP7TE=zZGM;IT%#0@l~yR2@c-}gOyPY9zwr|f|EksZ8>dRi-a^|RZGi|m zd@VH^2Q_fRW?hb+5`Zc?2-uERKJ2B|(+_e2{eN!;zKplZAERF@{WN5P&fELAf{miG z=@jT#l823QNOr?jE5vX@$V`|EbIMTVI;e@;5B8LSirW$MD z|KAkg|4yM!+1Vp&8?KsnBaPoMU%xPUdH?+ZT9N7h%u?`VeexL5qkEu4=Wm(fvGQz>ARePT@^Bfa~p=;AG?;PPk%2+wWW>R;h1O} zjk?5+_&+O1{8%-X5E&U6hKVUPF;S~nTFb%`=lmS|{DR=mR;dD+ITZ|({jhGoEiemT z!56;ENI}}4UYHJN5{+}iAmOOI&sc>R=>z4vO1OWHV2Y}`@ztLf@{nB>t;+GnuVK`N z&c&K@-2=LC4)WjfD8QK^5Q>eBMTE+o#P_nWu;6s`s}F2xDJ`WC#YfiH7fne|*U(U3 zaf;*5nsjPxWW-oj+c6?#Ww0^Q-5&4Pw8O8n--~qiX{sZVI1xBxS7|bs?VgYxln-c@ zon0Ue4E1T2{S^OxQh0btbkaQ-5Q;F_IQ8*8XbMj4U3VtxU@FjxcR}B18AfoK-LYLz z&#B)(CsKz5sMW=8ox8fsX%HS1kR)N0Arc-yv%Sy zeIk8et0MmnZYTmKS^mL6{Fr5Snr)Pf-z*Fbwe{zE#!Dlstpf#!f^rE`$lEEmxRs-& zBv~YNC4p8#>`ejfHI!a8WU&m4Qv)}g1=us|nlZ$TQzPod^=D*g-d>&QW5n_;tmae# zlh{_uypf~~Lut_pp_B|Da)>PO+R0jc*Kdx7COY@oxQ$*1FbYMI=ic^LL)qDsyQ80C z5%2jH&*K25A^5*WsR=I8dvT>;2ObS5QO?7BBH$ACnw@_3cc`^4bPtY-`*q)GB+Zmv z5GZ(PaqS~qQh25sq>*;3|OTXF#p?FL^X1_!wJn{#(-18NM#XMQ zA5%d?!@0H!%%V8_@oav+v*NDiv5SAf|EblQ-#?JOgk{Enbs)s~kO2{k(F$)68{SnE z7E_@ESvs=PKjwIY@96T@$}a|Z+)*Ud7b*|>nFd>;9S{L=kwV+{!?mAK`^ym}D}}wt z&Dz9d|8)2O>+#UGPe&E`5oPG&lkIlR`<#>(E_EgIAitn0Y97_^PMc%tQnFU`$$-qb zjY6rmsang)sdG|Szw)Ff?iA94ju(`-&srTpLG5ejJ=fZH3hC~m!Q(gLZHO&kMDi4v zcLdIGJ?d&P`8P3rs=6dKjg3DgL(9v*3Su)OBSXdP;S&hCIczX)^gEJYky!YO7c4~~ z9|(xNhl>@K0#1w#@^HqWNlr>%Vz206B1lP|R~;rK!`B3Bn@zwF>d#~%Gw9Mzf9r6W zMwJqZ7+dorlN7rJN9=J!6mR=Aw^D&}cb9tKxbcud+B98M=y$t$+@t zs%fOB`VzM|eO76W%iP|KvzldYWia76EiTYlOmTBQkdi%qA zz9&|~i6^_|-E%DgN5RVZ?Y!=iiPqGUe81cyyb+K``rn~gP&oq!KqOD4ZEQq4L~}D5 zW%*&xR5$s%(WnSXArKQDkynTxm})GaV9iG)Ciq2|Mp=Z2Md%hl0!z$dhqbkht)nEw z=ll^@fD43pN?3S$i7&sWnm74R>@xj4DBv%gKOIR(pydoS<6O+hiX>TuDZU*K8h@P4 zARW?YEsAz@MC3#OGIOHwQc63evYm&q+YBs0Q!!H|jaGco4j5r&lMfD=ypBnKu&m%b z_gE#0S3{dfF#hkrZsZ3#r=)|zPMI9BQu_&EP)KveT&Q)HYmanYP~KM^q0!t%TP;l7 zBt^i?MzmDgy|z$)vW_=u)81HjDpM|!Qxv*-W36-%;aFx2rfZ6jfhK9F0pgmE?^i0` z2^yae1RiQ`EqGSY)|c=fm0vhPZ<&GdLi z`P~?Lge??#nBe)dMdg?cjp|Gn;wTvYgoFe*4W&FXQ$IayXMi{<9nRNXiusqU;d}PTz`Y7Qa8F_3M57G;6Zs)eQH`bZ$kR+7z9~pVNBNb7puGVt1@`qg6M4jK^!O zQz?IXYWe;zAJ$Z@{xwlWAyj`cEvW+7P==WdLOhitVHokdT ztKkHKMbE*Anz6CBvpteK9i5IZt}y@shkP@l$1m6*DpKNfOAt{fPQ?O|@M59fjlE{V z*ye??JkX|=(MibNx5(%#$CkJ=-W<(0nks`=5=%IT-=c==#t6WJ>f~<-`0&QShIUds zeIgR}ScH#EN;c5Np}*EMqEGHS_jx-YPUGDPTKZO#1)X;4NJPO!Qljz)Wvm-qw&(jd za-Y5QP;vVo+jI*<(fSKQhAohD=^Gazs&p4+hX*a>M?es4Jr z3lBm0pU2n2O8%oxRXiX%n{$RWCJYv011W=lf~%%Rl54qpUZu<1#dqE-W6~%lCZ_a{^SUW8ZeW+jE5ifBy^r_KkHd7C-=3OEN&|K_ z8Cyir?HzUl5_HsDj<>{2H$X~`in0=FV$$y=KN2w0kNbVL$cta~G*UUWwSI;FoUnoi zB$Nhon;`PbU1T)$a{$@uKJm3vBKS`Xe`oOKTVqsHIlID~W=<35NXT&ox-md3(S*dV z94iE1;9<3J)6)>5Awu>E$l@i>FXFGQR2Jn7MVYbOtq%pr8Po2|8WowY);5(L)Xk>q5=SO)v5~SB3oda*=UJ zKr#8y*cN>+0}hN-X`$GLLhxfkC;Z;|fC{>@%F5hey>-Z+f9va+nV8yu zd5=^vAt@;-PtT6j(tu}%-;8l;>b2kh7ycCJ_b3YeO^(R6PEsndQ4)($22EWo%77`( zfGkG#N?TJz+Lfmbl$UDCkAZ=hnD-gIgAQM7@L5}j$P{68vudQW# zwzQPm3;7u%b8DRSGL=A)&hu(Aak|h6&-?xk1Jmz50g8r(hVMm5Sy24slQ6qH3HqOp z33dYF!*{K(0Z%;54fgyzZe#^|T(HZcYdnaEB3|Z?rfbp1Z`wyS1${vRc1b8`NaXH&7P>TIDL5E1A zagp#Ge8cEKMzdU!zjn~4HQ5OT)RX3vI+998W$ufIzo|l?EWPrq!P6Aiqw{F#~o4-%$?7dI# zPj|0gYxP-Cd{WZxh^Y+XK`_F|$$jXVLqeK^u-Kai^EXDoOt z^{>@wsWUug;ay|%tBEJFr+MR1q{`^VUU=H)5~$%6@bFP2Il}6qVp^J-^T6NST#x-X zp&g@(fz^;^YwIB`GIVrhFRzy_pO>HMnd)k4LaHStC0Ffr1*DJji@VO68bo`F-p5E`v&A&(tv&} zC&cN*J_>5uNO-$n`Zun;$V>SnH(I7+YIgAJ*MB+v)y% z)qidlM?N$)w6}fQORCxJMmxo)e&4iI*4OIbuo};RKb+*|e$aWJSOxZcI$bRPGxL3q zK&R?@IyudP$JVf;Fx}rT-k-UQ0gfa=1&m{Xcmm1$Uec626-F>lSXdnp69X{OBAR4Y za+6kQ564%_Y5nI06KL*I2Js>jsa=tTGR;~|Zw4XNoxUA}mAB6-aD`Mh-oibBt-EAs zY)+;sd~9s2g#S)O=8P@3)>uhd3Cw)#=Yx%crDb_*>oQ>cq33Zt5FH&|12j*hOl)iy z{ot@1Yj^7t-Eyz2_V2Gzt=RcFBNY`P@Otr+SwCKvYHN1~2YkDHo})`;=GoP!mNN5O z6U6)NVXw`g$D??R#Jz*F2-alxDjQZi&9g1ZH%PRNw2pimsFjQv10H66J`!9r+z*k& z^!%O7hOn(mR5D^7g4-yWln0D?+l1(4^Mqm;5{GU*{BzMas>;~m&u1WoaZlt9FsoWk zl@*dXz=2+Ulm3J+B* zLGIlcbHK+-Zcxyl!`fUyxpbK(7tJH8@7jFJxb-J`c zD#yF7CQ5p<%ZKP8x54BXPeIp=730?*)ADupv1UI{LwHLD;e2G|Go*Fas`pWygJJhviLEfG@He};p?Il7@NBb zcL&Iy8996AUNphtB5N~PT;SgO;k+6G*h^k@$^;Si7wH((YJojJl(yq2Ybpuisg8TiWb4HKOdIl?eylx!=$=n-Nm1#(!D zkS#s3fi5kBjZ%d!nKTuKGaX($dZ!Y_HCl6SY88jNeMot*)!*Mlot9NWsdN9OKDj1F zrFec@Z1HSR2Dc2%e?$@O1T{iWX|e)k0a~fMj(?;HcZ}E(whE(ly+hX}GnlU|ruF6` z+!<^S?NwJqm_(=zy-r90evOWuBnQ zsv&d;YZ8Xy2!WfS6a#q~SzGQeB`z96#qYRcMyp+_v+A*N>@2w}DJsVZZwMN$RomJvmk}PH)?eNx zG~YL!YrB3YmWB2(6K-uQ?Nws6n~MKqwb>sGfSM9J;EY`zVNW>Snaqe6k2mtR)#lWX zFxu#HtI|@WiFHoj0~SC`A7>rvRIs?X$UtjlgC4h#==SalA^uY(Rp0D=VETgpEpU&C4bA2knSxClIWfq zb`lYSfw#2)3F(*?$Jr%;TCa4_h!@jDnDWL(i5d&9g9s;Or?oB&WZSbnxk9EJcb6C3 z@Dju;%>QN)o@-Qk4HrXvze3hVDyjVa6Qh>+Hw!#u4(jCF(XWI-P_o&4vSgvVZ&Si* z3kzmuW+e8ELCU74rpJCC;}h3eTtDhs%3$O=pFO{sFn?$DaoG`Zi-neZJM8|r!)H6Y zsu>{ozlQ))nTNQ65&08OxiVStYRvCr3+SC*Rg*nzxm0MOqEI=5yr$ zyFt>$*g9MlIyYpS2il-mWM4?gB*8KV_Z%yLV9- z6{M6@kIBT1rj>Bvy3-i-+mc({?dM*s^Kt-2ncrNQVtdzWy6b(_zP~IL%WH}aPPu?!=f=??N>WVprx&3Gg%l z6=Y$jvE9^!FJCa!Wm}WQ&MUUXz7QA39|TU|Dl3E5_RclLoY&_CO2F=4z&i*q-#iCu z4a~zld60|3Fw_K37T6WAS}igN%|R17*6)z+M24(Y^d*)8su`3bNXvf(WhH79k+ih5 zY8`L)=C!qx6Y2FoMoTAoxK{@U2Zx3%_P`6fqF;=}*RVrGL-NurCgxES;14GCzkRe0 zJ*cJptHI0QrIN^3u=zNvU$R|=LdG%LY^^UW-0e%#dp5C_nd)d=ZL&kuzNf_4%OstP zywy;?(mOd#%#{2f&mBErohFJHU+Tyvxbr$9ot$qkC6jhEO2gOjNVSTGiVSeS&=x6m zf@H&Zot~~OA!SuS)Gs0-u+th}2^6%kysE~LbB_LDwdYMOSCn8Sl?7qNC8zY*DERFC zaLfB@m@NR5HCzY)YtOw)UIv|3ae^OfGC9<$OtO+`8=>c>QYJ(B*PWRibmk7g(^Jva zCd(OA)6|6BIV{H3lQU`mWy$;kAUxjIvp-vzC3?eYwK$snL$5AnfLq4O z4=;K$ zkOP7I@W``V*8&z ze|EH3DBg+_bzvXDU6{hRi@uuk&)Jjo$ja zta*buy4mIM&Qqxc%c7;LJC1}PdeHh)ZfXU!dx=pK6EzY(M$Y|KJx6KWPN@hRaW5u{ z=ifu^z_lZ+2?5{tiS5J?Q^p-!C^NWG3DUzP0^CQdL#Hr`MGVP!0I;JOTx3(93rDNt z8Fob5TtGsW^P3ZDGmZ(+U+7~KOTsM+^@KkHlFgz_6Ux|wPJdd4iMW|iBm=j16kD0S z<&?{X_n2zt;*)cPi7+HVk7{M)*E;FcNbS#z3NwQnfv7I0TJn+P&D+gQRJ0iNZ~D)SHe`oxpO^bh zzvA^a*VB^}y5;3%;ZUUPhqc#_Ot!a^`N}FrS1W64cxkB%7bx9Pkc&$lyUbK>#yAk{ z)@$vsVKO%llO~+W7Tdd~AZ5++jOfVEDafy6U@{uStYIUPe()i?1@@@Rr1~`uoOzv{ znTlb2IC~YrjOdvSa^vSW)}P7;2E{6+A-3k^v?Ss&!FMcl^mYLiaAv`BSL*rG%^FS{ zH3}}@_qJ|S2+{|7Bo&!$lkR`N=%})KjaIPndfkD|yPT+qjZ7En`w}+azp-8hGw5TX zX{o8X9nb79>igUQq-ehM96ep#&J&=&((LkHhbHp=cem)5&5_{42yYVSEN`xsfaTB> zy4l@6zulQE(9SxGMul&GdiD+k9I-OOg>TjD#tI;6;Rs8skr@E}DiA6=Y!9D};93d>nQI zW`#_q^buX+av^GFm;kWSVQ0~ylYc&aAd0Fm(fu=pplr6$TKzHGPZ)D1DC@AU4roD) z8y=4SzEQ<^ZUsobC!zVRdA%+pmFVMuSz(CcO=QFQ^fc;Kzqu{FF_@zdlrR_rR;KJ;~}8M-CH;qW(0QR z2)dgQDmb=>*UiEZGzzW+QCC#f(A89#K%Z!6YX7kh5jsx*yZ*P_wB+OU&;`8QOWgLk z6GIvgz0j;D@WHfnbb?PB8X5p^fVQ&YF1Yjp(lH+p2ZOpaf4?s@$BBR{uRMe;221a< z>ioY~f1Ti&jSuVy7S|xxrxG_3lae@-s7n+BIZpsdB~}EQ1r*qydUA+e$l4w>eT);? z*3``Ku8rrG&QiejfsN47lBYe)EubA6RW$CvxJ+M`cL&{k|NdQ4_N}u-OnLifW;zZI zj-*{Ni0P=7`hRWGXZ3&sjNeBHp!=0af^}g6OFSJlC243RHM15~QetwS#6*z1@R|-> zSp4VCO4(3l>(KsO!~WY%2BjCX5sR%uTu_v-xbTDC*Kua*-&bMYxivw`ILRqSux|8O zc@={PW0ID}A;LyucA6^#fZa_b_?P`2L9?A}znh3D_RX=@c<0^0yXlRMRbyjgzID=# zfr-!No0KfI1Izntl0RKi(o|Jd(UOK+0HvsWZCDIGHrD-hg6=b^rzGTV_GF%1V&=gw zEkJW}R%baCLNflHPti(wL3%86lSR3gm|`5QD8yrcDGhnUEu!6?#Pcs>1FKY=hg?wn zcI8D?R!8>`iNeab@{r#Orpb!>}KtYi=-!JS7CLF(&uG11gi zLP>e{^Dx~!H=Em!@Tj1pqmoQK2A9VqTqr+WtNuO>99jd3FR#ISfExh6%s)8cPll$a zuZM?0SB;wN0A1md;Ma9pTB{P<7OzjjHv1eFgwFWW;|`G`Hp%$poumElx%Gn8?FY>f zkWcBw=Oti>p2xXSM1lZQY3@w963Plu5wXF+8}q$5xhxAaGq<~wd4AuI-J|V4>eV`i zr70Y)r)+>R)MXgq$$Y81tgGwHS4qd!=BP!C`Gp0nG}?+MQ7QKxrYOjIQ>-(Aq!H$j z%+iKIb|Mm6^#37%%%J5_TlqDxD?(mqQ$p^GrbnK?(^^-fw(ODUEl5jIX3nZ z!T{-m=yOwDm)Ad2OU{761m}P55+?AA5cjf=oQ$omkD;TZDCV+qX8J{R#mUL)farLB zc!tpb5LQv1>U@lfDp7izaJc52k6`W?E;Ez#X2Jiu(LMgyH!27Z9Z9Q!P22n{M`9cQ zsSGJ;@{5+c-Ot+cvl%9SbXR_Cke&OSQ31Jd&@!w5rmV8&t739Ws`TZoEeCPs2pt`e zgsiMHO_f#wG8vVGOm=05!tMSB92(pSm6wvUqoStc_d~vWSZz-e=IMHML4c9L%Y}p2 z<}f_Cc?<|ROif2p^d~ze#LL@UFYRncZ~^;@Pc%6GUYI+Jk7}@gX=$dfZ)9esB|-UE z07+FvH3e03-UgJk(DCnC=gV}>%J^{OKv>h2B$H3|=r!3Q?_Vv7 z5Rq4fzPrS*ucxj&<HTkpA)`th-IjneIe6=Q_B5+pUO-wMXRTV%kYb z*yq%2s=ios|N45h)}NN+*SC&^A?vERup!TOG5PD5>0m%T_s0JfKdtfqH-)mvgPyDF z8%F6=6Cz8=Wan>_g{(~d=*WGxkjWEe9X>aI-Y@k^O@WXYFSTFX(Ol?9rCa7G3_!ka z{Hr_b<1jmQnNLUTn<{7nKIL|4pUamgFBWa23XIaORQL%L(!uaGL2VHmliM1Y=GM9UTtim%I8trjgcyGcP2) zBt!%>ZrL|8S@~;^z?inePruP)I|@F6bjRjzHyG=hlvd%`?T$|6(iCzWw&TEGes9O^ z3|VWeiwTlI3j*2#w}1hSRXn$UO)EYrhkN@UVCnFO6U8&2O7J8Za8y=RpP%!8CF$W;ouA)N z!K8?+>r0$j1%yn+#p4Z^O}KYq`g9}o2dwEKt!dWdhcz4TPC=ohq^r*L-x4B|$`41{ zyxvO}eb9OFo#f8uXGGSH5~|H0yZ`#Q->6;R5p_vJ+zGXKzd|!z+mib+y@#zO-s~`M zo=?)(yAk}*SDRq1epyP>%VysAlUk*Yn?I(aqn9{r?t~LD8n*I1MLbdP%3-ZHsub9Y z1pgJI?PcuQ5lqth3eXXVes_+_xiGXh2fu;+yg`(rw@;c4$Wd-&MMWYLsjnR-HZ}%k z@8mB)0F#KOAcCoy!rI6RPku^Z3CY^>;sJX8|0k<) z34LvBEV{DV%;LG@6XGlmVIl&VYQF$Q8`u#<%z)prz^CNfwnv3x^9_+3EB4z;lW_(kLiX zHJmBVO)1RLbT+ESAE9+{aAh6kB(WK1I1pJd1)dXjDe}3I_3rmK{=)QhCm!C?wwI;D zk6j~UQ*MW65#-Z?u}wj?`D7Eq$hV_^w_w%nr#@@2rj*)rWuQ!$|I+){Xc>3Ms@gPa zg^S)CpN9v!iMFdke+&1)>;8g^dLq~i%F?pS6#fjCR^heVKBjeHfp={M`4M06+})Kc6A zE?4?sXds%<={Pq8|G{yEfhxCEblaF;&-r@Le|k@aABpTgzTwP>qbqH+)R5y{oxIei ztS5+EYbys6vM*{;j~<;=lzY>s8gq8m^MWq7nKoTMIA> zMR0)srsr6EF_m1<@LEw{_TSJG@LS*o1RE}Gt8?Xi?TJYI**6>og*107gl{6Jd7`FE+vIZxs#PYI-dc^$goTI7$i{>Fv2uhkX)VytE{j z($g3Z$dW1~Bx~gitl|B)t-784%nt|^#f5?Ymssk*6pgRW&$c~AH5MnAD-AF=#mt6Sk=-@4 zfvAM3STcCdv>@j4iiO5Z@crNEomfH`&=IU%!5thnF>KW>wci*A70zTWMYHp^>y?t5 zIu_Z0uNvWL;LU*jcYzm(96m@u&|5NUIX&agkn~9WZ)zzq0q+0dsRp`O{GTs?naTfD z*Z!AAh$X`QFJbimuYU-q1TY#$L%y@EYBUVjMSb0<0$^P6znPEm3!+VW8k7*zG1K9w zWEyp@3OYJ{O6TZ+iH&Fulf)h+6k}9j6P5@eD*tduF>GrDvv6jo>QjY>AGTZqA+NnF zEi=hE>fy|n>e-IUv!e;X8qWZbECVOx#TOu2A=k`)ctmm_Mi_kE@pR&ZRSq)N|-Sf(ix#LvRxHqmy*krGn-Pu{7pM5{hreEMgWkyn^jJGWXvLy(cm%%J}#=`txL z)^WJ=`?h5Qv? zQJ0V=cK}tIT`^*I(t%d?nlf0-La>ljWv~s!<_V0r6`gM`W1;HOQe8xIdK@8+@Q-7e!900QVhy1=GX+DwsIm2-NC^OKER z8TyQfh_>46f5*HSs!DApj8o3uc-d|+3^QJXLX;H_ELZzT+ zyh^|eV#3a&O7}2MCz8)lId%#W<)>{+a>{jj0|-gEYm7;PAO(c!YuWzMRKd_no!z!F zMemJ~ET7A_x_`FDD0k64-D&T?;yCH471!U$v+qmP7`WKOOt(nbJTCy zo>pb0s!m3uJj)|%ci)82C{x~dw?6Dn%40g3evpg3E3$bX6r}G$Yt+ktz4kmunM)}( zoIk-$jH|m^r#*Ag-T+iKN>)0a5xydRWGv)*$aJ;W+aReZ@c|q3RK;NLIy~`@s{h`g zp>@&nNP$HdPhmdSley^LJUWCmX3!#7>4+giR6>8qEEa=`@FU#fez?%F%vQ*$x&SZA zmQ`zbB2io-PSPp=BzX<|nnZ-^c?GTp>cp3{?i-iof661SZ!UEe=9-z1T<&rS*;%-0 zKg?@M+4c2Ou8f5DuG=0fp+S>d9+|hNe_J`-X8);3{V}nx3KyO=FgEuMH{CQRs$WUG z-YMP$&6h{W!|34WNoRh3LM2(6{Zi&%L_b5>C1w2Pm)#-zkJ`)@4ihu?)VKs(V2`c= z>5q!Jgx}@>A5&J1Rztu2?9AJ7Nj^qvHi%*#`BBdo%r|tifw-jZ{m+x|=1va9!K(F> z4e1{0Ze*e(FWqNdx`wCJmt?op4vly)N6ILYNB&6|l0=(}%9S8A#iR{Rw^#0L>8nZ} zWjA42!)WpkH5btofej7Y?Se?6d={D$)A+f|GarD8M)VCj;`bX=1>H9stz(y zLqxObv{Jgfak;BvKI)>+p`nzm!!2is@qT(Y9Qp+`M`taF#|p(V7!Vd{b+3OEoLS1F zl9pQ&_+S5VQL-!k^vA}QS|!z{8$(bzr5hhxC1LjCWomX5iff=P{r&on)bTwVj=R3D zqp(7tIK8nk9Y-S3`tXD6%JEiz;UUhPDnsCY+eRF>I9a}l8~sNJ`^nZ21$XYG&U=^b zNGwfryU)Gm15R2)7w`X@qfAX0x6!Cp*`*#_N$Jp+O{D-&$+P&M8mgsv{!uL9UErE+hg z)+NGlQJGxP$>de0i}={y55-dwsAKSQRn+;#X;r5ty>j}ly#5+*a&;A>cW3^b{pR%l zy)@Xy07OAV#@o#ftANoZaW7>m`IG=k_6%jj?~=0Zw+km`$<#SIT;__hWr3TTsf~f_ zdI-@I@%o#&`C)G)Cd9aLWRWlbi$prxd;co83BLJ|4+DGd zwJ`fMxS{(Nbh|1Vy7WG3m#DVl@+UAh#2X@`jUGr{(Gp4hyHDPR>^A{Qu(2tY8BA;p zVu_~6{BI`uqza`BNsh`26_eTM8<@W%^kc-xafoTN^c7ZfD^{RfWx!^%a=U52QCSW$ zB$K!WdB^hW41&745i^U6%m$1k-OmMYACd_dqo(8tj#>-5tfKT zX4tKkSMMTg4Rc=iMP|dtQEq4;)~0t&EB~8 zD&3`K@|SRwr^ofVC+x2wtky*ItDR&CX4a&Ru*-JN2P>wR-(^nk&y26sV+tCyfq6!$nh~!{)U@1llAr)8uyATIngq|8`bryB3bN#} z8B^m}CU(0y36T)r8Nl`~k~H`yC1SF~(;ir$*enqhim2FhaI!L4bI`30<6q+S3SG9#FKAiAKQtL#X9 z)#u6WFE)HDUC4s(>I-4nubJlW?k6WdJm@~>ZV;BrUt+#|52VnB9vGmYpEr^r(!Rbp zQz9daxD(P;k1nlgsH`&7s_n{28VMmLh|0k)ttAL*Duz{2Q~QnaAAT~#Tg)pSX~oTn zDI3Lz6dnx0?5M;3lCfBtiZ_pET}2j{OUE9qAKp|PS+=l}{}^$#Q_42C;!+5STJ)#j zm*0gB>L`hEprQCFcg=KM^CEGj`D}c;aLnV)z}?1QbMr;b60RL zW__^Q{nQyKn1;I*^wp)6%u(m@e}m%xcQ3$&*e1JCf8I@s+{^EUAHP3^A$b3k zVHe7^kIRoYQr_?>*s@25Sf4niBX?C!!>Zy2G_zg48JG|}= zRkzM?*(~&L-7Wb5u2c@DxT7$yiyzP5qy*X)SH2lu-QT znl?jYZJiB0{Uu>J{Y|aA_6zDaAD5J0AqNL=`zdR6Uw_rrOgAf88Qra7)kpg%V5(>= z`UngwpIV#jF=PPueV)?ld45W?{b?BM&qnD+kagDC3?76$HT=Psrm)Q&);3s z^?VZbwF_8ngu%QH5Abu)@$lLK8=B!HDrV)=!O_uEJVFVDsECN+krX;~G&HSkT{~QW z!W}jV_GExXZOqQXNa{PWSuTM|J#IG%TY!DB8>K%16H~G558t9< z8@`#eVa^c8qh@@$6COp^pZ>!|=QU8&?6?UDVHwiW+UoQEbhy>)eLF4A#>O_b0+sLk z)3-mzg6{C?FgKUgT5YjfmyV8ZbY$dbqv;oJw=?%mA85I!`boY~86|-x`|dZay5ar3 z^;vLeq=v@E^O@q&seEC}P&QDDR=^ttgb|{Mk_YX|>u@3)kIkkf3^}y2vN9?PUV_Zs z-F?bqY^6#=ON;MrP8nE`5*&r8&!Lgy`)rvC;2lMh4d{w0*6YQ4!|vAYUh!WPZDW>? zebi{Qi3jAI*O-lIU)(~yD_lh!nC^&X?_R2`wiMVE^5=GKg#z5TJNJ#^;twG;`WgP&`QqY+gVT--q>buR- zw{#gdz+hoc%J{0&&~Wd`Y9=@ z_JkSZgM$YH*!pY0htcJE1Q{4)<>ch-?CgM%pqknOfX0tjjYA*xFlaYHKtcvQ2mbe* z2tAKTG7ts1Sb$bb(a_Mb9R_H)IvA)U`BiWv7&lP1q~aihXrrKnLUrkz$eE^uD$3Ba z(CE2dW^l<=&IK{%S6t|_Z{>8c@7-ylZr2xviKc6$r7js8CtoZ>BPuFl-a9RM{JcYQ zawCH1@;T;Ad^`#V^f#whPHfxL5Jvtgn8vL80NO|qmfx_WxjW2(e#ztG4G7ggtAbMPm6xQ`=Q zsyuz03R5e<`vrRSAr_0Tsjlu0_yI{vk8b}7t4Ftu2aH9Yqn3a%#FyV< z$C~wK1l(@XlQS#n{C@9ciiHL|ACJ3nz}~G{aif#Daw6ZyZNS=|EEPDq3$`NbU3oufo6QUDY<1yRvJ8!n$7Bm%5CD8kfFqEn zWMy?RQ-b?9j_4~RBNWAb4>vjEaB?Pj?ahsTaTrF=X*_|@53C`E;Z604Z- zA4NJ{B=zox|GBQj8^=birwj%Rl%^@mC29-;-Zi5-;E#{80F@nwRZ%Q-&iOG|cHiwd zSp@$tE*K<57{smU0p^%GS$~-pI`FVlo_O?6d&Cxa{+XX9%Zrkb21Y2p`H8Do2S?z( z27C;3OML%$#FkcrkHLOx8hBL!U~DxPVxDh6eDmT@PZND7tg$9c zUi(AA&U`CVJt~l2R0s1C5ua3H6nq18w!qk(5OhAYDv;-vp6J((G|oM{pM^wt{vOS)&a3;B0OB6DXW2<;1;?f;XG8>Qdzq?fHrj6C56+!qld085ReJ#_ z04X_W)qrWdHe~O@h*~*r!#9k#Y|dQqgTl~1qe=R~sMJ)6OQ&i!)2vG3y}twJp<2}T zlEu@LG%6=&`c$rKOueOW@_8? z0JAYKujUFQQuhepoO%HgRvr!%5=C9n_h+{`Ny-9 zc7zWggd#s!{Y!m1mqS(J!wK;6g#0LlB`;C*)7JV;FU2R2Wyba~j^ks9D1JcD{89fo z^aTIjxv=kFc6B(U!v07iOjUyVrViSSV3$hjBW$o$$MN2VFPWiI;QLi)t;NlC5pO8u#2Z8)#4)Gh6wGCF+zake23UpT2ds_I($aEs zy9Z7}Ss9t0hxwnZBJ86(4>a*xr#0P#Y&Ks^qGDr1{{Usqj1pKw%iw`Q-+@Y}*MnZY z**IWP==*vteogBK6gj{KsgJ8a$nl61cFT2;?_?I$$1)1YbN9!kxk5F0@4&zGsdl_v zv{zTp_yq(>Yjk=x{$?SPvR!Mro)#xEExnroK2j{5=KHjt<`B?O_0Ia{0^be^j|E7H z-B0F@fmMS+!ZB|o2xsy^K~=qgpByYQxXaHCh3`P(41z)owD*{jW4Bw&6Z14@eKxbS zeERfJ1B#s~{01cVZ$OQ9gvSFuwYs#VaefYAVb6Mh0UmOHkZIp{G`+I*V4mx9e>*GB zzAfoL0sgJx?fK4_lELBu*u=K>OPhTN)*TcVGSA*YZIaEsA#YFte7_6kfW-c&cV}?JWGnVNX}tXteme21LVm%9$aHj zhS}lbq|qrxHe&v z^X>#P>{iQ!X&LY|1ZwG*+>h5Vv%;x~j(-!}!l4MYzklcL8km?sAd%jpyt=-<1tdgA zM&8`r6~hN(z(MLzb{FOTI$kWPsF3=y(bmSbLi!q-?_V!_6t_n#eX|JYUNJE>wYB*l zw}QrsAl7uaxw$Q*Kh`*>~W?{Kb1@6rg;&z+{SWvwVm(<(EE77wi1G_!`eY&z~T)!asL2y(v~Dp zr{nYJDuAn4o0>x2SOP7M!>9&jr%Wy%L5`%oy?t4JK>?U2SZCmM^60(-GXm3SX;5zv z^dD2bR;PWSpdOq140!)7{RRtElh9Z}voGwAOMytiU$IgpA#^6R?K>gk7VQgRUyzp=`SDyIP z)HM?xdLy5moWyV7V%`=dPv@z^)H-?crCzvskE4fg))#QUlcH#?V|QBeZ%az_eO#?a z*NvhJ#n29YB!}*vpHhzU%5*AT`THCOLXX+|l2hJUy&G|-VqFnJQzU5)2fJ)?=9MN> zbP6A|nTk)EZ?qc5AIrbfkJChkpBX?WuZf`jwLloL^LlVm!KlRvMa*xigL?g;&+sM? z?M=$)B0Tw1^!hpq;}{QEN;8uN{!9WA9TC7){l`?v`;|QPV6^Pl4eEu^THR5OHrC%u zjVg(_h3FWTf)B3Y?uv>e7Or^e?{4&v5-pF8BpZ$icEo(h&{ih0y1bJyGKshLM@XJw zHkxO{eAtmL&oxLpsR<;rfgjdBqkRQPAp{}O`ysM`&RG!kmM1J`Al;8Sj zP{60wsx<3MWYWQC?fQaYf%1=ed>JB-RsjY`K>Uv;{I6HwzlhF=Y4rdWAYg>a|8_g8 zUZaQUhV;1k@y>3E_G9a_RF~&_3YHV7YiQ7EaUgkI_@*EzC6$9`L8puidY}MX*ePHU?lL#ewS3 zb3B*I=awuZfZDM{YgkxN-=dhn9;te`2+q{c^1OHmMEC9@vfBX#lh^&3;UO+;8N7lW z;Gy~rcZv}+Y3c)8-y4++8LYAQ`;W8QzhL0t`9r{qDPVQ5hvElEXy5^5AhAs-sCwD? zKsa87r~}!61lv-2OJW~S>CGij7l_a0akW(u0DML#Fif?|-4tOKWQsI-)A zc#=RhP$_Te*ijXIcJ#FP7((wMvoA}vr z{VSz}6v!N%Mn2{rmbYcExzW=0-D?`6BCM#FQU3(L_?p6|Z<~TN6ft?$OX$pSo5X70 zH;J`XY;FBxt~!!;o(y85RufbhJu;&j?Jg)K1I)^YTxx8ZMRCz*Ty$dH!)uJ~stdc- z?BMtVWT}fM7pbNbd(usOv&>XuPP&o$4XN$TQIf4zWWe~8j!wr946VR%p{gZ#s1)D} z!q1Rqt*OwzB7*iCa+PAO+OYZ;9j~{uTg2VEP+s=@DT$@`5Z#(lEF|ALM5xkN2c`RNL*?|mI|6)k8R5fQOf7c>S=l#PoBz1It@6i-S| zhxO&*c_juBsD6BUs+}E&gYhyqH-C(-((l%TsS*4DDiHUbept^k=$4eLsy=XJAr>B< zELu{KK_WYfH3bQv)w2PtlIN-ssY%nLUm;7!w#N4}?vMSUkqP;?j{~D1$CZ_ogpg_C z8HkBN7@<{;LJ{$T$B5&Ri1-l91q+*w(~3wWpi6nfN%N|Ujy9(t2g--J{C;}e zU?8~Q{ZQFCbM;iqBuQ>1EiD`*B!UhokiKts>Q@s0lmw0NrAOvOr_~8^M963;p5$4y zB!J}?e_~L1)MwNHjoLSnoSdAoetB^4FjWuU1j0P}S13z}whXNd0uQ6!QFeCru+rpo z+&@5BE@1IXrxmRq3SfbD-fNkdnAEQkf6vqCSqwuCA2f%sTf5%&{4fuW9LW1;`65sL#fx(5@)%lGZ#l!u%T1eNB|u*Yn>>DwTAk z&QTi)+FbnC7`#;+ACvnjH8T-EVnn?(c`ntYTh20upsg4Qx3Sk=LV1MObbQ5GaeYYj zEP@Pu+9(~r951GCv_OhEwF#aHZ@*^A` z6F1v9t>(}$c2$`rR`rYg{lP&yl@I$R<`&ot=Jw}-@ge(g+5G`kItw_%E^6zXpP!qL zXFxJCc}&XYXp)1(W)D`<_Rd23H3I-mCcC|y3e~r7C>=7&%F3hM8mWkO_^(|a*9A>w zAa-jlin_Xp>f)~0=Kv)gwIzZj=u0p6;=a5v`c_BapTmobF2~)$-@ktcfJ4_g%NAI^ zO%s~%_P{7m5vm}%DjAL)&tQCMu-UhpXyfp>BK8>O^}Gd1ul2mMI&YMe1!?>4d@u%} z$Lw5O&p>GqxOwIA+gWyhlK;aSXz|Kf0{;NukI>sV^|!o9fbDxl4~t6p9mxE)3K+d# z0{K8ONm|tj*AyO?aB*+~W(+79@*)N=4mZl=p?Sqo{t$A8fjD4NRD~q!<%~#N=SN}F%pQ;d` z1teXofwWWel5pp=`Uh~NcmTPhR~o49t1BzPk#B%H1>->Z zSjb6M(fFm%I{uCspfZ;cU8w8mtN}lTIC8J~+g_49fQVA1Mu;1?luggi-vLN81Obfb z*2~9AqjjE1umM)G_!MT|F5z{D4_1-g%Klv~09D*Tz0>>2!^1`?e(tc^=e`R;gj&Z1^g4nT(M!haO7wgUCEp~uKpeAaa zEW4$`H%?n*Ai#Sc#}fBt>K~E!Re+cZqF{WJ&`Sh{;>qY}wMb}cwweCaeH_%SZXwp! z6C2%!!C=}#&v~nYEbqdQYqgBXp|yg^5esU$ING{N9bb1?z^KGhH5!*y>SNOsIR1RR zSst1}C(RzOwkaqmc1#HwdVzBcD7DNbK#`hBA|?1278dA>W9#dg5#Tv&jk*!(*_0{? zde)PNP2$mukeDSwpUt=XLZnmaC1qtHYk}wY00|AfIn0&H4PX$j_pA0mw6ZcY7cw7( zA`!s-F?~FZaB_0e^Luk`k$ri%RHw!O-Uxq|H4eA7@BYoaHcP(&A7KD$2Az@TxrXrA z1`GvkH_VY6h#oKEj}~ikqoTSbCuBiPK%^r;V$8QLoa2?%b&~BaDRE}<*IFFG`NZQv zLKezUObhu4+U}W?J9>b3ycasaH=gw~4glLkiPhrH2q4k6Tp3+u6_7zc-HB3WcM!TD z#TXo(oSO4%Fx30kaNau~WL!IQSKUan{_W-TFfE<#Qox^~=%zaCV5z4$1z35O-+QKA zoSnhlPcrShuG9X5d1nRKu1^RYVu89B2??0_g!R~)sWBXRf`12~_(T^(3eW+_5m5Xt zEUjdrL%93%RrQ%9aAd-M0Y}I0Wndgd*|qicNjkI0e55*BrhxmwXj-}?yZJ;GEHW}O zBI5YyD7Yke(3l)csM%Q@;a0DNv~_p9U}7RLY+`B}K=pQ1 z7#EpKfnx7s%<>%ztHNCfryMwA zwMNqg+QPk50jj66GB_tiX>)5^TOW;EUJwxV!iWyS6q^+gT+oEzE#l8qV(-8-kCl4jjny2H}@Ve}52L_Ur91BB)$e ze*TZSa%G@F|9Jg}oXxSACr>X~{~(S{93Ukvz0JsT-H%Re26&KX+^fF=aP1p_bZqg$ zqar)(2sQ=0gSLwPQxFKS_W1ZFq5x-?I+*wdXtq#tgx#jTP|9YAq}BX3Mr9FzNJA(T zX8?)*77fC^6)^GVQMhk>T$blO-WLF51it+?R!lYnDueiRT$-!ntLtl2^Hc~s&}c%0 zIiNzSW|-g73#x$dA+;f(83tg5?ZE)8p#O)lw~VT?`}T&}bazR2mvnbZgGfjUBB6A5 zN|#7?2nYyBNH@YpYEvQz(kG+5`!_@ zlarHW_`3KGf3R0~O)A8JVQ;|6h!D6S|6U?S1qJ%BQdTJ6nuSh2JAeF5E(jBlC!#{W zdqqT*0&Zp9Ul6^~5bnV&c{Kg0-0iPeO0jbQu13Yi7N>$ODP7oWBb|#zz=X=(8@{M@ z_;7#lz`x-X5-;kqhH5N;c?PCTjHzn*F7$MC(gAgrz$=Aj?_Cj+gs?}s*ll@FdLFsf zbJK@B&B~K#@=GbSdsmx{D=gFymgeL*VyeJf=R@PTxVUXzAM5Frvl%lKLmdNy%Rjyc zpqY0B-ZM*V!DCo86wktlCTJR8R2s;XwvT5oMMFTl20wr;Zh2JbDlyd8Z5vv*ln~;A zkb)FIOIqOWWY?{W_@H8WgJJ>;Um_#tgj+%Z|3WR%ZRa#ev7B(1J;98_&8=QI2w8&) z6Dd-z3D;>mpKs}AVpLkDiK2-mRnMLtv1P6UoC0pVLg0>DcO#Gb;#j zJDQ>PM`t|1{J+^4dpgAO4jjN;lRX-dus=LORa4BCKctwQCLvAsd49)HhnZ8LI9v+{ zFJjWm-QZ}FVPdc-9`*P)sjm(sMBK=-hpE2LcDexb47688U&%Rx;Jmg!r7@&g%4jZm zRGPLM8GJ#sOVw}=qv|olg>#B?LVef0D!=(2&2^0iD+C>p!A-}nb14)#rHgbz42gJ4 zDs~gN`A92w6$sa@jf4b;Fher)Es;8}@B|{z!JYDPmo$8>Y=I!b_q;t^>gM?{TpaH; zOn$ZZJ7LggYcuV5!@89I*_*5o7BCsE+oG&xad4Z_T z2!ZJ|CjU&!aJGv$PrbM!phI&SfosjtypeFer~1q2dU9OQ>10oI83@aOatvB))w4(mepLSpmX+`1nr1CKu4cgTMm8F&Qp<1W=i1dOoM=&f8;* zQ+35on;0#r zhEU*@Bla%b6bTyoIE-Usd*+h&`e{Czj7!jv@9CDd^IEC)-8df3qXvsb;ldonqy#dDzLxiHr#>3qv2o zh0{a=PT_>8s9*~#!>dSKV@mP!L;@x|`-tydXhqPuFHnqVeRgi|Po|_&K3|un6KpN4d9<*pZz%FzNZr=HF0@g&a zwU>{^Y!7@00IZBTV!+C%@N@JFOjk?WgSvfGP8x1=7;}9svA3(r z9%mh3oszOB9b2}(Z7UwoxS;j&Qm0yk+U#~!Y&e!?WZ-`(7x(>C9sXsvsfP zO^d%;;1v=d0FyJEGhCIDdPONU_B}w{J%cN zZZy)1YU{PxZEaQ*X~{eS!l|pkTM`LI6dYa8QsPJRl4np>JzIzHXoI}o0Ht`rp`NCH zwu+cg`!&|Zgiz|mb3BM3Qwt%Uxr`tN$q~pRAQyUPbn$~!J5T-d(OFdDH%h$AHa~vv z5jhNt9X!$&;>;M-o;#&~IC3&ZVpXQ+Dgb1N0~U%v7PR`yT$qkw{xI_yCQWk4LS3O( zmaur=FeUg9kp4PC`a)N)m-DWhm$5YXPVOb`^mO(vbUcLZQL$(*@XO2iJ@y%eXiv^# zmQ@K#{N9VhlONv;zHT-Z9IxB=th2<=@o;lwxW_(-zQy$yVZNk(DeFP?n^5u{LBl_) zhKXld#d~zM|B5_f-gb}?HpE1Hk7>&9t`bopb6vMG?QXqAPYEu@es)8mz@&JVfK`dC za5|acTNT+)CM7CEr}f;sU~8zI$ZEt}YBo7DCgw+UjL5}T&0iDrSy8#|=%AfT$&SS` zX|kgCj`AM*Z!IHt#KF(@)&|?(1S$V;_Gl=R$kTMC@sWf-9a$8FQCO!+CnXmp&Nj~H z&HhH*Gb5aRIo*C!x8C7f9VuMoO#RC{F^6ahPT};b+^700u^$h#J}`gp^6D0iQ6xiT zx?Q~gguLcFb7l7K_{eSDH<_uU!&bMC0>AC4d&Z^9<#k+^;5%b#JpPZZjv9Ua>O*FM zulM@ZRjC-6&7ur6nHIWd)0kTlQ(I!alQtIXx7VK*bLq$-HdH2fA@MGd5FYI)i;a4$ zRcHIpF*FsL4!lMfj;~(P1XIzGpPq{lp zzc>7aGCPJ>sCJFif z$-2$7O*26Hj;sXyMGsa;=-ib>`!Wk($lfi_MDxa63Go`F`!@gdyWiR47P4WXtChGY z;QT8+I5_3{dO_l0aYM!2cr9x-F7ClKzUJ7zb-BItAM}GX zUc&oJ-*s=Z9EnX?+%A&hk$`5EIEqkWq4&=y@*24DfN%8+2~rLR^V@Vl7^W2#H?Fb; zy7c0(q3u_6%4I*?#UHaL%YeSKp3<2hi9|e{0DEj(!*#t_A{CJ*pySy|0e`6*iJiay@rQhd`537mf=ISo^ z|2=td{`$3+QrN#R!d-jgfF{fC886QFfKzWD$jri-O3l@J*4ipt7r3zJ_@ag_PCNY3CoB!WJ!qQgO z|0yF3C<;%QF>ZTm&Mz{Z(EA@@*d9?49=&3X)oy-MQ`o0D5sA2ggKy-|=oG9dlh!Il z5S#g`5`05H?GrCxcaG^GYZ)4L>-<~HE(l`@7uc(&C^L0Frkc4E6aAOcY+m&-gkvw& zgMzgMFog^s(;#fQ0VzX@Bb>&Q@==90PwsU6FNgRGVzy+&KXn?=+9OJ~lL|E?=24nX zot$c(zCnJbry?U`x<6alrekfx0OEKOvEd(69v*)qBfkP+#s#VPt4QE$g{hbFk;OCP zTMZtAj-Jf^XM!i*dVgW&K;@>40{M@(|Cg}-Xu6XQdMc`kP?o&%4{dc%O1X$_eo(na zbjTs&Y;{)@mAC13<~IFeu?Pb)Hc?cT|N5wOVKK2ftKRgBvs~f6!7%yYd$ng0$@@bpb)(~@UKFZ%Z#>Hh>Kq)E z?^>FhE_k?`yh3NB*S$$F-WvOe{ql5W5eb~F$szgQ?*|bu9w5VeD;63#IeTsuD!n#EK>^V0rv<{u9h# zg!aC@v@Akw*1l?~l2^IU*tX<5whVva=S4aSHkOAIcU@q{nrO5+xO6D%LnK! ztWCzwPq5W$Kow+(g7Nr)8$r!&q*F2uYXQrOFpxJ=9vvOlJsaiVj1~{6XS|MTVjua( z(giH?-`zEF#PuvtPMWWIRP>6cj0D?=!#DAyi=(Y06d$^DTX9wO)m!l@;8m>I?G= zs-PQG$Hgc)FO`pJ1#_kG5oV$C>^rdkOFD==s>U$l!Yd~92ZWaXy~b<`yyT;eq2`$T z>KCwet}9{vzMUsMXHvQ&x*va9HVW_;!xBq)Lv@}H(Hp$Lzm@;=pIn81ot-}uMBov$ z`=*m*Uq99JH%#(2JBX62XND13-DPHex-a?J@kbNex$KAPLUln30}EG&?)GytGsib? zHkX&3LD*(tA)WO*Hr@_R78rGXnu_Hp5bB`Cj1&JYS!UC_c2U8>GLTEyAu0z5WJx;An(d{sdFpx zC1mN6P5sB)dSvvW4a(Z^Qz1_?;N`h1e(LsT=ed!%rx~5l;9~d~M+bkVnK5l$q;C(` zlV;0n38HUavF@g(N$#_s6N)ZOSL1@&8!?-`Z659yI`4J+$w`kRNjD{&PzD#Cq<{8{ zUc-CoM|qOG*-b0%1<_ZQg~AmABq%P_cQXl1lgTVU>3>Q>z9%YccTay{8yQ&@ZT8iC z&Q@5CkGv2w+I_bi)e-vrRn%ffRr#7-X!O=7M1kL7{+Ebr2$jEEPwW%TC*(rT0W?U_ zD9Dm~o0}wrgr`vYfZ;i-t$7gz4;MS*jhye%^L`l!tE3jyb&&(68p+iXRmitTlqwym*K2pP-qYVrPebrL;O;Q2$)+cDk_3G`{Cgs$dv8NmkG_z$thqX zCnu+-&Py}(v0ds4-mv29D3RVAWv#^ty~r>rhQrWR02p6XNh9lo5dYfiAOA}KcvGmG zZ~s;P4Ug!Li8Cqq@MFPyai_3&QRhWi(dA^2Wb9D##*a1NU>gd`g=KR{WvrR?t8WnD zu}ktL_BG2BDNb4se9mN?WLUUL{J?MSKB4HLwj)qnte|f^ zBhYD$N-h5fJ;-rTHdX3g>!opXBb_-b((;!oefTp3C#2 z)AY}!(9cXuy4^*qorjhTpqdhk#FD~2)E|yw0EWq!q}a{p(p&&Uykg3ASeU{lk5N40 zG7;6xxn6vvx%{0?&LD$K%V!U}YWv+{6U#V1VNu2;R)ENApIy zaUJv6r@C$Izx^=-5l(p{Xm##n?@|1IAzkw4v|X}{uD;`l$Lc^}b`jkJdWM2fmCf!B zGF9Ka|G2`clhi*(4Ki~Ovha zdkekU6>LyDF9GdI9zj7WF^}Qfs}t$6^vujh!0>BFhosQOiqN9p$q=^+f0p1Gjm!19 ztJ8GjZdZ3`=igs=fy+HeWr;>=YHAdelyAlYHjC2vyi@=?XQm7>B&&NQCz{`+^ zf0Tfh+#@9*mP4|ca(veKK0_E^xp!Qmn48ipvzGe(!DJlcN_q<2(u zf=1@Tv4>~--KGN1Kb%>*5UcNWEnKL0zTRk?vI-T@wiGhr0cQG={+V@kb)XH=lSdDK zwb+pd*xdRiCh8~3=2rY{JX^tCBETC7m{g0q-&k9x!DntQb}oWpiUTm0i*R>$2M`K~ zBE1DnuZnUvR5{KmLFT1`3Lj;gt!F_s?GQ#GXX}y(uMr#>FkAgb4v{F{^p-z6feDDy z1VAfAexk5Q9Mn{MbW4odsRk+QWnX8~1$-cflJ0$%ovNC*2|kmd&+;I+RoL4eym*Ed zn86XpkMZ+DiU41{BjJhuslJ+xTl5?@2IjKNtAuELi$J8>zDUVWKgj#QBRo$@<*%vg zZwqVtlcMFs*6^uNp3Tk!O;w>R+sO+A^k@9!Y`^q<7VVcWF+9q13RJFT2nZTNA1TKF|rcP+`@O%G<38elXk+5el=sKEXz;?#f1i=q43?AqB^<&De}9Tye`<&iUmfBw8(Y4}iA zN6+2W23!pRqgB_?P(>5uq#Hcm7f>gzAtMNODA{@aU&xl;{0yo?1c?cPI|oqEG~3Ld zsQ<)x&2S)%}@8u>$P-ZUmV*+zl?v98+;f=d5###oL(y+vOuF zN8@_3Ykof39WQThe}Gf~aupB*M3&fAg<`VgNo6zIa-m zwfo@=PMy?+*7J+ht9;8j|6L$^08AUKHh-rqI1d^Hj0Ghu^V5#Yl^8L^xG>`T-d$T3A^4ba$p2pm3xDvPM#I0eui$ z#m_f^^LajO)j@5U(0RqKY{W$LV~wNIs}W)&q|m#En_Ev5rMtyC;-4#L9Qf%khZH3l zQEd6$jxlfl(kWMbhxUwGoJ(E?Bk~<-`M=t|5G<~6Ntpj73?DG5%c)d~Co?U?d-CVt zWxz2zOku7aA7IaWDSUedV!@7V+nvaWh{mlRBa4fHj~oXpxTWmin3Cl_T^z5mTnQkX z3tAkW^9xdK@x5?3#D?tH3C*gg14vgxaOXpT!W=*B@6IQ*yJlD7lbX;CxtZjjFASPp zUTbN=9@TI0FM|}Z@WlTBkx>3~0Ux9fCAKcgm??^2;Rf^X&=m_zo}#puFRes9KenTD zKW8q@h2`pcRy&cOKqtw+X`=gAYdgQBw_F`aZ6mlG-@NmuvStD(0QvN5rkrdJ6t!0o z;`y3tq5?H0ma1C5yW*H)9aS0`}cpF=$%hC)Khs$okqbSDlQ>0`;FJC=zQ5&651~r{Z*`X&YAY=Ne!W^$wT_B@yE-q0y*;ppV8P;KQ1s}#DNoO z?bxuX1XU(8T+C3{%F1Hq_1w42mn5-b?yYwVd{Z`WXG%{#YT7w$PNkW0YZzJV^Zwi) zzd-NE(9=KV&fdB1GA9Z=?`EMQiDgZRYA^9P-1S~JdP?c1_{tmC9QRcJl*p06HS70Q1~9nj18OZ@c5mmJq&AI#}#i|!v<|$M?g~7>cN=RFqtjpxnKN*hR-i8<(lIYZ2u(fqe+2ed z1W2AzkdaB{wpqQrjE%%=VfMrSo(kX+HOokTpTZ*up&~hlY&ea1`i;N_cJ)wO}53w)g-PE^q&8V?MU6aqD zqb9_YAk3dDTHBgyySNEaEU#t=^nRKuBC8>~iB*hEVfs>v5Sx} zF=D4owY1pjCOMPCe<5C4yQ0LO!E-5Y^Z8bPxODnnl`iyML{f=S3+y}uG< zD-h6J)`GL0E{v{{O*Y^k3H|e6U{AOhJxFIvJf;1 zBV%#8kg>59x9v&BR7@PH$63MNr4Gb$TToBLqDjo>Fcu~S3KDI*Qt9x+Ll_efEg|Pv zF@KbH-a^PGl2Ug1N~67n+Lipm)D&BBOQc?vlSiuuC7EuY>dUhl>0KTu?CBnDAq+Be z2^WHkgonhd=>^Tn&Nh<8gYY=S$6wH-C(yiyIVfnyC28kIU5%3!ReqSr>_12|GkNK| zvvYPZY9{egM>{IX6wx+iN{?9IOpKLWgnEL;a<~OYk77|)GYTT0<4>Pl{;_)n;*1LZsjl-T~50}(8yI!c=g_Fcs1=7YP-|eF- z#IARRfg~u^sPj!0z3;Ve00^w`U>>;C1qqjhU~`!e%JYTl`vBn7;srUy#PECRJ1E#^ zu~byzUa;BO3=h3pD(9C=l6LG7x3_*E(h6Yw9+e1(7>ho;oXXPSG!{}7Xn-Y0Ye`NyeDxc+*6tk^h@=M>4ZZDImVt78n<7GM4+f#m4*$$iaklt${e4R#eA41vGLz{N--LUM1%(|Bn{z<{XAT4vC1Ar3*3cghJr{ALTXhIMYBp#PljP@bgWTY~j{V}7o8Jy7B> zM(u3mMX|%YSw1Aqden@nRr;Q69HERO(IAB+Ftk3ub&J(C?JLbDIsx&xoE#5tok#kS zLV^%iPr}&w-uNCTW`w+arR>z4$| z3;Dq@GRBcQBRBaSCJ2a|IIYXz)F9xsphrh&$7W@bx2usRgR7Y8Pc$T%V~O)$mWk?- zmn!fg;V9CWk?3B?zaS59gXpn!AiTZrLb8w&P*OzU$rKO)84h`j?G!Pf*JiRJ*^dkh z(vPkfOBre7bo(6~5|BZv9`j?%JQlU)x45K25+v**_jA-vq>DEoh)^I-f)OGcGZlAuF zv0pb{PaFvTiK#@9Vtm3>XahyYlCDbk*jJrYB=&Gp{;qj7SbhAFU?-MyPngdhSCyX} z&i%!r_z*T(Pi-DGKLj7cO6?*|GxLIs6|w0pmCvWOMt6RV*E9{$exfl6_ox-+h%c&) z(HtbaG*&XquOUi1KZsJ+ih_oa?upM{f6pZr{R0dDqSk0>!?Ug32FMv-2!q?(pM2d;}AmLE2=d3*f zwU+;Wg%nSMDvHw3)G~M#Q2=GN3oGO|B8kh{ zj$Yh=oH1gXQ%eaFbad2uVZGof!BH=hhR~C{)oPhgPhDW{37VLK$xV;_`N2wLSQy6C zWe__dx@bxgJT+pbI{qECbd!K*(@ZukjD$LvMb;#&o=sGZp%1$Ct$BLcsHk(O;zv1y z-~f9?rTFbZgX8Gt-AiqRjEn{(ngF}o@>Hj383g_qZYmN{J|6yfN`AB}D^0FPP4O*A z9<~()w@rbDT(Qo?ZyJCi-{oC#aLc5X;>(R#BJxwh>=MT=wFn>j;;5^Da(p3ub0 z67--hT?A7a5JNpzv6+6)Cplw^-|BR$qeqKEA6lZW$xcM$$Ydl+aw2cvm&3t{{ZNsY zd2V8}Rw}a<))?YwjmC>Sp+)f*l;h{1^kX{(!wQpkBTbJ@kaH}+F%+>&c;%7MF%<7k zuU6OWeNw`Mum?{0qBjs>14|rh>LrbOJ%!rLb{hRl4f5d{-k%|hY2KT+(7a@(C4|G29{+C zz4Jwue|9-~t$}L>V+?AAKRi5q8B56R;S!pqMsRJ9EZL=c%sg64f2XadE(wi#I1T1q z(-U|%1Rn(@I4%z`GM{olJw?FQhwM$*=3&X^QJ7G70r6-{%9KeyxV1LTz)#F=8BF%> zsHs(F8d8)Cv>2Eg>b+Ebc&2Trn{1**n&&Q3*VMM&h>y~qn3uJ?GH!G?v_bdqjIU`$ znY|!Isv)1HoQs-W^>-EfFZd@82LYo$5B9(v`LFo;WXq3NK!Lw^kPFEezgtgE?4Gkf z|5Ba%zFb;<{K{6Vc&jUmMj<-+#q--_=^}~qd+G`QJp-a=&?({g(DJ@4>O@ZBa>7>y zNVYY<;sXh42Ng#Pu*SW8WU(~3Z%vch^D4NC6#596ICxVg61~BGnnSXVQlnDFOFa-9G6r-^4ooEDn|j+x8U*1E zkke4V1UU8G5}%N`Os#U&yG&s{?SLQ1fL7OM1+mrRkPq8Fz$&|6_VfC%7gFxrb^zjuFLQo8m zq~RenB{j8{pk@3%C`POe+|u=crrUi*zOHx+7OjCU;c!>`x_f`3efB#NuQ!;ZS&h zOU23+n{uW}O)YXt689&GDSVMnV$!~<&ywmq2BWg2c7<9y3u#Bf9|rCe5 zS&U+0WLI z!sp*?W(v;9*4_P9?NBaGNeX(^p(Gf{XG1ICsQLT!{~PFU8f zncj-8^17P%WmyI=f%#`vK8_T^Wa5+DJvctTy4KH;aH^`R2s8Gy(1ij^^}M1k0UZ7f z#VnV0^;pr_S>dyNi-TY54z~p%Bs}?1!YgJ!(uFh!7nB~PaU42it(7(eDwg!O{uXFR zij1}1e@=QiN$H>VUhRBXbLxJz-4nI`<1le@V*f`ywuwgVWdz01@r>tgkNyTrzZc4l zlkn3Ls|aa|$*eak3UuW0z2QE~eQsDem!@1b*q`s+!NKYcAcJ4= zX_lx|k;_s5w>o?)7C{Dz zZW7wb`uf+J9(bm!5gwXI;uCesJc9TY?TjYj288 zUcG+(T_+B*rbVbZ>6R28u3)md$Ph)tDUX7$kR!5BOW@FiHlwmrIKnYZnbYdNJJ~y5 z8{RV@PvFdzoSv-Shb8qeLgPX(h{(K-lOpp+)t}PUl~TaE8jWRQ+luYF$P^Ql zjV_LV7at|K%~w=#@PuUdspBT{jxv%3f`d?&b(soR)`n8xrA6cr!|ubv-(#6~A=P80 z0fuHM1Q-x z3}kwvsl!rYfVkSSgTSVmkKI}dZn>qlEzsd%%wBor-2%Bty32GQQdgWzm-GJYsC})( zq_0WgDW7!nsLnO8ORP(V=Zp_^Q_>?w9^^|ah+$jdmv`kzoR|lR&AC^DL$b+Wr!~-v zGprQ03#v#Nooqqhvg$DwKfI5|B4YTkDx%+v8?FW&lB{gRmVCkQonQ2`kVYqE?qsz-yR^fm&V7Yk_De| zoGiCwn+_--2^GNe=ETr7wLuiK6If@)!uSNb``&zPwIfosQNey? zg-ESW6vjg0ei`P|BkVHqS4nRqrJT7O3}1CH#~miJdgsP$sV3^sZxV>H7mn$jF&(I{ z)Pdlr9muC9SVs9XznCp+&o~AyekU`@ZKBWezos;BQkVR%DANDZ@pAe+&jN zbgHq=tcZZ=l(d3UJ2>x`Q@&M(izcf{p$m{?H4FLh>BusY;;)V-!qb?N|u0; z>wFnObr=Nvj)`Xg4eSi=rhBKrP-8WSU&bsf{HrTX48)=UldjCHtktS{W&8XE#b`E- z+l`Oz&l2c(5i!_RD^|!GN)zfVi`(hU*14ObKZ9P{{>W6ck@bWgaP<<;rPbB3zyv;l z4xWsh8>CcNvm)9e)&Ew;`))b$ae4C187U9cV288Hhfd+l-F@A#)G?s7ea#%6&!V_2 zht>y)t&=;vPt5fnOckESb5G5;U#mAsg^Y(T)quLWk??mN%l zE21`aR0(p^@11tHD>C)R-_5JbtD@}+bG2&hxf;CG4!9X`r2Mq&o@HY^H5Jh4u9C7Fs@r!Eu|Xi^vcbsFT1?BZGOXKa^s|M)=82M{1?Mk znKW~69~B~w9`o}YW*y?9qM4NQ3i;YLnUthKX=x;}y+GYG>-;ibGfxtn6(twgRTsIj zCzNy@h{34=Oj#HvV`@dY-c7@gB>VDL1L~g)C2h3Oy09}7Qg58P8ObM>Cnj`KCq{s7 z1|;-g4q_IfuH#Pl*hm$kO6mg*aBqa~wl}-$)yS^1Yu;SrMo!kl1`mPe_fOeF_KO{d zx4I28C+R8}Wgcr#yz}$(kqgMat@yr8>A<3e60i~zT2cpn`Jd*zuW!b3pYT~fJ_rTr z)@K`-@gIxHM?s`{w8$~`9HlTSs%)i6* z=eN?`K0Q^LSSeawT6sB}DBeaDkPAZMo^f3%Ci=>Xc@qP>EK&CzD@#j0i=ME}T;EYJ zRGt~AY*BMQzPWr?m#cR5%Ko*tVO$}9;6Ul@v5Eqk*>sx9fOkRppLXA|JgEb4dj(K@ z`1`GIDW2#3Uvv9cJ%4+PWa6OK`{TRgP0$%rU-X;YTVOrbv3Kae`TOxy(!JL`@ znFSLf@G!lKBbNSpiA%*RB=m+U9vE#7jgH;}yq?>*DgUI`+G@?~VQFRVI=XUFF}uDE zGP}C6aty5aFiDrVUKk1p2mrw1W<8C;CNcx_b;kFQSzZi}e3kW#o)KNLm-Hc9EBh56 z9U>Orup%_|#u2x*waLoKiGg*jr`G^9SrWeI@+SnA#N4LyK!8ZZ{sM&COT+U99bKR8 z0-Mlt0OVnKgV9;nG0?tL1M>hjG;C}QP0a{yyi4rh11vI?baC(FY!TNkAT%Mv!y9k) zJOE#sJczyf^a*WGR*?4LAE;;#9j(lG3#TE0O2R0cAb$bCjpW6)cK{WUb-rwO-PBm- z-kp-Yc>sD)jVwVdY{*<-CUQP4aJj(1z$hc;m6NfFFWC-{Y32MF{ua;|!cM^|F0h`f z>Tl>}JmJLMa(W!wf$2}t3=(QP5scId7)jAgeRjTKQcIWih4&77u|;Z!LqbTB3EO8- zu))(15f)}(VwzwM`&Q^5w{kR2ic$l^fW#b~FVV09jiib(OZC z$cHqz2*Lus#Ge80!)t@8ewUA{c%cgH;}vg*%EXyJ5%b{qtbKPBnt6A3r~kzWDdEXl zAh3n8aaQ*A@c~O(_5zzqd~0{t9?GYQH;0t}1-x5wF5)U@K!7sG3(Tyi7JRyLj}bRf z+Y=;hP|36Q8igA@e|p z2mE=qEV%+ z0UV7kU^aj`ig-(ngH0fewG`mKJ%J>SiHnnnaz6x23TKudd@mD-=iv{3bw$955gOK* z2Uk?E3rjem#>YoQpiDj5!vP5`Wh`+1MV*$_P}Vv~l>I#dg$C)u8QA2&HIXc71Rqs* z-iL6@LDBSN*kQz^NNGqxxzd4M2@p@EGBXxz#Y?*I6Vg9P_Y;H-W%WU~m8j z84?hx@qY0Tg4hUl^Pfay1xRDc+LAEKYp`Yq|;!IU&)g&!dgGq&)X2VsQj|V8O7EECn133hC*! zwKZwOty^IA)D1s9!Hm)Z$qDAN6?&F*>w`zdBP?dog9zR?nHe|F=-}X>Iden3cu7e~ zGLw492FSc$+6Z|YI%?yWK?5}@883u_BlcdX(AF#dOJ${W#MGfQJofft7aY`MW}}pt zaQ^yqk`sW{A&#!rD-cMpj(TBPS^6ihrB<~2yg&8ZtH7~=M|ViqWTZKsg0qb7H?v|3 zx}%uuzaeX$J}~&xOe*1TFT2OsNh11lSN}~}D-yQrZ37u#Pgi#MV>_}5ZWB0ZCA&)w zZL`YOO{HIt0oRQsp-U@J43~Ji10N!=DMKC%0Vaq<1$TQfw)wj2p#$tEV8au}pADZ^ z1dhB!Wa@b9_bZ1;@QOe^Dz~w<1x?cp{dP0^CU0D>3`^W{XE>Nd_CYD)K0PA?6tT6< z%}K<(Mo4{(T;LyoM%BRn95V!e=XqbG2bD33RR1Hb(uxuOp;GC zf=Pnyxz>$BJr#&XW+T=6H|ztl7#dofFJc#CZ>UWB4i>o}EKE=fT@(%ho*sv~7YHUZ z-|N-YtYt`m?ge*P^8|@;scsuXO|EY_~Dm-4?5lN$LvsHB16&4q4^^nw4aNAp|>;Qex@@cR4r?3-WAzlIRrGWnddv2Y0%DKT5h zk#Nmkib>c&Dl65Rk9RX>uHuqg|C6nk=&K2UX;6-`)6-Eqmmj=#Rznuefwwe3D0Uz= zaAsN<#2i6%UBJcU1Xs)Ze3J=V=>l&l{Ev=maxg7?9)5XYpv{{X_nOcUPi1FU*P=MtF|f7N z9(EjsKZIiTDs%Q^mo?bWw6wH@gx}*)8uODH;4<@QE!A&(mRR_if3zXnN4ljhE->#d zMNCVgv?=fp?9M1@G>!cQ-=IxGY^=i;%B+?S_i!}M+1*z=-jf^{LgKimmh&FsT0#4244LX%|4XPP0;a+uXiGMpP4k^vm*{gT&IIV0% zsDP#P>!DOED)DrU6S>3}vh?zJ$~lh?36jykF`i~$<|K$6PVw@z=K{$OQ!&i5io4kJ?5oKr&EPMZ;Rdojc*k&#h{PaBM#fbUqu9nBJA$DS!8gnO36y zqF`gcC$M9A_Uy}fi)?p?-CMlfkQWsfM(yt3OIIq0Y^Pt6tiTg%NzZ;%z(2pc8_Tw! z_<)P=By$xg<>$1qHvD1wWHno)Kzu{dpQLf;M1j0B=A~$EhqLw+u@8)LzQrko+@E1L zDKF{T*%>2)HsO@2P(5c+u0st|R6{SgbBOj{{}rJ#?(mqJJkF`pn6Tt(NdjVQbE=6-=0KgZ z)6+E^oK?`uCVk~c3>=Qaw<*#D-6LCXX~sm=Vb5mn`&8;|B8o^Ua}{5hRd9lq zOL-c%=XL_M)7Er_era)WS5-dV;DJYwFZx9!`5%NOgSGsi*mstWu=t%&%rB2p;T~s; zGiVZhFF?jj=tX$S=x1u`?78+yp^PjQ1fleS_<;R|)U$L;tH(*RM}GIlt7_ zg8TFQ!h(sJS!YQJGI{|vVGkQ&&wwYe-0|@dy?yVwfHA6Yn99YS_Hh3D!00~i8DFz; zQnp``)abHdS%pYlBYq*4iah;P_@~mU9MuYs^BkHmHU9qI4U4%eLCb5K_w-UP#TAVG zoo~{HX0mlrXQia(P-`toMibh_t&a*>S0-Ga4yAECoEOT9uRFRv$i|`NZBIIRhg#jg zIoWhnDPUPnSEz}ob^ZD!MG`|uJ#yYnPlL6};reaBTjRgCMYD%C#tY(7AE>&5Or86S z!V);?Jq+*bYQ_?mG`G{&RPMgTa3wK}MlW>UjBci!W3k!pZzQhvT-~6~Szq zDea2#0fF@|g)o0MoC-D!yY5?n4``t`5Wsvplcs$PXGuBm9p zv`x~Qb;pGHMtwu^z&NmvJbiXoc#HEy7)#g{tg7rc_ebz?EMBs-PPMyZ&lfxV3)F4Q z&EZDAbKMs_DR`stTWf7;NqWO>cx2=b2m?V+u5Um?K+Zz=mYz~FR~gNZLOL8Yk{fGl zUF9h$DRa*766&hQ570@%VFMG(BHERHYGSD?=L#Je-LmyRnXED5jW*A};-F}Ju> zn)g4AJC1j^t_Xsy>p&@}*gt#hS3KSv%2?s*^C)#;XZwqIpXK>(80qOvrm9Q`BT!a` z072gQ&a~`D>8~d7pj!b21t!VT{oQ9uVTkDTDmYj|>yT|u5<5fLpd-tM!zMZV?l z0CX5?WfBi~^W+}p#yk{GKfXSgfhEr5V2vvPoWe)U<%y7&?Ie zed!}k9ViR9WqfJ)hpYj$jM4!0k#Q%yJ;3<>fjOf174E{w~NlT`cN9$ zYoOyv3B;R7+Zy>ETy))EM?Z(Vq2b}yoi@@(rQ;eMf7+$~NBvk_|MX^>GC8Bv$5%aF z?U+P+gjlha^3rkO+1TyF~Vf)7x^yQWtEOmb5Kd|U9wD=y>?+}u5v?O}-)hxkhTWz&o&@-Q+(UXDQ5@?8_r0pu( zobs+lnl6AwYQxp!p6Lp4h^$`WAz9DoLg{ne9yijisk7|*ieX$o4ihWk+`HeM{PUHp zZS}j@?+ykBw6de5d-rVTIqFGhDRn5Obkn#n-~%3 zLhzm*I_7XhdsCK8nq1zCyUR!|%Ide#K3pLwCo=H*NQqv@F)QtRQ?9y$lq<(sj+)Be z8p@rQK1UU4A;r$^V;EAFM|FMCb`%^VgRGyfgUaG-h`co>^*Jz9P4F~cb?B^cXzOSr zY1?UglC=2lsl*zzDyHCC>e^(@q$YACSLd4eWG)JXp$E{*hKBz%O%KM*-t!M8wO)^5 zlEoB9J9mJ7Uk1g|qZc|)L1$}aY9H~9)exl(#$)VFZTiE(>g zO_%lA`6Sp?6qNK<^<)w0i4B_RxrG)Z8L!(jMY3zH_qcmv>gwwfjJC1AhG zZ!jmb$hSn6zF@HxdgpJ*=wb)A#|#LfUC2<^oOO&pHDS@8B2BxV;)rf7rVa6%l|g*b zc?NCs^-)rSjj+)L5A`7pKQYA?SY}a6XCsUd<8>pk2RK}6OpKlw^xaXhzP`Yi%>lPy{Zn&K7*{REF&Z16fzTok4`FgDa(^3(T&X*_Ti9A${mhc;hQ{(7pR+;Gv-g6r_=hSuxVbBe ziu_6G1P*$f*uoZvi0!Sd>HHq^aB_08vH4rl+dMX9fK48HVq z@UY03pv4P5tE}M*Kid;u}zBY<8uqrSdUsP z&2vHkkS$9UcmxuS6qNuXR9{bhB5Lv6BG-rXn<0IcXFDpjdS2q4HUDd2YqXD(r)%XNKzjC6n{$lVf1WANEnaP z>A?X$W=MT~Js`qnWd}`2)WIzT&Szq0*XI*r2bK_cI|AXv%n?HO&R1SQZ!2r!LQ0d`M3KzI(cz_l^GMb!>EO$vsDG>r%mzXqkpA-%th|P)iOKTnDoO`@U;u{!luYS?d#4WLj}h#L z1@GRbfPszt7Vx=dqf?1{s$A<3(a>}SeYT^?AaYRd|$xt zY-wh84B8t2-m%l&*+~SVGCzL}+&XY@Z~!Wgii%oXTnsRuz@=3XZ&-yBg=^`b5fF%6 z1JTOqT4u#5u zSMs{l-oYW8LX@Ex8*8pH2GiM{4I9*P;NXNjaW$>NCnujS)#Z8n{nI61G1b$j=%tT5 z*8pnf&?n8TMNYcJ2Ix+K?Ku$bpV!k;8w@Lrc+e}{&F8~N{vX_SXX*igRM&lL6=zc4 z_V)I2n{BwPQ_E>$L9k2KfjUyDm}$x+4_SjEsRA8;1CH(Jt~>95lcnP6_c3V1%p$ z9z4yab9{r$=5*0(3$5e3eDpS9Og$vz~s>9NzOwE ziptAFgdXcv0N1&=czAS_-@F|OOsgX6u z%S_D7U{hRPUJlpKx?G<*jQr>%qol;T#3Wt9pPR%Uo1Ap>mhwI;1I4Hq%0Qc$+S^&8 zRc6Gg(&^>sT+2Yer%oh$c_FaxL*#ysY4I>Ip`58a>%zzbUiU(es&nY7&hnltMKDTo zR+c)c;*$p*wRyFnk%w{@7TSP>_GX$AA5zJwaJIOI)4}iuHlt_Z8B-rk?`4Z0PBKSW#LH%bZcl{HBpFKTA-@hkAtz=9< zsv#A#loYUEQCtpaeuygCsWh#f0EnW0)uU;4adFBs4DsLA|2|4(X*T+%^~F&J8ZJ$6 z7EbMS?1rr;u@C10Vz3R*%4w^4TJxkL$FPT5h9^LF&DNo9s0gzBe=PKZ@l3z5R66r@^#D`)TEaYTe7{Jc5$+ z^QyMC&w@V#(m+LpD$K^Bva+2@zgvz?`UfiWIZO}5j{!RBlwV3qDb+M&YL)X>s*`r{3Sn_%_*{?bobK@wl|$ipWmjyj`&`#49MaU?3k7BM zwJ{hKd6R1Ol+G7N)M(SKKu$YIEz4@31CobDdb4MyvMq6cl%T%XSX=0vrqowomv;|_ zOtG=E)5F8!6`5i|@ap2?qPtrT9nU;UB>F!`FQm1#73g?gjXp4Qh@PIeZN8Gz$oHuX zQ~cz+s91AUs6a!bW4=l-F`3`r-GYT68Ef;o7MkWVF9)#&!1wOE(Ck$u<}f3$#|ALL z14`VEFTBo5z%>rNjmz!wp`Rox2F(Ya6`|4vy~-cy?1Y@5{;P(0v+;90?RJvP!gWey z7pc1NJa}SkgrobLOH*3t&3Oi)(Oo^3XhdPLanU0|X;`b=w--U1GyII_^?UTZrG8aB z%(D~(J`r=hjtZU^V>?Ab&B((~C~-&XQwTj%9*4m$t_a(LD+KsswTipyBCA>2 z_caewA8Gxc8|6s$TJOp7{hEFG+c9a?Gocs@DG^wg%MmA0t+1S?QIT}87&Ij|jV`WS za^Gg6Cs~YdP5526f391tB_mj-zX_p|@;vzD;<^bQ%OkCI6{jSpc&28kJkUqqmT<#b zc9jdis6F5$Q)g2><^oe(Jrb-G>Ib}K21I3@S4d7d_xq`) zouBa?ZU6mS`B!dL+UZYkF|mjHyA$>IT&#+Th$^dXf?A&yVq=6P2^jh&ivO=rU8>kgfxz*~YT=qA@=~UCQF>fY zd>2jFJ#;|SJ6hjar%7LZizSCm`Gto`@8|+uKuU^?jHY17xnue?ON-;WWN1skWA!Y` zgqJj8!`6;$a|dg=#RA-f4(PG_QR`L=-y#SN&9$~yWcvub=d`k()@*mjwR)dTsd^V3 zu|K9K)zTBGSGFj0v_+bAqfbx*M^jd8?8rj6;KS0;@3u%~qsOX%`W;B;9(v*mHn}oNTDWSTFgHo>=oro z__8NbH1!{)*g|jj^{{&v}vU_oj97z&UUn zaOPLL84siiig@CJtKLV+X58!^INatZjHiKC6JtMnpLyzX^92p$ zHNYJz$_tMN537CTqr?AF#ke&I62xROxfP7hE`Mbj*@pQ3wTqq^7gH)%@-(I0tTy== zY#Gh{>@~&q5aYq4$EYJ)Q`7*E@oweV<_X;9^O+316;9se*A|6}A9-H!=#gG;+vFIe=g zu^I|^qI4T0;*Zzmtuyum!iq=R2IOC0Uww~nq9#>YCmUggzbM)GG?zV~L)3eoQ~3P& z&iFExmm5jR*T*XF+WMGSi@tt2$*M2&;3R!yF}%#o`9*p= z*4$LEo(TW=I#<6$ejHY!@beN66SL;{sMhtEe={ra+RFzpt1kRXmUzE+6D2LUkQRP?~804s%Y|4uH7+GVa+!Z$Z_sUsI zTCZhKguM|rOb)=FPH+r;A9G>XXC`=D^eb`CjF7-zA+xcp6k30qy7Ok2#OICLT2k8Q z`R&v(ok~YjM@#8`(Yn2-Y7v=`X!r9&1kQsO^f%$4_ncU8n^KZO!0N&{t8($Yp;oBW zseppLq^?!8wxY2)W^W~6$<(H3!=%i~ERXdo8>3GPp_jwz@{bKC%PF|$mL?a4kdviW zZs-6`YW*%dr0Ci$k1gMqemvF+-5d5`sK!+P4iNcuaR2K=12-6PeAO=%_V5mPgbe@e ze_z4Ja!mk6@$fhFQ)_5TL66PJQmf8k{VIcJ%QotV3yl<;%^iyWKJhofVuSycc`rAI zjn14RV&^DbZK4ZRL_4I0V{PYSp}P<<&If)8&$2H+BK)C+6h|Xplg}36jx5a0cJGK^QU)pw{ z?@J@0~CXH5NGvVSbl3Yo8^wR@rEN@VP5Ro4i!H`G%39ZZn}Qtw*4hrYf42 zc_Ad!plpNp@2mj07~-2CS5D&>4E=LSx2c?loPj4V#rscZP^LjVm3Z$7fu1@huF-kH zbPBC5&$h}UY;ThIGcL5M>izo2g{lDq(&hBVxPM|2EtSi=3c|wl^0{W?J|U!>=kXir z#?fBwi{xiq)h)u*@pM0OW7GDLa?~1%cWTG@3S{Q2AbN;bs_n|BD0QqGWgo-|eC@tJ zyr(kVu-g0Rg8M&dd7HUnB)Vf*^<)cu7t5GGektAYo@SPBKs;4hn?iHGNzC{0Pgp|4 z_(*2(l0wy=%IG0(_V4vrNGZ}ZbS{^%LM)~Hyn@PAf?@OjSn&H5k|o`;2GyLuUi@}E zksfVGeyFfRC}osHcSSGt?kVAn+RU(P*nhIlPWolm_oM6ceXUKqG!wEAt)g2dgTt<- z7byj?ZACr1wm^-t*a$Ci$n@;k>(ya5xp<>@-$m~tf93^c@w{W_{v5GLj8Kswd#Ckm zOETKfmc)`-N2dy8sW#`7oN!!3v>Z{jV(xFZK2~B9!vYOP_JTaa%8YXkI zH5D431$J=^B5EI4qnn80deS&^Zk$zENJQSulPLY~)b`X2txWkNcUP+nZS7KZKRmbp zGcGZ^tmUHFZ~3Zi5K&|7VBf=CjQ{kTH%=6)SZEG%Nd7NUHKrn&&ROon`wK*tWB9`5 zd3tr;^M0kbH>Z z8#GX4cu^p9t=KzlCNE|5Qic3-)sK;|mLu8pP1ANB{$fPERg^@YDP-e&QfAtF#unL?osvsn}Q_y;PBq&O7P>z zaQty2p0D~nqII?Tu~~uNR`S{W=Ru#gE$z4kU#GyYW9{QkD|CMOw7NvfS*@LO@%QFc z9`$1>01&)9iaTgz_!;4bX6lQ`V}&lYHrH!5xFag!O0v05O0VxcPauc+zG;5Ou(!UW zlegaf%PmI~p3sDd&)&H^EuVjAO?$k&{(sdp?=Z>}Gdi914TUmyFT+Pw&2ri#;T7)_ ze+NJHvod@8e1~$?Br!2lRrI<^w}+dbH?QJgq{duOc3WUeg$-#UF3^hmg!ZrFRJ&Ts z&|4p#P-8!KpDS3iFw_Gl%ay z;iK9%LEa(Wv_W{je54@GS`vOa@^x_A^#4wkY~8eqTEv4b1mh0bJ$b;PAAT!R=+gK< eZSG*(x<@`R!9JFp{Ic)}{JfG^ldFIj2mTMDC(nQY diff --git a/docs/core/diagnostics/debug-highcpu.md b/docs/core/diagnostics/debug-highcpu.md index 0deec004ff87e..a70d05d41ed45 100644 --- a/docs/core/diagnostics/debug-highcpu.md +++ b/docs/core/diagnostics/debug-highcpu.md @@ -168,7 +168,7 @@ This command generates a `flamegraph.svg` that you can view in the browser to in ### [Windows](#tab/windows) -On Windows, you can use the [dotnet-trace](dotnet-trace.md) tool as a profiler. Using the previous [sample debug target](/samples/dotnet/samples/diagnostic-scenarios), exercise the high CPU endpoint (`https://localhost:5001/api/diagscenario/highcpu/60000`) again. While it's running within the 1-minute request, use the `collect` command, with the `providers` option to specify the provider we want: [Microsoft-DotNetCore-SampleProfiler](/dotnet/core/diagnostics/well-known-event-providers#microsoft-dotnetcore-sampleprofiler-provider), to collect a trace of the app as follows: +On Windows, you can use the [dotnet-trace](dotnet-trace.md) tool as a profiler. Using the previous [sample debug target](/samples/dotnet/samples/diagnostic-scenarios), exercise the high CPU endpoint (`https://localhost:5001/api/diagscenario/highcpu/60000`) again. While it's running within the 1-minute request, use the `collect` command, with the `providers` option to specify the provider we want: [Microsoft-DotNetCore-SampleProfiler](well-known-event-providers.md#microsoft-dotnetcore-sampleprofiler-provider), to collect a trace of the app as follows: ```dotnetcli dotnet-trace collect -p 22884 --providers Microsoft-DotNETCore-SampleProfiler diff --git a/docs/csharp/language-reference/compiler-messages/toc.yml b/docs/csharp/language-reference/compiler-messages/toc.yml index 5e020b10f08da..7ca0c7f577b82 100644 --- a/docs/csharp/language-reference/compiler-messages/toc.yml +++ b/docs/csharp/language-reference/compiler-messages/toc.yml @@ -1879,7 +1879,6 @@ items: href: cs1610.md - name: CS1712 href: ../../misc/cs1712.md -- name: Level 5 warning messages - items: - - name: CS8892 - href: cs8892.md +- name: Warning waves + href: warning-waves.md + displayName: CS7023,CS8073,CS8848,CS8880,CS8881,CS8882,CS8883,CS8884,CS8885,CS8886,CS8887,CS8892,CS8897,CS8898,CS8826,CS8981 diff --git a/docs/framework/unmanaged-api/debugging/libraryproviderindextype-enumeration.md b/docs/framework/unmanaged-api/debugging/libraryproviderindextype-enumeration.md index f05bed3cc1b54..7d5f045c115d9 100644 --- a/docs/framework/unmanaged-api/debugging/libraryproviderindextype-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/libraryproviderindextype-enumeration.md @@ -20,7 +20,7 @@ topic_type: --- # LIBRARY_PROVIDER_INDEX_TYPE Enumeration -The type of index information passed to the library provider is either the identity of the requested module or the runtime (coreclr) module's. +The type of index information passed to the library provider is either the identity of the requested module or of the runtime (coreclr) module. ## Syntax diff --git a/docs/framework/unmanaged-api/debugging/toc.yml b/docs/framework/unmanaged-api/debugging/toc.yml index 3c5fbb41e7c0f..3166a5830fd0f 100644 --- a/docs/framework/unmanaged-api/debugging/toc.yml +++ b/docs/framework/unmanaged-api/debugging/toc.yml @@ -1,3 +1,4 @@ +items: - name: Debugging href: index.md items: @@ -1492,6 +1493,8 @@ href: clrdatacreateinstance-function.md - name: PFN_CLRDataCreateInstance Function Pointer href: pfn-clrdatacreateinstance-function-pointer.md + - name: PSTARTUP_CALLBACK Function Pointer + href: pstartup_callback-function-pointer.md - name: Debugging Enumerations href: debugging-enumerations.md items: @@ -1569,6 +1572,8 @@ href: corgcreferencetype-enumeration.md - name: ILCodeKind Enumeration href: ilcodekind-enumeration.md + - name: LIBRARY_PROVIDER_INDEX_TYPE Enumeration + href: libraryproviderindextype-enumeration.md - name: LoggingLevelEnum Enumeration href: logginglevelenum-enumeration.md - name: LogSwitchCallReason Enumeration diff --git a/docs/orleans/media/managed-lifecycle.png b/docs/orleans/media/managed-lifecycle.png deleted file mode 100644 index 8268f61e049d5ca45b689c6ce7970695f5024a2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19891 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 OH0Y}sz87fWX@3JgJ*I{L From 170d9b856278d0b5076ba41aa94adbbc5cdf37c1 Mon Sep 17 00:00:00 2001 From: Bill Wagner Date: Wed, 18 May 2022 17:07:42 -0400 Subject: [PATCH 283/429] Release updated NuPkg (#29520) * add updated NuPkg * remove old NuPkg --- ....1.4.nupkg => dotnet-whatsnew.2.1.5.nupkg} | Bin 939830 -> 942103 bytes 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/dependencies/{dotnet-whatsnew.2.1.4.nupkg => dotnet-whatsnew.2.1.5.nupkg} (88%) diff --git a/.github/workflows/dependencies/dotnet-whatsnew.2.1.4.nupkg b/.github/workflows/dependencies/dotnet-whatsnew.2.1.5.nupkg similarity index 88% rename from .github/workflows/dependencies/dotnet-whatsnew.2.1.4.nupkg rename to .github/workflows/dependencies/dotnet-whatsnew.2.1.5.nupkg index effa69c8fea93a1559d17be4795e6f39bee43208..7421136e4d1adeb35d3da5dc7b5494e6197d52e7 100644 GIT binary patch delta 107182 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

        {9DsfIchIkn~f%q8s6!9_e7sNyG8R8-MJK{C) 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

    ppK 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%0D_cVqjYQL20MuBJtwYPn}V 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/python-sdk-auth-strategy.png b/docs/azure/sdk/media/python-sdk-auth-strategy.png new file mode 100644 index 0000000000000000000000000000000000000000..9e5d3ae47e507f668e1932413f947f22f95ce94a GIT binary patch literal 17936 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/visual-studio-sign-in.png b/docs/azure/sdk/media/visual-studio-sign-in.png new file mode 100644 index 0000000000000000000000000000000000000000..9faa35712a33019082b2dcf617013781aa0e5800 GIT binary patch literal 31750 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 No7c+H<&uU0{{kS;T0;N; literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/vs-code-azure-login.png b/docs/azure/sdk/media/vs-code-azure-login.png new file mode 100644 index 0000000000000000000000000000000000000000..559586c80ab213aa14493597fe2b73b5c93156e5 GIT binary patch literal 47397 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,R$`} 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 P=PtcTIIX=`;OLG&> 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/vs-code-azure-tools-install.png b/docs/azure/sdk/media/vs-code-azure-tools-install.png new file mode 100644 index 0000000000000000000000000000000000000000..f65087472f3cbfb4a6c52b604d19b728a03f2fee GIT binary patch literal 146406 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/local-dev-app-registration-azure-portal-2.png b/docs/azure/sdk/media/local-dev-app-registration-azure-portal-2.png new file mode 100644 index 0000000000000000000000000000000000000000..7683df0ed28dbce143ab97c952b4902ec3633161 GIT binary patch literal 17297 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

    +@WMiqZ>N>o5XX^eY4w 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 literal 0 HcmV?d00001 diff --git a/docs/orleans/index.yml b/docs/orleans/index.yml index 2ddae06c330e8..63bf7c5bd9186 100644 --- a/docs/orleans/index.yml +++ b/docs/orleans/index.yml @@ -90,8 +90,8 @@ conceptualContent: text: Consul deployment url: deployment/consul-deployment.md - itemType: concept - text: Azure deployment - url: deployment/azure-web-apps-with-azure-cloud-services.md + text: Azure App Service + url: deployment/deploy-to-azure-app-service.md - itemType: concept text: Multi-cluster deployment url: deployment/multi-cluster-support/overview.md diff --git a/docs/orleans/toc.yml b/docs/orleans/toc.yml index 98ba48a639a3e..2a89df2d301e4 100644 --- a/docs/orleans/toc.yml +++ b/docs/orleans/toc.yml @@ -150,6 +150,8 @@ items: items: - name: Running the app href: deployment/index.md + - name: Azure App Service + href: deployment/deploy-to-azure-app-service.md - name: Kubernetes href: deployment/kubernetes.md - name: Service fabric From c1701af306c1499a935bcbe88eafd6317c8b80c9 Mon Sep 17 00:00:00 2001 From: mikelle-rogers <45022607+mikelle-rogers@users.noreply.github.com> Date: Wed, 4 May 2022 17:41:57 -0600 Subject: [PATCH 117/429] Include info for when a trace is truncated (#29245) * Include info for when a trace is truncated If there is an unhandled exception, the trace will be truncated when the exception is thrown. * Combine successive notes into one note * Fix lint errors * Clarifications from the pull review --- docs/core/diagnostics/dotnet-trace.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/core/diagnostics/dotnet-trace.md b/docs/core/diagnostics/dotnet-trace.md index 75118229c4cba..594c0a3b3708d 100644 --- a/docs/core/diagnostics/dotnet-trace.md +++ b/docs/core/diagnostics/dotnet-trace.md @@ -194,16 +194,16 @@ dotnet-trace collect [--buffersize ] [--clreventlevel ] [-- Shows the input and output streams of a launched child process in the current console. > [!NOTE] -> Stopping the trace may take a long time (up to minutes) for large applications. The runtime needs to send over the type cache for all managed code that was captured in the trace. -> [!NOTE] -> On Linux and macOS, this command expects the target application and `dotnet-trace` to share the same `TMPDIR` environment variable. Otherwise, the command will time out. +> - Stopping the trace may take a long time (up to minutes) for large applications. The runtime needs to send over the type cache for all managed code that was captured in the trace. -> [!NOTE] -> To collect a trace using `dotnet-trace`, it needs to be run as the same user as the user running target process or as root. Otherwise, the tool will fail to establish a connection with the target process. +> - On Linux and macOS, this command expects the target application and `dotnet-trace` to share the same `TMPDIR` environment variable. Otherwise, the command will time out. -> [!NOTE] -> If you see an error message similar to the following one: `[ERROR] System.ComponentModel.Win32Exception (299): A 32 bit processes cannot access modules of a 64 bit process.`, you are trying to use `dotnet-trace` that has mismatched bitness against the target process. Make sure to download the correct bitness of the tool in the [install](#install) link. +> - To collect a trace using `dotnet-trace`, it needs to be run as the same user as the user running the target process or as root. Otherwise, the tool will fail to establish a connection with the target process. + +> - If you see an error message similar to: `[ERROR] System.ComponentModel.Win32Exception (299): A 32 bit processes cannot access modules of a 64 bit process.`, you are trying to use a version of `dotnet-trace` that has mismatched bitness against the target process. Make sure to download the correct bitness of the tool in the [install](#install) link. + +> - If you experience an unhandled exception while running `dotnet-trace collect`, this results in a broken trace. If finding the root cause of the exception is your priority, navigate to [Collect dumps on crash](/core/diagnostics/dumps#collect-dumps-on-crash). As a result of the crash in the program, the trace is truncated when the runtime rips apart to prevent breaking other parts of the program. Even though the trace is broken, you can still open it to see what happened leading up to the failure. However, it will be missing Rundown information (this happens at the end of a trace) so stacks might be unresolved (depending on what providers were turned on). Open the trace by executing PerfView with the `/ContinueOnError` flag at the command line. The logs will also contain the location the exception was fired. ## dotnet-trace convert From fa06739780117ba2cc855d0d95fbab86853e2a45 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Wed, 4 May 2022 20:20:28 -0700 Subject: [PATCH 118/429] add .net 6 breaking change (#29282) --- docs/core/compatibility/6.0.md | 1 + .../sdk/6.0/runtimeconfigdev-file.md | 36 +++++++++++++++++++ docs/core/compatibility/toc.yml | 4 +++ docs/core/project-sdk/msbuild-props.md | 11 ++++++ 4 files changed, 52 insertions(+) create mode 100644 docs/core/compatibility/sdk/6.0/runtimeconfigdev-file.md diff --git a/docs/core/compatibility/6.0.md b/docs/core/compatibility/6.0.md index 8b148d78fc94d..0b9fa6c19f0fb 100644 --- a/docs/core/compatibility/6.0.md +++ b/docs/core/compatibility/6.0.md @@ -134,6 +134,7 @@ If you're migrating an app to .NET 6, the breaking changes listed here might aff | [MSBuild no longer supports calling GetType()](sdk/6.0/calling-gettype-property-functions.md) | | | RC 1 | | [OutputType not automatically set to WinExe](sdk/6.0/outputtype-not-set-automatically.md) | ✔️ | ❌ | RC 1 | | [Publish ReadyToRun with --no-restore requires changes](sdk/6.0/publish-readytorun-requires-restore-change.md) | ✔️ | ❌ | 6.0.100 | +| [runtimeconfig.dev.json file not generated](sdk/6.0/runtimeconfigdev-file.md) | ❌ | ✔️ | 6.0.100 | | [RuntimeIdentifier warning if self-contained is unspecified](sdk/6.0/runtimeidentifier-self-contained.md) | ✔️ | ❌ | RC 1 | | [Version requirements for .NET 6 SDK](sdk/6.0/vs-msbuild-version.md) | ✔️ | ✔️ | 6.0.300 | | [Write reference assemblies to IntermediateOutputPath](sdk/6.0/write-reference-assemblies-to-obj.md) | ❌ | ✔️ | 6.0.200 | diff --git a/docs/core/compatibility/sdk/6.0/runtimeconfigdev-file.md b/docs/core/compatibility/sdk/6.0/runtimeconfigdev-file.md new file mode 100644 index 0000000000000..bd6ef93b01800 --- /dev/null +++ b/docs/core/compatibility/sdk/6.0/runtimeconfigdev-file.md @@ -0,0 +1,36 @@ +--- +title: "Breaking change: runtimeconfig.dev.json file not generated" +description: Learn about the breaking change in the .NET 6 SDK where the runtimeconfig.dev.json file is no longer generated by default. +ms.date: 05/04/2022 +--- +# runtimeconfig.dev.json file not generated + +The .NET SDK no longer generates the *runtimeconfig.dev.json* file by default. This file was not used in most scenarios, and finding and loading the file added small amounts of performance overhead. + +## Previous behavior + +An *\[Appname].runtimesettings.dev.json* file was automatically generated at compile time. + +## New behavior + +The *\[Appname].runtimesettings.dev.json* file is no longer generated by default. + +## Version introduced + +.NET SDK 6.0.100 + +## Change category + +This change may affect [*binary compatibility*](../../categories.md#binary-compatibility). + +## Reason for change + +Not generating the file provides a small but measurable performance improvement. + +## Recommended action + +This change should not affect most customers. However, if you still require this file, add `true` to your project. For more information, see [GenerateRuntimeConfigDevFile](../../../project-sdk/msbuild-props.md#generateruntimeconfigdevfile). + +## Affected APIs + +N/A diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml index 22fae38cca862..d47aecf4d2088 100644 --- a/docs/core/compatibility/toc.yml +++ b/docs/core/compatibility/toc.yml @@ -239,6 +239,8 @@ items: href: sdk/6.0/outputtype-not-set-automatically.md - name: Publish ReadyToRun with --no-restore requires changes href: sdk/6.0/publish-readytorun-requires-restore-change.md + - name: runtimeconfig.dev.json file not generated + href: sdk/6.0/runtimeconfigdev-file.md - name: RuntimeIdentifier warning if self-contained is unspecified href: sdk/6.0/runtimeidentifier-self-contained.md - name: Version requirements for .NET 6 SDK @@ -985,6 +987,8 @@ items: href: sdk/6.0/outputtype-not-set-automatically.md - name: Publish ReadyToRun with --no-restore requires changes href: sdk/6.0/publish-readytorun-requires-restore-change.md + - name: runtimeconfig.dev.json file not generated + href: sdk/6.0/runtimeconfigdev-file.md - name: RuntimeIdentifier warning if self-contained is unspecified href: sdk/6.0/runtimeidentifier-self-contained.md - name: Version requirements for .NET 6 SDK diff --git a/docs/core/project-sdk/msbuild-props.md b/docs/core/project-sdk/msbuild-props.md index 2c45af4928e6d..8b728bf967011 100644 --- a/docs/core/project-sdk/msbuild-props.md +++ b/docs/core/project-sdk/msbuild-props.md @@ -148,6 +148,7 @@ The following MSBuild properties are documented in this section: - [CopyLocalLockFileAssemblies](#copylocallockfileassemblies) - [EnablePackageValidation](#enablepackagevalidation) - [ErrorOnDuplicatePublishOutputFiles](#erroronduplicatepublishoutputfiles) +- [GenerateRuntimeConfigDevFile](#generateruntimeconfigdevfile) - [GenerateRuntimeConfigurationFiles](#generateruntimeconfigurationfiles) - [IsPublishable](#ispublishable) - [PreserveCompilationContext](#preservecompilationcontext) @@ -221,6 +222,16 @@ The `EnablePackageValidation` property enables a series of validations on the pa This property was introduced in .NET 6. +### GenerateRuntimeConfigDevFile + +Starting with the .NET 6 SDK, the *\[Appname].runtimesettings.dev.json* file is [no longer generated by default](../compatibility/sdk/6.0/runtimeconfigdev-file.md) at compile time. If you still want this file to be generated, set the `GenerateRuntimeConfigDevFile` property to `true`. + +```xml + + true + +``` + ### GenerateRuntimeConfigurationFiles The `GenerateRuntimeConfigurationFiles` property controls whether runtime configuration options are copied from the *runtimeconfig.template.json* file to the *[appname].runtimeconfig.json* file. For apps that require a *runtimeconfig.json* file, that is, those whose `OutputType` is `Exe`, this property defaults to `true`. From 623f22c7b4584607fb1ece2d8e7b9be84a4c0497 Mon Sep 17 00:00:00 2001 From: GitHubPang <61439577+GitHubPang@users.noreply.github.com> Date: Thu, 5 May 2022 11:39:49 +0800 Subject: [PATCH 119/429] Fix grammar typo (#29284) Use "an" instead of "a" for "InvalidEnumArgumentException". --- .../core-libraries/7.0/serializationformat-binary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/compatibility/core-libraries/7.0/serializationformat-binary.md b/docs/core/compatibility/core-libraries/7.0/serializationformat-binary.md index 914079c89252f..ce356016e9afd 100644 --- a/docs/core/compatibility/core-libraries/7.0/serializationformat-binary.md +++ b/docs/core/compatibility/core-libraries/7.0/serializationformat-binary.md @@ -7,7 +7,7 @@ ms.date: 03/18/2022 is obsolete for and . Binary serialization relies on , which is insecure. If you use in your code, obsoletion warning [SYSLIB0038](../../../../fundamentals/syslib-diagnostics/syslib0038.md) will be generated at compile time. -In addition, a is thrown at run time if you: +In addition, an is thrown at run time if you: - Set or to . - Call one of the deserialization constructors for or with binary data. From 6ea4c9ec509a7b1f87b2a75f34902c4185d4ee48 Mon Sep 17 00:00:00 2001 From: Radek Zikmund <32671551+rzikm@users.noreply.github.com> Date: Thu, 5 May 2022 12:09:29 +0200 Subject: [PATCH 120/429] Emphasize that `SCH_USE_STRONG_CRYPTO` is used only for clients --- docs/framework/network-programming/tls.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/framework/network-programming/tls.md b/docs/framework/network-programming/tls.md index 24573828c7584..9b5225f0fa140 100644 --- a/docs/framework/network-programming/tls.md +++ b/docs/framework/network-programming/tls.md @@ -146,7 +146,7 @@ The switches have the same effect whether you're doing HTTP networking (: SchUseStrongCrypto` registry key has a value of type DWORD. A value of 1 causes your app to use strong cryptography. The strong cryptography uses more secure network protocols (TLS 1.2, TLS 1.1, and TLS 1.0) and blocks protocols that are not secure. A value of 0 disables strong cryptography. For more information, see [The SCH_USE_STRONG_CRYPTO flag](#the-sch_use_strong_crypto-flag). +The `HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\: SchUseStrongCrypto` registry key has a value of type DWORD. A value of 1 causes your app to use strong cryptography. The strong cryptography uses more secure network protocols (TLS 1.2, TLS 1.1, and TLS 1.0) and blocks protocols that are not secure. A value of 0 disables strong cryptography. For more information, see [The SCH_USE_STRONG_CRYPTO flag](#the-sch_use_strong_crypto-flag). This registry setting affects only client connections in your application. If your app targets .NET Framework 4.6 or later versions, this key defaults to a value of 1. That's a secure default that we recommend. If your app targets .NET Framework 4.5.2 or earlier versions, the key defaults to 0. In that case, you should explicitly set its value to 1. @@ -235,12 +235,12 @@ Start with the `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProv ## The SCH_USE_STRONG_CRYPTO flag -When it's enabled (by default, by [an `AppContext` switch](#switchsystemnetdontenableschusestrongcrypto), or [by the Windows Registry](#schusestrongcrypto)), the .NET Framework uses the `SCH_USE_STRONG_CRYPTO` flag when your app requests a TLS security protocol. .NET Framework passes the flag to `Schannel`to instruct it to disable known weak cryptographic algorithms, cipher suites, and TLS/SSL protocol versions that may be otherwise enabled for better interoperability. For more information, see: +When it's enabled (by default, by [an `AppContext` switch](#switchsystemnetdontenableschusestrongcrypto), or [by the Windows Registry](#schusestrongcrypto)), the .NET Framework uses the `SCH_USE_STRONG_CRYPTO` flag when your app initiates a TLS connection to a server. .NET Framework passes the flag to `Schannel` to instruct it to disable known weak cryptographic algorithms, cipher suites, and TLS/SSL protocol versions that may be otherwise enabled for better interoperability. For more information, see: - [Secure Channel](/windows/desktop/SecAuthN/secure-channel) - [SCHANNEL_CRED structure](/windows/win32/api/schannel/ns-schannel-schannel_cred) -The `SCH_USE_STRONG_CRYPTO` flag is also passed to `Schannel` when you explicitly use the `Tls` (TLS 1.0), `Tls11`, or `Tls12` enumerated values of or . +The `SCH_USE_STRONG_CRYPTO` flag is also passed to `Schannel` for client connections when you explicitly use the `Tls` (TLS 1.0), `Tls11`, or `Tls12` enumerated values of or . The `SCH_USE_STRONG_CRYPTO` flag is used only for connections where your application acts the role of the client. You can disable weak protocols and algorithms when your applications acts the role of the server by configuring the machine-wide `Schannel` registry settings. ## Security updates From 2f9e811280d1436a6e0068d912a85ae858f8eb47 Mon Sep 17 00:00:00 2001 From: Tarun Jain <87998741+erjain@users.noreply.github.com> Date: Thu, 5 May 2022 16:49:23 +0530 Subject: [PATCH 121/429] Remove Channel 9 (#29291) --- docs/architecture/microservices/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/architecture/microservices/index.md b/docs/architecture/microservices/index.md index 5acdcd4ba6bca..a06f2ac16ce98 100644 --- a/docs/architecture/microservices/index.md +++ b/docs/architecture/microservices/index.md @@ -21,7 +21,7 @@ To make it easier to get started, the guide focuses on a reference containerized - Clone/Fork the reference application [eShopOnContainers on GitHub](https://github.com/dotnet-architecture/eShopOnContainers) -- Watch the [introductory video on Channel 9](https://aka.ms/microservices-video) +- Watch the [introductory video](https://aka.ms/microservices-video) - Get to know the [Microservices Architecture](https://aka.ms/MicroservicesArchitecture) right away From 986f7efcd821e157754ce2f05e9622661772d3d9 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Thu, 5 May 2022 06:23:41 -0700 Subject: [PATCH 122/429] Update package index with latest published versions (#29285) --- docs/azure/includes/dotnet-all.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 7e94ad1c2a39f..ac42e85ac435f 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -111,7 +111,7 @@ | Microsoft.Azure.Cosmos.Templates | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Templates/1.0.0) | | | | Microsoft.Azure.Functions.Analyzers | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Analyzers/1.0.0) | | | | Microsoft.Azure.Functions.Authentication.WebAssembly | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Authentication.WebAssembly/1.0.0)
    NuGet [1.0.1-preview](https://www.nuget.org/packages/Microsoft.Azure.Functions.Authentication.WebAssembly/1.0.1-preview) | | | -| Microsoft.Azure.Functions.Worker.Core | NuGet [1.4.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Core/1.4.0)
    NuGet [1.5.0-preview1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Core/1.5.0-preview1) | | | +| Microsoft.Azure.Functions.Worker.Core | NuGet [1.4.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Core/1.4.0)
    NuGet [1.6.0-preview1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Core/1.6.0-preview1) | | | | Microsoft.Azure.Functions.Worker.Extensions.Abstractions | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Abstractions/1.1.0) | | | | Microsoft.Azure.Functions.Worker.Extensions.ApplicationInsights | NuGet [1.0.0-preview4](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.ApplicationInsights/1.0.0-preview4) | | | | Microsoft.Azure.Functions.Worker.Extensions.CosmosDB | NuGet [3.0.9](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.CosmosDB/3.0.9)
    NuGet [4.0.0-preview2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.CosmosDB/4.0.0-preview2) | | | @@ -129,10 +129,11 @@ | Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues | NuGet [5.0.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues/5.0.0) | | | | Microsoft.Azure.Functions.Worker.Extensions.Timer | NuGet [4.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Timer/4.1.0) | | | | Microsoft.Azure.Functions.Worker.Extensions.Warmup | NuGet [4.0.2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Warmup/4.0.2) | | | -| Microsoft.Azure.Functions.Worker.Grpc | NuGet [1.3.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Grpc/1.3.1)
    NuGet [1.4.0-preview1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Grpc/1.4.0-preview1) | | | +| Microsoft.Azure.Functions.Worker.Grpc | NuGet [1.3.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Grpc/1.3.1)
    NuGet [1.4.1-preview1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Grpc/1.4.1-preview1) | | | | Microsoft.Azure.Functions.Worker.ItemTemplates | NuGet [4.0.2097](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ItemTemplates/4.0.2097) | | | | Microsoft.Azure.Functions.Worker.ProjectTemplates | NuGet [4.0.2097](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ProjectTemplates/4.0.2097) | | | | Microsoft.Azure.Functions.Worker.Sdk.Analyzers | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk.Analyzers/1.1.0) | | | +| Microsoft.Azure.Functions.Worker.Sdk.Generators | NuGet [1.0.0-preview1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk.Generators/1.0.0-preview1) | | | | Microsoft.Azure.IoT.Edge.Function | NuGet [3.5.3](https://www.nuget.org/packages/Microsoft.Azure.IoT.Edge.Function/3.5.3) | | | | Microsoft.Azure.IoT.Edge.Module | NuGet [3.1.1](https://www.nuget.org/packages/Microsoft.Azure.IoT.Edge.Module/3.1.1) | | | | Microsoft.Azure.Management.ChangeAnalysis | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.ChangeAnalysis/1.0.0) | | | @@ -318,8 +319,8 @@ | Microsoft.Azure.Devices.Provisioning.Transport.Http | NuGet [1.15.1](https://www.nuget.org/packages/Microsoft.Azure.Devices.Provisioning.Transport.Http/1.15.1)
    NuGet [1.16.0-preview-001](https://www.nuget.org/packages/Microsoft.Azure.Devices.Provisioning.Transport.Http/1.16.0-preview-001) | | | | Microsoft.Azure.Devices.Provisioning.Transport.Mqtt | NuGet [1.17.1](https://www.nuget.org/packages/Microsoft.Azure.Devices.Provisioning.Transport.Mqtt/1.17.1)
    NuGet [1.18.0-preview-001](https://www.nuget.org/packages/Microsoft.Azure.Devices.Provisioning.Transport.Mqtt/1.18.0-preview-001) | | | | Microsoft.Azure.Devices.Shared | NuGet [1.30.1](https://www.nuget.org/packages/Microsoft.Azure.Devices.Shared/1.30.1)
    NuGet [1.31.0-preview-001](https://www.nuget.org/packages/Microsoft.Azure.Devices.Shared/1.31.0-preview-001) | | | -| Microsoft.Azure.Functions.Worker | NuGet [1.6.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/1.6.0)
    NuGet [1.7.0-preview1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/1.7.0-preview1) | | | -| Microsoft.Azure.Functions.Worker.Sdk | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk/1.3.0) | | | +| Microsoft.Azure.Functions.Worker | NuGet [1.6.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/1.6.0)
    NuGet [1.8.0-preview1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/1.8.0-preview1) | | | +| Microsoft.Azure.Functions.Worker.Sdk | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk/1.3.0)
    NuGet [1.5.0-preview1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk/1.5.0-preview1) | | | | Microsoft.Azure.uamqp | NuGet [1.2.11](https://www.nuget.org/packages/Microsoft.Azure.uamqp/1.2.11) | | | | Microsoft.Azure.umqtt | NuGet [1.1.11](https://www.nuget.org/packages/Microsoft.Azure.umqtt/1.1.11) | | | | Mobile Apps | NuGet [2.0.3](https://www.nuget.org/packages/Microsoft.Azure.Mobile.Server/2.0.3) | | | From 54e6aab02b82636cb5e69f898d98202a337f38f4 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Thu, 5 May 2022 08:48:15 -0700 Subject: [PATCH 123/429] Update package index with latest published versions (#29296) --- docs/azure/includes/dotnet-all.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index ac42e85ac435f..744c07b4f9c9f 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -526,7 +526,7 @@ | Management - Data Box | NuGet [2.0.1](https://www.nuget.org/packages/Microsoft.Azure.Management.DataBox/2.0.1) | | GitHub [2.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.DataBox_2.0.1/sdk/databox/Microsoft.Azure.Management.DataBox/) | | Management - Data Box Edge | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Management.DataBoxEdge/1.1.0) | | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.DataBoxEdge_1.1.0/sdk/databoxedge/Microsoft.Azure.Management.DataBoxEdge/) | | Management - Data Factories | NuGet [4.13.3](https://www.nuget.org/packages/Microsoft.Azure.Management.DataFactories/4.13.3) | [docs](/dotnet/api/overview/azure/data-factory) | | -| Management - Data Factory | NuGet [6.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.DataFactory/6.0.0) | [docs](/dotnet/api/overview/azure/data-factory) | GitHub [6.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.DataFactory_6.0.0/sdk/datafactory/Microsoft.Azure.Management.DataFactory/) | +| Management - Data Factory | NuGet [6.1.0](https://www.nuget.org/packages/Microsoft.Azure.Management.DataFactory/6.1.0) | [docs](/dotnet/api/overview/azure/data-factory) | GitHub [6.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.DataFactory_6.1.0/sdk/datafactory/Microsoft.Azure.Management.DataFactory/) | | Management - Data Lake Analytics | NuGet [3.5.3-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.DataLake.Analytics/3.5.3-preview) | [docs](/dotnet/api/overview/azure/data-lake-analytics) | GitHub [3.5.3-preview](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/datalake-analytics/Microsoft.Azure.Management.DataLake.Analytics) | | Management - Data Lake Storage | NuGet [2.4.2-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.DataLake.Store/2.4.2-preview) | [docs](/dotnet/api/overview/azure/data-lake-store) | GitHub [2.4.2-preview](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/datalake-store/Microsoft.Azure.Management.DataLake.Store) | | Management - Data Lake Storage Uploader | NuGet [1.0.1-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.DataLake.StoreUploader/1.0.1-preview) | | | @@ -624,7 +624,7 @@ | Management - Service Fabric Fluent | NuGet [1.9.1-beta](https://www.nuget.org/packages/Microsoft.Azure.Management.ServiceFabric.Fluent/1.9.1-beta) | | | | Management - SignalR | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Management.SignalR/1.1.0)
    NuGet [1.1.2-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.SignalR/1.1.2-preview) | | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.SignalR_1.1.0/sdk/signalr/Microsoft.Azure.Management.SignalR/)
    GitHub [1.1.2-preview](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.SignalR_1.1.2-preview/sdk/signalr/Microsoft.Azure.Management.SignalR/) | | Management - Site Recovery | NuGet [2.0.2-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.SiteRecovery/2.0.2-preview) | | | -| Management - SQL | NuGet [2.1.1-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.Sql/2.1.1-preview) | | | +| Management - SQL | NuGet [3.0.0-preview](https://www.nuget.org/packages/Microsoft.Azure.Management.Sql/3.0.0-preview) | | | | Management - SQL Fluent | NuGet [1.38.1](https://www.nuget.org/packages/Microsoft.Azure.Management.Sql.Fluent/1.38.1) | [docs](/dotnet/api/overview/azure/sql) | | | Management - SQL Virtual Machine | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.SqlVirtualMachine/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.SqlVirtualMachine_1.0.0/sdk/sqlvirtualmachine/Microsoft.Azure.Management.SqlVirtualMachine/) | | Management - Storage | NuGet [24.0.0](https://www.nuget.org/packages/Microsoft.Azure.Management.Storage/24.0.0) | | GitHub [24.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Management.Storage_24.0.0/sdk/storage/Microsoft.Azure.Management.Storage/) | From bcdfd9498b2894d3d76942dd975cbc7af911543d Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Thu, 5 May 2022 14:11:42 -0700 Subject: [PATCH 124/429] Update package index with latest published versions (#29301) --- docs/azure/includes/dotnet-all.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 744c07b4f9c9f..168d6d5752f9d 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -238,7 +238,7 @@ | Core | NuGet [1.24.0](https://www.nuget.org/packages/Azure.Core/1.24.0) | [docs](/dotnet/api/overview/azure/Core-readme) | GitHub [1.24.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core_1.24.0/sdk/core/Azure.Core/) | | Core - AMQP | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Core.Amqp/1.2.0) | [docs](/dotnet/api/overview/azure/Core.Amqp-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Core.Amqp_1.2.0/sdk/core/Azure.Core.Amqp/) | | Cosmos DB | NuGet [4.0.0-preview3](https://www.nuget.org/packages/Azure.Cosmos/4.0.0-preview3) | [docs](/dotnet/api/azure.cosmos) | GitHub [4.0.0-preview3](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/releases/4.0.0-preview3) | -| Cosmos DB | NuGet [3.26.1](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.26.1) | [docs](/dotnet/api/overview/azure/cosmosdb) | GitHub [3.26.1](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) | +| Cosmos DB | NuGet [3.26.2](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.26.2) | [docs](/dotnet/api/overview/azure/cosmosdb) | GitHub [3.26.2](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) | | Cosmos DB - BulkExecutor | NuGet [2.5.1-preview](https://www.nuget.org/packages/Microsoft.Azure.CosmosDB.BulkExecutor/2.5.1-preview) | | GitHub [2.5.1-preview](https://github.com/Azure/azure-cosmosdb-bulkexecutor-dotnet-getting-started) | | Cosmos DB - Direct | NuGet [3.28.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Direct/3.28.0) | | GitHub [3.28.0](https://github.com/Azure/azure-cosmos-dotnet-v3) | | Cosmos DB - Encryption | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Encryption/1.0.0) | | GitHub [1.0.0](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/releases/encryption/1.0.0-preview4/Microsoft.Azure.Cosmos.Encryption) | From af84dc4f7019d7b37bd4d71a7c0beb5d40940a03 Mon Sep 17 00:00:00 2001 From: Arthur Ma Date: Fri, 6 May 2022 05:15:33 +0800 Subject: [PATCH 125/429] Update the version of the 3 .net libs (#29286) --- docs/azure/sdk/resource-management.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/azure/sdk/resource-management.md b/docs/azure/sdk/resource-management.md index e42e07c266c21..2c7d63a56308f 100644 --- a/docs/azure/sdk/resource-management.md +++ b/docs/azure/sdk/resource-management.md @@ -34,9 +34,9 @@ For example: ```PowerShell Install-Package Azure.ResourceManager -Version 1.0.0 -Install-Package Azure.ResourceManager.Resources -Version -Install-Package Azure.ResourceManager.Compute -Version 1.0.0-beta.3 -Install-Package Azure.ResourceManager.Network -Version 1.0.0-beta.3 +Install-Package Azure.ResourceManager.Resources -Version 1.0.0 +Install-Package Azure.ResourceManager.Compute -Version 1.0.0-beta.8 +Install-Package Azure.ResourceManager.Network -Version 1.0.0-beta.7 ``` # [.NET CLI](#tab/dotnetcli) From 870f58fc7b88cade35adf8dbe6c5e353b9edd0b9 Mon Sep 17 00:00:00 2001 From: alexwolfmsft <93200798+alexwolfmsft@users.noreply.github.com> Date: Thu, 5 May 2022 17:33:29 -0400 Subject: [PATCH 126/429] Updated Managed Identity content for .NET (#29221) * Updated content for Managed Identity authentication * Removed metadata from includes * formatting and metadata dates Co-authored-by: Cam Soper --- docs/azure/TOC.yml | 16 +- .../sdk/authentication-additional-methods.md | 78 ++++++ .../sdk/authentication-azure-hosted-apps.md | 110 ++++++++ ...tication-local-development-dev-accounts.md | 158 +++++++++++ ...ion-local-development-service-principal.md | 255 ++++++++++++++++++ .../sdk/authentication-on-premises-apps.md | 172 ++++++++++++ docs/azure/sdk/authentication.md | 109 ++++---- ...-local-dev-group-to-role-azure-portal-1.md | 3 + ...-local-dev-group-to-role-azure-portal-2.md | 1 + ...-local-dev-group-to-role-azure-portal-3.md | 4 + ...-local-dev-group-to-role-azure-portal-4.md | 6 + ...-local-dev-group-to-role-azure-portal-5.md | 6 + ...-local-dev-group-to-role-azure-portal-6.md | 6 + ...-local-dev-group-to-role-azure-portal-7.md | 3 + ...managed-identity-to-role-azure-portal-1.md | 3 + ...managed-identity-to-role-azure-portal-2.md | 1 + ...managed-identity-to-role-azure-portal-3.md | 4 + ...managed-identity-to-role-azure-portal-4.md | 6 + ...managed-identity-to-role-azure-portal-5.md | 6 + ...managed-identity-to-role-azure-portal-6.md | 6 + ...managed-identity-to-role-azure-portal-7.md | 3 + ...ervice-principal-to-role-azure-portal-1.md | 3 + ...ervice-principal-to-role-azure-portal-2.md | 1 + ...ervice-principal-to-role-azure-portal-3.md | 4 + ...ervice-principal-to-role-azure-portal-4.md | 6 + ...ervice-principal-to-role-azure-portal-5.md | 6 + ...ervice-principal-to-role-azure-portal-6.md | 6 + ...ervice-principal-to-role-azure-portal-7.md | 3 + .../enable-managed-identity-azure-cli.md | 13 + .../enable-managed-identity-azure-portal-1.md | 3 + .../enable-managed-identity-azure-portal-2.md | 3 + .../enable-managed-identity-azure-portal-3.md | 6 + .../implement-defaultazurecredential.md | 60 +++++ ...ev-accounts-app-ad-group-azure-portal-1.md | 1 + ...ev-accounts-app-ad-group-azure-portal-2.md | 1 + ...ev-accounts-app-ad-group-azure-portal-3.md | 1 + ...ev-accounts-app-ad-group-azure-portal-4.md | 6 + ...ev-accounts-app-ad-group-azure-portal-5.md | 5 + ...ev-accounts-app-ad-group-azure-portal-6.md | 3 + .../local-dev-app-ad-group-azure-portal-1.md | 1 + .../local-dev-app-ad-group-azure-portal-2.md | 1 + .../local-dev-app-ad-group-azure-portal-3.md | 1 + .../local-dev-app-ad-group-azure-portal-4.md | 6 + .../local-dev-app-ad-group-azure-portal-5.md | 5 + .../local-dev-app-ad-group-azure-portal-6.md | 3 + ...cal-dev-app-registration-azure-portal-1.md | 4 + ...cal-dev-app-registration-azure-portal-2.md | 1 + ...cal-dev-app-registration-azure-portal-3.md | 6 + ...cal-dev-app-registration-azure-portal-4.md | 5 + ...cal-dev-app-registration-azure-portal-5.md | 1 + ...cal-dev-app-registration-azure-portal-6.md | 6 + ...cal-dev-app-registration-azure-portal-7.md | 5 + ...remises-app-registration-azure-portal-1.md | 4 + ...remises-app-registration-azure-portal-2.md | 1 + ...remises-app-registration-azure-portal-3.md | 6 + ...remises-app-registration-azure-portal-4.md | 5 + ...remises-app-registration-azure-portal-5.md | 1 + ...remises-app-registration-azure-portal-6.md | 8 + ...remises-app-registration-azure-portal-7.md | 5 + .../sdk-auth-overview-dev-accounts.md | 6 + ...dk-auth-overview-dev-service-principals.md | 8 + .../sdk-auth-overview-managed-identity.md | 6 + .../sdk-auth-overview-service-principal.md | 6 + .../sdk/includes/set-environment-variables.md | 83 ++++++ ...dev-group-to-role-azure-portal-1-240px.png | Bin 0 -> 11355 bytes ...local-dev-group-to-role-azure-portal-1.png | Bin 0 -> 39521 bytes ...dev-group-to-role-azure-portal-2-240px.png | Bin 0 -> 16142 bytes ...local-dev-group-to-role-azure-portal-2.png | Bin 0 -> 57892 bytes ...dev-group-to-role-azure-portal-3-240px.png | Bin 0 -> 11337 bytes ...local-dev-group-to-role-azure-portal-3.png | Bin 0 -> 45119 bytes ...dev-group-to-role-azure-portal-4-240px.png | Bin 0 -> 12172 bytes ...local-dev-group-to-role-azure-portal-4.png | Bin 0 -> 44577 bytes ...dev-group-to-role-azure-portal-5-240px.png | Bin 0 -> 11473 bytes ...local-dev-group-to-role-azure-portal-5.png | Bin 0 -> 28661 bytes ...dev-group-to-role-azure-portal-6-240px.png | Bin 0 -> 15765 bytes ...local-dev-group-to-role-azure-portal-6.png | Bin 0 -> 15644 bytes ...dev-group-to-role-azure-portal-7-240px.png | Bin 0 -> 13994 bytes ...local-dev-group-to-role-azure-portal-7.png | Bin 0 -> 35750 bytes ...-identity-to-role-azure-portal-1-240px.png | Bin 0 -> 7911 bytes ...anaged-identity-to-role-azure-portal-1.png | Bin 0 -> 24543 bytes ...-identity-to-role-azure-portal-2-240px.png | Bin 0 -> 15821 bytes ...anaged-identity-to-role-azure-portal-2.png | Bin 0 -> 39745 bytes ...-identity-to-role-azure-portal-3-240px.png | Bin 0 -> 15548 bytes ...anaged-identity-to-role-azure-portal-3.png | Bin 0 -> 44737 bytes ...-identity-to-role-azure-portal-4-240px.png | Bin 0 -> 24147 bytes ...anaged-identity-to-role-azure-portal-4.png | Bin 0 -> 42191 bytes ...-identity-to-role-azure-portal-5-240px.png | Bin 0 -> 12117 bytes ...anaged-identity-to-role-azure-portal-5.png | Bin 0 -> 29946 bytes ...-identity-to-role-azure-portal-6-240px.png | Bin 0 -> 15930 bytes ...anaged-identity-to-role-azure-portal-6.png | Bin 0 -> 26250 bytes ...-identity-to-role-azure-portal-7-240px.png | Bin 0 -> 14014 bytes ...anaged-identity-to-role-azure-portal-7.png | Bin 0 -> 36822 bytes ...principal-to-role-azure-portal-1-240px.png | Bin 0 -> 16136 bytes ...rvice-principal-to-role-azure-portal-1.png | Bin 0 -> 50837 bytes ...principal-to-role-azure-portal-2-240px.png | Bin 0 -> 20694 bytes ...rvice-principal-to-role-azure-portal-2.png | Bin 0 -> 61679 bytes ...principal-to-role-azure-portal-3-240px.png | Bin 0 -> 12403 bytes ...rvice-principal-to-role-azure-portal-3.png | Bin 0 -> 37510 bytes ...principal-to-role-azure-portal-4-240px.png | Bin 0 -> 19165 bytes ...rvice-principal-to-role-azure-portal-4.png | Bin 0 -> 57848 bytes ...principal-to-role-azure-portal-5-240px.png | Bin 0 -> 12405 bytes ...rvice-principal-to-role-azure-portal-5.png | Bin 0 -> 33929 bytes ...principal-to-role-azure-portal-6-240px.png | Bin 0 -> 16198 bytes ...rvice-principal-to-role-azure-portal-6.png | Bin 0 -> 16696 bytes ...principal-to-role-azure-portal-7-240px.png | Bin 0 -> 12321 bytes ...rvice-principal-to-role-azure-portal-7.png | Bin 0 -> 35009 bytes .../authentication-defaultazurecredential.png | Bin 0 -> 46853 bytes ...zure-credential-sequence-diagram-800px.png | Bin 0 -> 23309 bytes ...ault-azure-credential-sequence-diagram.png | Bin 0 -> 13034 bytes .../sdk/media/dotnet-sdk-auth-strategy.png | Bin 0 -> 17936 bytes ...-managed-identity-azure-portal-1-240px.png | Bin 0 -> 9038 bytes ...enable-managed-identity-azure-portal-1.png | Bin 0 -> 26651 bytes ...-managed-identity-azure-portal-2-240px.png | Bin 0 -> 49416 bytes ...enable-managed-identity-azure-portal-2.png | Bin 0 -> 57504 bytes ...le-managed-identity-azure-portal-240px.png | Bin 0 -> 49416 bytes ...-managed-identity-azure-portal-3-240px.png | Bin 0 -> 24596 bytes ...enable-managed-identity-azure-portal-3.png | Bin 0 -> 55498 bytes .../media/environment-visual-studio-code.png | Bin 0 -> 13617 bytes .../sdk/media/environment-visual-studio.png | Bin 0 -> 25283 bytes ...unts-app-ad-group-azure-portal-1-240px.png | Bin 0 -> 15183 bytes ...v-accounts-app-ad-group-azure-portal-1.png | Bin 0 -> 57875 bytes ...unts-app-ad-group-azure-portal-2-240px.png | Bin 0 -> 24922 bytes ...v-accounts-app-ad-group-azure-portal-2.png | Bin 0 -> 30079 bytes ...unts-app-ad-group-azure-portal-3-240px.png | Bin 0 -> 11464 bytes ...v-accounts-app-ad-group-azure-portal-3.png | Bin 0 -> 31787 bytes ...unts-app-ad-group-azure-portal-4-240px.png | Bin 0 -> 12389 bytes ...v-accounts-app-ad-group-azure-portal-4.png | Bin 0 -> 27438 bytes ...unts-app-ad-group-azure-portal-5-240px.png | Bin 0 -> 11790 bytes ...v-accounts-app-ad-group-azure-portal-5.png | Bin 0 -> 20302 bytes ...unts-app-ad-group-azure-portal-6-240px.png | Bin 0 -> 10977 bytes ...v-accounts-app-ad-group-azure-portal-6.png | Bin 0 -> 24279 bytes ...-dev-app-ad-group-azure-portal-1-240px.png | Bin 0 -> 15183 bytes .../local-dev-app-ad-group-azure-portal-1.png | Bin 0 -> 57875 bytes ...-dev-app-ad-group-azure-portal-2-240px.png | Bin 0 -> 24922 bytes .../local-dev-app-ad-group-azure-portal-2.png | Bin 0 -> 30079 bytes ...-dev-app-ad-group-azure-portal-3-240px.png | Bin 0 -> 11464 bytes .../local-dev-app-ad-group-azure-portal-3.png | Bin 0 -> 31787 bytes ...-dev-app-ad-group-azure-portal-4-240px.png | Bin 0 -> 11047 bytes .../local-dev-app-ad-group-azure-portal-4.png | Bin 0 -> 29245 bytes ...-dev-app-ad-group-azure-portal-5-240px.png | Bin 0 -> 14043 bytes .../local-dev-app-ad-group-azure-portal-5.png | Bin 0 -> 23053 bytes ...-dev-app-ad-group-azure-portal-6-240px.png | Bin 0 -> 10933 bytes .../local-dev-app-ad-group-azure-portal-6.png | Bin 0 -> 23283 bytes ...-app-registration-azure-portal-1-240px.png | Bin 0 -> 13563 bytes ...al-dev-app-registration-azure-portal-1.png | Bin 0 -> 51251 bytes ...-app-registration-azure-portal-2-240px.png | Bin 0 -> 15383 bytes ...al-dev-app-registration-azure-portal-2.png | Bin 0 -> 17297 bytes ...-app-registration-azure-portal-3-240px.png | Bin 0 -> 23718 bytes ...al-dev-app-registration-azure-portal-3.png | Bin 0 -> 59926 bytes ...-app-registration-azure-portal-4-240px.png | Bin 0 -> 14478 bytes ...al-dev-app-registration-azure-portal-4.png | Bin 0 -> 56928 bytes ...-app-registration-azure-portal-5-240px.png | Bin 0 -> 17090 bytes ...al-dev-app-registration-azure-portal-5.png | Bin 0 -> 67158 bytes ...-app-registration-azure-portal-6-240px.png | Bin 0 -> 4740 bytes ...al-dev-app-registration-azure-portal-6.png | Bin 0 -> 8860 bytes ...-app-registration-azure-portal-7-240px.png | Bin 0 -> 16379 bytes ...al-dev-app-registration-azure-portal-7.png | Bin 0 -> 81066 bytes .../media/local-dev-dev-accounts-overview.png | Bin 0 -> 62216 bytes .../local-dev-service-principal-overview.png | Bin 0 -> 53046 bytes docs/azure/sdk/media/nuget-azure-identity.png | Bin 0 -> 79820 bytes ...-app-registration-azure-portal-1-240px.png | Bin 0 -> 13807 bytes ...emises-app-registration-azure-portal-1.png | Bin 0 -> 53031 bytes ...-app-registration-azure-portal-2-240px.png | Bin 0 -> 15761 bytes ...emises-app-registration-azure-portal-2.png | Bin 0 -> 25073 bytes ...-app-registration-azure-portal-3-240px.png | Bin 0 -> 26754 bytes ...emises-app-registration-azure-portal-3.png | Bin 0 -> 69426 bytes ...-app-registration-azure-portal-4-240px.png | Bin 0 -> 10592 bytes ...emises-app-registration-azure-portal-4.png | Bin 0 -> 62094 bytes ...-app-registration-azure-portal-5-240px.png | Bin 0 -> 15693 bytes ...emises-app-registration-azure-portal-5.png | Bin 0 -> 63043 bytes ...-app-registration-azure-portal-6-240px.png | Bin 0 -> 4629 bytes ...emises-app-registration-azure-portal-6.png | Bin 0 -> 8981 bytes ...-app-registration-azure-portal-7-240px.png | Bin 0 -> 13986 bytes ...emises-app-registration-azure-portal-7.png | Bin 0 -> 73651 bytes .../sdk/media/python-sdk-auth-strategy.png | Bin 0 -> 17936 bytes .../azure/sdk/media/visual-studio-sign-in.png | Bin 0 -> 31750 bytes .../sdk/media/vs-code-azure-login-small.png | Bin 0 -> 27686 bytes docs/azure/sdk/media/vs-code-azure-login.png | Bin 0 -> 47397 bytes .../vs-code-azure-tools-install-small.png | Bin 0 -> 89219 bytes .../sdk/media/vs-code-azure-tools-install.png | Bin 0 -> 146406 bytes 180 files changed, 1211 insertions(+), 60 deletions(-) create mode 100644 docs/azure/sdk/authentication-additional-methods.md create mode 100644 docs/azure/sdk/authentication-azure-hosted-apps.md create mode 100644 docs/azure/sdk/authentication-local-development-dev-accounts.md create mode 100644 docs/azure/sdk/authentication-local-development-service-principal.md create mode 100644 docs/azure/sdk/authentication-on-premises-apps.md create mode 100644 docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-1.md create mode 100644 docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-2.md create mode 100644 docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-3.md create mode 100644 docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-4.md create mode 100644 docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-5.md create mode 100644 docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-6.md create mode 100644 docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-7.md create mode 100644 docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-1.md create mode 100644 docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-2.md create mode 100644 docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-3.md create mode 100644 docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-4.md create mode 100644 docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-5.md create mode 100644 docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-6.md create mode 100644 docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-7.md create mode 100644 docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-1.md create mode 100644 docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-2.md create mode 100644 docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-3.md create mode 100644 docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-4.md create mode 100644 docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-5.md create mode 100644 docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-6.md create mode 100644 docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-7.md create mode 100644 docs/azure/sdk/includes/enable-managed-identity-azure-cli.md create mode 100644 docs/azure/sdk/includes/enable-managed-identity-azure-portal-1.md create mode 100644 docs/azure/sdk/includes/enable-managed-identity-azure-portal-2.md create mode 100644 docs/azure/sdk/includes/enable-managed-identity-azure-portal-3.md create mode 100644 docs/azure/sdk/includes/implement-defaultazurecredential.md create mode 100644 docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-1.md create mode 100644 docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-2.md create mode 100644 docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-3.md create mode 100644 docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-4.md create mode 100644 docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-5.md create mode 100644 docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-6.md create mode 100644 docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-1.md create mode 100644 docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-2.md create mode 100644 docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-3.md create mode 100644 docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-4.md create mode 100644 docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-5.md create mode 100644 docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-6.md create mode 100644 docs/azure/sdk/includes/local-dev-app-registration-azure-portal-1.md create mode 100644 docs/azure/sdk/includes/local-dev-app-registration-azure-portal-2.md create mode 100644 docs/azure/sdk/includes/local-dev-app-registration-azure-portal-3.md create mode 100644 docs/azure/sdk/includes/local-dev-app-registration-azure-portal-4.md create mode 100644 docs/azure/sdk/includes/local-dev-app-registration-azure-portal-5.md create mode 100644 docs/azure/sdk/includes/local-dev-app-registration-azure-portal-6.md create mode 100644 docs/azure/sdk/includes/local-dev-app-registration-azure-portal-7.md create mode 100644 docs/azure/sdk/includes/on-premises-app-registration-azure-portal-1.md create mode 100644 docs/azure/sdk/includes/on-premises-app-registration-azure-portal-2.md create mode 100644 docs/azure/sdk/includes/on-premises-app-registration-azure-portal-3.md create mode 100644 docs/azure/sdk/includes/on-premises-app-registration-azure-portal-4.md create mode 100644 docs/azure/sdk/includes/on-premises-app-registration-azure-portal-5.md create mode 100644 docs/azure/sdk/includes/on-premises-app-registration-azure-portal-6.md create mode 100644 docs/azure/sdk/includes/on-premises-app-registration-azure-portal-7.md create mode 100644 docs/azure/sdk/includes/sdk-auth-overview-dev-accounts.md create mode 100644 docs/azure/sdk/includes/sdk-auth-overview-dev-service-principals.md create mode 100644 docs/azure/sdk/includes/sdk-auth-overview-managed-identity.md create mode 100644 docs/azure/sdk/includes/sdk-auth-overview-service-principal.md create mode 100644 docs/azure/sdk/includes/set-environment-variables.md create mode 100644 docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-1-240px.png create mode 100644 docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-1.png create mode 100644 docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-2-240px.png create mode 100644 docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-2.png create mode 100644 docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-3-240px.png create mode 100644 docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-3.png create mode 100644 docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-4-240px.png create mode 100644 docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-4.png create mode 100644 docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-5-240px.png create mode 100644 docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-5.png create mode 100644 docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-6-240px.png create mode 100644 docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-6.png create mode 100644 docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-7-240px.png create mode 100644 docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-7.png create mode 100644 docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-1-240px.png create mode 100644 docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-1.png create mode 100644 docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-2-240px.png create mode 100644 docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-2.png create mode 100644 docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-3-240px.png create mode 100644 docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-3.png create mode 100644 docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-4-240px.png create mode 100644 docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-4.png create mode 100644 docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-5-240px.png create mode 100644 docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-5.png create mode 100644 docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-6-240px.png create mode 100644 docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-6.png create mode 100644 docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-7-240px.png create mode 100644 docs/azure/sdk/media/assign-managed-identity-to-role-azure-portal-7.png create mode 100644 docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-1-240px.png create mode 100644 docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-1.png create mode 100644 docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-2-240px.png create mode 100644 docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-2.png create mode 100644 docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-3-240px.png create mode 100644 docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-3.png create mode 100644 docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-4-240px.png create mode 100644 docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-4.png create mode 100644 docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-5-240px.png create mode 100644 docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-5.png create mode 100644 docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-6-240px.png create mode 100644 docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-6.png create mode 100644 docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-7-240px.png create mode 100644 docs/azure/sdk/media/assign-service-principal-to-role-azure-portal-7.png create mode 100644 docs/azure/sdk/media/authentication-defaultazurecredential.png create mode 100644 docs/azure/sdk/media/default-azure-credential-sequence-diagram-800px.png create mode 100644 docs/azure/sdk/media/default-azure-credential-sequence-diagram.png create mode 100644 docs/azure/sdk/media/dotnet-sdk-auth-strategy.png create mode 100644 docs/azure/sdk/media/enable-managed-identity-azure-portal-1-240px.png create mode 100644 docs/azure/sdk/media/enable-managed-identity-azure-portal-1.png create mode 100644 docs/azure/sdk/media/enable-managed-identity-azure-portal-2-240px.png create mode 100644 docs/azure/sdk/media/enable-managed-identity-azure-portal-2.png create mode 100644 docs/azure/sdk/media/enable-managed-identity-azure-portal-240px.png create mode 100644 docs/azure/sdk/media/enable-managed-identity-azure-portal-3-240px.png create mode 100644 docs/azure/sdk/media/enable-managed-identity-azure-portal-3.png create mode 100644 docs/azure/sdk/media/environment-visual-studio-code.png create mode 100644 docs/azure/sdk/media/environment-visual-studio.png create mode 100644 docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-1-240px.png create mode 100644 docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-1.png create mode 100644 docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-2-240px.png create mode 100644 docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-2.png create mode 100644 docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-3-240px.png create mode 100644 docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-3.png create mode 100644 docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-4-240px.png create mode 100644 docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-4.png create mode 100644 docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-5-240px.png create mode 100644 docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-5.png create mode 100644 docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-6-240px.png create mode 100644 docs/azure/sdk/media/local-dev-accounts-app-ad-group-azure-portal-6.png create mode 100644 docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-1-240px.png create mode 100644 docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-1.png create mode 100644 docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-2-240px.png create mode 100644 docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-2.png create mode 100644 docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-3-240px.png create mode 100644 docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-3.png create mode 100644 docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-4-240px.png create mode 100644 docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-4.png create mode 100644 docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-5-240px.png create mode 100644 docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-5.png create mode 100644 docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-6-240px.png create mode 100644 docs/azure/sdk/media/local-dev-app-ad-group-azure-portal-6.png create mode 100644 docs/azure/sdk/media/local-dev-app-registration-azure-portal-1-240px.png create mode 100644 docs/azure/sdk/media/local-dev-app-registration-azure-portal-1.png create mode 100644 docs/azure/sdk/media/local-dev-app-registration-azure-portal-2-240px.png create mode 100644 docs/azure/sdk/media/local-dev-app-registration-azure-portal-2.png create mode 100644 docs/azure/sdk/media/local-dev-app-registration-azure-portal-3-240px.png create mode 100644 docs/azure/sdk/media/local-dev-app-registration-azure-portal-3.png create mode 100644 docs/azure/sdk/media/local-dev-app-registration-azure-portal-4-240px.png create mode 100644 docs/azure/sdk/media/local-dev-app-registration-azure-portal-4.png create mode 100644 docs/azure/sdk/media/local-dev-app-registration-azure-portal-5-240px.png create mode 100644 docs/azure/sdk/media/local-dev-app-registration-azure-portal-5.png create mode 100644 docs/azure/sdk/media/local-dev-app-registration-azure-portal-6-240px.png create mode 100644 docs/azure/sdk/media/local-dev-app-registration-azure-portal-6.png create mode 100644 docs/azure/sdk/media/local-dev-app-registration-azure-portal-7-240px.png create mode 100644 docs/azure/sdk/media/local-dev-app-registration-azure-portal-7.png create mode 100644 docs/azure/sdk/media/local-dev-dev-accounts-overview.png create mode 100644 docs/azure/sdk/media/local-dev-service-principal-overview.png create mode 100644 docs/azure/sdk/media/nuget-azure-identity.png create mode 100644 docs/azure/sdk/media/on-premises-app-registration-azure-portal-1-240px.png create mode 100644 docs/azure/sdk/media/on-premises-app-registration-azure-portal-1.png create mode 100644 docs/azure/sdk/media/on-premises-app-registration-azure-portal-2-240px.png create mode 100644 docs/azure/sdk/media/on-premises-app-registration-azure-portal-2.png create mode 100644 docs/azure/sdk/media/on-premises-app-registration-azure-portal-3-240px.png create mode 100644 docs/azure/sdk/media/on-premises-app-registration-azure-portal-3.png create mode 100644 docs/azure/sdk/media/on-premises-app-registration-azure-portal-4-240px.png create mode 100644 docs/azure/sdk/media/on-premises-app-registration-azure-portal-4.png create mode 100644 docs/azure/sdk/media/on-premises-app-registration-azure-portal-5-240px.png create mode 100644 docs/azure/sdk/media/on-premises-app-registration-azure-portal-5.png create mode 100644 docs/azure/sdk/media/on-premises-app-registration-azure-portal-6-240px.png create mode 100644 docs/azure/sdk/media/on-premises-app-registration-azure-portal-6.png create mode 100644 docs/azure/sdk/media/on-premises-app-registration-azure-portal-7-240px.png create mode 100644 docs/azure/sdk/media/on-premises-app-registration-azure-portal-7.png create mode 100644 docs/azure/sdk/media/python-sdk-auth-strategy.png create mode 100644 docs/azure/sdk/media/visual-studio-sign-in.png create mode 100644 docs/azure/sdk/media/vs-code-azure-login-small.png create mode 100644 docs/azure/sdk/media/vs-code-azure-login.png create mode 100644 docs/azure/sdk/media/vs-code-azure-tools-install-small.png create mode 100644 docs/azure/sdk/media/vs-code-azure-tools-install.png diff --git a/docs/azure/TOC.yml b/docs/azure/TOC.yml index a7b1ea581bc4d..900adcaf338de 100644 --- a/docs/azure/TOC.yml +++ b/docs/azure/TOC.yml @@ -36,7 +36,21 @@ - name: What is the Azure SDK for .NET? href: ./sdk/azure-sdk-for-dotnet.md - name: Authentication - href: ./sdk/authentication.md + items: + - name: Overview + href: sdk/authentication.md + - name: Auth during local development + items: + - name: Auth using developer service principals + href: sdk/authentication-local-development-service-principal.md + - name: Auth using developer accounts + href: sdk/authentication-local-development-dev-accounts.md + - name: Auth from Azure-hosted apps + href: sdk/authentication-azure-hosted-apps.md + - name: Auth from on-premises apps + href: sdk/authentication-on-premises-apps.md + - name: Additional auth methods + href: sdk/authentication-additional-methods.md - name: Dependency injection href: ./sdk/dependency-injection.md - name: Thread safety diff --git a/docs/azure/sdk/authentication-additional-methods.md b/docs/azure/sdk/authentication-additional-methods.md new file mode 100644 index 0000000000000..120b4f37296e2 --- /dev/null +++ b/docs/azure/sdk/authentication-additional-methods.md @@ -0,0 +1,78 @@ +--- +title: Additional methods to authenticate to Azure resources from .NET apps +description: This article describes additional, less common methods you can use to authenticate your .NET app to Azure resources. +ms.date: 05/05/2022 +ms.topic: how-to +ms.custom: devx-track-dotnet +--- + +# Additional methods to authenticate to Azure resources from .NET apps + +This article lists additional methods apps may use to authenticate to Azure resources. The methods on this page are less commonly used and when possible, it is encouraged to use one of the methods outlined in the [authenticating .NET apps to Azure using the Azure SDK overview](./authentication.md) article. + +## Interactive browser authentication + +This method interactively authenticates an application through [`InteractiveBrowserCredential`](/dotnet/api/azure.identity.interactivebrowsercredential) by collecting user credentials in the default system. + +Interactive browser authentication enables the application for all operations allowed by the interactive login credentials. As a result, if you are the owner or administrator of your subscription, your code has inherent access to most resources in that subscription without having to assign any specific permissions. For this reason, the use of interactive browser authentication is discouraged for anything but experimentation. + +### Example using InteractiveBrowserCredential + +The following example demonstrates using an [`InteractiveBrowserCredential`](/dotnet/api/azure.identity.interactivebrowsercredential) to authenticate with the [`BlobServiceClient`](/dotnet/api/microsoft.azure.storage.blobs): + +```csharp +using Azure.Identity; +using Azure.Storage.Blobs; + +var client = new BlobServiceClient( + new Uri("https://.blob.core.windows.net"), + new InteractiveBrowserCredential()); + +foreach (var blobItem in client.GetBlobContainers()) +{ + Console.WriteLine(blobItem.Name); +} +``` + +For more exact control, such as setting redirect URIs, you can supply specific arguments to `InteractiveBrowserCredential` such as `redirect_uri`. + +## Device code authentication + +This method interactively authenticates a user on devices with limited UI (typically devices without a keyboard): + +1. When the application attempts to authenticate, the credential prompts the user with a URL and an authentication code. +1. The user visits the URL on a separate browser-enabled device (a computer, smartphone, etc.) and enters the code. +1. The user follows a normal authentication process in the browser. +1. Upon successful authentication, the application is authenticated on the device. + +For more information, see [Microsoft identity platform and the OAuth 2.0 device authorization grant flow](/azure/active-directory/develop/v2-oauth2-device-code). + +Device code authentication in a development environment enables the application for all operations allowed by the interactive login credentials. As a result, if you are the owner or administrator of your subscription, your code has inherent access to most resources in that subscription without having to assign any specific permissions. However, you can use this method with a specific client ID, rather than the default, for which you can assign specific permissions. + +## Authentication with a username and password + +This method authenticates an application using previous-collected credentials and the [`UsernamePasswordCredential`](/dotnet/api/azure.identity.usernamepasswordcredential) object. + +This method of authentication is discouraged because it's less secure than other flows. Also, this method is not interactive and is therefore **not compatible with any form of multi-factor authentication or consent prompting.** The application must already have consent from the user or a directory administrator. + +Furthermore, this method authenticates only work and school accounts; Microsoft accounts are not supported. For more information, see [Sign up your organization to use Azure Active Directory](/azure/active-directory/fundamentals/sign-up-organization). + +```csharp +using Azure.Identity; +using Azure.Storage.Blobs; + +var clientId = Environment.GetEnvironmentVariable("AZURE_CLIENT_ID"); +var tenantId = Environment.GetEnvironmentVariable("AZURE_TENANT_ID"); +var username = Environment.GetEnvironmentVariable("AZURE_USERNAME"); +var password = Environment.GetEnvironmentVariable("AZURE_PASSWORD"); + +var client = new BlobServiceClient( + new Uri("https://.blob.core.windows.net"), + new UsernamePasswordCredential(username, password, tenantId, clientId)); + +foreach (var blobItem in client.GetBlobContainers()) +{ + Console.WriteLine(blobItem.Name); +} + +``` diff --git a/docs/azure/sdk/authentication-azure-hosted-apps.md b/docs/azure/sdk/authentication-azure-hosted-apps.md new file mode 100644 index 0000000000000..6bc5092952495 --- /dev/null +++ b/docs/azure/sdk/authentication-azure-hosted-apps.md @@ -0,0 +1,110 @@ +--- +title: Authenticating Azure-hosted apps to Azure resources with the Azure SDK for .NET +description: This article covers how to configure authentication for apps to Azure services when the app is hosted in an Azure service like Azure App Service, Azure Functions, or Azure Virtual Machines. +ms.date: 05/05/2022 +ms.topic: how-to +ms.custom: devx-track-dotnet +--- + +# Authenticating Azure-hosted apps to Azure resources with the Azure SDK for .NET + +When an app is hosted in Azure using a service like Azure App Service, Azure Virtual Machines, or Azure Container Instances, the recommended approach to authenticating an app to Azure resources is to use a [managed identity](/azure/active-directory/managed-identities-azure-resources/overview). + +A managed identity provides an identity for your app such that it can connect to other Azure resources without the need to use a secret key or other application secret. Internally, Azure knows the identity of your app and what resources it's allowed to connect to. Azure uses this information to automatically obtain Azure AD tokens for the app to allow it to connect to other Azure resources, all without you having to manage any application secrets. + +## Managed identity types + +There are two types of managed identities: + +- **System-assigned managed identities** - This type of managed identity is provided by and tied directly to an Azure resource. When you enable managed identity on an Azure resource, you get a system-assigned managed identity for that resource. A system-assigned managed identity is tied to the lifecycle of the Azure resource it's associated with. When the resource is deleted, Azure automatically deletes the identity for you. Since all you have to do is enable managed identity for the Azure resource hosting your code, this is the easiest type of managed identity to use. +- **User-assigned managed identities** - You may also create a managed identity as a standalone Azure resource. This is most frequently used when your solution has multiple workloads that run on multiple Azure resources that all need to share the same identity and same permissions. For example, if your solution had components that ran on multiple App Service and virtual machine instances that all needed access to the same set of Azure resources, creating and using a user-assigned managed identity across those resources would make sense. + +This article will cover the steps to enable and use a system-assigned managed identity for an app. If you need to use a user-assigned managed identity, see the article [Manage user-assigned managed identities](/azure/active-directory/managed-identities-azure-resources/how-manage-user-assigned-managed-identities) to see how to create a user-assigned managed identity. + +## 1 - Enable managed identity in the Azure resource hosting the app + +The first step is to enable managed identity on Azure resource hosting your app. For example, if you're hosting a .NET application using Azure App Service, you need to enable managed identity for the App Service web app that is hosting your app. If you were using a virtual machine to host your app, you would enable your VM to use managed identity. + +You can enable managed identity to be used for an Azure resource using either the Azure portal or the Azure CLI. + +### [Azure portal](#tab/azure-portal) + +| Instructions | Screenshot | +|:----------------|-----------:| +| [!INCLUDE [Enable managed identity step 1](<./includes/enable-managed-identity-azure-portal-1.md>)] | :::image type="content" source="./media/enable-managed-identity-azure-portal-1-240px.png" alt-text="A screenshot showing how to use the top search bar in the Azure portal to locate and navigate to a resource in Azure." lightbox="./media/enable-managed-identity-azure-portal-1.png"::: | +| [!INCLUDE [Enable managed identity step 2](<./includes/enable-managed-identity-azure-portal-2.md>)] | :::image type="content" source="./media/enable-managed-identity-azure-portal-2-240px.png" alt-text="A screenshot showing the location of the Identity menu item in the left-hand menu for an Azure resource." lightbox="./media/enable-managed-identity-azure-portal-2.png"::: | +| [!INCLUDE [Enable managed identity step 3](<./includes/enable-managed-identity-azure-portal-3.md>)] | :::image type="content" source="./media/enable-managed-identity-azure-portal-3-240px.png" alt-text="A screenshot showing how to enable managed identity for an Azure resource on the resource's Identity page." lightbox="./media/enable-managed-identity-azure-portal-3.png"::: | + +### [Azure CLI](#tab/azure-cli) + +Azure CLI commands can be run in the [Azure Cloud Shell](https://shell.azure.com) or on a workstation with the [Azure CLI installed](/cli/azure/install-azure-cli). + +The Azure CLI commands used to enable managed identity for an Azure resource are of the form `az identity --resource-group --name `. Specific commands for popular Azure services are shown below. + +[!INCLUDE [Enable managed identity Azure CLI](<./includes/enable-managed-identity-azure-cli.md>)] + +The output will look like the following. + +```json +{ + "principalId": "99999999-9999-9999-9999-999999999999", + "tenantId": "33333333-3333-3333-3333-333333333333", + "type": "SystemAssigned", + "userAssignedIdentities": null +} + +``` + +The `principalId` value is the unique ID of the managed identity. Keep a copy of this output as you'll need these values in the next step. + +--- + +## 2 - Assign roles to the managed identity + +Next, you need to determine what roles (permissions) your app needs and assign the managed identity to those roles in Azure. A managed identity can be assigned roles at a resource, resource group, or subscription scope. This example will show how to assign roles at the resource group scope since most applications group all their Azure resources into a single resource group. + +### [Azure portal](#tab/azure-portal) + +| Instructions | Screenshot | +|:----------------|-----------:| +| [!INCLUDE [Assign managed identity to role step 1](<./includes/assign-managed-identity-to-role-azure-portal-1.md>)] | :::image type="content" source="./media/assign-managed-identity-to-role-azure-portal-1-240px.png" alt-text="A screenshot showing how to use the top search bar in the Azure portal to locate and navigate to a resource group in Azure. This is the resource group that you'll assign roles (permissions) to." lightbox="./media/assign-managed-identity-to-role-azure-portal-1.png"::: | +| [!INCLUDE [Assign managed identity to role step 2](<./includes/assign-managed-identity-to-role-azure-portal-2.md>)] | :::image type="content" source="./media/assign-managed-identity-to-role-azure-portal-2-240px.png" alt-text="A screenshot showing the location of the Access control (IAM) menu item in the left-hand menu of an Azure resource group." lightbox="./media/assign-managed-identity-to-role-azure-portal-2.png"::: | +| [!INCLUDE [Assign managed identity to role step 3](<./includes/assign-managed-identity-to-role-azure-portal-3.md>)] | :::image type="content" source="./media/assign-managed-identity-to-role-azure-portal-3-240px.png" alt-text="A screenshot showing how to navigate to the role assignments tab and the location of the button used to add role assignments to a resource group." lightbox="./media/assign-managed-identity-to-role-azure-portal-3.png"::: | +| [!INCLUDE [Assign managed identity to role step 4](<./includes/assign-managed-identity-to-role-azure-portal-4.md>)] | :::image type="content" source="./media/assign-managed-identity-to-role-azure-portal-4-240px.png" alt-text="A screenshot showing how to filter and select role assignments to be added to the resource group." lightbox="./media/assign-managed-identity-to-role-azure-portal-4.png"::: | +| [!INCLUDE [Assign managed identity to role step 5](<./includes/assign-managed-identity-to-role-azure-portal-5.md>)] | :::image type="content" source="./media/assign-managed-identity-to-role-azure-portal-5-240px.png" alt-text="A screenshot showing how to select managed identity as the type of user you want to assign the role (permission) on the add role assignments page." lightbox="./media/assign-managed-identity-to-role-azure-portal-5.png"::: | +| [!INCLUDE [Assign managed identity to role step 6](<./includes/assign-managed-identity-to-role-azure-portal-6.md>)] | :::image type="content" source="./media/assign-managed-identity-to-role-azure-portal-6-240px.png" alt-text="A screenshot showing how to use the select managed identities dialog to filter and select the managed identity to assign the role to." lightbox="./media/assign-managed-identity-to-role-azure-portal-6.png"::: | +| [!INCLUDE [Assign managed identity to role step 7](<./includes/assign-managed-identity-to-role-azure-portal-7.md>)] | :::image type="content" source="./media/assign-managed-identity-to-role-azure-portal-7-240px.png" alt-text="A screenshot of the final add role assignment screen where a user needs to select the Review + Assign button to finalize the role assignment." lightbox="./media/assign-managed-identity-to-role-azure-portal-7.png"::: | + +### [Azure CLI](#tab/azure-cli) + +A managed identity is assigned a role in Azure using the [az role assignment create] command. + +```azurecli +az role assignment create --assignee "{managedIdentityId}" \ + --role "{roleName}" \ + --resource-group "{resourceGroupName}" +``` + +To get the role names that a service principal can be assigned to, use the [az role definition list](/cli/azure/role/definition#az-role-definition-list) command. + +```azurecli +az role definition list \ + --query "sort_by([].{roleName:roleName, description:description}, &roleName)" \ + --output table +``` + +For example, to allow the managed identity with the ID of `99999999-9999-9999-9999-999999999999` read, write, and delete access to Azure Storage blob containers and data to all storage accounts in the *msdocs-dotnet-sdk-auth-example* resource group, you would assign the application service principal to the *Storage Blob Data Contributor* role using the following command. + +```azurecli +az role assignment create --assignee 99999999-9999-9999-9999-999999999999 \ + --role "Storage Blob Data Contributor" \ + --resource-group "msdocs-dotnet-sdk-auth-example" +``` + +For information on assigning permissions at the resource or subscription level using the Azure CLI, see the article [Assign Azure roles using the Azure CLI](/azure/role-based-access-control/role-assignments-cli). + +--- + +## 3 - Implement DefaultAzureCredential in your application + +[!INCLUDE [Implement Default Azure Credentials](<./includes/implement-defaultazurecredential.md>)] diff --git a/docs/azure/sdk/authentication-local-development-dev-accounts.md b/docs/azure/sdk/authentication-local-development-dev-accounts.md new file mode 100644 index 0000000000000..a0862e9675248 --- /dev/null +++ b/docs/azure/sdk/authentication-local-development-dev-accounts.md @@ -0,0 +1,158 @@ +--- +title: Authenticate .NET apps to Azure services during local development using developer accounts +description: This article describes how to authenticate your application to Azure services when using the Azure SDK for .NET during local development using developer accounts. +ms.date: 05/05/2022 +ms.topic: how-to +ms.custom: devx-track-dotnet +--- + +# Authenticate .NET apps to Azure services during local development using developer accounts + +When creating cloud applications, developers need to debug and test applications on their local workstation. When an application is run on a developer's workstation during local development, it still must authenticate to any Azure services used by the app. This article covers how to use a developer's Azure credentials to authenticate the app to Azure during local development. + +:::image type="content" source="media/local-dev-dev-accounts-overview.png" alt-text="A diagram showing how an app running in local developer will obtain the application service principal from a .env file and then use that identity to connect to Azure resources."::: + +For an app to authenticate to Azure during local development using the developer's Azure credentials, the developer must be signed-in to Azure from the VS Code Azure Tools extension, the Azure CLI, or Azure PowerShell. The Azure SDK for .NET is able to detect that the developer is signed-in from one of these tools and then obtain the necessary credentials from the credentials cache to authenticate the app to Azure as the signed-in user. + +This approach is easiest to set up for a development team since it takes advantage of the developers' existing Azure accounts. However, a developer's account will likely have more permissions than required by the application, therefore exceeding the permissions the app will run with in production. As an alternative, you can [create application service principals to use during local development](./authentication-local-development-service-principal.md) which can be scoped to have only the access needed by the app. + +## 1 - Create Azure AD group for local development + +Since there are almost always multiple developers who work on an application, it's recommended to first create an Azure AD group to encapsulate the roles (permissions) the app needs in local development. This offers the following advantages. + +- Every developer is assured to have the same roles assigned since roles are assigned at the group level. +- If a new role is needed for the app, it only needs to be added to the Azure AD group for the app. +- If a new developer joins the team, they simply must be added to the correct Azure AD group to get the correct permissions to work on the app. + +If you have an existing Azure AD group for your development team, you can use that group. Otherwise, complete the following steps to create an Azure AD group. + +### [Azure portal](#tab/azure-portal) + +| Instructions | Screenshot | +|:----------------|-----------:| +| [!INCLUDE [Create app AD group step 1](<./includes/local-dev-accounts-app-ad-group-azure-portal-1.md>)] | :::image type="content" source="./media/local-dev-accounts-app-ad-group-azure-portal-1-240px.png" alt-text="A screenshot showing how to use the top search bar in the Azure portal to search for and navigate to the Azure Active Directory page." lightbox="./media/local-dev-accounts-app-ad-group-azure-portal-1.png"::: | +| [!INCLUDE [Create app AD group step 2](<./includes/local-dev-accounts-app-ad-group-azure-portal-2.md>)] | :::image type="content" source="./media/local-dev-accounts-app-ad-group-azure-portal-2-240px.png" alt-text="A screenshot showing the location of the Groups menu item in the left-hand menu of the Azure Active Directory Default Directory page." lightbox="./media/local-dev-accounts-app-ad-group-azure-portal-2.png"::: | +| [!INCLUDE [Create app AD group step 3](<./includes/local-dev-accounts-app-ad-group-azure-portal-3.md>)] | :::image type="content" source="./media/local-dev-accounts-app-ad-group-azure-portal-3-240px.png" alt-text="A screenshot showing the location of the New Group button in the All groups page." lightbox="./media/local-dev-accounts-app-ad-group-azure-portal-3.png"::: | +| [!INCLUDE [Create app AD group step 4](<./includes/local-dev-accounts-app-ad-group-azure-portal-4.md>)] | :::image type="content" source="./media/local-dev-accounts-app-ad-group-azure-portal-4-240px.png" alt-text="A screenshot showing how to fill out the form to create a new Azure Active Directory group for the application. This screenshot also shows the location of the link to select to add members to this group" lightbox="./media/local-dev-accounts-app-ad-group-azure-portal-4.png"::: | +| [!INCLUDE [Create app AD group step 5](<./includes/local-dev-accounts-app-ad-group-azure-portal-5.md>)] | :::image type="content" source="./media/local-dev-accounts-app-ad-group-azure-portal-5-240px.png" alt-text="A screenshot of the Add members dialog box showing how to select developer accounts to be included in the group." lightbox="./media/local-dev-accounts-app-ad-group-azure-portal-5.png"::: | +| [!INCLUDE [Create app AD group step 6](<./includes/local-dev-accounts-app-ad-group-azure-portal-6.md>)] | :::image type="content" source="./media/local-dev-accounts-app-ad-group-azure-portal-6-240px.png" alt-text="A screenshot of the New Group page showing how to complete the process by selecting the Create button." lightbox="./media/local-dev-accounts-app-ad-group-azure-portal-6.png"::: | + +### [Azure CLI](#tab/azure-cli) + +The [az ad group create](/cli/azure/ad/group#az-ad-group-create) command is used to create groups in Azure Active Directory. The `--display-name` and `--main-nickname` parameters are required. The name given to the group should be based on the name of the application. It's also useful to include a phrase like 'local-dev' in the name of the group to indicate the purpose of the group. + +```azurecli +az ad group create \ + --display-name MyDisplay \ + --mail-nickname MyDisplay \ + --description +``` + +To add members to the group, you'll need the object ID of Azure user. Use the [az ad user list](/cli/azure/ad/sp#az-ad-user-list) to list the available service principals. The `--filter` parameter command accepts OData style filters and can be used to filter the list on the display name of the user as shown. The `--query` parameter limits to columns to only those of interest. + +```azurecli +az ad user list \ + --filter "startswith(displayName, 'Bob')" \ + --query "[].{objectId:objectId, displayName:displayName}" \ + --output table +``` + +The [az ad group member add](/cli/azure/ad/group/member#az-ad-group-member-add) command can then be used to add members to groups. + +```azurecli +az ad group member add \ + --group \ + --member-id +``` + +--- + +## 2 - Assign roles to the Azure AD group + +Next, you need to determine what roles (permissions) your app needs on what resources and assign those roles to your app. In this example, the roles will be assigned to the Azure Active Directory group created in step 1. Roles can be assigned a role at a resource, resource group, or subscription scope. This example will show how to assign roles at the resource group scope since most applications group all their Azure resources into a single resource group. + +### [Azure portal](#tab/azure-portal) + +| Instructions | Screenshot | +|:----------------|-----------:| +| [!INCLUDE [Assign dev service principal to role step 1](<./includes/assign-local-dev-group-to-role-azure-portal-1.md>)] | :::image type="content" source="./media/assign-local-dev-group-to-role-azure-portal-1-240px.png" alt-text="A screenshot showing how to use the top search box in the Azure portal to locate and navigate to the resource group you want to assign roles (permissions) to." lightbox="./media/assign-local-dev-group-to-role-azure-portal-1.png"::: | +| [!INCLUDE [Assign dev service principal to role step 1](<./includes/assign-local-dev-group-to-role-azure-portal-2.md>)] | :::image type="content" source="./media/assign-local-dev-group-to-role-azure-portal-2-240px.png" alt-text="A screenshot of the resource group page showing the location of the Access control (IAM) menu item." lightbox="./media/assign-local-dev-group-to-role-azure-portal-2.png"::: | +| [!INCLUDE [Assign dev service principal to role step 1](<./includes/assign-local-dev-group-to-role-azure-portal-3.md>)] | :::image type="content" source="./media/assign-local-dev-group-to-role-azure-portal-3-240px.png" alt-text="A screenshot showing how to navigate to the role assignments tab and the location of the button used to add role assignments to a resource group." lightbox="./media/assign-local-dev-group-to-role-azure-portal-3.png"::: | +| [!INCLUDE [Assign dev service principal to role step 1](<./includes/assign-local-dev-group-to-role-azure-portal-4.md>)] | :::image type="content" source="./media/assign-local-dev-group-to-role-azure-portal-4-240px.png" alt-text="A screenshot showing how to filter and select role assignments to be added to the resource group." lightbox="./media/assign-local-dev-group-to-role-azure-portal-4.png"::: | +| [!INCLUDE [Assign dev service principal to role step 1](<./includes/assign-local-dev-group-to-role-azure-portal-5.md>)] | :::image type="content" source="./media/assign-local-dev-group-to-role-azure-portal-5-240px.png" alt-text="A screenshot showing the radio button to select to assign a role to an Azure AD group and the link used to select the group to assign the role to." lightbox="./media/assign-local-dev-group-to-role-azure-portal-5.png"::: | +| [!INCLUDE [Assign dev service principal to role step 1](<./includes/assign-local-dev-group-to-role-azure-portal-6.md>)] | :::image type="content" source="./media/assign-local-dev-group-to-role-azure-portal-6-240px.png" alt-text="A screenshot showing how to filter for and select the Azure AD group for the application in the Select members dialog box." lightbox="./media/assign-local-dev-group-to-role-azure-portal-6.png"::: | +| [!INCLUDE [Assign dev service principal to role step 1](<./includes/assign-local-dev-group-to-role-azure-portal-7.md>)] | :::image type="content" source="./media/assign-local-dev-group-to-role-azure-portal-7-240px.png" alt-text="A screenshot showing the completed Add role assignment page and the location of the Review + assign button used to complete the process." lightbox="./media/assign-local-dev-group-to-role-azure-portal-7.png"::: | + +### [Azure CLI](#tab/azure-cli) + +An application service principal is assigned a role in Azure using the [az role assignment create](/cli/azure/role/assignment) command. + +```azurecli +az role assignment create --assignee "{appId}" \ + --role "{roleName}" \ + --resource-group "{resourceGroupName}" +``` + +To get the role names that a service principal can be assigned to, use the [az role definition list](/cli/azure/role/definition#az-role-definition-list) command. + +```azurecli +az role definition list --query "sort_by([].{roleName:roleName, description:description}, &roleName)" --output table + +``` + +For example, to allow the application service principal with the appId of `00000000-0000-0000-0000-000000000000` read, write, and delete access to Azure Storage blob containers and data to all storage accounts in the *msdocs-dotnet-sdk-auth-example* resource group, you would assign the application service principal to the *Storage Blob Data Contributor* role using the following command. + +```azurecli +az role assignment create --assignee "00000000-0000-0000-0000-000000000000" \ + --role "Storage Blob Data Contributor" \ + --resource-group "msdocs-dotnet-sdk-auth-example" +``` + +For information on assigning permissions at the resource or subscription level using the Azure CLI, see the article [Assign Azure roles using the Azure CLI](/azure/role-based-access-control/role-assignments-cli). + +--- + +## 3 - Sign-in to Azure using .NET Tooling + +Next you need to sign in to Azure using one of several .NET tooling options. The account you sign into should also exist in the Azure Active Directory group you created and configured earlier. + +### [Visual Studio](#tab/sign-in-visual-studio) + +On the top menu of Visual Studio, navigate to **Tools -> Options...** to open the options dialog. In the search bar in the upper left, type *Azure* to filter the options. Under the **Azure Service Authentication**, choose **Account Selection**. + +Select the drop down menu under **Choose an account:** and choose to add a Microsoft Account. A window will open prompting you to pick an account. Enter the credentials for your desired Azure account, and then select the confirmation. + +:::image type="content" source="./media/visual-studio-sign-in.png" alt-text="A screenshot showing how to sign in to Azure using Visual Studio."::: + +### [VS Code Azure Tools extension](#tab/sign-in-vscode) + +For an app to use the developer credentials from VS Code, the [VS Code Azure Tools extension must be installed](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-node-azure-pack) in VS Code. + +> [!div class="nextstepaction"] +> [Install the Azure Tools extensions for VS Code](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-node-azure-pack) + +On the left-hand panel, you'll see an Azure icon. Select this icon, and a control panel for Azure services will appear. Choose **Sign in to Azure...** under any service to complete the authentication process for the Azure tools in Visual Studio Code. + +:::image type="content" source="./media/vs-code-azure-login-small.png" alt-text="Screenshot of the Visual Studio Code showing how to sign-in the Azure tools to Azure." lightbox="./media/vs-code-azure-login.png"::: + +### [Azure CLI](#tab/sign-in-azure-cli) + +Open a terminal on your developer workstation and sign-in to Azure from the [Azure CLI](/cli/azure/what-is-azure-cli). + +```azurecli +az login +``` + +### [Azure PowerShell](#tab/sign-in-azure-powershell) + +Open a terminal on your developer workstation and sign-in to Azure from [Azure PowerShell](/powershell/azure/what-is-azure-powershell). + +```azurepowershell +Connect-AzAccount +``` + +--- + +## 4 - Implement DefaultAzureCredential in your application + +[!INCLUDE [Implement Default Azure Credentials](<./includes/implement-defaultazurecredential.md>)] diff --git a/docs/azure/sdk/authentication-local-development-service-principal.md b/docs/azure/sdk/authentication-local-development-service-principal.md new file mode 100644 index 0000000000000..28a5f48e2ef04 --- /dev/null +++ b/docs/azure/sdk/authentication-local-development-service-principal.md @@ -0,0 +1,255 @@ +--- +title: Authenticate .NET apps to Azure services during local development using service principals +description: This article describes how to authenticate your application to Azure services when using the Azure SDK for NET during local development using dedicated application service principals. +ms.date: 05/05/2022 +ms.topic: how-to +ms.custom: devx-track-dotnet +--- + +# Authenticate NET apps to Azure services during local development using service principals + +When creating cloud applications, developers need to debug and test applications on their local workstation. When an application is run on a developer's workstation during local development, it still must authenticate to any Azure services used by the app. This article covers how to set up dedicated application service principal objects to be used during local development. + +:::image type="content" source="media/local-dev-service-principal-overview.png" alt-text="A diagram showing how a NET app during local development will use the developers credentials to connect to Azure by obtaining those credentials locally installed development tools."::: + +Dedicated application service principals for local development allow you to follow the principle of least privilege during app development. Since permissions are scoped to exactly what is needed for the app during development, app code is prevented from accidentally accessing an Azure resource intended for use by a different app. This also prevents bugs from occurring when the app is moved to production because the app was overprivileged in the dev environment. + +An application service principal is set up for the app when the app is registered in Azure. When registering apps for local development, it's recommended to: + +- Create separate app registrations for each developer working on the app. This will create separate application service principals for each developer to use during local development and avoid the need for developers to share credentials for a single application service principal. +- Create separate app registrations per app. This scopes the app's permissions to only what is needed by the app. + +During local development, environment variables are set with the application service principal's identity. The Azure SDK for NET reads these environment variables and uses this information to authenticate the app to the Azure resources it needs. + +## 1 - Register the application in Azure + +Application service principal objects are created with an app registration in Azure. This can be done using either the Azure portal or Azure CLI. + +### [Azure portal](#tab/azure-portal) + +Sign in to the [Azure portal](https://portal.azure.com/) and follow these steps. + +| Instructions | Screenshot | +|:----------------|-----------:| +| [!INCLUDE [Create app registration step 1](<./includes/local-dev-app-registration-azure-portal-1.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-1-240px.png" alt-text="A screenshot showing how to use the top search bar in the Azure portal to find and navigate to the App registrations page." lightbox="./media/local-dev-app-registration-azure-portal-1.png"::: | +| [!INCLUDE [Create app registration step 2](<./includes/local-dev-app-registration-azure-portal-2.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-2-240px.png" alt-text="A screenshot showing the location of the New registration button in the App registrations page." lightbox="./media/local-dev-app-registration-azure-portal-2.png"::: | +| [!INCLUDE [Create app registration step 3](<./includes/local-dev-app-registration-azure-portal-3.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-3-240px.png" alt-text="A screenshot showing how to fill out the Register an application page by giving the app a name and specifying supported account types as accounts in this organizational directory only." lightbox="./media/local-dev-app-registration-azure-portal-3.png"::: | +| [!INCLUDE [Create app registration step 4](<./includes/local-dev-app-registration-azure-portal-4.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-4-240px.png" alt-text="A screenshot of the App registration page after the app registration has been completed. This screenshot shows the location of the application ID and tenant ID which will be needed in a future step. It also shows the location of the link to use to add an application secret for the app." lightbox="./media/local-dev-app-registration-azure-portal-4.png"::: | +| [!INCLUDE [Create app registration step 5](<./includes/local-dev-app-registration-azure-portal-5.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-5-240px.png" alt-text="A screenshot showing the location of the link to use to create a new client secret on the certificates and secrets page." lightbox="./media/local-dev-app-registration-azure-portal-5.png"::: | +| [!INCLUDE [Create app registration step 6](<./includes/local-dev-app-registration-azure-portal-6.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-6-240px.png" alt-text="A screenshot showing the page where a new client secret is added for the application service principal create by the app registration process." lightbox="./media/local-dev-app-registration-azure-portal-6.png"::: | +| [!INCLUDE [Create app registration step 7](<./includes/local-dev-app-registration-azure-portal-7.md>)] | :::image type="content" source="./media/local-dev-app-registration-azure-portal-7-240px.png" alt-text="A screenshot showing the page with the generated client secret." lightbox="./media/local-dev-app-registration-azure-portal-7.png"::: | + +### [Azure CLI](#tab/azure-cli) + +Azure CLI commands can be run in the [Azure Cloud Shell](https://shell.azure.com) or on a workstation with the [Azure CLI installed](/cli/azure/install-azure-cli). + +First, use the [az ad sp create-for-rbac](/cli/azure/ad/sp#az-ad-sp-create-for-rbac) command to create a new service principal for the app. This will also create the app registration for the app at the same time. + +```azurecli +az ad sp create-for-rbac --name {service-principal-name} +``` + +The output of this command will look like the following. It's recommended to copy this output into a temporary file in a text editor as you'll need these values in a future step as this is the only place you ever see the client secret (password) for the service principal. You can, however, add a new password later without invalidating the service principal or existing passwords if need be. + +```json +{ + "appId": "00000000-0000-0000-0000-000000000000", + "displayName": "{service-principal-name}", + "password": "abcdefghijklmnopqrstuvwxyz", + "tenant": "11111111-1111-1111-1111-111111111111" +} +``` + +--- + +## 2 - Create an Azure AD security group for local development + +Since there typically multiple developers who work on an application, it's recommended to create an Azure AD group to encapsulate the roles (permissions) the app needs in local development rather than assigning the roles to individual service principal objects. This offers the following advantages. + +- Every developer is assured to have the same roles assigned since roles are assigned at the group level. +- If a new role is needed for the app, it only needs to be added to the Azure AD group for the app. +- If a new developer joins the team, a new application service principal is created for the developer and added to the group, assuring the developer has the right permissions to work on the app. + +### [Azure portal](#tab/azure-portal) + +| Instructions | Screenshot | +|:----------------|-----------:| +| [!INCLUDE [Create app AD group step 1](<./includes/local-dev-app-ad-group-azure-portal-1.md>)] | :::image type="content" source="./media/local-dev-app-ad-group-azure-portal-1-240px.png" alt-text="A screenshot showing how to use the top search bar in the Azure portal to search for and navigate to the Azure Active Directory page." lightbox="./media/local-dev-app-ad-group-azure-portal-1.png"::: | +| [!INCLUDE [Create app AD group step 2](<./includes/local-dev-app-ad-group-azure-portal-2.md>)] | :::image type="content" source="./media/local-dev-app-ad-group-azure-portal-2-240px.png" alt-text="A screenshot showing the location of the Groups menu item in the left-hand menu of the Azure Active Directory Default Directory page." lightbox="./media/local-dev-app-ad-group-azure-portal-2.png"::: | +| [!INCLUDE [Create app AD group step 3](<./includes/local-dev-app-ad-group-azure-portal-3.md>)] | :::image type="content" source="./media/local-dev-app-ad-group-azure-portal-3-240px.png" alt-text="A screenshot showing the location of the New Group button in the All groups page." lightbox="./media/local-dev-app-ad-group-azure-portal-3.png"::: | +| [!INCLUDE [Create app AD group step 4](<./includes/local-dev-app-ad-group-azure-portal-4.md>)] | :::image type="content" source="./media/local-dev-app-ad-group-azure-portal-4-240px.png" alt-text="A screenshot showing how to fill out the form to create a new Azure Active Directory group for the application. This screenshot also shows the location of the link to select to add members to this group." lightbox="./media/local-dev-app-ad-group-azure-portal-4.png"::: | +| [!INCLUDE [Create app AD group step 5](<./includes/local-dev-app-ad-group-azure-portal-5.md>)] | :::image type="content" source="./media/local-dev-app-ad-group-azure-portal-5-240px.png" alt-text="A screenshot of the Add members dialog box showing how to select application service principals to be included in the group." lightbox="./media/local-dev-app-ad-group-azure-portal-5.png"::: | +| [!INCLUDE [Create app AD group step 6](<./includes/local-dev-app-ad-group-azure-portal-6.md>)] | :::image type="content" source="./media/local-dev-app-ad-group-azure-portal-6-240px.png" alt-text="A screenshot of the New Group page showing how to complete the process by selecting the Create button." lightbox="./media/local-dev-app-ad-group-azure-portal-6.png"::: | + +### [Azure CLI](#tab/azure-cli) + +The [az ad group create](/cli/azure/ad/group#az-ad-group-create) command is used to create groups in Azure Active Directory. The `--display-name` and `--main-nickname` parameters are required. The name given to the group should be based on the name of the application. It's also useful to include a phrase like 'local-dev' in the name of the group to indicate the purpose of the group. + +```azurecli +az ad group create \ + --display-name MyDisplay \ + --mail-nickname MyDisplay \ + --description \ +``` + +To add members to the group, you'll need the object ID of the application service principal which is different that the application id. Use the [az ad sp list](/cli/azure/ad/sp#az-ad-sp-list) to list the available service principals. The `--filter` parameter command accepts OData style filters and can be used to filter the list as shown. The `--query` parameter limits to columns to only those of interest. + +```azurecli +az ad sp list \ + --filter "startswith(displayName, 'msdocs')" \ + --query "[].{objectId:objectId, displayName:displayName}" \ + --output table +``` + +The [az ad group member add](/cli/azure/ad/group/member#az-ad-group-member-add) command can then be used to add members to groups. + +```azurecli +az ad group member add \ + --group \ \ + --member-id \ \ +``` + +--- + +## 3 - Assign roles to the application + +Next, you need to determine what roles (permissions) your app needs on what resources and assign those roles to your app. In this example, the roles will be assigned to the Azure Active Directory group created in step 2. Roles can be assigned a role at a resource, resource group, or subscription scope. This example will show how to assign roles at the resource group scope since most applications group all their Azure resources into a single resource group. + +### [Azure portal](#tab/azure-portal) + +| Instructions | Screenshot | +|:----------------|-----------:| +| [!INCLUDE [Assign dev service principal to role step 1](<./includes/assign-local-dev-group-to-role-azure-portal-1.md>)] | :::image type="content" source="./media/assign-local-dev-group-to-role-azure-portal-1-240px.png" alt-text="A screenshot showing how to use the top search box in the Azure portal to locate and navigate to the resource group you want to assign roles (permissions) to." lightbox="./media/assign-local-dev-group-to-role-azure-portal-1.png"::: | +| [!INCLUDE [Assign dev service principal to role step 1](<./includes/assign-local-dev-group-to-role-azure-portal-2.md>)] | :::image type="content" source="./media/assign-local-dev-group-to-role-azure-portal-2-240px.png" alt-text="A screenshot of the resource group page showing the location of the Access control (IAM) menu item." lightbox="./media/assign-local-dev-group-to-role-azure-portal-2.png"::: | +| [!INCLUDE [Assign dev service principal to role step 1](<./includes/assign-local-dev-group-to-role-azure-portal-3.md>)] | :::image type="content" source="./media/assign-local-dev-group-to-role-azure-portal-3-240px.png" alt-text="A screenshot showing how to navigate to the role assignments tab and the location of the button used to add role assignments to a resource group." lightbox="./media/assign-local-dev-group-to-role-azure-portal-3.png"::: | +| [!INCLUDE [Assign dev service principal to role step 1](<./includes/assign-local-dev-group-to-role-azure-portal-4.md>)] | :::image type="content" source="./media/assign-local-dev-group-to-role-azure-portal-4-240px.png" alt-text="A screenshot showing how to filter and select role assignments to be added to the resource group." lightbox="./media/assign-local-dev-group-to-role-azure-portal-4.png"::: | +| [!INCLUDE [Assign dev service principal to role step 1](<./includes/assign-local-dev-group-to-role-azure-portal-5.md>)] | :::image type="content" source="./media/assign-local-dev-group-to-role-azure-portal-5-240px.png" alt-text="A screenshot showing the radio button to select to assign a role to an Azure AD group and the link used to select the group to assign the role to." lightbox="./media/assign-local-dev-group-to-role-azure-portal-5.png"::: | +| [!INCLUDE [Assign dev service principal to role step 1](<./includes/assign-local-dev-group-to-role-azure-portal-6.md>)] | :::image type="content" source="./media/assign-local-dev-group-to-role-azure-portal-6-240px.png" alt-text="A screenshot showing how to filter for and select the Azure AD group for the application in the Select members dialog box." lightbox="./media/assign-local-dev-group-to-role-azure-portal-6.png"::: | +| [!INCLUDE [Assign dev service principal to role step 1](<./includes/assign-local-dev-group-to-role-azure-portal-7.md>)] | :::image type="content" source="./media/assign-local-dev-group-to-role-azure-portal-7-240px.png" alt-text="A screenshot showing the completed Add role assignment page and the location of the Review + assign button used to complete the process." lightbox="./media/assign-local-dev-group-to-role-azure-portal-7.png"::: | + +### [Azure CLI](#tab/azure-cli) + +An application service principal is assigned a role in Azure using the [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) command. + +```azurecli +az role assignment create --assignee "{appId}" \ + --role "{roleName}" \ + --resource-group "{resourceGroupName}" +``` + +To get the role names that a service principal can be assigned to, use the [az role definition list](/cli/azure/role/definition#az-role-definition-list) command. + +```azurecli +az role definition list \ + --query "sort_by([].{roleName:roleName, description:description}, &roleName)" \ + --output table +``` + +For example, to allow the application service principal with the appId of `00000000-0000-0000-0000-000000000000` read, write, and delete access to Azure Storage blob containers and data to all storage accounts in the *msdocs-dotnet-sdk-auth-example* resource group, you would assign the application service principal to the *Storage Blob Data Contributor* role using the following command. + +```azurecli +az role assignment create --assignee "00000000-0000-0000-0000-000000000000" \ + --role "Storage Blob Data Contributor" \ + --resource-group "msdocs-dotnet-sdk-auth-example" +``` + +For information on assigning permissions at the resource or subscription level using the Azure CLI, see the article [Assign Azure roles using the Azure CLI](/azure/role-based-access-control/role-assignments-cli). + +--- + +## 4 - Set application environment variables + +The `DefaultAzureCredential` object will look for the service principal information in a set of environment variables at runtime. There are multiple ways to configure environment variables when working with .NET depending on your tooling and environment. + +Regardless of which approach you choose, you will need to configure the following environment variables when working with a service principal. + +- `AZURE_CLIENT_ID` → The app ID value. +- `AZURE_TENANT_ID` → The tenant ID value. +- `AZURE_CLIENT_SECRET` → The password/credential generated for the app. + +### [Visual Studio](#tab/visual-studio) + +When working locally with Visual Studio, environment variables can be set in the `launchsettings.json` file in the `Properties` folder of your project. When the app starts up, these values will be pulled in automatically. Keep in mind these configurations do not travel with your application when it gets deployed, so you will still need to setup environment variables on your target hosting environment. + +```json +"profiles": { + "SampleProject": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7177;http://localhost:5177", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "AZURE_CLIENT_ID": "00000000-0000-0000-0000-000000000000", + "AZURE_TENANT_ID":"11111111-1111-1111-1111-111111111111", + "AZURE_CLIENT_SECRET": "=abcdefghijklmnopqrstuvwxyz" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "AZURE_CLIENT_ID": "00000000-0000-0000-0000-000000000000", + "AZURE_TENANT_ID": "11111111-1111-1111-1111-111111111111", + "AZURE_CLIENT_SECRET": "=abcdefghijklmnopqrstuvwxyz" + } + } + } +``` + +### [VS Code](#tab/vs-code) + +When working locally with Visual Studio Code, environment variables can be set in the `launch.json` file of your project. When the app starts up, these values will be pulled in automatically. Keep in mind these configurations do not travel with your application when it gets deployed, so you will still need to setup environment variables on your target hosting environment. + +```json +"configurations": [ +{ + "env": { + "ASPNETCORE_ENVIRONMENT": "Development", + "AZURE_CLIENT_ID": "00000000-0000-0000-0000-000000000000", + "AZURE_TENANT_ID":"11111111-1111-1111-1111-111111111111", + "AZURE_CLIENT_SECRET": "=abcdefghijklmnopqrstuvwxyz" + } +} +``` + +### [Windows](#tab/windows) + +You can set environment variables for Windows from the command line. However, when using this approach the values are accessible to all applications running on that operating system and may cause conflicts if you are not careful. Environment variables can be set at the user or system level. + +```bash +# Set user environment variables +setx ASPNETCORE_ENVIRONMENT "Development" +setx AZURE_CLIENT_ID "00000000-0000-0000-0000-000000000000" +setx AZURE_TENANT_ID "11111111-1111-1111-1111-111111111111" +setx AZURE_CLIENT_SECRET "=abcdefghijklmnopqrstuvwxyz" + +# Set system environment variables - requires running as admin +setx ASPNETCORE_ENVIRONMENT "Development" +setx AZURE_CLIENT_ID "00000000-0000-0000-0000-000000000000" /m +setx AZURE_TENANT_ID "11111111-1111-1111-1111-111111111111" /m +setx AZURE_CLIENT_SECRET "=abcdefghijklmnopqrstuvwxyz" /m +``` + +PowerShell can also be used to set environment variables at the user or machine level. + +```powershell +# Set user environment variables +[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development", "User") +[Environment]::SetEnvironmentVariable("AZURE_CLIENT_ID", "00000000-0000-0000-0000-000000000000", "User") +[Environment]::SetEnvironmentVariable("AZURE_TENANT_ID", "11111111-1111-1111-1111-111111111111", "User") +[Environment]::SetEnvironmentVariable("AZURE_CLIENT_SECRET", "=abcdefghijklmnopqrstuvwxyz", "User") + +# Set system environment variables - requires running as admin +[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development", "Machine") +[Environment]::SetEnvironmentVariable("AZURE_CLIENT_ID", "00000000-0000-0000-0000-000000000000", "Machine") +[Environment]::SetEnvironmentVariable("AZURE_TENANT_ID", "11111111-1111-1111-1111-111111111111", "Machine") +[Environment]::SetEnvironmentVariable("AZURE_CLIENT_SECRET", "=abcdefghijklmnopqrstuvwxyz", "Machine") +``` + +--- + +## 5 - Implement DefaultAzureCredential in your application + +[!INCLUDE [Implement Default Azure Credentials](<./includes/implement-defaultazurecredential.md>)] diff --git a/docs/azure/sdk/authentication-on-premises-apps.md b/docs/azure/sdk/authentication-on-premises-apps.md new file mode 100644 index 0000000000000..e4cee48e2e4ba --- /dev/null +++ b/docs/azure/sdk/authentication-on-premises-apps.md @@ -0,0 +1,172 @@ +--- +title: Authenticate to Azure resources from .NET apps hosted on-premises +description: This article describes how to authenticate your application to Azure services when using the Azure SDK for .NET in on-premises hosted applications. +ms.date: 05/05/2022 +ms.topic: how-to +ms.custom: devx-track-dotnet +--- + +# Authenticate to Azure resources from .NET apps hosted on-premises + +Apps hosted outside of Azure (for example on-premises or at a third-party data center) should use an application service principal to authenticate to Azure when accessing Azure resources. Application service principal objects are created using the app registration process in Azure. When an application service principal is created, a client ID and client secret will be generated for your app. The client ID, client secret, and your tenant ID are then stored in environment variables so they can be used by the Azure SDK for .NET to authenticate your app to Azure at runtime. + +A different app registration should be created for each environment the app is hosted in. This allows environment specific resource permissions to be configured for each service principal and make sure an app deployed to one environment does not talk to Azure resources that are part of another environment. + +## 1 - Register the application in Azure + +An app can be registered with Azure using either the Azure portal or the Azure CLI. + +### [Azure portal](#tab/azure-portal) + +Sign in to the [Azure portal](https://portal.azure.com/) and follow these steps. + +| Instructions | Screenshot | +|:----------------|-----------:| +| [!INCLUDE [Create app registration step 1](<./includes/on-premises-app-registration-azure-portal-1.md>)] | :::image type="content" source="./media/on-premises-app-registration-azure-portal-1-240px.png" lightbox="./media/on-premises-app-registration-azure-portal-1.png" alt-text="A screenshot showing how to use the top search bar in the Azure portal to find and navigate to the App registrations page." ::: | +| [!INCLUDE [Create app registration step 2](<./includes/on-premises-app-registration-azure-portal-2.md>)] | :::image type="content" source="./media/on-premises-app-registration-azure-portal-2-240px.png" lightbox="./media/on-premises-app-registration-azure-portal-2.png" alt-text="A screenshot showing the location of the New registration button in the App registrations page." ::: | +| [!INCLUDE [Create app registration step 3](<./includes/on-premises-app-registration-azure-portal-3.md>)] | :::image type="content" source="./media/on-premises-app-registration-azure-portal-3-240px.png" lightbox="./media/on-premises-app-registration-azure-portal-3.png" alt-text="A screenshot showing how to fill out the Register an application page by giving the app a name and specifying supported account types as accounts in this organizational directory only." ::: | +| [!INCLUDE [Create app registration step 4](<./includes/on-premises-app-registration-azure-portal-4.md>)] | :::image type="content" source="./media/on-premises-app-registration-azure-portal-4-240px.png" lightbox="./media/on-premises-app-registration-azure-portal-4.png" alt-text="A screenshot of the App registration page after the app registration has been completed. This screenshot shows the location of the application ID and tenant ID which will be needed in a future step. It also shows the location of the link to use to add an application secret for the app." ::: | +| [!INCLUDE [Create app registration step 5](<./includes/on-premises-app-registration-azure-portal-5.md>)] | :::image type="content" source="./media/on-premises-app-registration-azure-portal-5-240px.png" lightbox="./media/on-premises-app-registration-azure-portal-5.png" alt-text="A screenshot showing the location of the link to use to create a new client secret on the certificates and secrets page." ::: | +| [!INCLUDE [Create app registration step 6](<./includes/on-premises-app-registration-azure-portal-6.md>)] | :::image type="content" source="./media/on-premises-app-registration-azure-portal-6-240px.png" lightbox="./media/on-premises-app-registration-azure-portal-6.png" alt-text="A screenshot showing the page where a new client secret is added for the application service principal created by the app registration process." ::: | +| [!INCLUDE [Create app registration step 7](<./includes/on-premises-app-registration-azure-portal-7.md>)] | :::image type="content" source="./media/on-premises-app-registration-azure-portal-7-240px.png" lightbox="./media/on-premises-app-registration-azure-portal-7.png" alt-text="A screenshot showing the page with the generated client secret." ::: | + +### [Azure CLI](#tab/azure-cli) + +```azurecli +az ad sp create-for-rbac --name +``` + +The output of the command will be similar to the following. Make note of these values or keep this window open as you will need these values in the next step and will not be able to view the password (client secret) value again. + +```json +{ + "appId": "00000000-1111-2222-3333-444444444444", + "displayName": "msdocs-dotnet-sdk-auth-prod", + "password": "abcdefghijklmnopqrstuvwxyz", + "tenant": "00000000-0000-0000-0000-000000000000" +} +``` + +--- + +## 2 - Assign roles to the application service principal + +Next, you need to determine what roles (permissions) your app needs on what resources and assign those roles to your app. Roles can be assigned a role at a resource, resource group, or subscription scope. This example will show how to assign roles for the service principal at the resource group scope since most applications group all their Azure resources into a single resource group. + +### [Azure portal](#tab/azure-portal) + +| Instructions | Screenshot | +|:----------------|-----------:| +| [!INCLUDE [Assign service principal to role step 1](<./includes/assign-service-principal-to-role-azure-portal-1.md>)] | :::image type="content" source="./media/assign-service-principal-to-role-azure-portal-1-240px.png" lightbox="./media/assign-service-principal-to-role-azure-portal-1.png" alt-text="A screenshot showing how to use the top search box in the Azure portal to locate and navigate to the resource group you want to assign roles (permissions) to." ::: | +| [!INCLUDE [Assign service principal to role step 2](<./includes/assign-service-principal-to-role-azure-portal-2.md>)] | :::image type="content" source="./media/assign-service-principal-to-role-azure-portal-2-240px.png" lightbox="./media/assign-service-principal-to-role-azure-portal-2.png" alt-text="A screenshot of the resource group page showing the location of the Access control (IAM) menu item." ::: | +| [!INCLUDE [Assign service principal to role step 3](<./includes/assign-service-principal-to-role-azure-portal-3.md>)] | :::image type="content" source="./media/assign-service-principal-to-role-azure-portal-3-240px.png" lightbox="./media/assign-service-principal-to-role-azure-portal-3.png" alt-text="A screenshot showing how to navigate to the role assignments tab and the location of the button used to add role assignments to a resource group." ::: | +| [!INCLUDE [Assign service principal to role step 4](<./includes/assign-service-principal-to-role-azure-portal-4.md>)] | :::image type="content" source="./media/assign-service-principal-to-role-azure-portal-4-240px.png" lightbox="./media/assign-service-principal-to-role-azure-portal-4.png" alt-text="A screenshot showing how to filter and select role assignments to be added to the resource group." ::: | +| [!INCLUDE [Assign service principal to role step 5](<./includes/assign-service-principal-to-role-azure-portal-5.md>)] | :::image type="content" source="./media/assign-service-principal-to-role-azure-portal-5-240px.png" lightbox="./media/assign-service-principal-to-role-azure-portal-5.png" alt-text="A screenshot showing the radio button to select to assign a role to an Azure AD group and the link used to select the group to assign the role to." ::: | +| [!INCLUDE [Assign service principal to role step 6](<./includes/assign-service-principal-to-role-azure-portal-6.md>)] | :::image type="content" source="./media/assign-service-principal-to-role-azure-portal-6-240px.png" lightbox="./media/assign-service-principal-to-role-azure-portal-6.png" alt-text="A screenshot showing how to filter for and select the Azure AD group for the application in the Select members dialog box." ::: | +| [!INCLUDE [Assign service principal to role step 7](<./includes/assign-service-principal-to-role-azure-portal-7.md>)] | :::image type="content" source="./media/assign-service-principal-to-role-azure-portal-7-240px.png" lightbox="./media/assign-service-principal-to-role-azure-portal-7.png" alt-text="A screenshot showing the completed Add role assignment page and the location of the Review + assign button used to complete the process." ::: | + +### [Azure CLI](#tab/azure-cli) + +A service principal is assigned a role in Azure using the [az role assignment create](/cli/azure/role/assignment#az-role-assignment-create) command. + +```azurecli +az role assignment create --assignee "{appId}" \ + --role "{roleName}" \ + --resource-group "{resourceGroupName}" +``` + +To get the role names that a service principal can be assigned to, use the [az role definition list](/cli/azure/role/definition#az-role-definition-list) command. + +```azurecli +az role definition list \ + --query "sort_by([].{roleName:roleName, description:description}, &roleName)" \ + --output table +``` + +For example, to allow the service principal with the appId of `00000000-0000-0000-0000-000000000000` read, write, and delete access to Azure Storage blob containers and data to all storage accounts in the *msdocs-dotnet-sdk-auth-example* resource group, you would assign the application service principal to the *Storage Blob Data Contributor* role using the following command. + +```azurecli +az role assignment create --assignee "00000000-0000-0000-0000-000000000000" \ + --role "Storage Blob Data Contributor" \ + --resource-group "msdocs-dotnet-sdk-auth-example" +``` + +For information on assigning permissions at the resource or subscription level using the Azure CLI, see the article [Assign Azure roles using the Azure CLI](/azure/role-based-access-control/role-assignments-cli). + +--- + +## 3 - Configure environment variables for application + +The `DefaultAzureCredential` object will look for service principal credentials in a set of environment variables at runtime. There are multiple ways to configure environment variables when working with .NET depending on your tooling and environment. + +Regardless of which approach you choose, you will need to configure the following environment variables when working with a service principal. + +- `AZURE_CLIENT_ID` → The app ID value. +- `AZURE_TENANT_ID` → The tenant ID value. +- `AZURE_CLIENT_SECRET` → The password/credential generated for the app. + +### [IIS](#tab/iis-app-pool) + +If your app is hosted in IIS it is recommended that you set environment variables per app pool to isolate settings between applications. + +```bash +appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].environmentVariables.[name='ASPNETCORE_ENVIRONMENT',value='Production']" /commit:apphost +appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].environmentVariables.[name='AZURE_CLIENT_ID',value='00000000-0000-0000-0000-000000000000']" /commit:apphost +appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].environmentVariables.[name='AZURE_TENANT_ID',value='11111111-1111-1111-1111-111111111111']" /commit:apphost +appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].environmentVariables.[name='AZURE_CLIENT_SECRET',value='=abcdefghijklmnopqrstuvwxyz']" /commit:apphost +``` + +You can also configure these settings directly using the `applicationPools` element inside of the `applicationHost.config` file. + +```xml + + + + + + + + + + +``` + +### [Windows](#tab/windows) + +You can set environment variables for Windows from the command line. However, when using this approach the values are accessible to all applications running on that operating system and may cause conflicts if you are not careful. Environment variables can be set at either user or system level. + +```bash +# Set user environment variables +setx ASPNETCORE_ENVIRONMENT "Development" +setx AZURE_CLIENT_ID "00000000-0000-0000-0000-000000000000" +setx AZURE_TENANT_ID "11111111-1111-1111-1111-111111111111" +setx AZURE_CLIENT_SECRET "=abcdefghijklmnopqrstuvwxyz" + +# Set system environment variables - requires running as admin +setx ASPNETCORE_ENVIRONMENT "Development" +setx AZURE_CLIENT_ID "00000000-0000-0000-0000-000000000000" /m +setx AZURE_TENANT_ID "11111111-1111-1111-1111-111111111111" /m +setx AZURE_CLIENT_SECRET "=abcdefghijklmnopqrstuvwxyz" /m +``` + +You can also use PowerShell to set environment variables at either the user or machine level. + +```powershell +# Set user environment variables +[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development", "User") +[Environment]::SetEnvironmentVariable("AZURE_CLIENT_ID", "00000000-0000-0000-0000-000000000000", "User") +[Environment]::SetEnvironmentVariable("AZURE_TENANT_ID", "11111111-1111-1111-1111-111111111111", "User") +[Environment]::SetEnvironmentVariable("AZURE_CLIENT_SECRET", "=abcdefghijklmnopqrstuvwxyz", "User") + +# Set system environment variables - requires running as admin +[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development", "Machine") +[Environment]::SetEnvironmentVariable("AZURE_CLIENT_ID", "00000000-0000-0000-0000-000000000000", "Machine") +[Environment]::SetEnvironmentVariable("AZURE_TENANT_ID", "11111111-1111-1111-1111-111111111111", "Machine") +[Environment]::SetEnvironmentVariable("AZURE_CLIENT_SECRET", "=abcdefghijklmnopqrstuvwxyz", "Machine") +``` + +--- + +## 4 - Implement DefaultAzureCredential in application + +[!INCLUDE [Implement Default Azure Credentials](<./includes/implement-defaultazurecredential.md>)] diff --git a/docs/azure/sdk/authentication.md b/docs/azure/sdk/authentication.md index 9faa54bae5bde..e49b63c8ae8ac 100644 --- a/docs/azure/sdk/authentication.md +++ b/docs/azure/sdk/authentication.md @@ -1,89 +1,80 @@ --- -title: Understanding Authentication in the Azure libraries for .NET -description: Explains the different ways of authenticating with the Azure SDK for .NET. -ms.date: 06/19/2020 +title: How to authenticate .NET applications with Azure services +description: How to acquire the necessary credential objects to authenticate a .NET application with Azure services by using the Azure .NET SDK +ms.date: 05/05/2022 +ms.topic: conceptual ms.custom: devx-track-dotnet --- -# Authenticate with the Azure SDK for .NET +# How to authenticate .NET apps to Azure services using the .NET Azure SDK -## Recommended: Azure.Identity +When an application needs to access an Azure resource such as storage, key vault, or cognitive services, the application must be authenticated to Azure. This is true for all applications, whether deployed to Azure, deployed on-premises, or under development on a local developer workstation. This article describes the recommended approaches to authenticate an app to Azure when using the Azure SDK for .NET. -The latest packages in the Azure SDK for .NET use a common authentication package to authenticate, `Azure.Identity`. Using `Azure.Identity` is recommended over other authentication mechanisms described later in this document. Packages supporting the credentials provided by `Azure.Identity` are built on top of `Azure.Core` and have package identifiers starting with *Azure*. [See the package list](packages.md) for an inventory of packages that use `Azure.Core`. +## Recommended app authentication approach -For complete instructions on using `Azure.Identity` in your project, see the documentation for [Azure Identity client for .NET](/dotnet/api/overview/azure/identity-readme). +It is recommended that apps use token-based authentication rather than connection strings when authenticating to Azure resources. The Azure SDK for .NET provides classes that support token-based authentication and allow apps to seamlessly authenticate to Azure resources whether the app is in local development, deployed to Azure, or deployed to an on-premises server. -> [!TIP] -> See the [Azure Identity, Resource Management, and Storage sample](/samples/dotnet/samples/azure-identity-resource-management-storage/) for examples of using Azure Identity to manage and access Azure resources. +The specific type of token-based authentication an app should use to authenticate to Azure resources depends on where the app is being run and is shown in the following diagram. -To authenticate with libraries that don't support Azure.Identity, see the rest of this topic. +:::image type="content" source="./media/dotnet-sdk-auth-strategy.png" alt-text="A diagram showing the recommended token-based authentication strategies for an app depending on where it's running." ::: -## Access Azure resources +- **When a developer is running an app during local development -** The app can authenticate to Azure using either an application service principal for local development or by using the developer's Azure credentials. Each of these options is discussed in more detail in the section [authentication during local development](#authentication-during-local-development). +- **When an app is hosted on Azure -** The app should authenticate to Azure resources using a managed identity. This option is discussed in more detail below in the section [authentication in server environments](#authentication-in-server-environments). +- **When an app is hosted and deployed on-premises -** The app should authenticate to Azure resources using an application service principal. This option is discussed in more detail below in the section [authentication in server environments](#authentication-in-server-environments). -To interact with Azure resources, such as retrieving a secret from Key Vault or storing a blob in Storage, many Azure service libraries require a connection string or keys for authentication. For example, SQL Database uses a [standard SQL connection string](/azure/azure-sql/database/connect-query-dotnet-core). Service connection strings are used in other Azure services like [CosmosDB](/azure/cosmos-db/), [Azure Cache for Redis](/azure/azure-cache-for-redis/cache-dotnet-how-to-use-azure-redis-cache), and [Service Bus](/azure/service-bus-messaging/service-bus-dotnet-get-started-with-queues). You can get those strings using the Azure portal, CLI, or PowerShell. You can also use the Azure management libraries for .NET to query resources to build connection strings in your code. +### DefaultAzureCredential -The methods for using a connection string vary by product. [Refer to the documentation for your Azure product](/azure/?product=featured). +The [`DefaultAzureCredential`](#use-defaultazurecredential-in-an-application) class provided by the Azure SDK allows apps to use different authentication methods depending on the environment they're run in. This allows apps to be promoted from local development to test environments to production without code changes. You configure the appropriate authentication method for each environment and `DefaultAzureCredential` will automatically detect and use that authentication method. The use of `DefaultAzureCredential` should be preferred over manually coding conditional logic or feature flags to use different authentication methods in different environments. -## Manage Azure resources +Details about using the `DefaultAzureCredential` class are covered later in this article in the section [Use `DefaultAzureCredential` in an application](#use-defaultazurecredential-in-an-application). -[!include[Create service principal](../includes/create-sp.md)] +### Advantages of token-based authentication -Now that the service principal is created, two options are available to authenticate to the service principal to create and manage resources. +Token-based authentication is strongly recommended over using connection strings when building apps for Azure. Token-based authentication offers the following advantages over authenticating with connection strings. -For both options you will need to add the following NuGet packages to your project. +- The token-based authentication methods described below allows you to establish the specific permissions needed by the app on the Azure resource. This follows the [principle of least privilege](https://en.wikipedia.org/wiki/Principle_of_least_privilege). In contrast, a connection string grants full rights to the Azure resource. +- Whereas anyone or any app with a connection string can connect to an Azure resource, token-based authentication methods scope access to the resource to only the app(s) intended to access the resource. +- In the case of a managed identity, there is no application secret to store. This makes the app more secure because there's no connection string or application secret than can be compromised. +- The [azure.identity](https://pypi.org/project/azure-identity/) package in the Azure SDK manages tokens for you behind the scenes. This makes using token based authentication as easy to use as a connection string. -```powershell -Install-Package Microsoft.Azure.Management.Fluent -Install-Package Microsoft.Azure.Management.ResourceManager.Fluent -``` +Use of connection strings should be limited to initial proof of concept apps or development prototypes that don't access production or sensitive data. Otherwise, the token-based authentication classes available in the Azure SDK should always be preferred when authenticating to Azure resources. -### Authenticate with token credentials +## Authentication in server environments -The first method is to build the token credential object in code. You should store the credentials securely in a configuration file, the registry, or Azure KeyVault. +When hosting in a server environment, each application should be assigned a unique *application identity* per environment the application is run in. In Azure, an app identity is represented by a **service principal**, a special type of *security principal* intended to identify and authenticate apps to Azure. The type of service principal to use for your app depends on where your app is running. -```csharp -var credentials = SdkContext.AzureCredentialsFactory - .FromServicePrincipal(clientId, - clientSecret, - tenantId, - AzureEnvironment.AzureGlobalCloud); -``` +| Authentication method | Description | +|-----------------------|-------------| +| Apps hosted in Azure | [!INCLUDE [sdk-auth-overview-managed-identity](./includes/sdk-auth-overview-managed-identity.md)] | +| Apps hosted outside of Azure
    (for example on-premises apps) | [!INCLUDE [sdk-auth-overview-service-principal](./includes/sdk-auth-overview-service-principal.md)] | -Use the *clientId*, *clientSecret*, and *tenantId* values from the JSON output when you created the service principal. +## Authentication during local development -Then create the entry point `Azure` object to start working with the API: +When an application is run on a developer's workstation during local development, it still must authenticate to any Azure services used by the app. The two main strategies for authenticating apps to Azure during local development are: -```csharp -var azure = Microsoft.Azure.Management.Fluent.Azure - .Configure() - .Authenticate(credentials) - .WithDefaultSubscription(); -``` +| Authentication method | Description | +|-----------------------|-------------| +| Create dedicated application service principal objects to be used during local development | [!INCLUDE [sdk-auth-overview-dev-service-principals](./includes/sdk-auth-overview-dev-service-principals.md)] | +| Authenticate the app to Azure using the developer's credentials during local development | [!INCLUDE [sdk-auth-overview-dev-accounts](./includes/sdk-auth-overview-dev-accounts.md)] | -It is recommended that you explicitly provide the *subscriptionId* from the JSON output to the `Azure` object: +## Use DefaultAzureCredential in an application -```csharp -var azure = Microsoft.Azure.Management.Fluent.Azure - .Configure() - .Authenticate(credentials) - .WithSubscription(subscriptionId); -``` +[!INCLUDE [Implement Default Azure Credentials](<./includes/implement-defaultazurecredential.md>)] -### File-based authentication +### Exploring the sequence of DefaultAzureCredential authentication methods -File-based authentication allows you to put the service principal credentials in a plain text file and secure it within the file system. +Internally, `DefaultAzureCredential` implements a chain of credential providers for authenticating applications to Azure resources. Each credential provider is able to detect if credentials of that type are configured for the app. `DefaultAzureCredential` sequentially checks each provider in order and uses the credentials from the first provider that has credentials configured. -[!include[File-based authentication](../includes/file-based-auth.md)] +The order in which `DefaultAzureCredential` looks for credentials is shown in the diagram and table below. -Read the contents of the file and create the entry point `Azure` object to start working with the API: +:::image type="content" source="./media/authentication-defaultazurecredential.png" alt-text="A diagram showing the `DefaultAzureCredential` sequence checks to see what authentication source is configured for an application." lightbox="./media/default-azure-credential-sequence-diagram.png"::: -```csharp -// pull in the location of the authentication properties file from the environment -var credentials = SdkContext.AzureCredentialsFactory - .FromFile(Environment.GetEnvironmentVariable("AZURE_AUTH_LOCATION")); - -var azure = Microsoft.Azure.Management.Fluent.Azure - .Configure() - .Authenticate(credentials) - .WithDefaultSubscription(); -``` +| Credential type | Description | +|-------------------------------|-------------| +| Application service principal | `DefaultAzureCredential` reads a set of environment variables to determine if an application service principal (application user) has been set for the app. If so, `DefaultAzureCredential` uses these values to authenticate the app to Azure.

    This method is most often used in server environments but can also be used when developing locally. | +| Managed Identity | If the application is deployed to an Azure host with Managed Identity enabled, `DefaultAzureCredential` will authenticate the app to Azure using that Managed Identity. Authentication using a Managed Identity is discussed in the [Authentication in server environments](#authentication-in-server-environments) section of this document.

    This method is only available when an application is hosted in Azure using a service like Azure App Service, Azure Functions, or Azure Virtual Machines. | +| Visual Studio | If the developer has authenticated to Azure by logging into Visual Studio, `DefaultAzureCredential` will authenticate the app to Azure using that same account. | +| Visual Studio Code | If the developer has authenticated to Azure using the Visual Studio Code Azure Account plugin, `DefaultAzureCredential` will authenticate the app to Azure using that same account. | +| Azure CLI | If a developer has authenticated to Azure using the `az login` command in the Azure CLI, `DefaultAzureCredential` will authenticate the app to Azure using that same account. | +| Azure PowerShell | If a developer has authenticated to Azure using the `Connect-AzAccount` cmdlet from Azure PowerShell, `DefaultAzureCredential` will authenticate the app to Azure using that same account. | +| Interactive | If enabled, `DefaultAzureCredential` will interactively authenticate the developer via the current system's default browser. By default, this option is disabled. | diff --git a/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-1.md b/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-1.md new file mode 100644 index 0000000000000..7c2f9a583aed9 --- /dev/null +++ b/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-1.md @@ -0,0 +1,3 @@ +Locate the resource group for your application by searching for the resource group name using the search box at the top of the Azure portal.
    +
    +Navigate to your resource group by selecting the resource group name under the *Resource Groups* heading in the dialog box. diff --git a/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-2.md b/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-2.md new file mode 100644 index 0000000000000..798fd48a5eda0 --- /dev/null +++ b/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-2.md @@ -0,0 +1 @@ +On the page for the resource group, select *Access control (IAM)* from the left-hand menu. diff --git a/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-3.md b/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-3.md new file mode 100644 index 0000000000000..dc3aa38a07de4 --- /dev/null +++ b/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-3.md @@ -0,0 +1,4 @@ +On the *Access control (IAM)* page: + +1. Select the *Role assignments* tab. +1. Select *+ Add* from the top menu and then *Add role assignment* from the resulting drop-down menu. diff --git a/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-4.md b/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-4.md new file mode 100644 index 0000000000000..1ff15830a2eb4 --- /dev/null +++ b/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-4.md @@ -0,0 +1,6 @@ +The *Add role assignment* page lists all of the roles that can be assigned for the resource group. + +1. Use the search box to filter the list to a more manageable size. This example shows how to filter for Storage Blob roles. +1. Select the role that you want to assign. +
    +Select *Next* to go to the next screen. diff --git a/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-5.md b/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-5.md new file mode 100644 index 0000000000000..c956b4d57fe60 --- /dev/null +++ b/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-5.md @@ -0,0 +1,6 @@ +The next *Add role assignment* page allows you to specify what user to assign the role to. + +1. Select *User, group, or service principal* under *Assign access to*. +1. Select *+ Select members* under *Members* + +A dialog box will open on the right-hand side of the Azure portal. diff --git a/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-6.md b/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-6.md new file mode 100644 index 0000000000000..5604e19c30547 --- /dev/null +++ b/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-6.md @@ -0,0 +1,6 @@ +In the *Select members* dialog: + +1. The *Select* text box can be used to filter the list of users and groups in your subscription. If needed, type the first few characters of the local development Azure AD group you created for the app. +1. Select the local development Azure AD group associated with your application. + +Select *Select* at the bottom of the dialog to continue. diff --git a/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-7.md b/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-7.md new file mode 100644 index 0000000000000..fcaacdecf8bba --- /dev/null +++ b/docs/azure/sdk/includes/assign-local-dev-group-to-role-azure-portal-7.md @@ -0,0 +1,3 @@ +The Azure AD group will now show as selected on the *Add role assignment* screen.
    +
    +Select *Review + assign* to go to the final page and then *Review + assign* again to complete the process. diff --git a/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-1.md b/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-1.md new file mode 100644 index 0000000000000..7c2f9a583aed9 --- /dev/null +++ b/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-1.md @@ -0,0 +1,3 @@ +Locate the resource group for your application by searching for the resource group name using the search box at the top of the Azure portal.
    +
    +Navigate to your resource group by selecting the resource group name under the *Resource Groups* heading in the dialog box. diff --git a/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-2.md b/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-2.md new file mode 100644 index 0000000000000..798fd48a5eda0 --- /dev/null +++ b/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-2.md @@ -0,0 +1 @@ +On the page for the resource group, select *Access control (IAM)* from the left-hand menu. diff --git a/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-3.md b/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-3.md new file mode 100644 index 0000000000000..dc3aa38a07de4 --- /dev/null +++ b/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-3.md @@ -0,0 +1,4 @@ +On the *Access control (IAM)* page: + +1. Select the *Role assignments* tab. +1. Select *+ Add* from the top menu and then *Add role assignment* from the resulting drop-down menu. diff --git a/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-4.md b/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-4.md new file mode 100644 index 0000000000000..1ff15830a2eb4 --- /dev/null +++ b/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-4.md @@ -0,0 +1,6 @@ +The *Add role assignment* page lists all of the roles that can be assigned for the resource group. + +1. Use the search box to filter the list to a more manageable size. This example shows how to filter for Storage Blob roles. +1. Select the role that you want to assign. +
    +Select *Next* to go to the next screen. diff --git a/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-5.md b/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-5.md new file mode 100644 index 0000000000000..c18f7c0085625 --- /dev/null +++ b/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-5.md @@ -0,0 +1,6 @@ +The next *Add role assignment* page allows you to specify what user to assign the role to. + +1. Select *Managed identity* under *Assign access to*. +1. Select *+ Select members* under *Members* + +A dialog box will open on the right-hand side of the Azure portal. diff --git a/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-6.md b/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-6.md new file mode 100644 index 0000000000000..29c9f8c7f8735 --- /dev/null +++ b/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-6.md @@ -0,0 +1,6 @@ +In the *Select managed identities* dialog: + +1. The *Managed identity* dropdown and *Select* text box can be used to filter the list of managed identities in your subscription. In this example by selecting *App Service*, only managed identities associated with an App Service are displayed. +1. Select the managed identity for the Azure resource hosting your application. + +Select *Select* at the bottom of the dialog to continue. diff --git a/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-7.md b/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-7.md new file mode 100644 index 0000000000000..96841bf6f1e24 --- /dev/null +++ b/docs/azure/sdk/includes/assign-managed-identity-to-role-azure-portal-7.md @@ -0,0 +1,3 @@ +The managed identity will now show as selected on the *Add role assignment* screen.
    +
    +Select *Review + assign* to go to the final page and then *Review + assign* again to complete the process. diff --git a/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-1.md b/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-1.md new file mode 100644 index 0000000000000..7c2f9a583aed9 --- /dev/null +++ b/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-1.md @@ -0,0 +1,3 @@ +Locate the resource group for your application by searching for the resource group name using the search box at the top of the Azure portal.
    +
    +Navigate to your resource group by selecting the resource group name under the *Resource Groups* heading in the dialog box. diff --git a/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-2.md b/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-2.md new file mode 100644 index 0000000000000..798fd48a5eda0 --- /dev/null +++ b/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-2.md @@ -0,0 +1 @@ +On the page for the resource group, select *Access control (IAM)* from the left-hand menu. diff --git a/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-3.md b/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-3.md new file mode 100644 index 0000000000000..dc3aa38a07de4 --- /dev/null +++ b/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-3.md @@ -0,0 +1,4 @@ +On the *Access control (IAM)* page: + +1. Select the *Role assignments* tab. +1. Select *+ Add* from the top menu and then *Add role assignment* from the resulting drop-down menu. diff --git a/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-4.md b/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-4.md new file mode 100644 index 0000000000000..1ff15830a2eb4 --- /dev/null +++ b/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-4.md @@ -0,0 +1,6 @@ +The *Add role assignment* page lists all of the roles that can be assigned for the resource group. + +1. Use the search box to filter the list to a more manageable size. This example shows how to filter for Storage Blob roles. +1. Select the role that you want to assign. +
    +Select *Next* to go to the next screen. diff --git a/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-5.md b/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-5.md new file mode 100644 index 0000000000000..c956b4d57fe60 --- /dev/null +++ b/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-5.md @@ -0,0 +1,6 @@ +The next *Add role assignment* page allows you to specify what user to assign the role to. + +1. Select *User, group, or service principal* under *Assign access to*. +1. Select *+ Select members* under *Members* + +A dialog box will open on the right-hand side of the Azure portal. diff --git a/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-6.md b/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-6.md new file mode 100644 index 0000000000000..e545ffb9ac777 --- /dev/null +++ b/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-6.md @@ -0,0 +1,6 @@ +In the *Select members* dialog: + +1. The *Select* text box can be used to filter the list of users and groups in your subscription. If needed, type the first few characters of the service principal you created for the app to filter the list. +1. Select the service principal associated with your application. + +Select *Select* at the bottom of the dialog to continue. diff --git a/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-7.md b/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-7.md new file mode 100644 index 0000000000000..db1fb007dc848 --- /dev/null +++ b/docs/azure/sdk/includes/assign-service-principal-to-role-azure-portal-7.md @@ -0,0 +1,3 @@ +The service principal will now show as selected on the *Add role assignment* screen.
    +
    +Select *Review + assign* to go to the final page and then *Review + assign* again to complete the process. diff --git a/docs/azure/sdk/includes/enable-managed-identity-azure-cli.md b/docs/azure/sdk/includes/enable-managed-identity-azure-cli.md new file mode 100644 index 0000000000000..da60e46d69071 --- /dev/null +++ b/docs/azure/sdk/includes/enable-managed-identity-azure-cli.md @@ -0,0 +1,13 @@ +#### [Azure App Service](#tab/azure-app-service) + +```azurecli +az webapp identity assign --resource-group -name +``` + +#### [Azure Virtual Machines](#tab/azure-virtual-machines) + +```azurecli +az vm identity assign --resource-group -name +``` + +--- diff --git a/docs/azure/sdk/includes/enable-managed-identity-azure-portal-1.md b/docs/azure/sdk/includes/enable-managed-identity-azure-portal-1.md new file mode 100644 index 0000000000000..845296ae3ccb9 --- /dev/null +++ b/docs/azure/sdk/includes/enable-managed-identity-azure-portal-1.md @@ -0,0 +1,3 @@ +Navigate to the resource that hosts your application code in the Azure portal.
    +
    +For example, you can type the name of your resource in the search box at the top of the page and navigate to it by selecting it in the dialog box. diff --git a/docs/azure/sdk/includes/enable-managed-identity-azure-portal-2.md b/docs/azure/sdk/includes/enable-managed-identity-azure-portal-2.md new file mode 100644 index 0000000000000..8829646f2b193 --- /dev/null +++ b/docs/azure/sdk/includes/enable-managed-identity-azure-portal-2.md @@ -0,0 +1,3 @@ +On the page for your resource, select the *Identity* menu item from the left-hand menu.
    +
    +All Azure resources capable of supporting managed identity will have an *Identity* menu item even though the layout of the menu may vary slightly. diff --git a/docs/azure/sdk/includes/enable-managed-identity-azure-portal-3.md b/docs/azure/sdk/includes/enable-managed-identity-azure-portal-3.md new file mode 100644 index 0000000000000..96613ae37a1d8 --- /dev/null +++ b/docs/azure/sdk/includes/enable-managed-identity-azure-portal-3.md @@ -0,0 +1,6 @@ +On the *Identity* page: + +1. Change the *Status* slider to *On*. +1. Click *Save*. + +A confirmation dialog will verify you want to enable managed identity for your service. Answer *Yes* and managed identity will be enabled for the Azure resource. diff --git a/docs/azure/sdk/includes/implement-defaultazurecredential.md b/docs/azure/sdk/includes/implement-defaultazurecredential.md new file mode 100644 index 0000000000000..37be8e93c2df1 --- /dev/null +++ b/docs/azure/sdk/includes/implement-defaultazurecredential.md @@ -0,0 +1,60 @@ +`DefaultAzureCredential` supports multiple authentication methods and determines the authentication method being used at runtime. In this way, your app can use different authentication methods in different environments without implementing environment specific code. + +The order and locations in which `DefaultAzureCredential` looks for credentials is shown in the diagram and table below. + +:::image type="content" source="../media/authentication-defaultazurecredential.png" alt-text="A diagram showing the sequence in which DefaultAzureCredential checks to see what authentication source is configured for an application." lightbox="../media/default-azure-credential-sequence-diagram.png"::: + +To implement `DefaultAzureCredential`, first add the [`Azure.Identity`](/dotnet/api/azure.identity) and optionally the [`Microsoft.Extensions.Azure`](/dotnet/api/microsoft.extensions.azure) packages to your application. You can do this using either the command line or the NuGet Package Manager. + +### [Command Line](#tab/command-line) + +Open a terminal environment of your choice in the application project directory and enter the command below. + +```terminal +dotnet add package Azure.Identity +dotnet add package Microsoft.Extensions.Azure +``` + +### [NuGet Package Manager](#tab/nuget-package) + +Right click on your project node in Visual Studio and select **Manage NuGet Packages**. Search for **Azure.Identity** in the search field, and install the matching package. Repeat this process for the **Microsoft.Extensions.Azure** package as well. + +:::image type="content" source="../media/nuget-azure-identity.png" alt-text="Install a package using the package manager."::: + +--- + +Azure services are generally accessed using corresponding client classes from the SDK. These classes and your own custom services should be registered in the `Program.cs` file so they can be accessed via dependency injection throughout your app. Inside of `Program.cs`, follow the steps below to correctly setup your service and `DefaultAzureCredential`. + +1. Include the `Azure.Identity` and `Microsoft.Extensions.Azure` namespaces with a using statement. +1. Register the Azure service using relevant helper methods. +1. Pass and instance of the `DefaultAzureCredential` object to the `UseCredential` method. + +An example of this is shown in the following code segment. + +```c# +using Microsoft.Extensions.Azure; +using Azure.Identity; + +// Inside of Program.cs +builder.Services.AddAzureClients(x => +{ + x.AddBlobServiceClient(new Uri("https://.blob.core.windows.net")); + x.UseCredential(new DefaultAzureCredential()); +}); +``` + +Alternatively, you can also utilize DefaultAzureCredential in your services more directly without the help of additional Azure registration methods, as seen below. + +```c# +using Azure.Identity; + +// Inside of Program.cs +builder.Services.AddSingleton(x => + new BlobServiceClient( + new Uri("https://.blob.core.windows.net"), + new DefaultAzureCredential())); +``` + +When the above code is run on your local workstation during local development, it will look in the environment variables for an application service principal or at Visual Studio, VS Code, the Azure CLI, or Azure PowerShell for a set of developer credentials, either of which can be used to authenticate the app to Azure resources during local development. + +When deployed to Azure this same code can also authenticate your app to other Azure resources. `DefaultAzureCredential` can retrieve environment settings and managed identity configurations to authenticate to other services automatically. diff --git a/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-1.md b/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-1.md new file mode 100644 index 0000000000000..1be87a123dbc2 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-1.md @@ -0,0 +1 @@ +Navigate to the Azure Active Directory page in the Azure portal by typing *Azure Active Directory* into the search box at the top of the page and then selecting *Azure Active Directory* from under services. diff --git a/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-2.md b/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-2.md new file mode 100644 index 0000000000000..b796442faaa44 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-2.md @@ -0,0 +1 @@ +On the *Azure Active Directory* page, select **Groups** from the left-hand menu. diff --git a/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-3.md b/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-3.md new file mode 100644 index 0000000000000..e3a3f0b89f4d2 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-3.md @@ -0,0 +1 @@ +On the *All groups* page, select **New group**. diff --git a/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-4.md b/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-4.md new file mode 100644 index 0000000000000..c560c361a0397 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-4.md @@ -0,0 +1,6 @@ +On the **New Group** page: + +1. **Group type** → **Security** +1. **Group name** → A name for the security group, typically created from the application name. It is also helpful to include a string like *local-dev* in the name of the group to indicate the purpose of the group. +1. **Group description** → A description of the purpose of the group. +1. Select the **No members selected** link under **Members** to add members to the group. diff --git a/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-5.md b/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-5.md new file mode 100644 index 0000000000000..4be75f05623b2 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-5.md @@ -0,0 +1,5 @@ +On the **Add members** dialog box: + +1. Use the search box to filter the list of user names in the list. +1. Select the user(s) for local development for this app. As objects are selected, they will move to the *Selected items* list at the bottom of the dialog. +1. When finished, select the **Select** button. diff --git a/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-6.md b/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-6.md new file mode 100644 index 0000000000000..5464a6d7716f4 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-accounts-app-ad-group-azure-portal-6.md @@ -0,0 +1,3 @@ +Back on the **New group** page, select **Create** to create the group.
    +
    +The group will be created and you will be taken back to the **All groups** page. It may take up to 30 seconds for the group to appear and you may need to refresh the page due to caching in the Azure portal. diff --git a/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-1.md b/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-1.md new file mode 100644 index 0000000000000..1be87a123dbc2 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-1.md @@ -0,0 +1 @@ +Navigate to the Azure Active Directory page in the Azure portal by typing *Azure Active Directory* into the search box at the top of the page and then selecting *Azure Active Directory* from under services. diff --git a/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-2.md b/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-2.md new file mode 100644 index 0000000000000..b796442faaa44 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-2.md @@ -0,0 +1 @@ +On the *Azure Active Directory* page, select **Groups** from the left-hand menu. diff --git a/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-3.md b/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-3.md new file mode 100644 index 0000000000000..e3a3f0b89f4d2 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-3.md @@ -0,0 +1 @@ +On the *All groups* page, select **New group**. diff --git a/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-4.md b/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-4.md new file mode 100644 index 0000000000000..c560c361a0397 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-4.md @@ -0,0 +1,6 @@ +On the **New Group** page: + +1. **Group type** → **Security** +1. **Group name** → A name for the security group, typically created from the application name. It is also helpful to include a string like *local-dev* in the name of the group to indicate the purpose of the group. +1. **Group description** → A description of the purpose of the group. +1. Select the **No members selected** link under **Members** to add members to the group. diff --git a/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-5.md b/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-5.md new file mode 100644 index 0000000000000..625dc616f8506 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-5.md @@ -0,0 +1,5 @@ +On the **Add members** dialog box: + +1. Use the search box to filter the list of principal names in the list. +1. Select the application service principals for local development for this app. As objects are selected, they will be greyed out and move to the *Selected items* list at the bottom of the dialog. +1. When finished, select the **Select** button. diff --git a/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-6.md b/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-6.md new file mode 100644 index 0000000000000..5464a6d7716f4 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-app-ad-group-azure-portal-6.md @@ -0,0 +1,3 @@ +Back on the **New group** page, select **Create** to create the group.
    +
    +The group will be created and you will be taken back to the **All groups** page. It may take up to 30 seconds for the group to appear and you may need to refresh the page due to caching in the Azure portal. diff --git a/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-1.md b/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-1.md new file mode 100644 index 0000000000000..a084bacc686bc --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-1.md @@ -0,0 +1,4 @@ +In the Azure portal: + + 1. Enter *app registrations* in the search bar at the top of the Azure portal. + 1. Select the item labeled **App registrations** under the **Services** heading on the menu that appears below the search bar. diff --git a/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-2.md b/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-2.md new file mode 100644 index 0000000000000..e5f386b9e87e8 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-2.md @@ -0,0 +1 @@ +On the **App registrations** page, select **+ New registration**. diff --git a/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-3.md b/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-3.md new file mode 100644 index 0000000000000..b8a429b3caa21 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-3.md @@ -0,0 +1,6 @@ +On the **Register an application** page, fill out the form as follows. + +1. **Name** → Enter a name for the app registration in Azure. It is recommended this name include the app name, the user the app registration is for, and an identifier like 'dev' to indicate this app registration is for use in local development. +1. **Supported account types** → *Accounts in this organizational directory only*. + +Select **Register** to register your app and create the application service principal. diff --git a/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-4.md b/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-4.md new file mode 100644 index 0000000000000..4e59f41e79488 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-4.md @@ -0,0 +1,5 @@ +On the App registration page for your app: + +1. **Application (client) ID** → This is the app id the app will use to access Azure during local development. Copy this value to a temporary location in a text editor as you will need it in a future step. +1. **Directory (tenant) id** → This value will also be needed by your app when it authenticates to Azure. Copy this value to a temporary location in a text editor it will also be needed it in a future step. +1. **Client credentials** → You must set the client credentials for the app before your app can authenticate to Azure and use Azure services. Select *Add a certificate or secret* to add credentials for your app. diff --git a/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-5.md b/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-5.md new file mode 100644 index 0000000000000..460b59c741216 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-5.md @@ -0,0 +1 @@ +On the Certificates & secrets page, select **+ New client secret**. diff --git a/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-6.md b/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-6.md new file mode 100644 index 0000000000000..30ee46b6e1090 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-6.md @@ -0,0 +1,6 @@ +The **Add a client secret** dialog will pop out from the right-hand side of the page. In this dialog: + +1. **Description** → Enter a value of *Current*. +1. **Expires** → Select a value of *24 months*. + +Select **Add** to add the secret. diff --git a/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-7.md b/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-7.md new file mode 100644 index 0000000000000..afbc508390ea8 --- /dev/null +++ b/docs/azure/sdk/includes/local-dev-app-registration-azure-portal-7.md @@ -0,0 +1,5 @@ +On the *Certificates & secrets* page, you will be shown the value of the client secret.
    +
    +Copy this value to a temporary location in a text editor as you will need it in a future step.
    +
    +***IMPORTANT: This is the only time you will see this value.*** Once you leave or refresh this page, you will not be able to see this value again. You may add an additional client secret without invalidating this client secret, but you will not see this value again. diff --git a/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-1.md b/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-1.md new file mode 100644 index 0000000000000..5cf9302796cc8 --- /dev/null +++ b/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-1.md @@ -0,0 +1,4 @@ +In the Azure portal: + + 1. Enter *app registrations* in the search bar at the top of the Azure portal. + 1. Select the item labeled **App registrations** under the under **Services** heading on the menu that appears below the search bar. diff --git a/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-2.md b/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-2.md new file mode 100644 index 0000000000000..e5f386b9e87e8 --- /dev/null +++ b/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-2.md @@ -0,0 +1 @@ +On the **App registrations** page, select **+ New registration**. diff --git a/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-3.md b/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-3.md new file mode 100644 index 0000000000000..1bfe879d67671 --- /dev/null +++ b/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-3.md @@ -0,0 +1,6 @@ +On the **Register an application** page, fill out the form as follows. + +1. **Name** → Enter a name for the app registration in Azure. It is recommended this name include the app name and environment (test, prod) the app registration is for. +1. **Supported account types** → *Accounts in this organizational directory only*. + +Select **Register** to register your app and create the application service principal. diff --git a/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-4.md b/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-4.md new file mode 100644 index 0000000000000..4e59f41e79488 --- /dev/null +++ b/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-4.md @@ -0,0 +1,5 @@ +On the App registration page for your app: + +1. **Application (client) ID** → This is the app id the app will use to access Azure during local development. Copy this value to a temporary location in a text editor as you will need it in a future step. +1. **Directory (tenant) id** → This value will also be needed by your app when it authenticates to Azure. Copy this value to a temporary location in a text editor it will also be needed it in a future step. +1. **Client credentials** → You must set the client credentials for the app before your app can authenticate to Azure and use Azure services. Select *Add a certificate or secret* to add credentials for your app. diff --git a/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-5.md b/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-5.md new file mode 100644 index 0000000000000..460b59c741216 --- /dev/null +++ b/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-5.md @@ -0,0 +1 @@ +On the Certificates & secrets page, select **+ New client secret**. diff --git a/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-6.md b/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-6.md new file mode 100644 index 0000000000000..bca28c4fd69fa --- /dev/null +++ b/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-6.md @@ -0,0 +1,8 @@ +The **Add a client secret** dialog will pop out from the right-hand side of the page. In this dialog: + +1. **Description** → Enter a value of *Current*. +1. **Expires** → Select a value of *24 months*. + +Select **Add** to add the secret.
    +
    +***IMPORTANT: Set a reminder in your calendar prior to the expiration date of the secret.*** This way, you can add a new secret prior and update your apps prior to the expiration of this secret and avoid a service interruption in your app. diff --git a/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-7.md b/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-7.md new file mode 100644 index 0000000000000..afbc508390ea8 --- /dev/null +++ b/docs/azure/sdk/includes/on-premises-app-registration-azure-portal-7.md @@ -0,0 +1,5 @@ +On the *Certificates & secrets* page, you will be shown the value of the client secret.
    +
    +Copy this value to a temporary location in a text editor as you will need it in a future step.
    +
    +***IMPORTANT: This is the only time you will see this value.*** Once you leave or refresh this page, you will not be able to see this value again. You may add an additional client secret without invalidating this client secret, but you will not see this value again. diff --git a/docs/azure/sdk/includes/sdk-auth-overview-dev-accounts.md b/docs/azure/sdk/includes/sdk-auth-overview-dev-accounts.md new file mode 100644 index 0000000000000..9cc3e8b98b39a --- /dev/null +++ b/docs/azure/sdk/includes/sdk-auth-overview-dev-accounts.md @@ -0,0 +1,6 @@ +In this method, a developer must be signed-in to Azure from either Visual Studio, the Azure Tools extension for VS Code, the Azure CLI, or Azure PowerShell on their local workstation. The application then can access the developer's credentials from the credential store and use those credentials to access Azure resources from the app.
    +
    +This method has the advantage of easier setup since a developer only needs to login to their Azure account from Visual Studio, VS Code or the Azure CLI. The disadvantage of this approach is that the developer's account likely has more permissions than required by the application, therefore not properly replicating the permissions the app will run with in production.
    +
    +> [!div class="nextstepaction"] +> [Learn about auth from Azure hosted apps](../authentication-local-development-dev-accounts.md) diff --git a/docs/azure/sdk/includes/sdk-auth-overview-dev-service-principals.md b/docs/azure/sdk/includes/sdk-auth-overview-dev-service-principals.md new file mode 100644 index 0000000000000..147f84a4fcb65 --- /dev/null +++ b/docs/azure/sdk/includes/sdk-auth-overview-dev-service-principals.md @@ -0,0 +1,8 @@ +In this method, dedicated **application service principal** objects are set up using the App registration process for use during local development. The identity of the service principal is then stored as environment variables to be accessed by the app when it is run in local development.
    +
    +This method allows you to assign the specific resource permissions needed by the app to the service principal objects used by developers during local development. This makes sure the application only has access to the specific resources it needs and replicates the permissions the app will have in production.
    +
    +The downside of this approach is the need to create separate service principal objects for each developer that works on an application.
    +
    +> [!div class="nextstepaction"] +> [Learn about auth from Azure hosted apps](../authentication-local-development-service-principal.md) diff --git a/docs/azure/sdk/includes/sdk-auth-overview-managed-identity.md b/docs/azure/sdk/includes/sdk-auth-overview-managed-identity.md new file mode 100644 index 0000000000000..289ace6ca4d28 --- /dev/null +++ b/docs/azure/sdk/includes/sdk-auth-overview-managed-identity.md @@ -0,0 +1,6 @@ +Apps hosted in Azure should use a **Managed Identity service principal**. Managed identities are designed to represent the identity of an app hosted in Azure and can only be used with Azure hosted apps.
    +
    +For example, a .NET web app hosted in Azure App Service would be assigned a Managed Identity. The Managed Identity assigned to the app would then be used to authenticate the app to other Azure services.
    +
    +> [!div class="nextstepaction"] +> [Learn about auth from Azure hosted apps](../authentication-azure-hosted-apps.md) diff --git a/docs/azure/sdk/includes/sdk-auth-overview-service-principal.md b/docs/azure/sdk/includes/sdk-auth-overview-service-principal.md new file mode 100644 index 0000000000000..a193fe33b100a --- /dev/null +++ b/docs/azure/sdk/includes/sdk-auth-overview-service-principal.md @@ -0,0 +1,6 @@ +Apps hosted outside of Azure (for example on-premises apps) that need to connect to Azure services should use an **Application service principal**. An Application service principal represents the identity of the app in Azure and is created through the application registration process.
    +
    +For example, consider a .NET web app hosted on-premises that makes use of Azure Blob Storage. You would create an Application service principal for the app using the App registration process. The `AZURE_CLIENT_ID`, `AZURE_TENANT_ID`, and `AZURE_CLIENT_SECRET` would all be stored as environment variables to be read by the application at runtime and allow the app to authenticate to Azure using the Application service principal.
    +
    +> [!div class="nextstepaction"] +> [Learn about auth from apps hosted outside of Azure](../authentication-on-premises-apps.md) diff --git a/docs/azure/sdk/includes/set-environment-variables.md b/docs/azure/sdk/includes/set-environment-variables.md new file mode 100644 index 0000000000000..fe57728e305ab --- /dev/null +++ b/docs/azure/sdk/includes/set-environment-variables.md @@ -0,0 +1,83 @@ +The `DefaultAzureCredential` object will look for service principal credentials in a set of environment variables at runtime. There are multiple ways to configure environment variables when working with .NET depending on your tooling and environment. + +Regardless of which approach you choose, you will need to configure the following environment variables when working with a service principal. + +- `AZURE_CLIENT_ID` → The app ID value. +- `AZURE_TENANT_ID` → The tenant ID value. +- `AZURE_CLIENT_SECRET` → The password/credential generated for the app. + +### [Visual Studio](#tab/visual-studio) + +When working locally with Visual Studio, environment variables can be set in the `launchsettings.json` file in the `Properties` folder of your project. When the app starts up, these values will be pulled in automatically. Keep in mind these configurations do not travel with your application when it gets deployed, so you will still need to setup environment variables on your target hosting environment. + +```json +"profiles": { + "SampleProject": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7177;http://localhost:5177", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "AZURE_CLIENT_ID": "00000000-0000-0000-0000-000000000000", + "AZURE_TENANT_ID":"11111111-1111-1111-1111-111111111111", + "AZURE_CLIENT_SECRET": "=abcdefghijklmnopqrstuvwxyz" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development", + "AZURE_CLIENT_ID": "00000000-0000-0000-0000-000000000000", + "AZURE_TENANT_ID": "11111111-1111-1111-1111-111111111111", + "AZURE_CLIENT_SECRET": "=abcdefghijklmnopqrstuvwxyz" + } + } + } +``` + +### [VS Code](#tab/vs-code) + +When working locally with Visual Studio Code, environment variables can be set in the `launch.json` file of your project. When the app starts up, these values will be pulled in automatically. Keep in mind these configurations do not travel with your application when it gets deployed, so you will still need to setup environment variables on your target hosting environment. + +```json +"configurations": [ +{ + "env": { + "ASPNETCORE_ENVIRONMENT": "Development", + "AZURE_CLIENT_ID": "00000000-0000-0000-0000-000000000000", + "AZURE_TENANT_ID":"11111111-1111-1111-1111-111111111111", + "AZURE_CLIENT_SECRET": "=abcdefghijklmnopqrstuvwxyz" + } +} +``` + +### [Windows](#tab/windows) + +You can easily set environment variables for Windows from the command line. Windows environment variables can be used for both local development or for hosting environments. However, remember that when using this approach the values will apply to all applications running on that operating system and may cause conflicts if you are not careful. + +```bash +setx AZURE_CLIENT_ID "00000000-0000-0000-0000-000000000000" +setx AZURE_TENANT_ID "11111111-1111-1111-1111-111111111111" +setx AZURE_CLIENT_SECRET "=abcdefghijklmnopqrstuvwxyz" +``` + +Alternatively, if your app is hosted in IIS you can also set environment variables per app. This can be configured using the applicationHost.config file. + +```xml + + + + + + + + + + + + +``` + +--- diff --git a/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-1-240px.png b/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-1-240px.png new file mode 100644 index 0000000000000000000000000000000000000000..61b981b817914f8751707ccfca42358d280d6cfc GIT binary patch literal 11355 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'*fp}l^DKW%K9e*8E`&;yH~Hj z)TAPsOG|yiWH(RI=85Y4z?C-b&d8^_;;=wr$H)=GQDOi;pW<~R4@g3Az1!Xo64xik zNIgo8Gx>M=oaF=Y5v5!>4^Nm;LU{tSsi;FfU#uSS;rJ8WZ(4qXMgAdhz<#M^_0~=j zmG7U!0g+tmT~*rZ-~yN$Tr8e;@seY0E=;mP;HjmWl(cR#?BD!Qm*i!aG*+;r7xF<| z>1Q^ebWrj{`;FnnaJt%OH939Ck0m`5Z0fsnps@UiVmNvoj<(ue$N;~M7 z3njyvK#~CcQSp`F!O8@~#2~a%Y8xBVp zERo}28-M?5<$j-?WQ?midIQ=YoJb25B& zoVl@qdOie{xp?kIPx88T*QUe(1A^j^G=iIM1f= z;~8KH%k)SHBH4;$S4T7mr@-3mG+uJ6$tl0aj%|4JS`T|xd^jo8%f6OHNs$cr^!^2} zj;O&>ofZdu3$R``K0ZYy%PFk@R+AMo02UmXwZV#scO{Y)t4K09^e`fK<^mFmt)=*_BH_dIq> z`O4--I=MgN_C_|6P`G5^SRJH3j!D!ok~8cAcvhU9ZJ~4VGe4$PWzf2RWfe@KKu?=J z;k7g^$=!tQE%PKgd3`mh(Th9?f@JXEOJ_yM^Vb|CJ}mJZBw!HXAb8EBK+o7!NLnl% zN`{eIPl+E2iMoQByfv3HRELyrN50`u(f7L&K={1Ovl5l1gn}=xjS3LW^7&poAoVvK z961m)zQ~14%9;Avx`~7lBUfthb&Fj@hv(FZbmV2(UgLZ!xAfI?!^KqvE{E;&t;oOI z_r*iU)8F7OkFQkAel5o5I0Y(~`M1m*Z=H3>EzS?(VRLL%|Ez6U!g@p1917m9es%Km zqs2%G=0M;dSQj>bp16yMir5$Oby}qbcBOhQh=_>TG7{&B+3=C5Ly%mmRNvj&U4Jmo zVHQ=MbajC)2zyV^d2eJNvEHb)wv?0tGrz)D4dc48}SK8?5 zq0fOh6&ec~P}9V4=EBNbs;q>Xnwx38n?+3MG9lIGqYsr1ioLy4&qKw2UWE;Au33K# zT_CIvI+ofaWp0;&v&5^tSD_-(=InU2C#0*Z1<+9wANK!v;5^( zJCAd7b2m@8OAOXOiw>@4gefUcG)cS1lnaa(^)xmfXm81zB&6z;8IKAV8}^Jvo@UWS zE>oVRZn1hTE^d6wsg+Ap@6A9RD}E{v$x1|}7Rd_Iky-TwrcUQPthee^qtgV%5n9Pc zFan;aILub znon&@HT2vl)R+`n)P0+FpZ)6G3=l|7-V3{ohdItdRTm%p zIl26M`4sdBPxYyjrP`qM%dsLhZ0E6Wr^p60@i17zkmo52g?#9#IkqP_)2;Q}__$~; z?9(g%lU^db_*G#vI!(m_=J3gm<0o^g zprNBoC()OmV{j;#+ESBl*OGHhr$*m0Ka{$c{hi4W8urx8+xAnuiu&4Ir$yfb^NgamCjym-O$|B)E`UEU}j-a zh$n8H@$Z7OZRFWRoM(;)e4rwKc;MDBRCYoHJvqnS=p9|t@=g0@Zk2|5VW)RbKIc~@ zI$4_K#=;nZ)O*A6&P2$#VHPIE)E$1KsFglEDV#3Nl=4h8*50nrbf)S>9Vf!p$tl+S z!e|f-|0V-?N&X7xZ$}bA``8WP3SW@!xoJ%O`1`)g2Mn z{{a=yxq?!opJgEsn~FtPElt`WhQ6DDTOG!4`{Cl*PEXIWx zI_CTP>iR6i0)9trp-qrJS)fiJ2lBDLeodCC`((zl*i5-USaI`*CCwnZLnruMOhe z>W1e64#UfkNX>5>5*EVs);&pEp~Z6Ww{EQi!HS$kXeG$??GFGifIx;|n?Zva7Ikqm zg)U{`xj^hF7TUG~sV0v1Mev0YQJxDnpBI%_IwBrL5`ZFJ4?k<^iz6iYHF!9Q0{JkVdve_+KoRnmT@0Va02~r(ew(rgbV&@9PmpUH1t)-SVw7uOdLPKp? z1A)-^>+Fn-gP23dxiwlE8YP)TDt;ct4d7cyO=tTL6lW6Gvx-U7O(Z~bw6?yBA0m?( zLN;8K*EewCly^oY#Pw+>l3&v40v$TR(^{45;$agGa!iLucx&hLuM){83JVJhjB)*c=9_={n%CQOjn9^b=b|kE zSl>B&J&`QdqtP{8xafP+b>|NG{(oly+_Cd(u>kMWT7O@oulzVJ`feQTtwE%CcO0<9 z?i4|%XCTw?U!`}p{sJn6#O~Y{>u^?wrEUKeTl5@3rSSnfbjq(Ne+0ru7 zTZ+nv$cBKtiJrjE<^KA8WtE%MzRXGi!(caYS)7+~XL!+G7Juh)ZC{dPK@=6qzKzbY zW;4@en);s2jc%^2taucUt^NQe>HPM({}xFNGZLXUR{(ei9Wqlotn8x$tp;_3znBKv zF3du_O$j3MG5ukeE{PQ;CXCG+yrN^Z0IZ&oczT&)s$Xapfb30BPC~1mR}UA!K1HLy z66V4$Sx|>BoL$Dm)_T4k)c5*Ankkj93YIatF~5wnU7$cfNd!iPE`1Dy|JfxP+0l$k%5qAs|7C!0f0r<)@26#6t0_}x&NFfwBr_6 z&zjZ&!LXRA>(ZxQ*A}&tM)D@gpevQQt-T%KwgwhHWf>L)!EuQf!hZXmw4=4)Ca^lJJYItQ9&Gqxdrl!nqkOK)ClR(QQ?mICx$;|3iQmBe2EqUKpUcBl7oam1moCb?IMx5 zZYo`v3LB6`52HJ@8b5!AWI*0mbNbVc`VU}Ig4h52^YZq38THLk`*x{Mm*OBwMc5b9 zG1Vhb4s?xUt3y=waSQZRmww|BrbD9$XB?&Pff;qT;RiOwS-Y*$!$!Y5{#B}bLRC5> zEw|gs$c_-&t@eoIp?kcmu+?ieON@#~?5vH}O>*R2i*@Zp?xDr=3Rgy)ACbIXg7X4f z$}B&7aOB+W$~8gQT&I#N-KA=;OAajMaaB_@Swr`m1=j;)p`z~DCp*Zp%k5tnacHQS zcklTS5%#8K60+(fk+47sUf?hivULIf!^oF380_}i| ziIvxxl9&I9?q1M+heDJ==JZ{}s|WCnKTb=oBD@a&$xI>yUAy=4a3IT3r-<`Pyd1`H z`G1Y%=Hh81#>Tqj2<8D8;(0)ig^_bfX4JIxqK39B@q)(lB;!Q z&d6@+#rErH8uxh2J>s$$!{a$g3O~0=i;4EgNi}NTu)_@KxI=3Z;O^OmhhO)y(jD}r zuRJt8#>g(1lt@fSvjDBNt%*MLw{Jr41oMP}lmNH@X1npzr#D;rU$@8|B_35~0~u^A zLVp)XS9m^q9qHhmLGXVx1~fOg1i9ZWS(tscp`(eF93KwBk2Cej~@Y(AOUv?G_vR! z7(%v6f&i-w9_IOARHDiAew{RcW<5Pmy_S2?BU${1is|-E+U*NYa5#0HbdAYdVi_P* zjUp_l{ua>Ki`o+!H_mHozEXl+@};ikI%!AUYZj zVTs;ZLnagTraPHS<>k7zT3CG!&cxls_NlZ&R~Hw&G21PG?1-_8*-10AP*7_!(}48P zEOh~WiMR^R0zKkEu&O%*L1Sqd)ETj-fbcD_s2koG&6{6Z($pRq9@cM}X<6_b;CMIf zm8DY+bd~<*1p{+y6iEikiO6Wxl2?Vaho@&#bB}uM^qOhp-Ynp{Dc%l{cc1=rkFnF{ z%Uaz;Gym8LNMnDJwiRO48&=>iggigqs(B#<5If(^u>y?*S|#Hcs$CCkrQ~0^-cM=U za^sgV!AozvT~_#?j?6OiM(mlSeI)gTCHifR8#T4%&fL<{At)&QS+h>3 z)#fI;Xc4=pL87W;vodDdtENP8UpGp~hDfa=uLD|Uisk*{464-`;{Za2#j*j;>>*sAb{S7PNQIyS^dMkE z&}nL5G`xUa;8GeAm)ylBuXQxYESh__&PYSr!B+dV;JsM|rRAr&tLM&Zu9*kFRucwt=S>6eV(0?f%pIPcG~c^9X{EN7<8jy3yQ@YlDfCoCeQ?11wTtSmYLzVJQ71MG(k52QrC0qtD>Z1=}^djBQ55puiv6(+U z!PjCp%8@)K!I^vxIuY9@X+eRCV=(DJy+k_t%p~S$H3-yTA)77#PmbDm_b#*C(b)E7 zHLK75I_%03#qp10&N$w1*ebFa3(&D`M?z}SS($=p+%B>bkXAH99IGRPxb{2x}9FHT<#t((mdu>BN^Zr zlF|c?f&i*-Z_iV4qHE%}R4AJ0yni+&o)pftNJ=WsE|q%u?hD(gLPy|SnwEPJ6rZ29r2_G{durLK<__IO?D~d+Z=QA z(8F{n3Jf&|t%Mhzfmij30N>V!0`oOKphQ_a!G&oaoDwp7aeF@|YJspQws#sh7<@-Z M(?FwM&Gyaz0nA8WC;$Ke literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-1.png b/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-1.png new file mode 100644 index 0000000000000000000000000000000000000000..238dc0318a657220fa85d46a97da18b081705901 GIT binary patch literal 39521 zcma&Oby$_#6E?i*?(R?oX;A^`MwCXnQ@XoL0ZB;_Y3W9~8w91hyStlrZO%Er@4ddi z-hEN~Vej>-$XW8d7q%ox-Gt+)SrVJ*p%cv>Npr-U?NYN4;WXxbiF7&1Dv3ITP ztyBD>?5DEpC-gkw^ry_U(fWlX&&cno3YnyehLlLjv_$Fklf)}e6OMx`&-Irg&G!?( zscE5)jQ9Rc9|v50HvEDgAEY6^A2F};=%O&9#GsGSS(N*JUp%k5=3eTE$5-_Hy6%!` z!lK>5hUd6^@;Hb&`McY-dc8p!wYSw*m}+$#sm zp9OPo(kP<|qUaXZf`UmSjbPw$u$`(dU;~66mms&NfqWK4*P=0HdqtChsKm~NC@d^I zxO0Xrj+4P4qDTD}tVE`zHk6R>*ABXXG}Gx{ST{^~8;{Rh`bCgJ0%yEPW_4Kg_&wQY zWIG*-&UI8@H-}ei*m}y*74UHcE#i6p8gams?xp%u=Pu|!j^gWU_v~}vQ{Wh!Mx2G zrz>*14g2824Ylyth0|Zo@cUuT2{SP=QX~7jE2_`ny+?EwJIkrq{aubO6-_M_J<_DC zpy0Q-sHaw>vU%p7;71FU@s+TZL575Y51uxHUtC;VsTyZ33u zNZE-C>+nXrTfu{!7#$e}#c#+oP^TnFHpihpDh!XPbUD-!U%MhXO=q5md|-Zzibd4l zD`ly!CRQ#2L0HJtG`IPeaOKZY^(?epd!IDJ1i3v&=ikr3>bffQ?%#jow!^LK>~Q_T zM$b#OGhWo$u%T=E^T+F#(+<2;2!X6YD=4U_{;hhxL#ASH-v*Py*KK3gZ7jaHy}4O< z@z6w5)8Ir5S?oCyd~wova5OGDHbNS@f^v9e6}e2;5WMDNF_(LV9D6FRQ0Ri4s~w~} zzy0aLpvnC7>`1i^qjknfK?9bF$?9U4vB)1PF+aWK4ke!W}>Ekb(b7FDvDw#nfu;0*STu4e6A3it(>o_0J zsxP1M*EOqLJ*GgPAqM$~S)n6Y0M|}NtSNl*x_gKA?&_3f!&0eQy5PQl=X}A|-W@NS=|pxWkgrGQ zr_FnpHYASd4XqMc!D?gDWgWQ*&yS>>$<8tH<%JcU!DJjnzmG|!H;;%0U}_2uCMq!f z*AKw;og<=#_;mr4daE3%mDzZ+?Q`XkA5|zDvzBO@b#C8}?IsCXvsNl8`%iM3i&-Q! z-QVf#_I{jx#_&ek=Z@`Lld;m-v5s7|Zd0}ncS2G-C+_S73LVuvqRaFRbBFlK<}M_*xlLww|JT6vHeU@6)#2T5os4l~^^vVUn3p zu*LRU?P|Ardw9Sq@iR(ub6D)3h5TX2vt0V?jZ(Aevq_J>3-D4d0|v-Xmaa7I_Wb6P z4;ewXIV+Vk9_*(x`EDC<1?x{ezIu~|y}!oT$$Pb10*y@_FKb@S4e!2U3I(CY5CRke37 z(l>b}>^*(WpMTU*{;0;sg}FT(R}?x-zOv#gEjH(GqWIh>Y6)Y!tVH(0?d+YV{I_$M z^(A9w@)<-So^w6JvGYqxG-Xko5Zu4p_g$VF8_79R zRHV#sVBozn!<=(!>`wa*!VUwr8Jw^cgt(M7i+Wgmeuo^sw>&JKrj?j@0;a@Dw(_Ph z_fOcy#D4pT;mx?YTNIN1ePg3#tI@%dYuYwHByGS}T7t7&7EVagkt{as2j7kHkC}2@ zi)=oBy98yK8cT9QR#L6AXA~Ce5VZBk0QYX~RHQP9N0cXN%a+luasUkEZAVR+m2bog z;@D`6pr5;%HTkf=-Lnq*W5dm(#@6ff&2@eZZ@(mu(Oy-Os;?85HjB&egWKZ1cw{SOZlvRRouqILKLfD>2X8 zJi!oGcWw0bI}1F{#-yU>F=Bj0h*wtZmxMQGlogw;`M$4k+OxTv2ku2j%JZIcX>np= z$w_t1KcoaS=JVK2*E-{C*G zb`+OVM`-Hnfy!>V?lMA$CFguvPit60Qx8t>xNdtqSNO&L2)qHdN8-5`S%*$y7{41N zDm<1csNL*sd|%hnoKux`WJ`dW?ik0Ii6t&a*YtpUvA~w@`Z|-dTZlM%dBFly&12If zh?z5HEwx1)IC3BFKj-Xak2#USK6hBBHSU!#GS!5zkp;QD?0z%wql(xLPcYY8Fv}Va z;msCtfN;uiKU@?CQGolO$|OGZsc|pL4u2ObmgWQVs=Hd25%#wu$8Su(mXz-hzh#Pk zVbi0_F2`&3j&e~8F9cW*tcta4#2iDKOvdZdbndPZk7to$#&Gd#zYa^UAGO~t$rM;(EzL!*WTwbY7 z5*JV1`Nrr@fOszUo1~e#{piQ4(EZHfF{V3>a;Jn_nUmp)KWO%Un!cSHh1^$A)9hNRBwY-h=y7e=OYbC$XUT0=giE8yu&3{2ao;y1qVH zi9ZCzu)Lbp+V!69yY|u`HsGsO!01g_&+XQIUSD6m-K3+ z{Uc5~q88Bt&QY@FYoV5n6lNEpYT@5K0?#wgD%;sj&)!+~mb~Nj!BZ(hgpicaqKQ&T zcQtHqEfq#r!xg;1YG=<)Mz6hK=L2FNuzI5zcaT~tbyvSVMuQljSZ+J~SElIfoo;-= zc7RD@6+wj@(wLck|Lk_fuFhEBP<+-+LiLQix--)3(LSPMk^_G>ul19^JG)d-^ralCA;{7Vq z8y<1h!(l&INu}=NkTsz*l$Q?5ck8EhQ!Q_IpNOTBsWq!!@>6}Ge`bWfx5sV6hVFF; zC+)gN&(@n;$Go@GTy6Y^NZ0eI6Z&KAMpf3CbG`YLHYMqTug-BVU-n?Qk_q|*deOf8 z7e8w|XP6;%6KT}$LQCoR1w0R;Z~rGX7g^!RnF~REyD@&fBRej=1D1s;4OiBBxP!vI z&u&~Q;h5L3?4l#zV=g~D69`ETZSCDmmnwVfeG##J)5^h_HuHllUxK`mY$|yMVm6i; z)3s28B-)&~mr-vV=bnZ2bpD2eeFL$h`%Q$#wzvj}uO;Yp_EQw!juuI0@g~~aVTX^t z^VH>E%#>=-rrc*UHd`Zlm^s{tF!$7H{#~GyF1{}v2vCCe6*_m^uFqL zO?ucebt}mZbEDMldag&k0^3DPCApgQ_WDE@PM+6(tw}FBSMcC7QXzME} zAu;9+2W(vQNU4RIp|vL|E?2cnwNEg1D*~G7q zywBnT?}^S)V5j-2JimbJ%$mf-RNrN6dVkv?o(l~9`tzHCsn1mfTeF$(CyKwF%<^HK zT;0rO`LU(cYaEcm@enO2Bs_7gMZeHO^eevEb|09aPv^^nf_B=B&k6}@nJIpmhMr0V zzOq#}CFct+c<}F{jV_v1)$=6N#wUg6v+zIMyKf%SRW|vhjeS$TBxstVk5zGXAu^g> z(31f>dsOUIS8eEkOlOgEBW@K-?xP>7ir9ndzXn00$k_9tXNK|i4hy?#+4UVB~c zz?^&J;bue7B2k$37|9Ba<}u+jH}BW2Xc2^Kzby60&2eDUbrOwxjRCXGfpBv=w&m<4 zs*UJh72l#!v5TXyIOt5Ie2>&3DTWR1)WWN4(t6_2KaIokv%~00ccuO`5I%;)GHudr|vggfHBXLIti!-W*koo^B!7@97gcGC z;X^80MJSQB3iR-r9rvw@FprW`+d%FB8Pk!r=V9e4>oMKW=__yoe0F3h7DII*VkUI_MA?`$Q)EQBVV)%@Rl! zN4a32R-ti4l8tE5I*n-WRX3rCddN)RwvkcymC=o!f+$v5eqYW!1Q}N1JgjS>#3CFy z6ImF0S4V8LhFtOvA08%yftH(_n1+T1WPZY-ge-cmNI~`q->5Ti7YC%WiECdx>OZCX zqvQMNi7Z@8ZZ*!E3U<_QiL~tou*@bc8h!^#lf)4NANXe6o3AxaOZlCwRYZcL^n`}$-*9Owhuyd_(K1d=FIQg<7zjM&vsKRj; z{fnodC$DiSrVuEbBPuT+HGNJ0C4=yvvi zb3)Kj-_~ZypsV&!5Y6PO>!A^JYPUQ8y{&@!j- zOpZnhS8Pw(lam@KAMC7=%nti`cz<(x1pzWBZ3E2M%sy;Gt5FqJT!D;)0~wm-0nWpn ze1&Ikk}cvSBw`54|A5D9mXu|l?u!gg5hH9UQ3ED*YHG-{W@E*aHp1^WorDNo9dtlD zq7gHj8>Rb=7WRK9^CQQ#zpNlvZG`CYCBY1bwdQ9d-r0IC@{jk+c-F5hy|MolhnxZ$ zQotY~4nz}gFfk1;f|38Xqy#Q)VHlwjY0I!1*dh*jo#*KlBL2)U*rc!C3>XPv`<3e9 z&Wev3=(CtNKUj7|MT=xtPseU5Ld`;=!X^KZ>Urd6zP?Sovq+Amv1 z>Yu5RWqo$YGU)~x;SknTzOmr4#!4}~Qda;s7-qa#!+r`u9-dU>v86q@xZ7$`(ST?qev5Qs2ktR%1)Til=i6b^3JMDtQ(G z8&JPEaAY$y_vcJM&W|>x2%)rXx*|e=K!v3F!A#<-l!$hDabZ3B!|cIZrzh>>aw%)F zet~D@S9MB4>vvtJrAdY_HJZsr!YIb#_L*H(@%uyAU| z@rQi>o^Q{@`D^yM@Bg(FQT}ZTgwNkKU@ATDe+U(z16}vWYHU~jc=rp1s`(9;5@PrA zUe2=>1H1H*k8H9epGLYJqRuQxv(Y0u&m&bwxo+}bW)Xg4sjMe8h=Wn0yIJ5e^DjaN z3zh$F)+nt}1~0`Ff5}T0UXU2K)<01F%9Vt&?|0X(dSqH|X`1i|3isc_;#W@MpAcM) zj>UfFWL@(zVH98jxrFAZ2<^QZnnQ9@)-m%y7xPLu-AGjGc@vEZ;jVb#U48hfeb6xW z8GTVCG4NR9G@P|0cH3!IM((}1fu&@<>My~`nsoj*vsYJyP9A(5ZW->hgYxuIu!Fg4 z)|`o@w)2+t_PX3QoPVAv@yC<8R;+y^p22YmC;ejhCcIvEBEc|ONfxzYP z@Q?iX#F7b%>C9j3dqe61+Sy#OUe+5Mnvlto9Q!c4AKeM0^~~C1N-V~AWIGoUQ&lo+ z7kg^5oRr>+lxMDS6$T-7atvor_*usGFMg}umM!p77LXY%TqI17@^`yEq0KC{|I73A zd~0HG3Vu;52ex)zVbL~hix0tHfC@IZqV1f#<(lVwhUQ04Z_BsmRd|76souF492NzG zM&f2Hbrtcdoa&`iy(aRdYd>>>2gbvBJkExT9 znD<7CZ@yyu^9*m_#}pC#`YkblaDgx!&_NRGm^( z{;9hNwjd;;=fHgUQnfd2*s)p0z{uQ^Z)}sllSgg{(OZuhSk&8&6c9wbSs})w#PKU! z@NrOQyV#wL$Rv^6P82z*{J7yPoq7dd=NOtNaMj-{dh91Uc{F7*gD@*_$9{ayTgtXZ zmYTg6SqBRVo!2Pdzt~cDgA7u)BG#I4CLZo3)E}KTTm=V*pZ=MZmZdb0O~Y#-z{fgIzRbxd8d9QM9n9QLe+m>0xydRZ}L6%=f~ zUYm&F=dI54(Beav0ELH4cIR9E?T<$&jq-|$urYb$h?zKZE6ZgcH_q#<4HDoddxtff zSY05SK6^qx_`J2e4vIZ1RV^!3%_%f($#(+J8BN_a^0f4KUQ*;gRu;j5gRmDQCz{clOnF7!_{k;*IdW zIGNoBYu}xMt;c$;o7O+DJ>U{Wf+go41kLhkY5Ta`G!8r2fK^3-4U+18T&C1lrHB-x z!d%8AX=Q`#ayFpNe{l{!X33%7JuU;CGepSRnb5$XKJ$GwF{GtMm@DJwPxz~xV{9Cf zPrw9jZsGf=j7cadBOc!GhCd1Nu1YG_nswFNZr^^@?Irj8iSfd8gMM02}=P$nl>@6|eYg|Il=ZVV(O z|3S_7(}~H<-<&)C;S?8!wVy?z5o_zk(iA(<=Uko2a}LU>T7Nyx|Cj+82G2OKb)Qgm zFQiY8)`zt>XH-GhA68y{Afn@)>Y(*eNKJ-^T!+qBH=DKy zQ&HuPD%+LoQ`YW)mSZm6&I-woH2h3hB`jV@1@Vm`Kuh&ZV!()rU$`?vW?+tY6Fn=> zjDhbNRe5D|%eAK2aD0x+SFQI#I@_M_rX$n*TJz#3_0y-LTa0zl5_Ssd+TIV1UM23) zYf?aX<-a0m1=17x2GG!0sh?Hx0tr6% z`pNK!;@6aT^NG4_#{wp>TP@I1x_=N6z47WMd$sBcR{d_)6kXWWwPyO=o~v*d z(XCTht$vSgvIb{dC|Np7+o)OXl)7{G^`0hY9(@y?xcKGC?VI`q(w6(0mj8$es<$C88m-~*rNA}GXyxfb|n}2Za2?)+)XrKeftj+Si*=; zrYoxNgl;n5n;L4?t~#CN58qRr=LtrU1oK8z5r>%6tx!e6bX zVh7%Ewu}exw3!)WDhfqj&le`+;#y5RdS0xI7JPnP>vm~n?#8G}U3q5O^S51}Bd-2$ zLS|{Ht(b&zLe6=9!MUVnQnBK~1CM3k^;IcOrtPbhU{yb5SFu3tl%R0pPrHSg?1{Zz zI&9izm}kSlP0~w6sFuy`UG!c%hu7l5AtEwmcux9cx-Kzdv7G?&BNgulR zwkFWY;emPcR#~?}XH@>dpQBr^h;zF700J&Ue!%ht3L*FDNs0iNv|WQd_aTX^l$-@-7s_wfr5ZWQ?mC|^lX+;k zc>Am=!C<`mDW1i72;|!+v_@Hy>)~H1nzvz zJ%VvTKptn86u{S7AYvXfVyrbhq2+kDx1H`7` z8>kVPog5TlQm`SlxJy=UuwtKH1|u*0M2Fwno+lCBLPdofu-qa+L7xZO0}Ld5p6=CK z`cZTHu_~PZdI5rsaYP#H^%*YUt>Vj3~r*;3-9p#wJ>y{H&oyK0`dgicNsT(##%8;5il(# zp6dVRrE(p!SE7QoG~Qy-jjcaVX-NuNFqw!e{h9j~0~^nf*Pvg}WO?;yWpkJX5pO>^ z3=H|BZkan?SzFFXTidVjxo*U}_wRSNXM=|fzox_miQBMTd~=?0-rK8-9H%e+@+CsT zwPp`#B;l<5#Z{&bth}Z@WRgO6cJHG2wAq>Z{Gn8?aiH@>Fo-e?^=jrWWkNfCM~0&n zl*EFF9|u<9O6Pv%ICca7>;aY<8?Ta(wbEq3nK-(}h3^wbr|0v+Shtr8y5E(AiuZcC zsA&*^OPyNb5cISmfZT*~`ra%s+i)YUXiT%FVuev{C>`zVOuEIv_4R` zoLjmGE20?)7y?(mX8DZ~@@6vs0uHA$vK)+WT6W5*4GJ?3%q|=95#*7=GU)(G+FP!U zG)>fhPZxm4K}Nw<&@Y-?Lrg*L`QnES!OF;cp<82gjI-!0!11urcS^7SZUS?NB zdrI=mn6-E0ANSt9x9(3QB0GW9%1%yLE;sL7*u97E7@j{DZvBL|jpZpL82#GLWzBI& zvv02s!Hge7r*p2#%YsZsD2cwLFt%2hT0gIUvcYy%dlxxjL#)ogbkfa0dgS z2gxQ!c`iov6jJUv#mVoFy8^0p$Km8JF$Y-G(0~07RDQp3So25HgdYI{mCvqs z=Iot`o5PFVxdUZ)4Mu0nxj-r`V*t-+`B{|r*5ng-KHzoZxpc2AUbtx# znYl*fwn4ITBOuhWkjt){u3GW#%y4n$V6zcGJrVzzf_`Ag$ocW)~1UdQZB$}MAe`Sm!B zTx=*j&Q}Fu&yl~|Wu0a9O(p&i7M}@%wCgq@;84C!=A`y5AnaXzS~;o*iPytSLIx#P z9Bb2-S)N+$>Y2udB#CE%fN{R9YO1;72v2PoujGst12Z*Z$4 zugJRQ_q|@$@B%g`Lv&|8xX=+nc^~dWhqhPIwVUy$TCjh=K&W{>h`p7!@)sJ)sUBjy zuxD|%!$f7(Y8g3MHyjFe_#t8DNKRt`@-2W83_w5|tkU+VEnXMu;e={%m zLCqG1s;T;&Hd6OjsYvqcsSSElj>QRkr2K=-E3gwrW0<-(cFgKa`M^MYx05j-8M9|B zfI)dd{Kn+R^mG=yaYz}((Jo%(a&gFo+n-QFexC1%FablGoVpRQADLiEnc6`tsKeL? ziSl9Z3{&aKufN;3$viG9J5l9ch)+8f=XoWUu3NdLD)$2=#nO~_IJd8vBH<2|8w;fz zaue+MOWMFXcef{ZH;B?eUQ&J2NPkyC5ezJR$=Nm;ngaoNqi4GS|Fp}wBcZ;@cZk>@ zT%8^hG=7+fAms*ry730%Fu!u@X#Uk&Mrb)Jl9JB{Dmd6lS=7e8t~C}PDnn@WM#>i0 z9c3Z1ou`B%`G^EvofQrYi6f=Q+jMY$G+e27cEUE7Nzbwm%GKJ*>U?Y<+* zZlMwvd{;gvIOTaXG{XJ_x;%K2dgsN2HfnMKOF>UZ?H_EvmM1@<{$Q;f^-#aJSN}$- zoe?m^Q{i0n9pM?1G(jbqa_lYzpmE0KCRUcZAGVJ4@*R~(9X8+>=I9yVy7XWaDlPw- z)FNSKSuD0k@^6jYNU8(cE2~dc1}mQpBoxr3=MR1Ak@>1ZNh!1TJB_lAeGxfoDZm#2 zt*EVtBd(1jq!z*L^wJe@Hb3!GJYZnIJ)g08Y(v8YEk<{m_~OACfQTP$?v%ni=;F=mSD%{M#5GP$8*ZoX zE;S9XQjO9I728scaXI?G%PS0QAaZ8wCHvM?NmQT`;AnJbAC|vE0fb`|*}fb9swONb zI%tr>$9v#S$g}v}w>)yS{AjE3EnQuJ-CPU>{AogBB8mcj`ozu{pycq&MeCxUQ z{h_PdN{B3R<0i}O1rde&>7fiZG9-%t7qyq}_CANim;i%aD=zXAVrWfy9E<{uK@no0 zT~>vNh}kDg4@;)V7C#vXJTfvGq1ykCunYo(>U$Jei*3yOk*&0ci{I3zZnp@0*hKJv zDM=$FWER1PG@1(OD9`~G5%!q-Da4d0Te3TtT8wyS9yZrl(*;F5J3oM}-WWbRA9ZSY zGl@wT(84JH7cG2f2NmHK3U)cODAnkLzBJh^q3`O*1_GlvZ-6nsV}3bXI7XqM6KMyfB{er)VgF8dX!C}DrKR=jCC&wp?_vWh%nYe zCmbAZv8R790Gd{dUu795I1cK{by*dBjo=O1BvZFmG*Vj=$R7erG9^&>Er=WT~&G;+4e=89f#s0$Gu95AKf1khHM+}B} zB}}ae_s@{uS>^mv&tDGBG-duX3jVi-EyVmqe!qX7{uPrcOXgum|M%@S4fOxkLP(CP z-sko#M*dTSxXOLrH8NqceqG-Czoov_gS_(-4TLDbi}=F_!iNlkzT3xPzPdEj63Js* z($~00I$Q@UBYyd-@{Q3L8Da$CYt9yWBKlbz_T68OcYkohgn^wqqCb{Pa;5AqdV&$L zVEZ1+0k4mh%3C>wP+vtjjeMYK|6nE@s32yF-Thc4$;fU$x);hKz&2g<(|^bG6hFyW z^B0w-Qf^*eel^%fSp?C|4x-Q%u70h4p&h`_+*GIt6o}r#k#v{46%EtF@s7zTR+$4E zTI9)SS!FGDICBX&wfog8^i|3qJ@JU@wHt@!1sY-EQ#JK;s3>zoETX7OCoPrxe}sGw z%D>jKth(ls^8hBDvy1caBSA!kZ}f|7hD*8!Mv*SqAO1n+m(Q_nYS z?Mn&&Lns4qF8|BsYUY;%Z}xyEEWifTfT93Fup=_4{AeZJ5(+SrQ*DF+PW~ovg0eeR zJC|eDS2|_~U3G@gx|uEU&|H`komA5n%J-yXC>3b9`ppi?%{kQ#ljc}mDQciWc|{9^ z_j2!*1Jc1@t^ZM+43hV+poJAM+aOWgB*n9+rtlQ@EsA*Du?W%A9rgk? zD6yWeXg2}9kp55!mn^&bZxsM=UrT_9gOX3#{5)s?VZLTPXf=Cv$#sg1v1ug$&^ShhR$J(EBuTs8tq~2@FF-0^7ta~*9nJc8x*Clushy77zm^dP zd>alWWpR}~qp*pm2ph0Ey|Hqxqv>InD3A)9MfSIW$b43J_JWoJ^+nknl+P-z7VWKe zUE3pYwQe=|CcS1oqUgW53Ks-@!wu#4hyr)*@FEXIcF)xXU?SKOVU%b9v#;4Sefe6w zkY4o`wiGSj;g^r3V}Z)sf!=n&$^h0o!+HdeoWNoZ#_A~EoW2BXF<>cBO=3_0D~Urw zP~=TXLJ$tP4sgS5X9nh)#j)~6Kvi}>y0h=F36a63!9g7p300NdN=4+e2=6q}%#((96U1qr`D?2oy_3gz@C&v|o# z(!;3lsFDUC-#!xQ>Atj$>eJ(0IV^#s6$?Vp$zJpp&sa`;V|rmb7!Fy)|M9%2sZyH@ z@cma;IlBU(P@=)LX0Bns_p!p8`zHT+*U8mp8f~Dv3({ECIiw#3K@SZ-(uBPA4(o5O z0}r4niCabk1{!=m9xxy`KN z36R9USY2P*=1^gE)BZcL*o1OPcSnuN>bj8ObbM(C((_u?le%|1f3`exR5<0Pt1N7) z?-hoIK!cGTSh^AVJ0<(0h6k#xdhPz9K#Dh)0QM;WmWu) zNOf#hJ*j`!XUUOXQSmdsk~O=_n7h~q&=R1FA!vwr+5WyJMOFU+>*i3>I%1^GV|lV| z>sxo5KN>QYORBZkZ-^ttv7-#sP0=pc6JcN9I&wbE^=9#VH_-<2^@59pEWk#Cdyd6t zmYna3fpoGGEi(g}&GPk9Gw%bZ0%Zy(YtElUUcE??o-A|1gR;h~f`G@(yQp*u59!Q{ zp+5pvYCa8;K*g0hQjknVhIUu$?n@+CmzlGZrVgUbR9ohc_&x*0v!m0Mm+VXPzjfy5 zw^&)S>diqQF|VF@*n4mHMksvc8t#1VqxK8p@XgWMm(D&%Z-8kpD(euuvq{sYn+ z;J-)96%oHEte;hhkCMS!I{kQTA$V@*uGYXYL^LNN>fhmxkyQ2&!WIciS``(9jI~-(6F?E1;!9s16bwCUVndTjlTb_y9q|UHRep zMdjX9tv1D1hwhI_W2|xS-j9Nfez@dOFdK150tSbc4Nx8ua%Gh$ZPNDgw^`FzSXj!E z4k{4_RvLZoW_E6#@@KsUIt^>M!$b!;Pse1$rTqjEJE`dCerfM!TEtE&s6T;>uegj( z>A6x?QV|!h`gA~{PQT^`l^j4eP{QFFu>X^%$xmo+b?sOssMz%UF90bfxyoMdRWBGx zMeCKR=~ZeB6(n5HukPc2D+JvGO>QdiuQj2S%d?R)*UKZH@q98XAa_vEY9WQ21I&q& zEm>+5jA5xSLuNl$-{S$IN=6@RNBu^z zZWs2jZYEy^1XQ)NC3@M5z;S0vo2g|%7|;d5qhboRSMxT|uF;g9f=5jHR3w@%Rt4gV zE})x)59QRcVzFHP_fkvsVA30i9`W3F2tbWexbVWhvKzB8e>Wn72T{=oX;5*$NGk)d zsF3?Sug-R8xCiq1YFJGvDU_#D;E2Sp`Ug1=xioOV#Maif9nsIXNPIAjNWrqI?Zb0X zAt%0`E@9NC0HF~xr)3FuvqH~gh~Xcee?RLX2roqz&c%oSfa;DMjfsfNj!cVQ?o0U$ zZCdriw13OzZQT4p6rorJqyiX*l338eA{q@z)Tc(khJkg=*n8tkBi!)t2tL0@9ALx3 z@F16ioR6mEoG}1dxT+E}B`ScX$H3{mo+y&PFAFg`8X*qh?4r~^FjiZ`JZ#G{mCNTQTHyqIRS{H;2CFf9b;6U*^XnKu4oLm$93+17I`{I)}=MmiNOPdD|)wy3uqkqO}| z22pCjNvll+p`4Ky|Md`U_cGJA1^8KL27wN*vn;-6u&}m6`J%1j^LYRE53Pn@GY}0T zz}4vm68jGdaKQWLcIV-u^|C;WP^u(fsr}Qq2wIQaI7WwrK}*l7RxZ3_u?cL4#9!in zR(+KM5yH-Y7?+)B!Xfu>>2g*1XF)hu-=3-p(#w;LPknObp#DYoFT&qCsiMOsC;t2o z!vC$w-N2u6a|{bflS6`gcKSt3ESNHftyk^Bf`nt>JEZ5EgOcVyJ$YajPAuV7-9qU5 zq+eVls>K5pI$B2vJ1SAS;!zUPB`x3}Fh^G5|Fj;0wye7DsuXx55;^p+wk<`bY-`>i zO3TQ>zIP|5@KByYRe|2lZg=57Mt{Eb{ z|DQaUT0ouF_OKURO zKzfH|XCIfOsuNaR+1i8%;=gH^Ov>URth^%4N~@L6a={P#+t=Bj_Tc<39@|rae7!gz z>c!W(i4dcdf(i`OC#qi5Cn=9v1TZ`~2sQGUPy3i5t>p;ufA4U5_de~odM5FI7rbOy z{A};*w^M}vchh90_h|(x!v8ZmzM6Xa!7^Y3|FxR^-f?i_K4$CXcEUL?@=^8)A`^RB zfhOE$oZf^5EAtGGkojAr_QMqxM5tsU)27+m^>ipPI5hOc$^KD+VhIfw^jav%vPg|O zSPJ+wUuYe9C>(i`uXV8DXKp_CcFf^DTP!GPZfzEv3oI>VXVxx8*|{rVLK!ob8NI$VFS z+(i>$xAz*Z)Nu>064W_-ADj;ebK(~a36e~JUgou)?fucJUk4U)S%ty zPYzh?i-&n>D z4=#yWcc$V-6Ue;liW9yvLUHr`H527`4g@cE-SD#NNMREb2~jH^sC%Z(KpfG#fdBsI z89pK5^68dmp=LE99Fk7t`QFUR>hG9uyc_CawO-6RJ}VfWWrj$EjSbi~jg9aRcLxHV zXJe{w-4DFPBqdjZsJwkU4O+V}$PTYIW=ap&5{7CWJ{D@{D0?gQ|sNF50rUMaqwNO3Jz843jWN=5iQp^I#bo9*_v}H-Ha389Nn^K_C8bg zEOmdq-*_OdRD-*Jp{KD+A58MQ#<^vy8pErc8&g>yQNw) zCFF4TM=deG`zvtR^5|qh@X6Ds@a;iZlCG}Yh*}O9<0TL9Zf^7n`o%)V#t5uB%;M70 z=n@g+AY1zBR#>z!wc9cuE)$^fVPd) zJMXo@#n2mGvQ!IU!_Ru2{LRhHZE;!1TI@=)7AesQ!G?#KSg_>>8vG1SuY%@yd;%h2 zeDTwRg=Uo*{|k}F*(;=(mQo-3Aw4s^4kJ;!yT6(IHQGwjv8JeZDM#sQF z432$5e9?$lsSj4AwA_qc003~!Gd4EncHYI>oh*a15V#adPKmN5$jHn*S`~ZMltE0F|shp6PZEY=HfK%mC848JHt zGj9Y?NRYJha$E!i1nU!g92~!%9)|ig80d-7oIc*Augwn>NW+-kvJqIAsrnB zW!~+Gg<6%Uy8CmXHceMu-I}5QM2Mx=m+i}%5@LF7b9kj56Rg0nRvzw4h>lO>mcSQ5Dn9LbS0yx51#|3oG>;v2@VPb84asDjSO*VMD8Ix010dP_Uh#Fbi^mq zX@@iTUAmmHRI9I0u&}z%CUhg6cE)Mx=twpOQoD;E zZjlH~US3}uL=IG0wgQt#D=o#Aj395lzq>i=rt(?z*76?OM<*V>6COARY$b&t6_9eD{ET^5V4r#aL!QRV~7U>oGSamHW%U zKYygvqn|=g-V~`kefDge=?HCOV4UkgOw1AGi}l?2f;#v_0`v0Wk&$%3iBIf+c=yf z{*lu)+zgnQma)+v&9pLl`_B|VKCd+)e|Sku<4z$G;D|gF5@ie{{tWHfF$@C1Ph{qH zzo)fF?Nu_Y{RN6hSbVLCn3DvU&A~gKKh7 zr-9#7sV3RFe&@aUPule^+T~j}{>~ICCHF0CJ1ZrQWFih~2^q@?wGB0kXKWi%-uqKciohx9RzR;-}&Sp30*3mtQqX@BX!uXT?DXTi&VgeFff*~ z@gR0qhj)Co`L(N4;9{JXc1a5=2qiI1PcIp{xxH`U*9Ew+#5+3$dg6Ru1qp?)vUGNK zx_WGJ{NT15rtiBkx`^N9#oP1H% z)+WNN(@-;YkSTD0nGf$5aN^TRm3sSmrex3Z!Yv8;NudEUCQ)EIGcd>8um~1o-H!pm z42!#R{JzdsGt1SPl6G$VHemvem+aG3R-v6G4O$1Dbf>!^fhqhujX$!jcfR6wRAaO) zGUfZkXu$ujxp{bc%U^)IB+PTGu830bG!rbx?o#@BaqaAvc*MobQ$_Ng>SZ-yg!({S z95WNM^1|*G)j2hz!Kt!GT^>M<2L`FEk32ASP z4mPs{y>;`RVppe&GV>_;?3ris0!+cksq0ETwI%=Z+^_i9ePhjP>&`*__7{$mwzs!^ zY?oIFy1VmCz?A%?F6Kki+dmtw8%7os=}d2xG+Z-EuRW`G1jZ+%opSC0(c?@y>MbbA zPi10JsCPb4%qh~j^Xop#eSiI~j*Qc~Bgv+zNOqypg9!SLyZ)aZ2bDYC8|Gxt8+|(- z6rF7L5$p=DA2GDh(5_Awc}`|k%ROw(YegC{XA}u$VBD9GSyMB)Rt145)k?8Ybz3dH zQ?PqsB5+K2|3`S1rJ2T1g~P*4_fD>Mi;oymXf!EvbNrgoJbpijvYDD$*U& z4T69^6i`}3x};l5Py|G}OS-#Z_Qm&p|Cw2{W@fD!)_p$W-tYZ>&pl_K{fWK5spVIy z6AHqfQ~A%fDSv(PW%58NQSc@F!Ed;`OGEE~@S6B5q5-cU{Rp?!y_V!my@nP zd3GMssVDAq;+@gjqalub75x2cj@v)0_30Tl#iB549olMs-x7}23V%x+Xr_mt zYiwP+GfRgrOr=%+8R`U8 zIV~UoML%cQ$iawB5oGAQOWyp)yY(Xl{SQUXBrS6csH>`~D8c&?H;Lv~TFSRqaUw9y?cw+a6KqzNL)=5(kP_eDlrpUWmo;e@SB@ISF;RnILdk^~5}#-GG- z>4m_%#*IolFz{;_#Lkx6KOHU4SK3*apP#8eS=Z>`xqVx4Tq$ZUCN}o7&jRvo0{e5< zmi@nY+0@x<*d~|15$OEzBZ5;5mPFI9G#OPDmDGV^2wB%}+%VaiX^j_lVgKi!f1s@p z5nT%;YOi2%n89)%s`suL{~|4IJsbJw&z~VhEnS+j{6H8C?P}+n&$^Q%KYhB+9|^0A z!=Re%{rmU#6%^D~tkl%5d{#;dZ=>_Xho=g?Vayj-gbkiU$W3;+6FMot=kq-Ke9aisw>bT1|D{G zX95NF!X%yttKU8=rZ5S!Q%hWIK;=+WQTr{~JsW_!kI{N6$bM{Df6{ezy9dsx55s$ZIg2hiXr;B$9u z5Q%0|#hZ|F&+U1My0;|m2&Hr{cy+xOwG;1<0@#xDC8*Xz?38!u_Hn_w?zF-K!p3UV$eEZSxxfgPuf!LPEnf5uM+^ z$8R^0tsaRJ$fVGQi+S!3b!GwpN%7joF*P-8Oy1~)sqc7tixH*u#*O&HG1DQ_|`9P~8HcrlOp0{Ed=cBpIx`~#cVUueG-sxG5@nLUs(M;Vt)2WQX6^G4VjI~1M z0uy@0_y#quR|Cs`{80GmeRBJi&pwrYjVl3=#uQKu(48zcHKRs)2u!;1NmSCz7T2TX zC;hXB^NGWUOMku#FYK?hMo^xu@|qU@`TjUFZ@+>2#TDd1eLZYge9n&=5PmZ=SKQs* zr|PbDOifQmIaO8N9-C35Sk3(ETc|ZM7N@nVw~f9hEXgNflx~VKFtY@oB0LAw zWrsy#Q&ZD74u{x?sn(lZ+TKbvX9g63nR(XFzkK1b9dl0@?M@U5tQ{TH%Iuv^x))L8 z{#_0JgnY#vUfxzL??^ecz2*M zl}NH9?6La1?u7*(HEjHo;+n1;3Onvm5o>^htK>LLzohG3FhC z5xvp%37@d?PrXY;mi?io@3$b5&HXs=rSRQMt5MGEl`0&R$xuu4JXjaB*s^o_EozHk5vBdOuUyUL9@~ZK$Fk56-E~Yc(@gVix>wV+n*MPdgLO8Ds5CA07 zOc@^^SIxT>()1mtpn#L@_f?&1zJJFV2b+nSTU#--3Jsh4a|fqpW&+Zb2{91vm7wi1p(ZORL*D`!Ba5?5Pef8QuT=jzYIJmqd1q%!sLSTUwNvH@CIXv{swK z8O$Cnq%_C&-4?W;@^e=d9UJHI852bCH$K0AzewY#TU-Q}Zhd{z-c8>A;@m}iVZn%` zSJ$w@58)fMOZ07tcYvt7NsMs}Tt`PoTGocV2=~*iw)}!4G@`?oM^!a7dgDegf^9GI zHSxbK=f*rGN_$%P`Dwy|$DxVnrXM}0ex=I7NS{_=fkBPQj1y_=%H|XrQD4=@x(gQ3 zHR<^tGk4E*FItH$Ql-R09LY|8Z|inqge35jsVahLIXOSpT_2vG8x*xvH=Z}`BSAL>I{34{={{F@5 zdJ5#hqa}{W1`7;A>%Ux~qgxNFJo7%-->;wDx4D^O9>;tTvUhZ?-q>%#l&3@?9S1Xp zYVtyjpn0t`<*CN(Q9V&=v>R5<3;BDIK?)fG(rJ=F2qbk=_|{<~7Js+WV`$;!jp$_d zGKz^^OK*EcQlSWGh=Fazi9gy2SQVmxA4d4WtDJYyX}j99ghF58^H3uE+8Jf0W@pi0 z0sfiOxoFIAC5n?vubSPq*;4UfU|}K04MtVSxH3IG-QH27p2?BsZ8`YZc$k@GSAjp1 z0ORKO?`)O2enXXl4hc^;(tfRwlasR~7pA1pdmOCW9O%>h7UL#5gR@NJ~TU^btz85t0;`OH2Qs~6>@wd^?(DJ)#JdGKW-De&k zBvn*=WeKTF_o_-u)vX_PtY9MG0vov&e6n{Kyr#bT?5_6o<~%~+qv9a!H>ad%#XQKi zwzh_h5mk}lcpXv@eTvbAHi7 zW}vas`Yqq2q(m!AoRJk57i-sh2|3zbG!{ebF*Wq@@e%Yr7gb6Yed%*{tTP9F^q!RE zXJuitDkqaI(48O7MhmPsa6R7=@|PxN6Eq=g;+kK7Es4tes^Y?`U}us!?mG5p$x24;zUMTb4 zvQ?qtLj{FRg-5UY%OCh2298^4>Z>uq8eij5SoG{@GXAnEA)_FdeVJr~##}{z_C-lxxN4m8p$r zQdXaU@78jIeu!G}9jaW(0@v=bW+I88pXu_`tE>3F7o4VcX`!Ja5Fw(#_p;?~WJC`; zJY_Q7{@d}LTb!K!&{0r2?dwZY2}ZU>5{Jo*hcE11U6EQpZxSO)hS;Ix;KWQt?b&rrg7Mp<3B#G zHlFD9A)x5l5wbOA;0_3&@?FFD6wqmPbZwK_-i7fv!i z$ALW(PQRqeZoIm?*mitj##}-|g6!(m@vX$$)fF1*>I@PR^tZGM$TouaRtD2ySCv#u zg;td)=H}+KBChz;)BL{NKfAjrq9uIKy^{PCjj665A03&@|9r3ML}+!uu)i`$5&gwn?JdnE&IJP!de@F0KU$L+ zQlDXK9OXN@vx}*Ix^=}f))Fh=EHI#G;e?M?!T}YTV4sVcD<$#8&hclS&b#k)3JIX~ zd?PHgQldfqx>DHL^1j5pSj47ceEPGbBBIi1LCJcu{3`6Kf<80oQP;!dvGbg;S>WF z8yn|Ml2FpoM}@aSA|mj}_QrA*my*id8U)G=4-z8cI2%Vt^}Mpwp)Jz>z8q|Q_KuEC z~Wfk@$i>9?IL5wSWbfg zPJ`3d)ay6UmCVcnH(g{ujapmc&ZEwL71pn2fmg%5 zWi@qmbSev;TNAw=|1K)cnR?T;cw96uB^VruH}ygUy5dM_&2 zT@Zf7W^KCT7gw)dg;Z0}ZJicj49}wEeTEM^C_$NSByt-_w{vF`v!7ECM?MR{tg60RKuUM=Jz3cx?bx|rDtb~=NpC0BVV<|1 zz;1>XU;bQ%r>;bL^&YzMUE-hJ4X7Jk6Q+7Pn0`J!M8=Sn&1{ZF8rhV-mv;g|ir~Qm zD~HpTm%>iu$dwBYqv`%i!9;N3Im690KBFg~r;M0rK!ighS zoMRL{MW`$;WTevoOA{JK$BemX5yf#@i;DH|c@^k?r#Ogv`!;MrO-JV?yeYJJEgCwH z%zkVG@^n+GRN(aVdX)Fc!OMf(xuV&SWtWDMvg6Oh_itpL(s0#p26XmIuh~#+mzLeh z;+8F~-@b~A@vJMXL|BfkO|u@kKqy$0zj*o>prLXz9{aAw3LUI93!8u*e0r^kGGR*?7M(ZR z>zY~Zye0qa84E;gkNw4$Yop~ap{%XKhO|LXO6u%Q{A<6)H*dh3m&^Nvn~6z!l}e5M zUAv$&w)e>%DScDWL}qR6LxDia47K6a?F5Bv^`^l#Eqvp3b+b_wVsT@{54(3}u3oj{ zk}9y0VOgyjbar>Qz2`MYfX5#IA(X~qM#=@ctcbTwwYLi&@xi_+nIi7}8io-Ak9+{9 z{`YU!W>|xe;Wak}^M5j9Z0ziHzyl>b>>wRXCv>^W)`M{mw^ zIyyW&yzI0#tHJ(G&}hqWV8#jc_WPgnqfX~P%jOXS7eXQzT}IdKgp4eAO$>ttwmV9M8?tgC_4 zjMpqLYckWaF!f1AJ6}oI4q9+fQ~}jPb@Z5rI6eX^6HV-Ram$Gp_8$9 zuRmh(fa#AEma}tiORK4vE!88oLV>i}k+8%7HQJ7oH6oe?+)no|H5A|WmtWnKA~GJB zQo`Q1@`#SR9qTmKm#a0KUvZ8bEbR|D3z`0H;)A{QalORB47F?|`Zw)q!obEOkb>+d zEGn4+(-{&K`Q4!B_@0(*P0}(&PJ>DaVl7qzJOYy5VJFtPTy=Ix;Y+&0<0Ef(I0pad zG5f~A!08dOpcojxm5|&k(f8X-;5Ww`JmnAMt(aWGm|xh zfQH5J0?3Pmg>gzc1tRD5F`e2jz##$~H18CGhf5}jN3)7^ldq_bz6P~$z`E+AxxM|4 z2S2(5-B5IjQgVPSlmD>wH`b@jDi*f7p|c?u4&P+1>G6x-sLl;C$%tGUx4PN%`lr_H zjP*YL-ApB`L7xz;8c~&v*G3<|Z7=VhyvM7abH;i0iA>VSCM5k4?t59(_p$+Rh=dxO zAB69s^Fm`C#oOpimw&? z?3AgD1<)`{sA5iP%%+RFyo5yIsZP40*y`EUFHsl}yJ*DO4dIW4S@nA_G!p@*CvD9} zi?hkM1m=^+fhfzbTa<#DqL}v{trji_8nxy9IDFzp;k@JgWE14}gFJG2LS6Uf^OIFj zQdf_}2(UmBtsdliD#+Gm@K@9=WB$+KHbU~B#cJ(;^mf;v|2%0TO$`4!?ymi(0{2Cg z9wrPQCI6N0KTdM(|7+v=|8z|5|LlhH{|V#&KOOGR?IZ|{ZND=fg72f?1L_~gATUu# zoLP{=oF8~1DvDz1;*F;=f+TWye1DWM)?@%?`|F;8w zPCD4>SrwCC?be-auDK;lFE5Ap(|ZT~Gcz;5UeNi}+#I=?>eu)X>|B&166%l0ofbL+ zd!9h;d*y$}_>$cpAQ>Ek1pL6Wwg%ylf-M*0p71pUNF)@zhTd0A(ir2nmU9K2=J63z zka^rc9Bkm;{m#n0*yFEVcg(D=rIntOgPYKBLfHL^I@q5CZS#1g@MYWcGF>ED`<#y& z!7ug(1ifbJGHS%@57ij3bD{(5Nx8cy34f)Gl(U|!zt(fXO9yY|ezMl^F)t6FB?bqi z8TV&>Z1^6|4C05zH^Obu3vRTwf^Z?-*ZxMkY8y>-tA%uNxP&!?&>PpTZcnSy(;Xb6 z(-{`Mo6$t#l0R=18lRuO0D`#^l7R`Yoo-4>9t3lUL?rBP^1!|$j3ae#e?~*Ve%I42 zjs^no{K4=@nfu0uZ`;=}6y#MO?llE_jQ)EM1hohvtgDN+_I@onv$3_eL69P*5<&-h zpuMA``4no^&wW1@ZwC?;nVq+g{e(sxOEcnDv)5(9uQm{~pw+7eDBC?*uS zSg}tSl;fkIpbQmFKjhG@M9>!;XQ{e;@9b>d@r@69)hy5O=6(_AQF*GlTk{FNQipyh z?ccxqe}CRGvFm*ObmhY2D0~h{18tn0Z5&#!=_2{q_m5cS-3&eHsusE!eKbXBuU%WY zeX@|!Z92UDbaQL#o}nS#`SE}ex8R*CBChLAtq~Mk>%VXKQMp?j@5&`T)YYY)IG?;| zjd+|nlR{tEh*X$bAI2JYCvU8jCP8cdz(AS67q}?=m+p`8Yc@hI1^oeE6^(o&;XeXI zyojCnx2S7)^78Vu55U-=Rie6qse<{Y|Ma3M2DZP9{&5c+Ui6dO|Ov; zl`6BmG}9YoQY@#Tag~tnltd=Q1NZC%3&5gryP3@E4h;wEQq zXNTagdsA}0E4;n4gMz?$`M|UeIf2B*>k)plZP7BEao}nCoccIZX|XSxR4$q>@Mrq_ zcy0&N^bwcepB|Wsyt+tv&Y^QkSYTLZS+YjG;**g3x2@uSnJ%%Q_i=~2%Qt+aTykJh zv-KxN`6C=kFeM>^6j+xf6J?!@yVQ#AuDj3m>m8|h&3{TtN^1Q~x=TSvr=VZsan)bU zBh11;Umqyo@a^p{a{aB1jjF4~w?My~s}qTF8}?;=BL8vd*YM z-uO;J{`SgP6|e0Chpeh9No{Q{F)^`UVf`_+P@5C?Lgd}N->&vc4Cg*T8^CH0Oh`zm z%m)aNu7PcK%9Z_p=e$Q62_U1d#KzbB^vOhYSZ}LOhe8 zKE92MOH0?1cSsmDO&WBq}PJs_vmXhlK!KXK-3GRW@kU#-kXkUC1>6Xf?Z3 zVKn0*1+cQyQ_&JlKn1YGG>$i;adH;ymCGM|l?473dWFP>kJ?UDz6ANBX=}eoF{TH7 zXDzjN;6?l^maT(uy$Xhy?+ou0Y|6*aN{NXsXK&dnO<(2InoukjFPas`g9sX z!Qpz1T~GF7^WCLU3J9h!*S?kK>w$a=E&N?)GE;oM=+WQ3dlyMV(%iNE8ZANhHIn8o z(gdikp$YjO>V?vS#>PMiD1?~aUFvQB`7B8Il$lfd`+>l*EM)YG<)oyOo%eD>fQ#&x6q42M2gQb zjh` z5MeK0wtjiq!TsVlJu$@rJ1k}E3eG$4@p}zDa0m$rwM*?8cRj>DvOfAc8!Zu~nw~5L z-opt{s_)uO$bvCsYyYAvKPFU`sj;M6Jc3RP)rvgoJwKj?h6XbJKkN2EBNE$v-8r3P zQ0?3}bK~LGR-4u4DsTF)Vl&p-{o@r%eoHdH4@ZHlQS@yIcIQ-Rn6gvv%~PbB8qS}- zgIooDAWtWdS)R~rsK_Lq$B6~PrcHU$oTwZU#xOA<{-%O=-WzjMB0JR5(t1^_$OM@Qrs#dR>gQ-DWnl)yAHKRfcOxCO2+h~uB*Vz>wwa7pGI7!coaMGpz^m|gy zh4*i@Z^(U=6~r%N?$qk)W81-qFzU4GYHG~DG$k%^hOS#@9V=T|!i^WnLT#>5L4m-#EdthkLd-;YOKn=2xe z%8|a9>>A@3EPot@XlZGu78kLxu&^A4s61)IbVE0TtZRV64qJ0=~Giv2p~~GENBEB%CRa@ib3^O2`wi3&$HaKB+}oT zd&I~|)Tg~2$5Mv~Y($(f7sQ`c*dh81yqbD?NPv$7!YD*K%}<{*^bw00@%=u9AU`F_ zkGJ82_PeYIT2yLheH0cl{3Ku)f5@}e+1}m{WJur~5|ffz8Pgyu*NvVNH9)vhgo2R) zESk7SB6ySjJ;t(6HLmU+<0ia(a);`VW0m0DA|9z!x%5V`p=^N=(mXlYFrfh5kWr|p zs6Ydt00Z&*AFr@=n%KgpBp#Db@4VNbK4-ivnE9Y^e*Yr%!*r^L7&zEa`n-!uy@=k= zMdxFw05x!Nx*)+#9r^nHbx5}sVY{n)hb$t15a4@pV)O_6G(Gb4!3r6c#WB~bDRk42S5Opw=V-_cvYZFS+HZH3xR3Eo5WDlk(%TtAS zuQeKiNx;LS>6*E&fk7l3fCs_BJAm$cM4mgk!BK#NO7DiD|I`mspQh&KVo>BoI8!d; zLzs0;ibT;>bHzKACs?!Jhe&RJc#%eOSazko`l+X{5C5hj3GoQZ;>y^^dv_mLS}INn z*^V8$>i9e?5)I|I(`OkD7pwI}!a(M=_`b~Xe+fe)fCxN%U<*bRjy|3@~OgX=$OWi_G;&!m(VEzd$ zXeHzonV)SNsmpXlpY4`(OXl_ujA8=T2b%%&>@P;39J1UA3Hr-!+OQE9M9#TncYayp z=(w*qZmMw?X4chPu`*C?XpM)+s?=aKOc?=M28`wpdq4L-;3~bjIm%D5Z2H1`zB>hK zaJXzQAhYIa;I}N(IFCKJx3)5%LIX|;V|e4KqXm`$Pw~sKBd~~JP_gevynXLS(AqDk zVc4H18t&3s>2oH`r!##2{v&C9Ykc4-!ct&@!P`q^_L}tP5EcJxocNpR zb#p!ia1zM7ufZt-uMbNRqXAn85!3{M^&;b89GGiSA?fjAG*Wh7Svbopncgb<^yGqBhKu24cjz$+ll zNh_(i3)j{z=!K4W9b2yVbLXo+8u-MSy*I>>0#eEBY`(Z2rbq0c4H#d*Y}x+oSGBii zr;znzF{zR5kha|@ayuj8|D+foiG}k^9#eD<;r;+|4-1118{bc!Rr!8~Vs1d_Z#0mO zQ4r{um`slC#JSzT`hbijm8SBwvy%Xr0nh)A`YthaY@x#!~}4wwOnvO&T|Ai(;9RMG*~0VXMyzklh>pd3d!GeD`Me1d_o zN3o(-lLsW{|1xI0vjk%XGEoISs%drDE^LXzlPK8mF7Rp(Vpt;jS3Wo=@lq}p4;@bEpeqg&gTb&&ro8FIke?%QHY7c5-(w^g8F?OfO%X0q8y^Tl zW(xwI?%eG13_GTD0cU~fS0g-#=k#vO)j|{{?a#_lcKT5)TcMU^}2b+Iw^oqmY5U z@hALT0mIgye^_}4U)nhRuNLI~;spwV^W39{eZ19(E1YO5BO}99nOLRQN>kGilZ%TB zq^fYShh=DuAPa+iDy`>vk>lJ6$W$i($&1>R&);-PmZnuX2Eetdkcyr=Z?k^-Y@6-2 zrvw)Yh~o*ZIBKvo3jEMaMHQK&_b^`k>}gH2TX1p{6sw?P?1d_1NLwzG>!0p1!Ae4? zYWF5)<6 z=d_3pT6$4V;VW0w#oZqh>M)4}rNLo$NR0BXR- z$CsVR5ap?Zdn9~IlhJ%SOhe6H8MB?h4wU~tF)=jPHv2P+ZP@JBr(RV|9N$v==kYSZ z+wE=6Mx-7Qe;e&9D0Oe%zrWel_DDe?4<|tPzOk`!(hCn%*gUxEwL|0Mwee{L9wq8M zr&?X!^8h27K+S1s>9{G4B_B0}hexzuZoz!o+}dxfnDpvhb-dhMIm#4>7ytYT0vQ1y zAu7T{2!&S|bv)6Z9dRX{gmmuR(64?Rv@u#l->x69h7cn_?fQd3eaMSRx zrOR&}Uyo}}^QXh>H3#dTybzRP&+tLcT+Y)SiT}c(m8G7ozBrt2UY8pvP(gqJKyib^ z@Ks9?dd;oRa`z%-8~ag#5u`efzj;pWj#+H({-@<@#xia z7=ppBw3MulBP20NBX@d!9+QHC!g=u*3ZSyr-=Dm`zq}7H%ozvV$N@dtyqJ8~ugiMH zS1f@0uDz>(%8(U+;FEUZ!;_PWDT^y-_1Mh{D|!#e5pW~OoZMW8m4VyfTT9E!`?*~6 z;@O^MWmOd{*sDMb**iOzo{V3%4uabxDG^?#lR}@=Zo&h;e{$#jp$^lVzE2iQO=o9k zJTJDNfJt!*3<8T_iVkc8HUJIbv9}z&xw#oz@Rv*`86U93YevVyVipvvRJDMYZNdHY z$~84EXGYj!xu)+ubdr9J$?)vUEjvG3(U4sE@>|&kqR3?&z(fE;W;$}9O!xW~9EubM z%cm?c4^G!{CS@)ckBA8`cHUX)O;N9bbH^4omq6A;AR)g#-LZ=H&ihBF=l^zc3em>! zSIh3p8SH*?r|~%-svjlxht6l>_E*a8nDi@m43;2>FAkZ!l!F;mu+c9eBQ;Y6{$dcr zFMuBK$<7E&OTBHRR~^l{hL1Zb!OF@Co;oC!X>3GM%YHj~*(=17EH_yaxXLbmR0NH0joyxFTPLGe*IHsfN+X;PSv1P7WpAsX@q zOdmfNdFXhpO`s#6Z-jr0oLpH#fA-e?$gm(kPLiIpdma_HkWM}L`riTl|0ImX`o~cv zA`LAE4eEo#&Hw5ei{fc#wk#jby|D6&vCS*aXhxN<_C0vK(e&>%Y)nL=E+0P?nqGeX7(9 z$tf?Szq~4vGO}JS!OA^qX*v7=<)oy0g0b~PlwufW^p10h|5nv|PH9$Iq-qg1+ zGe_|`l1M$icxHC^3`Ywo{lHiC;N0_i`Mp$sY=@GvL5g!U#H2+EkjwP{sV(Cx1814k zs>*~x5uJ6(l!w~rxb=F0E+4%9Q-=qFPgCkN^SmLxEZ z@C`hGCWC+BM|i;Z+mKEosTGI;k>6?z-2OdLrgsV&q*LGLG*MDvDfp*8Vwtu7_ii}* z|5q}a#SX(}I?XdLZ{5j()_>zC;)NdhzT(Z)Z1i0Tt&iy?WX$SOHaegR!k22z;4?A* zlUsg@PaC|IerEfzG*st@|64m-s!HshgR7mNTXWX@Q%|svxAflCzd;wY_mZVB+9dwbjCs>^ysHUxvUV=LnKcd(K@amoBBC z;F#WfR|7U-4xQQ|%TdTo%{0BdBI0g-)5K%Qpyp3Sf4e8>#?Ur+^Ep1V1e z`iXdywyr2Q7=bZFM!oMoFv69i8el4aORj$#f%vnqFgZ7J`V6w&nFCqy+9TX8M)($; zBTwp)pJmUP{4yBKfsO|p#GhD=Q_qg!lZP0)A*pqfm6$X> zJy4m#(M#vKv}&WQIL>5S;Z+I$4*=+H29n;4>$IrNT#V;Bt(?ROJ{%)21WTZtz_Q{D zK>T#5nCB|tk$$>n#9X0jZt>DeVQV!%*(YFY0Ze_3FE&%PFH2Rb!CPQG1^E#Y?qXr1 ze`$fj!H9!abF0DdB`X+M87<{RLD2rNAv8?2yqtB}*PG`DC$ROz>9rYCGbDE}OGtNp zzyV}LLn!@h`%)jfrhh`s_e9f66j&bzkZ+3(V+Skt#U2~!lr>mk5z>Cmb#OpJ6?lE# zI&;Sg5Dmf8?Fseg)F6Ip*9hQjZI$E|WIw%z+*#YpkC|^;{RTH=qw(|MR-N*Tb(bgud0XiOg>A0}`JNc`{Ucn6SevGuScK-W9uoVr0kNK^=wI)nF< z2c$w|amu$=#+x^bRh_bfw)y{}b|@p$BswhrZ2{FGCfWN@gDZQ$sQ80&nF>S$SbD%d zXZVu~D4CX)mYImX74Rk^JB+|^Nf1p{WOKv=0z_&-#RSjF6c>6odUA_oq0Kv41?9v(>y-|iGbxkc+@ zkJ;VH-d(Sah(1F(bcozkc>uR{OB~c9ZDvHa)G_+JNp};-i zz;?~^o1sqAYipB9xCpS6P+ch8|JtsajyxJre==z*3}9=-Eg%nDpqKCz0Q;a3M}xN3 ztChh*85oJ1j}3!>CtJWr%J^8Rff_uI+#)z}dTs$UOerPR}LEcCog;$t)< zGtk5K5g)#cMWm~TUsZOW&14rEnAaRpTv(a4ayx%ZTq%1mlB^<x%Gw5(a{kQB3DP{vel8C3c?Ra79O5rV21wE4HY^K$0L%@ zPwKr-!jIazlMU=fwZkJLNLPdf?|e}b!3MDh38I|JD1L!W0J>mA3|2FOMH2*lW!-lq z*TfogY`6ei&lhJZB}oH*Jv}`|&STy%k`W3-GM#vBqmUnfR8>tw7R({(*E%&x!FLjV z$83Puq@|^maKf?i{`kj_&dz(#CD5G<=m4JkW!J|VVizWX@v5w@4sU)Y_Lk1IfnJ*0 z)Ata`YJU7|wH4R8QHQabi#YE_iJwDx&hFR5F6rvoP^IY+Lq)kbjv`j=Zag7=EeD@v z^)B_6!c?HZ4n+W(Cs9vXpscbovP5SXACg_9)jGlH!{+WTe5!iszsXm^c^srm`^#Z! z7Q}FZPWs|S9C*Tr<)WyA!Bi*UUJLV6-}+JA5vrt#38TJ&K1~_of#jecW-r2JG_@X4 zcXJs}4OS@J?<~)ib$NOTfg#i2c+fL67dpS(F zu9mf)9#VTjW;8&zuq8pmpTJD>SqgDfA3P5@VyjiAS~ir&hmF^`nj91uXfDaW3bWj8 z5?8FESbg^{&Mmv=;3eq9{YST;GN!unV^PtsXEm^J+CD29F|%8K8bTYP##=!0M&oX_ z>#bh~3#N|duKY}Bxax+I=#3bTdB|^Cx zZRv&|v+-4o>hFIJJJOT3zISU3l__Hd;>U~rx>k6wZp^y@SA1y&-W=2vxzEAQ9*}D_ zOXsflkm74?>0xHS@y;d_d0Ve*jY$4LcQ z{&wzYmHGdo*kVjA$iCotEUYMAe$Z|Y^g|`B-?%sig(RS(c z4+gX}A#i`nSR+5cSu;$?->IM#w^F{CGKPKJKf0n@Y;XAray8f3acDmBtehWILgN-Z zW#cp`Q|htgig0^_>Lli$am`Bjf_x0U04;1k*0l8(R`J4Td?Q-+fQct9R?2L}KJl!= zLj3wkkQ$n8{gV+d$f&Dt!+rB6i3}7}gwpRbz-b`8RzMKxZL7MemCjOs9B(bKmwWawY3HE*5;HDgQk<3@s@s>35U5uXl1v zvt!!=%Q8{SiTq6Our33(N!hiCD<}plw(n>K?Z4KVchiB30Snqx*+N)FldQrSQpdFB z!V-S3czASTm6a#J^v8ta)GX`@XFhrO@A2z-pNEGS67Q!1y$U?3`$~SpL{F{KNiSDAT>p$_ifOi}3>7@jyb_A<#hoy%Ff`Z-7DtW~aVuYF{fAKcht{ zOCjUrJstg`ZHd<8ISZ)a!C36;_?9F6zUzR^kiMZ~EUbv!*-M(?;bu$wcTyh5u3j5n z+Q0W24bxTrKhRkfp@Fy(|AXFs^O|>k?djRF9en>6AdUEyLZ>dEO~7o_JAR21Ae5Hf zc>%7#o=j!>|8O2Xj0AjH-a}@C<7>i~v4cdFW*U$B?}65Nue@wo7tduVst-bb8nPhl z_r2AQ`mam*|E;ZZQT&Nra_awrr2tOPP7ds5bC7TW07KF*%Q8@6Uw6zQ{{>!9Ap`mN z{sh5b8;6C7*#uM(+-~>Do$5M;&O%@FW!(jl{QHo;sZSVEj;2v(zQO6t@1jJm7!&{;h?*mHF@Y^aQQ$t2qDO zWtJ5w7aNlHtjg5Wh!Xf(NcYSUj;b#(pubv||*tFi|+a~dq7 zHS1dU=aU1Ttl#`O_D}RSJLxmq?`{2eWO8GXcjX2`X@yVt)x|bbKz~(yNnPrLwgI1S zt7p?f`nP!{y$@OXLhS@9AGm^G`+{<2>!rLkM<{uNP9URswKX@uW|x+hw)a`5!AFeFbCoAcJx9|n zCif|(=zF*wN#uTO)RIB#+MLE`&D(Lv3Fb4opTgA^+k2z^B@sHp>#YOn#;HBQhUnV( zRPlZ?4+?{iecQ9a?Ajkeyn{I^+!rQ?l@q=tGj9dThgYcH4px*1!T#w0m7416>R*S4 zb;gq4y$k+Z=i<7m{fdeg6MAeQD>3uSp|odusxhz~jF1pQ9FDf1@^t=u&x?Y9DsHfc zR;WU@0tE|9e0=KoKH=fv_S=6RBnrFyuxz-LwsTcfRsBhrg@)2RLx)QBT(qoZ~Wtw3w9^yvr=1_hx*MX5T6G8hg= z!4kn^-bD-Tb%@~%Djnx=!3P%rK5Ws0F{i`r4laN-$QsnGL+HvDE&*A?Jyq2=l*G74 zs9%xAKTwzs#Xku)Pjd~+y_`N$^3w0g_Q@0o99&%Nuiq_yxf6wUIB0(NWkOKPbV^Jq zpAxfnfS&gK!Ix_O#BU=b`ErC+Zn@mLXOh8%dOwCzBeOU=Fe9g&lWTzQ=Iy|2JqyDp z56WDE3!XlDl*jlnUk{Vub9zwFW*gykC)44Dy3OPjrv;GMQRrJW z6AV6Q26qJ-gr4g@c<35^G)T%U=wqVqIRVG)ij>`ym6tGlQAs8lF*)udEp>72S!ASOkMrStuMTNXm2f$O|d@Av|1SYC4@le)D$YRjtW@|(3lo$ zYfca&MCpi@S60BHLGE5>m}k^L2L>N8F|p?s7XH0U&_EI^ppii{UpE8qQJM-if?Gf! zWPbh`QlN&CgRFvr0fRsX-+T8ks;jGuUhF)(O-yx_ zf+D@DiVE>-e4L_KE71D+@MOR=wX|rD*8r=rpd}wjj zjHb1Z6S1$?AAvOw*~9T)LVh71q&q$;eB-PSG{2kJ`r#U`Pi+~gKmvhFf>CqHUbw~gv)#Z!nB6%`RPYY9OA`Au#NvRmA^af6aRI`bGl z7QrN?-GhU4==d;w3b(QUo%8saRBNRKEn)MLbJLnD8X}g{P!mzH{@OW$lc<>lte`1(qKdx}&%7l297$`{8MqT!9VNPhAjrMKqI(B@UuU?Y&@ zjBxfvLGjCQn{PH){2JIF9Iy2uw5KRsr&WlOAeZe&NxG%wsf+T&N)rqm&lSzBWM8s% zBmLhK3;AVk@%0kOEWrB(osr6`5V6eS@^t#v7p}D{^!=JRw_Vv6^`FuqP|n2WYk!L- z`p#S7>?}MZ7v#R7B?Z&#+|`jRx{IsH|8e@zkXTsc_|{PUz<#H$z88^E@q`aYu<9<`uvC8-Pz~Vr^3>bFnoKJ5+`?PnDkeY z+jG8;BB7f<-XMIwID71)rhdkgI3IL6d^{*TgtjrY5Z&NcK`t6$*Nw0a)539K22F#neB;>^r8 zK7G8hva;%xFUO}8p4-LqMCO~-yIPS?T8%Q&gfjWcGaR!cZ@`^kROwxQo?xy@y|g1$0~`L44A1V2Mdd*=W9cIb&g~U!?%rU z=GU1-cTc*fIi0W9wdupi8;S_O`Y4J4$K!Ut@v+SQ^Br?t+os|LIVSfZy`TlHuD*cT z=i03u8(3G?ANsrBPzmax10ORpu_7ZQ5%uwIaW^x2U!H6<(2rKwVIg3sEA=_Yc{t-9jv8rd#`0aq z`F8ZbwRG)KNoQLaODYjfi>NfkZ0?2eO>%u<;sb2Pw4wCJN-`f|pd{SuXkK;1bTUmQ zvI*a!qTZ-MGmX^HS&EM^Gc#i>1=yICRu}wev?Bol0S{jVScUWUb{yw$j)gfCxf}<{pDK0fq9LR2F?Av zBLn@1{ZPPyKU4}E>u@uMtWDdY&6u#Dyfz&YO1Nt;UoYfCgu3vV8BDS^eE+YGEAP5u z5D{e+{oWg#R9xS@$DW8g50)E4l_R&Frh%g#k)|_0!W=7+WlngVDg9U8!QH75b-znN z4|XntifsdnK89to=6WGFaVAs?6*>6YkCm3&AuJ<9$zP|f!VSjOrmb#NqFztyw;EcU zQN<%K;{U`lQXQE6+MAU%k^S#uTbr;w0-5M)aAQ>hWMWi@n&+$}Da2~x*W7Jo_w*$; z8R@@_FeIaq`1tq4KmfQa=7L_RP19<7@t>Zdp;t@INf<;|#jzh6QgzIJ(pmQ3%{_L4 zjs>!TGcdNz8a`Pnm;wqY&%bV{bJze`Lp)k~tmTag z3kC9e)x4y0NAWb?mCl(oS|9%}A`axG$Aab(YliLzeoatz);&4McAhTWJpVi8qHNljv+KHljmY-YR_JSJO1=Cs^7G}zU<9efK0VImY?_K* z{MDAQJkb?d8^&n9XHTfXjGoQi5_`W^e?QT=T!W!}5jkgj%I%8kCWB2mRq)N=GLh)& z;I7JLDQHuA&7jobMjKB)eZgHid*=z@T{e&%gG&u^+)6FF_5f|h`~7G+cJg3s{Hc6+ zPIk6QF0o#r{$d`HWNivJGKx((X)>sG!ZcfGpP#YI?k{pYVzSH1jOPmgJ?F8+np0qZ zR}2FHJ=qEt`O^o7Z#;{7oh>Bin+S@fxJQLE8#lN0pJHj@T)~-gydqxmi9Xzt*xLg> zJz`feHfc$1=kSy?lu$5tJ(Dc(+rMoe$;S?P;+tGwb~mk zpE7KKrP6(zMwi|TIG(XNtDl-JX})l8mpz5+8XRwU({*K7G-dd zH)-R7bNN0WH8lGA%uSSH+=U-&9@8vNse^6qH%`g}K-h;fp}!0$Wn%*GSQpm?{l*NB z6en!Y@Pj|G&3eibRzpK7J~P$>3}`0#r~!GMIISf8Se7Rn;NUdQeD)(6u$izKqwQa5 zKgNGs^jshV&1%k~Hl>-VeAUYbY_Dj&az-7|Ii4vU@m_C7P)vFXrl)PmeN_fH&T8|l2n_&oM9TS5iFq@skk8VG4 zfE4ON(Z683DNj5!Ks(x$CBhdumBWMp`=-7szZ= zM;ryJcF*`;#@}8AI3enjP8BDreC{77ZKbQS!%8TS0eSG%?%ao2B3Sxfqip)J;pd%8 WjJR^kL}51sY~PYj66<{kcP)gjS-Z`IXnsZ>=`i4sLp+>*&PnS18jm)P(1hnGw;MN%t8kyQKuiDbMN5jWz+ ziF@z4=lqXQN-0uOQXV?A&$xO>6PqWb=o6Qb3$b^-(b#l4f z&U$XEvBjl}3pBevz1Ajc^&Ztqk#q09Lnnk{M(5bExA~jD{VR@s@hgP&>%4R3BGc28 z2oyhg{YOY6gY+7lp1;Dx_}I?$d24l%ciw!R@4tD5pZn_1aPGu0)|vs8tj>S)U;k6A z@x5e-S-5zCL~|(QT;|W5q@U=lFC62){U85#zVz~!$=Cx&`h~M6skI}9Dp}ro^B6yP z?NxNsW_fL${WFu)dl7}K3&53yb1ZE%sh0DstgYkP7VB%P{N;Ckhrf8^0Gir)tJQR^{d34Jzux@$i>rdabdZ`^pL~<_AmYy3KM%7DcQX7 z#&L8N@c;bYAL6(!8{H7q-Qt~d*I2%IiuI<);=)CaJo_}?{+78V-} zRZE;X^)97yh117>#J~A>ze55Xd;4t;%}((9-}+-5Ls0WH_6#{(Ua52C%v&UGmD=(p z>g|BP^Qw|?*c=GeJK>dW)|mjAYw(U>-K}xy*>>4&lQApl(Se}^STTOVg58rGGjF|(-z~A{^ z5Ji0H%U|c{!AYL|(pQC%*UDl-IYtX6OPdX54?ND#y!Z_3D@!B_u3cJSX`{t~gGVUm+&lhgzVFlb z`ZO91UVQOIG;R0n$8}u_g#v{_0mpIf`9qWPV6dy_jpLZc+8W;}?%~}SoG{?uo?l^H z`Wz4e)rm;}x}6q<$`~14QXZMYPzi3%rM9uooFNPQU#Y<43;0b4L%6 z^jn;pzr@(y$9U=KLwxUhe~FPPaqz%C4n6rSlLeD{l;M?^o+sy;%r9IdTd45-i!YOx zU5=l*$n5?@Jb&~EC*D3qd1Qo<(Qz^cWGa)q@Z2*DSBIDwsj{)L$#XBf$n|Si`T940 zk3Yml$y5#hUcUZ4=`Nd!PheW*=Uwq}Om`NA6 zIL;Secm~tB-7V4Wb~$k10CRiyqU-u?pKF?iVHg;OamUY79u0N{Y4rPj&YgIN<41pr z#Xc-1lAqMN{P#|m$68A~_WTQmJf3nmux}4aN;FL)j$=&I1VBnjk|b!Fj;0BO5JXXgZs@2)A{ChC z;Jpz?5xQZLI!jYhJ{lh@w)wAlSE8UGY6FD2#C#rWW_+|JCt!<0KMYOOAXT#hJ7 z(1n8_q1)>-Ju{1p0{TKRUUacc4X@wDt&A}_QlZgop;SV@-$x>F-P9wRlJZgcWLZTY z5|zZPtgbOUK8dA^TR))ZM`TmuO-cF4+!y0bNlCf)q=^YBDGw=kobx79ajW}RZ2#|} z>7y0s>1!$F5oee2ZggY**VpUh41sP43{4QmibP6)+rsc}Fo>&FyNp{1v6J<3>)-DS zO40Ns|K#~H2dma6I~4aub0A6-{YX-<_0M!!Y^@tJnlm0)9fhr4LdFu9n!wcWO)C=# z2)IXw`$+UcN!I#wdXinnd$}Gmo;Uc-7s|AJ$!0HRZ^fcfuhFR2nA>*%`wroHiBbat z-nLI6zz-rE+e83yB2hxa&_Le!4g=XPIdgqWIO zrflwPyVEf~3{ezf7#2w!VVF0Lck>k=#ERcN(PaOSMI>Rl74gfD6(~9yN+!e-Oyk~! ztnM;iT@yIlJ?>H~!qf%VJBm?5@#=}wR7b{X1wAasB?`lxE~&P@N?#g0`S=mqwKXyo7h@@h!Y*Kc0>YM9ay0Wx=423XsGPX&pzDc9gXKZX7J5!)q%I_TO zofRLYU@UJ??n;k)@co z38Ij8y$zZ`m=;;rKqeZca*;3$h@yyGE=RN3pja&JT&EC%BvFjy4G=d+6ZN$v-aUVT zshR!Q7PQuyIE4bH7P8)GFflPfHebONl8r_aO$VhkT-T-3YEdc~;Y^*KgX3C6@R(I~xg{_cZKU!d4#Uhr9zq{09PszmV zZ1K0R9pliECooOP<#Y3tCuSKbW>89?TRKZu&*D_(c>KWJE`#(UN!w4*HNj|X;1~k0 z*W|S~PjK|H$I*qN+i8+33=#Ib*ts0**A__Z5;LPYE-!5|R4OqvI!WZ!xw^QHAp(L( zXJljyO~m9YqZG4)6%#`f>?xV7bYkYp7Dq;GTvHGQJ#i0_Vg2msQ zIK$yDz06F;;{3a3S#Q^xmz>f#NT$l{PbpfI%Bj9o^kL(^Bz_Ow&N4bu-MPkAt4XCYwCg%z3E#WWLB@){ zRDA6~johU*IUEhP>P?2nr^s6dp4Vry(ZF^bq98&k zMLy@SQQu;Cd>SK;Xtg`Uam?8C9A51zKYa6DUU>c$a+!pB+au>1tZ&s>sn>Y?;N$F> z9NlSSkSJci)*l#gq&Pa}Fi|iF1CKC@*;ra4u`EW1hKU3O?IuB@AdWG!848&kZYH}c z6Dv#M6s?YXJ<6Hcu93}+3Fj@c-gaQWgqiIJhZc?qjH zN5O$enhck6m{|)ICY(BR3O8HAG;A`iL8xGCc!*2$7diOk(`3z?*S5=e&us?$%Qx!0 zIOQTVK_V53!F)pqfnz&^@s=7muaYDNp&>dHgt>0N)1ntChAX9ea(+Kn1d&A71UdWD zpVxZb7VRKmbm(?PkT6cL?lSk=>L(OzZFfM=$0U}Db}(?b79IVLPOCVHG4ziWZ1}$T zvAUygBMf~k>+XR`lHF^#DhcU%5xLy%XZf}ujd#}r+Fr7IsYnb;D5!0(^ZRmRx4YTp z{aANW;FyAECLFW})vcP6@(B@f6y3BU0s14fKq?dYzV8Sj1loI&)srN__x)58D&>Jk z)Hc^2me7lPic$*GvM3bGpLJ7GQa%>Dx>+FxxwnRrXsBK5eL{%$l~j4ud#X4J=ycy- zRyK*FoxgWKP^LB|<&&{9OBX^Ah9UK>E%H;dgslcL@E9H$K`BKPc(i)~Bg0jc8YJK= z6oSEA*zrU``XtS8XDrQpS(&>7ML0-62}Qn zHjCG3BM?MV(%e`BC&$FZ2)#y)jaHM1@i`uQ?C@t2*^~0W_%dQ_q)MaHK}3=;fl?tuB4Bi66wA;ao|x!u zI-L&ndY!L)G~42+6rrH zTNLaPd#1;@Fn@u>GFiELopNc2#n{8iSDBie1{r@wm-g|=<#N3A(n|o0jg0~D^fNEg z>iJm4KH@}TSr(vh-3&>hh{J$b#)N^7ZrEfp7QJ3T*1q>k5Gg6}9*0$uNV?4ic6EfP z*Fhu+g<=sQ1dYvgYMqd&iDAMpBno__Fe&C-`ksg3ICNVrOxwjkf^L$}XFuHX(q};G zuu6H@5nCIp1LIYI5QC+nI2pvK3PF-202qdet_$KQ1|haHj1)<-J^xh_UDvmRFaV_n z`#zxay@B!C6iat6DUy=%AY<6}9aQ;m8R?nk?vG4sx5xQ52lOreYvVopK1e7Ox{(fP zQyyMY8Jv`qhm_mGsiHWc>jm`uaG#}L(=OR{8~~XpuGT}sJGcwHAR)e`DN!tmr5YrhzlTOIW~u$~ISf-i9Pb%7 zD*lhR+N}0Lml6NTQyFH5a{xp^K#YcKn?ylC7{%DGi=k_Dx@}C$9b^xos5M&*mF`V2 z{bxZO^tpKP62oH?WL=BP7tfjExSX6lj{F(d_cX z(W5k1FS5`svn4IY^CqsT(F-M`d7V}-X48)tjW>Au=wUjI7FIS#6eRp`zQu6aMo7ip zvPGf^%2|^W7n@Yd4myI-icPcObG_!HyC&s~&QxAUDvd}gRvIDF&{^B^!P0qV(oNT# zA0c)buT*fgEh%LkE^dT`x4h0To;^V=G?^W*aOwOdqF85Q&nVfv&83UyXvYpuA3i|2 zP~h_Q%UrvvVc8CGzem0>%Dw|r_x<8NE{0`O$T_U7ETL)84<%VWqTdZ!Ut42%co-!F zQNPPZz0c@KnS4IW+S(eqe32mN<2YG7&m)lm2?jYsquC5tRT{&2opZ|pL9EzN8Y7w{ zNfa_kP)ZReipi3LkdiZ70a_R_KANY~4_WaQoqB+UMmA$ITDDl+^6(Q$rxWw$hNMz* znJgJ35;~oTFp}hQ2C+(w_fcYZts)_qU+?kV%S{fK6vj^toLNcavtF;$^Cg#KpYf?l zHkUSOZ`G)GBu+L%Av?m-^=k}2`vRJbX!jy$cTj#r9NF*?8L!ZEM#d)DGw0%Y9;Rs! z#S+^xPzu5@z;UyvxQ~8mnFEIoKoX-F27bSflg*+5x~^l$DdN5Y%fPe^`d&g^X=L*b z4g%flQywZ~7#eOai*D+)BZ2KCbbJ^u*<>;r%}5dTBr_u!!Z4u`DAsy08$Cs)lwqqI z)3;50Gp3b*=u0+3MWkuimLSkH?n4$}%6;TEht)SvHaNc(GMo|o$Iq6@+9p!QC^U4T z(QGzA(=ZJk%XCmkG@)oWYiu;S96ERqnIv@EElkVctv7$n@XS$;?4A6quJNHqD$>-( zl-u~!z0ENnv!+T)O3M2(Fy17AW)tF=d#+0=K0)HWQeYTRD&1j0IVI)ujiG?($3G_i zSO1D&dKz0u5~+ygXCEA;bRGNpb&TKqP0Uwbxo_=JGGSw5gIuvf*0pKWw=ms2Id`CC zC8b0Nf#-QRt_w1z)9GP5E|z6(N1P4ha0Aby(Wny(lZmmB_Z|K!H4wYM@s)nJNwXVZ zhy-+tDDVJ9m@}i6Tl8R3I6i9A@qM zHL{gaia8gh6f*L;zP!%l^c1FH;CDMj!XlrwSy{f0V`tc^ZDLyvVUm!`xY)LX*Y6^9 zC=HFHg*|HRfMPL2ujkQeH!)0$D2mBuvskuG?0aO(Rq`48j%`nQe+&tD%gb!++sE2J z{>RkUy5yXJN7TO|vY`~3VW6Ri6L}XS5<8ky1ErgrJ+7wfgNH&6_SJL)DPy#Oj_7u8 zuMk2bNfJ!cB#9$>md)7j|30HDD+u6z1#HDp!1D4cMK2`lT3orbfa&BgO#|0)&^1A) z+ZlW}78qJYs~a*@DGjbI323!Fjz0Yqwd)^(h6 z6%qTaudUIu4UQlG5ql3lMYGpMZFIQ4HAcySdgn6z>M)C!&QciOgBG@#KU<^G3o~b_WYi;876u6l z4L=AO8Y-}~xXjqZ9<;1Ol*$Ws}d^H0w2*NR)1&YZ^L=t<6o!l?rYy zN8D?(R%qop!s-$auZhGU_t z@P7QHk0c^gN;QA?cQLj$2>*-!ic8l*u55%Dy5MIY&oGo5^s^`4c$KZdU~Xa<-w)Ar zjg8F}63wQX$F{scPWkAtgNqa@bMR!o*t+5&;L1UXo%u({08?gD^}6(dpNE`;D?x|P8=r~ zhK>*#VHjXp4l?#wT-sn}b_P^}t{VitkL9=s)V8>}!1wwn&A_$a{|e$LLemX2O%R14 zaS|gmgCq)(3ZzVM+zhs55{4mR7-HHs#0jSBpaDVPV_Ftb810Oh3{6Mu8m|vz6avpf zX@VpS(5(!vZ4!7sXyE$+re$GTHs&q5W_}Rh*!Fh$n!#wP-|J$UHvN7N%dt^X;MxXZ z0)~(zO2abs?S4Su^?I0&OA-Ybma`)|)vO zATCqr#C{JcbRw@uwOXXvYq583h9K~faDQtY?I6fx27>T63V$27WLdcG;4@v%vTxtq z_SV4z?(B$S-+Uk)_rrTNCw|ghJi?PCsI;w!+?Q-IoGeFojr>MjB9{Yj1B5^ z+;l*pu-{Y6Y1aadlpqB54bP{#>A*6#wVGXR+mWRdCEWle2mc{GV}*uVYTXhJ*?qH#h9q?Cl+E=*5T+VM)Kq@=)hkjC=H28)}U z=-UbzrZf06=qDe1gijGEC5ck(86IYGc=)~UarRSHCUS(+^@2 zGz=uM8nn=|bj&o~`JqK9rBsq6L{WrP3fmDZ%?C8LJdS*!NRkXh=q%etAh+dQ#lV}2 zK+5D(Rfp6x4bwE=S2Oxvqh!K6$BrQ_3tbrGvJQRE!_5>quzwF{Po3b3+DkF3Ba?(h zKPDIJWWyD{_}Ctb#ry}Kaj;+%S&oXCnUSziU(3(`E1B3We%GCGpf-$1w6k96T_K z3PWP0p^2NG*GCDV>5PtzaP|5Ut#+T$@e%xfpD=T41IbX%A}LNMe8!GuvwrOwe|+K;ll!LWd3|&RUwHAS$XJiw zk3Bv;OJ#TzP1m?^_6+%n8K%dEv2BO3u~`n88ir%i_Y-Dw7KQ@DbSYOqzH=>G$e|fJ zj;rB^0hg7aIFiAPB<)0TWKWJ$YXO$7V`N<(pHwITIaA}Y3CWdOKq3taIgJFt)mF?% z$z|Hq=mrUeoJHG9SZc>4QYYhBeC=?SFpOzO3dmMEZmk=)Y|g+-T&bfFaOdk zPriJ!c4}jForMbvH2WdBtWGO}a^B*JC!ZzfJUX$dN~xW=OAx*?wCqZ~2}gj1|_6nzl;vIaNP;=(uA_U>r*f z0B0 z23m21snIGzfvy>ZK@Z(_$z@%Gq|@(G z>jjMDT!di_vUj9J*DUgd?ESj~DJc&ryBt;>UvX-EgPF;{V`*y&D|ScN=M)TK0BWp%MhPH2=y%Un8hg6zy;oCZR$&%MaRaGHpalJY_9GTyaL!t2*Oq9kA_>tO2| zFVDFk6KY#E+Pw~|Yim?1!-Rexbe&8tOKr1;o2xQW&aly};rDuEE92~&u5$6>HHz5+ z>-8E!gD{Fvk&l)skS%2B)#})mMG*KDM<J$F?|l1PJp1BTspJfF%fc{hOf8}3$5g6Am@;BzV~cDyhi>S2-7e@lQVO0p`XuIi zqef-SxwlRdmMS#1)-atcmM#%W(DQw=S(ml74cuIjLe^q!eS>ViOetg1?E08Vf^sut z^_VLQ8%!M-r&DiHZ+19va1WhMpG=`Zt+qwEkSC562M!%fmlPgR(pU9eP{7d0D2??i zy#4wT`wr}-)z~6es32sFpGdT@hvAmV6|&@VS>F87kJz*CAYP}#+};C}3h$A55nz}O zng}`m)*EEXBTP;0!H#-#qJ+z9F%>OO5Uw&`Q{<8yUbM`)cP=B15_7}T^voJjkYFpF zlgHj7N;2%79p>V~X$-5vwe>Y}xg62T0-GI;>Df6l_5)lfIpt$>_Xw-Ig~fhO@clkg zLa*D#3ls7g7ti-WCTLa$UHUY;J|n{;XhbyHeJn%6bX@wK4r3FOn8tg$UL^_rm{^5u zZPh6hOL(0&x^3foeJaBv7)k>b;!B02J3vU^^YBASrC3C2iq_T^vD8UaKrUNCsSw9; zY1Hdv3uQ7Ho5<_XY==xvjibL$EOyGn%N>nZo&P@(kq1Zr%bjgW9D!z}N`EOS4+ysp zo4o~u_b*`PpY3c?GUlx}enf6$hS|vx+Knc$f-v@o{4U*Y#Khzb;}au~OlN(i5pnEl zkB?jvQ-Ns+e&J9a+jvy&M#_W8?Z&HRAb$Y#TawC^#Pb5&u*-?JuClhiK|j_RnHVGE z_fZ+ag|i+*!$a7&d1)R_Y+X>v8XvtppHdjQNUQp#eCpgjZ0@f?unFa(H@7Lp<%<_^ zvIR`TAdUh$QNqYj70vT#d0m1iVRmi~Lr>>dDJl1Z+l@C>X-r9ZD7d|wObs_B<)I)Q z21lJby}Mp)g2Fbrunn|Cc*{aK=v!ZZ!aQ# z_Gz5=Zf#+^J%)C7kA9daOkEI5b~_VyP9W)q1La4{ zGSGGK{Xv_=cHwiucKN9HK7-raG)>2{1u}tfTYp+;0~JkyKo<#RN81&s(+wq^U{J4F z(>2tcu0ss=Nu=Dq7lRY350JdGOasFJ-%pV8Mxpk>U{M2drXpkA96Ux+(eNZfz)B;g zn%B{_ozhqcO+(iOag?AN1~N&|3=Nq`3`0k4Yi1{jL@Iexk8}I}WDG&k)gPExhF!+1 zWWv(oBKhh#rJRG;@6z`}l$5xc9NEl!%052Ao@t>8%9SB3%VcAH9XFH3^SU^hJcUAT z=X-I`XT8>Da^i!PG#gv%^dpVQ@nNFCBa}L}hzXTW(fw$dOF3agE2nLjY=y)qGvk~R3>peeH<59OL_?^Mt!9ftHiu!E7^X=Q z$J-LR0>jWq5{a&BByoaNifqQ<{QNxEu3zKXXJ4j}bLq4@^tx>dr84U)E9{xui)nzl zT?4-5OB9ODw&XjncX;}M!!t8BLNGXX;L+%ZjETB9rx*KJ@oF`t&~hUc$)e2yguGRf^>bN1uKUKTMFOfhHih<-CTWv$eWRX?UC~ z=g*K>CbnUrX%QDMUm_Mo_K%Dc7(Q_l(5UtJsh58i5p8k&b3J6Jp2VpIhR7Iz}ChZXHFjH#h?Dlpg?#mF)fWmLX;?kfT5hm&m7Hg zW+@~I6>D9|FMXlN+O>0>ys*lXPwwN=xhoWh%CwjJ9R1Q!E?rnapBSOPe3@dlj4o|V z-C_T8&oDNWBTm%dKE{gN{j2i+zU+F17*2-K(F#{D%;QCpiOCseruIHsf;r z`gJzeH|TWxG-{2{s@?Yqg+gO$W(LR7akC{xt7Y2V9tw?op+K=*VRU$iC=3bXgi57C zuhn3)wuRxij8unMUta^=W@2KBf}_)Hcd*?oLJs1^d+j=l*A{7Yy^qyOUEI`MP9zkE zMmTc#5RI)ZdQnWbA5yQ^iM0d)=!S`I3`*RX#vopOY3U*>D;t!Crzw>RNI9qzwYjm* z@aQ<%Y@SZ1gQ00VgRNW7D+DC5$NcFt1YwL9bnv2x+WHzX7L#KmG;1y5Fd~pJF*<|n z`3OVDG)*+2VVV}EsnM*jv#>Cak~-5l7##^Ca6tcEv}Jmi;t&PmqS9-RV-u=ZT^aP1A{^2mr&h5JIrJIM2!R*Lmrsm&j(E z+cRe#5tf#&Gc;7ib#JEi-Kd6;Bnd*(Fm5S+=KDUj;|%6WG9ii+Ov@q(eU?`@nVy+O zyQMf=BEd8?JkQ54jKRFiGCy<%(CX?6xm=!nK95we)k_HFU|uT(^jllh8+{T>VwfeS zhYIw<2-mTMzFz@zU)7?!}Yvcz7G1cB{1s3gKPZTh_qcCLW7J>}AM1H%vlp?`BQY>uOdAPg}~ z3zS0F4Rl?@_XaPwY(7V`-ejnhr;@oj2knNErZ0EyfvLmq{iw^=p3G3r2oeOAY0zo6 zi6z*UM&Kvp@`I6-+*Y2KNsN?gP+aepX`v>dn$hp-xVzt^qU(2|Ua!+?H8D*SapUp0 z@rM|6Ia0~(%>to`o2622{9CF)->nTCIcobzHy#M3)Xsi`4Sb*z2L?lCnMfw5rZCMx zu5O|fz3^tCGKE4D8k)FaXg8cOcUJ7YVXR64O6?5GHC;z05=|4hrr^EPJ*l7LsOoKG#9Znub{L12ZZY1`3PDUUL@ zS)EdfsftO_y}2Zyl8A+KXNffn*S0VX8zB?Au}`9z$%JES9KLD);0XQ*LM1uaii{rHz<9 zLk3a}Ld+)01}KSPWhl5hum1RT3fUownF7j!zK{%MGN^i;*bC@u0@E~EfA<~g%XRXT zBaFFak|?3Jb{*Za9}463J58=Etz)547#^ckH1PvTK9@l$MZ4WZXa#$Y>^B zuS2KTBUgGjhI2va)9N*ljev_+E|JR>F>HY!1`vbogf#jRM`f^Fom_c{qX+l0w7JH< z{c~J7d!9?>0+!Hu`k802be*0bQrlSO+{LRjn=Kwc`UNaY#|uLIew)|dew$vsg_9{V zK2as`Jz^BZE=xjo_dy%(#;p3rfIvDfZ{0H@kW=bMJ_BXk}nikx^@wv zWzh9yw$`_(?m5Vl`}R=G+N`gfrqglA3X_Gai&$BU?`0C>>VWiN6z_D%&k_6Lp z`**&VFIAYFp4k~g8y5TO?nu zknuhIFec+<$cs3^d&Gh}Rwr(bv$B|>~Jpx2Mc+7`V? z^5kPjh?Jn1&0^^mv2;no7%C-N>uqKpKfsYE9!GAkd20e3*QHc0)2P=emCNLE5B@0Y zVI}o8-wmZml-d>XbhkO**^?(Ij_qM`^!EAPPS#M83{u&29VI1V`?yLRl$86#ZN__I z@o#x<;@5cd`nOr{T%nqoLB=6xPM@YSIYnc6nc~neiHsNKg zr)f9)R3|6EaTv{HSy;G6d1Qh|r7qpt>MFf{A5GJcQZhC+mabc-JP_Q`VfCX+f5d^2 z=NQS)Zf{Z4wl;CxJV_j4mKQgZUtDF7~>dz-gTFLL<6 z<2bIO)9&H-y9mpnoXb$_^!W0Zzluh}*|TREA0KCEXb2$$y8dVi7^K`^?rBEBgD8{w zNf2Up9`3EWQJL~6Q^4iDk? z`LB6cY$pBA^R^Gc<-RF7~Bfu##Za|XBO({wv++-x3A6U4qp zknsPvcP`CwTvZ(Z-P_OU>6y`tG$Tuv9}#}Uc1)bal_C_dpjc1^?ATBgJ6NXp5N!Ac zELiacQlwZx7EndlBvkx>#38YRWlPAmq>)C`GyS~xvKU#`({>eA#$)$yGo$W%Z)k0Dqwho+$g_ff-Ag#$snD#9oQm3vih>t~X0e;0 zfLA*HcIL^${rQ%HUam%!ja^HS6o&Q9j9Sehbjmx>xKM_Q9>d-^Z@!~K#ZoWj-EUO* z-N%w+bq8rig~YQY;}6$1NNtOgp^X*-TN;+TDXoT&6q?YpSRE>+n?6!&RyR^Mh6U{j zpVjq@+!ELld^vI=A_U()Q)go%qn8^jG&h%q++53e^F&CR7JPVTz&pnS(kSB}4+?Ax zmZE~`s?GJg147@zv%t0`_j@@u24TsO%AOPu7c3`=*>=G9PKVEp5?;ySl(*T(V2mNp zbF>~+?AKeWaRBozpI^Kmv5`eAMmaN$3IZrJ%(px)wHyLRlB9|#hpIoiPbzIjvKw-w zs?e!gBnASC&oNyxMV5sUoO*TuIH0yFZv$Nw?wVNG-?HkYR8SVhV?41gJTmRy&_m4h< zIdEUe^Ua;SQ5{S|TOA8A`;tq?qY=U3{B@}6zB2`9rJ*HJ_lEedC zE96tXfif2UM2$BSom_4sgJl0cgf7*7B+yA&R zOPd`pc8hB(Sn3uCAviwi;O&?)PtU!=`A(C;pvUIMkYTQf;)3akkWg84rstTP@L0OD z%*G(auh$V6^5S4sy62sT*+2b$pE!=UomZ_^YoF%PxX&v}#*;llW3bv+ND1{V#RU6+ zDX-CrG>uu^jG3EmA6U_FTOx9d%i=^)pQ~4{(wdyal9D)y!N8?A-r&yiJ%0Q9zjC7P z^7Ehm5O}%QftNgccKw710qy#eFG3+L{7T4NC4AIz594gK56QBOcBjqRv#*Xe7{isT zR{`h^hWzEq4bDu|`N@x=>OJb$9TXG@>h37ct8&HNUe0vGqfwCzVuccdnlEvs;9fUj zGdE0z4uiNrOG(YQn5amGvEuf6#>JxnS)nNm#Bt7NOEL2^Rc0p~j50*Iq2@{AWE2C| zLU3*_Ag~2_u1Pg`HpH31u?0z{(Lzvl1W~H#M>*Bdq2XJ2wjfFswj~%Onu;eGq?&eU zgE6c`ia5@(9E)aXlja)FwFvBT4)QE1mP+og%-nM${(++lRFm2LYqtrT*t7wk@25ePN51WYc4BMPPOD0)2y(z zk&#&fM}o=}Yni6*S_Ga&cO&KgKv8jEVL4`@SMbiM8vQ}e2VX^e=VXA23vP84whg^p zF&#Sm?Pi~LXk!b5V@np-a~keQz*<`1+7=?ox!o`5OjWorUE%Ki0gL^d6LpuBq`-4+ zPPcuAiQ@idhNTpt=kWPjLfx0lPuF<+ zB(Kc{tfq=%4Vydn5*nVvF;6hpba63krU{lKIW-$l2*Gs2p-6LPCtRXbQ}JwGJL(b! zlBy$_s=F+7Gn!QkyHKpfnwbfgvuzI>_+&AnaBWUaS5QvIktv_~md(NgLBkQG1_DyRKVMI)xc9&Ic@nEpj_X>~-TjX_ zX;P3HiAIBzOn8$1upmd!3d(2v|2O-L_oG`0-GL&>3_rM3#jyoO7p$ywX-_qIu(rWu zv%&qlcNwOV_K^mb?Nh70SlKoQ#&WmNS|9LCZ_s*ou;nSjyxZ-}0k0hJo;`gJJJ#N; z#lwy*m?sY<%?W7Z}&Azcpo-O<4I&rQ!+HzQ2EBI<9=j@CNs-V|hr$5|e z@$NDhL#rNg{py#TI)5A~0xrM(`U@8_F6_|X1OxqWY3_^{aPT6F*7|h0-FW6t_}}w`id_MT$#-;_edMU5dNAm14!+-3by36b&xH2@oK7 z{^5C^cdh&Fu66H+d-qydIoW5Qvu$Sf%=~5&{!Kv=`vvI>6ciL}X(@4K6cp4c6qKj< z&(V=J2jAX%A-^!~r8J#TP;mMmKTndGambLB7|zo2UojxhQ1Lj33c*(2P*C2YNQ;Yn zch5Rp_R>kYxF0%A&9GQp#_e#4ki(xV+BOb~Tl6)^_&xopy>4p8*(6xP17x=N>d%zb zGfF1&G>Jv&%;gLmSXOUJ#uw}4yLj9?GU}o)C&HOpI9?e>{M;K8`?k{|Fiz~R;WB?DUY*#ta zFY5Gr>ObJ-Y%+o%&9-E@E*szlvHOGqN}IIc_pTr8I%`7GeE$@Vy0|pvy!)p(UYFLr z-YbFT{sbN>E}C zpHf-@db)=kq%-<(OxNRg45C+AVJ{t4fMo?GC!B5|SYG6&M_iHYREOR+ZqIc!qoYhm zqkGod^`xC3p1l2~BD>gVHHdi-o5dnLfq}S-VMG85T;goF27?f|lCq=APhtDt*gpO{ z!I>EY)iy;9zxU0iDwUX}VawVWT!pgsuR^=7dq@P@_AQzt^s=>D$2U)OuRUV!c0P!y zw_tP~X@Q>}?W;ju8JL+jce`RsBbxrBn$n)9dodwp41!KM(2)s#**J>UCIFtj=NuYW zp?YyjyAM<`+ol{~^>vW>eAfY${r+Z#iQ>QAzvI%VTAm{dd~Un&w*njXIP_&n1^h|I zlP}FK-&Ab(9J!o?cz}CnFfPzsrd>HT2ZxNve{}g>HZWPL3CC(=@s^MCX59Ew`aR<- zcUEvt(Op&iL>JRe#@0l3ALTJP#k45SYTWLirY*PB>0e5gYT#XzAXtX;R2Bs;hVRbFVwvGDSv-lE@B~lFOk@8J{ z6&K%fEco&talS`+QLvq0{&6wZV}X2d0@yn>pU%h%IZ1JIzpPPeFP-{xlV|hck+h-@ zOOf(J>gY|i(O>ad6mhua;h4d~85X?I1eMKIhsGSjQE2l4+Z0}@d-!1gnUS$1I-3Bw zj4i{z#gU!$hkjo5Mm=a+O-M*sn%6|$h>w)(K%2V0zSgLiC7rNq&;m}VXUpT^S(2-j zB_|}j){~Om=?#AQq6j(Se)(+lDSh8-TDy)5Ld4aO@YP8lE+7kZc?7;55`O5>w(Iz6 zXlOXjnUo7T>~I^Ac$q{{YkDeoOgSIHtnRC}Hu zheUe@Q`=Ku_EWOfygCDs5sA;zh$gl=m74gPdi<5}Jsg**M||Wzmsk0;c4D=-y;JN| z`Xa9%tbuDD|1jTy74GoCjjqb~d&lf(iZ>@Ky?i~C=JwLl1c%j*H|QekAn93w*{yzP!jPU&u}EcU``rEBwU1Vaf> zn`f%<@*{wEbW_bm+^B~gKjn1O8}xcxp}8i~p|97g`Wv>fn-d=aV90#c%Z{|#6;o&q za>aHia(oW;Ql0Wx#f~qs-KvgE7bY?a+;4ez9mXAW63K_gx|IYvc`}V+eYRZg1D2X+UbPD@3Q|!t&AYB=as$Ist=q(KI7B+Qj62p)>d3<>X82vR10vU%}0)w z)bpB>az;lihM@!m4h*_HaXQvSqIpH^R&1g!@H0h|Vg3$lQ}{ka)lOK(JN+twCBY20K(VNJmi$yJ?OgR7uN}%Ye!zznNCofEls1+7%U`@^bd_S zca<^>Il2pLFJc=H+V$P zBStO|u@8P1O1;|8vOX5mkkNAvI0;wDZg-*%9N)Gi2xvZbbn5GBTjJv@kW8gF-j6ZO zz~Dq>`;o67^h=TWGk?lA^OcwG*F9)@f`_%L*#}NRHBXK^&+b0ucuzJ~iZs#HxhKGD zwqs3UCL!-ly|CSE%i2v=e0sz!>blRq16B#+D5;>1E8v(RE~iUnjm{iehdf{N3ugb# zce|;WWAgJoS5czFn!^!U;B*3;)za-}0Gt%Sf5p48F`27EGWlppWw`n zEr@{D8yT?kT>YQZ;M1rHXP}oQH9sePqHeRld}N5>c`_sx z(R(*<0)aBRWkS1Kzau68_%tBL+@jdZn*Zlr9f4fdNy06=p4s|I<%~ef=vd6P-RaOe z*F39BKc4ui7u077k7$QHCxb6`$V`r&mR8f|QL+?V(oWIR(ze4_ylh3zXVmqhfhK2U z;;C5;_t!>j#Kc10JnH&B4Ne-Gnk1RrHopoA3I?wQs;#NXe1!s4$u6t;0fLGMx-p@m zIQ2xozQ0NL=Q&Bh!ECSjR^KQ2ZHtmb6>HhJ%)PxE*e{PnoL^0L`9)SxZ9A}ijtyMM z)ZhY(d!>F^w}+URzoK|^`bu`z&KwRBwASrP!tkrf<+3}3XD`$~oyr!e4_FD8_4o|H zZF4&|+#I22bHRN&!kZQUWuF^v-y*O>a_ov$ThU9BX{24e%nz@27=KFH(i!a2dtWY9 zi!rG?RBh5H1okAKADX?8WiEQzzfK_MqInq@Ia}vaY~#f$z1tHoHbZ{GYs~wMRSk_U zM4QsZwrrVZ~oV`X9F{VA7w9{#t zMWaua!qM0!_=ZudXFt0VT$}Yno!sL^U(y+28}5AL#Nb!s=XElP*7V?ZfWCWn z-(|vT?*(f$gy#!S9VKjjW&4lME>=pp8!tNd$DN+%+Q%<6R``X42?|bJC?O3Q!v1Yv^B`kIYRGys41d_e& zEOf>wVfE~4hV7XUaw5s(Tff+y<+RXF4adRk+wKuif%((29wm&G)#iA92`qZ#@#Pjp zd`uwT)#X5=6yL$)d&h%%gKIHA79JKh{Iz5@;QSi4Q=?Upl$`7^qpFT1I=|!A1D0Ho zbGMx}R)h=U7F5Sa{io4J`?2~44pp2kl4oRQ?z3uee7L(N-Ki6B$C8D_(zMq-5esDt z5o+|8B&TKg8k~f1Wt9=t7wHN zW*2>WO_%crdtpfO<#nsj2!JH^_3}&@^}K%#04vs{eY{+ML**1gbVzF@;9z z7hFZ$^H6Y#lUYV|RpTbkNt=W(l=B8RUBE9^@NOXiq;>lO;~5znn!dIY6Vcxvu9q%c zS4^}lfQjAns0eSD7{i-8Y3HWcm2|lDSLuryxYR`THsc+fHSWzEsu(Bu60_q1Ge@DG zf?^=uujZMtNaJ=RKvhYC*ttTGwFmu2DM6AJgDYBQhf#RPIgBo=7>jP_Co^|&CEBoFRl4#bqCF)$+cv^ROWBau;lRah{-eGHe(cF zcIAIY*(T@t9%)AUE#F4xp^l_n%Rm?!D2C~0@B|omL^CRscjE5v@%+3Q#bPE@(mb|? zqWCLGd*}3vLVk@?qX5C|qzEE6S3_e&Z|2KEyycl~;@!WYlCOv6i-#d6M4hWoli(RW zQ$ryOl_c4H9&EJ10hbN~UxUvd`jpME8?sUJ@NiGhsf;L$ueYk9bi@ON>>o4}$9BX1 zM8G&K8KoyLO>Noh@<-O1vQX0*8#l{mh;#f-l|0>Qp`&Y*QLYfq%!W2Ak8-rNtJ6&Z z#2uBiwDh)tEhW@$@eoPn*AOzKPKj&RagT#)+g1Te6*d%oIuxr;9yOYZ2;Uw>eBb+o zR8gmz_sgTt7wXLS=BlW&`Q0u_)qS4`@nJ)=99hFzcmZT7>SmdPDm$R;z11#Z^NAbA zPMj~hzro98N8AS@%`gv!qs^X*>(6Cb%@OykZ13ph?~NouxdD5j}70sC@5Ga`|&Agup#7ZV`RO zLIEYUr71_A_KC)Kt-)jZ>R)QQrg&2u6OR2VkCbs84Dtm7dN8AokF(|GE8G?XnPRzE zh6fu5^8`Nis7qVCnxw%$WaWmrGd&M~5v@@j!-n1K$kUV)kh#m8ml|GuDvzGD0MRo?5n~W@S4p64Xj@4dA zy1=I$<)QH7Xh0sxTzXmSl;Y}uRk659sXr}_5yIe!6c^Uhv)=Tj&zE{3Q3@`zqCDQU z>)VRI=nE^`S zSW8u8gHuACu_S1cv>C=G2D7eT?@8mg*c~#U%jq0t70qvWdErDyy7*xdk}K51-cp5F zR^M_B{K;>EnJTx8Hh@$u+JTymM}I#g%{LofQZ2ku(=;63CUw~P0zKC`^SH_vQ>9fi z=X2TbXC`5mQpg!y?+abld&>V~SDix*ZAp&tEs^&U3VEpUdf|HQ7tDMY`+q0ls2ZbX-VOF2ATYrg>xTU7+=MY#ie7&s z1L0u(C)rD>Bo8pAMPlxQp5|goqoD!6%iTiY|i^nUCGn>K+4P*De{nGQ-iB*V#@TK?%lA6Xq9Z6* zC`smn=r*f9lhVV2Rgs*`roZ+YRZvY?{Lgo?75tZ_CDkkeGiASJ#$#WiqWX3D=Xsgc zZeLmH`J%qf(kw9+c}7;| z(&su`dUGFiW{x@rhL1zFJG4cIz_;GYbfZ+&4f1qG=on7spIlv89oFS0#*IBy6J1CL zshTeG44mkgQ#!;zK*w@Fzff~3_s|B1i8>y}Mg{)E))GIgHw4O3?7V)0{rMe&eAT6( zPT}-{F-%MH>LxGw9LsmDPF`3cZ+R@uMykI%?z460Z&iaWUm7uX!zgL33M)h3k!-_Qf0W&L{x@e-&7aB%jf4cVqk4&(; z(!q~ZZ!ff8Kl+DK%RMm*V7}GKq8KwjrJaD9JgPS|!d?3xd=_R}gZLvh6Bt z&_1w(yQ4=#DZ%+Jh`>AbWgBM@9z~b`ZVjUb4k9=e5f{<&JL?CLc`ctOKJLx$Uq>p; zVgpknodY|hslJ<0)H)>m@F$n3!5SaFU{K+=jFI{H+{1UZ7A&a3NFzj?Uuh`T}-RNq2vT` zG0VBii2Nd5`rhtKWm=)cKowL3(-$9J@2l#%PdB-txSZ7M)KgPa*8{A+lk=MRk4}*9 z*}jsCGqY4be`D%AH^8jO&{;!tUgKIKc(n8vO1&yX_p+P)HDkELw1x6sv7I*q7uf$U zHX%0dqi1XH?@T+Y8awlr{>)82@CME`UGLr%e;|X&+_rZ`t*2ftCW#2zIl3~{!;-P8 z6d6=YHD3*q$-f_`G^bkY+N93K5^M%edMviOT}7(r@@$jOn_NENaJ*WqYpT14MQ~~A zt&)d0I?kHU?_kr@wcC~*+`L}wi!Zk3{$wyDne&4Wz8+s}#t(Mj=j(jgHaU5FPCa|) z(dAa{>5T#TIHUD+9X}<(8Squ{g!41{Ec&wJ*yL@y8z$gXlHdFCuk9}JKGv+;wpV?q zpj%irfUGjw`mL3xPSQ>R`*yU^+px*lk869AC&Uj$kCk^(p12!QmSkXzrL3?aXBi7p}4D%Ju$zSa5#JKXcZaUxVGfs`o7tgfz)8^!E zHa>hnp|6wDw=P;sOLiPWb<||%Z6mk&BGyvk_4WyXp>GhU4nuNbEH`On@y@8cP_2CE zg~si70hN{8MK@`4IJ+F#{%*1t4!&PkM%KGXa69MRf-o%UgqW`B;qXWEtWvU&IfiDg zW_1c-t*Q1$)EYAA))Ox~r)LubF#8Z2s-#@hkqV7i3L{wvdCv02Lv2q(fs6VqPK0cQ z##!BP$?T5z3k}Yp#$%9=vhDgw4u!W7g7;hk{D8f0vyoTXXgFXeXSTsH#BP*lKklcDGtNz~DcZwd+{CQxXB`nykKlOA)vv*p0X3v_+kJo`~jIiHbR@Dz$O zG#Z%GwPEVy?izW|BdFG$!HchPnv9qlU$oiODg`7`Sk~0hDSwpg4HIDVw9{RmMpoP^ms+_hMUl{_udcNnf?*e@|-0I0D(0PCUwm z{@7g|!q+oRL`6k~HgtUXc}QUN=v{6ug@XoBgl?WxTE1vP6OoNojy4m1=su8CaNG~I;x4kaUNwn-5GCB}9Bhc7 zwoJ&!FhxbBFJwE(=RN!o+#5Z?=DW!Wk`A<$HvhTjv_*LQE>F;~~rmy@`xs82-Rg=Iw9Dgc?F*#Fjv(kwftVsRt z=6$t;Mouj6q^+KXMmuw))V_SeIl(8<7(vbGgT+sOW5o(ESfg4on{9E=SvD)QS0`0* zE%ex7JoX?|JSlfw3QSWnY`-(2j+4Kc7iqkRo-o-psCxg@p#RgY$Age19pqO;Oqamd zVgX1eU57ErB2(l?({JszbPfmIYS`{+@G&9p4%+DRk1Gc_jmD7pfXlbFnz)1GF3yDN z3L=9h$DrS7+#iGzcf!qO%o+$^R`jMn7;yyWs{k39O~wm`o@=+&Yh}lhU_=|9J1vxd z4D4;9$A>p^5=F_Uixek)g8ESY4V_fEHPCC$b$p@8Z~g{AvDq3!!&nn{&3c8?3uuc5 z(Er)&9RU@Svv&5T3-xT@uo-L`E zFEe>W<2m0GKQtQ($`;||ySe3ax_@#$>gm2RQ8TTex2%qB>>U>+NvqANU`{0Q(#DO7 zQ3k3>w61c8Xm%Z#-+ofa%w(f&E|#|^UbZ8XoEkZ5=jW<+t&K6o)vZqdOcZ7OGk*@M zCea%@v8L#!7f~Wh3u}B~eEws+z0Cq$%+3MW1jteLcB`Ke6bclkRkJq!(ML?IhB4E{ zKafyw%kP&V7!r^J-b*nQNK25eHAne}kbzM#_HtA~?7uMbkU$U)jq4>b`UkA86vNxv;b`KuB)1jgKO{sZ+55`381EtdIGnUlQnohbLKZmReiLdDu zYCWKR@5V+|tUB&y2+ecje&U3c5fe{+M9cFw^AdQCqauf$8R)0JX?oQRcO~i*a-x)R zC--EtSv@`XYX{k#=%5>%SnrLN;m+W~P(m2USuxHn70ZQdq!5tL_p(d8-R z(wtr3LV4TVcBJ9u*Hewc*ZuO>Eo!>858w$d4s_Fj0=e#9IR?NRG}6+G`mVQ+@JRua zJd4inf`@Q&apoQq4Nz z^ufa`F=r7Bk}S41m)5z5%fCfxW{xEmaiz-!0E~NB(VuZW^p*XL+4|NZF2p_L%`DfKCxr@#`_k%!-&~XaG41kP_-N6<;#N3|&vO0TuL3*%KlCl0v~2Fn;yjus zcObwA?N4O}w@n0lK?mp0hrF?!PzR*z^RbZXc08Nv$P@`hY2$clg(n`$LhX%M-n#)N z{fqxeeVmc4TJF&5u9)k_o;gxlc@aG7i#yk^k%~96lvH>!$H!Qj-g-f`uUg4V zZ}>)nVLRcrTA6IX=^{27re>h!B^Ni-qG2ut8YB#7}=iQlXl|zWx$rrLKebl5jX93rX1xJXEQ_4Au z`gCK9o7!WG%j0F)NWzc%Oqs|9eJl;i2e0>vS7UB-J=y@@&_a_lk_{fFSKZZ2eO`pCyeA z8?pT&UdR7p0m339H@AR^hl>r7RDO5yvlZGH@#||T^zaU=xc{~%OgB48%IoHQT5)fxP&QgN4vCgX#!?oVPvkTVf5ps9 zOzFvo5wGC!)TFmaOR}53f2|q${ok$M8c}17j`6xY)GV`_M-R+P5vj+epxFc01SR0B zDl+}Mf*Xn*eh>S<9Nwk+oYU6i-@C1Fyw(FX+;`=Nd%!~RH=t9ef0v@5*HrJ_(JSc&)xKVpA ze-fjrr$?50gZ47qP-)Jf|fa^Ody_lNh7fjF)nR?>wb;?iu4qRo-91HrpkWeoh^9S0Cg<1s=*CHqGq< zjqyoL&CyW&=3}jdWx%p{yW4y8J=~vD3y+&FoJG8m4%VcX%?W z<-K)vY%A~N0*KeK0MjYKM`uXt9sh=8m^xqMYdc|&y=``AJ{^RPHqKxo)6ygi2{^^$ z?-J2Ib>(Om6FncH2gOhBNf)w_>`NSh1<)4jG}*J z-S9SKq-4>Dm$!xlHWYuZ+RgkA4@|99{w!TiA#6$Bg!Ig|7Mn%K*_8B4 z#e5<84}t%asyBGEjl8GvJ&V3St~r_ADuwpB4?7%m*_JIV3dn)UAlTPh^MJ8>dHOU$ zn*u;41UtQARAR(c+omZ=MA&jGOUh@Il~=6P$8SioVbZ1JNl6_$UW)~?&qWfsNIOPw zm(gMo{y8pS+@)t+Gs)OcDJHnmCSzK-oC{vXY^D@bSX0Ls{Q+?We?Qc?gPhT09M9JL z3nZ}}W%z}RBWiKFP?DL* zg7GikA4Ke}R&deSwWlN<>7Oq4Ore90k`EFX9>Yvl(VYSE$he;+DuSqz;(*GD2P%}W zb-oJrqh^Ofjv19UKS+5~r~W86`hDGxsp<&v!g0FKCI{;ks!zQ|zJ9Y&J))VhfcEi` z%)erK(;rAD=TKsg`k?S_%wb}YfRN*V>kiU9_6v^Kl_@Il~;w`=VkpbiMuV}sL zk0Xt29~X!3m3mObovp(6F7iRE%3Y+N;#|KA@?6||p!6cckbJ}?e=vKHF}{1Zf*i+y zjW9r7yf_8)I&&>$oI(D0om&?K&tRi7k>a39^{ z>&zALRxRUe?K$^+%rvB&3%;Er;Ix^>B#hpj|HAvmQU@XE1R~+d^wb;8E{naX$X+M? zr? zmcnMNo^@L_oIMOiM`z_nNpJT!x$m?+3OyTo;_}>1Kp{$3wwm{D zj72!n+3_LqwfD@qeq6>q0t**9wfBWPbCxMjo>8aff8`}aP6GEgw-J&=lN2 z`O0XQn&`2v1G$w`&i<;8kk&OwnsD8XHNB7Dcec4_pNr-9sTT_<-*s(aF$ONGd+{D0 zsJpSoRldP~Ed@pL22y<7wp-xr&Sp$O%PN1ceYT|X*)flcH@ua_`ndiJ3mZ0;=9e+t zjz^7>WSt@VLvn>vf?_}iymsAh22nfZ$lKcV`O_ram7Xg#j9w?x!0Ht9bHRYkph3&y z;aZqutr1Mht4JuO7iY&)bx#`)8jA9zUqq9C0hy+JFOSw>S+vqKKtY$P?}$eZiPx&A~j zNP6ZhHn(Il6-`dC3i~$rC-R$I{@vbtO+Y6!y)7_d>?v++{+ngt z=_)nYXkouL2A9B0+5h7(dF<$o`G6?qpFAqmeD%6MP6MHq)a>`LHokcYB(K$YiK<7K z-T#<7#x&Kck4JLDb$e(r)(s{yvT^IXBktH{>vtG!vd!}HEbHf3)qed&Rv?)MGR_X8 zseJnvA2Jf6&{A$IY(0p_Z@YF(bAvy1oJIb*W9lsvW+QfPn`NDi(2o6_vw%zlEJZc{ zQ+v?(fm8S)zU8fl5$7m(P+S^&?0V(6rzdT~JaeikCQ@PbUrJ>@TjST~ijVXVdtQV` z{pG!n9cZ9jd2cj@CajZ&1wjPfATXxMQW2s6AUo zLxy9rvQKB#s%pBa@C;R*bo1$y>Tti4e?i3wWAv!V!&*paC zDGTiDg4J}TWA@cj49TaKs6Q}AX08)V`FijZu+|M&<=+uyd9qbxYm)a;5J5%(djTeSm zi+9=}d8BjfR69A^KuzBar{#_ba4U28UG>Q)JnE0AIjrvrXb~(GhAQ1*B2nYKqBZx$ z6ZhG<5`U4Hf}=8tk-q-w?Ihyi%+H#z?eO--a`sU+P7xIrnuBI^XWS=>*sm=?N5;(5 zEGJ!^l<;p=usa`eoDhha#|L&(hE{tR(M^~e(X42?(BEN zPel&bNY%nlo+Y;zWTDGsv|lPKxzpO_s@j32j$XH|lwJNfYSkn|$^c1cE8sCr=W4Bb zlaI6hn6He1?0i-|7G+K9B?vm&`Cc+}L+3Kyf)z6-6q9pQ=LawWTXHWmUS#lYJt%Ip z7H!U1?z@03q}JL`f9E7FcHFk7bvj(qXpivp}qw5l7Qe2uz`X8#8B4Lsn8?)g(^1RT9TI%H`pQBw}&2l z9%#Re83gu+H(h7@aZ4SU71H^#E3})wlggPxmq(G-XBvl#XY!tIdvAF3gsUy<=pc}# zkOEB7Y!er2Ft*xx?xUc}Djzy?_Br&LO?7tY z(PWS#5SATCQCN_URqlM>(Xt~PJCD1mxyc**;s`IVozu&;Ht-$3O9Wu3UMdtbT1mzbDfs7Mp5db-dFxcNI(4_CC$%zZmL zDSJ~7KiE|YqlTIJhvM9YU^7S5b)Sx&D3&bkm?r<&5bxpAic{Lw zLFfK=AlF9ZRs?LpLlACa2yL{6e_0T7M>v$9IxUgi4!%CR{MF)5k)w|o)&_Ze&c>)pJ6(L7Eh4+)`Ao~#h2WUo&;C=ps z(Nv7?(vQ`+Kiy)6P2L{%Db@7pjMwhz&?zUG`Swn{yR#9uDlH`ZbqFGWSTHsA#k zAABAknJ$S&9xCyEcUVXz^qAb$?|Zd&Y|b=yw*7&9fyL|u@5MduJ3<8WPg9cHK~WjA z0kRbz{E4dx9k{Y`Ylb{4@KNvFF)L7?*bj-VxJ2^<3TJFK0 z*nr7k^3zrk@RT!pCq29tADYV47fkYKfRf-beUR3sT|aZkQ6c>`m8-7v?Vz%Z(zC%1bYwS zD97iHf#J+{`mH^7KkK2HQst5<7YMowGLGOxuYSn64m~MJr<|jrnyb;;?%HT?7}q{c zDB!*cZKzZNT0Cn1FMhrUtI1e07s}8MJp3p?pEI4i*8o0nxMBvf#$1)ZCd*FPkfUiw z@N`Yjgj~C2x1cPw+@#I%AT`-$gIqd;^iv^Ow`d2(_df9f9>#RAstM<^)9uzy@%}^; zzdXyf*;WNW|M?mZJVAHvh=T3b;|wG9H6+YEVZKK%cP@#zm&r>mHq8(h$0w=ZGe>d8 z(^B6HF8K@}Zz`eM91)9DyA$2+yox&fexcLOJj^Z6(~ccAb=_-TTmZ<+$l+Hw_r%26 zNc`+e{{iJvkGP{u6g)`iyDI{HDV9Fg;TctB<*Z;k2lm-@*yKD8|Mp)`yB)^xQ z>>hk)-et@A3vORLKId?n1uk8p+?Z3+d=4Au=bl3$8_YkGvl1T1ArT#f98+$Kv;(v= zSe|0fuNlcN(ub8~?5nsfnV(fUwA2y}ajzj&G~4HfE8E)c};c+j@)m%i}o`$WynHR%9~_n~mc4a&Q~c zNYuMmcr=cX8rz?X1;3|_mqC@e5j7outSQ{3T`}-+2jE7M4_Li4FWd!bqe2~{*G|6~ zE%2mMv)IMutK1dNMYF|xH|}Jjv_~GBuhaLrEvzxuPG1=xlD$+s8hCB~>+0xxFXb4_ zhumZke|z?rKcqVG6(xIE4KJ8+us7buu%G2Ul!Y9gg5vlJR@Fz=XA&Ont&7Muy({`v< z+7#Kf%bFZi7hmX}IS{ZC-082D^{hTbr1i}9B-(8LLW)@>-Fe1>Ozpa~)(s04fag8& z=4yk>w`cZ9+v!J@Z3L2F0hcWc?$G@%ZV5Tu5WEYN@{x+e9J2!O#WxEC0R?38sbB%w zQ z$1Zwiff_~>AyCH}6*k@QM{Npd0F_ojv1>7w8abQEcS4dJNs#HbLv`RL{F1alg&)aw zk0!1VBX1vaF6pE;TMxetkOuGWMfS`bPD(A$P_Msj1-swn$F|qKcLn?US9S@Sr%CBQ zdiWXSq)$DUYOJ%y;(F0=AS^Bq3Kt54vfD6^m90p|u_xxo_d-h^yGX%UPz^Wv{DQf~ zl8>sjgU7Z#aP3AUjji{h%%&@R+wIAr_JjdxbNLSo$p%Dd7I>bE!DU;iqM`M+cIp#= z*RCH62Lh^orkgl!t-FY;kDGDK`r_#pG+3`;ZdGjx|MeA&jHEmQIuH?k`XM|}OFxx)L4UBhkUXkRA57>5 zILYav=s8C^LNu+RG{#%eA>B8FzqwyR)L)X2;cgNUeXp$~jPb@3o451NpO;1G#?Yju z%DJe>Kpk?LSyrPf)JE=bU#3wiWqXB((=x}t+UDzkUH>|}mDT0+Gc!dde%baR{V35u zNgK3PCT%zE252?Lef9whxDE}mBj!K;MIbhEqt`l>%y;{4xyy$_alK30YykYszrs?@ zhD>D!Fk?IMmXt~6>r)^6JvEnWah6+hE@H0>+OthlAz|umy%8PJV<7}VrkL%qY#4x# zp1ZDvP7sjGqow52x@j->8N8_1)^H4hWv{lbF9Opd6Y`VpK8g2Sm>$M7^K@S>FbDQ@ zkEO@fdCgTyfMy2XW~~->-x;n@elA>qk56=-1u!tl;Y`3=e%oQnR}*n8>V_F z;`-30UeD#I{zJZzwj`F3wV5{;zi@4nldl(la13`sj>>s-MZr-@#~bJj){7$#Y^X5k zvJE|Zq*)Etx%6X~u}>M(NsShVp4*pevuxjh^{0>K_$L5oRb58YJ+XIphgd5?`es-( z%5&PWhI=1h(oN!H>)}q8hObJ1$ z_)^t7EjOd2p!RT~5HLT9>^X5(n{aB}H>eInf(jky`>B-x(L0_d?g%79gct^f$<(BJU&|L? z9&G)d+P-RkJ1=9?dno8Z1iEQ~4VWVRlxeo*^5baQ{EgRhxM!LX_(EKX)x#pxS7}Q8FARo%W)qNcn8(i#(m%Le{yZ>e6 z=OvbVVHm$UmFbLNp08|?>_iqaPS+?xA-lr#i-lJnpNR%(nIphS_tLL@V^+?Tyv)(& zw)(Qe=&xM%vp$7$$Ezz*=VUs=cQ!TF6@iOCRT8JqP>D~s+cB+%=AU&7m z&tY@lCH6)4NVJFYrj4VJPHgGPlDYzOZKS;T!x!GB!!`R*&vhYFlDa)>x_F`XPWRIR z(M9t4Kt(F%^i9jy@~2pjoSCwN%n5}->mC>2u*ZvE+X?tmLmcX*mXi|5Q)T>@b)`DMM{(fKItg#T85!sq=38bU&(~aQ-6HS9rjT1RomQOQqMrb0;(RB^h1qvFY89X zApNRaiuWXuwIAQx-69cy3}ecMB-BT_dGtoFD#y!E`+L8|G~P0Sxit zN98NZT$=zs1WnGJi<-4`?`AJvfX>a_bWnOh3w5i(l(lgsexRY@N5#?C^X)#g9I znImI~3)%k?X_>_q{p=s)lCMy&?SBZG{fuAdb!iRk z?K`6Q#-npxz&|ZUen;2;7qamGHlzJ9A^tBr;DNur{q)tgs+@XtGm%o_xCZHa^~Z@R ztM7k`V_{}4n{mf$aWpkGjZaP{Skpl!*m~g+?A@eFh;(fI!38|265@_fhcTo3z<~Va zz6U4+*y*^BL$zd6pZWR@!Kcj7`EBlhu>ixu2?a~}M#{9hCSKs~3O|wjE0Z(W_RcgLDLd5X& z;9A>T%uMtVkt0>EkS&0{d;sP3Aqu1u>CPjbyWz0rlZ0BxlZ z-wF#=9R2#b#j*DMS11m}$e%nh4`hE&S<`JDK86?s-m?yKAL_94M$&V>FCtQkZ*qh? zEocOsO{}Z~ue6c*$OBa&19g`#y+~)D&dQPXSH1H(Ei+8?xbW}jy+Ar@-+9G%`eIBB zuF8Bj(LeUG!Wh^&+zcs9KrQ$9`RmhC#mFVldWwo{z+XyRXppsj;sB`V`?%>_8!881 zS~aJO>a8b#qgj`LZU^SIkbFlAH-5#g z3$%`a$;iuUubub3f}BS80e>81J%qiev{N&x%QJza{2gK@xz`mlgpdD=5Pzdgui8c- zVT=|!M>9wh{~$dze;!wxLQ=R%KHN+ZVw4wm zZjY&o1W5?=TljZD4ZbR2)ujx)B1KzrrdTuxLrvvp*5BKp2uqscJ zA!LmZ?TN@7DI41DF!-XT(G*1-cY|9^<*LIi?2xnTkqsP`N~b}CdiOP42tmJ|oo1&U z(CJi-mNWO|9y8X14L7@;cXwmOW!Gn;;fJFt%}T9}cd2juMC!%5X{R4aH`~kF@1^a~ z^Pm{5ZmLkf(NSZ&ZS_97I!K-4^ZmYab+bQ~bH@G4%1Yyl%I;x~wdulRlZKiC02G}v zgU@dITLH#1hXAl=*vC=G$;rG|i`P#(Ps4hx)VXA^SO22 z!&M{#TXR^H3F5PJEYnyX!Q~awSd?dg6g$s>vYShDX6wD2#f<(ng50)Zs2q$y2&P5X zNQ4sO5VKlo8Kx7^dA0Gfvg^S!SERo0aG?&Fo%fcXzil5)7c50~Xj70G%wg|J*CxE! zKix!_AVeMb^zH7T!w2Bv&@mS#@$C54!bid=-Clo0@4MgcM%b3(mN+S1r1#!yfB*pkWG}Dp_wCNk?Ck7cduMbqH{9HN zf8~_tJm(yTjtz?*9k=Ra877Rw9{HsUFXA+Ei4vqy4LM!e$DZ;&cBQl5S_pQ>Xp&`T z^z;T@`&hPelxC#iZWXdk@icQoAE(mT&RpESuP8bU4o9ao*dV@x)CO^&1I`oVM=r@1 zt9WVF3&GS+fdCefj~CO*!s!C+YHx7%Dv!>(N=lx`X{9sD;&8cLLlp%Ol(cAVC9V#* z$JO(YMVIss>SJCGlsNZTg|bY}N1?j83=Q1xs(6ZV6YV*kjytX}ceqVAe^D?eft7#c z=FVXj$n)~I<;2GQwm2fE-SBiy`)nQb{4JsG5q3M|S~e19`rny9Ay;y@$HL4I!5yZ< zD-Fb*PJ{|W>730 zY}J8vXM6V)w?+Oq9Q#K4nqkhj4Cfim@GWU&xO#uBy>ZjU1W86M=i| z5{M59j2A1HR|r|qi<+*4wXZgXOTfQhWm_H)er$lwcL~`-7zxs|OTl>?Yt8OOK_7JF zYmwh|Fk21IR}QcK0h~qQ_=bRb@-tuFC9t?C#W|L~c!(mcOSsLttSrMQZ|SPp@h6He zbm;-ykrz9tewEBSSb*P?sG~oQhW{fLCv@{g`OPp?iT6_7ECpPx-1G<>5&r{oBirRt zzjdvl>s*Gj%w0%N`R8gXar z$WLfZUK6Vi2xY4&RJm*6WzRU0-WYIKt;^K?Q}3hqNYTwR%p$wC&{^mgrvT1j0{3*D z0j;BUmx`q%t((}6^ji-$AgTAv;KD@Aq`bgVrSOX*~YP%NEfFUCn z!S*+meMIqzJFrsKBl-s!3CpMG%}*+Ocxue-P9-5N3MXVGZ{LD55qX8fmR#YiFY*0AJ^N%e3RR+^}QW??O>0Vc>`U&c^)_E2DIBVs~@ zH`zzWrhokGD0RW1Kqwuds6%lXwgAl_E_=Az-T4)z7Jxs(=vVS=DYwJM{5tAMiYqY7 zz){0+Y-5GeT9#hab3)uh)OENbwG|U{l^tmbat_MH)#HqI4+3J>MYZFfWxz* zss#mw7W8XsbNvk;gp@B*7kh871aB0URuL(;a-C4G$i%GuO)9D%Zz6C2#Ap-mu9YL% zY~mjP+bG$1rE|WCy?RbM2kKE1k-P`^c!5^PCpy={KL!CUkV^B!tQk;!SoAZ9}ewOSuC>-{git9HBy zoLxs4OCkT4;Muij|NQj7wPfCN{HK;osQ-U!$x#2dmdyY4WZSv7^g=)5=f5w}wI@sS zA3OU0;Ya>Yw~Lwiva=Yf&EBiLSrn8;>;S$j zKzX^?HHQy64Nk^fja7uqM(U!YS8LaIT+{7r%>&!_Z4^%Gm?_`!xEnOe%2nRh$Bnn_~>m^WaoKp6X*f#unA^2QZnb@p-O?0MmS!p+la>cXo*l;}x2Wli$nJk6^+ zB(M#F2y82it@q1lx=S}S0^Eh1QVxdM;B_J)9`toCD#pxUC z!RGRktNBb|0^7a;j|s~-^UJIJFiw9}JY&PuSS922AZEsJ_`_~uTh>)3UVmfFq^9=Z z=kY-krra?oI>aPS(v^ zV16?7OLRcgsdAd*_t#fGnQ{0#<3~oZVRnJ4kGaxcUA;G7m+Wqyb|sAs2hPnn-j>u* z%JiH?y08p5+329(IvdT-7_w%oK^CQgD&{m^!hd~rU3L6Jq#x0@sk9p`ZA6i*qd!^P zV&iE?3|Ecu{yFDOL8LEXp{+MnyewDRAD$~jCoVDwO^=}Qe755$5?NR}Y^R#oZ*Q*r zn&x<@54vc;DCLV!&G0pXL4sUuYwnRk*R87YjE6O@uP0J=b!70Lh31;7%=X4>H0$V^FbVUsFg0p?3nHU(Pr@3Vq z-d)#kO{Z~{QLWhST=1jTiTFk8(4z_NASc+&y&6`wsgy5qV-0C)yHh)#5t_gnR~Q>M zO*1opJ5wDocJf|F&n$xw|9fVaB>Z#)Hu63#Wg zlMCuFpDlBeM1CE(GhP0spJgY)ynYVz`{G-It_o)G@b*H14^u~^@w_%`o~;LL`mqO3 z(T?+hRwT&$%18N`)tw!+Gz+zFY4r)j2}#LX*3vM0tRX8;)}=pn^`BBAd>8FwJz!D^ zhWef>{lbqAZR-2-d>T=RD|t!eWB2p~hXSegBt6CDLySFgsW-s^2MPoBD8JDKTlD_H zdG+|xiWdZLLPETHexA(3hkMr*HBlsuS9r}kEl)}o*&(b)l<6}Cc=ITpp} ze8?)|@hhVzz({F3TyJGlwf)QKu~X>-X^0`b@4{QfQS{Uv?vN-V01VKeL2kPw#a&?_ z)q%yvQT*%fu}9e(X1;{@TJr(7le^>$wxOQV?woXP=+5Z2p7YErMf%)^H#DeBG#) zFK`{G0mKebh%d*UJ>tNrq9HvdVCBqdK3R1GbTP-~dsx@|XXA5uszvYnF5b!Zr5yF) zVf1uH$n5LW&fh=1`tL;N#~r2oVdYRZXBOuO-R)+N5Nm~%BywPv zBQ4jI87t;Rr=Ha8gEFu32Vrfmz}L=}%Hn4u!`R4RR3>v*K;Chi+S*{i>4g=Al9z5CM!d*U)#FDYBh5~a8tk5i-rkIj+)kROYShd0hYM`VIaybF)npO zSO}-{p>uATOr=-Pfrj*jD zcce7a%L=#)_9pK~_<2nGv}(K7Cyd`uV)hAV+oYr9!b4$*x~!)UCADaGSs#ViGu#*5 z?+zoK=Lc3V%q4Uh{8Gn#g6$9D{mdu{d%b_Sz5W_ry~jRwC0=Qxa=u{i@|0b-w4#6; z5wasF!LZ5@zh4?w_sPZ2h9Se zoA##t8SW}iA^a)fBB)(zhr2zlEx6-`{pK2c)gM+>cNCvD74U3xvkl(A{4srP z10rmgE1RHsQgm8hPRyQ3m_*Zm)>|J}qV}faWK_6U3JrOiLA=;pBjQMfhPkwSfRJKY zNxaYXaFn)6xj(lVE;+zxEjE|h&GwS!`1f2#nk9379}RfmAlTNS0yi5F81TL%l>E7Q zRzXT){)Z0NF;}%lqww!PD$;9|Tl=-lpV{*5!JF$HHw_GxXz#l=^Dw`4+rvkzH^os6 z{$5!^@V-iMcYhpVbR`BRsoF}AW4hCrOfB&MU1QYkYE!`O(pz*lyk^p(Hrc}N&P>#P zXB5bax>^f9G6m!QRN&bN!i)+?{P90qq6f70+; zO&&NO-!m=Rt`$MRpSn?f7`gXEv1&=X-mj0Sys7Ki9QAQ^qu#+=E}T1h;b@yc29!XjnU44Q77}((V#&da@*}(juq1E<9b1 zEm@vek#Fv5oayuwuu_7(`2U#FuWWO033`2eMW#W@hBtuIVO2P7X9msx@;#SO$6%A_ zbSiJy6{*t5dJTQw{+I)8D4F)qGf?J=7G7HRZvJX*JjR3T_GI}vV9Fg4IdNXz_I9jr z0M^jI)OaANcqfi?zl?6xvr=Sir<bK_G&y=JXzKYN@BHZ$b|27*chzMiZ+TOB)iS=(X*0tgAq~-u5l)a^}vV@ zO6_am+a^MeVDFK2wdDzjDlW9@I-%c$0e)i*at&-CPdwL;KzkPqjdgRZ}?+}JVh*TfSBq)D%_#%G1LmMSBB$liQf^HNF# zms(||1wHifkB+X7A{wzZQV9WiSIsp)WMmOx!sZD0$EQz7`@i7L%RL>Ow&}vxN$%{= zQSFpp?cl5WS!!G0igYwz8JI^nN&W!*rm~bnGJ@`=I{zb>eMjNe-Cn{XDD9U}kZi zXtt;bz{t_H8C>a6F*jqHu6h54MkZ~+Tja!?R1ScGBgY+n%uN)!%d5x-Uruqp8Ot{z z#xuy&0Rb;-&frugDRm<=bgF*xM>n7BgPq+Xv(UEoUOeYv)*h9&N|{14-||T%#qW(t zst~ADxIJRG>EOD<5(`MXb8YiEy4RVNfv~0|Y_J!A>&k44*n_@Gfl;rnK z0r7QgKeOjMt|TW@u{uKyCU!N_`%Tpu+4f$%7PWWdt{uO??6J<-7xvBd!y1+VNtjOZ` zL$2~?z7ID1b>?GIb3w1_2y-Sk&-&{OCR|dXiG3H6Tkg=`GPMmg(`k~(4%+c}BKZ}= zv>i_7qL=@cYwhCB0r3wr@fxPJ*W~A=s!sV|>s5?5hy?_W2aXc_4&aRc*G=Y@`)`e5 zq6@PUz8eGs0IQ-1afWYPPvGEt%lvOCTXO9G%SolpeXPAmHj(%G`m_CvpKgXfL@7ko zzg)&K@-(+AVwv>&%JQ=8HP1gk>@3iJ&P7%_xIuWQkAZ=qP3oZO4P9~w46&9J8Wv{q zhuP%ur+>;$0vjO(i^d9iZ*FMlg`y(f-rgQjO$zIMK7%^9h_f?~TV^+f1A(E<*(sk) zmI;Bo?M?SnM=7yS6dGhTG^9sHlDy%&r>{m;dcijMykelTMYdAt^k_eqki&a=tWhrZ zdTiY^MJnJmgm0iSRVrC8J@t*3Ds~4jTxRHc5ePL<$x4NV#>(cN&-szrOKl!+AEddr zG)U?3Tb&nMq)W&H;H}QQm6aDS*Lst%H*iTAXScvls(y`M<@12a?}p|+cz2R~WgdCA z`27csu~r+YU0%KZts0F7X36d{nhI)&eKD#Tf}Ipyjn51R_2pm3AgyqvYPJjm3>fgz zjVsO{+7RPai5H)o%pxh?8p^fOV`3OjN#DMGBd4qjnpbZ;*yl9YJTFo0M7j%>N;cHh z&DoYx{ZTh;O^miMqF-Pbfe0e_KxVGi0+c>>oYQE6jdq>1-rCv&Us*J1mu_ow!7oX= zlQe8SK)jW4K1(IKl5%k^3`TTsx{I6P0giZin*Hxb;2|DlJC(lPp zjGijUGu0cViLJxZ`6WdoLssY9#d7Ohv>t7(B=$#1?jiLH5Krpk<9*MQiUK7BCpl_e zfBa2;jf64fLSnlYjbn) z;$%m^!AoehB~Po!`Rd~2d1!$WwAA;sC6_`U*bqAtMZxiId2MKtXh8~y`oWJIJcD_< zy|Tqln=sozEjURJG6~XDGB#!j49uHauogoOTO&QRQ(RXn7oEy{237JnyuBKy#)b8( zCn+rlFCi<+4xHITXOpwQ-Fgf4O{bQo)CZ< zrZ}D4A(^RfPKo#>67+JH?wV5C^>w8(*0T*YJFATI*{x%FWYIVzZ2&qnf(W^$U_o=y&$vp7YOwsAuar*1%*((su=?m-Rc{5vba#S=Hlt!&zeLdfy^C-8DQh z8v1&0nJe<(+(zORx6LO|WH!~?#EP)iH%6BO#ulVlIw&My1{a63Y>UxFiZ$mAoAcbI zF;SVra>g?0W@{`=DVsay20RSH6xO{#B}Iblg641~XqhVa=C(>&A^(IkopPxF1$!QZ zM$+q4e5p?3gNDYt3PBo+6q;;ddlT2I5969C8<%SX5i?J`3BL5L*f3?>v)!%mDl1T$ z(kC6D3P4drprWQ!-;L?gD;t4y6~=1uB+Q1T05ocbM$wT=#aNH|9;rj!T{IA(lMk_LxR|l?tz_F-x6WRAPEt|EiW3eP7oT>2#kArgwkS)F%;kxme%i1VtrRXTYwF?` zv2``tsl=G%r!sJ8yMdFfR~WU3%|5&x8UykRUzs!XEPd;(d!5=<4C7~=d?lZBVmgd{5AW@{ zn{IA_32pLzbsS0PVy~^SfIN=(eQ0d&tN*mYC&lmQWoHb1;Opi(K)tj7X*R^)CfD!5 zPtKxG8tagmm=)ufXxVMp*x-%dcGt1P1BYvjD^+ zGlJpih#|kb+>c65=&A0i`V!)8>!MpR!}O<@0Sz=4_}e4kGae^CK0Z*QAQ`}_pLrY@ zEw8NHNHHfTC;j@_=HD>SUsC5}(4+1J^Ujtk+j60n!DNyq4%V8f0DA9s z^77qE3gfg$1a5#Sx|JlhciTzI9Fg;R8o*9O^KZKaVRwejI95noo?86HPb7Ez!wo5` z*wv~ldX@nMXN#xM;kP*h;J#sC=WR5m77RHx#KYtTVE?-0xTz1_`9}}jY9HQlG)Uj6 zgt8vECFjbjw2f#pYIihuB~IuT687cs{LINTr61U<>jKepHNQ!%@vCLE@Gq0pBQe7p zmYosb3v{82B!?o*gASC==nlTx1t;yeW%O>(r>WQ(66=v~y-4sIJC3$>pJuh``f3nR z_lWzEHc|ZR)W)pn^Gbiu?I9SQLAipLRdN3GC4){;#3fvILz0f|;^p(RJ~$TGu>9~c zIhjt}4_G`gt<52@Dy0oBABA)idvB`|b;J8dv!y+~0kEB8te#S5vDptj)g$RPyPZFh zHE1%-x3}G5N~>dn$f1~Pa@XFU8AX2eUqe986eKNDKn&tPnuAPiB4WgfvPNpL0U4`> zzl4|HTt2qg96$pU8kP$tG28r;`RLK3J6Kz6n04c6m~SkD%6l>7yes@4#|sVWIx1`?s0A(G<{F7jCrLP?%K-g8W@3)-k`hos#$Pw5^4L={4Ohu4 zxKV$j&M(@0DBNF$9_MJxo{PDad@mI={i;%Ul@0ELC35t9F&A*ZC;%otjT&e%!Wv9N(C^76p2t6WV28LP;vC=`$yU zG-wCEPZ0X+%&4&in)lvj4I%1V6LS69Y4_!Hw$_@{+y7azDvb*g-m)PXKz2`ad9uMXGdS()*3`Q7-ou|RmJI4)NP;7@YBZ47U?QWW?Cj~DP6YdAd@j#>j{w+He$LC%qCL?4WlDXt@uRU zwSVRMbN!V$t-k!k#g^CeKJ6dm8{;-R9KjPi1l-8HSYv8c)M5uAmOWMi{P!ej%ClGfM znDEuXa?|5}W`W#C!wm-M0zZ;U%a{XNuX#;?@zx`?(bt1SHw$g7$$WapgM4{_v`-6& zPZ3s9-E(^<1Pwhu(jH8?1ktDC{FHfZ@WS{&#ZMkjh2UummOEhj!&K2qiUNR`3j#Pt z#m22SCAZz@T(uU1KO5_tXfK{9?zNsBvnvMbXTefYBlQBQr62?N)=J2+z{j?briCjC z(f~YC#;(EoSpwSDb?mCzpQK#WiG81M5aPuD;6K{cy~ttVw9h>H=7KA{NYxH$A)1Nz zGhC?MT#K?$DNz*e{zpulYO*!r1+$&S_5;!Zc5d)@y7ZXNDT@wa{eeRTf4gdXd?_7U zE~%u;Z7i^=WAbB*uIu*w4bD&Cm;J9zR|CJ*ic+ay>{Nwy*3)ZYMc)R}&|bjG)8V+L z`3~s1?RpB0Xuv%!w)e@#=^pM1nTW+UknZTmk=*EUPb-AcMG1ML37WTY@30eonk` zc6a1L=WhB6{nO-e2B@OiV4fgf3i(#xw^+h+cL5QVFM#4nglTPH)_X zK;O0OR&dy201Y_1F>a4%c$z5LgrI78+3nL{!@?pR`Qi}&9roybz1-sD^m^S(_FZlr zLTF=3upB=-`=mEUR#&sJ?>?reVB~NE-Vmo1#(F6{eR|XoJRWn@XA}QuZw*2^c2toh zJ9BE0Eg>$Br9lE1|1ABMb$JqRg97l)0v|}P$wY^n%uP4VF5zuVb9n!bmi6OMc<{#Q zokNY(`4avp6=f;$vscyqu?HP?z+V$sjgTDt(H$@SIu;n%@#_(u4byh_^EjvQyxihH zo1q*EA8;zuOTz`apQu!o0^)aQBru=H1sA=mvE^lv(U8Y6YqMozMWIopes9jiic6+A z$gE7D>zL_iu<><}u1$9t8+cc04r>g@I7NwdMoG#E}a75UO2gKYi6PHQVG8XN@D#_+_J_L_wih+N&0(6XURsR7nWIeioXg}jJy4k##M8< zegwU)t9j(+-xxpL6}?|b!mAS{4Hdos@6;BoNvL-nLn%usqZjPNg=@RORRK39N&>m( zIihRBHoH>(?27HvAzKrloBPu_Qs2bVp7&z5gGMYyAK1@2O+Fakkx4b)Xi*uJlU}eV z(MnC(8$difs%iV6`~4F9{Cfbm#MAC_JPaF{)1Hw1p>tOIIg$TWmdwQ_tMui89FJjr zS3_?i&Ofg0%LrPEE@oZqtuIs!ws}6VGf`?`(a4zAZo0@A}GtoXFq8mwM= zThoD0tJpyEHfPo6OVV8T1^)5MS!{=#uM;@B=I_@9E~N?Klx|Ut3kriRSu_15A{zW_ zN<2k6r8w8mFM1L<_2J$rVN|@%hsz4^g9Zdnp;(0(A?wR_DDr*f#YkGZ%H_Zo~rgVsAJy!(r&E;PLiQ# zYtd8MP;U{LwMqqv@a;1(s9>VPllRPF_bsJ7g16*eb&6jVF05!1n_|Y?yK)ju5T7ev z5KMU<pEI-ddTJU4R_+U?!-sd^SV*rMsJW0JMaClEo@vM=%0i2Ov(FQqZQGcdCH0<*Q(J^i6J5j4hV zFIvv9N{_!Ss%q>`#G-*m4$=O7747qA;sSiQb|X7^nb{dGZ|m4Kn6V_Y)^$~JefXHV z!pyzxgqcrGY~Zut`Bu2b^(-he;EG<5laUi)lfjhSr~a(&zE-5O7V4`!2BERY|Rtyg*Y%g zSt*dA*XE;O-ir}(-26#1`Bm?wi*7snv{UPi%L}X_g}T1yQ`&9VNPXtKRKuR;`qsWu zi)bBss}l{A+i8nmvNOdQ)Ku9xb&WETX(ykS=6eHt<%xi4owwsu*&Upr@xIH?J^ z-UsuIOYhYcPDg#6Qhm)9xV{-7JXV})au2?|Nv8^DfIqeQ9>8{Az@w6bqUXK#@^B>p zpaF-o#Wwh*_*Zsc&kV%%jD)vE2m2X_)F*bhk-jzQG0DbG>h-ua4zTa zl^E2CASDqJVV0r+z-`CH4eWBK;BqCG;DYI9L7+}m+lo+KmK{tuD#4ov=VH( zlx12BBbK6Wctfksxdo(SXDLJO6cArK5$%DIu-W*vtXd&@JL*nA8^4_A*C(uOyy!a zl|KVZe@;x&hrTA#beZW@Jg%Iehq zeO^2BCQ3S>mh#O}bN_!*uU!95{gNlobm*d17hn|#~694=M?v=OKkQz|ZL!D4;@j5-1 zbWA!&{<=Hyr1&4;JVsA>blMi@hL?16qzB#^9_P19ucAo4^+5NK z-l{%5XJ(+HQqT^yD~bwTqyd~;@iy3OpWiA_$>e)*KhQdD%P#~L<<1U zobH|N?SbC7t=LvRr~h2CYX0h$?58;3rU3Zd2P6tuIXIBs8NW8_^eXs716%@8LVLrX z-;=VPe0F2j-#EB}meD!)|IXN(2@cjh(rh4)!CXH&x(T>m?(|IK7B_Y?lTt7=Q{d(* zA{tp)*-!AMnADBc)HVhte+OUkf{I)vd)mm{WBXY9)9QW80$XjTjQC+liVUUU6gZaG zq*X-b;yu)CP}w(LFoUX8(S6EUt*B0_VKCzrDc7?MJqzH9Lzbx4B{?FA7H|7V+tLf0PJFGP2s(Yvr*1Za_mh2;hE2*Hf*C2*>Alg_w2&>feK zmn=@diMZXpfv0!O?ki8BmU~Ydy#R)cg{7wvIVZb61dL1gD*n`(Fl}CMWtYkw&v} zd*`-y>~oO~re};x`Kk-YXWA$eAJ$q_0@Yq!f&%@GiUq z{3A|QCAxFIzsJ^3g+(hk$>fG8cK)``b5Ke0hkLNF1OBj<>cdYeyT2q`vo^ksATYCf zeR-FDRJUz{X3yqGH)_U7J&w~b9$K)hKP9*7tCt^vk$ot#VbbQ6m<*upW{}xl!N&Uf zR5Fztf)k>8w06H^VPa$EVI`AYIN!;Pi?p^n;~LGEkdRq?@&1@o%ogw7zKR&iA<8#o zqd(7o0(9MB85A}8@!hb%_&2djwHg6WLy7)TSB;nVW~(Dwax0g9KW&K&zA~FJ0!)6I zMbfksehTsQumK?KuHz|0ZQORlRr@4!-|L3w23PLs806!=Orv?i=P9oprkp=3n)X1& zO2qFbEE)XuF!p79w8AY_->%;!t%veyoii0pk|z-zk|$c$3j_^|z{`g{$kwa(*px)R zVqZcIHcF57T%IdG=cIee%U9$=&Kur-_ZjB`0q!&Dq3~SY*H58uf3F;v& z-cVZ(RKBhpC}weT`P_u@vDV{8xDP7B>vPAFd3}%iqb-JXAzxO(2We|MJ~VXjh>j|i z4t=EYrFeZ*9qw(NdAP`0}@~d1z^6i%0;_v|z)%gO(k;G5NP+CR(LLsu@5?^z- zOZ^!)-@Aj$!OGKxQ=Umu*0Jp?iKAoOQ%S*s!MVESinwf z(CNqKO4KjAPaBkXs356{c6VyHZ>5pm`8o8-(yzv|+aEcyPlwA3%B1*qDw+2dimY zVhR9Ahw%kDjt*LciJn%z*vVF6F8kQAT4_Wz)>jhiATNqVtm^ zEsGH!f|Urqi7ZVRRu;$cD6pIG!i+yERc6(0L`zm|Z1RKYrz(ExfJ_PtlRPV0Aq@>0 zydc3z2edlWi!jxG(ST0-Q9LQ15SQ!!KxMzT>z?lW=u(B3l>3z@<9f zshmafgqg%UU6>?2iKlGmgExSrV>}iRSv4%vzkm zL*jUOy#yS`jfU2pCr^#cGqKU?Y8>C6_85*@2~fRtZ<7Iwg(m#aO4jm>ZIY)1uWe+j zZUi0fcw=V&IIh=g0!)bci`LOMT$g79QIRjyPaDq27akQJJ&L*@jbsSTbrD zWkNv+F&eI48Mdv#70XQ+2}wEqogb6@9XAY|%VIu-esT8`vF+J?6gzCS*Po&UI6Yh? zyC0#6l^&no2TriST3g>?CoM~>O9EBl!rK2*c$h?G?5@xLK#+F%GGu0vF1dWCl?#6w znm5)XM5sOh7G{k=+xdmDTHXQk#mI_xcFyfH=Cel1w5x!_lWUl-bV}nBIQwa23-;Dc zv{mb^MaICwP}h+Qrrln6ig1#+3CnHYFHq6h>WMO;gh+ZR_B29c)ota57yRT4Ka)5u z@4&LNwoo*tZy`il-d^Fau`<2>N?u+X7og_&?6NmI0G(rI2Vj@yt~{VE@AQ82K5Uih zJQ*(>2OohcJld()yMlmO@-voRi^IypiIS=*@+IwXGn451Xu|Y?&@Q`NSDBg9mQmM| zJ43gG>BHW4r5SX$)Iht>Nll(i>}RehpXaA)zX|xXY2RM3sUTH8OYTi4k(&gXS`pG@ zVLw8g(#6R%53WN`al=&s0@~t<3iH*3TI33-5t2yC>)mD{?HeA1vo~VZA`Vf2sZbIW;Qw4KVoidw7=8DQivG705Y(YC{4&efqJ_jotAiW2 zw0{7VP~+@Uyb5B1{B5sE$T_IvW)yGI1PW~M!Wlw4XU$a_^?(@}0UkigdzJZm`7nll zey(G!_uYzx_w&=s2iGn=?C2~#SwNIhMz3IY+D3mO?~lB)?&29>E2A&%v6v>%x*gcT{OKyP-0=Y`$az8V{8Gu6h*(b$fDjdMDuRuOoury_a+F6RPmbyOwI_~GGb-)9Oj=7SfFvy9sbJ@+(NQ(Izs1sH zBn%sIhD|!77U_P#I;kd_*EqFmyw9H|73m9L>R%0Had@)~2f-S~#$OY1WM6Es2#?(n z7y%;06B-A$%+KABw&x{xBa+cQ8RNpbe|?Q%fvegmm*vkfeV7@+ZwH>h}PlHEynB1gFm(m6zfXYk1>-O1m02T!_UaD3dqpS_4{{5&#^xp>MZU3`D`TviT%*M>LS4k#J&YPoaO*=X;rVbMwR^0EL z|G0N#F?80?v9<`ciiS>yD7?=?SR)CwaI@+D^QHashqGZ5)1Di{8ofK2*h4oh$bh4Z zScDmz&8y#_I-{tCB|}wc$P{9~?|s8+2y?1DfsOz{9aDQZJdELP+YDyz??tmt%ihwk zqDH!_{uGs4motdQes`dehab9=6d@P(mxEPC-*dyWA+hzbJXz@jBIG*Ufr9bbbGtV= zDZnwSiJM(M!z4JNZ@Xo3%T5T8MgZ-EwrDn0;OC@B05|x-tH1b8R|I&*9-1HwzU|6w zfnC&q{?c7;K`mq6&2N;bnA*9QP|eCXXfy>kGA;u=p46{g=|UQ~Gq&K;KEu$F-9e~< z5+;$~3bo$l^Eq;mpQo$<;5elZD0oHr+Z606Y{}@JS61{%ta>5Ymm%enCM&+|10Ppt z{@#1G`$CF!&lf|ri;+`UJn5Loz2%6>U5`uEo>pt{aI#-exc*qy@Gl#{hEq7)$Z-lz zTiGYpn==*ME&Zn}u`T*tsg)ZJhXf!Q?JKp?dUNmr)+9n1Q}^>n5N=WoF~A@u*@MCa z9KC_;r0U`Cs2I_J-FyNPk%UFWhhPSdWY83x(iqxXH~;lwcD3qHhHO}F zyX{7n*jLJ^=#u1J-u@-?lVl)?#5}JvCe}5aQf>LZW8{Ch0G291BxaZAXXTx8Kw1M_ z^pMmHou=65&#dpj&GNXe2Azyr`vETQX$X|0^oIIqCB~3(pG0E*9{`k$G5T?Ctj0v2 z&c~RJqu4*!ko`^f5DA?Q=b7Pi6{`Rce%l}jQ6u_e?*Q{ zfAQHnmI->FrszqhCH60+lN@I!CREYBO23LF%c zVwcMHkGN!F_u<)-_BkYX0M)l`k@5@;@d-L!R%O_Dd$0s7copJA8dy1y*1%E2+HlrD z*PV2a5D25vaFlZ(?qo8XyHWk>6qF^Mh>?1|jq*K=bm4CKZ=)cX9zOz!gau!bWv} z3bRuLJ8R$PkE+cb)cyY!%Z%c35kDpcgWZkw(0+kl@Ev*}Gu#RAC>&larXo$97cdGE%vS|m&)hlPnvI^Rm{ z7k&i~n4p7J^>aL0Fnn$UK9Sdx@8McTPZeTtxzBusXUw1 zuh?q<*(s!ySq}*D`}@sXviD!m?^1LeGT3xY?=xu$ah&S&_eMaD2y0VW?QoY}U3?S4 z-=$XUzuv$cfQ8U{lT8VNig=w~?MNOJHDhfhVZ7*9UXpetj{Q|-4@E}(z|QTq%{z3kq{Er8DaVrK7R8dA@Gc z7nRoK`{|4bV4=ho4yeLY+1A=s>#u$L`8Unb;j92%z;v3^iSf75_3`3i7-nxZILtZ4 ze2^LJ#UpdcThu4{CPR;0Ti3k>(v9I(Q>fdin>DAf;u4`-&xjvkHF4Zt8q@nw& z5m16UYC#F}dKpPTW}Z@aHRk-zG?&{liM~mt&0eqWN5-8KgUA^`*6v= z0=pVwLX*_1BOoUUS#VhXdF|kJh4aFa46Rn$6uKIrLIXlwEq2i?1ddPm$Z(v0AG|(! zy6|g9dLb}?)B7|W&qwB`)Jok!rvO|Fc2Rl{)H%*ouYN(pe31OZ zKFD!N1f*ikU?HVr!>2B?eg|nFvx4^Qrt�ayVv?@M%WvcW?N#>ukY2XF#ZPZz}I# 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 LNkvXXu0mjfy7&#+ literal 0 HcmV?d00001 diff --git a/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-3.png b/docs/azure/sdk/media/assign-local-dev-group-to-role-azure-portal-3.png new file mode 100644 index 0000000000000000000000000000000000000000..c925c495719136e49de444d451974165610ff63c GIT binary patch literal 45119 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

  • V%y)E^Q$u|gbD4Srtw@Yaoz%v1mcR`YM(JmGozYiS{KPG;HnF{@+G*dluvDrPPe7EmL5`qunIRSBC3>9K&;D;T*Q+u%4-(Fc?JTibWeEgoZ<^Oy<7Z~u+gjn>#8cpcoS zz3;P!Lk$scv(_LA)o7X9ePulkxxyPBpbHx#_SfYmtkRYa-FyS&MQ~6@m)J1~tsnUO z!g46(4HmEmhp=5}Shr8nqL4^M+?!fj`!B#tiL%iQKDlD;s)1jZ3!feZhU)Mym1Iwj z&HIwww^b02x^EbugCH@90ykvvjeBrh3T;l%`^0wq&IxrzH#^rC*JennWq6BCE;vws zc#Prj8pQc@FxS2$p6>2J8mJcLxa!piZSAtlq?{j(wd1XOnN|?9@A(lsW&u6_*+K=H z{0GsncvP2JanE)OwJV(GV#YXUI^_dojk;ZKTclmFbziI|53>a297`V7r796R5)^gU z*_Cjb(|~`lznAe4rRGu|ofVqaZA;NI^BBVsjfIaQabK_{meIge)>5Gp^DZ�hczd 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≺9Wiv@#qpl#qL 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≪P+Tw+*$qa@!i>|Uj$m6(YG+< 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%0Dg4Rz!L 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�jm2QX3bvZ#t%Mad}+i(}$Calfb+$yI^I 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