diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 17cee3fa..2e43f5ff 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -125,6 +125,36 @@ jobs:
choco install nsis.portable
makensis build/nsis/installer.nsi
mv build/nsis/PlumeInstaller.exe build/out/${{ env.BINARY_NAME }}-setup.exe
+
+ - name: Create AppCast
+ shell: pwsh
+ run: |
+ curl -L -o WinSparkle-0.8.1.zip https://github.com/vslavik/winsparkle/releases/download/v0.8.1/WinSparkle-0.8.1.zip
+ unzip WinSparkle-0.8.1.zip -d WinSparkle
+ "${{ secrets.SPARKLE_PRIV_KEY_WIN }}" | Out-File -Encoding ascii dsa_priv.pem
+ $SIGNATURE = ./WinSparkle/WinSparkle-0.8.1/bin/sign_update.bat build/out/${{ env.BINARY_NAME }}-setup.exe dsa_priv.pem
+ $VERSION = (Select-String '^version *= *' Cargo.toml | Select-Object -First 1).Line -replace 'version *= *"(.+)"','$1'
+ $DATE = Get-Date -Format "ddd, dd MMM yyyy HH:mm:ss K"
+ $xml = @"
+
+
+
+ PlumeImpactor
+ Most recent updates to PlumeImpactor
+ en
+ -
+ Version $VERSION
+ $VERSION
+ $DATE
+
+
+
+
+ "@
+ $xml | Out-File -Encoding utf8 build/out/appcast.xml
- name: Upload Bundles
uses: actions/upload-artifact@v4
@@ -209,6 +239,11 @@ jobs:
- name: Bundle
run: |
mkdir -p build/dmg
+ # Ensure Info.plist is valid before copying
+ plutil -lint package/macos/${{ env.BUNDLE_NAME }}.app/Contents/Info.plist
+ VERSION=$(grep '^version *= *' Cargo.toml | head -n1 | sed 's/version *= *"\(.*\)"/\1/')
+ /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $VERSION" package/macos/${{ env.BUNDLE_NAME }}.app/Contents/Info.plist
+ /usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${{ github.run_number }}" package/macos/${{ env.BUNDLE_NAME }}.app/Contents/Info.plist
cp -R package/macos/${{ env.BUNDLE_NAME }}.app build/dmg/${{ env.BUNDLE_NAME }}.app
mkdir -p build/dmg/${{ env.BUNDLE_NAME }}.app/Contents/MacOS
mv build/universal/${{ env.BINARY_NAME }} build/dmg/${{ env.BUNDLE_NAME }}.app/Contents/MacOS/${{ env.BINARY_NAME }}
@@ -217,6 +252,12 @@ jobs:
- name: Codesign
run: |
+ codesign --deep --force --options runtime \
+ --sign "${{ secrets.DEV_ID_IDENTITY_NAME }}" build/dmg/${{ env.BUNDLE_NAME }}.app/Contents/Frameworks/Sparkle.framework/Resources/Autoupdate.app
+ codesign --deep --force --options runtime \
+ --sign "${{ secrets.DEV_ID_IDENTITY_NAME }}" build/dmg/${{ env.BUNDLE_NAME }}.app/Contents/Frameworks/Sparkle.framework
+ codesign --deep --force --options runtime \
+ --sign "${{ secrets.DEV_ID_IDENTITY_NAME }}" build/dmg/${{ env.BUNDLE_NAME }}.app/Contents/MacOS/${{ env.BINARY_NAME }}
codesign --deep --force --options runtime \
--sign "${{ secrets.DEV_ID_IDENTITY_NAME }}" build/dmg/${{ env.BUNDLE_NAME }}.app
@@ -239,8 +280,20 @@ jobs:
xcrun notarytool submit build/out/${{ env.BUNDLE_NAME }}.dmg --apple-id "${{ secrets.APPLE_ID_EMAIL }}" --password "${{ secrets.APPLE_ID_PASSWORD }}" --team-id "${{ secrets.APPLE_ID_TEAM }}" --wait
xcrun stapler staple build/out/${{ env.BUNDLE_NAME }}.dmg
+ - name: Setup Sparkle
+ id: get_version
+ run: |
+ curl -L -o Sparkle-2.8.1.tar.xz https://github.com/sparkle-project/Sparkle/releases/download/2.8.1/Sparkle-2.8.1.tar.xz
+ tar -xJf Sparkle-2.8.1.tar.xz
+ chmod +x ./bin/generate_appcast
+ echo ${{ secrets.SPARKLE_PRIV_KEY_MAC }} > sparkle_priv_key
+ ./bin/generate_keys -f ./sparkle_priv_key
+ ./bin/generate_appcast --download-url-prefix https://github.com/khcrysalis/PlumeImpactor/releases/latest/download/ build/out/
+
- name: Upload Universal DMG
uses: actions/upload-artifact@v4
with:
name: ${{ env.BINARY_NAME }}-macos-universal
- path: build/out/${{ env.BUNDLE_NAME }}.dmg
+ path: |
+ build/out/${{ env.BUNDLE_NAME }}.dmg
+ build/out/appcast.xml
diff --git a/Cargo.lock b/Cargo.lock
index b098acb3..b10742ba 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3019,6 +3019,7 @@ dependencies = [
"plume_core",
"plume_utils",
"rustls 0.23.32",
+ "sparkle-updater",
"thiserror 2.0.16",
"tokio",
"uuid",
@@ -4090,6 +4091,23 @@ dependencies = [
"sha2",
]
+[[package]]
+name = "sparkle-sys"
+version = "0.1.0"
+source = "git+https://github.com/PlumeImpactor/sparkle-updater?rev=3d39e96#3d39e9679b2495e8266037300acc5bcbc96c021b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
+name = "sparkle-updater"
+version = "0.1.0"
+source = "git+https://github.com/PlumeImpactor/sparkle-updater?rev=3d39e96#3d39e9679b2495e8266037300acc5bcbc96c021b"
+dependencies = [
+ "sparkle-sys",
+ "winsparkle-sys",
+]
+
[[package]]
name = "spin"
version = "0.5.2"
@@ -5292,6 +5310,11 @@ dependencies = [
"toml 0.5.11",
]
+[[package]]
+name = "winsparkle-sys"
+version = "0.1.0"
+source = "git+https://github.com/PlumeImpactor/sparkle-updater?rev=3d39e96#3d39e9679b2495e8266037300acc5bcbc96c021b"
+
[[package]]
name = "wit-bindgen"
version = "0.46.0"
diff --git a/apps/plumeimpactor/Cargo.toml b/apps/plumeimpactor/Cargo.toml
index 605eb0fe..58198380 100644
--- a/apps/plumeimpactor/Cargo.toml
+++ b/apps/plumeimpactor/Cargo.toml
@@ -22,6 +22,7 @@ image = { version = "0.25.1", default-features = false, features = ["png"] }
rustls = { version = "0.23.32", features = ["ring"] }
keyring = { version = "3.6.3", default-features = false, features = ["windows-native", "apple-native", "linux-native"] }
+sparkle-updater = { git = "https://github.com/PlumeImpactor/sparkle-updater", rev = "3d39e96", package = "sparkle-updater" }
[target.'cfg(target_os = "windows")'.build-dependencies]
embed-manifest = "1.4"
diff --git a/apps/plumeimpactor/build.rs b/apps/plumeimpactor/build.rs
index 1c18c1dc..8d715619 100644
--- a/apps/plumeimpactor/build.rs
+++ b/apps/plumeimpactor/build.rs
@@ -27,7 +27,7 @@ fn embed_windows_manifest(name: &str) {
{
let mut res = winres::WindowsResource::new();
- res.set_icon("../../package/windows/icon.ico");
+ res.set_resource_file("../../package/windows/custom.rc");
res.compile().unwrap();
}
}
diff --git a/apps/plumeimpactor/src/main.rs b/apps/plumeimpactor/src/main.rs
index bb69aac3..0fd3b376 100644
--- a/apps/plumeimpactor/src/main.rs
+++ b/apps/plumeimpactor/src/main.rs
@@ -11,31 +11,31 @@ use std::{
path::{Path, PathBuf}
};
+use thiserror::Error as ThisError;
+use sparkle_updater::Updater;
+
#[tokio::main]
async fn main() {
_ = rustls::crypto::ring::default_provider().install_default().unwrap();
+
+ #[cfg(any(target_os = "macos", target_os = "windows"))]
+ {
+ #[cfg(target_os = "macos")]
+ let updater = Updater::new();
+ #[cfg(target_os = "windows")]
+ let updater = Updater::new(
+ "https://github.com/khcrysalis/PlumeImpactor/releases/latest/download/appcast-win.xml".into(),
+ None,
+ );
+
+ updater.check_for_updates();
+ }
let _ = wxdragon::main(|_| {
frame::PlumeFrame::new().show();
});
}
-use thiserror::Error as ThisError;
-
-#[derive(Debug, ThisError)]
-pub enum Error {
- #[error("I/O error: {0}")]
- Io(#[from] std::io::Error),
- #[error("Plist error: {0}")]
- Plist(#[from] plist::Error),
- #[error("Idevice error: {0}")]
- Idevice(#[from] idevice::IdeviceError),
- #[error("Core error: {0}")]
- Core(#[from] plume_core::Error),
- #[error("Utils error: {0}")]
- Utils(#[from] plume_utils::Error),
-}
-
pub fn get_data_path() -> PathBuf {
let base = if cfg!(windows) {
env::var("APPDATA").unwrap()
@@ -71,3 +71,17 @@ pub fn get_mac_udid() -> Option {
let udid = String::from_utf8_lossy(&output.stdout).trim().to_string();
(!udid.is_empty()).then_some(udid)
}
+
+#[derive(Debug, ThisError)]
+pub enum Error {
+ #[error("I/O error: {0}")]
+ Io(#[from] std::io::Error),
+ #[error("Plist error: {0}")]
+ Plist(#[from] plist::Error),
+ #[error("Idevice error: {0}")]
+ Idevice(#[from] idevice::IdeviceError),
+ #[error("Core error: {0}")]
+ Core(#[from] plume_core::Error),
+ #[error("Utils error: {0}")]
+ Utils(#[from] plume_utils::Error),
+}
\ No newline at end of file
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Resources b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Resources
new file mode 120000
index 00000000..953ee36f
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Resources
@@ -0,0 +1 @@
+Versions/Current/Resources
\ No newline at end of file
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Sparkle b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Sparkle
new file mode 120000
index 00000000..b2c52731
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Sparkle
@@ -0,0 +1 @@
+Versions/Current/Sparkle
\ No newline at end of file
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist
new file mode 100644
index 00000000..b6777339
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist
@@ -0,0 +1,58 @@
+
+
+
+
+ BuildMachineOSBuild
+ 22D68
+ CFBundleDevelopmentRegion
+ English
+ CFBundleExecutable
+ Autoupdate
+ CFBundleIconFile
+ AppIcon.icns
+ CFBundleIdentifier
+ org.sparkle-project.Sparkle.Autoupdate
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundlePackageType
+ APPL
+ CFBundleShortVersionString
+ 1.27.1
+ CFBundleSignature
+ ????
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 1.106
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 14C18
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 13.1
+ DTSDKBuild
+ 22C55
+ DTSDKName
+ macosx13.1
+ DTXcode
+ 1420
+ DTXcodeBuild
+ 14C18
+ LSApplicationCategoryType
+ public.app-category.utilities
+ LSBackgroundOnly
+ 1
+ LSMinimumSystemVersion
+ 10.9
+ LSUIElement
+ 1
+ NSMainNibFile
+ MainMenu
+ NSPrincipalClass
+ NSApplication
+
+
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate
new file mode 100755
index 00000000..92ae8566
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/fileop b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/fileop
new file mode 100755
index 00000000..b03e9eb9
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/fileop differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/PkgInfo b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/PkgInfo
new file mode 100644
index 00000000..bd04210f
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/PkgInfo
@@ -0,0 +1 @@
+APPL????
\ No newline at end of file
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/AppIcon.icns b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/AppIcon.icns
new file mode 100644
index 00000000..7f2a571c
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/AppIcon.icns differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/Base.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/Base.lproj/Sparkle.strings
new file mode 100644
index 00000000..1d70063c
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/Base.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib/keyedobjects-101300.nib b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib/keyedobjects-101300.nib
new file mode 100644
index 00000000..1541ccf1
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib/keyedobjects-101300.nib differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib/keyedobjects.nib b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib/keyedobjects.nib
new file mode 100644
index 00000000..43e6cc83
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib/keyedobjects.nib differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ar.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ar.lproj/Sparkle.strings
new file mode 100644
index 00000000..e00af341
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ar.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ca.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ca.lproj/Sparkle.strings
new file mode 100644
index 00000000..f2aea275
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ca.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings
new file mode 100644
index 00000000..bc3d41f1
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/da.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/da.lproj/Sparkle.strings
new file mode 100644
index 00000000..e0957c60
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/da.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/de.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/de.lproj/Sparkle.strings
new file mode 100644
index 00000000..f0435273
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/de.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/el.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/el.lproj/Sparkle.strings
new file mode 100644
index 00000000..6ef15d4a
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/el.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/es.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/es.lproj/Sparkle.strings
new file mode 100644
index 00000000..8a083f86
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/es.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fi.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fi.lproj/Sparkle.strings
new file mode 100644
index 00000000..773f7c99
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fi.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fr.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fr.lproj/Sparkle.strings
new file mode 100644
index 00000000..a9e01b2e
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fr.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/he.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/he.lproj/Sparkle.strings
new file mode 100644
index 00000000..ce63fdef
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/he.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/hr.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/hr.lproj/Sparkle.strings
new file mode 100644
index 00000000..ab8fe1a3
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/hr.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/hu.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/hu.lproj/Sparkle.strings
new file mode 100644
index 00000000..d30ef64b
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/hu.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/is.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/is.lproj/Sparkle.strings
new file mode 100644
index 00000000..5f6ace28
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/is.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/it.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/it.lproj/Sparkle.strings
new file mode 100644
index 00000000..5b4be9ea
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/it.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ja.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ja.lproj/Sparkle.strings
new file mode 100644
index 00000000..f4685eda
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ja.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ko.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ko.lproj/Sparkle.strings
new file mode 100644
index 00000000..f008e1ee
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ko.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nb.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nb.lproj/Sparkle.strings
new file mode 100644
index 00000000..fa4cd97d
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nb.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nl.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nl.lproj/Sparkle.strings
new file mode 100644
index 00000000..76f3556b
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nl.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pl.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pl.lproj/Sparkle.strings
new file mode 100644
index 00000000..4444f338
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pl.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_BR.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_BR.lproj/Sparkle.strings
new file mode 100644
index 00000000..2a7ce299
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_BR.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_PT.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_PT.lproj/Sparkle.strings
new file mode 100644
index 00000000..18a287e8
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_PT.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ro.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ro.lproj/Sparkle.strings
new file mode 100644
index 00000000..967a4418
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ro.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ru.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ru.lproj/Sparkle.strings
new file mode 100644
index 00000000..28b831d8
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ru.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sk.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sk.lproj/Sparkle.strings
new file mode 100644
index 00000000..65aa28f2
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sk.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sl.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sl.lproj/Sparkle.strings
new file mode 100644
index 00000000..caaf0603
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sl.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sv.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sv.lproj/Sparkle.strings
new file mode 100644
index 00000000..e7c70db7
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sv.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/th.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/th.lproj/Sparkle.strings
new file mode 100644
index 00000000..058b4ba6
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/th.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/tr.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/tr.lproj/Sparkle.strings
new file mode 100644
index 00000000..ffc57672
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/tr.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/uk.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/uk.lproj/Sparkle.strings
new file mode 100644
index 00000000..263326c9
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/uk.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings
new file mode 100644
index 00000000..71cf325f
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_TW.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_TW.lproj/Sparkle.strings
new file mode 100644
index 00000000..b9517885
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_TW.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUAutomaticUpdateAlert.nib/keyedobjects-101300.nib b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUAutomaticUpdateAlert.nib/keyedobjects-101300.nib
new file mode 100644
index 00000000..60abcb25
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUAutomaticUpdateAlert.nib/keyedobjects-101300.nib differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 00000000..357575f7
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUAutomaticUpdateAlert.nib/keyedobjects.nib differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdateAlert.nib/keyedobjects-101300.nib b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdateAlert.nib/keyedobjects-101300.nib
new file mode 100644
index 00000000..4cc5ac65
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdateAlert.nib/keyedobjects-101300.nib differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdateAlert.nib/keyedobjects.nib b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdateAlert.nib/keyedobjects.nib
new file mode 100644
index 00000000..60c057f2
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdateAlert.nib/keyedobjects.nib differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects-101300.nib b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects-101300.nib
new file mode 100644
index 00000000..e10850da
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects-101300.nib differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects-110000.nib b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects-110000.nib
new file mode 100644
index 00000000..b655496d
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects-110000.nib differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib
new file mode 100644
index 00000000..90b9214e
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/Sparkle.strings
new file mode 100644
index 00000000..1d70063c
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Base.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Info.plist b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Info.plist
new file mode 100644
index 00000000..5175d098
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/Info.plist
@@ -0,0 +1,48 @@
+
+
+
+
+ BuildMachineOSBuild
+ 22D68
+ CFBundleDevelopmentRegion
+ en
+ CFBundleExecutable
+ Sparkle
+ CFBundleIdentifier
+ org.sparkle-project.Sparkle
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ Sparkle
+ CFBundlePackageType
+ FMWK
+ CFBundleShortVersionString
+ 1.27.1
+ CFBundleSignature
+ ????
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ CFBundleVersion
+ 1.106
+ DTCompiler
+ com.apple.compilers.llvm.clang.1_0
+ DTPlatformBuild
+ 14C18
+ DTPlatformName
+ macosx
+ DTPlatformVersion
+ 13.1
+ DTSDKBuild
+ 22C55
+ DTSDKName
+ macosx13.1
+ DTXcode
+ 1420
+ DTXcodeBuild
+ 14C18
+ LSMinimumSystemVersion
+ 10.9
+
+
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ReleaseNotesColorStyle.css b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ReleaseNotesColorStyle.css
new file mode 100644
index 00000000..ac5dc3f6
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ReleaseNotesColorStyle.css
@@ -0,0 +1,12 @@
+@media (prefers-color-scheme: dark) {
+ html {
+ color: white;
+ background: transparent;
+ }
+ :link {
+ color: #419CFF;
+ }
+ :link:active {
+ color: #FF1919;
+ }
+}
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/SUModelTranslation.plist b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/SUModelTranslation.plist
new file mode 100644
index 00000000..1f75b248
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/SUModelTranslation.plist
@@ -0,0 +1,314 @@
+
+
+
+
+ ADP2,1
+ Developer Transition Kit
+ iMac1,1
+ iMac G3 (Rev A-D)
+ iMac4,1
+ iMac (Core Duo)
+ iMac4,2
+ iMac for Education (17 inch, Core Duo)
+ iMac5,1
+ iMac (Core 2 Duo, 17 or 20 inch, SuperDrive)
+ iMac5,2
+ iMac (Core 2 Duo, 17 inch, Combo Drive)
+ iMac6,1
+ iMac (Core 2 Duo, 24 inch, SuperDrive)
+ iMac7,1
+ iMac Intel Core 2 Duo (aluminum enclosure)
+ iMac8,1
+ iMac (Core 2 Duo, 20 or 24 inch, Early 2008 )
+ iMac9,1
+ iMac (Core 2 Duo, 20 or 24 inch, Early or Mid 2009 )
+ iMac10,1
+ iMac (Core 2 Duo, 21.5 or 27 inch, Late 2009 )
+ iMac11,1
+ iMac (Core i5 or i7, 27 inch Late 2009)
+ iMac11,2
+ 21.5" iMac (mid 2010)
+ iMac11,3
+ iMac (Core i5 or i7, 27 inch Mid 2010)
+ iMac12,1
+ iMac (Core i3 or i5 or i7, 21.5 inch Mid 2010 or Late 2011)
+ iMac12,2
+ iMac (Core i5 or i7, 27 inch Mid 2011)
+ iMac13,1
+ iMac (Core i3 or i5 or i7, 21.5 inch Late 2012 or Early 2013)
+ iMac13,2
+ iMac (Core i5 or i7, 27 inch Late 2012)
+ iMac14,1
+ iMac (Core i5, 21.5 inch Late 2013)
+ iMac14,2
+ iMac (Core i5 or i7, 27 inch Late 2013)
+ iMac14,3
+ iMac (Core i5 or i7, 21.5 inch Late 2013)
+ iMac14,4
+ iMac (Core i5, 21.5 inch Mid 2014)
+ iMac15,1
+ iMac (Retina 5K Core i5 or i7, 27 inch Late 2014 or Mid 2015)
+ iMac16,1
+ iMac (Core i5, 21,5 inch Late 2015)
+ iMac16,2
+ iMac (Retina 4K Core i5 or i7, 21.5 inch Late 2015)
+ iMac17,1
+ iMac (Retina 5K Core i5 or i7, 27 inch Late 2015)
+ MacBook1,1
+ MacBook (Core Duo)
+ MacBook2,1
+ MacBook (Core 2 Duo)
+ MacBook4,1
+ MacBook (Core 2 Duo Feb 2008)
+ MacBook5,1
+ MacBook (Core 2 Duo, Late 2008, Unibody)
+ MacBook5,2
+ MacBook (Core 2 Duo, Early 2009, White)
+ MacBook6,1
+ MacBook (Core 2 Duo, Late 2009, Unibody)
+ MacBook7,1
+ MacBook (Core 2 Duo, Mid 2010, White)
+ MacBook8,1
+ MacBook (Core M, 12 inch, Early 2015)
+ MacBookAir1,1
+ MacBook Air (Core 2 Duo, 13 inch, Early 2008)
+ MacBookAir2,1
+ MacBook Air (Core 2 Duo, 13 inch, Mid 2009)
+ MacBookAir3,1
+ MacBook Air (Core 2 Duo, 11 inch, Late 2010)
+ MacBookAir3,2
+ MacBook Air (Core 2 Duo, 13 inch, Late 2010)
+ MacBookAir4,1
+ MacBook Air (Core i5 or i7, 11 inch, Mid 2011)
+ MacBookAir4,2
+ MacBook Air (Core i5 or i7, 13 inch, Mid 2011)
+ MacBookAir5,1
+ MacBook Air (Core i5 or i7, 11 inch, Mid 2012)
+ MacBookAir5,2
+ MacBook Air (Core i5 or i7, 13 inch, Mid 2012)
+ MacBookAir6,1
+ MacBook Air (Core i5 or i7, 11 inch, Mid 2013 or Early 2014)
+ MacBookAir6,2
+ MacBook Air (Core i5 or i7, 13 inch, Mid 2013 or Early 2014)
+ MacBookAir7,1
+ MacBook Air (Core i5 or i7, 11 inch, Early 2015)
+ MacBookAir7,2
+ MacBook Air (Core i5 or i7, 13 inch, Early 2015)
+ MacBookPro1,1
+ MacBook Pro Core Duo (15-inch)
+ MacBookPro1,2
+ MacBook Pro Core Duo (17-inch)
+ MacBookPro2,1
+ MacBook Pro Core 2 Duo (17-inch)
+ MacBookPro2,2
+ MacBook Pro Core 2 Duo (15-inch)
+ MacBookPro3,1
+ MacBook Pro Core 2 Duo (15-inch LED, Core 2 Duo)
+ MacBookPro3,2
+ MacBook Pro Core 2 Duo (17-inch HD, Core 2 Duo)
+ MacBookPro4,1
+ MacBook Pro (Core 2 Duo Feb 2008)
+ MacBookPro5,1
+ MacBook Pro Intel Core 2 Duo (aluminum unibody)
+ MacBookPro5,2
+ MacBook Pro Intel Core 2 Duo (aluminum unibody)
+ MacBookPro5,3
+ MacBook Pro Intel Core 2 Duo (aluminum unibody)
+ MacBookPro5,4
+ MacBook Pro Intel Core 2 Duo (aluminum unibody)
+ MacBookPro5,5
+ MacBook Pro Intel Core 2 Duo (aluminum unibody)
+ MacBookPro6,1
+ MacBook Pro Intel Core i5, Intel Core i7 (mid 2010)
+ MacBookPro6,2
+ MacBook Pro Intel Core i5, Intel Core i7 (mid 2010)
+ MacBookPro7,1
+ MacBook Pro Intel Core 2 Duo (mid 2010)
+ MacBookPro8,1
+ MacBook Pro Intel Core i5, Intel Core i7, 13" (early 2011)
+ MacBookPro8,2
+ MacBook Pro Intel Core i7, 15" (early 2011)
+ MacBookPro8,3
+ MacBook Pro Intel Core i7, 17" (early 2011)
+ MacBookPro9,1
+ MacBook Pro (15-inch, Mid 2012)
+ MacBookPro9,2
+ MacBook Pro (13-inch, Mid 2012)
+ MacBookPro10,1
+ MacBook Pro (Retina, Mid 2012)
+ MacBookPro10,2
+ MacBook Pro (Retina, 13-inch, Late 2012)
+ MacBookPro11,1
+ MacBook Pro (Retina, 13-inch, Late 2013)
+ MacBookPro11,2
+ MacBook Pro (Retina, 15-inch, Late 2013)
+ MacBookPro11,3
+ MacBook Pro (Retina, 15-inch, Late 2013)
+ MacbookPro11,4
+ MacBook Pro (Retina, 15-inch, Mid 2015)
+ MacbookPro11,5
+ MacBook Pro (Retina, 15-inch, Mid 2015)
+ MacbookPro12,1
+ MacBook Pro (Retina, 13-inch, Early 2015)
+ Macmini1,1
+ Mac Mini (Core Solo/Duo)
+ Macmini2,1
+ Mac mini Intel Core
+ Macmini3,1
+ Mac mini Intel Core
+ Macmini4,1
+ Mac mini Intel Core (Mid 2010)
+ Macmini5,1
+ Mac mini (Core i5, Mid 2011)
+ Macmini5,2
+ Mac mini (Core i5 or Core i7, Mid 2011)
+ Macmini5,3
+ Mac mini (Core i7, Server, Mid 2011)
+ Macmini6,1
+ Mac mini (Core i5, Late 2012)
+ Macmini6,2
+ Mac mini (Core i7, Normal or Server, Late 2012)
+ Macmini7,1
+ Mac mini (Core i5 or Core i7, Late 2014)
+ MacPro1,1,Quad
+ Mac Pro
+ MacPro1,1
+ Mac Pro (four-core)
+ MacPro2,1
+ Mac Pro (eight-core)
+ MacPro3,1
+ Mac Pro (January 2008 4- or 8- core "Harpertown")
+ MacPro4,1
+ Mac Pro (March 2009)
+ MacPro5,1
+ Mac Pro (2010 or 2012)
+ MacPro6,1
+ Mac Pro (Late 2013)
+ PowerBook1,1
+ PowerBook G3
+ PowerBook2,1
+ iBook G3
+ PowerBook2,2
+ iBook G3 (FireWire)
+ PowerBook2,3
+ iBook G3
+ PowerBook2,4
+ iBook G3
+ PowerBook3,1
+ PowerBook G3 (FireWire)
+ PowerBook3,2
+ PowerBook G4
+ PowerBook3,3
+ PowerBook G4 (Gigabit Ethernet)
+ PowerBook3,4
+ PowerBook G4 (DVI)
+ PowerBook3,5
+ PowerBook G4 (1GHz / 867MHz)
+ PowerBook4,1
+ iBook G3 (Dual USB, Late 2001)
+ PowerBook4,2
+ iBook G3 (16MB VRAM)
+ PowerBook4,3
+ iBook G3 Opaque 16MB VRAM, 32MB VRAM, Early 2003)
+ PowerBook5,1
+ PowerBook G4 (17 inch)
+ PowerBook5,2
+ PowerBook G4 (15 inch FW 800)
+ PowerBook5,3
+ PowerBook G4 (17-inch 1.33GHz)
+ PowerBook5,4
+ PowerBook G4 (15 inch 1.5/1.33GHz)
+ PowerBook5,5
+ PowerBook G4 (17-inch 1.5GHz)
+ PowerBook5,6
+ PowerBook G4 (15 inch 1.67GHz/1.5GHz)
+ PowerBook5,7
+ PowerBook G4 (17-inch 1.67GHz)
+ PowerBook5,8
+ PowerBook G4 (Double layer SD, 15 inch)
+ PowerBook5,9
+ PowerBook G4 (Double layer SD, 17 inch)
+ PowerBook6,1
+ PowerBook G4 (12 inch)
+ PowerBook6,2
+ PowerBook G4 (12 inch, DVI)
+ PowerBook6,3
+ iBook G4
+ PowerBook6,4
+ PowerBook G4 (12 inch 1.33GHz)
+ PowerBook6,5
+ iBook G4 (Early-Late 2004)
+ PowerBook6,7
+ iBook G4 (Mid 2005)
+ PowerBook6,8
+ PowerBook G4 (12 inch 1.5GHz)
+ PowerMac1,1
+ Power Macintosh G3 (Blue & White)
+ PowerMac1,2
+ Power Macintosh G4 (PCI Graphics)
+ PowerMac2,1
+ iMac G3 (Slot-loading CD-ROM)
+ PowerMac2,2
+ iMac G3 (Summer 2000)
+ PowerMac3,1
+ Power Macintosh G4 (AGP Graphics)
+ PowerMac3,2
+ Power Macintosh G4 (AGP Graphics)
+ PowerMac3,3
+ Power Macintosh G4 (Gigabit Ethernet)
+ PowerMac3,4
+ Power Macintosh G4 (Digital Audio)
+ PowerMac3,5
+ Power Macintosh G4 (Quick Silver)
+ PowerMac3,6
+ Power Macintosh G4 (Mirrored Drive Door)
+ PowerMac4,1
+ iMac G3 (Early/Summer 2001)
+ PowerMac4,2
+ iMac G4 (Flat Panel)
+ PowerMac4,4
+ eMac
+ PowerMac4,5
+ iMac G4 (17-inch Flat Panel)
+ PowerMac5,1
+ Power Macintosh G4 Cube
+ PowerMac5,2
+ Power Mac G4 Cube
+ PowerMac6,1
+ iMac G4 (USB 2.0)
+ PowerMac6,3
+ iMac G4 (20-inch Flat Panel)
+ PowerMac6,4
+ eMac (USB 2.0, 2005)
+ PowerMac7,2
+ Power Macintosh G5
+ PowerMac7,3
+ Power Macintosh G5
+ PowerMac8,1
+ iMac G5
+ PowerMac8,2
+ iMac G5 (Ambient Light Sensor)
+ PowerMac9,1
+ Power Macintosh G5 (Late 2005)
+ PowerMac10,1
+ Mac Mini G4
+ PowerMac10,2
+ Mac Mini (Late 2005)
+ PowerMac11,2
+ Power Macintosh G5 (Late 2005)
+ PowerMac12,1
+ iMac G5 (iSight)
+ RackMac1,1
+ Xserve G4
+ RackMac1,2
+ Xserve G4 (slot-loading, cluster node)
+ RackMac3,1
+ Xserve G5
+ Xserve1,1
+ Xserve (Intel Xeon)
+ Xserve2,1
+ Xserve (January 2008 quad-core)
+ Xserve3,1
+ Xserve (early 2009)
+
+
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects-101300.nib b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects-101300.nib
new file mode 100644
index 00000000..1541ccf1
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects-101300.nib differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib
new file mode 100644
index 00000000..43e6cc83
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/SUStatus.nib/keyedobjects.nib differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..d3cd9020
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..c1e9c993
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..51a4dbd3
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ar.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ar.lproj/Sparkle.strings
new file mode 100644
index 00000000..e00af341
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ar.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ca.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ca.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..64c18831
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ca.lproj/SUAutomaticUpdateAlert.strings
@@ -0,0 +1,11 @@
+/* Class = "NSButtonCell"; title = "Install and Relaunch"; ObjectID = "41"; */
+"41.title" = "Reinicia el programa ara";
+
+/* Class = "NSButtonCell"; title = "Install on Quit"; ObjectID = "42"; */
+"42.title" = "Reinicia el programa més tard";
+
+/* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "43"; */
+"43.title" = "Baixa i instal·la les actualitzacions automàticament en el futur";
+
+/* Class = "NSButtonCell"; title = "Don't Install"; ObjectID = "44"; */
+"44.title" = "Don't Install";
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ca.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ca.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..284cf6dc
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ca.lproj/SUUpdateAlert.strings
@@ -0,0 +1,17 @@
+/* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */
+"5.title" = "Actualització del programari";
+
+/* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */
+"170.title" = "Notes d'aquesta versió:";
+
+/* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */
+"171.title" = "Recorda-m'ho més tard";
+
+/* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */
+"172.title" = "Omet aquesta versió";
+
+/* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */
+"173.title" = "Instal·la l'actualització";
+
+/* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */
+"175.title" = "Descarrega i instal·la les actualitzacions automàticament en el futur";
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ca.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ca.lproj/Sparkle.strings
new file mode 100644
index 00000000..f2aea275
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ca.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..e1014a0e
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.strings
@@ -0,0 +1,11 @@
+/* Class = "NSButtonCell"; title = "Install and Relaunch"; ObjectID = "41"; */
+"41.title" = "Instalovat a znovu spustit";
+
+/* Class = "NSButtonCell"; title = "Install on Quit"; ObjectID = "42"; */
+"42.title" = "Instalovat a ukončit";
+
+/* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "43"; */
+"43.title" = "V budoucnu stahovat a instalovat aktualizace automaticky";
+
+/* Class = "NSButtonCell"; title = "Don't Install"; ObjectID = "44"; */
+"44.title" = "Neinstalovat";
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..ff7d56ff
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.strings
@@ -0,0 +1,17 @@
+/* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */
+"5.title" = "Aktualizace aplikace";
+
+/* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */
+"170.title" = "Poznámky k vydání:";
+
+/* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */
+"171.title" = "Připomenout později";
+
+/* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */
+"172.title" = "Přeskočit tuto verzi";
+
+/* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */
+"173.title" = "Instalovat aktualizaci";
+
+/* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */
+"175.title" = "V budoucnu stahovat a instalovat aktualizace automaticky";
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..3c24459d
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.strings
@@ -0,0 +1,23 @@
+/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */
+"43.title" = "Text Cell";
+
+/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */
+"45.title" = "Text Cell";
+
+/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "176"; */
+"176.title" = "Automaticky vyhledávat";
+
+/* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "177"; */
+"177.title" = "Nevyhledávat";
+
+/* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "178"; */
+"178.title" = "Vyhledávat aktualizace automaticky?";
+
+/* Class = "NSTextFieldCell"; title = "DO NOT LOCALIZE"; ObjectID = "179"; */
+"179.title" = "DO NOT LOCALIZE";
+
+/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "180"; */
+"180.title" = "Odeslat anonymní systémový profil";
+
+/* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work.\nPlease contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */
+"183.title" = "Informace z anonymního systémového profilu pomáhají vývojářům lépe plánovat budoucí vývoj aplikace.\nBudete-li mít nějaký dotaz, obraťte se na nás.\n\nToto jsou informace, které budou odeslány:";
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings
new file mode 100644
index 00000000..bc3d41f1
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..af70727a
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..4ef2b1b5
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..0a0a998d
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/da.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/da.lproj/Sparkle.strings
new file mode 100644
index 00000000..e0957c60
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/da.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..931667cb
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..02d7c022
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..47b00059
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings
new file mode 100644
index 00000000..f0435273
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..2054e103
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..79bc9303
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..a84a913d
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/el.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/el.lproj/Sparkle.strings
new file mode 100644
index 00000000..6ef15d4a
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/el.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..4532f020
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.strings
@@ -0,0 +1,12 @@
+
+/* Class = "NSButtonCell"; title = "Install and Relaunch"; ObjectID = "41"; */
+"41.title" = "Install and Relaunch";
+
+/* Class = "NSButtonCell"; title = "Install on Quit"; ObjectID = "42"; */
+"42.title" = "Install on Quit";
+
+/* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "43"; */
+"43.title" = "Automatically download and install updates in the future";
+
+/* Class = "NSButtonCell"; title = "Don't Install"; ObjectID = "44"; */
+"44.title" = "Don't Install";
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..45a4cfc0
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.strings
@@ -0,0 +1,18 @@
+
+/* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */
+"5.title" = "Software Update";
+
+/* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */
+"170.title" = "Release Notes:";
+
+/* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */
+"171.title" = "Remind Me Later";
+
+/* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */
+"172.title" = "Skip This Version";
+
+/* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */
+"173.title" = "Install Update";
+
+/* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */
+"175.title" = "Automatically download and install updates in the future";
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..40408e56
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.strings
@@ -0,0 +1,24 @@
+
+/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */
+"43.title" = "Text Cell";
+
+/* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */
+"45.title" = "Text Cell";
+
+/* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "176"; */
+"176.title" = "Check Automatically";
+
+/* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "177"; */
+"177.title" = "Don’t Check";
+
+/* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "178"; */
+"178.title" = "Check for updates automatically?";
+
+/* Class = "NSTextFieldCell"; title = "DO NOT LOCALIZE"; ObjectID = "179"; */
+"179.title" = "DO NOT LOCALIZE";
+
+/* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "180"; */
+"180.title" = "Include anonymous system profile";
+
+/* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */
+"183.title" = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:";
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..2bfeeebd
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..048305e9
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..ed12e176
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings
new file mode 100644
index 00000000..8a083f86
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fi.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fi.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..68d567fc
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fi.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..12c3890e
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..7746e682
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fi.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fi.lproj/Sparkle.strings
new file mode 100644
index 00000000..773f7c99
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fi.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..12c205b3
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..53f8a46c
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..2ec15550
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings
new file mode 100644
index 00000000..a9e01b2e
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/he.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/he.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..ebf63323
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/he.lproj/SUAutomaticUpdateAlert.strings
@@ -0,0 +1,11 @@
+/* Class = "NSButtonCell"; title = "Install and Relaunch"; ObjectID = "41"; */
+"41.title" = "אתחל עכשיו";
+
+/* Class = "NSButtonCell"; title = "Install on Quit"; ObjectID = "42"; */
+"42.title" = "אתחל מאוחר יותר";
+
+/* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "43"; */
+"43.title" = "הורד והתקן עדכונים אוטומטית גם בעתיד";
+
+/* Class = "NSButtonCell"; title = "Don't Install"; ObjectID = "44"; */
+"44.title" = "Don't Install";
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/he.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/he.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..a49c5a96
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/he.lproj/SUUpdateAlert.strings
@@ -0,0 +1,18 @@
+
+/* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */
+"5.title" = "עדכון תכנה";
+
+/* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */
+"170.title" = "פרטי גרסה:";
+
+/* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */
+"171.title" = "הזכר לי מאוחר יותר";
+
+/* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */
+"172.title" = "דלג על גרסה זו";
+
+/* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */
+"173.title" = "התקן עדכון";
+
+/* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */
+"175.title" = "הורד והתקן עדכונים אוטומטית גם בעתיד";
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/he.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/he.lproj/Sparkle.strings
new file mode 100644
index 00000000..ce63fdef
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/he.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hr.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hr.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..6dab620f
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hr.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..e8cd9115
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..e351dee9
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hr.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hr.lproj/Sparkle.strings
new file mode 100644
index 00000000..ab8fe1a3
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hr.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hu.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hu.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..21520d6e
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hu.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..5bcfb40f
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..a44717a1
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hu.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hu.lproj/Sparkle.strings
new file mode 100644
index 00000000..d30ef64b
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/hu.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..b3df8579
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..35605b00
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..1b2ae2e5
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/is.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/is.lproj/Sparkle.strings
new file mode 100644
index 00000000..5f6ace28
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/is.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..df3cc7a5
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..28b08bf8
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..55b623b5
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings
new file mode 100644
index 00000000..5b4be9ea
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..b9a12fa8
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..7aaa662e
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..117c57b1
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ja.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ja.lproj/Sparkle.strings
new file mode 100644
index 00000000..f4685eda
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ja.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..13fcae85
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..ae964edc
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..ba51fac5
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ko.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ko.lproj/Sparkle.strings
new file mode 100644
index 00000000..f008e1ee
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ko.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..b56be4ff
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..4f7f719c
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..71a68bc6
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nb.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nb.lproj/Sparkle.strings
new file mode 100644
index 00000000..fa4cd97d
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nb.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..49a56b68
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..a4797b81
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..73d5f5ee
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings
new file mode 100644
index 00000000..76f3556b
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..c65a629f
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..94fd5cf5
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..16591dd2
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pl.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pl.lproj/Sparkle.strings
new file mode 100644
index 00000000..4444f338
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pl.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..a8d613cf
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..ba19134f
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..5eca8957
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/Sparkle.strings
new file mode 100644
index 00000000..2a7ce299
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..40a45dbf
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..f744d468
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/Sparkle.strings
new file mode 100644
index 00000000..18a287e8
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..a4c5ced6
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..4fc4e8b5
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..e9075e57
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ro.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ro.lproj/Sparkle.strings
new file mode 100644
index 00000000..967a4418
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ro.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..19acb2f7
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..9fce4212
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..acf4be10
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings
new file mode 100644
index 00000000..28b831d8
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..f2df7340
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..20de4543
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..83ebfa9d
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sk.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sk.lproj/Sparkle.strings
new file mode 100644
index 00000000..65aa28f2
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sk.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..a9321a72
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..8f1d8d21
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..c1cf84a5
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sl.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sl.lproj/Sparkle.strings
new file mode 100644
index 00000000..caaf0603
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sl.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..4fc0a158
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..dc57d7b3
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..29647d7c
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings
new file mode 100644
index 00000000..e7c70db7
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..9c1a96f8
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..ab08588b
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..56a8d38b
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/th.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/th.lproj/Sparkle.strings
new file mode 100644
index 00000000..058b4ba6
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/th.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..22f55c23
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..35fa3209
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..7d46eeb1
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/tr.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/tr.lproj/Sparkle.strings
new file mode 100644
index 00000000..ffc57672
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/tr.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..580048f3
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..6076fcdb
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/uk.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/uk.lproj/Sparkle.strings
new file mode 100644
index 00000000..263326c9
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/uk.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..5df10cc2
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..3264916f
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..52ddc42f
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings
new file mode 100644
index 00000000..71cf325f
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.strings
new file mode 100644
index 00000000..195c7dd7
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.strings
new file mode 100644
index 00000000..a2e8e66a
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.strings
new file mode 100644
index 00000000..a7d39111
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/Sparkle.strings b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/Sparkle.strings
new file mode 100644
index 00000000..b9517885
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/Sparkle.strings differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Sparkle b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Sparkle
new file mode 100755
index 00000000..9415e9fa
Binary files /dev/null and b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/A/Sparkle differ
diff --git a/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/Current b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/Current
new file mode 120000
index 00000000..8c7e5a66
--- /dev/null
+++ b/package/macos/Impactor.app/Contents/Frameworks/Sparkle.framework/Versions/Current
@@ -0,0 +1 @@
+A
\ No newline at end of file
diff --git a/package/macos/Impactor.app/Contents/Info.plist b/package/macos/Impactor.app/Contents/Info.plist
index a63c4ecb..0f43332f 100644
--- a/package/macos/Impactor.app/Contents/Info.plist
+++ b/package/macos/Impactor.app/Contents/Info.plist
@@ -30,5 +30,13 @@
AppIcon
CFBundleIconName
AppIcon
+ SUEnableDownloaderService
+
+ SUEnableInstallerLauncherService
+
+ SUFeedURL
+ https://github.com/khcrysalis/PlumeImpactor/releases/latest/download/appcast.xml
+ SUPublicEDKey
+ 0jcLch5+zoYsVnfx2/MJGz0skKio2cLP7JsYCGzzpFA=
diff --git a/package/windows/WinSparkle.dll b/package/windows/WinSparkle.dll
new file mode 100644
index 00000000..623d7eff
Binary files /dev/null and b/package/windows/WinSparkle.dll differ
diff --git a/package/windows/custom.rc b/package/windows/custom.rc
new file mode 100644
index 00000000..ce7b3d2f
--- /dev/null
+++ b/package/windows/custom.rc
@@ -0,0 +1,5 @@
+// Public Key
+// Used by WinSparkle
+// Verify Signature using DSA public key
+DSAPub DSAPEM "dsa_pub.pem"
+1 ICON "icon.ico"
\ No newline at end of file
diff --git a/package/windows/dsa_pub.pem b/package/windows/dsa_pub.pem
new file mode 100644
index 00000000..93f7cc9f
--- /dev/null
+++ b/package/windows/dsa_pub.pem
@@ -0,0 +1,36 @@
+-----BEGIN PUBLIC KEY-----
+MIIGQzCCBDUGByqGSM44BAEwggQoAoICAQC5KuYJ3X41b2IzFfLYHnIAYtDYtAR1
+WGaMZkzCxWSswr+6qihNU4pHkg/AGVWQorxM7/oqTicQy15vcOmTr6t7sjC6yzK4
+zAnv9pGF2IKI3VUyPIIzBmSGE8E47Vnog+xXXqhcPFRk1VSZ7UfJSxGIv7kjRcDR
+Zv3kcwEOc4L74+YQL38qzQMGEGEEmJmu+EyBgUqSd+Bsc1o3c9TMW3xh+oW/VZ4b
+GP/nJwJG+OyOwSHNz3+NM0b7Benad3f+gsvhSNgyrtV8rnGWWNhVzkbWbPlceJxC
+D+yZ1hAqWrr07Y3sT0MdEt+sYY9L9t5gUIY/VP/Ok48nCj2CghumWlwVcdJY4pha
+uT76O55Tv1FHEZV/5qCwff4cE1lp2ELSAwboz5q8rYg8qDe8VDMCiutDa6xnZVpX
+GQUeLs04tDj8mvfTMWSh3YkdGJqaTd1qQ8I/94WUvJFOBAfQ1VqA27GRpBNCVeVq
+v6t6sGfhJm8XuDqZ3XIpCrFFryqqMg3UBxvs4OgXNgwnHU+Ssi7yn6jbtEKL9PaW
+AYV7a+r6wyfNvMc2UK3uU+ZdVa0g9PaTGGixzJNt65y6wn8DEN5JKzvCPKPYSD+E
+tx16UuJSATbagY8/BvkgDvqUPS/KE6qtHc/Pk8y3HR5DKAkRcCHHuqkwtG4OEBNM
+dBijw3nbPxgVkwIdAKxk1ArVqqpONshEkpM0AFNoXfj0dBj/iA8L+1UCggIAXBzj
+JCBtEcY/r7wfxKKExVBmHGnUzpvE2+A6EJCvLf5MWZv+obKGuo9JQ/XhwoN06ayd
++pDpJpNlWw3b1FlosxXOip3vlvgB19THyG04QDN4lNLicqcwjOSmtypTE5Nox9Ms
+wVDYNjRXUXcxJSnIuka2ciSFEkxbWBbI1C1DhUE0leO6ONaJjafJu2P+1Q5X7NQa
+gPF1Rh0ih9m6VkAn05KDPxjxwOfKVYVi+/9i6Xv2Qmg83DZOnWerjSOmATGVHFDY
+csTQDRET0po06edTn0rQ4Fa7UdMQW2xZkYehCoz59zmolBUt1/BAfZvGLvHle+eG
+gfVHQUemIOiYuMHZX1VSsmsZGwtP8Vk4lv009o7jT4sXFGWxKg3QgtOxT5HLCQJc
+cRKsaL/zJ4T57gSeXKqTCmgjyZhmbpaT1Kwya5ROal+k/oUXbIWYFpYd1/6XBfzu
+olKwbkxG33gc7DladTE0639jWuJJYiBV6IvjtYGrzpKh5hmY5dBIQMixsFS3oRSb
+Vf5a7P57sdYHfvJszTsJIdd4f8vJzRWcqa592ChQcFh1wcjK5wRgdy9WpKFkl+Mg
+oJk4CjYhtKTlaBL1/D9g6HSTaVpvL6MOfD5J/yd3dWJvaCN5KEXWAJTg2tkfuUYa
+Ay+G7OYi0MvG9XDZkwggKTod1SWuCIJsfGGrMKgDggIGAAKCAgEArcyHGPx2XPkj
+BYK9dSpxCXrshk1CVKOP3D1a4g5BdXF/Hc0hOAIHZRisWzqNqqD9aeheqNPza3Z9
+SWqtS6+T+cmSe7jgxaE8HL5C2eTr04xYuj7H9UfDOKYFNiZUvRMt98y8JKCBrmur
+ZG1xuat90cdtkys7hBIJ4ie3qleWkwbGKdZvfps3O17am8aQVg+E+Ad4fBBZ4Tv9
++k7B/lNN3RTVTtBUWW1SYD5Ergex0pPGUtsfpR41nbn0WSF89clFfU7TxPar1Ykb
+a1x+1Nvcn+thZjCFbhBN5oiKU54+kaMAaZUICPviFj8lIG0Iw6x2hlkK0jW+D5lr
+6NYlFc45cg4bgcSFdX8txdOGEAKwD+gSehEMz1QPpf5CamxMy8tP6437Y4+54NM/
+dDQ6AaTbTj8smAU5t4I4o7rxDJVifn3W2OVRkWHt/rjYB+jxtlhVipAnfGuz6JVK
+eg3w/AaLHdDT8qgm4k/5O2hN1ExYlXD8tp0oTgvdNZ7SmMH3DAZDgU0AbxLiCnXn
+gRr9UY4Rsscq66l2JiOZg4uWX2MthEueid7xoDiWzc69Zq213XVJE9BYxY5tOV/o
+J9BApabHbG+lRWtN4RtXOZTjjtzxTW5KycQ3ERHoiXvFYEQIHmO+/iHyU+9iGT1e
+pT/hBWBKhkHZIEDFPSLn3UGkzVQeEdE=
+-----END PUBLIC KEY-----
diff --git a/package/windows/installer.nsi b/package/windows/installer.nsi
index d60d81ab..5fb6fdbf 100644
--- a/package/windows/installer.nsi
+++ b/package/windows/installer.nsi
@@ -49,6 +49,9 @@ Section "Install"
SetOutPath "$INSTDIR"
File "${APPEXE}"
+ File "WinSparkle.dll"
+ File "dsa_pub.pem"
+ File "icon.ico"
; Start Menu entries
CreateDirectory "$SMPROGRAMS\${APPNAME}"
@@ -78,6 +81,9 @@ Section "Uninstall"
RMDir "$SMPROGRAMS\${APPNAME}"
Delete "$INSTDIR\${APPEXE}"
+ Delete "$INSTDIR\WinSparkle.dll"
+ Delete "$INSTDIR\dsa_pub.pem"
+ Delete "$INSTDIR\icon.ico"
Delete "$INSTDIR\Uninstall.exe"
RMDir "$INSTDIR"