Skip to content

Commit 2e23e7f

Browse files
committed
First working version of RegistryEntryBuilder
Add Wix project to make sure of nuget package for heat.exe Add Powershell script to support automation at the build time for extracting the registry data
1 parent e9dfe56 commit 2e23e7f

20 files changed

+2026
-18
lines changed

RetailCoder.VBE/API/VBA/Accessibility.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Rubberduck.API.VBA
44
{
5-
[ComVisible(true)]
5+
[ComVisible(true), Guid(RubberduckGuid.AccessibilityGuid)]
66
public enum Accessibility
77
{
88
Implicit,

RetailCoder.VBE/API/VBA/DeclarationType.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace Rubberduck.API.VBA
44
{
5-
[ComVisible(true)]
5+
[ComVisible(true), Guid(RubberduckGuid.DeclarationTypeGuid)]
66
//[Flags]
77
public enum DeclarationType
88
{

RetailCoder.VBE/Properties/AssemblyInfo.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System.Reflection;
22
using System.Runtime.InteropServices;
3+
using Rubberduck;
34

45
// General Information about an assembly is controlled through the following
56
// set of attributes. Change these attribute values to modify the information
@@ -19,7 +20,7 @@
1920
[assembly: ComVisible(false)]
2021

2122
// The following GUID is for the ID of the typelib if this project is exposed to COM
22-
[assembly: Guid("e07c841c-14b4-4890-83e9-8c80b06dd59d")]
23+
[assembly: Guid(RubberduckGuid.RubberduckTypeLibGuid)]
2324

2425
// Version information for an assembly consists of the following four values:
2526
//

RetailCoder.VBE/RubberduckGuid.cs

+8-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ namespace Rubberduck
44
{
55
public static class RubberduckGuid
66
{
7+
// TypeLib Guid:
8+
public const string RubberduckTypeLibGuid = "e07c841c-14b4-4890-83e9-8c80b06dd59d";
9+
710
// Addin Guids:
811
public const string ExtensionGuid = "8D052AD8-BBD2-4C59-8DEC-F697CA1F8A66"; // shipped
912
public const string DockableWindowHostGuid = "9CF1392A-2DC9-48A6-AC0B-E601A9802608"; // shipped
@@ -13,7 +16,7 @@ public static class RubberduckGuid
1316
public const string IdentifierReferenceClassGuid = "57F78E64-8ADF-4D81-A467-A0139B877D14"; // shipped prior to 2.0.14
1417
public const string ParserStateClassGuid = "28754D11-10CC-45FD-9F6A-525A65412B7A"; // shipped prior to 2.0.14
1518
public const string IParserStateEventsGuid = "3D8EAA28-8983-44D5-83AF-2EEC4C363079"; // shipped prior to 2.0.14
16-
19+
1720
// Unit testing Guids:
1821
private const string UnitTestingGuidspace = "-43F0-3B33-B105-9B8188A6F040";
1922
public const string AssertClassGuid = "69E194DA" + UnitTestingGuidspace; // shipped prior to 2.0.14
@@ -24,5 +27,9 @@ public static class RubberduckGuid
2427
public const string IFakeGuid = "69E194DF" + UnitTestingGuidspace; // added for 2.0.14
2528
public const string IVerifyGuid = "69E194E0" + UnitTestingGuidspace; // added for 2.0.14
2629
public const string IStubGuid = "69E194E1" + UnitTestingGuidspace; // added for 2.0.14
30+
31+
// Enum Guids:
32+
public const string DeclarationTypeGuid = "3E077C17-5678-3605-8449-FEABE42C9725";
33+
public const string AccessibilityGuid = "6BD869B8-C7C6-3970-8ED4-AC74DD2EBA92";
2734
}
2835
}

Rubberduck.Deployment/Rubberduck.Deployment.wixproj renamed to Rubberduck.Deployment.WiX/Rubberduck.Deployment.WiX.wixproj

+1-13
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,6 @@
2525
<ItemGroup>
2626
<Content Include="packages.config" />
2727
</ItemGroup>
28-
<ItemGroup>
29-
<ProjectReference Include="..\RetailCoder.VBE\Rubberduck.csproj">
30-
<Name>Rubberduck</Name>
31-
<Project>{20589de8-432e-4359-9232-69eb070b7185}</Project>
32-
<Private>True</Private>
33-
<DoNotHarvest>
34-
</DoNotHarvest>
35-
<RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
36-
<RefTargetDir>INSTALLFOLDER</RefTargetDir>
37-
</ProjectReference>
38-
</ItemGroup>
3928
<PropertyGroup>
4029
<WixToolPath>$(SolutionDir)packages\WiX.Toolset.3.9.1208.0\tools\wix\</WixToolPath>
4130
<WixTargetsPath>$(WixToolPath)wix.targets</WixTargetsPath>
@@ -46,8 +35,7 @@
4635
<Error Text="The WiX Toolset v4 build tools must be installed to build this project. To download the WiX Toolset v4, see http://wixtoolset.org/releases/" />
4736
</Target>
4837
<PropertyGroup>
49-
<PreBuildEvent>"$(SolutionDir)\packages\WiX.Toolset.3.9.1208.0\tools\wix\heat.exe" file "$(SolutionDir)\RetailCoder.VBE\bin\$(ConfigurationName)\Rubberduck.dll" -out "$(TargetDir)\Rubberduck.dll.xml"
50-
"$(SolutionDir)\packages\WiX.Toolset.3.9.1208.0\tools\wix\heat.exe" file "$(SolutionDir)\RetailCoder.VBE\bin\$(ConfigurationName)\Rubberduck.tlb" -out "$(TargetDir)\Rubberduck.tlb.xml"</PreBuildEvent>
38+
<PreBuildEvent />
5139
</PropertyGroup>
5240
<!--
5341
To modify your build process, add your task inside one of the targets below and uncomment it.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
param (
2+
[Parameter(Mandatory=$true)][string]$builderAssemblyPath,
3+
[Parameter(Mandatory=$true)][string]$netToolsDir,
4+
[Parameter(Mandatory=$true)][string]$wixToolsDir,
5+
[Parameter(Mandatory=$true)][string]$sourceDir,
6+
[Parameter(Mandatory=$true)][string]$targetDir,
7+
[Parameter(Mandatory=$true)][string]$filesToExtract
8+
)
9+
10+
Set-StrictMode -Version latest
11+
$ErrorActionPreference = "Stop";
12+
13+
try
14+
{
15+
$separator = "|"
16+
$option = [System.StringSplitOptions]::RemoveEmptyEntries
17+
$files = $filesToExtract.Split($separator, $option);
18+
19+
foreach($file in $files)
20+
{
21+
$sourceDll = $sourceDir + $file;
22+
$targetDll = $targetDir + $file;
23+
$sourceTlb = $sourceDir + ($file -replace ".dll", ".tlb");
24+
$targetTlb = $targetDir + ($file -replace ".dll", ".tlb");
25+
$dllXml = $targetDll + ".xml"
26+
$tlbXml = $targetTlb + ".xml"
27+
28+
$cmd = "{0}tlbexp.exe" -f $netToolsDir;
29+
# & "C:\GitHub\Rubberduck\Rubberduck\Rubberduck.Deployment\echoargs.exe" ""$sourceDll"" /win32 /out:""$sourceTlb"";
30+
& $cmd ""$sourceDll"" /win32 /out:""$sourceTlb"";
31+
32+
$cmd = "{0}heat.exe" -f $wixToolsDir;
33+
& $cmd file ""$sourceDll"" -out ""$dllXml"";
34+
& $cmd file ""$sourceTlb"" -out ""$tlbXml"";
35+
36+
$bitness = 0;
37+
38+
[System.Reflection.Assembly]::LoadFrom($builderAssemblyPath);
39+
$builder = New-Object Rubberduck.Deployment.RegistryEntryBuilder
40+
41+
$out = $builder.Parse($tlbXml, $dllXml, $bitness);
42+
43+
$out | Format-Table | Out-String |% {Write-Host $_};
44+
}
45+
}
46+
catch
47+
{
48+
Write-Host -Foreground Red -Background Black ($_);
49+
}
50+
51+
# for debugging locally
52+
# Write-Host "Press any key to continue...";
53+
# [void][System.Console]::ReadKey($true);

Rubberduck.Deployment/EchoArgs.exe

4 KB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
Windows Registry Editor Version 5.00
2+
3+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{02FA52F2-0D39-30DF-AB33-E8695C7E3A36}]
4+
5+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{1DF11160-2283-3ADB-A4BD-845C2CFE6CAF}]
6+
7+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{217B205D-E48E-3AE6-88AB-347DBCA07043}]
8+
9+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{3D8EAA28-8983-44D5-83AF-2EEC4C363079}]
10+
11+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{49AA87AB-7179-317A-99CB-65F5FB6F95CB}]
12+
13+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{61F57435-4D9D-3871-A5E1-AF16B81BBBC8}]
14+
15+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{69E194DB-43F0-3B33-B105-9B8188A6F040}]
16+
17+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{69E194DE-43F0-3B33-B105-9B8188A6F040}]
18+
19+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{69E194DF-43F0-3B33-B105-9B8188A6F040}]
20+
21+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{69E194E0-43F0-3B33-B105-9B8188A6F040}]
22+
23+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{69E194E1-43F0-3B33-B105-9B8188A6F040}]
24+
25+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{7C9B7524-F671-3AE8-A48B-A3D88D22378B}]
26+
27+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{7F0ADAD9-DC4A-3644-BE9A-C4295EDA4C11}]
28+
29+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{961B87A2-3148-3AC4-BECC-77ED089CC537}]
30+
31+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{B136613E-A139-365F-AE64-AFAF373B8995}]
32+
33+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{DBA8F99B-74CF-34A4-B410-2ABEF884031E}]
34+
35+
[-HKEY_CURRENT_USER\Software\Classes\Interface\{DDA797D0-3747-3AF9-8A3F-3474849BBE95}]
36+
37+
[-HKEY_CURRENT_USER\Software\Classes\Record\{3E077C17-5678-3605-8449-FEABE42C9725}]
38+
39+
[-HKEY_CURRENT_USER\Software\Classes\Record\{6BD869B8-C7C6-3970-8ED4-AC74DD2EBA92}]
40+
41+
[-HKEY_CURRENT_USER\Software\Classes\Rubberduck.AssertClass]
42+
43+
[-HKEY_CURRENT_USER\Software\Classes\Rubberduck.Extension]
44+
45+
[-HKEY_CURRENT_USER\Software\Classes\Rubberduck.FakesProvider]
46+
47+
[-HKEY_CURRENT_USER\Software\Classes\Rubberduck.ParserState]
48+
49+
[-HKEY_CURRENT_USER\Software\Classes\Rubberduck.PermissiveAssertClass]
50+
51+
[-HKEY_CURRENT_USER\Software\Classes\Rubberduck.UI.DockableWindowHost]
52+
53+
[-HKEY_CURRENT_USER\Software\Classes\TypeLib\{E07C841C-14B4-4890-83E9-8C80B06DD59D}]
54+
55+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\{28754D11-10CC-45FD-9F6A-525A65412B7A}]
56+
57+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\{40F71F29-D63F-4481-8A7D-E04A4B054501}]
58+
59+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\{69E194DA-43F0-3B33-B105-9B8188A6F040}]
60+
61+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\{69E194DD-43F0-3B33-B105-9B8188A6F040}]
62+
63+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\{8D052AD8-BBD2-4C59-8DEC-F697CA1F8A66}]
64+
65+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\CLSID\{9CF1392A-2DC9-48A6-AC0B-E601A9802608}]
66+
67+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{02FA52F2-0D39-30DF-AB33-E8695C7E3A36}]
68+
69+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{1DF11160-2283-3ADB-A4BD-845C2CFE6CAF}]
70+
71+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{217B205D-E48E-3AE6-88AB-347DBCA07043}]
72+
73+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{3D8EAA28-8983-44D5-83AF-2EEC4C363079}]
74+
75+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{49AA87AB-7179-317A-99CB-65F5FB6F95CB}]
76+
77+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{61F57435-4D9D-3871-A5E1-AF16B81BBBC8}]
78+
79+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{69E194DB-43F0-3B33-B105-9B8188A6F040}]
80+
81+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{69E194DE-43F0-3B33-B105-9B8188A6F040}]
82+
83+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{69E194DF-43F0-3B33-B105-9B8188A6F040}]
84+
85+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{69E194E0-43F0-3B33-B105-9B8188A6F040}]
86+
87+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{69E194E1-43F0-3B33-B105-9B8188A6F040}]
88+
89+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{7C9B7524-F671-3AE8-A48B-A3D88D22378B}]
90+
91+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{7F0ADAD9-DC4A-3644-BE9A-C4295EDA4C11}]
92+
93+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{961B87A2-3148-3AC4-BECC-77ED089CC537}]
94+
95+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{B136613E-A139-365F-AE64-AFAF373B8995}]
96+
97+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{DBA8F99B-74CF-34A4-B410-2ABEF884031E}]
98+
99+
[-HKEY_CURRENT_USER\Software\Classes\Wow6432Node\Interface\{DDA797D0-3747-3AF9-8A3F-3474849BBE95}]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
Windows Registry Editor Version 5.00
2+
3+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{02FA52F2-0D39-30DF-AB33-E8695C7E3A36}]
4+
5+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{1DF11160-2283-3ADB-A4BD-845C2CFE6CAF}]
6+
7+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{217B205D-E48E-3AE6-88AB-347DBCA07043}]
8+
9+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{3D8EAA28-8983-44D5-83AF-2EEC4C363079}]
10+
11+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{49AA87AB-7179-317A-99CB-65F5FB6F95CB}]
12+
13+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{61F57435-4D9D-3871-A5E1-AF16B81BBBC8}]
14+
15+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{69E194DB-43F0-3B33-B105-9B8188A6F040}]
16+
17+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{69E194DE-43F0-3B33-B105-9B8188A6F040}]
18+
19+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{69E194DF-43F0-3B33-B105-9B8188A6F040}]
20+
21+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{69E194E0-43F0-3B33-B105-9B8188A6F040}]
22+
23+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{69E194E1-43F0-3B33-B105-9B8188A6F040}]
24+
25+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{7C9B7524-F671-3AE8-A48B-A3D88D22378B}]
26+
27+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{7F0ADAD9-DC4A-3644-BE9A-C4295EDA4C11}]
28+
29+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{961B87A2-3148-3AC4-BECC-77ED089CC537}]
30+
31+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{B136613E-A139-365F-AE64-AFAF373B8995}]
32+
33+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{DBA8F99B-74CF-34A4-B410-2ABEF884031E}]
34+
35+
[-HKEY_LOCAL_MACHINE\Software\Classes\Interface\{DDA797D0-3747-3AF9-8A3F-3474849BBE95}]
36+
37+
[-HKEY_LOCAL_MACHINE\Software\Classes\Record\{3E077C17-5678-3605-8449-FEABE42C9725}]
38+
39+
[-HKEY_LOCAL_MACHINE\Software\Classes\Record\{6BD869B8-C7C6-3970-8ED4-AC74DD2EBA92}]
40+
41+
[-HKEY_LOCAL_MACHINE\Software\Classes\Rubberduck.AssertClass]
42+
43+
[-HKEY_LOCAL_MACHINE\Software\Classes\Rubberduck.Extension]
44+
45+
[-HKEY_LOCAL_MACHINE\Software\Classes\Rubberduck.FakesProvider]
46+
47+
[-HKEY_LOCAL_MACHINE\Software\Classes\Rubberduck.ParserState]
48+
49+
[-HKEY_LOCAL_MACHINE\Software\Classes\Rubberduck.PermissiveAssertClass]
50+
51+
[-HKEY_LOCAL_MACHINE\Software\Classes\Rubberduck.UI.DockableWindowHost]
52+
53+
[-HKEY_LOCAL_MACHINE\Software\Classes\TypeLib\{E07C841C-14B4-4890-83E9-8C80B06DD59D}]
54+
55+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{28754D11-10CC-45FD-9F6A-525A65412B7A}]
56+
57+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{40F71F29-D63F-4481-8A7D-E04A4B054501}]
58+
59+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{69E194DA-43F0-3B33-B105-9B8188A6F040}]
60+
61+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{69E194DD-43F0-3B33-B105-9B8188A6F040}]
62+
63+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{8D052AD8-BBD2-4C59-8DEC-F697CA1F8A66}]
64+
65+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\CLSID\{9CF1392A-2DC9-48A6-AC0B-E601A9802608}]
66+
67+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{02FA52F2-0D39-30DF-AB33-E8695C7E3A36}]
68+
69+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{1DF11160-2283-3ADB-A4BD-845C2CFE6CAF}]
70+
71+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{217B205D-E48E-3AE6-88AB-347DBCA07043}]
72+
73+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{3D8EAA28-8983-44D5-83AF-2EEC4C363079}]
74+
75+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{49AA87AB-7179-317A-99CB-65F5FB6F95CB}]
76+
77+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{61F57435-4D9D-3871-A5E1-AF16B81BBBC8}]
78+
79+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{69E194DB-43F0-3B33-B105-9B8188A6F040}]
80+
81+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{69E194DE-43F0-3B33-B105-9B8188A6F040}]
82+
83+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{69E194DF-43F0-3B33-B105-9B8188A6F040}]
84+
85+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{69E194E0-43F0-3B33-B105-9B8188A6F040}]
86+
87+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{69E194E1-43F0-3B33-B105-9B8188A6F040}]
88+
89+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{7C9B7524-F671-3AE8-A48B-A3D88D22378B}]
90+
91+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{7F0ADAD9-DC4A-3644-BE9A-C4295EDA4C11}]
92+
93+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{961B87A2-3148-3AC4-BECC-77ED089CC537}]
94+
95+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{B136613E-A139-365F-AE64-AFAF373B8995}]
96+
97+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{DBA8F99B-74CF-34A4-B410-2ABEF884031E}]
98+
99+
[-HKEY_LOCAL_MACHINE\Software\Classes\Wow6432Node\Interface\{DDA797D0-3747-3AF9-8A3F-3474849BBE95}]

0 commit comments

Comments
 (0)