Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/5101 ck editor option to resize images on upload #5123

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
fafd58c
5073 userRequestIpAddressController for UserIpAddress determining
skamphuis Apr 4, 2022
78e25fa
Merge branch 'develop' into feature/eventlog-ip-address-with-proxy
skamphuis Apr 19, 2022
46482b5
5100 Add default folders for images to options and browser
skamphuis Apr 25, 2022
df1a217
5100 Use default image upload folder for uploads
skamphuis Apr 25, 2022
f5f77ab
5101 CKEditor Maximum image dimensions settings
skamphuis Apr 25, 2022
17fbc95
Update DNN Platform/Library/Services/Exceptions/SecurityException.cs
skamphuis Apr 28, 2022
446bf70
Update DNN Platform/Library/Services/Exceptions/SecurityException.cs
bdukes Apr 28, 2022
d9bc17f
Merge pull request #5091 from skamphuis/feature/eventlog-ip-address-w…
valadas Apr 28, 2022
e53951f
Migrate moment to dayjs for Dnn.PersonaBar.UI
david-poindexter May 1, 2022
3cdfac1
Remove datePicker.js from koBindingHandlers
david-poindexter May 1, 2022
5b9fca6
Merge pull request #5107 from david-poindexter/dayjs-pb-ui
valadas May 2, 2022
14e39b9
Correctly Encode Text Fields (#5106)
armaganpekatik May 9, 2022
4a09e82
Upgrade caniuse-lite from 1.0.30001249 to 1.0.30001339
bdukes May 10, 2022
3dadca3
Fix issue with undefined isProduction in Yarn scripts
donker May 11, 2022
df686a8
5101 Implemented optional image resizing on upload
skamphuis May 12, 2022
1d31fda
Merge branch 'develop' into feature/5101-CKEditor-option-to-resize-im…
skamphuis May 12, 2022
28fed3c
undo unintended changes
skamphuis May 12, 2022
cbbe3d3
undo unintended changes
skamphuis May 12, 2022
4bf25de
Merge pull request #5119 from bdukes/caniuse-lite
mitchelsellers May 24, 2022
a349106
Merge branch 'develop' into feature/5101-CKEditor-option-to-resize-im…
skamphuis May 25, 2022
9aa74bb
Remove upload from URL option
bdukes Nov 9, 2021
76e63d5
upgrade knockout js to 3.5.1.
Oct 11, 2021
160fd7c
update knockoutjs to 3.5.1.
Oct 13, 2021
0ffacdb
Update website templates to set user registration to None by default
david-poindexter Nov 22, 2021
4c7d7f4
Updated website templates to make Activity Feed, My Profile, Friends,…
david-poindexter Nov 28, 2021
7598aab
Updates versions as per release candidate creation
bdukes Nov 12, 2021
2492bd1
Update version in yarn.lock file
bdukes Nov 12, 2021
46f9b51
Implement new setting to keep track of overall SSL Setup. And impleme…
donker Nov 1, 2021
8410788
Add a button to set all pages as secure
donker Nov 1, 2021
39233a3
Improve wording on SSLEnforced UI
donker Nov 2, 2021
3b61824
Better wording
donker Nov 2, 2021
050a4f9
Allow for SSL Offload Header to be set on both off and advanced modes
donker Nov 2, 2021
343e50b
Adjust values for tests
donker Nov 3, 2021
4756a92
Update property naming convention
donker Jan 4, 2022
f91369f
Ensure Resource Manager installs by default
donker Jan 4, 2022
16d5dca
Ensure the new ResourceManager only installs on new installs
donker Jan 11, 2022
02f5783
Renaming upgrade tweak method
donker Jan 13, 2022
52cdddd
Bring back obsolete message by popular demand
donker Jan 17, 2022
32b9367
Add JsonIgnore to prevent a circular reference when serializing
mtrutledge Feb 4, 2022
06655b0
Add JsonIgnore whereever XmlIgnore was applied
mtrutledge Feb 8, 2022
afedb7b
Add missing using Newtonsoft.Json statement
mtrutledge Feb 8, 2022
facfd31
Ensure auth cookies are purged
donker Feb 1, 2022
8b10e2c
Update DNN Platform/Website/Providers/DataProviders/SqlDataProvider/0…
mitchelsellers Feb 2, 2022
a2e72e3
Added abstraction for FileSystemUtils
daguiler Apr 16, 2022
d5f8547
Added folder cleanup to CleanupInstaller
daguiler Apr 16, 2022
1fd958a
Added unit tests for CleanupInstaller
daguiler Apr 16, 2022
05fde6c
Increased number of CleanupInstaller tests to 75
daguiler Apr 17, 2022
9e0c249
Fixed vulnerabilities in CleanupInstaller
daguiler Apr 17, 2022
5c23da4
Reverted everything
daguiler Apr 17, 2022
f4e94b8
Added new DeleteEmptyFoldersRecursive method
daguiler Apr 17, 2022
3343a28
Added folder cleanup to CleanupInstaller
daguiler Apr 17, 2022
bb60611
Prepared CleanupInstaller for unit testing
daguiler Apr 17, 2022
b5baddd
Added unit tests for CleanupInstaller
daguiler Apr 17, 2022
cbf3be5
Made IFileSystemUtils interface internal
daguiler Apr 17, 2022
7485b82
Added missing DI registration
daguiler Apr 18, 2022
bfdf3ce
Return full path after validation
daguiler Apr 18, 2022
585dbca
Improved readability
daguiler Apr 18, 2022
ba68a21
Update UpgradeWizard.aspx to require a superuser to choose whether to…
daguiler Apr 26, 2022
0dc548b
CKEditor 4.18.0: updated code+images (no headers)
daguiler Apr 14, 2022
f0c68e7
CKEditor 4.18.0: updated copyright headers
daguiler Apr 14, 2022
6e1b559
CKEditor 4.18.0: adjusted version paths
daguiler Apr 14, 2022
40a2557
CKEditor 4.18.0: moved files (no changes)
daguiler Apr 14, 2022
ebebc26
CKEditor 18.4.0: fixed manifest indentation
daguiler Apr 15, 2022
ada1158
CKEditor 4.18.0: previous version cleanup
daguiler Apr 15, 2022
3292f21
undo unintended changes
skamphuis May 12, 2022
7f8a14f
undo unintended changes
skamphuis May 12, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ Provide any additional context that may be helpful in understanding and/or resol
Please add X in at least one of the boxes as appropriate. In order for an issue to be accepted, a developer needs to be able to reproduce the issue on a currently supported version. If you are looking for a workaround for an issue with an older version, please visit the forums at https://dnncommunity.org/forums
-->
* [ ] 10.00.00 alpha build
* [ ] 09.11.00 release candidate
* [ ] 09.10.02 release candidate
* [ ] 09.10.01 latest supported release

Expand Down
2 changes: 1 addition & 1 deletion Build/Symbols/DotNetNuke_Symbols.dnn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DotNetNuke_Symbols" type="Library" version="09.10.02" >
<package name="DotNetNuke_Symbols" type="Library" version="09.11.00" >
<friendlyName>DNN Platform Symbols</friendlyName>
<description>This package contains Debug Symbols and Intellisense files for DNN Platform.</description>
<owner>
Expand Down
16 changes: 9 additions & 7 deletions Build/Tasks/CreateUpgrade.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public sealed class CreateUpgrade : FrostingTask<Context>
/// <inheritdoc/>
public override void Run(Context context)
{
this.RenameResourcesFor98xUpgrades(context);
this.RenameResourcesForUpgrade(context);
context.CreateDirectory(context.ArtifactsFolder);
var excludes = new string[context.PackagingPatterns.InstallExclude.Length + context.PackagingPatterns.UpgradeExclude.Length];
context.PackagingPatterns.InstallExclude.CopyTo(excludes, 0);
Expand All @@ -38,20 +38,22 @@ public override void Run(Context context)
}

[Obsolete(
"Workaround to support upgrades from 9.8.0 which may or may not still have Telerik installed."
+ "This method is to be removed in v10.0.0 and we should also implement a solution to remove these .resources files"
+ "from the available extensions to make sure people don't install them by mistake.")]
private void RenameResourcesFor98xUpgrades(Context context)
"Workaround to support upgrades from 9.8.0 which may or may not still have Telerik installed."
+ "It also prevents the new Resource Manager module being installed for 9.11+ upgrades."
+ "This method is to be removed in v10.0.0 and we should also implement a solution to remove these .resources files"
+ "from the available extensions to make sure people don't install them by mistake.")]
private void RenameResourcesForUpgrade(Context context)
{
var telerikPackages = new[]
var packages = new[]
{
$"{context.WebsiteFolder}Install/Module/DNNCE_DigitalAssetsManagement*.zip",
$"{context.WebsiteFolder}Install/Module/Telerik*.zip",
$"{context.WebsiteFolder}Install/Library/DNNCE_Web.Deprecated*.zip",
$"{context.WebsiteFolder}Install/Library/DNNCE_Website.Deprecated*.zip",
$"{context.WebsiteFolder}Install/Module/DNNCE_ResourceManager*.zip",
};

var filesToRename = context.GetFilesByPatterns(telerikPackages);
var filesToRename = context.GetFilesByPatterns(packages);
foreach (var fileToRename in filesToRename)
{
File.Move(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DotNetNuke.Console" type="Module" version="09.10.02">
<package name="DotNetNuke.Console" type="Module" version="09.11.00">
<friendlyName>Console</friendlyName>
<description>Display children pages as icon links for navigation.</description>
<iconFile>~/DesktopModules/Admin/Console/console.png</iconFile>
Expand Down
2 changes: 1 addition & 1 deletion DNN Platform/Components/Telerik/DotNetNuke.Telerik.Web.dnn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DotNetNuke.Telerik.Web" type="Library" isSystem="true" version="09.10.02">
<package name="DotNetNuke.Telerik.Web" type="Library" isSystem="true" version="09.11.00">
<friendlyName>DotNetNuke Telerik Web Components</friendlyName>
<description>Provides Telerik Components for DotNetNuke.</description>
<dependencies/>
Expand Down
2 changes: 1 addition & 1 deletion DNN Platform/Connectors/Azure/AzureConnector.dnn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="Dnn.AzureConnector" type="Connector" isSystem="false" version="09.10.02">
<package name="Dnn.AzureConnector" type="Connector" isSystem="false" version="09.11.00">
<friendlyName>Dnn Azure Connector</friendlyName>
<description>The Azure Connector allows you to integrate Azure as your commenting solution with the Publisher module.</description>
<iconFile>~/DesktopModules/Connectors/Azure/Images/icon-azure-32px.png</iconFile>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DNN.Connectors.GoogleAnalytics" type="Connector" isSystem="false" version="09.10.02">
<package name="DNN.Connectors.GoogleAnalytics" type="Connector" isSystem="false" version="09.11.00">
<friendlyName>Google Analytics Connector</friendlyName>
<description>Configure your sites Google Analytics settings.</description>
<iconFile>~/DesktopModules/Connectors/GoogleAnalytics/Images/GoogleAnalytics_32X32_Standard.png</iconFile>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DNN.Connectors.GoogleTagManager" type="Connector" isSystem="false" version="09.10.02">
<package name="DNN.Connectors.GoogleTagManager" type="Connector" isSystem="false" version="09.11.00">
<friendlyName>Google Tag Manager Connector</friendlyName>
<description>Configure your sites Google Tag Manager settings.</description>
<iconFile>~/DesktopModules/Connectors/GoogleTagManager/Images/GoogleTagManager_32X32_Standard.png</iconFile>
Expand Down
2 changes: 1 addition & 1 deletion DNN Platform/Dnn.AuthServices.Jwt/Dnn.Jwt.dnn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DNNJWT" type="Provider" version="09.10.02">
<package name="DNNJWT" type="Provider" version="09.11.00">
<friendlyName>DNN JWT Auth Handler</friendlyName>
<description>DNN Json Web Token Authentication (JWT) library for cookie-less Mobile authentication clients</description>
<dependencies/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,11 @@ public interface IPortalSettings
/// </summary>
int SplashTabId { get; set; }

/// <summary>
/// Gets a value indicating what the SSL setup is for this portal.
/// </summary>
Security.SiteSslSetup SSLSetup { get; }

/// <summary>
/// Gets a value indicating whether SSL is enabled for the portal.
/// </summary>
Expand Down
27 changes: 27 additions & 0 deletions DNN Platform/DotNetNuke.Abstractions/Security/SiteSslSetup.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information

namespace DotNetNuke.Abstractions.Security
{
/// <summary>
/// The SiteSslSetup is used in the portal settings to indicate what the global SSL setup is for the site.
/// </summary>
public enum SiteSslSetup
{
/// <summary>
/// No SSL
/// </summary>
Off = 0,

/// <summary>
/// Complete SSL
/// </summary>
On = 1,

/// <summary>
/// Ability to tweak SSL settings
/// </summary>
Advanced = 2,
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DotNetNuke.Web.Deprecated" type="Library" isSystem="true" version="09.10.02">
<package name="DotNetNuke.Web.Deprecated" type="Library" isSystem="true" version="09.11.00">
<friendlyName>DNN Deprecated Web Controls Library</friendlyName>
<description>DNN Deprecated Web Controls library for legacy Telerik depepndency</description>
<dependencies/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -419,91 +419,6 @@ public Task<HttpResponseMessage> UploadFromLocal(int portalId)
return task;
}

[HttpPost]
[ValidateAntiForgeryToken]
[AllowAnonymous]
public HttpResponseMessage UploadFromUrl(UploadByUrlDto dto)
{
FileUploadDto result;
WebResponse response = null;
Stream responseStream = null;
var mediaTypeFormatter = new JsonMediaTypeFormatter();
mediaTypeFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/plain"));

if (this.VerifySafeUrl(dto.Url) == false)
{
return this.Request.CreateResponse(HttpStatusCode.BadRequest);
}

try
{
var request = (HttpWebRequest)WebRequest.Create(dto.Url);
request.Credentials = CredentialCache.DefaultCredentials;
response = request.GetResponse();
responseStream = response.GetResponseStream();
if (responseStream == null)
{
throw new Exception("No server response");
}

var fileName = this.GetFileName(response);
if (string.IsNullOrEmpty(fileName))
{
fileName = HttpUtility.UrlDecode(new Uri(dto.Url).Segments.Last());
}

var portalId = dto.PortalId;
if (portalId > -1)
{
if (!this.IsPortalIdValid(portalId))
{
throw new HttpResponseException(HttpStatusCode.Unauthorized);
}
}
else
{
portalId = this.PortalSettings.PortalId;
}

result = UploadFile(responseStream, portalId, this.UserInfo, dto.Folder.ValueOrEmpty(), dto.Filter.ValueOrEmpty(),
fileName, dto.Overwrite, dto.IsHostMenu, dto.Unzip, dto.ValidationCode);

/* Response Content Type cannot be application/json
* because IE9 with iframe-transport manages the response
* as a file download
*/
return this.Request.CreateResponse(
HttpStatusCode.OK,
result,
mediaTypeFormatter,
"text/plain");
}
catch (Exception ex)
{
result = new FileUploadDto
{
Message = ex.Message,
};
return this.Request.CreateResponse(
HttpStatusCode.OK,
result,
mediaTypeFormatter,
"text/plain");
}
finally
{
if (response != null)
{
response.Close();
}

if (responseStream != null)
{
responseStream.Close();
}
}
}

private static string GetLocalizedString(string key)
{
const string resourceFile = "/App_GlobalResources/FileUpload.resx";
Expand Down
18 changes: 12 additions & 6 deletions DNN Platform/DotNetNuke.Web/UI/RibbonBarManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -87,12 +87,18 @@ public static TabInfo InitTabInfoObject(TabInfo relativeToTab, TabRelativeLocati
{
newTab.PortalID = parentTab.PortalID;
newTab.ParentId = parentTab.TabID;
newTab.Level = parentTab.Level + 1;
if (PortalSettings.Current.SSLEnabled)
{
newTab.IsSecure = parentTab.IsSecure;

// Inherit from parent
newTab.Level = parentTab.Level + 1;
switch (PortalSettings.Current.SSLSetup)
{
case Abstractions.Security.SiteSslSetup.Off:
newTab.IsSecure = false;
break;
case Abstractions.Security.SiteSslSetup.Advanced:
newTab.IsSecure = parentTab.IsSecure;
break;
default:
newTab.IsSecure = true;
break;
}
}
else
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ protected virtual void ProcessTool()
// Prevent PageSettings in a popup if SSL is enabled and enforced, which causes redirection/javascript broswer security issues.
if (this.ToolInfo.ToolName == "PageSettings" || this.ToolInfo.ToolName == "CopyPage" || this.ToolInfo.ToolName == "NewPage")
{
if (!(PortalSettings.SSLEnabled && PortalSettings.SSLEnforced))
if (!(PortalSettings.SSLSetup != Abstractions.Security.SiteSslSetup.Off && PortalSettings.SSLEnforced))
{
this.DnnLink.Attributes.Add("onclick", "return " + UrlUtils.PopUpUrl(this.DnnLink.NavigateUrl, this, PortalSettings, true, false));
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DotNetNuke.ClientAPI" type="Library" version="09.10.02" >
<package name="DotNetNuke.ClientAPI" type="Library" version="09.11.00" >
<friendlyName>DotNetNuke ClientAPI</friendlyName>
<description>The DotNetNuke Client API is composed of both server-side and client-side code that works together to enable a simple and reliable interface for the developer to provide a rich client-side experience.</description>
<dependencies/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="DotNetNuke.Website.Deprecated" type="Library" isSystem="true" version="09.10.02">
<package name="DotNetNuke.Website.Deprecated" type="Library" isSystem="true" version="09.11.00">
<friendlyName>DNN Deprecated Website Codebehind files</friendlyName>
<description>DNN Deprecated Website Codebehind files for backward compability.</description>
<dependencies/>
Expand Down
66 changes: 38 additions & 28 deletions DNN Platform/HttpModules/UrlRewrite/BasicUrlRewriter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -291,34 +291,44 @@ internal override void RewriteUrl(object sender, EventArgs e)
{
// request is for a standard page
strURL = string.Empty;

// if SSL is enabled
if (portalSettings.SSLEnabled)
{
// if page is secure and connection is not secure orelse ssloffload is enabled and server value exists
if ((portalSettings.ActiveTab.IsSecure && !request.IsSecureConnection) &&
(UrlUtils.IsSslOffloadEnabled(request) == false))
{
// switch to secure connection
strURL = requestedPath.Replace("http://", "https://");
strURL = this.FormatDomain(strURL, portalSettings.STDURL, portalSettings.SSLURL);
}
}

// if SSL is enforced
if (portalSettings.SSLEnforced)
{
// if page is not secure and connection is secure
if (!portalSettings.ActiveTab.IsSecure && request.IsSecureConnection)
{
// check if connection has already been forced to secure orelse ssloffload is disabled
if (request.QueryString["ssl"] == null)
{
strURL = requestedPath.Replace("https://", "http://");
strURL = this.FormatDomain(strURL, portalSettings.SSLURL, portalSettings.STDURL);
}
}
}

switch (portalSettings.SSLSetup)
{
case Abstractions.Security.SiteSslSetup.On:
if (!request.IsSecureConnection)
{
// switch to secure connection
strURL = requestedPath.Replace("http://", "https://");
}

break;
case Abstractions.Security.SiteSslSetup.Advanced:
// if site is secure or else page is secure and connection is not secure orelse ssloffload is enabled and server value exists
if (portalSettings.ActiveTab.IsSecure &&
!request.IsSecureConnection &&
(UrlUtils.IsSslOffloadEnabled(request) == false))
{
// switch to secure connection
strURL = requestedPath.Replace("http://", "https://");
strURL = this.FormatDomain(strURL, portalSettings.STDURL, portalSettings.SSLURL);
}

if (portalSettings.SSLEnforced)
{
// if page is not secure and connection is secure
if (!portalSettings.ActiveTab.IsSecure && request.IsSecureConnection)
{
// check if connection has already been forced to secure orelse ssloffload is disabled
if (request.QueryString["ssl"] == null)
{
strURL = requestedPath.Replace("https://", "http://");
strURL = this.FormatDomain(strURL, portalSettings.SSLURL, portalSettings.STDURL);
}
}
}

break;
}

// if a protocol switch is necessary
if (!string.IsNullOrEmpty(strURL))
Expand Down
1 change: 1 addition & 0 deletions DNN Platform/JavaScript Libraries/Knockout/03.03.00.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Resources\Libraries\Knockout\03_03_00\
5 changes: 3 additions & 2 deletions DNN Platform/JavaScript Libraries/Knockout/Knockout.dnn
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<dotnetnuke type="Package" version="5.0">
<packages>
<package name="Knockout" type="JavaScript_Library" version="03.03.00">
<package name="Knockout" type="JavaScript_Library" version="03.05.01">
<friendlyName>Knockout JavaScript Library</friendlyName>
<description>Knockout is an MVVM library that is used for client side databinding.</description>
<iconFile>Icons\Sigma\Extensions_32x32_Standard.png</iconFile>
Expand All @@ -19,7 +19,7 @@
<libraryName>Knockout</libraryName>
<fileName>knockout.js</fileName>
<objectName>ko</objectName>
<CDNPath>//cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js</CDNPath>
<CDNPath>//cdnjs.cloudflare.com/ajax/libs/knockout/3.5.1/knockout-latest.min.js</CDNPath>
</javaScriptLibrary>
</component>
<component type="JavaScriptFile">
Expand All @@ -31,6 +31,7 @@
</jsfiles>
</component>
<component type="Cleanup" version="02.02.01" fileName="02.02.01.txt" />
<component type="Cleanup" version="03.03.00" fileName="03.03.00.txt" />
</components>
</package>
</packages>
Expand Down
Loading